浏览代码

业务处理单改造

徐昊 10 月之前
父节点
当前提交
52cf0655e8

+ 32 - 1
src/main/java/fi/em/editPlugin/BusinessProcessingEditPlugin.java

@@ -25,6 +25,8 @@ public class BusinessProcessingEditPlugin extends AbstractListPlugin implements
     public static String btn_cysgzmx = "cysgzmx"; //冲应收挂账
     public static String btn_cyfgzmx = "cyfgzmx"; //冲应付挂账
     public static String btn_pzht = "pzht"; //凭租合同
+    public static String btn_skskzh = "skskzh"; //收款供应商
+    public static String btn_fkfkzh = "fkfkzh"; //付款供应商
     public static String nckd_agentparameterf7 = "nckd_ywclskf";//动态列表
     private static String bos_org = "bos_org"; //组织金额标识
 
@@ -58,6 +60,24 @@ public class BusinessProcessingEditPlugin extends AbstractListPlugin implements
             String payeenamev = dynamicObject.getString("number");//当前单据付款供应商编码
             nckd_agentparameterf7="nckd_pzhtf7";
             showParameter(nckd_agentparameterf7, btn_pzht,payeenamev,btn_pzht);//调用弹出页面
+        }else if (btn_skskzh.equals(e.getOperateKey())){
+            Object value = this.getModel().getValue("nckd_payeenamev");//获取当前收款信息付款人
+            DynamicObject dynamicObject = (DynamicObject)value;
+            if (dynamicObject == null){
+                throw new KDBizException("收款信息付款人为空!");
+            }
+            String payeenamev = dynamicObject.getString("number");//当前单据付款供应商编码
+            nckd_agentparameterf7="nckd_supplierbank";
+            showParameter(nckd_agentparameterf7, btn_skskzh,payeenamev,btn_skskzh);//调用弹出页面
+        }else if (btn_fkfkzh.equals(e.getOperateKey())){
+            Object value = this.getModel().getValue("nckd_payeenamevs");//获取当前付款信息付款人
+            DynamicObject dynamicObject = (DynamicObject)value;
+            if (dynamicObject == null){
+                throw new KDBizException("付款信息收款人为空!");
+            }
+            String payeenamev = dynamicObject.getString("number");//当前单据付款供应商编码
+            nckd_agentparameterf7="nckd_supplierbank";
+            showParameter(nckd_agentparameterf7, btn_fkfkzh,payeenamev,btn_fkfkzh);//调用弹出页面
         }
     }
 
@@ -196,7 +216,18 @@ public class BusinessProcessingEditPlugin extends AbstractListPlugin implements
                         if(nckdCyffyxm!=null && !nckdCyffyxm.isEmpty()){
                             this.getModel().setValue("nckd_cyffyxm", nckd_cyffyxm, rowIndex);
                         }
-
+                    }else if (btn_skskzh.equals(controls)) {
+                        String nckd_bankaccount = reJo.getString("nckd_bankaccount");
+                        String nckd_accountname = reJo.getString("nckd_accountname");
+                        this.getModel().setValue("nckd_payeebanknumlb", nckd_bankaccount);
+                        this.getModel().setValue("nckd_payeebanknamelb", nckd_accountname);
+                    }else if (btn_fkfkzh.equals(controls)) {
+                        String nckd_bankaccount = reJo.getString("nckd_bankaccount");
+                        String nckd_accountname = reJo.getString("nckd_accountname");
+                        this.getModel().setValue("nckd_payeebanknumlbs", nckd_bankaccount);
+                        this.getModel().setValue("nckd_payeebanknamelbs", nckd_accountname);
+                        this.getView().updateView("nckd_payeebanknumlbs");
+                        this.getView().updateView("nckd_payeebanknamelbs");
                     }
                 }
                 //刷新分录

+ 116 - 29
src/main/java/fi/em/formPlugin/BusinessProcessingPlugin.java

@@ -87,7 +87,7 @@ public class BusinessProcessingPlugin extends AbstractFormPlugin implements Plug
         if (payeenamev == null || payeenamev.isEmpty()) {
             throw new KDBizException("收款处理付款人为空!");
         }
