Sfoglia il codice sorgente

feat(form): 添加退休人员信息单据界面插件

- 实现自定义收入证明项目获取计算功能
- 添加字段变更监听处理逻辑
- 实现退休日期类型选择功能
- 添加页面缓存避免重复执行值更新方法
- 支持原法定退休日期和现法定退休日期的选择切换
turborao 2 giorni fa
parent
commit
bde6d85cc9

+ 50 - 0
code/swc/nckd-jxccl-swc/src/main/java/nckd/jxccl/swc/init/plugin/form/DelayedRetirementDateFormPlugin.java

@@ -0,0 +1,50 @@
+package nckd.jxccl.swc.init.plugin.form;
+
+import kd.bos.bill.AbstractBillPlugIn;
+import kd.bos.dataentity.utils.StringUtils;
+import kd.bos.entity.datamodel.IDataModel;
+import kd.bos.entity.datamodel.events.PropertyChangedArgs;
+import kd.sdk.plugin.Plugin;
+
+/**
+ * 退休人员信息  单据界面插件
+ *  @author turborao
+ *  创建时间 2026-01-09
+ *  描述 自定义收入证明项目获取计算
+ */
+@SuppressWarnings("unused")
+public class DelayedRetirementDateFormPlugin extends AbstractBillPlugIn implements Plugin {
+
+    @Override
+    public void propertyChanged(PropertyChangedArgs e) {
+
+        super.propertyChanged(e);
+
+        String fieldKey = e.getProperty().getName();
+        //因为设置其他字段时,会触发值更新方法,通过缓存“noChange”来判断,避免重复执行值更新方法
+        if(StringUtils.equals(this.getPageCache().get("noChange"), "true")){
+            return;
+        }
+
+        if (StringUtils.equals("nckd_committype", fieldKey) ){
+            IDataModel model = this.getModel();
+
+            if(model.getValue("nckd_committype") != null){
+                this.getPageCache().put("noChange", "true");
+                String commitType =   model.getValue("nckd_committype").toString();
+                Object legalDate = model.getValue("nckd_legaldate");
+                Object newLegalDate = model.getValue("nckd_newlegaldate");
+                if(StringUtils.equals(commitType, "olddate")){
+                    //原法定退休日期
+                    model.setValue("nckd_commitdate", legalDate);
+                }
+                if(StringUtils.equals(commitType, "newdate")){
+                    //现法定退休日期
+                    model.setValue("nckd_commitdate", newLegalDate);
+                }
+            }
+
+            this.getPageCache().put("noChange", "false");
+        }
+    }
+}