瀏覽代碼

业务处理单反写

xuhao 7 月之前
父節點
當前提交
e3cabd843c

+ 25 - 44
src/main/java/fi/em/formPlugin/BusinessProcessingPlugin.java

@@ -88,6 +88,8 @@ public class BusinessProcessingPlugin extends AbstractFormPlugin implements Plug
         if (payeenamev == null || payeenamev.isEmpty()) {
             throw new KDBizException("收款处理付款人为空!");
         }
+        QFilter nckd_cysfyxmFilter = new QFilter("name", QCP.equals,payeenamev);
+        DynamicObject nckd_cyffyxm = BusinessDataServiceHelper.loadSingle("bd_supplier","id",new QFilter[] {nckd_cysfyxmFilter});
         if ("cysgzmx".equals(controls)) {
             List<JSONObject> resdate = new ArrayList<>();
             //历史数据清除1111
@@ -95,40 +97,34 @@ public class BusinessProcessingPlugin extends AbstractFormPlugin implements Plug
             //构建查询应收挂账单参数
             QFilter nckd_orgamountFilter = new QFilter("unsettleamount", QCP.large_than, new BigDecimal(0));
             nckd_orgamountFilter.and("billstatus", QCP.equals, "C");
-            nckd_orgamountFilter.and("payeename", QCP.like, payeenamev);
+//            nckd_orgamountFilter.and("asstacttype", QCP.equals, "供应商");
+//            nckd_orgamountFilter.and("asstact.number", QCP.equals, payeenamev);
             nckd_orgamountFilter.and("unsettleamount", QCP.is_notnull, "");
             nckd_orgamountFilter.and("org.number", QCP.equals, orgnumber);
-            DynamicObject[] nckd_cas_arbill = BusinessDataServiceHelper.load("ar_finarbill", "id", new QFilter[]{nckd_orgamountFilter});
-            for (int c = 0; c < nckd_cas_arbill.length; c++) {
+            Map<Object, DynamicObject> nckd_cas_arbilMap = BusinessDataServiceHelper.loadFromCache("ar_finarbill", new QFilter[]{nckd_orgamountFilter});
+            for (Object idkey:nckd_cas_arbilMap.keySet()) {
                 //当前单头
-                DynamicObject dynamicObject = BusinessDataServiceHelper.loadSingle(nckd_cas_arbill[c].getPkValue(), nckd_cas_arbill[c].getDynamicObjectType().getName());
+                DynamicObject dynamicObject = nckd_cas_arbilMap.get(idkey);
                 //单据编号
                 String billno = dynamicObject.getString("billno");
                 //应收挂账日期
                 Date bizdate = dynamicObject.getDate("bizdate");
-                Date expectdate = dynamicObject.getDate("expectdate");
+                Date expectdate = dynamicObject.getDate("bizdate");
                 //应收挂账金额/冲销金额
                 BigDecimal settleamount = dynamicObject.getBigDecimal("unsettleamount");
                 for (DynamicObject entryentity : dynamicObject.getDynamicObjectCollection("entry")) {
                     DynamicObject eMaterial = entryentity.getDynamicObject("e_material");//物料
                     DynamicObject eExpenseitem = entryentity.getDynamicObject("e_expenseitem");//费用项目
-                    DynamicObject settleorg = entryentity.getDynamicObject("settleorg");//结算组织
-                    BigDecimal eActamt = entryentity.getBigDecimal("e_actamt");//实付金额
-                    DynamicObject costcenter = entryentity.getDynamicObject("costcenter");//成本中心
-                    DynamicObject productline = entryentity.getDynamicObject("productline");//产品线
-                    BigDecimal eDiscountamt = entryentity.getBigDecimal("e_discountamt");//现金折扣
+                    DynamicObject settleorg = dynamicObject.getDynamicObject("org");//结算组织
+                    DynamicObject productline = entryentity.getDynamicObject("e_productline");//产品线
                     DynamicObject project = entryentity.getDynamicObject("project");//项目
-                    DynamicObject eFundflowitem = entryentity.getDynamicObject("e_fundflowitem");//资金用途
-                    String contractnumber = entryentity.getString("contractnumber");//合同
                     int rowIndex = this.getModel().createNewEntryRow("nckd_entryentity");
                     //赋值给新增分录1
                     this.getModel().setValue("nckd_cysnumber", billno, rowIndex);
                     this.getModel().setValue("nckd_cysdata", bizdate, rowIndex);
                     this.getModel().setValue("nckd_cysgzbalance", settleamount, rowIndex);
                     this.getModel().setValue("nckd_cyscxbalance", settleamount, rowIndex);
-                    this.getModel().setValue("nckd_datefield", expectdate, rowIndex);
-                    QFilter nckd_cysfyxmFilter = new QFilter("name", QCP.equals,payeenamev);
-                    DynamicObject nckd_cyffyxm = BusinessDataServiceHelper.loadSingle("bd_supplier","id",new QFilter[] {nckd_cysfyxmFilter});
+                    //this.getModel().setValue("nckd_datefield", expectdate, rowIndex);
                     this.getModel().setValue("nckd_e_fundflowitem", nckd_cyffyxm, rowIndex);
                     //分录数据
                     if (eMaterial != null) {
@@ -140,27 +136,13 @@ public class BusinessProcessingPlugin extends AbstractFormPlugin implements Plug
                     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);
@@ -195,10 +177,10 @@ public class BusinessProcessingPlugin extends AbstractFormPlugin implements Plug
             nckd_orgamountFilter.and("unsettleamount", QCP.large_than, new BigDecimal(0));
             nckd_orgamountFilter.and("unsettleamount", QCP.is_notnull, "");
             nckd_orgamountFilter.and("org.number", QCP.equals, orgnumber);
-            DynamicObject[] nckd_cas_arbill = BusinessDataServiceHelper.load("ap_finapbill", "id", new QFilter[]{nckd_orgamountFilter});
-            for (int c = 0; c < nckd_cas_arbill.length; c++) {
+            Map<Object, DynamicObject> nckd_cas_arbilMap = BusinessDataServiceHelper.loadFromCache("ap_finapbill", new QFilter[]{nckd_orgamountFilter});
+            for (Object idkey:nckd_cas_arbilMap.keySet()) {
                 //当前单头
-                DynamicObject dynamicObject = BusinessDataServiceHelper.loadSingle(nckd_cas_arbill[c].getPkValue(), nckd_cas_arbill[c].getDynamicObjectType().getName());
+                DynamicObject dynamicObject = nckd_cas_arbilMap.get(idkey);
                 //单据编号
                 String billno = dynamicObject.getString("billno");
                 //应收挂账日期
@@ -226,8 +208,6 @@ public class BusinessProcessingPlugin extends AbstractFormPlugin implements Plug
                     this.getModel().setValue("nckd_cyfgzbalance", settleamount, rowIndex);
                     this.getModel().setValue("nckd_cyfcxbalance", settleamount, rowIndex);
                     this.getModel().setValue("nckd_billid", id, rowIndex);
-                    QFilter nckd_cysfyxmFilter = new QFilter("number", QCP.equals,payeenamev);
-                    DynamicObject nckd_cyffyxm = BusinessDataServiceHelper.loadSingle("bd_supplier","id",new QFilter[] {nckd_cysfyxmFilter});
                     this.getModel().setValue("nckd_basedatafield", nckd_cyffyxm, rowIndex);
                     //分录字段
                     if (material != null) {
@@ -278,10 +258,10 @@ public class BusinessProcessingPlugin extends AbstractFormPlugin implements Plug
             nckd_orgamountFilter.and("status", QCP.equals, "C");
             nckd_orgamountFilter.and("nckd_amountfield1", QCP.large_than,0);
             nckd_orgamountFilter.and("leaser.number", QCP.equals, payeenamev);
-            DynamicObject[] fa_lease_contract = BusinessDataServiceHelper.load("fa_lease_contract", "id", new QFilter[]{nckd_orgamountFilter});
-            for (int c = 0; c < fa_lease_contract.length; c++) {
+            Map<Object, DynamicObject> nckd_cas_arbilMap = BusinessDataServiceHelper.loadFromCache("fa_lease_contract", new QFilter[]{nckd_orgamountFilter});
+            for (Object idkey:nckd_cas_arbilMap.keySet()) {
                 //当前单头
-                DynamicObject dynamicObject = BusinessDataServiceHelper.loadSingle(fa_lease_contract[c].getPkValue(), fa_lease_contract[c].getDynamicObjectType().getName());
+                DynamicObject dynamicObject = nckd_cas_arbilMap.get(idkey);
                 //核算组织
                 DynamicObject org = dynamicObject.getDynamicObject("org");
                 //合同号
@@ -329,10 +309,10 @@ public class BusinessProcessingPlugin extends AbstractFormPlugin implements Plug
             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++) {
+            Map<Object, DynamicObject> nckd_cas_arbilMap = BusinessDataServiceHelper.loadFromCache("bd_supplier", new QFilter[]{nckd_orgamountFilter});
+            for (Object idkey:nckd_cas_arbilMap.keySet()) {
                 //当前单头
-                DynamicObject dynamicObject = BusinessDataServiceHelper.loadSingle(fa_lease_contract[c].getPkValue(), fa_lease_contract[c].getDynamicObjectType().getName());
+                DynamicObject dynamicObject = nckd_cas_arbilMap.get(idkey);
                 for (DynamicObject entryentity : dynamicObject.getDynamicObjectCollection("entry_bank")) {
                     String bankaccount = entryentity.getString("bankaccount");
                     String accountname = entryentity.getString("accountname");
@@ -358,10 +338,10 @@ public class BusinessProcessingPlugin extends AbstractFormPlugin implements Plug
             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++) {
+            Map<Object, DynamicObject> nckd_cas_arbilMap = BusinessDataServiceHelper.loadFromCache("bd_supplier", new QFilter[]{nckd_orgamountFilter});
+            for (Object idkey:nckd_cas_arbilMap.keySet()) {
                 //当前单头
-                DynamicObject dynamicObject = BusinessDataServiceHelper.loadSingle(fa_lease_contract[c].getPkValue(), fa_lease_contract[c].getDynamicObjectType().getName());
+                DynamicObject dynamicObject = nckd_cas_arbilMap.get(idkey);
                 for (DynamicObject entryentity : dynamicObject.getDynamicObjectCollection("entry_bank")) {
                     String bankaccount = entryentity.getString("bankaccount");
                     String accountname = entryentity.getString("accountname");
@@ -380,6 +360,7 @@ public class BusinessProcessingPlugin extends AbstractFormPlugin implements Plug
                 String pageId = this.getView().getPageId();
                 String listStr = SerializationUtils.toJsonString(resdate);
                 this.getPageCache().put(pageId, listStr);
+
             }
         }
 

+ 21 - 26
src/main/java/fi/em/opplugin/BusinessProcessingSaveOpPlugin.java

@@ -47,7 +47,7 @@ public class BusinessProcessingSaveOpPlugin  extends AbstractOperationServicePlu
                     String nckdcysnumber = entryentity.getString("nckd_cysnumber");//财务应收单编码
                     BigDecimal nckdCyscxbalance = entryentity.getBigDecimal("nckd_cyscxbalance");//冲销金额
                     //构建查询应收挂账单参数
-                    QFilter nckd_orgamountFilter = new QFilter("id", QCP.equals,nckdcysnumber);
+                    QFilter nckd_orgamountFilter = new QFilter("billno", QCP.equals,nckdcysnumber);
                     DynamicObject[] nckd_cas_arbill = BusinessDataServiceHelper.load("ar_finarbill", "id", new QFilter[]{nckd_orgamountFilter});
                     DynamicObject dynamicObject = BusinessDataServiceHelper.loadSingle(nckd_cas_arbill[0].getPkValue(), nckd_cas_arbill[0].getDynamicObjectType().getName());
                     BigDecimal unsettleamount = dynamicObject.getBigDecimal("unsettleamount");//未结算金额
@@ -64,27 +64,22 @@ public class BusinessProcessingSaveOpPlugin  extends AbstractOperationServicePlu
                     dynamicObject.set("settlelocalamt",settleamount);//财务应收单已结算金额本位币
                     SaveServiceHelper.save(new DynamicObject[]{dynamicObject});
                 }
-//                for (DynamicObject entryentity : info.getDynamicObjectCollection("nckd_entryentity3")) {
-//                    String nckdpzhthth = entryentity.getString("nckd_pzhthth");//租赁合同编号
-//                    BigDecimal nckdCyscxbalance = entryentity.getBigDecimal("nckd_pzhtcxbalance");//冲销金额
-//                    //构建查询应收挂账单参数
-//                    QFilter nckd_orgamountFilter = new QFilter("number", QCP.equals,nckdpzhthth);
-//                    DynamicObject[] nckd_cas_arbill = BusinessDataServiceHelper.load("fa_lease_contract", "id", 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");//已结算金额
-//                    BigDecimal recamount = dynamicObject.getBigDecimal("recamount");//应收金额
-//                    unsettleamount=unsettleamount.subtract(nckdCyscxbalance);//计算后反写未结算金额
-//                    settleamount=settleamount.add(nckdCyscxbalance);//已结算+本次冲销金额
-//                    settleamount=recamount.subtract(settleamount);//计算后反写已结算金额
-//                    //set反写字段
-//                    dynamicObject.set("unsettleamount",unsettleamount);//财务应收单未结算金额
-//                    dynamicObject.set("unsettlelocalamt",unsettleamount);//财务应收单未结算金额本位币
-//                    dynamicObject.set("unverifyamount",unsettleamount);//财务应收单未核销金额本位币
-//                    dynamicObject.set("settleamount",settleamount);//财务应收单已结算金额
-//                    dynamicObject.set("settlelocalamt",settleamount);//财务应收单已结算金额本位币
-//                    SaveServiceHelper.save(new DynamicObject[]{dynamicObject});
-//                }
+                for (DynamicObject entryentity : info.getDynamicObjectCollection("nckd_entryentity3")) {
+                    String nckdpzhthth = entryentity.getString("nckd_pzhthth");//租赁合同编号
+                    BigDecimal nckdCyscxbalance = entryentity.getBigDecimal("nckd_pzhtcxbalance");//冲销金额
+                    //构建查询应收挂账单参数
+                    QFilter nckd_orgamountFilter = new QFilter("number", QCP.equals,nckdpzhthth);
+                    DynamicObject[] nckd_cas_arbill = BusinessDataServiceHelper.load("fa_lease_contract", "id", new QFilter[]{nckd_orgamountFilter});
+                    DynamicObject dynamicObject = BusinessDataServiceHelper.loadSingle(nckd_cas_arbill[0].getPkValue(), nckd_cas_arbill[0].getDynamicObjectType().getName());
+                    BigDecimal nckdamountfield = dynamicObject.getBigDecimal("nckd_amountfield");//已收款金额
+                    BigDecimal nckdamountfield1 = dynamicObject.getBigDecimal("nckd_amountfield1");//收款余额
+                    nckdamountfield=nckdamountfield.add(nckdCyscxbalance);//计算后反写已收款金额
+                    nckdamountfield1=nckdamountfield1.subtract(nckdCyscxbalance);//收款余额+本次冲销金额
+                    //set反写字段
+                    dynamicObject.set("nckd_amountfield",nckdamountfield);//财务应收单未结算金额
+                    dynamicObject.set("nckd_amountfield1",nckdamountfield1);//财务应收单未结算金额本位币
+                    SaveServiceHelper.save(new DynamicObject[]{dynamicObject});
+                }
             } else if ("B".equals(detailtype)){
                 for (DynamicObject entryentity : info.getDynamicObjectCollection("nckd_entryentity2")) {
                     String nckdBigintfield = entryentity.getString("nckd_bigintfield");//财务应付单id
@@ -95,16 +90,16 @@ public class BusinessProcessingSaveOpPlugin  extends AbstractOperationServicePlu
                     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");//已结算金额
-                    BigDecimal recamount = dynamicObject.getBigDecimal("recamount");//应收金额
+                    BigDecimal pricetaxtotal = dynamicObject.getBigDecimal("pricetaxtotal");//应收金额
                     unsettleamount=unsettleamount.subtract(nckdCyscxbalance);//计算后反写未结算金额
                     settleamount=settleamount.add(nckdCyscxbalance);//已结算+本次冲销金额
-                    settleamount=recamount.subtract(settleamount);//计算后反写已结算金额
+                    settleamount=pricetaxtotal.subtract(settleamount);//计算后反写已结算金额
                     //set反写字段
                     dynamicObject.set("unsettleamount",unsettleamount);//财务应收单未结算金额
-                    dynamicObject.set("unsettlelocalamt",unsettleamount);//财务应收单未结算金额本位币
+                    dynamicObject.set("unsettleamountbase",unsettleamount);//财务应收单未结算金额本位币
                     dynamicObject.set("unverifyamount",unsettleamount);//财务应收单未核销金额本位币
                     dynamicObject.set("settleamount",settleamount);//财务应收单已结算金额
-                    dynamicObject.set("settlelocalamt",settleamount);//财务应收单已结算金额本位币
+                    dynamicObject.set("settleamountbase",settleamount);//财务应收单已结算金额本位币
                     SaveServiceHelper.save(new DynamicObject[]{dynamicObject});
                 }
             }

+ 16 - 0
src/main/java/fi/em/opplugin/BusinessProcessingUnAuditOpPlugin.java

@@ -44,6 +44,22 @@ public class BusinessProcessingUnAuditOpPlugin extends AbstractOperationServiceP
                     dynamicObject.set("settlelocalamt",settleamount);//财务应收单已结算金额本位币
                     SaveServiceHelper.save(new DynamicObject[]{dynamicObject});
                 }
+                for (DynamicObject entryentity : info.getDynamicObjectCollection("nckd_entryentity3")) {
+                    String nckdpzhthth = entryentity.getString("nckd_pzhthth");//租赁合同编号
+                    BigDecimal nckdCyscxbalance = entryentity.getBigDecimal("nckd_pzhtcxbalance");//冲销金额
+                    //构建查询应收挂账单参数
+                    QFilter nckd_orgamountFilter = new QFilter("number", QCP.equals,nckdpzhthth);
+                    DynamicObject[] nckd_cas_arbill = BusinessDataServiceHelper.load("fa_lease_contract", "id", new QFilter[]{nckd_orgamountFilter});
+                    DynamicObject dynamicObject = BusinessDataServiceHelper.loadSingle(nckd_cas_arbill[0].getPkValue(), nckd_cas_arbill[0].getDynamicObjectType().getName());
+                    BigDecimal nckdamountfield = dynamicObject.getBigDecimal("nckd_amountfield");//已收款金额
+                    BigDecimal nckdamountfield1 = dynamicObject.getBigDecimal("nckd_amountfield1");//收款余额
+                    nckdamountfield=nckdamountfield.subtract(nckdCyscxbalance);//计算后反写已收款金额
+                    nckdamountfield1=nckdamountfield1.add(nckdCyscxbalance);//收款余额+本次冲销金额
+                    //set反写字段
+                    dynamicObject.set("nckd_amountfield",nckdamountfield);//财务应收单未结算金额
+                    dynamicObject.set("nckd_amountfield1",nckdamountfield1);//财务应收单未结算金额本位币
+                    SaveServiceHelper.save(new DynamicObject[]{dynamicObject});
+                }
             } else if ("B".equals(detailtype)){
                 for (DynamicObject entryentity : info.getDynamicObjectCollection("nckd_entryentity2")) {
                     String nckdBigintfield = entryentity.getString("nckd_bigintfield");//财务应付单id