From b16483ae0dff952639e4b7e152f72dc32e662154 Mon Sep 17 00:00:00 2001
From: futian.liu <liufutianyoo@163.com>
Date: 星期六, 09 十二月 2023 18:13:33 +0800
Subject: [PATCH] 部门分发人显示错误

---
 consum-base/src/main/java/com/consum/base/service/impl/LWhFormTransferCoreService.java |  147 ++++++++++++++++++++++++++++--------------------
 1 files changed, 86 insertions(+), 61 deletions(-)

diff --git a/consum-base/src/main/java/com/consum/base/service/impl/LWhFormTransferCoreService.java b/consum-base/src/main/java/com/consum/base/service/impl/LWhFormTransferCoreService.java
index a1978b0..2eccb93 100644
--- a/consum-base/src/main/java/com/consum/base/service/impl/LWhFormTransferCoreService.java
+++ b/consum-base/src/main/java/com/consum/base/service/impl/LWhFormTransferCoreService.java
@@ -1,28 +1,46 @@
 package com.consum.base.service.impl;
 
-import cn.hutool.core.convert.Convert;
-import com.consum.base.core.WhBusinessEnum;
-import com.consum.base.core.service.LWhWarningCoreServiceImpl;
-import com.consum.base.core.utils.IdUtil;
-import com.consum.base.core.utils.LockManage;
-import com.consum.base.service.*;
-import com.consum.model.po.*;
-import com.iplatform.model.po.S_user_core;
-import com.walker.infrastructure.utils.CollectionUtils;
-import com.walker.infrastructure.utils.DateUtils;
-import com.walker.infrastructure.utils.NumberGenerator;
-import lombok.extern.slf4j.Slf4j;
-import org.springframework.stereotype.Service;
-import org.springframework.transaction.annotation.Propagation;
-import org.springframework.transaction.annotation.Transactional;
-import org.springframework.transaction.interceptor.TransactionAspectSupport;
-
-import javax.annotation.Resource;
 import java.util.ArrayList;
 import java.util.HashMap;
 import java.util.List;
 import java.util.Map;
 import java.util.stream.Collectors;
