Browse Source

<feat>:新增
1、新增报销工作台处理类

wanghaiwu 13 hours ago
parent
commit
2ed366b19f

+ 49 - 0
code/jyyy/nckd-jimin-jyyy-fi/src/main/java/nckd/jimin/jyyy/fi/plugin/form/DailyApplyBillEditPlugin.java

@@ -0,0 +1,49 @@
+package nckd.jimin.jyyy.fi.plugin.form;
+
+import kd.bos.bill.AbstractBillPlugIn;
+import kd.bos.entity.property.BasedataProp;
+import kd.bos.form.field.BasedataEdit;
+import kd.bos.form.field.events.BeforeF7SelectEvent;
+import kd.bos.form.field.events.BeforeF7SelectListener;
+import kd.bos.list.ListFilterParameter;
+import kd.bos.list.ListShowParameter;
+import kd.bos.orm.query.QFilter;
+
+import java.util.EventObject;
+import java.util.List;
+import java.util.Map;
+
+/**
+ * 单据标识:费用申请单(nckd_er_dailyapplybil_ext)
+ * @author wanghaiwu_kd
+ * @date 2025/04/28
+ */
+public class DailyApplyBillEditPlugin extends AbstractBillPlugIn implements BeforeF7SelectListener {
+    public void registerListener(EventObject e) {
+        super.registerListener(e);
+
+        BasedataEdit loanBandF7 = (BasedataEdit)this.getControl("expenseitem");
+        loanBandF7.addBeforeF7SelectListener(this);
+    }
+
+    @Override
+    public void beforeF7Select(BeforeF7SelectEvent evt) {
+        String property = evt.getProperty().getName();
+        String entityId = ((BasedataProp) evt.getProperty()).getBaseEntityId();
+        int curRowIndex = evt.getRow();
+
+        if("expenseitem".equals(property)) {
+            ListShowParameter showParameter = (ListShowParameter) evt.getFormShowParameter();
+            ListFilterParameter filterParam = showParameter.getListFilterParameter();
+            List<QFilter> qFilters = filterParam.getQFilters();
+
+            Map<String, Object> customParams = this.getView().getFormShowParameter().getCustomParams();
+            if(customParams.get("nckd_viewTypeFilter") != null){
+                QFilter viewTypeFilter = QFilter.fromSerializedString(customParams.get("nckd_viewTypeFilter").toString());
+
+                qFilters.add(viewTypeFilter);
+            }
+
+        }
+    }
+}

+ 61 - 37
code/jyyy/nckd-jimin-jyyy-fi/src/main/java/nckd/jimin/jyyy/fi/plugin/form/PayBigCategoryFormPlugin.java

@@ -1,8 +1,11 @@
 package nckd.jimin.jyyy.fi.plugin.form;
 
+import com.kingdee.util.StringUtils;
 import kd.bos.bill.BillOperationStatus;
 import kd.bos.bill.BillShowParameter;
 import kd.bos.bill.OperationStatus;
+import kd.bos.dataentity.entity.DynamicObject;
+import kd.bos.dataentity.entity.DynamicObjectCollection;
 import kd.bos.form.ShowType;
 import kd.bos.form.control.Control;
 import kd.bos.form.control.Image;
@@ -12,9 +15,12 @@ import kd.bos.logging.Log;
 import kd.bos.logging.LogFactory;
 import kd.bos.orm.query.QCP;
 import kd.bos.orm.query.QFilter;
