瀏覽代碼

1、费用报销页面类型逻辑修改,处理多选的问题。

wanghaiwu 4 周之前
父節點
當前提交
45480cf416

+ 28 - 13
code/jyyy/nckd-jimin-jyyy-fi/src/main/java/nckd/jimin/jyyy/fi/plugin/form/DailyApplyBillEditPlugin.java

@@ -2,6 +2,7 @@ package nckd.jimin.jyyy.fi.plugin.form;
 
 
 import kd.bos.bill.AbstractBillPlugIn;
 import kd.bos.bill.AbstractBillPlugIn;
 import kd.bos.dataentity.entity.DynamicObject;
 import kd.bos.dataentity.entity.DynamicObject;
+import kd.bos.dataentity.entity.DynamicObjectCollection;
 import kd.bos.entity.datamodel.events.BizDataEventArgs;
 import kd.bos.entity.datamodel.events.BizDataEventArgs;
 import kd.bos.entity.property.BasedataProp;
 import kd.bos.entity.property.BasedataProp;
 import kd.bos.form.field.BasedataEdit;
 import kd.bos.form.field.BasedataEdit;
@@ -13,9 +14,9 @@ import kd.bos.orm.query.QCP;
 import kd.bos.orm.query.QFilter;
 import kd.bos.orm.query.QFilter;
 import kd.bos.servicehelper.BusinessDataServiceHelper;
 import kd.bos.servicehelper.BusinessDataServiceHelper;
 
 
-import java.util.EventObject;
-import java.util.List;
-import java.util.Map;
+import java.nio.charset.StandardCharsets;
+import java.util.*;
+import java.util.stream.Collectors;
 
 
 /**
 /**
  * 单据标识:费用申请单(nckd_er_dailyapplybil_ext)
  * 单据标识:费用申请单(nckd_er_dailyapplybil_ext)
@@ -51,9 +52,13 @@ public class DailyApplyBillEditPlugin extends AbstractBillPlugIn implements Befo
                 QFilter viewTypeFilter = QFilter.fromSerializedString(customParams.get("nckd_viewTypeFilter").toString());
                 QFilter viewTypeFilter = QFilter.fromSerializedString(customParams.get("nckd_viewTypeFilter").toString());
 
 
                 qFilters.add(viewTypeFilter);
                 qFilters.add(viewTypeFilter);
-            } else if(this.getModel().getValue("nckd_payviewtype") != null){
-                DynamicObject viewType = (DynamicObject) this.getModel().getValue("nckd_payviewtype");
-                QFilter viewTypeFilter = new QFilter("nckd_payviewtype.id", QCP.equals, viewType.getLong("id"));
+            } else if(this.getModel().getValue("nckd_payviewtypemul") != null){
+                DynamicObjectCollection collection = (DynamicObjectCollection)this.getModel().getValue("nckd_payviewtypemul");
+                List<Long> idList = (List)collection.stream().mapToLong((x) -> {
+                    return x.getLong("fbasedataid_id");
+                }).boxed().collect(Collectors.toList());
+
+                QFilter viewTypeFilter = new QFilter("nckd_payviewtype.id", QCP.in, idList);
 
 
                 qFilters.add(viewTypeFilter);
                 qFilters.add(viewTypeFilter);
             }
             }
@@ -68,18 +73,28 @@ public class DailyApplyBillEditPlugin extends AbstractBillPlugIn implements Befo
         if(customParams.get("viewType") != null){
         if(customParams.get("viewType") != null){
             String[] typeStrings = customParams.get("viewType").toString().split(",");
             String[] typeStrings = customParams.get("viewType").toString().split(",");
 
 
-            QFilter qFilter = new QFilter("number", QCP.equals, typeStrings[0]);
+            QFilter qFilter = new QFilter("number", QCP.in, typeStrings);
+
+            DynamicObject[] viewTypeCols = BusinessDataServiceHelper.load("nckd_payviewtype", "id, number, name", qFilter.toArray());
+            if(viewTypeCols != null && viewTypeCols.length > 0){
+                //页面类型赋值
+                this.getModel().setValue("nckd_payviewtype", viewTypeCols[0]);
+
+                List<Long> idList = Arrays.stream(viewTypeCols)
+                        .map(type ->  type.getLong("id"))
+                        .collect(Collectors.toList());
+                Object[] basedataIds = idList.toArray();
+                //页面类型多选赋值
+                this.getModel().setValue("nckd_payviewtypemul", basedataIds);
 
 
-            DynamicObject viewTypeInfo = BusinessDataServiceHelper.loadSingle("nckd_payviewtype", qFilter.toArray());
-            if(viewTypeInfo != null){
-                this.getModel().setValue("nckd_payviewtype", viewTypeInfo);
                 /***
                 /***
                  * 当页面类型为 资金类时,往来类型为  内部公司
                  * 当页面类型为 资金类时,往来类型为  内部公司
                  * turborao 2025/05/15
                  * turborao 2025/05/15
                  */
                  */
