Просмотр исходного кода

fix(swc): 修复上年数据处理中的空指针异常

- 在设置上年数据字段前添加NCKD_ENTRYENTITY属性存在性检查
- 防止当lastYearData不包含NCKD_ENTRYENTITY属性时发生空指针异常
- 移除平均人员数量计算方法中的多余空行以优化代码格式
wyc 6 дней назад
Родитель
Сommit
8bdfc31cb5

+ 14 - 13
code/swc/nckd-jxccl-swc/src/main/java/nckd/jxccl/swc/stm/plugin/form/appr/GrpSalStlApprFormPlugin.java

@@ -101,18 +101,20 @@ public class GrpSalStlApprFormPlugin extends AbstractFormPlugin implements Plugi
                         List<DynamicObject> lastYearDataList = lastYearDataMap.get(unitId);
                         if(lastYearDataList != null && !lastYearDataList.isEmpty()){
                             DynamicObject lastYearData = lastYearDataList.get(0);
-                            //上年实际计提工资总额与应提工资总额差额
-                            entry.set(StmConstant.NCKD_LYRACTVSEXPDIFF, lastYearData.getBigDecimal(String.join(".",StmConstant.NCKD_ENTRYENTITY,StmConstant.NCKD_LYRACTVSEXPDIFF)));
-                            //上年补提或冲回以前年度差额
-                            entry.set(StmConstant.NCKD_LYRPRIORADJDIFF, lastYearData.getBigDecimal(String.join(".",StmConstant.NCKD_ENTRYENTITY,StmConstant.NCKD_LYRPRIORADJDIFF)));
-                            //上年年薪人员差额
-                            entry.set(StmConstant.NCKD_LYRANNSALDIFF, lastYearData.getBigDecimal(String.join(".",StmConstant.NCKD_ENTRYENTITY,StmConstant.NCKD_LYRANNSALDIFF)));
-                            //上年任期激励差额
-                            entry.set(StmConstant.NCKD_LYRTERMBONUSDIFF, lastYearData.getBigDecimal(String.join(".",StmConstant.NCKD_ENTRYENTITY,StmConstant.NCKD_LYRTERMBONUSDIFF)));
-                            //上年组织绩效差额
-                            entry.set(StmConstant.NCKD_LYRORGPERFDIFF, lastYearData.getBigDecimal(String.join(".",StmConstant.NCKD_ENTRYENTITY,StmConstant.NCKD_LYRORGPERFDIFF)));
-                            //上年单项工资差额
-                            entry.set(StmConstant.NCKD_LYRITEMWGDIFF, lastYearData.getBigDecimal(String.join(".",StmConstant.NCKD_ENTRYENTITY,StmConstant.NCKD_LYRITEMWGDIFF)));
+                            if(lastYearData.containsProperty(StmConstant.NCKD_ENTRYENTITY)) {
+                                //上年实际计提工资总额与应提工资总额差额
+                                entry.set(StmConstant.NCKD_LYRACTVSEXPDIFF, lastYearData.getBigDecimal(String.join(".", StmConstant.NCKD_ENTRYENTITY, StmConstant.NCKD_LYRACTVSEXPDIFF)));
+                                //上年补提或冲回以前年度差额
+                                entry.set(StmConstant.NCKD_LYRPRIORADJDIFF, lastYearData.getBigDecimal(String.join(".", StmConstant.NCKD_ENTRYENTITY, StmConstant.NCKD_LYRPRIORADJDIFF)));
+                                //上年年薪人员差额
+                                entry.set(StmConstant.NCKD_LYRANNSALDIFF, lastYearData.getBigDecimal(String.join(".", StmConstant.NCKD_ENTRYENTITY, StmConstant.NCKD_LYRANNSALDIFF)));
+                                //上年任期激励差额
+                                entry.set(StmConstant.NCKD_LYRTERMBONUSDIFF, lastYearData.getBigDecimal(String.join(".", StmConstant.NCKD_ENTRYENTITY, StmConstant.NCKD_LYRTERMBONUSDIFF)));
+                                //上年组织绩效差额
+                                entry.set(StmConstant.NCKD_LYRORGPERFDIFF, lastYearData.getBigDecimal(String.join(".", StmConstant.NCKD_ENTRYENTITY, StmConstant.NCKD_LYRORGPERFDIFF)));
+                                //上年单项工资差额
+                                entry.set(StmConstant.NCKD_LYRITEMWGDIFF, lastYearData.getBigDecimal(String.join(".", StmConstant.NCKD_ENTRYENTITY, StmConstant.NCKD_LYRITEMWGDIFF)));
+                            }
                         }
                         Result avgMasPeopleNum = avgMasPeopleNumMap.get(unitId);
                         if(avgMasPeopleNum != null) {
@@ -302,7 +304,6 @@ public class GrpSalStlApprFormPlugin extends AbstractFormPlugin implements Plugi
      */
     private Map<Long,Result> avgMasPeopleNum(Date year, List<Long> unitIds){
         Map<Long,Result> result = new HashMap<>();
-        
         // 定义常量
         final String SALARY_ITEM_NUMBER = "JT_477"; // 实发工资
         final BigDecimal MONTHS_IN_YEAR = new BigDecimal(12); // 一年的月份数