-        if("cysgzmx".equals(controls)) {
+        if ("cysgzmx".equals(controls)) {
             List<JSONObject> resdate = new ArrayList<>();
             //历史数据清除
             this.getModel().deleteEntryData("nckd_entryentity");
@@ -124,23 +124,45 @@ public class BusinessProcessingPlugin extends AbstractFormPlugin implements Plug
                     this.getModel().setValue("nckd_cysgzbalance", settleamount, rowIndex);
                     this.getModel().setValue("nckd_cyscxbalance", settleamount, rowIndex);
                     //分录数据
-                    if(eMaterial!=null){this.getModel().setValue("nckd_materielfield", eMaterial, rowIndex);}
-                    if(eExpenseitem!=null){this.getModel().setValue("nckd_cysfyxm", eExpenseitem, rowIndex);}
-                    if(settleorg!=null){this.getModel().setValue("nckd_cyssection", settleorg, rowIndex);}
-                    if(eActamt!=null){this.getModel().setValue("nckd_cyssfje", eActamt, rowIndex);}
-                    if(costcenter!=null){this.getModel().setValue("nckd_costcenter", costcenter, rowIndex);}
-                    if(productline!=null){this.getModel().setValue("nckd_productline", productline, rowIndex);}
-                    if(eDiscountamt!=null){this.getModel().setValue("nckd_e_discountamt", eDiscountamt, rowIndex);}
-                    if(project!=null){this.getModel().setValue("nckd_project", project, rowIndex);}
-                    if(eFundflowitem!=null){this.getModel().setValue("nckd_e_fundflowitem", eFundflowitem, rowIndex);}
-                    if(contractnumber!=null){this.getModel().setValue("nckd_contractnumber", contractnumber, rowIndex);}
+                    if (eMaterial != null) {
+                        this.getModel().setValue("nckd_materielfield", eMaterial, rowIndex);
+                    }
+                    if (eExpenseitem != null) {
+                        this.getModel().setValue("nckd_cysfyxm", eExpenseitem, rowIndex);
+                    }
+                    if (settleorg != null) {
+                        this.getModel().setValue("nckd_cyssection", settleorg, rowIndex);
+                    }
+                    if (eActamt != null) {
+                        this.getModel().setValue("nckd_cyssfje", eActamt, rowIndex);
+                    }
+                    if (costcenter != null) {
+                        this.getModel().setValue("nckd_costcenter", costcenter, rowIndex);
+                    }
+                    if (productline != null) {
+                        this.getModel().setValue("nckd_productline", productline, rowIndex);
+                    }
+                    if (eDiscountamt != null) {
+                        this.getModel().setValue("nckd_e_discountamt", eDiscountamt, rowIndex);
+                    }
+                    if (project != null) {
+                        this.getModel().setValue("nckd_project", project, rowIndex);
+                    }
+                    if (eFundflowitem != null) {
+                        this.getModel().setValue("nckd_e_fundflowitem", eFundflowitem, rowIndex);
+                    }
+                    if (contractnumber != null) {
+                        this.getModel().setValue("nckd_contractnumber", contractnumber, rowIndex);
+                    }
                     //将选中的数据放到缓存中
                     JSONObject obj = new JSONObject();
                     obj.put("nckd_cysnumber", billno);
                     obj.put("nckd_cysdata", bizdate);
-                    if(eExpenseitem!=null){
+                    if (eExpenseitem != null) {
                         obj.put("nckd_cysfyxm", eExpenseitem.getString("number"));
-                    }else { obj.put("nckd_cysfyxm", "");}
+                    } else {
+                        obj.put("nckd_cysfyxm", "");
+                    }
                     obj.put("nckd_cysgzbalance", settleamount);
                     obj.put("controls", controls);
                     obj.put("billtype", billtype);
@@ -152,7 +174,7 @@ public class BusinessProcessingPlugin extends AbstractFormPlugin implements Plug
             String pageId = this.getView().getPageId();
             String listStr = SerializationUtils.toJsonString(resdate);
             this.getPageCache().put(pageId, listStr);
-        }else if("cyfgzmx".equals(controls)){
+        } else if ("cyfgzmx".equals(controls)) {
             List<JSONObject> resdate = new ArrayList<>();
             //历史数据清除
             this.getModel().deleteEntryData("nckd_entryentity");
@@ -186,13 +208,21 @@ public class BusinessProcessingPlugin extends AbstractFormPlugin implements Plug
                     this.getModel().setValue("nckd_cyfgzbalance", settleamount, rowIndex);
                     this.getModel().setValue("nckd_cyfcxbalance", settleamount, rowIndex);
                     //分录字段
-                    if(material!=null){this.getModel().setValue("nckd_materielfield",material , rowIndex);}
+                    if (material != null) {
+                        this.getModel().setValue("nckd_materielfield", material, rowIndex);
+                    }
                     this.getModel().setValue("nckd_spectype", spectype, rowIndex);
-                    if(expenseitem!=null){this.getModel().setValue("nckd_expenseitem",expenseitem , rowIndex);}
-                    if(measureunit!=null){this.getModel().setValue("nckd_measureunit",measureunit , rowIndex);}
-                    this.getModel().setValue("nckd_quantity",quantity , rowIndex);
-                    this.getModel().setValue("nckd_price",price , rowIndex);
-                    if(taxrateid!=null){this.getModel().setValue("nckd_taxrateid",taxrateid , rowIndex);}
+                    if (expenseitem != null) {
+                        this.getModel().setValue("nckd_expenseitem", expenseitem, rowIndex);
+                    }
+                    if (measureunit != null) {
+                        this.getModel().setValue("nckd_measureunit", measureunit, rowIndex);
+                    }
+                    this.getModel().setValue("nckd_quantity", quantity, rowIndex);
+                    this.getModel().setValue("nckd_price", price, rowIndex);
+                    if (taxrateid != null) {
+                        this.getModel().setValue("nckd_taxrateid", taxrateid, rowIndex);
+                    }
                     this.getModel().setValue("nckd_discountmode", discountmode, rowIndex);
                     //将选中的数据放到缓存中
                     JSONObject obj = new JSONObject();
@@ -200,20 +230,21 @@ public class BusinessProcessingPlugin extends AbstractFormPlugin implements Plug
                     obj.put("nckd_cyfwldw", "");
                     obj.put("nckd_cyfdata", bizdate);
                     obj.put("nckd_cyfgzbalance", settleamount);
-                    if(expenseitem!=null){
+                    if (expenseitem != null) {
                         obj.put("nckd_cyffyxm", expenseitem.getString("number"));
-                    }else { obj.put("nckd_cyffyxm", "");}
+                    } else {
+                        obj.put("nckd_cyffyxm", "");
+                    }
                     obj.put("controls", controls);
                     obj.put("billtype", billtype);
                     resdate.add(obj);
                 }
 
             }
