Эх сурвалжийг харах

Merge branch 'master' of http://111.75.220.136:10030/13246659623/jxyh

13246659623 7 сар өмнө
parent
commit
b2b92c61df

+ 84 - 0
src/main/java/fi/ar/opplugin/ArBaddebtlossBillOpPlugin.java

@@ -0,0 +1,84 @@
+package fi.ar.opplugin;
+
+import com.alibaba.druid.util.StringUtils;
+import kd.bos.dataentity.entity.DynamicObject;
+import kd.bos.dataentity.entity.DynamicObjectCollection;
+import kd.bos.entity.plugin.AbstractOperationServicePlugIn;
+import kd.bos.entity.plugin.args.BeginOperationTransactionArgs;
+import kd.bos.orm.query.QCP;
+import kd.bos.orm.query.QFilter;
+import kd.bos.servicehelper.BusinessDataServiceHelper;
+import kd.bos.servicehelper.operation.SaveServiceHelper;
+import java.math.BigDecimal;
+import java.util.Date;
+import java.util.Iterator;
+
+public class ArBaddebtlossBillOpPlugin extends AbstractOperationServicePlugIn {
+    @Override
+    public void beginOperationTransaction(BeginOperationTransactionArgs e) {
+        //获取合同台账单据信息
+        DynamicObject[] dynamicObjects = e.getDataEntities();
+        for (int i = 0; i < dynamicObjects.length; i++) {
+            if (StringUtils.equals(e.getOperationKey(),"audit")) {
+                //当前单头数据包
+                DynamicObject info = BusinessDataServiceHelper.loadSingle(dynamicObjects[i].getPkValue(), dynamicObjects[i].getDynamicObjectType().getName());
+                String billno = info.getString("billno");
+                Date bizDate = info.getDate("bizdate");
+                Long id = info.getLong("id");
+                BigDecimal amount = info.getBigDecimal("nckd_amountfield");
+                Long sourcebillid = info.getLong("sourcebillid");
+                if (sourcebillid != 0) {
+                    //获取财务应收单
+                    QFilter filter = new QFilter("id", QCP.equals, sourcebillid);
+                    DynamicObject[] ardynamicObjects = BusinessDataServiceHelper.load("ar_finarbill","id", new QFilter[]{filter});
+                    for (DynamicObject object : ardynamicObjects) {
+                        DynamicObject arInfo = BusinessDataServiceHelper.loadSingle(object.getPkValue(), object.getDynamicObjectType().getName());
+                        DynamicObjectCollection debtEntry = arInfo.getDynamicObjectCollection("nckd_debt_entry1");
+                        Boolean flag = true;
+                        for (DynamicObject debt : debtEntry) {
+                            if (StringUtils.equals(debt.getString("nckd_debt_billno"), billno)) {
+                                debt.set("nckd_debt_amount", amount);
+                                flag = false;
+                            }
+                        }
+
+                        if (flag) {
+                            DynamicObject entry1 = debtEntry.addNew();
+                            entry1.set("nckd_debt_billno", billno);//付款处理单据编号
+                            entry1.set("nckd_debt_id", id);//付款处理单据id
+                            entry1.set("nckd_y_date1", bizDate);//付款金额
+                            entry1.set("nckd_debt_amount", amount);//付款日期
+                        }
+                        SaveServiceHelper.save(new DynamicObject[]{arInfo});
+                    }
+
+                }
+            } else if (StringUtils.equals(e.getOperationKey(),"unaudit")) {
+                //当前单头数据包
+                DynamicObject info = BusinessDataServiceHelper.loadSingle(dynamicObjects[i].getPkValue(), dynamicObjects[i].getDynamicObjectType().getName());
+                String billno = info.getString("billno");
+                Date bizDate = info.getDate("bizdate");
+                Long id = info.getLong("id");
+                BigDecimal amount = info.getBigDecimal("nckd_amountfield");
+                Long sourcebillid = info.getLong("sourcebillid");
+                if (sourcebillid != 0) {
+                    //获取财务应收单
+                    QFilter filter = new QFilter("id", QCP.equals, sourcebillid);
+                    DynamicObject[] ardynamicObjects = BusinessDataServiceHelper.load("ar_finarbill","id", new QFilter[]{filter});
+                    for (DynamicObject object : ardynamicObjects) {
+                        DynamicObject arInfo = BusinessDataServiceHelper.loadSingle(object.getPkValue(), object.getDynamicObjectType().getName());
+                        DynamicObjectCollection debtEntry = arInfo.getDynamicObjectCollection("nckd_debt_entry1");
+                        Iterator<DynamicObject> iterator = debtEntry.iterator();
+                        while (iterator.hasNext()) {
+                            DynamicObject debt = iterator.next();
+                            if (StringUtils.equals(debt.getString("nckd_debt_billno"), billno)) {
+                                iterator.remove();
+                            }
+                        }
+                        SaveServiceHelper.save(new DynamicObject[]{arInfo});
+                    }
+                }
+            }
+        }
+    }
+}

