From a1b85ef72062ca80db35546e4216dd564f3e0f57 Mon Sep 17 00:00:00 2001
From: WangHan <wwh_work@126,com>
Date: 星期四, 03 四月 2025 15:58:19 +0800
Subject: [PATCH] 问题与漏洞修改

---
 consum-base/src/main/java/com/consum/base/service/core/LWhFormTransferCoreService.java |   61 ++++++++++++++----------------
 1 files changed, 28 insertions(+), 33 deletions(-)

diff --git a/consum-base/src/main/java/com/consum/base/service/core/LWhFormTransferCoreService.java b/consum-base/src/main/java/com/consum/base/service/core/LWhFormTransferCoreService.java
index b2b55fc..b3d2dfd 100644
--- a/consum-base/src/main/java/com/consum/base/service/core/LWhFormTransferCoreService.java
+++ b/consum-base/src/main/java/com/consum/base/service/core/LWhFormTransferCoreService.java
@@ -7,8 +7,7 @@
 import java.util.Map;
 import java.util.stream.Collectors;
 
-import javax.annotation.Resource;
-
+import jakarta.annotation.Resource;
 import org.springframework.stereotype.Service;
 import org.springframework.transaction.annotation.Propagation;
 import org.springframework.transaction.annotation.Transactional;
@@ -134,7 +133,6 @@
         lWhFormTransferService.update(lWhFormTransfer);
 
         log.info("璋冩嫧鍗曪細{} 鍑哄簱瀹屾垚", whFormTransferId);
-        return;
 
     }
 
@@ -144,12 +142,13 @@
      * @param whFormTransferId
      * @param currentUser
      */
