From 01107e8aadfaf1e84a971d8eeb9ab37e1c5569f3 Mon Sep 17 00:00:00 2001
From: cy <1664593601@qq.com>
Date: 星期五, 01 十二月 2023 09:38:56 +0800
Subject: [PATCH] feat: 部门退回/报废公用接口

---
 consum-base/src/main/java/com/consum/base/service/LWhFormScrappedCoreService.java |   48 ++++++++++++++++++++++++++++++++++--------------
 1 files changed, 34 insertions(+), 14 deletions(-)

diff --git a/consum-base/src/main/java/com/consum/base/service/LWhFormScrappedCoreService.java b/consum-base/src/main/java/com/consum/base/service/LWhFormScrappedCoreService.java
index d4b1cb4..6e3cdcc 100644
--- a/consum-base/src/main/java/com/consum/base/service/LWhFormScrappedCoreService.java
+++ b/consum-base/src/main/java/com/consum/base/service/LWhFormScrappedCoreService.java
@@ -1,54 +1,66 @@
 package com.consum.base.service;
 
+import cn.hutool.core.convert.Convert;
 import com.consum.base.core.WhBusinessEnum;
-import com.consum.base.core.util.LockManage;
-import com.consum.model.po.*;
+import com.consum.base.core.service.LWhWarningCoreServiceImpl;
+import com.consum.base.core.utils.LockManage;
+import com.consum.model.po.LWarehouseFlow;
+import com.consum.model.po.LWhFormScrapped;
+import com.consum.model.po.LWhFormScrappedGoods;
+import com.consum.model.po.LWhGoodsRecord;
 import com.iplatform.model.po.S_user_core;
 import com.walker.infrastructure.utils.CollectionUtils;
 import com.walker.infrastructure.utils.NumberGenerator;
 import lombok.extern.slf4j.Slf4j;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
+import org.springframework.transaction.annotation.Propagation;
 import org.springframework.transaction.annotation.Transactional;
 import org.springframework.transaction.interceptor.TransactionAspectSupport;
 
+import java.util.ArrayList;
 import java.util.List;
 import java.util.Map;
 import java.util.stream.Collectors;
 
 /**
  * @ClassName LWhFormScrappedCoreService
- * @Author cy
  * @Date 2023/10/30
  * @Description
  * @Version 1.0
  **/
 @Service
 @Slf4j