+ 2 - 2
src/main/java/fi/cas/formplugin/ArBadDebtLossListPlugin.java

@@ -44,12 +44,12 @@ public class ArBadDebtLossListPlugin extends AbstractListPlugin {
                     DynamicObject info = BusinessDataServiceHelper.loadSingle(pk, "ar_baddebtlossbill");
                     ar_baddebtlossbill.add(info);
                     dubilList.add(info.getString("nckd_textfield"));
-                    custList.add(info.getDynamicObject("asstact").getString("number"));
+                    custList.add(info.getDynamicObject("asstact").getString("name"));
                 }
 
                 //查询减值准备数据(最新一批)
                 QFilter filter = new QFilter("nckd_dubil_id", QCP.in, dubilList);
-                filter.or("nckd_cust_id", QCP.in, custList);
+                filter.or("nckd_cust_name", QCP.in, custList);
                 DynamicObject[] jzdynamicObjects = BusinessDataServiceHelper.load("nckd_impairment","nckd_dubil_id,nckd_cust_id,nckd_ecl_ratio", new QFilter[]{filter});
                 jz =  new ArrayList<>(Arrays.asList(jzdynamicObjects));
 

+ 2 - 2
src/main/java/fi/cas/task/MatchBadDebtsTask.java

@@ -46,12 +46,12 @@ public class MatchBadDebtsTask extends AbstractTask {
             DynamicObject info = BusinessDataServiceHelper.loadSingle(dynamicObjects[i].getPkValue(), dynamicObjects[i].getDynamicObjectType().getName());
             ar_baddebtlossbill.add(info);
             dubilList.add(info.getString("nckd_textfield"));
-            custList.add(info.getDynamicObject("asstact").getString("number"));
+            custList.add(info.getDynamicObject("asstact").getString("name"));
         }
 
         //查询减值准备数据(最新一批)
         QFilter jzfilter = new QFilter("nckd_dubil_id", QCP.in, dubilList);
-        jzfilter.or("nckd_cust_id", QCP.in, custList);
+        jzfilter.or("nckd_cust_name", QCP.in, custList);
         DynamicObject[] jzdynamicObjects = BusinessDataServiceHelper.load("nckd_impairment","nckd_dubil_id,nckd_cust_id,nckd_ecl_ratio", new QFilter[]{jzfilter});
         jz =  new ArrayList<>(Arrays.asList(jzdynamicObjects));
 

+ 31 - 0
src/main/java/fi/em/formPlugin/BusinessProcessingConvertPlugIn.java