-    public Long doTransferOutPutNew(Long whFormTransferId, S_user_core currentUser) {
+    public Long doTransferOutPutNew(Long whFormTransferId, S_user_core currentUser, WhBusinessEnum whBusinessEnum)
+        throws Exception {
         LWhFormTransfer lWhFormTransfer = new LWhFormTransfer(whFormTransferId);
         lWhFormTransfer = lWhFormTransferService.get(lWhFormTransfer);
         if (lWhFormTransfer == null || lWhFormTransfer.getStates() != 0) {
             log.error("璋冩嫧澶辫触锛佽妫�鏌ヨ皟鎷ㄥ崟鐘舵��");
-            return null;
+            throw new Exception("璋冩嫧澶辫触锛佽妫�鏌ヨ皟鎷ㄥ崟鐘舵��");
         }
 
         Long userId = currentUser.getId();
@@ -157,10 +156,10 @@
         long dealTime = DateUtils.getDateTimeNumber(System.currentTimeMillis());
         // 鐢宠璋冩嫧鐨勭墿鍝�
         List<LWhProcureModel> goodsModelNumList =
-            lWhProcureModelService.getModelByForm(WhBusinessEnum.DIAOBO, whFormTransferId);
+            lWhProcureModelService.getModelByForm(whBusinessEnum, whFormTransferId);
         if (CollectionUtils.isEmpty(goodsModelNumList)) {
             log.error("娌℃湁瑕佸嚭搴撶殑鐗╁搧");
-            return null;
+            throw new Exception("娌℃湁瑕佸嚭搴撶殑鐗╁搧");
         }
         List<LWhProcureModel> goodsModelNumUpdList = new ArrayList<>(goodsModelNumList.size());
 
@@ -173,26 +172,21 @@
         String inWarehouseName = lWhFormTransfer.getInWarehouseName();
 
         // 娴佹按璁板綍鎬昏〃ID
-        long lWarehouseFlowId = NumberGenerator.getLongSequenceNumberNano();
+        long lWarehouseFlowId = IdUtil.generateId();
         // 娴佹按璁板綍鎬昏〃涓� 涓氬姟ID 銆傝皟鎷ㄥ崟鏃� 淇濆瓨璋冩嫧鍗昳d 鍑哄簱鍗曟椂 淇濆瓨鍑哄簱鍗昳d
         long lWarehouseFlowBusinessId = whFormTransferId;
 
         // 鐗╁搧鐘舵�侊紙0=鍦ㄩ�旇皟鎷紱1=鍏ュ簱鏈垎鍙戯紱2=宸蹭笅鍙戯紱3=鎶ュ簾锛�
-        Integer queryModelStatusT = 1;
+        Integer queryModelStatus = 1;
         // 閲囪喘鏂瑰紡锛�1锛氶泦閲囷紱2=鑷噰锛�
-        Integer buyTypeT = null;
-        Integer modGoodsTransferingStatusT = null;
-        // 璋冩嫧鍑哄簱
-        queryModelStatusT = 1;
-        buyTypeT = 1;
-        modGoodsTransferingStatusT = 0;
-
-        Integer queryModelStatus = queryModelStatusT;
-        Integer buyType = buyTypeT;
-        Integer modGoodsTransferingStatus = modGoodsTransferingStatusT;
+        Integer buyType = 1;
+        if (whBusinessEnum == WhBusinessEnum.BUMENFENFA) {
+            buyType = null;
+        }
+        Integer modGoodsStatus = 0;
 
         ArrayList<Long> allChangModelList = new ArrayList<>();
-        goodsModelNumList.forEach(itemModelInfo -> {
+        for (LWhProcureModel itemModelInfo : goodsModelNumList) {
             // 闇�瑕佽皟鎷ㄧ殑鐗╁搧鐨勬煇涓瀷鍙�
             Long baseGoodsModelsId = itemModelInfo.getBaseGoodsModelsId();
             LWhProcureModel updWhProcureModel = new LWhProcureModel(itemModelInfo.getId());
@@ -209,7 +203,7 @@
             String modelName = (String)tempGoodsInfo.get("modelname");
 
             // 鎻掑叆 鍚勮鏍肩墿鍝佺殑杩涘嚭搴撹褰� L_WH_GOODS_RECORD
-            long whGoodsRecordId = NumberGenerator.getLongSequenceNumberNano();
+            long whGoodsRecordId = IdUtil.generateId();
             LWhGoodsRecord whGoodsRecord = new LWhGoodsRecord();
             whGoodsRecord.setId(whGoodsRecordId);
             whGoodsRecord.setWarehouseId(outWarehouseId);
@@ -235,7 +229,8 @@
                     log.error("鍑哄簱澶辫触锛佸瀷鍙穥} 鐨勬暟閲忎笉瓒筹紝闇�瑕佽皟鎷▄}涓紝浠撳簱涓幇瀛榹}涓�", baseGoodsModelsId, counts, goodsModelNum);
                     // 鎵嬪姩鍥炴粴
                     TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
-                    throw new RuntimeException("鍑哄簱澶辫触!鍨嬪彿鏁伴噺涓嶈冻");
+                    //throw new RuntimeException("鍑哄簱澶辫触!鍨嬪彿鏁伴噺涓嶈冻");
+                    return -1L;
                 }
                 whGoodsRecord.setInitialCount(goodsModelNum);
                 whGoodsRecord.setEndCount(goodsModelNum - counts);
@@ -244,7 +239,7 @@
                 outGoodsId = lWhGoodsService.queryOutGoodsId(outWarehouseType, outWarehouseId, baseGoodsModelsId,
                     queryModelStatus, buyType, counts);
                 lWhGoodsService.modGoodsTransfering(outGoodsId, inWarehouseType, inWarehouseId, inWarehouseName,
-                    modGoodsTransferingStatus);
+                    modGoodsStatus);
                 // 鎵归噺鎻掑叆 杩涘嚭搴撴祦姘存槑缁哰L_WH_GOODS_RECORD_DETAILS]
                 lWhGoodsRecordDetailsService.sameGoodsInsertMore(outGoodsId, whGoodsRecordId, (short)0);
             }
@@ -256,7 +251,7 @@
             lWhProcureModelService.update(lWhProcureModel);
             updWhProcureModel.setTotalAmount(totalAmount);
             goodsModelNumUpdList.add(updWhProcureModel);
-        });
+        }
         // 鏇存柊L_WH_PROCURE_MODEL琛ㄥ唴閲戦
         lWhProcureModelService.updateBatch(goodsModelNumUpdList);
 
@@ -265,7 +260,7 @@
         warehouseFlow.setWarehouseId(outWarehouseId);
         warehouseFlow.setWarehouseName(warehouseName);
         warehouseFlow.setThisType(2);
