From b7a353e571a503a3dfb970af069efc0a65208839 Mon Sep 17 00:00:00 2001
From: cy <1664593601@qq.com>
Date: 星期六, 02 十二月 2023 18:08:53 +0800
Subject: [PATCH] feat: 部门物品报废

---
 consum-base/src/main/java/com/consum/base/service/LWhFormTransferCoreService.java |  103 +++++++++++++++++++++++++--------------------------
 1 files changed, 50 insertions(+), 53 deletions(-)

diff --git a/consum-base/src/main/java/com/consum/base/service/LWhFormTransferCoreService.java b/consum-base/src/main/java/com/consum/base/service/LWhFormTransferCoreService.java
index e890509..8e0181d 100644
--- a/consum-base/src/main/java/com/consum/base/service/LWhFormTransferCoreService.java
+++ b/consum-base/src/main/java/com/consum/base/service/LWhFormTransferCoreService.java
@@ -5,27 +5,23 @@
 import com.consum.base.core.service.LWhWarningCoreServiceImpl;
 import com.consum.base.core.utils.IdUtil;
 import com.consum.base.core.utils.LockManage;
-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.LWhProcureModelUser;
+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 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 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;
 
 /**
  * @ClassName LWhFormTransferCoreService
@@ -98,7 +94,7 @@
             return;
         }
         // 鍑哄簱鍗� 鍑哄簱锛岃繑鍥� 鍑哄簱鍗曟祦姘碔d
-        Long lWarehouseFlowId = lWhFormOutputCoreService.outFormByTransId(outWarehouseFormId, businessEnum, currentUser, dealTime);
+        Long lWarehouseFlowId = lWhFormOutputCoreService.outFormByTransId(outWarehouseFormId, businessEnum, currentUser, dealTime, whFormTransferId);
 
         // 鏇存柊璋冩嫧鍗�
         lWhFormTransfer = new LWhFormTransfer(whFormTransferId);
@@ -183,6 +179,7 @@
             Long baseGoodsModelsId = whGoodsRecord.getBaseGoodsModelsId();
             allChangModelList.add(baseGoodsModelsId);
             whGoodsRecord.setId(IdUtil.generateId());
+            whGoodsRecord.setWarehouseFlowId(inWarehouseFlowId);
             whGoodsRecord.setWarehouseType(inWarehouseType);
             whGoodsRecord.setWarehouseId(inWarehouseId);
             whGoodsRecord.setDealTime(dealTime);
@@ -208,56 +205,56 @@
             }
             if (businessType == 1) {
 //                List<Map<String, Object>> modelInfo = baseGoodsModelsService.queryGoodsModelInfo(baseGoodsModelsId);
-
                 // 1閮ㄩ棬鍒嗗彂 姝ゆ椂瑕佸線 鐗╁搧浣跨敤璁板綍銆怢_GOODS_USER_RECORD銆戞坊鍔犳暟鎹�
                 //鏌ヨ閮ㄩ棬鍒嗗彂浣跨敤浜�
                 LWhProcureModelUser lWhProcureModelUser = new LWhProcureModelUser();
                 lWhProcureModelUser.setTransBusinessId(whFormTransferId);
                 lWhProcureModelUser.setBaseGoodsModelsId(baseGoodsModelsId);
                 List<LWhProcureModelUser> goodsUserInfo = goodsBaseService.select(lWhProcureModelUser);
-                if (CollectionUtils.isEmpty(goodsUserInfo)) {
-                    continue;
-                }
-                int totalGoodsNum = goodsUserInfo.stream().filter(item -> item.getGoodsNum() != null).mapToInt(LWhProcureModelUser::getGoodsNum).sum();
-                if (totalGoodsNum != outGoodsIds.size()) {
-                    TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
-                    throw new RuntimeException("鍏ュ簱鍗曞け璐ワ紝浣跨敤浜轰娇鐢ㄦ暟閲忎笌鐗╁搧鏁伴噺涓嶄竴鑷�");
-//                        log.error("鍒涘缓鍏ュ簱鍗曞け璐�");
-                }
                 //灏嗙墿鍝佸瀷鍙蜂互鍓嶇殑浣跨敤璁板綍璁剧疆涓洪潪鏈�鏂�
                 lGoodsUserRecordService.updSetNotLast(outGoodsIds);
-                ArrayList<LGoodsUserRecord> goodsUserRecordList = new ArrayList<>();
-                int startIndex = 0;
-                for (LWhProcureModelUser whProcureModelUser : goodsUserInfo) {
-                    Integer goodsNum = whProcureModelUser.getGoodsNum();
-                    String nowUserName = whProcureModelUser.getNowUserName();
-                    Long nowUserPhone = whProcureModelUser.getNowUserPhone();
-                    Long procureModelUserRecordId = whProcureModelUser.getProcureModelUserRecordId();
-                    List<Long> goodsIds = outGoodsIds.subList(startIndex, startIndex + goodsNum);
-                    for (Long goodsId : goodsIds) {
-                        LGoodsUserRecord tmp = new LGoodsUserRecord();
-                        tmp.setWhGoodsId(goodsId);
-                        tmp.setRecordType(recordType);
-                        tmp.setTransBusinessId(whFormTransferId);
-                        if (businessType == 1) {
-                            tmp.setNowUserName(nowUserName);
-                            tmp.setNowUserPhone(nowUserPhone);
-                        } else if (businessType == 2) {
-                            tmp.setNowUserName(null);
-                            tmp.setNowUserPhone(null);
-                        }
-                        tmp.setProcureModelUserRecordId(procureModelUserRecordId);
-                        tmp.setOperatorId(userId);
-                        tmp.setOperatorName(nickName);
-                        tmp.setDealTime(dealTime);
-                        tmp.setLastRecord(1);
-                        goodsUserRecordList.add(tmp);
+                if (!CollectionUtils.isEmpty(goodsUserInfo)) {
+                    //璁や负鏄疉绫荤墿鍝�
+                    int totalGoodsNum = goodsUserInfo.stream().filter(item -> item.getGoodsNum() != null).mapToInt(LWhProcureModelUser::getGoodsNum).sum();
+                    if (totalGoodsNum != outGoodsIds.size()) {
+                        TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
+                        throw new RuntimeException("鍏ュ簱鍗曞け璐ワ紝浣跨敤浜轰娇鐢ㄦ暟閲忎笌鐗╁搧鏁伴噺涓嶄竴鑷�");
+//                        log.error("鍒涘缓鍏ュ簱鍗曞け璐�");
                     }
-                    // 鏇存柊涓嬫爣浣嶇疆
-                    startIndex += goodsNum;
+
+                    ArrayList<LGoodsUserRecord> goodsUserRecordList = new ArrayList<>();
+                    int startIndex = 0;
+                    for (LWhProcureModelUser whProcureModelUser : goodsUserInfo) {
+                        Integer goodsNum = whProcureModelUser.getGoodsNum();
+                        String nowUserName = whProcureModelUser.getNowUserName();
+                        Long nowUserPhone = whProcureModelUser.getNowUserPhone();
+                        Long procureModelUserRecordId = whProcureModelUser.getProcureModelUserRecordId();
+                        List<Long> goodsIds = outGoodsIds.subList(startIndex, startIndex + goodsNum);
+                        for (Long goodsId : goodsIds) {
+                            LGoodsUserRecord tmp = new LGoodsUserRecord();
+                            tmp.setWhGoodsId(goodsId);
+                            tmp.setRecordType(recordType);
+                            tmp.setTransBusinessId(whFormTransferId);
+                            if (businessType == 1) {
+                                tmp.setNowUserName(nowUserName);
+                                tmp.setNowUserPhone(nowUserPhone);
+                            } else if (businessType == 2) {
+                                tmp.setNowUserName(null);
+                                tmp.setNowUserPhone(null);
+                            }
+                            tmp.setProcureModelUserRecordId(procureModelUserRecordId);
+                            tmp.setOperatorId(userId);
+                            tmp.setOperatorName(nickName);
+                            tmp.setDealTime(dealTime);
+                            tmp.setLastRecord(1);
+                            goodsUserRecordList.add(tmp);
+                        }
+                        // 鏇存柊涓嬫爣浣嶇疆
+                        startIndex += goodsNum;
+                    }
+                    //鎵归噺鎻掑叆浣跨敤浜鸿褰�
+                    lGoodsUserRecordService.insertBatch(goodsUserRecordList);
                 }
-                //鎵归噺鎻掑叆浣跨敤浜鸿褰�
-                lGoodsUserRecordService.insertBatch(goodsUserRecordList);
             }
             //灏嗕繚绠′粨搴撲俊鎭洿鏂板埌 鐗╁搧浠撳簱淇濈璁板綍銆怢_GOODS_WH_RECORD銆�
             lGoodsWhRecordService.insertNewRecord(outGoodsIds, inWarehouseFlowId, dealTime);

--
Gitblit v1.9.1