@@ -0,0 +1,31 @@
+package fi.em.formPlugin;
+
+import kd.bos.entity.botp.plugin.AbstractConvertPlugIn;
+import kd.bos.entity.botp.plugin.args.BeforeBuildRowConditionEventArgs;
+import kd.bos.orm.query.QCP;
+import kd.bos.orm.query.QFilter;
+import kd.sdk.plugin.Plugin;
+
+public class BusinessProcessingConvertPlugIn extends AbstractConvertPlugIn implements Plugin {
+    @Override
+    public void beforeBuildRowCondition(BeforeBuildRowConditionEventArgs e) {
+        //获取页面插件传递过来的操作参数
+        String bdsupplier = this.getOption().getVariableValue("bdsupplier");
+        String orgnumber = this.getOption().getVariableValue("orgnumber");
+        String type = this.getOption().getVariableValue("type");
+        if("drawyfgz".equals(type)){
+            QFilter numberQFilter = new QFilter("ap_finapbill.org.number", QCP.equals, orgnumber);
+            numberQFilter.and("ap_finapbill.asstact.number", QCP.equals, bdsupplier);
+            e.getCustQFilters().add(numberQFilter);
+        }else if("drawysgz".equals(type)){
+            QFilter numberQFilter = new QFilter("ar_finarbill.org.number", QCP.equals, orgnumber);
+            numberQFilter.and("ar_finarbill.asstact.number", QCP.equals, bdsupplier);
+            e.getCustQFilters().add(numberQFilter);
+        }else if("drawzlht".equals(type)){
+            QFilter numberQFilter = new QFilter("fa_lease_contract.org.number", QCP.equals, orgnumber);
+            numberQFilter.and("fa_lease_contract.leaser.number", QCP.equals, bdsupplier);
+            e.getCustQFilters().add(numberQFilter);
+        }
+        super.beforeBuildRowCondition(e);
+    }
+}

+ 72 - 0
src/main/java/fi/em/formPlugin/BusinessProcessingUnAuditEditPlugin.java

@@ -0,0 +1,72 @@
+package fi.em.formPlugin;
+
+import kd.bos.dataentity.entity.DynamicObject;
+import kd.bos.exception.KDBizException;
+import kd.bos.form.events.BeforeDoOperationEventArgs;
+import kd.bos.form.operate.botp.Draw;
+import kd.bos.list.plugin.AbstractListPlugin;
+import kd.sdk.plugin.Plugin;
+
+public class BusinessProcessingUnAuditEditPlugin  extends AbstractListPlugin implements Plugin {
+    public static String deleteentryys = "deleteentryys"; //冲应收挂账
+
+    @Override
+    public void beforeDoOperation(BeforeDoOperationEventArgs args) {
+        if (args.getSource() instanceof Draw) {
+            Draw draw = (Draw) args.getSource();
+            if (draw.getOperateKey().equals("drawysgz")) {
+//                int count = this.getModel().getEntryRowCount("nckd_entryentity1");
+//                StringBuilder numbers = new StringBuilder();
+                Object value = this.getModel().getValue("nckd_payeenamev");//获取当前单据付款人
+                Object nckd_orgv = this.getModel().getValue("nckd_orgv");//获取当前单据付款人
+                DynamicObject dynamicObject = (DynamicObject) value;
+                DynamicObject orgv = (DynamicObject) nckd_orgv;
+                if (dynamicObject == null) {
+                    throw new KDBizException("收款信息付款人为空!");
+                }
+                if (orgv == null) {
+                    throw new KDBizException("收款信息收款人为空!");
+                }
+                String bdsupplier = dynamicObject.getString("number");//当前单据付款供应商
+                draw.getOption().setVariableValue("bdsupplier", bdsupplier);
+                String orgnumber = orgv.getString("number");
+                draw.getOption().setVariableValue("orgnumber", orgnumber);
+                draw.getOption().setVariableValue("type", "drawysgz");
+            } else if (draw.getOperateKey().equals("drawyfgz")) {
+                //int count = this.getModel().getEntryRowCount("nckd_entryentity2");
+                Object value = this.getModel().getValue("nckd_payeenamevs");//获取当前单据付款人
+                Object nckd_orgvs = this.getModel().getValue("nckd_orgvs");//获取当前单据收款人
+                DynamicObject dynamicObject = (DynamicObject) value;
+                DynamicObject orgvs = (DynamicObject) nckd_orgvs;
+                if (dynamicObject == null) {
+                    throw new KDBizException("付款信息收款人为空!");
+                }
+                if (orgvs == null) {
+                    throw new KDBizException("付款信息付款人为空!");
+                }
+                String bdsupplier = dynamicObject.getString("number");//当前单据付款供应商
+                draw.getOption().setVariableValue("bdsupplier", bdsupplier);
+                String orgnumber = orgvs.getString("number");
+                draw.getOption().setVariableValue("orgnumber", orgnumber);
+                draw.getOption().setVariableValue("type", "drawyfgz");
+            }else if (draw.getOperateKey().equals("drawzlht")) {
+                Object value = this.getModel().getValue("nckd_orgv");//获取当前单据核算组织
+                Object nckd_payeenamevs = this.getModel().getValue("nckd_payeenamev");//获取当前单据付款人
+                DynamicObject dynamicObject = (DynamicObject) value;
+                DynamicObject payeenamevs = (DynamicObject) nckd_payeenamevs;
+                if (dynamicObject == null) {
+                    throw new KDBizException("收款信息收款人为空!");
+                }
+                if (payeenamevs == null) {
+                    throw new KDBizException("收款信息付款人为空!");
+                }
+                String bdsupplier = payeenamevs.getString("number");//当前单据付款供应商
+                draw.getOption().setVariableValue("bdsupplier", bdsupplier);
+                String orgnumber = dynamicObject.getString("number");
+                draw.getOption().setVariableValue("orgnumber", orgnumber);
+                draw.getOption().setVariableValue("type", "drawzlht");
+            }
+        }
+        super.beforeDoOperation(args);
+    }
+}

