From caf2f1723139a9adbb3dd65e45edd1ddf5b06f0b Mon Sep 17 00:00:00 2001
From: ljw <ljw@yunemao.com>
Date: Fri, 22 Nov 2024 15:14:14 +0800
Subject: [PATCH] =?UTF-8?q?fix:=201.=E5=AF=84=E5=8D=95=E6=94=BE=E5=8D=95?=
 =?UTF-8?q?=E7=94=B3=E8=AF=B7=E6=8F=90=E4=BA=A4=E6=8B=BC=E6=8E=A5?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

---
 .../op/ExportPresentSubmitOp.java             | 52 ++++++++++++++++---
 1 file changed, 44 insertions(+), 8 deletions(-)

diff --git a/src/main/java/com/yem/wm/es/exportpresent/op/ExportPresentSubmitOp.java b/src/main/java/com/yem/wm/es/exportpresent/op/ExportPresentSubmitOp.java
index 60a20ae5..cb26f348 100644
--- a/src/main/java/com/yem/wm/es/exportpresent/op/ExportPresentSubmitOp.java
+++ b/src/main/java/com/yem/wm/es/exportpresent/op/ExportPresentSubmitOp.java
@@ -2,9 +2,20 @@ package com.yem.wm.es.exportpresent.op;
 
 import com.yem.wm.es.exportpresent.validator.ExportPresentSubmitValidator;
 import com.yem.wm.es.exportpresent.validator.ExportPresentSubmitsValidator;
+import com.yem.wm.es.shippingdetails.util.PaymentControlUtil;
+import kd.bos.dataentity.entity.DynamicObject;
+import kd.bos.dataentity.entity.DynamicObjectCollection;
 import kd.bos.entity.plugin.AbstractOperationServicePlugIn;
 import kd.bos.entity.plugin.AddValidatorsEventArgs;
-import kd.bos.entity.plugin.PreparePropertysEventArgs;
+import kd.bos.entity.plugin.args.EndOperationTransactionArgs;
+import kd.bos.servicehelper.BusinessDataServiceHelper;
+import kd.bos.servicehelper.operation.SaveServiceHelper;
+
+import java.math.BigDecimal;
+import java.math.RoundingMode;
+
+import static com.yem.wm.es.contractamtlist.util.FunUtil.getPayBills;
+import static com.yem.wm.es.contractamtlist.util.FunUtil.getShipBills;
 
 /**
  * @Description 寄单放单申请提交
@@ -12,17 +23,42 @@ import kd.bos.entity.plugin.PreparePropertysEventArgs;
  * @Created by ZZSLL
  */
 
-public class ExportPresentSubmitOp extends AbstractOperationServicePlugIn {
-    public void onPreparePropertys(PreparePropertysEventArgs e) {
-        super.onPreparePropertys(e);
-        e.getFieldKeys().addAll(this.billEntityType.getAllFields().keySet());
-    }
-
+public class ExportPresentSubmitOp extends AbstractOperationServicePlugIn
+{
     @Override
-    public void onAddValidators(AddValidatorsEventArgs e) {
+    public void onAddValidators(AddValidatorsEventArgs e)
+    {
         super.onAddValidators(e);
         e.addValidator(new ExportPresentSubmitValidator());
         e.addValidator(new ExportPresentSubmitsValidator());
     }
 
+    @Override
+    public void endOperationTransaction(EndOperationTransactionArgs e)
+    {
+        super.endOperationTransaction(e);
+        DynamicObject[] eDataEntities = e.getDataEntities();
+        String operationKey = e.getOperationKey();
+        if ("submit".equals(operationKey)) {
+            for (DynamicObject dataEntity : eDataEntities) {
+                DynamicObjectCollection collection = dataEntity.getDynamicObjectCollection("yem_es_exportpre_erf");
+                for (DynamicObject dynamicObject : collection) {
+                    DynamicObject saleOrder = dynamicObject.getDynamicObject("yem_saleorder");
+                    if (saleOrder == null) continue;
+                    DynamicObject shipDetail = dynamicObject.getDynamicObject("yem_shipbill");
+                    if (shipDetail == null) continue;
+                    shipDetail = BusinessDataServiceHelper.loadSingle(shipDetail.getPkValue(), shipDetail.getDataEntityType().getName());
+                    saleOrder = BusinessDataServiceHelper.loadSingle(saleOrder.getPkValue(), saleOrder.getDataEntityType().getName());
+                    DynamicObject[] shipBills = getShipBills(saleOrder, dataEntity, "A");//出运
+                    DynamicObject[] payBills = getPayBills(saleOrder, dataEntity, "B");//收款单
+
+                    BigDecimal thisRealityAmt = PaymentControlUtil.getThisRealityAmt(saleOrder, shipBills, payBills, shipDetail);
+                    dynamicObject.set("yem_debtamt", thisRealityAmt.setScale(2, RoundingMode.HALF_UP));
+                }
+                String yemDetailordernumber = dataEntity.getString("yem_detailordernumber");
+                dataEntity.set("yem_cloudhousetitle","寄单放单申请-"+yemDetailordernumber);
+            }
+            SaveServiceHelper.save(eDataEntities);
+        }
+    }
 }