Pārlūkot izejas kodu

feat(form): 优化表单插件的数据处理逻辑

- 修改 AbstractStructApprFormPlugin 中的账单状态设置方式,使用 toString() 方法替代 getValue()
- 在 SubcorpChiefSalStdFormPlugin 中移除多余的 propertyChanged 方法重写并添加 ChangeData 导入
- 扩展 TtlWgAdjdeCompFormPlugin 的字段映射功能,增加 nckd_itemname 字段的同步处理
- 增强 TtlWgExecDeCompFormPlugin 的字段值传递逻辑,支持 wagetypead 和 itemnamead 字段映射
- 重构 UnitStBudgetApplyFormPlugin 的预算数据复制功能,添加调整单数据查询和合并逻辑
- 实现 copyBudgetData 方法的多参数版本,支持不同表单类型的差异化数据处理
wyc 3 dienas atpakaļ
vecāks
revīzija
e37f1d1f8d

+ 1 - 1
code/swc/nckd-jxccl-swc/src/main/java/nckd/jxccl/swc/mas/plugin/form/structappr/AbstractStructApprFormPlugin.java

@@ -251,7 +251,7 @@ public abstract class AbstractStructApprFormPlugin extends AbstractFormPlugin im
                 HRDynamicObjectUtils.copy(data, newChangeEntity);
                 newChangeEntity.set(FormConstant.NCKD_DESCRIPTION, data.getString(FormConstant.DESCRIPTION_KEY));
                 newChangeEntity.set(entityId, data);
-                newChangeEntity.set(FormConstant.BILL_STATUS_KEY, BillStatus.A.getValue());
+                newChangeEntity.set(FormConstant.BILL_STATUS_KEY, BillStatus.A.toString());
 
                 // 变更前
                 DynamicObjectCollection newEntryColl = newChangeEntity.getDynamicObjectCollection(FormConstant.NCKD_ENTRYENTITY);

+ 1 - 5
code/swc/nckd-jxccl-swc/src/main/java/nckd/jxccl/swc/mas/plugin/form/structappr/SubcorpChiefSalStdFormPlugin.java

@@ -4,6 +4,7 @@ import kd.bos.dataentity.entity.DynamicObject;
 import kd.bos.dataentity.entity.DynamicObjectCollection;
 import kd.bos.entity.constant.StatusEnum;
 import kd.bos.entity.datamodel.events.AfterAddRowEventArgs;
+import kd.bos.entity.datamodel.events.ChangeData;
 import kd.bos.entity.datamodel.events.PropertyChangedArgs;
 import kd.bos.form.events.AfterDoOperationEventArgs;
 import kd.bos.orm.query.QCP;
@@ -52,11 +53,6 @@ public class SubcorpChiefSalStdFormPlugin extends AbstractStructApprFormPlugin i
         super.afterAddRow(e);
     }
 
-    @Override
-    public void propertyChanged(PropertyChangedArgs e) {
-        super.propertyChanged(e);
-    }
-
     @Override
     protected String getChangeEntityFormId() {
         return MasConstant.SUBCPCHFSALSTDCHG_ENTITYID;

+ 2 - 0
code/swc/nckd-jxccl-swc/src/main/java/nckd/jxccl/swc/stm/plugin/form/ttlwg/TtlWgAdjdeCompFormPlugin.java

@@ -121,6 +121,8 @@ public class TtlWgAdjdeCompFormPlugin extends AbstractFormPlugin implements Plug
                 this.getModel().setValue(name, source.get(name));
                 if("nckd_wagetype".equalsIgnoreCase( name)){
                     this.getModel().setValue("nckd_wagetypead", source.get(name));
+                }else if("nckd_itemname".equalsIgnoreCase( name)){
+                    this.getModel().setValue("nckd_itemnamead", source.get(name));
                 }
             }
         }

+ 5 - 0
code/swc/nckd-jxccl-swc/src/main/java/nckd/jxccl/swc/stm/plugin/form/ttlwg/TtlWgExecDeCompFormPlugin.java

@@ -119,6 +119,11 @@ public class TtlWgExecDeCompFormPlugin extends AbstractFormPlugin implements Plu
             if (name.indexOf("nckd_") > -1 && this.getModel().getDataEntityType().getProperties().containsKey(name)  && !name.endsWith("ex") && StmConstant.IGNORE_FIELDS.stream().noneMatch(ignoreField -> ignoreField.equalsIgnoreCase(name))) {
                 this.getModel().setValue(name, source.get(name));
             }