-import java.util.Arrays;
-import java.util.EventObject;
-import java.util.List;
+import kd.bos.servicehelper.BusinessDataServiceHelper;
+import nckd.jimin.jyyy.fi.common.CommonHelperUtils;
+import org.apache.commons.lang3.ObjectUtils;
+
+import java.util.*;
+import java.util.stream.Collectors;
 
 /**
  * 插件说明:表单插件
@@ -24,19 +30,35 @@ import java.util.List;
  */
 public class PayBigCategoryFormPlugin extends AbstractFormPlugin {
     private static final Log logger = LogFactory.getLog(PayBigCategoryFormPlugin.class);
-    private static final List<String> operatorKeys = Arrays.asList(
-            "nckd_imageap5", "nckd_imageap51"
-    );
+    private static Map<String, String> mapEntity = null;
+
+    private static Map<String, String> mapFilter = null;
+
+    @Override
+    public void afterBindData(EventObject e) {
+        super.afterBindData(e);
+
+        getBtnImgValues();
+    }
+
+    private void getBtnImgValues(){
+        mapEntity = CommonHelperUtils.getCommonParams("fi-paycategoryentity");
+        mapFilter = CommonHelperUtils.getCommonParams("fi-paycategoryfilter");
+    }
+
 
-    private static final List<String> neetDefaultFilterKeys = Arrays.asList(
-            ""
-    );
 
     @Override
     public void registerListener(EventObject e) {
         super.registerListener(e);
 
-        this.addClickListeners(operatorKeys.toArray(new String[]{}));
+        List<String> btnImages = new ArrayList<>();
+
+        mapEntity.forEach((key, value) -> btnImages.add(key));
+
+        this.addClickListeners(btnImages.toArray(new String[]{}));
+//        Image image1 = this.getControl("nckd_imageap5");
+//        image1.addClickListener(this);
     }
 
     @Override
@@ -46,24 +68,27 @@ public class PayBigCategoryFormPlugin extends AbstractFormPlugin {
         String imageKey = source.getKey();
 
         //图片按钮
-        if(operatorKeys.contains(imageKey)){
-            String formId = getFormId(imageKey);
-            BillShowParameter parameter = new BillShowParameter();
+        if(mapEntity != null && mapEntity.containsKey(imageKey)){
+            String formId = mapEntity.get(imageKey);
+            if(!StringUtils.isEmpty(formId)){
+                BillShowParameter parameter = new BillShowParameter();
 
-            parameter.setFormId(formId);
-            parameter.setBillStatus(BillOperationStatus.ADDNEW);
-            parameter.setStatus(OperationStatus.ADDNEW);
+                parameter.setFormId(formId);
+                parameter.setBillStatus(BillOperationStatus.ADDNEW);
+                parameter.setStatus(OperationStatus.ADDNEW);
 
-            if(neetDefaultFilterKeys.contains(imageKey)) {
-                QFilter defaultFilter = getDefaultQFilter(imageKey);
-                parameter.setCustomParam("defaultFilter", defaultFilter);
-            }
+                if(mapFilter != null && mapFilter.containsKey(imageKey)) {
+                    QFilter viewTypeQFilter = getViewTypeQFilter(imageKey);
 
-            parameter.getOpenStyle().setShowType(ShowType.MainNewTabPage);
+                    //费用大类过滤
+                    parameter.setCustomParam("nckd_viewTypeFilter", viewTypeQFilter.toSerializedString());
+                }
 
-            this.getView().showForm(parameter);
-        }
+                parameter.getOpenStyle().setShowType(ShowType.MainNewTabPage);
 
+                this.getView().showForm(parameter);
+            }
+        }
     }
 
     @Override
@@ -74,23 +99,22 @@ public class PayBigCategoryFormPlugin extends AbstractFormPlugin {
     public String getFormId(String openType){
         String formId = "";
 
-        switch(openType){
-            case "nckd_imageap5":
-                //出差申请单
-                formId = "er_tripreqbill";
-                break;
-            case "nckd_imageap51":
-                //差旅报销单
-                formId = "er_tripreimbursebill";
-                break;
-        }
-
         return formId;
     }
 
-    public QFilter getDefaultQFilter(String openType){
-        QFilter qFilter = new QFilter("enbale", QCP.equals, "1");
+    public QFilter getViewTypeQFilter(String openType){
+        if(mapFilter == null){
+            return null;
+        }
+
+        String filterValue = mapFilter.get(openType);
+        if(StringUtils.isEmpty(filterValue)) {
+            return null;
+        }
+        String[] typeStrings = filterValue.split(",");
+
+        QFilter filer = new QFilter("nckd_payviewtype.number", QCP.in, typeStrings);
 
-        return qFilter;
+        return filer;
     }
 }

+ 50 - 0
code/jyyy/nckd-jimin-jyyy-fi/src/main/java/nckd/jimin/jyyy/fi/plugin/form/PublicReimburseBillFormPlugin.java

@@ -0,0 +1,50 @@
+package nckd.jimin.jyyy.fi.plugin.form;
+
+import kd.bos.bill.AbstractBillPlugIn;
+import kd.bos.entity.property.BasedataProp;
+import kd.bos.form.field.BasedataEdit;
+import kd.bos.form.field.events.BeforeF7SelectEvent;
+import kd.bos.form.field.events.BeforeF7SelectListener;
+import kd.bos.list.ListFilterParameter;
+import kd.bos.list.ListShowParameter;
+import kd.bos.orm.query.QFilter;
+
+import java.util.EventObject;
+import java.util.List;
+import java.util.Map;
+
+/**
+ * 单据标识:对公报销单(nckd_er_publicreimbur_ext)
+ * @author wanghaiwu_kd
+ * @date 2025/04/28
+ */
+public class PublicReimburseBillFormPlugin extends AbstractBillPlugIn implements BeforeF7SelectListener {
+    @Override
+    public void registerListener(EventObject e) {
+        super.registerListener(e);
+
+        BasedataEdit loanBandF7 = (BasedataEdit)this.getControl("expenseitem");
+        loanBandF7.addBeforeF7SelectListener(this);
+    }
+
+    @Override
+    public void beforeF7Select(BeforeF7SelectEvent evt) {
+        String property = evt.getProperty().getName();
+        String entityId = ((BasedataProp) evt.getProperty()).getBaseEntityId();
+        int curRowIndex = evt.getRow();
+
+        if ("expenseitem".equals(property)) {
+            ListShowParameter showParameter = (ListShowParameter) evt.getFormShowParameter();
+            ListFilterParameter filterParam = showParameter.getListFilterParameter();
+            List<QFilter> qFilters = filterParam.getQFilters();
+
+            Map<String, Object> customParams = this.getView().getFormShowParameter().getCustomParams();
+            if (customParams.get("nckd_viewTypeFilter") != null) {
+                QFilter viewTypeFilter = (QFilter) customParams.get("nckd_viewTypeFilter");
+
+                qFilters.add(viewTypeFilter);
+            }
+
+        }
+    }
+}