-
             String pageId = this.getView().getPageId();
             String listStr = SerializationUtils.toJsonString(resdate);
             this.getPageCache().put(pageId, listStr);
-        }else if ("pzht".equals(controls)) {
+        } else if ("pzht".equals(controls)) {
             List<JSONObject> resdate = new ArrayList<>();
             //历史数据清除
             this.getModel().deleteEntryData("nckd_entryentity");
@@ -221,12 +252,12 @@ public class BusinessProcessingPlugin extends AbstractFormPlugin implements Plug
             QFilter nckd_orgamountFilter = new QFilter("org.number", QCP.equals, payeenamev);
             nckd_orgamountFilter.and("status", QCP.equals, "C");
             nckd_orgamountFilter.and("nckd_amountfield1", QCP.large_than, new BigDecimal(0));
-            nckd_orgamountFilter.and("nckd_amountfield1", QCP.is_notnull,"");
+            nckd_orgamountFilter.and("nckd_amountfield1", QCP.is_notnull, "");
             DynamicObject[] fa_lease_contract = BusinessDataServiceHelper.load("fa_lease_contract", "id", new QFilter[]{nckd_orgamountFilter});
             for (int c = 0; c < fa_lease_contract.length; c++) {
                 //当前单头
                 DynamicObject dynamicObject = BusinessDataServiceHelper.loadSingle(fa_lease_contract[c].getPkValue(), fa_lease_contract[c].getDynamicObjectType().getName());
-               //核算组织
+                //核算组织
                 DynamicObject org = dynamicObject.getDynamicObject("org");
                 //合同号
                 String number = dynamicObject.getString("number");
@@ -264,13 +295,69 @@ public class BusinessProcessingPlugin extends AbstractFormPlugin implements Plug
                 obj.put("billtype", billtype);
                 resdate.add(obj);
             }
-
             String pageId = this.getView().getPageId();
             String listStr = SerializationUtils.toJsonString(resdate);
             this.getPageCache().put(pageId, listStr);
+        } else if ("skskzh".equals(controls)) {
+            List<JSONObject> resdate = new ArrayList<>();
+            //历史数据清除
+            this.getModel().deleteEntryData("nckd_entryentity");
+            //构建查询供应商参数
+            QFilter nckd_orgamountFilter = new QFilter("number", QCP.equals, payeenamev);
+            DynamicObject[] fa_lease_contract = BusinessDataServiceHelper.load("bd_supplier", "id", new QFilter[]{nckd_orgamountFilter});
+            for (int c = 0; c < fa_lease_contract.length; c++) {
+                //当前单头
+                DynamicObject dynamicObject = BusinessDataServiceHelper.loadSingle(fa_lease_contract[c].getPkValue(), fa_lease_contract[c].getDynamicObjectType().getName());
+                for (DynamicObject entryentity : dynamicObject.getDynamicObjectCollection("entry_bank")) {
+                    String bankaccount = entryentity.getString("bankaccount");
+                    String accountname = entryentity.getString("accountname");
+                    int rowIndex = this.getModel().createNewEntryRow("nckd_entryentity");
+                    //赋值给新增分录
+                    this.getModel().setValue("nckd_bankaccount", bankaccount, rowIndex);
+                    this.getModel().setValue("nckd_accountname", accountname, rowIndex);
+                    //将选中的数据放到缓存中
+                    JSONObject obj = new JSONObject();
+                    obj.put("nckd_bankaccount", bankaccount);
+                    obj.put("nckd_accountname", accountname);
+                    obj.put("controls", controls);
+                    obj.put("billtype", billtype);
+                    resdate.add(obj);
+                }
+                String pageId = this.getView().getPageId();
+                String listStr = SerializationUtils.toJsonString(resdate);
+                this.getPageCache().put(pageId, listStr);
+            }
+        }else if ("fkfkzh".equals(controls)) {
+            List<JSONObject> resdate = new ArrayList<>();
+            //历史数据清除
+            this.getModel().deleteEntryData("nckd_entryentity");
+            //构建查询供应商参数
+            QFilter nckd_orgamountFilter = new QFilter("number", QCP.equals, payeenamev);
+            DynamicObject[] fa_lease_contract = BusinessDataServiceHelper.load("bd_supplier", "id", new QFilter[]{nckd_orgamountFilter});
+            for (int c = 0; c < fa_lease_contract.length; c++) {
+                //当前单头
+                DynamicObject dynamicObject = BusinessDataServiceHelper.loadSingle(fa_lease_contract[c].getPkValue(), fa_lease_contract[c].getDynamicObjectType().getName());
+                for (DynamicObject entryentity : dynamicObject.getDynamicObjectCollection("entry_bank")) {
+                    String bankaccount = entryentity.getString("bankaccount");
+                    String accountname = entryentity.getString("accountname");
+                    int rowIndex = this.getModel().createNewEntryRow("nckd_entryentity");
+                    //赋值给新增分录
+                    this.getModel().setValue("nckd_bankaccount", bankaccount, rowIndex);
+                    this.getModel().setValue("nckd_accountname", accountname, rowIndex);
+                    //将选中的数据放到缓存中
+                    JSONObject obj = new JSONObject();
+                    obj.put("nckd_bankaccount", bankaccount);
+                    obj.put("nckd_accountname", accountname);
+                    obj.put("controls", controls);
+                    obj.put("billtype", billtype);
+                    resdate.add(obj);
+                }
+                String pageId = this.getView().getPageId();
+                String listStr = SerializationUtils.toJsonString(resdate);
+                this.getPageCache().put(pageId, listStr);
+            }
         }