+            if("nckd_wagetypead".equalsIgnoreCase( name)){
+                this.getModel().setValue("nckd_wagetypeex", source.get(name));
+            }else if("nckd_itemnamead".equalsIgnoreCase( name)){
+                this.getModel().setValue("nckd_itemnameex", source.get(name));
+            }
         }
     }
 }

+ 45 - 6
code/swc/nckd-jxccl-swc/src/main/java/nckd/jxccl/swc/stm/plugin/form/unitst/UnitStBudgetApplyFormPlugin.java

@@ -239,8 +239,29 @@ public class UnitStBudgetApplyFormPlugin extends AbstractFormPlugin implements P
                     this.getView().showTipNotification("未加载到数据,根据【年度】、【填报单位】未加载到\"单位工资总额预算申报\"数据!");
                     return;
                 }
+                DynamicObject sourceAdj = null;
+                //查询调整单
+                if(formId.equalsIgnoreCase(StmConstant.UNITSTSETTLEMENT_ENTITYID)){
+                    QFilter adjFilter = new QFilter(StmConstant.UNITSTBUDGETAPPLY_ENTITYID, QCP.equals,id)
+                            .and(QFilterCommonHelper.getBillStatusFilter());
+                    DynamicObjectCollection unitStBudgetAdjColl = QueryServiceHelper.query(
+                            StmConstant.UNITSTBUDGETADJUST_ENTITYID,
+                            queryFieldBuilder.buildSelect(),
+                            new QFilter[]{qFilter},
+                            queryFieldBuilder.buildOrder());
+                    long adjId = 0;
+                    if (!unitStBudgetAdjColl.isEmpty()) {
+                        adjId = unitStBudgetAdjColl.get(0).getLong(FormConstant.ID_KEY);
+                        MainEntityType adjEntityType = EntityMetadataCache.getDataEntityType(StmConstant.UNITSTBUDGETADJUST_ENTITYID);
+                        DynamicObject[] adjLoad = BusinessDataServiceHelper.load(new Long[]{adjId}, adjEntityType);
+                        if(adjLoad != null && adjLoad.length > 0){
+                            sourceAdj = adjLoad[0];
+                        }
+                    }
+
+                }
 
-                copyBudgetData(load[0]);
+                copyBudgetData(formId,load[0],sourceAdj);
                 DynamicObject dynamicObject = EntityHelper.newEntity(StmConstant.UNITSTBUDGETAPPLY_ENTITYID, load[0].getLong(StmConstant.ID_KEY));
                 this.getModel().setValue(StmConstant.UNITSTBUDGETAPPLY_ENTITYID, dynamicObject);
                 this.getView().showSuccessNotification("数据加载成功!");
@@ -262,12 +283,30 @@ public class UnitStBudgetApplyFormPlugin extends AbstractFormPlugin implements P
     }
 
     // 提取复制数据逻辑
-    private void copyBudgetData(DynamicObject source) {
+    private void copyBudgetData(String formId,DynamicObject source,DynamicObject sourceAdj) {
         DataEntityPropertyCollection properties = source.getDynamicObjectType().getProperties();
-        for (IDataEntityProperty property : properties) {
-            String name = property.getName();
-            if (name.indexOf("nckd_") > -1 && this.getModel().getDataEntityType().getProperties().containsKey(name+"ls")) {
-                this.getModel().setValue(name+"ls", source.get(name));
+        if(formId.equalsIgnoreCase(StmConstant.UNITSTBUDGETADJUST_ENTITYID)) {
+            for (IDataEntityProperty property : properties) {
+                String name = property.getName();
+                if (name.indexOf("nckd_") > -1 && this.getModel().getDataEntityType().getProperties().containsKey(name + "ls")) {
+                    this.getModel().setValue(name + "ls", source.get(name));
+                }
+            }
+        }else{
+            for (IDataEntityProperty property : properties) {
+                String name = property.getName();
+                if (name.indexOf("nckd_") > -1 && this.getModel().getDataEntityType().getProperties().containsKey(name + "ls")) {
+                    this.getModel().setValue(name + "ls", source.get(name));
+                }
+            }
+            if(sourceAdj != null){
+                DataEntityPropertyCollection propertiesAdj = sourceAdj.getDynamicObjectType().getProperties();
+                for (IDataEntityProperty property : propertiesAdj) {
+                    String name = property.getName();
+                    if (name.indexOf("nckd_") > -1 && this.getModel().getDataEntityType().getProperties().containsKey(name + "ad")) {
+                        this.getModel().setValue(name + "ad", sourceAdj.get(name));
+                    }
+                }
             }
         }
     }