-                String viewType = viewTypeInfo.getString("name");
-                if(viewType.equals("资金类")) {
-                    this.getModel().setValue("billpayertype", "bos_org");
+                for(DynamicObject viewType : viewTypeCols){
+                    if("资金类".equals(viewType.getString("name"))) {
+                        this.getModel().setValue("billpayertype", "bos_org");
+                    }
                 }
                 }
             }
             }
         }
         }

+ 32 - 7
code/jyyy/nckd-jimin-jyyy-fi/src/main/java/nckd/jimin/jyyy/fi/plugin/form/ExpenseItemFilterFormPlugin.java

@@ -2,6 +2,7 @@ package nckd.jimin.jyyy.fi.plugin.form;
 
 
 import kd.bos.bill.AbstractBillPlugIn;
 import kd.bos.bill.AbstractBillPlugIn;
 import kd.bos.dataentity.entity.DynamicObject;
 import kd.bos.dataentity.entity.DynamicObject;
+import kd.bos.dataentity.entity.DynamicObjectCollection;
 import kd.bos.entity.datamodel.events.BizDataEventArgs;
 import kd.bos.entity.datamodel.events.BizDataEventArgs;
 import kd.bos.entity.property.BasedataProp;
 import kd.bos.entity.property.BasedataProp;
 import kd.bos.form.field.BasedataEdit;
 import kd.bos.form.field.BasedataEdit;
@@ -13,9 +14,11 @@ import kd.bos.orm.query.QCP;
 import kd.bos.orm.query.QFilter;
 import kd.bos.orm.query.QFilter;
 import kd.bos.servicehelper.BusinessDataServiceHelper;
 import kd.bos.servicehelper.BusinessDataServiceHelper;
 
 
+import java.util.Arrays;
 import java.util.EventObject;
 import java.util.EventObject;
 import java.util.List;
 import java.util.List;
 import java.util.Map;
 import java.util.Map;
+import java.util.stream.Collectors;
 
 
 /**
 /**
  * 单据标识:公共单据插件,处理费用项目过滤问题。
  * 单据标识:公共单据插件,处理费用项目过滤问题。
@@ -53,9 +56,13 @@ public class ExpenseItemFilterFormPlugin extends AbstractBillPlugIn implements B
                 QFilter viewTypeFilter = QFilter.fromSerializedString(customParams.get("nckd_viewTypeFilter").toString());
                 QFilter viewTypeFilter = QFilter.fromSerializedString(customParams.get("nckd_viewTypeFilter").toString());
 
 
                 qFilters.add(viewTypeFilter);
                 qFilters.add(viewTypeFilter);
-            } else if(this.getModel().getValue("nckd_payviewtype") != null){
-                DynamicObject viewType = (DynamicObject) this.getModel().getValue("nckd_payviewtype");
-                QFilter viewTypeFilter = new QFilter("nckd_payviewtype.id", QCP.equals, viewType.getLong("id"));
+            } else if(this.getModel().getValue("nckd_payviewtypemul") != null){
+                DynamicObjectCollection collection = (DynamicObjectCollection)this.getModel().getValue("nckd_payviewtypemul");
+                List<Long> idList = (List)collection.stream().mapToLong((x) -> {
+                    return x.getLong("fbasedataid_id");
+                }).boxed().collect(Collectors.toList());
+
+                QFilter viewTypeFilter = new QFilter("nckd_payviewtype.id", QCP.in, idList);
 
 
                 qFilters.add(viewTypeFilter);
                 qFilters.add(viewTypeFilter);
             }
             }
@@ -69,11 +76,29 @@ public class ExpenseItemFilterFormPlugin extends AbstractBillPlugIn implements B
         if(customParams.get("viewType") != null){
         if(customParams.get("viewType") != null){
             String[] typeStrings = customParams.get("viewType").toString().split(",");
             String[] typeStrings = customParams.get("viewType").toString().split(",");
 
 
-            QFilter qFilter = new QFilter("number", QCP.equals, typeStrings[0]);
+            QFilter qFilter = new QFilter("number", QCP.in, typeStrings);
+
+            DynamicObject[] viewTypeCols = BusinessDataServiceHelper.load("nckd_payviewtype", "id, number, name", qFilter.toArray());
+            if(viewTypeCols != null && viewTypeCols.length > 0){
+                //页面类型赋值
+                this.getModel().setValue("nckd_payviewtype", viewTypeCols[0]);
+
+                List<Long> idList = Arrays.stream(viewTypeCols)
+                        .map(type ->  type.getLong("id"))
+                        .collect(Collectors.toList());
+                Object[] basedataIds = idList.toArray();
+                //页面类型多选赋值
+                this.getModel().setValue("nckd_payviewtypemul", basedataIds);
 
 
-            DynamicObject viewTypeInfo = BusinessDataServiceHelper.loadSingle("nckd_payviewtype", qFilter.toArray());
-            if(viewTypeInfo != null){
-                this.getModel().setValue("nckd_payviewtype", viewTypeInfo);
+                /***
+                 * 当页面类型为 资金类时,往来类型为  内部公司
+                 * turborao 2025/05/15
+                 */
+                for(DynamicObject viewType : viewTypeCols){
+                    if("资金类".equals(viewType.getString("name"))) {
+                        this.getModel().setValue("billpayertype", "bos_org");
+                    }
+                }
             }
             }
         }
         }
     }
     }

