|
|
@@ -1,5 +1,6 @@
|
|
|
package nckd.jxccl.hr.psms.plugin.operate.performance.validate;
|
|
|
|
|
|
+import akka.routing.FromConfig;
|
|
|
import kd.bos.dataentity.entity.DynamicObject;
|
|
|
import kd.bos.dataentity.entity.DynamicObjectCollection;
|
|
|
import kd.bos.entity.ExtendedDataEntity;
|
|
|
@@ -113,25 +114,38 @@ public class PerfRankMgmtSaveValidate extends AbstractValidator {
|
|
|
// 不合格人数
|
|
|
int failCount = context.failCount;
|
|
|
|
|
|
- // 获取配置比例
|
|
|
+ /* // 获取配置比例
|
|
|
BigDecimal excellentRatio = appraisalResultRatioMap.get(AppraisalResultEnum.EXCELLENT.getCode());
|
|
|
BigDecimal qualifiedRatio = appraisalResultRatioMap.get(AppraisalResultEnum.QUALIFIED.getCode());
|
|
|
BigDecimal basicallyQualifiedRatio = appraisalResultRatioMap.get(AppraisalResultEnum.BASICALLY_QUALIFIED.getCode());
|
|
|
- BigDecimal unQualifiedRatio = appraisalResultRatioMap.get(AppraisalResultEnum.UN_QUALIFIED.getCode());
|
|
|
+ BigDecimal unQualifiedRatio = appraisalResultRatioMap.get(AppraisalResultEnum.UN_QUALIFIED.getCode());*/
|
|
|
|
|
|
// 计算各等级的理论人数(四舍五入)
|
|
|
- int expectedExcellent = calculateExpectedCount(totalRankCount, excellentRatio);
|
|
|
+ /* int expectedExcellent = calculateExpectedCount(totalRankCount, excellentRatio);
|
|
|
int expectedQualified = calculateExpectedCount(totalRankCount, qualifiedRatio);
|
|
|
int expectedBasic = calculateExpectedCount(totalRankCount, basicallyQualifiedRatio);
|
|
|
- int expectedFail = calculateExpectedCount(totalRankCount, unQualifiedRatio);
|
|
|
-
|
|
|
+ int expectedFail = calculateExpectedCount(totalRankCount, unQualifiedRatio);*/
|
|
|
|
|
|
+ DynamicObject data = rowDataEntity.getDataEntity();
|
|
|
+ int topRanks = data.getInt(PerfRankMgmtConstant.NCKD_TOPRANKS);
|
|
|
+ int expectedExcellent = data.getInt(PerfRankMgmtConstant.NCKD_EXCELLENTS);
|
|
|
+ int expectedBasic = data.getInt(PerfRankMgmtConstant.NCKD_BASICS);
|
|
|
+ int expectedFail = data.getInt(PerfRankMgmtConstant.NCKD_FAILS);
|
|
|
+ int expectedQualified = topRanks - expectedExcellent - expectedBasic - expectedFail;
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+ // 集团本部不校验
|
|
|
+ DynamicObject adminOrg = data.getDynamicObject(FormConstant.NCKD_ADMINORG);
|
|
|
+ DynamicObject secondOrg = adminOrg.getDynamicObject(FormConstant.NCKD_SECONDORG);
|
|
|
+ if(secondOrg == null || !secondOrg.getString(FormConstant.NUMBER_KEY).contains("0101")){
|
|
|
+ // 校验各等级人数是否在合理范围内(允许±1的差异)
|
|
|
+ /*validateCountRange(AppraisalResultEnum.EXCELLENT.getName(), excellentCount, expectedExcellent, totalRankCount,rowDataEntity);
|
|
|
+ validateCountRange(AppraisalResultEnum.QUALIFIED.getName(), qualifiedCount, expectedQualified, totalRankCount,rowDataEntity);
|
|
|
+ validateCountRange(AppraisalResultEnum.BASICALLY_QUALIFIED.getName(), basicCount, expectedBasic, totalRankCount,rowDataEntity);
|
|
|
+ validateCountRange(AppraisalResultEnum.UN_QUALIFIED.getName(), failCount, expectedFail, totalRankCount,rowDataEntity);*/
|
|
|
+ }
|
|
|
|
|
|
- // 校验各等级人数是否在合理范围内(允许±1的差异)
|
|
|
- validateCountRange(AppraisalResultEnum.EXCELLENT.getName(), excellentCount, expectedExcellent, totalRankCount,rowDataEntity);
|
|
|
- validateCountRange(AppraisalResultEnum.QUALIFIED.getName(), qualifiedCount, expectedQualified, totalRankCount,rowDataEntity);
|
|
|
- validateCountRange(AppraisalResultEnum.BASICALLY_QUALIFIED.getName(), basicCount, expectedBasic, totalRankCount,rowDataEntity);
|
|
|
- validateCountRange(AppraisalResultEnum.UN_QUALIFIED.getName(), failCount, expectedFail, totalRankCount,rowDataEntity);
|
|
|
|
|
|
}
|
|
|
|
|
|
@@ -365,26 +379,30 @@ public class PerfRankMgmtSaveValidate extends AbstractValidator {
|
|
|
*/
|
|
|
private void checkCountConsistency(DynamicObject data, ValidationContext context,
|
|
|
ExtendedDataEntity rowDataEntity) {
|
|
|
- int topRanks = data.getInt(PerfRankMgmtConstant.NCKD_TOPRANKS);
|
|
|
- int allowanceRanks = data.getInt(PerfRankMgmtConstant.NCKD_ALLOWANCERANKS);
|
|
|
- int fails = data.getInt(PerfRankMgmtConstant.NCKD_FAILS);
|
|
|
- int basics = data.getInt(PerfRankMgmtConstant.NCKD_BASICS);
|
|
|
- int excellents = data.getInt(PerfRankMgmtConstant.NCKD_EXCELLENTS);
|
|
|
-
|
|
|
- if (topRanks != context.totalRankCount) {
|
|
|
- this.addFatalErrorMessage(rowDataEntity, "总排名人数与实际录入数据不一致;\n");
|
|
|
- }
|
|
|
- if (allowanceRanks != context.allowanceRankCount) {
|
|
|
- this.addFatalErrorMessage(rowDataEntity, "R排名人数与实际录入数据不一致;\n");
|
|
|
- }
|
|
|
- if (fails != context.failCount) {
|
|
|
- this.addFatalErrorMessage(rowDataEntity, "不合格人数与实际录入数据不一致;\n");
|
|
|
- }
|
|
|
- if (basics != context.basicCount) {
|
|
|
- this.addFatalErrorMessage(rowDataEntity, "基本人数与实际录入数据不一致;\n");
|
|
|
- }
|
|
|
- if (excellents != context.excellentCount) {
|
|
|
- this.addFatalErrorMessage(rowDataEntity, "优秀人数与实际录入数据不一致;\n");
|
|
|
+ DynamicObject adminOrg = data.getDynamicObject(FormConstant.NCKD_ADMINORG);
|
|
|
+ DynamicObject secondOrg = adminOrg.getDynamicObject(FormConstant.NCKD_SECONDORG);
|
|
|
+ if(secondOrg == null || !secondOrg.getString(FormConstant.NUMBER_KEY).contains("0101")) {
|
|
|
+ int topRanks = data.getInt(PerfRankMgmtConstant.NCKD_TOPRANKS);
|
|
|
+ int allowanceRanks = data.getInt(PerfRankMgmtConstant.NCKD_ALLOWANCERANKS);
|
|
|
+ int fails = data.getInt(PerfRankMgmtConstant.NCKD_FAILS);
|
|
|
+ int basics = data.getInt(PerfRankMgmtConstant.NCKD_BASICS);
|
|
|
+ int excellents = data.getInt(PerfRankMgmtConstant.NCKD_EXCELLENTS);
|
|
|
+
|
|
|
+ if (topRanks != context.totalRankCount) {
|
|
|
+ this.addFatalErrorMessage(rowDataEntity, "总排名人数与实际录入数据不一致;\n");
|
|
|
+ }
|
|
|
+ if (allowanceRanks != context.allowanceRankCount) {
|
|
|
+ this.addFatalErrorMessage(rowDataEntity, "R排名人数与实际录入数据不一致;\n");
|
|
|
+ }
|
|
|
+ if (fails != context.failCount) {
|
|
|
+ this.addFatalErrorMessage(rowDataEntity, "不合格人数与实际录入数据不一致;\n");
|
|
|
+ }
|
|
|
+ if (basics != context.basicCount) {
|
|
|
+ this.addFatalErrorMessage(rowDataEntity, "基本人数与实际录入数据不一致;\n");
|
|
|
+ }
|
|
|
+ if (excellents != context.excellentCount) {
|
|
|
+ this.addFatalErrorMessage(rowDataEntity, "优秀人数与实际录入数据不一致;\n");
|
|
|
+ }
|
|
|
}
|
|
|
}
|
|
|
|