+
+import javax.annotation.Resource;
+
+import org.springframework.stereotype.Service;
+import org.springframework.transaction.annotation.Propagation;
+import org.springframework.transaction.annotation.Transactional;
+import org.springframework.transaction.interceptor.TransactionAspectSupport;
+
+import com.consum.base.core.WhBusinessEnum;
+import com.consum.base.core.service.LWhWarningCoreServiceImpl;
+import com.consum.base.core.utils.IdUtil;
+import com.consum.base.core.utils.LockManage;
+import com.consum.base.service.BaseGoodsTemplateService;
+import com.consum.base.service.GoodsBaseServiceImpl;
+import com.consum.base.service.LGoodsUserRecordServiceImpl;
+import com.consum.base.service.LGoodsWhRecordServiceImpl;
+import com.consum.base.service.LWarehouseFlowService;
+import com.consum.base.service.LWhFormTransferService;
+import com.consum.base.service.LWhGoodsRecordService;
+import com.consum.base.service.LWhGoodsService;
+import com.consum.base.service.LWhProcureModelService;
+import com.consum.model.po.LGoodsUserRecord;
+import com.consum.model.po.LWarehouseFlow;
+import com.consum.model.po.LWhFormTransfer;
+import com.consum.model.po.LWhGoodsRecord;
+import com.consum.model.po.LWhGoodsRecordDetails;
+import com.consum.model.po.LWhProcureModel;
+import com.consum.model.po.LWhProcureModelUser;
+import com.iplatform.model.po.S_user_core;
+import com.walker.infrastructure.utils.CollectionUtils;
+import com.walker.infrastructure.utils.DateUtils;
+import com.walker.infrastructure.utils.NumberGenerator;
+import com.walker.infrastructure.utils.StringUtils;
+
+import cn.hutool.core.convert.Convert;
+import lombok.extern.slf4j.Slf4j;
 
 /**
  * @ClassName LWhFormTransferCoreService
@@ -41,7 +59,6 @@
     private LWhProcureModelService lWhProcureModelService;
     @Resource
     private BaseGoodsTemplateService baseGoodsTemplateService;
-
 
     @Resource
     private LWhFormOutputCoreService lWhFormOutputCoreService;
@@ -96,14 +113,14 @@
             // 鏍规嵁璋冩嫧鍗� 鐢熸垚 鍑哄簱鍗� 杩欐牱灏辫兘鍏敤鍑哄簱
             lWhFormTransfer.getBusinessType();
             outWarehouseFormId =
-                    lWhFormOutputCoreService.createOutFormByTransId(whFormTransferId, businessEnum, currentUser, dealTime);
+                lWhFormOutputCoreService.createOutFormByTransId(whFormTransferId, businessEnum, currentUser, dealTime);
         } catch (Exception e) {
             log.error(e.getMessage());
             return;
         }
         // 鍑哄簱鍗� 鍑哄簱锛岃繑鍥� 鍑哄簱鍗曟祦姘碔d
         Long lWarehouseFlowId = lWhFormOutputCoreService.outFormByTransId(outWarehouseFormId, businessEnum, currentUser,
-                dealTime, whFormTransferId);
+            dealTime, whFormTransferId);
 
         // 鏇存柊璋冩嫧鍗�
         lWhFormTransfer = new LWhFormTransfer(whFormTransferId);
@@ -137,14 +154,14 @@
         Long userId = currentUser.getId();
         String nickName = currentUser.getNick_name();
         long dealTime = DateUtils.getDateTimeNumber(System.currentTimeMillis());
-        //鐢宠璋冩嫧鐨勭墿鍝�
-        List<LWhProcureModel> goodsModelNumList = lWhProcureModelService.getModelByForm(WhBusinessEnum.DIAOBO, whFormTransferId);
+        // 鐢宠璋冩嫧鐨勭墿鍝�
+        List<LWhProcureModel> goodsModelNumList =
+            lWhProcureModelService.getModelByForm(WhBusinessEnum.DIAOBO, whFormTransferId);
         if (CollectionUtils.isEmpty(goodsModelNumList)) {
             log.error("娌℃湁瑕佸嚭搴撶殑鐗╁搧");
             return null;
         }
         List<LWhProcureModel> goodsModelNumUpdList = new ArrayList<>(goodsModelNumList.size());
-
 
         // 瑕佸嚭鐗╁搧鐨勪粨搴搃d
         Integer outWarehouseType = lWhFormTransfer.getOutWarehouseType();
@@ -156,19 +173,18 @@
 
         // 娴佹按璁板綍鎬昏〃ID
         long lWarehouseFlowId = NumberGenerator.getLongSequenceNumberNano();
-        // 娴佹按璁板綍鎬昏〃涓� 涓氬姟ID 銆傝皟鎷ㄥ崟鏃�  淇濆瓨璋冩嫧鍗昳d  鍑哄簱鍗曟椂 淇濆瓨鍑哄簱鍗昳d
+        // 娴佹按璁板綍鎬昏〃涓� 涓氬姟ID 銆傝皟鎷ㄥ崟鏃� 淇濆瓨璋冩嫧鍗昳d 鍑哄簱鍗曟椂 淇濆瓨鍑哄簱鍗昳d
         long lWarehouseFlowBusinessId = whFormTransferId;
 
         // 鐗╁搧鐘舵�侊紙0=鍦ㄩ�旇皟鎷紱1=鍏ュ簱鏈垎鍙戯紱2=宸蹭笅鍙戯紱3=鎶ュ簾锛�
         Integer queryModelStatusT = 1;
-        //閲囪喘鏂瑰紡锛�1锛氶泦閲囷紱2=鑷噰锛�
+        // 閲囪喘鏂瑰紡锛�1锛氶泦閲囷紱2=鑷噰锛�
         Integer buyTypeT = null;
         Integer modGoodsTransferingStatusT = null;
-        //璋冩嫧鍑哄簱
+        // 璋冩嫧鍑哄簱
         queryModelStatusT = 1;
         buyTypeT = 1;
         modGoodsTransferingStatusT = 0;
-
 
         Integer queryModelStatus = queryModelStatusT;
         Integer buyType = buyTypeT;
@@ -179,17 +195,17 @@
             // 闇�瑕佽皟鎷ㄧ殑鐗╁搧鐨勬煇涓瀷鍙�
             Long baseGoodsModelsId = itemModelInfo.getBaseGoodsModelsId();
             LWhProcureModel updWhProcureModel = new LWhProcureModel(itemModelInfo.getId());
-            //TODO 涓虹┖鏃朵笉鍔犲叆鏇存柊鍒楄〃
+            // TODO 涓虹┖鏃朵笉鍔犲叆鏇存柊鍒楄〃
             if (baseGoodsModelsId != null) {
                 allChangModelList.add(baseGoodsModelsId);
             }
             // 闇�瑕佽皟鎷ㄧ殑鐗╁搧鏌愪釜鍨嬪彿鐨勬暟閲�
             Integer counts = itemModelInfo.getCounts();
-            //鏌ヨ鍨嬪彿淇℃伅
+            // 鏌ヨ鍨嬪彿淇℃伅
             Map<String, Object> tempGoodsInfo = baseGoodsTemplateService.queryGoodsInfoByModelId(baseGoodsModelsId);
-            Long tempGoodsId = (Long) tempGoodsInfo.get("goodsid");
-            String goodsName = (String) tempGoodsInfo.get("goodsname");
-            String modelName = (String) tempGoodsInfo.get("modelname");
+            Long tempGoodsId = (Long)tempGoodsInfo.get("goodsid");
+            String goodsName = (String)tempGoodsInfo.get("goodsname");
+            String modelName = (String)tempGoodsInfo.get("modelname");
 
             // 鎻掑叆 鍚勮鏍肩墿鍝佺殑杩涘嚭搴撹褰� L_WH_GOODS_RECORD
             long whGoodsRecordId = NumberGenerator.getLongSequenceNumberNano();
@@ -202,16 +218,17 @@
             whGoodsRecord.setBaseGoodsModelsId(baseGoodsModelsId);
             whGoodsRecord.setBaseGoodsModelsName(modelName);
             whGoodsRecord.setDealTime(dealTime);
-            //鏈璋冩暣绫诲瀷 1=璋冨锛�2=璋冨噺
+            // 鏈璋冩暣绫诲瀷 1=璋冨锛�2=璋冨噺
             whGoodsRecord.setThisType(2);
             whGoodsRecord.setThisCount(counts);
 
-            //閫氳繃LockManage鑾峰緱閿�
+            // 閫氳繃LockManage鑾峰緱閿�
             Object warehouseModelLockObj = LockManage.acquireLock(outWarehouseType, outWarehouseId, baseGoodsModelsId);
             List<Long> outGoodsId = null;
             synchronized (warehouseModelLockObj) {
                 // 鑾峰緱閿佸悗鏌ヨ璇ュ瀷鍙风殑鏈熷垵鏁伴噺
-                int goodsModelNum = lWhGoodsService.queryGoodsModelNum(outWarehouseType, outWarehouseId, baseGoodsModelsId, queryModelStatus, buyType);
+                int goodsModelNum = lWhGoodsService.queryGoodsModelNum(outWarehouseType, outWarehouseId,
+                    baseGoodsModelsId, queryModelStatus, buyType);
                 if (goodsModelNum < counts) {
                     log.error("鍑哄簱澶辫触锛佸瀷鍙穥} 鐨勬暟閲忎笉瓒筹紝闇�瑕佽皟鎷▄}涓紝浠撳簱涓幇瀛榹}涓�", baseGoodsModelsId, counts, goodsModelNum);
                     // 鎵嬪姩鍥炴粴
@@ -221,12 +238,13 @@
                 whGoodsRecord.setInitialCount(goodsModelNum);
                 whGoodsRecord.setEndCount(goodsModelNum - counts);
 
-                //鍑哄簱鏃跺�欙紝鎸� 鍏堝叆搴撶殑鍏堝嚭搴擄紝鍚屾椂鍏ュ簱鐨勶紝鎸変环鏍奸珮鐨勫厛鍑哄簱
-                outGoodsId = lWhGoodsService.queryOutGoodsId(outWarehouseType, outWarehouseId, baseGoodsModelsId, queryModelStatus, buyType,
-                        counts);
-                lWhGoodsService.modGoodsTransfering(outGoodsId, inWarehouseType, inWarehouseId, inWarehouseName, modGoodsTransferingStatus);
+                // 鍑哄簱鏃跺�欙紝鎸� 鍏堝叆搴撶殑鍏堝嚭搴擄紝鍚屾椂鍏ュ簱鐨勶紝鎸変环鏍奸珮鐨勫厛鍑哄簱
+                outGoodsId = lWhGoodsService.queryOutGoodsId(outWarehouseType, outWarehouseId, baseGoodsModelsId,
+                    queryModelStatus, buyType, counts);
+                lWhGoodsService.modGoodsTransfering(outGoodsId, inWarehouseType, inWarehouseId, inWarehouseName,
+                    modGoodsTransferingStatus);
                 // 鎵归噺鎻掑叆 杩涘嚭搴撴祦姘存槑缁哰L_WH_GOODS_RECORD_DETAILS]
-                lWhGoodsRecordDetailsService.sameGoodsInsertMore(outGoodsId, whGoodsRecordId, (short) 0);
+                lWhGoodsRecordDetailsService.sameGoodsInsertMore(outGoodsId, whGoodsRecordId, (short)0);
             }
             long totalAmount = lWhGoodsService.queryGoodsPriceById(outGoodsId);
             LWhProcureModel lWhProcureModel = new LWhProcureModel(itemModelInfo.getId());
@@ -257,15 +275,16 @@
             return null;
         }
 
-        //褰撳簱瀛樺彉鍔ㄦ椂璋冪敤璇ユ柟娉�
+        // 褰撳簱瀛樺彉鍔ㄦ椂璋冪敤璇ユ柟娉�
         if (outWarehouseType == 0) {
-            lWhWarningCoreService.updateKuCun(Convert.toShort(outWarehouseType, (short) 0), outWarehouseId, allChangModelList, null, dealTime);
+            lWhWarningCoreService.updateKuCun(Convert.toShort(outWarehouseType, (short)0), outWarehouseId,
+                allChangModelList, null, dealTime);
         }
 
         // 鏇存柊璋冩嫧鍗�
         lWhFormTransfer = new LWhFormTransfer(whFormTransferId);
-        //璋冩嫧鍗曚笉鍐嶅叧鑱斿嚭鍏ュ簱鍗�
-        //        lWhFormTransfer.setOutWarehouseFormId(outWarehouseFormId);
+        // 璋冩嫧鍗曚笉鍐嶅叧鑱斿嚭鍏ュ簱鍗�
+        // lWhFormTransfer.setOutWarehouseFormId(outWarehouseFormId);
         lWhFormTransfer.setStates(1);
         lWhFormTransfer.setOutOperatorId(userId);
         lWhFormTransfer.setOutOperatorName(nickName);
@@ -284,7 +303,7 @@
      * @param whFormTransferId
      * @param currentUser
      */
