Bläddra i källkod

业务处理单反写

xuhao 7 månader sedan
förälder
incheckning
7e89a766f9

+ 113 - 0
src/main/java/fi/em/opplugin/BusinessProcessingSaveOpPlugin.java

@@ -0,0 +1,113 @@
+package fi.em.opplugin;
+
+import com.alibaba.fastjson.JSONObject;
+import kd.bos.dataentity.entity.DynamicObject;
+import kd.bos.entity.plugin.AbstractOperationServicePlugIn;
+import kd.bos.entity.plugin.args.BeginOperationTransactionArgs;
+import kd.bos.entity.plugin.args.EndOperationTransactionArgs;
+import kd.bos.orm.query.QCP;
+import kd.bos.orm.query.QFilter;
+import kd.bos.servicehelper.BusinessDataServiceHelper;
+import kd.bos.servicehelper.operation.SaveServiceHelper;
+import kd.fi.cas.helper.CasBotpHelper;
+
+import java.math.BigDecimal;
+
+public class BusinessProcessingSaveOpPlugin  extends AbstractOperationServicePlugIn {
+//    @Override
+//    public void beginOperationTransaction(BeginOperationTransactionArgs e) {
+//        //获取当前操作单据数组
+//        DynamicObject[] dynamicObjects = e.getDataEntities();
+//        for (int i = 0; i < dynamicObjects.length; i++) {
+//            JSONObject object = new JSONObject();
+//            //当前单头数据包
+//            DynamicObject info = BusinessDataServiceHelper.loadSingle(dynamicObjects[i].getPkValue(), dynamicObjects[i].getDynamicObjectType().getName());
+//            String detailtype = info.getString("nckd_detailtype");
+//            if("B".equals(detailtype)){
+//                for (DynamicObject entryentity : info.getDynamicObjectCollection("nckd_entryentity2")) {
+//                    String nckdBigintfield = entryentity.getString("nckd_bigintfield");
+//                    CasBotpHelper.saveRelation("ap_finapbill", Long.valueOf(nckdBigintfield), "nckd_ywcld", info.getLong("id"));
+//                }
+//            }
+//        }
+//    }
+
+    @Override
+    public void endOperationTransaction(EndOperationTransactionArgs e) {
+        super.endOperationTransaction(e);
+        //获取当前操作单据数组
+        DynamicObject[] dynamicObjects = e.getDataEntities();
+        for (int i = 0; i < dynamicObjects.length; i++) {
+            JSONObject object = new JSONObject();
+            //当前单头数据包
+            DynamicObject info = BusinessDataServiceHelper.loadSingle(dynamicObjects[i].getPkValue(), dynamicObjects[i].getDynamicObjectType().getName());
+            String detailtype = info.getString("nckd_detailtype");
+            if("A".equals(detailtype)){
+                for (DynamicObject entryentity : info.getDynamicObjectCollection("nckd_entryentity1")) {
+                    String nckdcysnumber = entryentity.getString("nckd_cysnumber");//财务应收单编码
+                    BigDecimal nckdCyscxbalance = entryentity.getBigDecimal("nckd_cyscxbalance");//冲销金额
+                    //构建查询应收挂账单参数
+                    QFilter nckd_orgamountFilter = new QFilter("id", 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");//未结算金额
+                    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 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});
+//                }
+            } else if ("B".equals(detailtype)){
+                for (DynamicObject entryentity : info.getDynamicObjectCollection("nckd_entryentity2")) {
+                    String nckdBigintfield = entryentity.getString("nckd_bigintfield");//财务应付单id
+                    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 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});
+                }
+            }
+        }
+    }
+}

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

@@ -0,0 +1,72 @@
+package fi.em.opplugin;
+
+import com.alibaba.fastjson.JSONObject;
+import kd.bos.dataentity.entity.DynamicObject;
+import kd.bos.entity.plugin.AbstractOperationServicePlugIn;
+import kd.bos.entity.plugin.args.EndOperationTransactionArgs;
+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;
+
+public class BusinessProcessingUnAuditOpPlugin extends AbstractOperationServicePlugIn {
+    @Override
+    public void endOperationTransaction(EndOperationTransactionArgs e) {
+        super.endOperationTransaction(e);
+        //获取当前操作单据数组
+        DynamicObject[] dynamicObjects = e.getDataEntities();
+        for (int i = 0; i < dynamicObjects.length; i++) {
+            JSONObject object = new JSONObject();
+            //当前单头数据包
+            DynamicObject info = BusinessDataServiceHelper.loadSingle(dynamicObjects[i].getPkValue(), dynamicObjects[i].getDynamicObjectType().getName());
+            String detailtype = info.getString("nckd_detailtype");
+            if("A".equals(detailtype)){
+                for (DynamicObject entryentity : info.getDynamicObjectCollection("nckd_entryentity1")) {
+                    String nckdcysnumber = entryentity.getString("nckd_cysnumber");//财务应收单编码
+                    BigDecimal nckdCyscxbalance = entryentity.getBigDecimal("nckd_cyscxbalance");//冲销金额
+                    //构建查询应收挂账单参数
+                    QFilter nckd_orgamountFilter = new QFilter("id", 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");//未结算金额
+                    BigDecimal settleamount = dynamicObject.getBigDecimal("settleamount");//已结算金额
+                    BigDecimal recamount = dynamicObject.getBigDecimal("recamount");//应收金额
+                    unsettleamount=unsettleamount.add(nckdCyscxbalance);//计算后反写未结算金额
+                    settleamount=settleamount.subtract(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});
+                }
+            } else if ("B".equals(detailtype)){
+                for (DynamicObject entryentity : info.getDynamicObjectCollection("nckd_entryentity2")) {
+                    String nckdBigintfield = entryentity.getString("nckd_bigintfield");//财务应付单id
+                    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 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.add(nckdCyscxbalance);//计算后反写未结算金额
+                    settleamount=settleamount.subtract(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});
+                }
+            }
+        }
+    }
+}

+ 1 - 1
src/main/java/kd/imc/rim/utils/ApiHttpUtils.java → src/main/java/kd/imc/rim/ApiHttpUtils.java

@@ -1,4 +1,4 @@
-package kd.imc.rim.utils;
+package kd.imc.rim;
 
 
 import com.alibaba.fastjson.JSON;

+ 0 - 4
src/main/java/kd/imc/rim/AwsRecognitionServiceEx.java

@@ -23,10 +23,6 @@ import kd.imc.rim.common.invoice.recognitionnew.RecognitionService;
 import kd.imc.rim.common.invoice.recognitionnew.model.RecognitionParam;
 import kd.imc.rim.common.invoice.recognitionnew.model.RecognitionResult;
 import kd.imc.rim.common.message.exception.MsgException;
-import kd.imc.rim.common.utils.AwsFpyService;
-import kd.imc.rim.common.utils.HttpUtil;
-import kd.imc.rim.common.utils.ImcConfigUtil;
-import kd.imc.rim.utils.ApiHttpUtils;
 import kd.imc.rim.utils.FileOutputStreamExample;
 import org.apache.commons.compress.utils.Lists;