From e4e3f752792527c5c22df131c8dffa4733c98057 Mon Sep 17 00:00:00 2001
From: skyouc
Date: 星期四, 05 六月 2025 15:05:11 +0800
Subject: [PATCH] 任务列表优化 DO单功能优化 出库单功能优化

---
 rsf-server/src/main/java/com/vincent/rsf/server/manager/service/impl/OutStockServiceImpl.java |   33 ++++++++++++++++++++++++++++++---
 1 files changed, 30 insertions(+), 3 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 0b6967a..0137b40 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
@@ -10,6 +10,7 @@
 import com.vincent.rsf.server.manager.controller.params.AsnOrderAndItemsParams;
 import com.vincent.rsf.server.manager.entity.*;
 import com.vincent.rsf.server.manager.enums.AsnExceStatus;
+import com.vincent.rsf.server.manager.enums.POExceStatus;
 import com.vincent.rsf.server.manager.enums.WaveExceStatus;
 import com.vincent.rsf.server.manager.mapper.AsnOrderMapper;
 import com.vincent.rsf.server.manager.service.*;
@@ -61,7 +62,7 @@
      * @time 2025/4/7 13:28
      */
     @Transactional(rollbackFor = Exception.class)
-    private void svaeOrUpdateOrderItem(AsnOrderAndItemsParams params, Long loginUserId) throws Exception {
+    public void svaeOrUpdateOrderItem(AsnOrderAndItemsParams params, Long loginUserId) throws Exception {
         AsnOrder orders = params.getOrders();
         params.getItems().forEach(item -> {
             item.put("asnId", orders.getId());
@@ -114,6 +115,7 @@
 
     /**
      * @param
+     * @param loginUserId
      * @return
      * @author Ryan
      * @description 閫氳繃DO鍗曠敓鎴愬嚭搴撳崟
@@ -121,7 +123,7 @@
      */
     @Override
     @Transactional(rollbackFor = Exception.class)
-    public R genOutStock(List<Long> ids) {
+    public R genOutStock(List<Long> ids, Long loginUserId) {
         if (Objects.isNull(ids) || ids.isEmpty()) {
             throw new CoolException("鍙傛暟涓嶈兘涓虹┖锛侊紒");
         }
@@ -143,9 +145,13 @@
                 throw new CoolException("缂栫爜瑙勫垯閿欒锛氳妫�鏌� 銆孲YS_OUT_STOCK_CODE銆嶇紪鐮佹槸鍚﹁缃垚鍔�");
             }
             order.setExceStatus(AsnExceStatus.OUT_STOCK_STATUS_TASK_INIT.val)
+                    .setType(delivery.getType())
+                    .setWkType(delivery.getWkType())
                     .setCode(ruleCode)
                     .setPoId(delivery.getId())
                     .setId(null)
+                    .setUpdateBy(loginUserId)
+                    .setCreateBy(loginUserId)
                     .setPoCode(delivery.getCode());
             if (!this.save(order)) {
                 throw new CoolException("涓诲崟淇濆瓨澶辫触锛侊紒");
@@ -161,12 +167,25 @@
                         .setFieldsIndex(item.getFieldsIndex())
                         .setAsnId(order.getId())
                         .setAsnCode(order.getCode())
+                        .setStockUnit(item.getUnit())
+                        .setPurUnit(item.getUnit())
+                        .setPlatWorkCode(item.getPlatWorkCode())
+                        .setPlatOrderCode(item.getPlatOrderCode())
+                        .setProjectCode(item.getProjectCode())
                         .setPlatItemId(item.getPlatItemId())
+                        .setUpdateBy(loginUserId)
+                        .setCreateBy(loginUserId)
                         .setPoDetlId(item.getId());
                 orderItems.add(orderItem);
+
+                if (!deliveryItemService.update(new LambdaUpdateWrapper<DeliveryItem>()
+                        .set(DeliveryItem::getWorkQty, item.getAnfme())
+                        .eq(DeliveryItem::getId, item.getId()))) {
+                    throw new CoolException("DO鍗曟槑缁嗕慨鏀瑰け璐ワ紒锛�");
+                }
             });
 
-            double sum = orderItems.stream().mapToDouble(AsnOrderItem::getAnfme).sum();
+            Double sum = orderItems.stream().mapToDouble(AsnOrderItem::getAnfme).sum();
             //淇敼璁″垝鏁伴噺
             order.setAnfme(sum);
             if (!this.saveOrUpdate(order)) {
@@ -175,6 +194,14 @@
             if (!asnOrderItemService.saveBatch(orderItems)) {
                 throw new CoolException("鏄庣粏淇濆瓨澶辫触锛侊紒");
             }
+
+            if (!deliveryService.update(new LambdaUpdateWrapper<Delivery>()
+                    .set(Delivery::getExceStatus, POExceStatus.PO_EXCE_STATUS_EXCE_ING.val)
+                    .set(Delivery::getWorkQty, sum)
+                    .eq(Delivery::getId, key))) {
+                throw new CoolException("涓诲崟淇敼澶辫触锛侊紒");
+            }
+
         });
         return R.ok();
     }

--
Gitblit v1.9.1