Browse Source

fix(salary): 修正薪资调整数据同步逻辑

- 修改调动前后部门ID获取字段,从"id"改为"boid"
- 优化薪档变更判断逻辑,确保空值处理
- 调整岗位等级和管理层级比较逻辑,增加日志输出
- 添加调试信息打印,便于问题追踪
- 完善非空校验条件,提高代码健壮性
turborao 4 days ago
parent
commit
5ab06e2be4

+ 16 - 6
code/swc/nckd-jxccl-swc/src/main/java/nckd/jxccl/swc/init/business/SynPendingSalaryAdjDataServiceImpl.java

@@ -220,7 +220,7 @@ public class SynPendingSalaryAdjDataServiceImpl implements SynPendingSalaryAdjDa
             /**
              * 调动前
              */
-            dyn.set("nckd_oldhradminorg", transferDyn.getLong("bb_po_adminorg.id"));  //部门
+            dyn.set("nckd_oldhradminorg", transferDyn.getLong("bb_po_adminorg.boid"));  //部门
             dyn.set("nckd_oldposition", transferDyn.getLong("bb_po_position.boid"));  //岗位
             DynamicObject adjRecordDyn  = adjRecordMap.get(employeeID);
             if(adjRecordDyn != null) {
@@ -229,14 +229,16 @@ public class SynPendingSalaryAdjDataServiceImpl implements SynPendingSalaryAdjDa
             /**
              * 调动后
              */
-            dyn.set("nckd_newhradminorg", transferDyn.getLong("aorg.id"));  //部门
+            dyn.set("nckd_newhradminorg", transferDyn.getLong("aorg.boid"));  //部门
             dyn.set("nckd_newposition", transferDyn.getLong("aposition.boid"));  //岗位
             //判断薪档是否改变
             boolean isChange = calaSararyRank(transferDyn.getLong("bb_po_position.boid"), transferDyn.getLong("aposition.boid"));
             if(isChange) {
                 dyn.set("nckd_newsalaryrank", salaryRankDyn.getLong("id"));   //薪档
             }else{
-                dyn.set("nckd_newsalaryrank", adjRecordDyn.getLong("salaryrank.id"));
+                if(adjRecordDyn != null) {
+                    dyn.set("nckd_newsalaryrank", adjRecordDyn.getLong("salaryrank.id"));
+                }
             }
 
             transferCount++;
@@ -310,12 +312,12 @@ public class SynPendingSalaryAdjDataServiceImpl implements SynPendingSalaryAdjDa
 
     public boolean calaSararyRank(Long oldPosition, Long newPosition) {
 
-        if(oldPosition == null || newPosition == null) {
-            String selectField = "id,number,name,nckd_postgrade.id,jobseq.id,nckd_mgtlvldtl.nckd_mgmtlevel.id";
+        if(oldPosition != null || newPosition != null) {
+            String selectField = "id,number,name,nckd_postgrade.id,nckd_mgtlvldtl.nckd_mgmtlevel.id";
             QFilter qFilter = new QFilter("id", QCP.equals, oldPosition);
             DynamicObject oldPositionDyn = QueryServiceHelper.queryOne("hbpm_positionhr", selectField, new QFilter[]{qFilter});
 
-            String selectField1 = "id,number,name,nckd_postgrade.id,jobseq.id,nckd_mgtlvldtl.nckd_mgmtlevel.id";
+            String selectField1 = "id,number,name,nckd_postgrade.id,nckd_mgtlvldtl.nckd_mgmtlevel.id";
             QFilter qFilter1 = new QFilter("id", QCP.equals, newPosition);
             DynamicObject newPositionDyn = QueryServiceHelper.queryOne("hbpm_positionhr", selectField1, new QFilter[]{qFilter1});
             //岗级
@@ -325,6 +327,14 @@ public class SynPendingSalaryAdjDataServiceImpl implements SynPendingSalaryAdjDa
             Long oldMgtLevel = EmptyUtil.isEmpty(oldPositionDyn.getLong("nckd_mgtlvldtl.nckd_mgmtlevel.id")) ? 0L : oldPositionDyn.getLong("nckd_mgtlvldtl.nckd_mgmtlevel.id");
             Long newMgtLevel = EmptyUtil.isEmpty(newPositionDyn.getLong("nckd_mgtlvldtl.nckd_mgmtlevel.id")) ? 0L : newPositionDyn.getLong("nckd_mgtlvldtl.nckd_mgmtlevel.id");
 
+            System.out.println("原岗位ID:"+oldPosition+" 现岗位ID:"+newPosition);
+            System.out.println("原岗位岗位等级:"+oldPostGrade+" 现岗位岗位等级:"+newPostGrade);
+            System.out.println("原岗位管理层级:"+oldMgtLevel+" 现岗位管理层级:"+newMgtLevel);
+
+            logger.info("原岗位ID:"+oldPosition+" 现岗位ID:"+newPosition
+                    +"原岗位岗位等级:"+oldPostGrade+" 现岗位岗位等级:"+newPostGrade
+                     +"原岗位管理层级:"+oldMgtLevel+" 现岗位管理层级:"+newMgtLevel);
+
             if (!oldPostGrade.equals(newPostGrade) && !oldMgtLevel.equals(newMgtLevel)){
                 return true;
             }