+ 36 - 2
src/main/java/fi/em/formPlugin/YwclF7ListtenerFromPlugin.java

@@ -26,7 +26,8 @@ public class YwclF7ListtenerFromPlugin extends AbstractBillPlugIn implements Plu
     private final static String nckd_payeebanknumlb="nckd_payeebanknumlb";//收款信息修改付款账号
     private final static String nckd_payeebanknumlbs="nckd_payeebanknumlbs";//付款信息修改收款账号
     private final static String nckd_basedatafield="nckd_basedatafield";//付款信息修改收款账号111
-
+    private final static String nckd_basedatafield5="nckd_basedatafield5";//资产编号
+    private final static String nckd_orgfield4="nckd_orgfield4";//付款信息修改收款账号111
     @Override
     public void registerListener(EventObject e) {
         super.registerListener(e);
@@ -45,6 +46,10 @@ public class YwclF7ListtenerFromPlugin extends AbstractBillPlugIn implements Plu
         fieldEdit6.addBeforeF7SelectListener(this);
         BasedataEdit fieldEdit7 = this.getView().getControl(nckd_basedatafield);
         fieldEdit7.addBeforeF7SelectListener(this);
+        BasedataEdit fieldEdit8 = this.getView().getControl(nckd_basedatafield5);
+        fieldEdit8.addBeforeF7SelectListener(this);
+        BasedataEdit fieldEdit9 = this.getView().getControl(nckd_orgfield4);
+        fieldEdit9.addBeforeF7SelectListener(this);
     }
 
     @Override
@@ -66,7 +71,12 @@ public class YwclF7ListtenerFromPlugin extends AbstractBillPlugIn implements Plu
         if (StringUtils.equals(fieldKey, nckd_basedatafield)){
             this.getQFiltersbf(beforeF7SelectEvent,nckd_basedatafield);
         }
-
+        if (StringUtils.equals(fieldKey, nckd_basedatafield5)){
+            this.getQFilterdczc(beforeF7SelectEvent,nckd_basedatafield5);
+        }
+        if (StringUtils.equals(fieldKey, nckd_orgfield4)){
+            this.getQFilterdrzc(beforeF7SelectEvent,nckd_orgfield4);
+        }
     }
 
     private void getQFilter(BeforeF7SelectEvent arg0, String type) {
@@ -158,4 +168,28 @@ public class YwclF7ListtenerFromPlugin extends AbstractBillPlugIn implements Plu
         ListShowParameter showParameter = (ListShowParameter)arg0.getFormShowParameter();
         showParameter.getListFilterParameter().setFilter(filter);
     }