-    public void doTransferInPut(Long whFormTransferId, S_user_core currentUser) {
+    public void doTransferInPut(Long whFormTransferId, S_user_core currentUser, String inOperatorName) {
         LWhFormTransfer lWhFormTransfer = new LWhFormTransfer(whFormTransferId);
         lWhFormTransfer = lWhFormTransferService.get(lWhFormTransfer);
         if (lWhFormTransfer == null || lWhFormTransfer.getStates() != 1) {
@@ -361,17 +380,18 @@
                     throw new RuntimeException("鍏ュ簱鍗曞け璐ワ紝鏈煡璇㈠埌鐗╁搧锛�");
                 }
                 // 鑾峰緱閿佸悗鏌ヨ璇ュ瀷鍙风殑鏈熷垵鏁伴噺
-                int goodsModelNum = lWhGoodsService.queryGoodsModelNum(inWarehouseType, inWarehouseId, baseGoodsModelsId, 1, null);
+                int goodsModelNum =
+                    lWhGoodsService.queryGoodsModelNum(inWarehouseType, inWarehouseId, baseGoodsModelsId, 1, null);
 
                 // 搴撳瓨鐗╁搧璇︽儏锛圠_WH_GOODS锛変腑 鐘舵�佽缃负1
-                lWhGoodsService.modGoodsTransfering(outGoodsIds, inWarehouseType, inWarehouseId, inWarehouseName, goodsStatus);
+                lWhGoodsService.modGoodsTransfering(outGoodsIds, inWarehouseType, inWarehouseId, inWarehouseName,
+                    goodsStatus);
 
                 // 閫氳繃鐗╁搧id鏌ヨ鎵�鏈夊晢鍝佺殑鎬婚噾棰�
-//                long amount = lWhGoodsService.queryGoodsPriceById(outGoodsIds);
-//                LWhProcureModel lWhFormScrappedGoods = new LWhProcureModel(formScrappedGood.getId());
-//                lWhFormScrappedGoods.setTotalAmount(amount);
-//                lWhFormTransferService.update(lWhFormScrappedGoods);
-
+                // long amount = lWhGoodsService.queryGoodsPriceById(outGoodsIds);
+                // LWhProcureModel lWhFormScrappedGoods = new LWhProcureModel(formScrappedGood.getId());
+                // lWhFormScrappedGoods.setTotalAmount(amount);
+                // lWhFormTransferService.update(lWhFormScrappedGoods);
 
                 whGoodsRecord.setInitialCount(goodsModelNum);
                 whGoodsRecord.setEndCount(goodsModelNum + whGoodsRecord.getThisCount());
@@ -391,7 +411,7 @@
                 if (!CollectionUtils.isEmpty(goodsUserInfo)) {
                     // 璁や负鏄疉绫荤墿鍝�
                     int totalGoodsNum = goodsUserInfo.stream().filter(item -> item.getGoodsNum() != null)
-                            .mapToInt(LWhProcureModelUser::getGoodsNum).sum();
+                        .mapToInt(LWhProcureModelUser::getGoodsNum).sum();
                     if (totalGoodsNum != outGoodsIds.size()) {
                         TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
                         throw new RuntimeException("鍏ュ簱鍗曞け璐ワ紝浣跨敤浜轰娇鐢ㄦ暟閲忎笌鐗╁搧鏁伴噺涓嶄竴鑷�");
@@ -438,7 +458,7 @@
             LWhGoodsRecordDetails lWhGoodsRecordDetails = new LWhGoodsRecordDetails();
             lWhGoodsRecordDetails.setWhGoodsRecordId(oldRecordId);
             List<LWhGoodsRecordDetails> goodsRecordDetailsList =
-                    lWhGoodsRecordDetailsService.select(lWhGoodsRecordDetails);
+                lWhGoodsRecordDetailsService.select(lWhGoodsRecordDetails);
             for (LWhGoodsRecordDetails whGoodsRecordDetails : goodsRecordDetailsList) {
                 whGoodsRecordDetails.setId(null);
                 whGoodsRecordDetails.setWhGoodsRecordId(whGoodsRecord.getId());
@@ -453,22 +473,27 @@
         lWhFormTransfer.setInWarehouseFlowId(inWarehouseFlowId);
         lWhFormTransfer.setInWarehouseFormId(null);
         lWhFormTransfer.setStates(2);
-        lWhFormTransfer.setInOperatorId(userId);
-        lWhFormTransfer.setInOperatorName(nickName);
+        if (StringUtils.isEmpty(inOperatorName)) {
+            lWhFormTransfer.setInOperatorId(userId);
+            lWhFormTransfer.setInOperatorName(nickName);
+        } else {
+            lWhFormTransfer.setInOperatorName(inOperatorName);
+        }
+
         lWhFormTransfer.setInTime(dealTime);
         lWhFormTransferService.update(lWhFormTransfer);
 
         // 褰撳簱瀛樺彉鍔ㄦ椂璋冪敤璇ユ柟娉�
         if (inWarehouseType == 0) {
-            lWhWarningCoreService.updateKuCun(Convert.toShort(inWarehouseType, (short) 0), inWarehouseId,
-                    allChangModelList, null, dealTime);
+            lWhWarningCoreService.updateKuCun(Convert.toShort(inWarehouseType, (short)0), inWarehouseId,
+                allChangModelList, null, dealTime);
         }
         log.info("璋冩嫧鍗曪細{} 鍏ュ簱瀹屾垚", whFormTransferId);
         return;
     }
 
     private static String GET_GOODSID_BY_FLOWID =
-            "SELECT goods.id FROM L_WH_GOODS_RECORD gr LEFT JOIN L_WH_GOODS_RECORD_DETAILS grd ON gr.id=grd.WH_GOODS_RECORD_ID LEFT JOIN L_WH_GOODS goods ON goods.id=grd.WH_GOODS_ID WHERE 1=1";
+        "SELECT goods.id FROM L_WH_GOODS_RECORD gr LEFT JOIN L_WH_GOODS_RECORD_DETAILS grd ON gr.id=grd.WH_GOODS_RECORD_ID LEFT JOIN L_WH_GOODS goods ON goods.id=grd.WH_GOODS_ID WHERE 1=1";
 
     /**
      * 鏍规嵁鍑哄簱娴佹按ID 鏌ヨ 鍑哄簱鐨勭墿鍝両D
@@ -490,7 +515,7 @@
         if (CollectionUtils.isEmpty(outGoods)) {
             return null;
         }
-        List<Long> whGoodsIds = outGoods.stream().map(map -> (Long) map.get("id")).collect(Collectors.toList());
+        List<Long> whGoodsIds = outGoods.stream().map(map -> (Long)map.get("id")).collect(Collectors.toList());
         return whGoodsIds;
     }
 }

--
Gitblit v1.9.1