-        warehouseFlow.setBusinessType(WhBusinessEnum.DIAOBO.getValue() + 0);
+        warehouseFlow.setBusinessType(whBusinessEnum.getValue());
 
         warehouseFlow.setBusinessFormId(whFormTransferId == null ? lWarehouseFlowBusinessId : whFormTransferId);
         warehouseFlow.setOperatorId(userId);
@@ -305,20 +300,21 @@
      * @param whFormTransferId
      * @param currentUser
      */
-    public void doTransferInPut(Long whFormTransferId, S_user_core currentUser, String inOperatorName) {
+    public void doTransferInPut(Long whFormTransferId, S_user_core currentUser, String inOperatorName)
+        throws Exception {
         LWhFormTransfer lWhFormTransfer = new LWhFormTransfer(whFormTransferId);
         lWhFormTransfer = lWhFormTransferService.get(lWhFormTransfer);
         if (lWhFormTransfer == null || lWhFormTransfer.getStates() != 1) {
-            log.error("璋冩嫧澶辫触锛佽妫�鏌ヨ皟鎷ㄥ崟鐘舵��");
-            return;
+            log.info("璋冩嫧澶辫触锛佽妫�鏌ヨ皟鎷ㄥ崟鐘舵��");
+            throw new RuntimeException("璋冩嫧澶辫触锛佽妫�鏌ヨ皟鎷ㄥ崟鐘舵��");
         }
         Long userId = currentUser.getId();
         String nickName = currentUser.getNick_name();
         // 鍑哄簱鍗曟祦姘磇d
         Long outWarehouseFlowId = lWhFormTransfer.getOutWarehouseFlowId();
         if (outWarehouseFlowId == null) {
-            log.error("璋冩嫧澶辫触锛佹湭鎵惧埌鍑哄簱鍗�");
-            return;
+            log.info("璋冩嫧澶辫触锛佹湭鎵惧埌鍑哄簱鍗�");
+            throw new RuntimeException("璋冩嫧澶辫触锛佹湭鎵惧埌鍑哄簱鍗�");
         }
         // 鍏ュ簱浠撳簱绫诲瀷 0鏈烘瀯1閮ㄩ棬
         Integer inWarehouseType = lWhFormTransfer.getInWarehouseType();
@@ -328,7 +324,7 @@
         long dealTime = DateUtils.getDateTimeNumber(System.currentTimeMillis());
 
         // 娴佹按璁板綍鎬昏〃ID
-        long inWarehouseFlowId = NumberGenerator.getLongSequenceNumber();
+        long inWarehouseFlowId = IdUtil.generateId();
         // 鍗曟嵁绫诲瀷銆�0浠撳簱璋冩嫧锛�1閮ㄩ棬鍒嗗彂锛�2閮ㄩ棬鐗╁搧鍥為��
         Integer businessType = lWhFormTransfer.getBusinessType();
         // 鐘舵�侊紙0=鍦ㄩ�旇皟鎷紱1=鍏ュ簱鏈垎鍙戯紱2=宸蹭笅鍙戯紱3=鎶ュ簾 4 闆舵槦鍑哄簱锛�
@@ -411,8 +407,8 @@
                         .mapToInt(LWhProcureModelUser::getGoodsNum).sum();
                     if (totalGoodsNum != outGoodsIds.size()) {
                         TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
+                        log.info("鍏ュ簱鍗曞け璐ワ紝浣跨敤浜轰娇鐢ㄦ暟閲忎笌鐗╁搧鏁伴噺涓嶄竴鑷�");
                         throw new RuntimeException("鍏ュ簱鍗曞け璐ワ紝浣跨敤浜轰娇鐢ㄦ暟閲忎笌鐗╁搧鏁伴噺涓嶄竴鑷�");
-                        // log.error("鍒涘缓鍏ュ簱鍗曞け璐�");
                     }
 
                     ArrayList<LGoodsUserRecord> goodsUserRecordList = new ArrayList<>();
@@ -486,7 +482,6 @@
                 allChangModelList, null, dealTime);
         }
         log.info("璋冩嫧鍗曪細{} 鍏ュ簱瀹屾垚", whFormTransferId);
-        return;
     }
 
     private static String GET_GOODSID_BY_FLOWID =

--
Gitblit v1.9.1