-    }
-
 
+    }
 
 }

+ 69 - 0
src/main/java/fi/em/formPlugin/YwclF7ListtenerFromPlugin.java

@@ -0,0 +1,69 @@
+package fi.em.formPlugin;
+
+import kd.bos.bill.AbstractBillPlugIn;
+import kd.bos.dataentity.entity.DynamicObject;
+import kd.bos.exception.KDBizException;
+import kd.bos.form.field.BasedataEdit;
+import kd.bos.form.field.events.BeforeF7SelectEvent;
+import kd.bos.form.field.events.BeforeF7SelectListener;
+import kd.bos.list.ListShowParameter;
+import kd.bos.orm.query.QCP;
+import kd.bos.orm.query.QFilter;
+import kd.bos.servicehelper.BusinessDataServiceHelper;
+import kd.sdk.plugin.Plugin;
+import org.apache.commons.lang.StringUtils;
+import java.util.EventObject;
+
+public class YwclF7ListtenerFromPlugin extends AbstractBillPlugIn implements Plugin, BeforeF7SelectListener {
+    private final static String nckd_orgv="nckd_orgv";//收款资金组织
+    private final static String nckd_skzh="nckd_skzh";//收款账户
+    private final static String nckd_orgvs="nckd_orgvs";//付款资金组织
+    private final static String nckd_skzhs="nckd_skzhs";//付款账户
+
+    @Override
+    public void registerListener(EventObject e) {
+        super.registerListener(e);
+        // 侦听基础资料字段的事件
+        BasedataEdit fieldEdit1 = this.getView().getControl(nckd_skzh);
+        fieldEdit1.addBeforeF7SelectListener(this);
+        BasedataEdit fieldEdit2 = this.getView().getControl(nckd_skzhs);
+        fieldEdit2.addBeforeF7SelectListener(this);
+    }
+    @Override
+    public void beforeF7Select(BeforeF7SelectEvent beforeF7SelectEvent) {
+        String fieldKey = beforeF7SelectEvent.getProperty().getName();
+        int row = beforeF7SelectEvent.getRow();
+        if (StringUtils.equals(fieldKey, nckd_skzh)){
+            this.getQFilter(beforeF7SelectEvent,nckd_skzh);
+        }
+        if (StringUtils.equals(fieldKey, nckd_skzhs)){
+            this.getQFilter(beforeF7SelectEvent,nckd_skzhs);
+        }
+    }
+    private void getQFilter(BeforeF7SelectEvent arg0,String type) {
+        DynamicObject data = (DynamicObject)this.getModel().getValue(nckd_orgv) ;
+        if(type.equals(nckd_skzh)){
+            DynamicObject skdata = (DynamicObject)this.getModel().getValue(nckd_orgv) ;
+            if(skdata ==null){
+                throw new KDBizException("收款信息资金组织为空!");
+            }
+            long orgid = skdata.getLong("id");
+            QFilter nckd_skzjFilter = new QFilter("id", QCP.equals,orgid);
+            data= BusinessDataServiceHelper.loadSingle("bos_org","id",new QFilter[] {nckd_skzjFilter});
+        } else if (type.equals(nckd_skzhs)) {
+            DynamicObject fkdata = (DynamicObject)this.getModel().getValue(nckd_orgv) ;
+            if(fkdata ==null){
+                throw new KDBizException("付款信息资金组织为空!");
+            }
+            long orgid = fkdata.getLong("id");
+            QFilter nckd_skzjFilter = new QFilter("id", QCP.equals,orgid);
+            data= BusinessDataServiceHelper.loadSingle("bos_org","id",new QFilter[] {nckd_skzjFilter});
+        }
+        QFilter filter;
+        //给库存管理基础资料添加过滤
+        filter = new QFilter("acctstatus", QCP.equals, "normal");
+        filter.and("company.id", QCP.equals,data.getLong("id"));
+        ListShowParameter showParameter = (ListShowParameter)arg0.getFormShowParameter();
+        showParameter.getListFilterParameter().setFilter(filter);
+    }
+}