+    private void getQFilterdczc(BeforeF7SelectEvent arg0, String type) {
+        DynamicObject data = (DynamicObject)this.getModel().getValue("nckd_orgfield1") ;
+        if(data ==null){
+            throw new KDBizException("调出组织为空!");
+        }
+        String number = data.getString("number");
+        QFilter filter;
+        //给基础资料添加过滤
+        filter = new QFilter("assetunit.number", QCP.equals, number);
+        ListShowParameter showParameter = (ListShowParameter)arg0.getFormShowParameter();
+        showParameter.getListFilterParameter().setFilter(filter);
+    }
+    private void getQFilterdrzc(BeforeF7SelectEvent arg0, String type) {
+        DynamicObject data = (DynamicObject)this.getModel().getValue("nckd_orgfield2") ;
+        if(data ==null){
+            throw new KDBizException("调入组织为空!");
+        }
+        String number = data.getString("number");
+        QFilter filter;
+        //给基础资料添加过滤
+        filter = new QFilter("number", QCP.equals, number);
+        ListShowParameter showParameter = (ListShowParameter)arg0.getFormShowParameter();
+        showParameter.getListFilterParameter().setFilter(filter);
+    }
 }

+ 4 - 2
src/main/java/fi/em/opplugin/BusinessProcessingOpPlugin.java

@@ -22,6 +22,10 @@ public class BusinessProcessingOpPlugin extends AbstractOperationServicePlugIn {
             String detailtype = info.getString("nckd_detailtype");
             if ("A".equals(detailtype)) {
                 DynamicObjectCollection nckdEntryentity1 = info.getDynamicObjectCollection("nckd_entryentity1");
+                DynamicObjectCollection nckdEntryentity3 = info.getDynamicObjectCollection("nckd_entryentity3");
+                if(!nckdEntryentity1.isEmpty() && !nckdEntryentity3.isEmpty()){
+                    throw new KDBizException("应收挂账与租赁合同不能同时冲销!");
+                }
                 if (!nckdEntryentity1.isEmpty()) {
                     BigDecimal nckdSkmxjehj = info.getBigDecimal("nckd_skmxjehj");//收款合计
                     BigDecimal nckdYsgzjehj = info.getBigDecimal("nckd_ysgzjehj");//应收合计
@@ -32,9 +36,7 @@ public class BusinessProcessingOpPlugin extends AbstractOperationServicePlugIn {
                     if (latitudeDou != latitudeDous) {
                         throw new KDBizException("收款金额与冲销金额不一致!");
                     }
-
                 }
-                DynamicObjectCollection nckdEntryentity3 = info.getDynamicObjectCollection("nckd_entryentity3");
                 if (!nckdEntryentity3.isEmpty()) {
                     BigDecimal nckdSkmxjehj = info.getBigDecimal("nckd_skmxjehj");//收款合计
                     BigDecimal nckdYsgzjehj = info.getBigDecimal("nckd_ysgzjehj");//应收合计

+ 1 - 1
src/main/java/fi/em/opplugin/BusinessProcessingSaveOpPlugin.java

@@ -86,7 +86,7 @@ public class BusinessProcessingSaveOpPlugin  extends AbstractOperationServicePlu
                     BigDecimal nckdCyscxbalance = entryentity.getBigDecimal("nckd_cyfcxbalance");//冲销金额
                     //构建查询应收挂账单参数
                     QFilter nckd_orgamountFilter = new QFilter("id", QCP.equals,Long.valueOf(nckdBigintfield));
-                    DynamicObject[] nckd_cas_arbill = BusinessDataServiceHelper.load("ap_finapbill", "id", new QFilter[]{nckd_orgamountFilter});
+                    DynamicObject[] nckd_cas_arbill = BusinessDataServiceHelper.load("ap_finapbill", "id,supplier.number,", new QFilter[]{nckd_orgamountFilter});
                     DynamicObject dynamicObject = BusinessDataServiceHelper.loadSingle(nckd_cas_arbill[0].getPkValue(), nckd_cas_arbill[0].getDynamicObjectType().getName());
                     BigDecimal unsettleamount = dynamicObject.getBigDecimal("unsettleamount");//未结算金额
                     BigDecimal settleamount = dynamicObject.getBigDecimal("settleamount");//已结算金额