Переглянути джерело

feat(form): 更新收入证明单据插件功能

- 添加 StringUtils 和 PropertyChangedArgs 导入依赖
- 重写 afterBindData 方法替代 initialize 方法
- 设置 nckd_daterange 字段为禁用状态
- 实现 propertyChanged 方法处理日期范围变化
- 添加薪资明细获取的辅助方法
- 集成自定义项目和薪资项目的配置映射功能
turborao 3 днів тому
батько
коміт
bf95c6cfa2

+ 26 - 2
code/swc/nckd-jxccl-swc/src/main/java/nckd/jxccl/swc/hcss/formplugin/IncomeProofBillExPlugin.java

@@ -4,9 +4,11 @@ import kd.bos.algo.DataSet;
 import kd.bos.bill.AbstractBillPlugIn;
 import kd.bos.dataentity.entity.DynamicObject;
 import kd.bos.dataentity.entity.DynamicObjectCollection;
+import kd.bos.dataentity.utils.StringUtils;
 import kd.bos.db.DB;
 import kd.bos.db.DBRoute;
 import kd.bos.entity.datamodel.IDataModel;
+import kd.bos.entity.datamodel.events.PropertyChangedArgs;
 import kd.bos.entity.param.CustomParam;
 import kd.bos.form.events.BeforeDoOperationEventArgs;
 import kd.bos.form.operate.FormOperate;
@@ -37,7 +39,9 @@ public class IncomeProofBillExPlugin extends AbstractBillPlugIn {
     private static String IncomeProofBill_SalaryItems;
     private static final Log logger = LogFactory.getLog(IncomeProofBillExPlugin.class);
 
-    public void initialize() {
+    @Override
+    public void afterBindData(EventObject e) {
+        super.afterBindData(e);
 
         CustomParam customParam = new CustomParam();
         customParam.getSearchKeySet().add("INCOMEPROOFBILL_CUSTOMITEMS");
@@ -46,9 +50,9 @@ public class IncomeProofBillExPlugin extends AbstractBillPlugIn {
         IncomeProofBill_CustomItems  = cusTomMap.get("INCOMEPROOFBILL_CUSTOMITEMS");
         IncomeProofBill_SalaryItems  = cusTomMap.get("INCOMEPROOFBILL_SALARYITEMS");
 
+        this.getView().setEnable(Boolean.FALSE, "nckd_daterange");
     }
 
-
     @Override
     public void beforeDoOperation(BeforeDoOperationEventArgs args) {
 
@@ -85,6 +89,26 @@ public class IncomeProofBillExPlugin extends AbstractBillPlugIn {
         }
     }
 
+    @Override
+    public void propertyChanged(PropertyChangedArgs e) {
+        super.propertyChanged(e);
+        String fieldKey = e.getProperty().getName();
+
+        if(StringUtils.equals(this.getPageCache().get("noChange"), "true")){
+            return;
+        }
+
+        if (StringUtils.equals("nckd_startdate", fieldKey) || StringUtils.equals("nckd_enddate", fieldKey)){
+            IDataModel model = this.getModel();
+            int rowCount = model.getEntryRowCount("entryentity");
+            this.getPageCache().put("noChange", "true");
+            for(int i = 0; i < rowCount; i++) {
+                model.setValue("checkvalue", BigDecimal.ZERO.toString(), i);
+            }
+            this.getPageCache().put("noChange", "false");
+        }
+    }
+
     /**
      * 根据薪员工 +日期范围获取薪资明细
      * @return  DynamicObjectCollection