+ 32 - 7
code/jyyy/nckd-jimin-jyyy-fi/src/main/java/nckd/jimin/jyyy/fi/plugin/form/PublicReimburseBillFormPlugin.java

@@ -2,6 +2,7 @@ package nckd.jimin.jyyy.fi.plugin.form;
 
 
 import kd.bos.bill.AbstractBillPlugIn;
 import kd.bos.bill.AbstractBillPlugIn;
 import kd.bos.dataentity.entity.DynamicObject;
 import kd.bos.dataentity.entity.DynamicObject;
+import kd.bos.dataentity.entity.DynamicObjectCollection;
 import kd.bos.entity.datamodel.events.BizDataEventArgs;
 import kd.bos.entity.datamodel.events.BizDataEventArgs;
 import kd.bos.entity.property.BasedataProp;
 import kd.bos.entity.property.BasedataProp;
 import kd.bos.form.field.BasedataEdit;
 import kd.bos.form.field.BasedataEdit;
@@ -13,9 +14,11 @@ import kd.bos.orm.query.QCP;
 import kd.bos.orm.query.QFilter;
 import kd.bos.orm.query.QFilter;
 import kd.bos.servicehelper.BusinessDataServiceHelper;
 import kd.bos.servicehelper.BusinessDataServiceHelper;
 
 
+import java.util.Arrays;
 import java.util.EventObject;
 import java.util.EventObject;
 import java.util.List;
 import java.util.List;
 import java.util.Map;
 import java.util.Map;
+import java.util.stream.Collectors;
 
 
 /**
 /**
  * 单据标识:对公报销单(nckd_er_publicreimbur_ext)
  * 单据标识:对公报销单(nckd_er_publicreimbur_ext)
@@ -50,9 +53,13 @@ public class PublicReimburseBillFormPlugin extends AbstractBillPlugIn implements
                 QFilter viewTypeFilter = QFilter.fromSerializedString(customParams.get("nckd_viewTypeFilter").toString());
                 QFilter viewTypeFilter = QFilter.fromSerializedString(customParams.get("nckd_viewTypeFilter").toString());
 
 
                 qFilters.add(viewTypeFilter);
                 qFilters.add(viewTypeFilter);
-            } else if(this.getModel().getValue("nckd_payviewtype") != null){
-                DynamicObject viewType = (DynamicObject) this.getModel().getValue("nckd_payviewtype");
-                QFilter viewTypeFilter = new QFilter("nckd_payviewtype.id", QCP.equals, viewType.getLong("id"));
+            } else if(this.getModel().getValue("nckd_payviewtypemul") != null){
+                DynamicObjectCollection collection = (DynamicObjectCollection)this.getModel().getValue("nckd_payviewtypemul");
+                List<Long> idList = (List)collection.stream().mapToLong((x) -> {
+                    return x.getLong("fbasedataid_id");
+                }).boxed().collect(Collectors.toList());
+
+                QFilter viewTypeFilter = new QFilter("nckd_payviewtype.id", QCP.in, idList);
 
 
                 qFilters.add(viewTypeFilter);
                 qFilters.add(viewTypeFilter);
             }
             }
@@ -67,11 +74,29 @@ public class PublicReimburseBillFormPlugin extends AbstractBillPlugIn implements
         if(customParams.get("viewType") != null){
         if(customParams.get("viewType") != null){
             String[] typeStrings = customParams.get("viewType").toString().split(",");
             String[] typeStrings = customParams.get("viewType").toString().split(",");
 
 
-            QFilter qFilter = new QFilter("number", QCP.equals, typeStrings[0]);
+            QFilter qFilter = new QFilter("number", QCP.in, typeStrings);
+
+            DynamicObject[] viewTypeCols = BusinessDataServiceHelper.load("nckd_payviewtype", "id, number, name", qFilter.toArray());
+            if(viewTypeCols != null && viewTypeCols.length > 0){
+                //页面类型赋值
+                this.getModel().setValue("nckd_payviewtype", viewTypeCols[0]);
+
+                List<Long> idList = Arrays.stream(viewTypeCols)
+                        .map(type ->  type.getLong("id"))
+                        .collect(Collectors.toList());
+                Object[] basedataIds = idList.toArray();
+                //页面类型多选赋值
+                this.getModel().setValue("nckd_payviewtypemul", basedataIds);
 
 
-            DynamicObject viewTypeInfo = BusinessDataServiceHelper.loadSingle("nckd_payviewtype", qFilter.toArray());
-            if(viewTypeInfo != null){
-                this.getModel().setValue("nckd_payviewtype", viewTypeInfo);
+                /***
+                 * 当页面类型为 资金类时,往来类型为  内部公司
+                 * turborao 2025/05/15
+                 */
+                for(DynamicObject viewType : viewTypeCols){
+                    if("资金类".equals(viewType.getString("name"))) {
+                        this.getModel().setValue("billpayertype", "bos_org");
+                    }
+                }
             }
             }
         }
         }
     }
     }