Kaynağa Gözat

业务处理单过滤

xuhao 5 ay önce
ebeveyn
işleme
988c5268d2

+ 283 - 0
src/main/java/fi/em/formPlugin/BxdBankListtenerFromPlugin.java

@@ -0,0 +1,283 @@
+package fi.em.formPlugin;
+
+import com.alibaba.druid.util.StringUtils;
+import kd.bos.bill.AbstractBillPlugIn;
+import kd.bos.dataentity.entity.DynamicObject;
+import kd.bos.entity.datamodel.ListSelectedRow;
+import kd.bos.entity.datamodel.ListSelectedRowCollection;
+import kd.bos.entity.datamodel.events.ChangeData;
+import kd.bos.entity.datamodel.events.PropertyChangedArgs;
+import kd.bos.exception.KDBizException;
+import kd.bos.form.*;
+import kd.bos.form.control.Control;
+import kd.bos.form.events.AfterDoOperationEventArgs;
+import kd.bos.form.events.ClosedCallBackEvent;
+import kd.bos.form.field.TextEdit;
+import kd.bos.list.ListShowParameter;
+import kd.bos.list.plugin.AbstractListPlugin;
+import kd.bos.orm.query.QCP;
+import kd.bos.orm.query.QFilter;
+import kd.bos.servicehelper.BusinessDataServiceHelper;
+import kd.sdk.plugin.Plugin;
+
+import java.math.BigDecimal;
+import java.util.EventObject;
+import java.util.Map;
+
+public class BxdBankListtenerFromPlugin extends AbstractListPlugin implements Plugin {
+    @Override
+    public void registerListener(EventObject e) {
+        super.registerListener(e);
+        // 对采购申请单单号字段(文本控件)添加点击监听
+        TextEdit textEdit = getControl("nckd_gysbanks");
+        textEdit.addClickListener(this);
+    }
+
+    @Override
+    public void click(EventObject evt) {
+        Control control = (Control) evt.getSource();
+        String key = control.getKey();
+        // 点击供应商11111
+        if (StringUtils.equalsIgnoreCase("nckd_gysbanks", key)) {
+            String billpayertype = this.getModel().getValue("billpayertype").toString();
+            if("bd_supplier".equals(billpayertype)){
+                ListShowParameter parameter = ShowFormHelper.createShowListForm("nckd_supplierbankinfor", false);
+                parameter.setCloseCallBack(new CloseCallBack(this, "nckd_supplierbankinfor"));
+                DynamicObject skdata = (DynamicObject)this.getModel().getValue("billpayerid");
+                if(skdata ==null){
+                    throw new KDBizException("往来单位为空!");
+                }
+                long orgid = skdata.getLong("id");
+                QFilter nckd_skzjFilter = new QFilter("id", QCP.equals,orgid);
+                DynamicObject dynamicObject = BusinessDataServiceHelper.loadSingle("bd_supplier", "id", new QFilter[]{nckd_skzjFilter});
+                QFilter filter;
+                //给基础资料添加过滤
+                filter = new QFilter("nckd_id", QCP.equals, dynamicObject.getLong("id"));
+                parameter.getListFilterParameter().setFilter(filter);
+                getView().showForm(parameter);
+            } else if ("bos_user".equals(billpayertype)) {
+                ListShowParameter parameter = ShowFormHelper.createShowListForm("er_payeer", false);
+                parameter.setCloseCallBack(new CloseCallBack(this, "er_payeer"));
+                DynamicObject skdata = (DynamicObject)this.getModel().getValue("billpayerid");
+                if(skdata ==null){
+                    throw new KDBizException("往来单位为空!");
+                }
+                long orgid = skdata.getLong("id");
+                QFilter nckd_skzjFilter = new QFilter("id", QCP.equals,orgid);
+                DynamicObject dynamicObject = BusinessDataServiceHelper.loadSingle("bos_user", "id", new QFilter[]{nckd_skzjFilter});
+                QFilter filter;
+                //给基础资料添加过滤
+                filter = new QFilter("payer.id", QCP.equals, dynamicObject.getLong("id"));
+                parameter.getListFilterParameter().setFilter(filter);
+                getView().showForm(parameter);
+            } else if ("bos_org".equals(billpayertype)) {
+                ListShowParameter parameter = ShowFormHelper.createShowListForm("bos_org", false);
+                parameter.setCloseCallBack(new CloseCallBack(this, "bos_org"));
+                DynamicObject skdata = (DynamicObject)this.getModel().getValue("billpayerid");
+                if(skdata ==null){
+                    throw new KDBizException("往来单位为空!");
+                }
+                long orgid = skdata.getLong("id");
+                QFilter nckd_skzjFilter = new QFilter("id", QCP.equals,orgid);
+                DynamicObject dynamicObject = BusinessDataServiceHelper.loadSingle("bos_org", "id", new QFilter[]{nckd_skzjFilter});
+                QFilter filter;
+                //给基础资料添加过滤
+                filter = new QFilter("id", QCP.equals, dynamicObject.getLong("id"));
+                parameter.getListFilterParameter().setFilter(filter);
+                getView().showForm(parameter);
+            }
+
+
+        }
+        super.click(evt);
+    }
+
+    @Override
+    public void closedCallBack(ClosedCallBackEvent evt) {
+        String key = evt.getActionId();
+        Object returnData = evt.getReturnData();
+        // 将选择的采购申请单数据回写至样例单据上的相应字段
+        if (StringUtils.equalsIgnoreCase("nckd_supplierbankinfor", key) && returnData != null) {
+            ListSelectedRow row = ((ListSelectedRowCollection) returnData).get(0);
+            DynamicObject billObj = BusinessDataServiceHelper.loadSingle(row.getPrimaryKeyValue(), "nckd_supplierbankinfor");
+            this.getModel().setValue("nckd_gysbanks", billObj.getString("nckd_bankaccount"));
+            this.getModel().setValue("nckd_bankname", billObj.getString("nckd_accountname"));
+            DynamicObject nckdBank = billObj.getDynamicObject("nckd_bank");
+            this.getModel().setValue("nckd_khbank",nckdBank);
+            //设置分录
+            this.getModel().setValue("supplier", billObj, 0);
+            this.getModel().setValue("payeraccount", billObj.getString("nckd_bankaccount"), 0);
+            this.getModel().setValue("payeraccountname", billObj.getString("nckd_accountname"), 0);
+            this.getModel().setValue("payerbank", nckdBank, 0);
+            //刷新分录
+            this.getView().updateView("accountentry");
+        } else if (StringUtils.equalsIgnoreCase("er_payeer", key) && returnData != null) {
+            ListSelectedRow row = ((ListSelectedRowCollection) returnData).get(0);
+            DynamicObject billObj = BusinessDataServiceHelper.loadSingle(row.getPrimaryKeyValue(), "er_payeer");
+            DynamicObject payerbank = billObj.getDynamicObject("payerbank");
+            this.getModel().setValue("nckd_gysbanks", payerbank.getString("number"));//行号
+            this.getModel().setValue("nckd_bankname", payerbank.getString("name"));//行名
+            this.getModel().setValue("nckd_khbank", payerbank);
+            //设置分录
+            this.getModel().setValue("payer", payerbank, 0);
+            this.getModel().setValue("payeraccount", payerbank.getString("number"), 0);
+            this.getModel().setValue("payeraccountname", payerbank.getString("name"), 0);
+            this.getModel().setValue("payerbank", payerbank, 0);
+            //刷新分录
+            this.getView().updateView("accountentry");
+        } else if (StringUtils.equalsIgnoreCase("bos_org", key) && returnData != null) {
+            ListSelectedRow row = ((ListSelectedRowCollection) returnData).get(0);
+            DynamicObject billObj = BusinessDataServiceHelper.loadSingle(row.getPrimaryKeyValue(), "bos_org");
+            this.getModel().setValue("nckd_gysbanks", billObj.getString("bankaccount"));
+            this.getModel().setValue("nckd_bankname", billObj.getString("ffirmname"));
+            //this.getModel().setValue("nckd_khbank", billObj.getString("depositbank"));
+            //设置分录
+            this.getModel().setValue("payername", billObj.getString("name"), 0);
+            this.getModel().setValue("payeraccount", billObj.getString("bankaccount"), 0);
+            this.getModel().setValue("payeraccountname",  billObj.getString("ffirmname"), 0);
+            this.getModel().setValue("casorg", billObj, 0);
+            //刷新分录
+            this.getView().updateView("accountentry");
+        }
+        super.closedCallBack(evt);
+    }
+    @Override
+    public void propertyChanged(PropertyChangedArgs e) {
+        super.beforePropertyChanged(e);
+        String name = e.getProperty().getName();//获取字段标识
+        if ("billpayerid".equals(name)) {
+            ChangeData[] changeSet = e.getChangeSet();//获取值
+            for (ChangeData changeData : changeSet) {
+                int rowIndex = changeData.getRowIndex();
+                Object newValue = changeData.getNewValue();
+                Object oldValue = changeData.getOldValue();
+                DynamicObject payeenamevs = (DynamicObject) newValue;
+                String billpayertype = this.getModel().getValue("billpayertype").toString();
+                if("bd_supplier".equals(billpayertype)){
+                    this.getModel().setValue("nckd_gysbanks",null);//行号
+                    this.getModel().setValue("nckd_bankname",null);//行名
+                    this.getModel().setValue("nckd_khbank",null);
+                    this.getModel().setValue("payer",null, 0);
+                    this.getModel().setValue("payeraccount",null, 0);
+                    this.getModel().setValue("payeraccountname",null, 0);
+                    this.getModel().setValue("payerbank",null, 0);
+                    //刷新分录
+                    this.getView().updateView("accountentry");
+                    this.getView().updateView("nckd_gysbanks");
+                    this.getView().updateView("nckd_bankname");
+                    this.getView().updateView("nckd_khbank");
+                    QFilter nckd = new QFilter("id", QCP.equals,payeenamevs.getLong("id"));
+                    payeenamevs = BusinessDataServiceHelper.loadSingle("bd_supplier", new QFilter[]{nckd});
+                   if(payeenamevs!=null){
+                       for (DynamicObject entryentity : payeenamevs.getDynamicObjectCollection("entry_bank")) {
+                           String bankaccount = entryentity.getString("bankaccount");
+                           String accountname = entryentity.getString("accountname");
+                           String isdefaultBank = entryentity.getString("isdefault_bank");
+                           DynamicObject bank = entryentity.getDynamicObject("bank");
+                           if("true".equals(isdefaultBank)){
+                               this.getModel().setValue("nckd_gysbanks", bankaccount);
+                               this.getModel().setValue("nckd_bankname", accountname);
+//                            DynamicObject nckdBank = billObj.getDynamicObject("nckd_bank");
+                               this.getModel().setValue("nckd_khbank",bank);
+                               //设置分录
+                               this.getModel().setValue("supplier", payeenamevs, 0);
+                               this.getModel().setValue("payeraccount", bankaccount, 0);
+                               this.getModel().setValue("payeraccountname", accountname, 0);
+                               this.getModel().setValue("payerbank", bank, 0);
+                               //刷新分录
+                               this.getView().updateView("accountentry");
+                           }
+                       }
+                   }
+                } else if ("bos_user".equals(billpayertype)) {
+                    this.getModel().setValue("nckd_gysbanks",null);//行号
+                    this.getModel().setValue("nckd_bankname",null);//行名
+                    this.getModel().setValue("nckd_khbank",null);
+                    this.getModel().setValue("payer",null, 0);
+                    this.getModel().setValue("payeraccount",null, 0);
+                    this.getModel().setValue("payeraccountname",null, 0);
+                    this.getModel().setValue("payerbank",null, 0);
+                    //刷新分录
+                    this.getView().updateView("accountentry");
+                    this.getView().updateView("nckd_gysbanks");
+                    this.getView().updateView("nckd_bankname");
+                    this.getView().updateView("nckd_khbank");
+                    QFilter nckd = new QFilter("id", QCP.equals,payeenamevs.getLong("id"));
+                    payeenamevs = BusinessDataServiceHelper.loadSingle("bos_user", new QFilter[]{nckd});
+                    if(payeenamevs!=null){
+                        QFilter nckd_skzjFilter = new QFilter("payer.id", QCP.equals,payeenamevs.getLong("id"));
+                        nckd_skzjFilter.and("isdefault", QCP.equals, "1");
+                        DynamicObject dynamicObject = BusinessDataServiceHelper.loadSingle("er_payeer", new QFilter[]{nckd_skzjFilter});
+                        if(dynamicObject!=null){
+                            DynamicObject payerbank = dynamicObject.getDynamicObject("payerbank");
+                            this.getModel().setValue("nckd_gysbanks", payerbank.getString("number"));//行号
+                            this.getModel().setValue("nckd_bankname", payerbank.getString("name"));//行名
+                            this.getModel().setValue("nckd_khbank", payerbank);
+                            //设置分录
+                            this.getModel().setValue("payer", dynamicObject, 0);
+                            this.getModel().setValue("payeraccount", payerbank.getString("number"), 0);
+                            this.getModel().setValue("payeraccountname", payerbank.getString("name"), 0);
+                            this.getModel().setValue("payerbank", payerbank, 0);
+                            //刷新分录
+                            this.getView().updateView("accountentry");
+                        }
+                    }
+                } else if ("bos_org".equals(billpayertype)) {
+                    this.getModel().setValue("nckd_gysbanks",null);//行号
+                    this.getModel().setValue("nckd_bankname",null);//行名
+                    this.getModel().setValue("nckd_khbank",null);
+                    this.getModel().setValue("payer",null, 0);
+                    this.getModel().setValue("payeraccount",null, 0);
+                    this.getModel().setValue("payeraccountname",null, 0);
+                    this.getModel().setValue("payerbank",null, 0);
+                    //刷新分录
+                    this.getView().updateView("accountentry");
+                    this.getView().updateView("nckd_gysbanks");
+                    this.getView().updateView("nckd_bankname");
+                    this.getView().updateView("nckd_khbank");
+                    QFilter nckd = new QFilter("id", QCP.equals,payeenamevs.getLong("id"));
+                    payeenamevs = BusinessDataServiceHelper.loadSingle("bos_org", new QFilter[]{nckd});
+                    if(payeenamevs!=null){
+                        this.getModel().setValue("nckd_gysbanks", payeenamevs.getString("bankaccount"));
+                        this.getModel().setValue("nckd_bankname", payeenamevs.getString("ffirmname"));
+                        //this.getModel().setValue("nckd_khbank", payeenamevs.getString("depositbank"));
+                        //设置分录
+                        this.getModel().setValue("payername", payeenamevs.getString("name"), 0);
+                        this.getModel().setValue("payeraccount", payeenamevs.getString("bankaccount"), 0);
+                        this.getModel().setValue("payeraccountname",  payeenamevs.getString("ffirmname"), 0);
+                        this.getModel().setValue("casorg", payeenamevs, 0);
+                        //刷新分录
+                        this.getView().updateView("accountentry");
+                    }
+                }
+
+            }
+        } else if ("nckd_onaccountamount".equals(name)) {
+            String nckd_reimburseamount = this.getModel().getValue("nckd_reimburseamount").toString();//报销金额
+            String nckd_onaccountamount = this.getModel().getValue("nckd_onaccountamount").toString();//挂账金额
+            String nckd_yufuamount = this.getModel().getValue("nckd_yufuamount").toString();//预付金额
+            BigDecimal reimburseamount = new BigDecimal(nckd_reimburseamount);
+            BigDecimal onaccountamount = new BigDecimal(nckd_onaccountamount);
+            BigDecimal yufuamount = new BigDecimal(nckd_yufuamount);
+            reimburseamount=reimburseamount.subtract(onaccountamount);
+            reimburseamount=reimburseamount.subtract(yufuamount);
+            this.getModel().setValue("nckd_fukuanamountfield", reimburseamount);
+            this.getModel().setValue("expenseamount", reimburseamount, 0);
+            //刷新分录
+            this.getView().updateView("expenseentryentity");
+        }else if ("nckd_yufuamount".equals(name)) {
+            String nckd_reimburseamount = this.getModel().getValue("nckd_reimburseamount").toString();//报销金额
+            String nckd_onaccountamount = this.getModel().getValue("nckd_onaccountamount").toString();//挂账金额
+            String nckd_yufuamount = this.getModel().getValue("nckd_yufuamount").toString();//预付金额
+            BigDecimal reimburseamount = new BigDecimal(nckd_reimburseamount);
+            BigDecimal onaccountamount = new BigDecimal(nckd_onaccountamount);
+            BigDecimal yufuamount = new BigDecimal(nckd_yufuamount);
+            reimburseamount=reimburseamount.subtract(onaccountamount);
+            reimburseamount=reimburseamount.subtract(yufuamount);
+            this.getModel().setValue("nckd_fukuanamountfield", reimburseamount);
+            this.getModel().setValue("expenseamount", reimburseamount, 0);
+            //刷新分录
+            this.getView().updateView("expenseentryentity");
+        }
+    }
+}