+@Transactional(rollbackFor = Exception.class, propagation = Propagation.REQUIRED)
 public class LWhFormScrappedCoreService {
-    private LWhFormScrappedServiceImpl lWhFormScrappedService;
+
+    private GoodsBaseServiceImpl goodsBaseService;
     private LWhFormScrappedGoodsService lWhFormScrappedGoodsService;
     private BaseGoodsTemplateServiceImpl baseGoodsTemplateService;
     private LWhGoodsService lWhGoodsService;
     private LWhGoodsRecordDetailsService lWhGoodsRecordDetailsService;
     private LWhGoodsRecordService lWhGoodsRecordService;
     private LWarehouseFlowService lWarehouseFlowService;
+    private LWhWarningCoreServiceImpl lWhWarningCoreService;
 
     @Autowired
-    public LWhFormScrappedCoreService(LWhFormScrappedServiceImpl lWhFormScrappedService,
+    public LWhFormScrappedCoreService(GoodsBaseServiceImpl goodsBaseService,
                                       LWhFormScrappedGoodsService lWhFormScrappedGoodsService,
                                       BaseGoodsTemplateServiceImpl baseGoodsTemplateService,
                                       LWhGoodsService lWhGoodsService,
                                       LWhGoodsRecordDetailsService lWhGoodsRecordDetailsService,
                                       LWhGoodsRecordService lWhGoodsRecordService,
-                                      LWarehouseFlowService lWarehouseFlowService) {
-        this.lWhFormScrappedService = lWhFormScrappedService;
+                                      LWarehouseFlowService lWarehouseFlowService,
+                                      LWhWarningCoreServiceImpl lWhWarningCoreService) {
+//        this.lWhFormScrappedService = lWhFormScrappedService;
         this.lWhFormScrappedGoodsService = lWhFormScrappedGoodsService;
         this.baseGoodsTemplateService = baseGoodsTemplateService;
         this.lWhGoodsService = lWhGoodsService;
         this.lWhGoodsRecordDetailsService = lWhGoodsRecordDetailsService;
         this.lWhGoodsRecordService = lWhGoodsRecordService;
         this.lWarehouseFlowService = lWarehouseFlowService;
+        this.goodsBaseService = goodsBaseService;
+        this.lWhWarningCoreService = lWhWarningCoreService;
     }
 
 
@@ -64,7 +76,7 @@
             return null;
         }
         LWhFormScrapped lWhFormScrapped = new LWhFormScrapped(formScrappedId);
-        lWhFormScrapped = lWhFormScrappedService.get(lWhFormScrapped);
+        lWhFormScrapped = goodsBaseService.get(lWhFormScrapped);
         if (lWhFormScrapped != null && lWhFormScrapped.getStates() != 0) {
             log.error("鎶ュ簾澶辫触锛佽妫�鏌ユ姤搴熷崟鐘舵��");
             return null;
@@ -89,10 +101,14 @@
         }
 
         // 鎸夊瀷鍙峰垎缁�
-        Map<Long, List<LWhFormScrappedGoods>> modelGroup = formScrappedGoods.stream().collect(Collectors.groupingBy(LWhFormScrappedGoods::getBaseGoodsModelsId));
+        ArrayList<Long> allChangModelList = new ArrayList<>();
+
+        Map<Long, List<LWhFormScrappedGoods>> modelGroup = formScrappedGoods.stream()
+                .collect(Collectors.groupingBy(LWhFormScrappedGoods::getBaseGoodsModelsId));
         for (Map.Entry<Long, List<LWhFormScrappedGoods>> entry : modelGroup.entrySet()) {
             //瑙勬牸鍨嬪彿缂栧彿
             Long baseGoodsModelsId = entry.getKey();
+            allChangModelList.add(baseGoodsModelsId);
             //瀵规瘡缁勪腑瑕佹姤搴熺殑鏁伴噺姹傚拰
             List<LWhFormScrappedGoods> modelGoodsList = entry.getValue();
             //鏌ヨ鍨嬪彿淇℃伅
@@ -135,7 +151,8 @@
                         //浣跨敤浜哄憳鍚嶇О
                         String userName = formScrappedGood.getUserName();
                         // 鏍规嵁鍒嗗彂鍗曘�佽鏍煎瀷鍙风紪鍙枫�佷娇鐢ㄤ汉鍛樺悕绉帮紝杩涜鎶ュ簾
-                        srappedGoodsIds = lWhGoodsService.queryScrappedGoodsIds(warehouseType, warehouseId, transBusinessId, userName, baseGoodsModelsId, (short) 2, counts);
+                        srappedGoodsIds = lWhGoodsService.queryScrappedGoodsIds(warehouseType, warehouseId, transBusinessId, userName, baseGoodsModelsId,
+                                (short) 2, counts);
                     }
                     if (CollectionUtils.isEmpty(srappedGoodsIds) || srappedGoodsIds.size() < counts) {
                         log.error("瑕佹姤搴熺殑鐗╁搧鏁伴噺涓嶈冻锛�");
@@ -148,7 +165,7 @@
                     whGoodsRecord.setEndCount(goodsModelNum - counts);
 
                     // 璁剧疆鐗╁搧涓烘姤搴熺姸鎬�
-                    lWhGoodsService.modGoodsTransfering(srappedGoodsIds, null, null, null, (short) 3);
+                    lWhGoodsService.modGoodsTransfering(srappedGoodsIds, null, null, null, 3);
                     // 鎵归噺鎻掑叆 杩涘嚭搴撴祦姘存槑缁哰L_WH_GOODS_RECORD_DETAILS]
                     lWhGoodsRecordDetailsService.sameGoodsInsertMore(srappedGoodsIds, whGoodsRecordId, (short) 2);
                 }
@@ -174,8 +191,8 @@
             return null;
         }
         // 鏇存柊鎶ュ簾鍗�
-         lWhFormScrapped = new LWhFormScrapped(formScrappedId);
-        lWhFormScrapped = lWhFormScrappedService.get(lWhFormScrapped);
+        lWhFormScrapped = new LWhFormScrapped(formScrappedId);
+        lWhFormScrapped = goodsBaseService.get(lWhFormScrapped);
         if (lWhFormScrapped != null && lWhFormScrapped.getStates() != 0) {
             log.error("鎶ュ簾澶辫触锛佽妫�鏌ユ姤搴熷崟鐘舵��");
             return null;
@@ -185,7 +202,10 @@
         lWhFormScrapped.setOperatorId(userId);
         lWhFormScrapped.setOperatorName(nickName);
         lWhFormScrapped.setDealTime(dealTime);
-        lWhFormScrappedService.update(lWhFormScrapped);
+        goodsBaseService.update(lWhFormScrapped);
+
+        //褰撳簱瀛樺彉鍔ㄦ椂璋冪敤璇ユ柟娉�
+        lWhWarningCoreService.updateKuCun(Convert.toShort(warehouseType,(short) 0), warehouseId, allChangModelList, null, dealTime);
         return lWarehouseFlowId;
     }
 

--
Gitblit v1.9.1