From d5f16640dc1bf0239beafab721480a64425d9c1e Mon Sep 17 00:00:00 2001
From: skyouc
Date: 星期二, 29 七月 2025 10:46:12 +0800
Subject: [PATCH] 调拔功能优化

---
 rsf-server/src/main/java/com/vincent/rsf/server/manager/service/impl/TransferServiceImpl.java |   44 +++++++++++++++++++++++++++++++++++---------
 1 files changed, 35 insertions(+), 9 deletions(-)

diff --git a/rsf-server/src/main/java/com/vincent/rsf/server/manager/service/impl/TransferServiceImpl.java b/rsf-server/src/main/java/com/vincent/rsf/server/manager/service/impl/TransferServiceImpl.java
index 9455749..dd30339 100644
--- a/rsf-server/src/main/java/com/vincent/rsf/server/manager/service/impl/TransferServiceImpl.java
+++ b/rsf-server/src/main/java/com/vincent/rsf/server/manager/service/impl/TransferServiceImpl.java
@@ -22,10 +22,8 @@
 import org.springframework.stereotype.Service;
 import org.springframework.transaction.annotation.Transactional;
 
-import java.util.ArrayList;
-import java.util.Date;
-import java.util.List;
-import java.util.Objects;
+import java.util.*;
+import java.util.stream.Collectors;
 
 @Service("transferService")
 public class TransferServiceImpl extends ServiceImpl<TransferMapper, Transfer> implements TransferService {
@@ -40,6 +38,8 @@
     private OutStockItemService outStockItemService;
     @Autowired
     private TransferOrderService transferOrderService;
+    @Autowired
+    private TransferService transferService;
 
     /**
      * @author Ryan
@@ -191,16 +191,16 @@
             throw new CoolException("鏁版嵁閿欒锛氳皟鎷斿崟鏄庣粏涓嶅瓨鍦紒锛�");
         }
         WkOrder wkOrder = new WkOrder();
-        String ruleCode = SerialRuleUtils.generateRuleCode(SerialRuleCode.SYS_TRANSFER_ORDER_CODE, transfer);
+        String ruleCode = SerialRuleUtils.generateRuleCode(SerialRuleCode.SYS_OUT_STOCK_CODE, transfer);
         if (StringUtils.isBlank(ruleCode)) {
-            throw new CoolException("璋冩嫈鍗曞彿鐢熸垚澶辫触锛侊紒");
+            throw new CoolException("鍑哄簱鍗曠敓鎴愬け璐ワ紒锛�");
         }
 
         Double anfmes = items.stream().mapToDouble(TransferItem::getAnfme).sum();
         wkOrder.setCode(ruleCode)
                 .setAnfme(anfmes)
                 .setExceStatus(AsnExceStatus.ASN_EXCE_STATUS_UN_EXCE.val)
-                .setType(OrderType.ORDER_TRANSFER.type)
+                .setType(OrderType.ORDER_OUT.type)
                 .setWkType(OrderWorkType.ORDER_WORK_TYPE_STOCK_TERANSFER.type)
                 .setCreateBy(loginUserId)
                 .setUpdateBy(loginUserId)
@@ -228,14 +228,14 @@
             throw new CoolException("鍑哄簱鍗曟槑缁嗕繚瀛樺け璐ワ紒锛�");
         }
 
-        transfer.setExceStatus(WaveExceStatus.WAVE_EXCE_STATUS_EXCING.val);
+        transfer.setExceStatus(CheckExceStatus.CHECK_ORDER_STATUS_INIT.val);
 
         if (!this.updateById(transfer)) {
             throw new CoolException("璋冩嫈鍗曟洿鏂板け璐ワ紒锛�");
         }
 
         TransferOrder transferOrder = new TransferOrder();
-        transferOrder.setTransferId(transfer.getId()).setOrderId(wkOrder.getId()).setExceStatus(1);
+        transferOrder.setTransferId(transfer.getId()).setOrderId(wkOrder.getId()).setExceStatus((int)CheckExceStatus.CHECK_ORDER_STATUS_INIT.val);
 
         if (!transferOrderService.save(transferOrder)) {
             throw new CoolException("鍗曟嵁鍏宠仈澶辫触锛侊紒");
@@ -243,4 +243,30 @@
 
         return transfer;
     }
+
+    /**
+     * @author Ryan
+     * @date 2025/7/29
+     * @description: 鍒犻櫎璋冩嫈鍗�
+     * @version 1.0
+     */
+    @Override
+    @Transactional(rollbackFor = Exception.class)
+    public boolean removeTransfer(List<Long> list) {
+        List<WkOrder> wkOrders = outStockService.list(new LambdaQueryWrapper<WkOrder>().in(WkOrder::getPoId, list));
+        if (!wkOrders.isEmpty()) {
+            Set<Long> longs = wkOrders.stream().map(WkOrder::getId).collect(Collectors.toSet());
+            if (!outStockService.remove(new LambdaQueryWrapper<WkOrder>()
+                    .in(WkOrder::getId, longs)
+                    .ne(WkOrder::getExceStatus, WaveExceStatus.WAVE_EXCE_STATUS_INIT.val))) {
+                throw new CoolException("褰撳墠鍑哄簱鍗曞凡鎵ц锛屼笉鏀寔鍒犻櫎锛侊紒");
+            }
+            outStockItemService.remove(new LambdaQueryWrapper<WkOrderItem>().in(WkOrderItem::getOrderId, longs));
+            transferOrderService.remove(new LambdaQueryWrapper<TransferOrder>().in(TransferOrder::getTransferId, list));
+        }
+
+        transferService.removeByIds(list);
+        transferItemService.remove(new LambdaQueryWrapper<TransferItem>().in(TransferItem::getTransferId, list));
+        return true;
+    }
 }

--
Gitblit v1.9.1