瀏覽代碼

fix(contrib): 修复导入操作中的空指针异常

- 添加 StringUtils 工具类用于字符串判空处理
- 在贡献单据操作插件中增加导入类型变量判断逻辑
- 避免从导入来源触发时因变量值为空导致的异常
- 修改企业领导分析薪资标准表单插件中的分期年份空值检查

- 防止 entry 中的分期年份字段为 null 时调用 getInt 方法引发异常
- 增加空值验证确保只在字段存在时执行初始化操作
wyc 5 天之前
父節點
當前提交
749f1d9917

+ 10 - 5
code/hr/nckd-jxccl-hr/src/main/java/nckd/jxccl/hr/psms/plugin/operate/contribution/ContribBillOpPlugin.java

@@ -21,6 +21,7 @@ import nckd.jxccl.base.common.utils.ConvertUtil;
 import nckd.jxccl.base.common.utils.StrFormatter;
 import nckd.jxccl.hr.psms.common.ContributionConstant;
 import nckd.jxccl.hr.psms.helper.ContributionHelper;
+import org.apache.commons.lang3.StringUtils;
 
 import java.math.BigDecimal;
 import java.math.RoundingMode;
@@ -131,11 +132,15 @@ public class ContribBillOpPlugin extends AbstractOperationServicePlugIn implemen
 
     @Override
     public void beforeExecuteOperationTransaction(BeforeOperationArgs e) {
-        for (DynamicObject data : e.getDataEntities()) {
-            int participants = data.getInt(ContributionConstant.NCKD_PARTICIPANTS);
-            DynamicObjectCollection dynamicObjectCollection = data.getDynamicObjectCollection(FormConstant.NCKD_ENTRYENTITY);
-            if(participants != dynamicObjectCollection.size()){
-                e.cancel = !this.showInteractionMessage(participants,dynamicObjectCollection.size());
+        //来源导入
+        String variableValue = this.getOption().getVariableValue("importtype", StringUtils.EMPTY);
+        if(StringUtils.isBlank(variableValue)) {
+            for (DynamicObject data : e.getDataEntities()) {
+                int participants = data.getInt(ContributionConstant.NCKD_PARTICIPANTS);
+                DynamicObjectCollection dynamicObjectCollection = data.getDynamicObjectCollection(FormConstant.NCKD_ENTRYENTITY);
+                if (participants != dynamicObjectCollection.size()) {
+                    e.cancel = !this.showInteractionMessage(participants, dynamicObjectCollection.size());
+                }
             }
         }
     }

+ 4 - 2
code/swc/nckd-jxccl-swc/src/main/java/nckd/jxccl/swc/mas/plugin/form/structappr/EntleaderAnlSalStdFormPlugin.java

@@ -39,8 +39,10 @@ public class EntleaderAnlSalStdFormPlugin extends AbstractStructApprFormPlugin i
         DynamicObjectCollection entryCollection = this.getModel().getEntryEntity(FormConstant.NCKD_ENTRYENTITY);
         for (int rowIndex = 0; rowIndex < entryCollection.size(); rowIndex++) {
             DynamicObject entry = entryCollection.get(rowIndex);
-            int installmentYears = entry.getInt(MasConstant.NCKD_INSTALLMENTYEARS);
-            initOperateOption(installmentYears,rowIndex);
+            if(entry.get(MasConstant.NCKD_INSTALLMENTYEARS) != null) {
+                int installmentYears = entry.getInt(MasConstant.NCKD_INSTALLMENTYEARS);
+                initOperateOption(installmentYears, rowIndex);
+            }
         }
     }