From b011b1368c2f8813ef2684a4a63914e6e59b5e15 Mon Sep 17 00:00:00 2001
From: skyouc
Date: 星期四, 05 六月 2025 17:06:51 +0800
Subject: [PATCH] DO单优化 出库单优化

---
 rsf-server/src/main/java/com/vincent/rsf/server/manager/service/impl/OutStockServiceImpl.java |   12 ++++++++++--
 1 files changed, 10 insertions(+), 2 deletions(-)

diff --git a/rsf-server/src/main/java/com/vincent/rsf/server/manager/service/impl/OutStockServiceImpl.java b/rsf-server/src/main/java/com/vincent/rsf/server/manager/service/impl/OutStockServiceImpl.java
index 70e07a5..ee49baf 100644
--- a/rsf-server/src/main/java/com/vincent/rsf/server/manager/service/impl/OutStockServiceImpl.java
+++ b/rsf-server/src/main/java/com/vincent/rsf/server/manager/service/impl/OutStockServiceImpl.java
@@ -193,12 +193,15 @@
             List<AsnOrderItem> orderItems = new ArrayList<>();
             listMap.get(key).forEach(item -> {
                 AsnOrderItem orderItem = new AsnOrderItem();
+                Double anfme = Math.round((item.getAnfme() - item.getWorkQty() - item.getQty()) * 10000) / 10000.0;
                 BeanUtils.copyProperties(item, orderItem);
                 orderItem.setId(null)
                         .setPoCode(order.getPoCode())
                         .setMaktx(item.getMaktx())
                         .setMatnrCode(item.getMatnrCode())
                         .setFieldsIndex(item.getFieldsIndex())
+                        .setAnfme(anfme)
+                        .setWorkQty(0.0)
                         .setAsnId(order.getId())
                         .setAsnCode(order.getCode())
                         .setStockUnit(item.getUnit())
@@ -221,7 +224,7 @@
 
             Double sum = orderItems.stream().mapToDouble(AsnOrderItem::getAnfme).sum();
             //淇敼璁″垝鏁伴噺
-            order.setAnfme(sum);
+            order.setAnfme(sum).setWorkQty(0.0);
             if (!this.saveOrUpdate(order)) {
                 throw new CoolException("涓诲崟鏁伴噺淇敼澶辫触锛侊紒");
             }
@@ -229,8 +232,13 @@
                 throw new CoolException("鏄庣粏淇濆瓨澶辫触锛侊紒");
             }
 
+            Short exceStatus = POExceStatus.PO_EXCE_STATUS_SECTION_DONE.val;
+            if (delivery.getAnfme().compareTo(order.getAnfme()) <= 0) {
+                exceStatus = AsnExceStatus.ASN_EXCE_STATUS_TASK_DONE.val;
+            }
+
             if (!deliveryService.update(new LambdaUpdateWrapper<Delivery>()
-                    .set(Delivery::getExceStatus, POExceStatus.PO_EXCE_STATUS_EXCE_ING.val)
+                    .set(Delivery::getExceStatus, exceStatus)
                     .set(Delivery::getWorkQty, sum)
                     .eq(Delivery::getId, key))) {
                 throw new CoolException("涓诲崟淇敼澶辫触锛侊紒");

--
Gitblit v1.9.1