From 170c89b9b8e6d5c3117d53e7b38f782651ebfcde Mon Sep 17 00:00:00 2001
From: futian.liu <liufutianyoo@163.com>
Date: 星期五, 22 十二月 2023 14:04:04 +0800
Subject: [PATCH] 物品统计表中总数量改为在库数量+报废数量

---
 consum-base/src/main/java/com/consum/base/service/core/DepFormScrappedCoreService.java |  119 +++++++++++++++++++++++++++++++++--------------------------
 1 files changed, 67 insertions(+), 52 deletions(-)

diff --git a/consum-base/src/main/java/com/consum/base/core/DepFormScrappedCoreServiceImpl.java b/consum-base/src/main/java/com/consum/base/service/core/DepFormScrappedCoreService.java
similarity index 71%
rename from consum-base/src/main/java/com/consum/base/core/DepFormScrappedCoreServiceImpl.java
rename to consum-base/src/main/java/com/consum/base/service/core/DepFormScrappedCoreService.java
index 192da2b..3baab2b 100644
--- a/consum-base/src/main/java/com/consum/base/core/DepFormScrappedCoreServiceImpl.java
+++ b/consum-base/src/main/java/com/consum/base/service/core/DepFormScrappedCoreService.java
@@ -1,9 +1,23 @@
-package com.consum.base.core;
+package com.consum.base.service.core;
 
-import cn.hutool.core.convert.Convert;
+import java.util.ArrayList;
+import java.util.Arrays;
+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.utils.IdUtil;
 import com.consum.base.core.utils.LockManage;
-import com.consum.base.service.GoodsBaseServiceImpl;
+import com.consum.base.service.GoodsBaseService;
 import com.consum.base.service.LWarehouseFlowService;
 import com.consum.base.service.LWhGoodsRecordService;
 import com.consum.base.service.LWhGoodsService;
@@ -14,19 +28,9 @@
 import com.iplatform.model.po.S_user_core;
 import com.walker.infrastructure.utils.CollectionUtils;
 import com.walker.web.ResponseValue;
-import java.util.Arrays;
-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 cn.hutool.core.convert.Convert;
+import lombok.extern.slf4j.Slf4j;
 
 /**
  * @ClassName DepFormScrappedCoreServiceImpl
@@ -38,9 +42,9 @@
 @Service
 @Slf4j
 @Transactional(rollbackFor = Exception.class, propagation = Propagation.REQUIRED)
-public class DepFormScrappedCoreServiceImpl {
+public class DepFormScrappedCoreService {
     @Resource
-    private GoodsBaseServiceImpl goodsBaseService;
+    private GoodsBaseService goodsBaseService;
     @Resource
     private LWhGoodsService lWhGoodsService;
     @Resource
@@ -48,20 +52,20 @@
     @Resource
     private LWhGoodsRecordService lWhGoodsRecordServiceImpl;
     @Resource
-    private LWarehouseFlowService lWarehouseFlowService;
+    private LWarehouseFlowService lWarehouseFlowServiceImpl;
 
     /**
      * 鏍规嵁鎶ュ簾鍗曟姤搴燂細淇敼璋冩嫧鍗曚腑鍙��鍥炴暟閲忥紱浠撳簱涓墿鍝佺姸鎬佽缃负鎶ュ簾;鐢熸垚涓�涓繚璐规祦姘达紱鏇存柊鎶ュ簾鍨嬪彿琛ㄤ腑锛岀墿鍝佷环鍊�
      * <p>
      * 1.鎵惧埌闇�瑕佹姤搴熺殑鍨嬪彿锛� 鎸夊悓涓�涓�
      *
-     * @param lWhFormScrappedId //     * @param isBack            鏄惁閫�鍥�
+     * @param lWhFormScrappedId // * @param isBack 鏄惁閫�鍥�
      */
     public ResponseValue updateScrapped(Long lWhFormScrappedId, S_user_core currentUser, Long dealTime) {
         // 鏌ヨ鎶ュ簾鍗曠姸鎬�
         DepFormScrapped depFormScrapped = new DepFormScrapped(lWhFormScrappedId);
         depFormScrapped = goodsBaseService.get(depFormScrapped);
-        //鐘舵�� 1=寰呮姤搴燂紱2=宸叉姤搴�
+        // 鐘舵�� 1=寰呮姤搴燂紱2=宸叉姤搴�
         if (depFormScrapped == null || depFormScrapped.getStates() != 1) {
             return ResponseValue.error("璇锋鏌ユ姤搴熷崟");
         }
@@ -70,9 +74,11 @@
         String nickName = currentUser.getNick_name();
 
         // 鏍规嵁鎶ュ簾鍗� 鏌ヨ闇�瑕佹姤搴熺殑鍨嬪彿鏁伴噺
-        List<Map<String, Object>> bfModelList = goodsBaseService.select("SELECT scrGoods.TRANS_BUSINESS_ID,scrGoods.BUSINESS_FORM_CODE,scrGoods.TRANS_OUT_WAREHOUSE_TYPE,scrGoods.TRANS_OUT_WAREHOUSE_ID,scrGoods.BASE_GOODS_TEMPLATE_ID, scrGoods.BASE_GOODS_TEMPLATE_NAME,goodsModel.id formScrappedModelId,goodsModel.BASE_GOODS_TEMPLATE_ID,goodsModel.BASE_GOODS_MODELS_ID,goodsModel.COUNTS,goodsModel.PROCURE_MODEL_USER_ID,goodsModel.GOODS_USER_NAME,goodsModel.BASE_GOODS_MODELS_NAME FROM DEP_FORM_SCRAPPED_GOODS scrGoods LEFT JOIN DEP_FORM_SCRAPPED_MODEL goodsModel ON scrgoods.id=goodsModel.DEP_FORM_SCRAPPED_GOODS_ID where scrGoods.DEP_FORM_SCRAPPED_ID = ?", new Object[]{lWhFormScrappedId});
-        Map<Object, List<Map<String, Object>>> groupByModelIdMap = bfModelList.stream()
-                .collect(Collectors.groupingBy(map -> map.get("BASE_GOODS_MODELS_ID")));
+        List<Map<String, Object>> bfModelList = goodsBaseService.select(
+            "SELECT scrGoods.TRANS_BUSINESS_ID,scrGoods.BUSINESS_FORM_CODE,scrGoods.TRANS_OUT_WAREHOUSE_TYPE,scrGoods.TRANS_OUT_WAREHOUSE_ID,scrGoods.BASE_GOODS_TEMPLATE_ID, scrGoods.BASE_GOODS_TEMPLATE_NAME,goodsModel.id formScrappedModelId,goodsModel.BASE_GOODS_TEMPLATE_ID,goodsModel.BASE_GOODS_MODELS_ID,goodsModel.COUNTS,goodsModel.PROCURE_MODEL_USER_ID,goodsModel.GOODS_USER_NAME,goodsModel.BASE_GOODS_MODELS_NAME FROM DEP_FORM_SCRAPPED_GOODS scrGoods LEFT JOIN DEP_FORM_SCRAPPED_MODEL goodsModel ON scrgoods.id=goodsModel.DEP_FORM_SCRAPPED_GOODS_ID where scrGoods.DEP_FORM_SCRAPPED_ID = ?",
+            new Object[] {lWhFormScrappedId});
+        Map<Object, List<Map<String, Object>>> groupByModelIdMap =
+            bfModelList.stream().collect(Collectors.groupingBy(map -> map.get("BASE_GOODS_MODELS_ID")));
         Integer warehouseType = depFormScrapped.getOutWarehouseType();
         Long warehouseId = depFormScrapped.getOutWarehouseId();
         String warehouseName = depFormScrapped.getOutWarehouseName();
@@ -85,15 +91,15 @@
         //
         ArrayList<LWhGoodsRecord> lWhGoodsRecordList = new ArrayList<>();
 
-        //閲囪喘銆佽皟鎷ㄣ�佸嚭搴撶瓑鐨勭墿鍝佸瀷鍙枫�怢_WH_PROCURE_MODEL銆戜腑 鏍规嵁璋冩嫧鍗�+鍨嬪彿 鏇存柊 鍦ㄧ敤鏁伴噺
+        // 閲囪喘銆佽皟鎷ㄣ�佸嚭搴撶瓑鐨勭墿鍝佸瀷鍙枫�怢_WH_PROCURE_MODEL銆戜腑 鏍规嵁璋冩嫧鍗�+鍨嬪彿 鏇存柊 鍦ㄧ敤鏁伴噺
         Map<String, Integer> procureModelMap = new HashMap<>();
 
         for (Object key : groupByModelIdMap.keySet()) {
             Long modelTotalPrice = 0L;
-            //瑕佹姤搴熺殑鎬绘暟閲�
+            // 瑕佹姤搴熺殑鎬绘暟閲�
             int modelTotalNum = 0;
 
-            Long baseGoodsModelsId = (Long) key;
+            Long baseGoodsModelsId = (Long)key;
             List<Map<String, Object>> eachFfModelList = groupByModelIdMap.get(key);
             Map<String, Object> eachFfModelBase = eachFfModelList.get(0);
             Long tempGoodsId = Convert.toLong(eachFfModelBase.get("BASE_GOODS_TEMPLATE_ID"));
@@ -112,18 +118,19 @@
             whGoodsRecord.setBaseGoodsModelsId(baseGoodsModelsId);
             whGoodsRecord.setBaseGoodsModelsName(modelName);
             whGoodsRecord.setDealTime(dealTime);
-            //鏈璋冩暣绫诲瀷 1=璋冨锛�2=璋冨噺
+            // 鏈璋冩暣绫诲瀷 1=璋冨锛�2=璋冨噺
             whGoodsRecord.setThisType(2);
 
-            //閫氳繃LockManage鑾峰緱閿�
+            // 閫氳繃LockManage鑾峰緱閿�
             Object warehouseModelLockObj = LockManage.acquireLock(warehouseType, warehouseId, baseGoodsModelsId);
             int goodsModelNum = 0;
             synchronized (warehouseModelLockObj) {
                 List<Long> warehouseIds = new ArrayList<>(Arrays.asList(warehouseId));
-                goodsModelNum = lWhGoodsService.queryGoodsModelNum(warehouseType, warehouseIds, baseGoodsModelsId, 2, null);
+                goodsModelNum =
+                    lWhGoodsService.queryGoodsModelNum(warehouseType, warehouseIds, baseGoodsModelsId, 2, null);
                 for (Map<String, Object> depFormScrappedModel : eachFfModelList) {
                     // 璋冩嫧鍗曚俊鎭�
-                    Long transBusinessId = (Long) depFormScrappedModel.get("TRANS_BUSINESS_ID");
+                    Long transBusinessId = (Long)depFormScrappedModel.get("TRANS_BUSINESS_ID");
                     String nowUserName = Convert.toStr(depFormScrappedModel.get("GOODS_USER_NAME"));
                     Integer counts = Convert.toInt(depFormScrappedModel.get("COUNTS"));
                     Long formScrappedModelId = Convert.toLong(depFormScrappedModel.get("formScrappedModelId"));
@@ -131,7 +138,8 @@
                     modelTotalNum += counts;
 
                     // 鏍规嵁鍒嗗彂鍗曘�佸瀷鍙枫�佷娇鐢ㄤ汉淇℃伅鏌ヨ鐗╁搧淇℃伅
-                    List<Map<String, Object>> scrappedGoodsList = lWhGoodsService.queryScrappedGoods(warehouseType, warehouseId, transBusinessId, nowUserName, baseGoodsModelsId, (short) 2, counts);
+                    List<Map<String, Object>> scrappedGoodsList = lWhGoodsService.queryScrappedGoods(warehouseType,
+                        warehouseId, transBusinessId, nowUserName, baseGoodsModelsId, (short)2, counts);
                     if (CollectionUtils.isEmpty(scrappedGoodsList) || scrappedGoodsList.size() < counts) {
                         log.error("瑕佹姤搴熺殑鐗╁搧鏁伴噺涓嶈冻锛�");
                         // 鎵嬪姩鍥炴粴
@@ -139,21 +147,24 @@
                         throw new RuntimeException("鎶ュ簾澶辫触!鍨嬪彿鏁伴噺涓嶈冻");
                     }
 
-                    Long formScrappedModelPrice = scrappedGoodsList.stream().mapToLong(map -> (long) map.get("price")).sum();
+                    Long formScrappedModelPrice =
+                        scrappedGoodsList.stream().mapToLong(map -> (long)map.get("price")).sum();
                     modelTotalPrice += formScrappedModelPrice;
                     // 鏇存柊 鎶ュ簾鍗曠墿鍝併�怐EP_FORM_SCRAPPED_MODEL銆戜腑 浠锋牸
                     modelTotalPriceMap.put(formScrappedModelId, formScrappedModelPrice);
-                    //閲囪喘銆佽皟鎷ㄣ�佸嚭搴撶瓑鐨勭墿鍝佸瀷鍙枫�怢_WH_PROCURE_MODEL銆戜腑 鍦ㄧ敤鏁伴噺
-                    Integer procureModelNum = Convert.toInt(procureModelMap.get(transBusinessId + "_" + baseGoodsModelsId), 0);
+                    // 閲囪喘銆佽皟鎷ㄣ�佸嚭搴撶瓑鐨勭墿鍝佸瀷鍙枫�怢_WH_PROCURE_MODEL銆戜腑 鍦ㄧ敤鏁伴噺
+                    Integer procureModelNum =
+                        Convert.toInt(procureModelMap.get(transBusinessId + "_" + baseGoodsModelsId), 0);
                     procureModelMap.put(transBusinessId + "_" + baseGoodsModelsId, counts + procureModelNum);
 
                     // 姹囨�诲嚭闇�瑕佷慨鏀圭姸鎬佺殑鐗╁搧id
-                    List<Long> srappedGoodsIds = scrappedGoodsList.stream().map(map -> (Long) map.get("id")).collect(Collectors.toList());
+                    List<Long> srappedGoodsIds =
+                        scrappedGoodsList.stream().map(map -> (Long)map.get("id")).collect(Collectors.toList());
 
                     // 璁剧疆鐗╁搧涓烘姤搴熺姸鎬�
                     lWhGoodsService.modGoodsTransfering(srappedGoodsIds, null, null, null, 3);
                     // 鎵归噺鎻掑叆 杩涘嚭搴撴祦姘存槑缁哰L_WH_GOODS_RECORD_DETAILS]
-                    lWhGoodsRecordDetailsService.sameGoodsInsertMore(srappedGoodsIds, whGoodsRecordId, (short) 2);
+                    lWhGoodsRecordDetailsService.sameGoodsInsertMore(srappedGoodsIds, whGoodsRecordId, (short)2);
                 }
             }
 
@@ -161,7 +172,7 @@
             whGoodsRecord.setEndCount(goodsModelNum - modelTotalNum);
             whGoodsRecord.setThisCount(modelTotalNum);
             whGoodsRecord.setTotalPrice(modelTotalPrice);
-//            lWhGoodsRecordService.insert(whGoodsRecord);
+            // lWhGoodsRecordService.insert(whGoodsRecord);
             lWhGoodsRecordList.add(whGoodsRecord);
         }
 
@@ -178,7 +189,7 @@
         warehouseFlow.setOperatorName(nickName);
         warehouseFlow.setDealTime(dealTime);
         // 鎻掑叆娴佹按鎬昏〃
-        int flowInsertFlag = lWarehouseFlowService.insert(warehouseFlow);
+        int flowInsertFlag = lWarehouseFlowServiceImpl.insert(warehouseFlow);
         if (flowInsertFlag == 0) {
             TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
             return null;
@@ -189,9 +200,9 @@
         // 鏇存柊鎶ュ簾鍗�
         depFormScrapped = new DepFormScrapped(lWhFormScrappedId);
         depFormScrapped.setStates(2);
-//        depFormScrapped.setOperatorId(userId);
-//        depFormScrapped.setOperatorName(nickName);
-//        depFormScrapped.setDealTime(dealTime);
+        // depFormScrapped.setOperatorId(userId);
+        // depFormScrapped.setOperatorName(nickName);
+        // depFormScrapped.setDealTime(dealTime);
         goodsBaseService.update(depFormScrapped);
 
         // 鏇存柊 鎶ュ簾鍗曠墿鍝併�怐EP_FORM_SCRAPPED_MODEL銆戜腑浠锋牸鐨刲ist
@@ -206,7 +217,7 @@
         }
         goodsBaseService.execBatchUpdate("update DEP_FORM_SCRAPPED_MODEL set TOTAL_AMOUNT=? where id=?", parameterList);
 
-        //濡傛灉鏄疉绫荤墿鍝侊紝鍒欐洿鏂� 鍒嗗彂鐗╁搧浣跨敤浜恒�怢_WH_PROCURE_MODEL_USER銆� 涓� 鏍规嵁id 鏇存柊 鍦ㄧ敤鏁伴噺(USE_COUNT)
+        // 濡傛灉鏄疉绫荤墿鍝侊紝鍒欐洿鏂� 鍒嗗彂鐗╁搧浣跨敤浜恒�怢_WH_PROCURE_MODEL_USER銆� 涓� 鏍规嵁id 鏇存柊 鍦ㄧ敤鏁伴噺(USE_COUNT)
         List<Object[]> procureModelUserIdList = new ArrayList<>();
         for (Map<String, Object> itemMap : bfModelList) {
             Long procureModelUserId = Convert.toLong(itemMap.get("PROCURE_MODEL_USER_ID"));
@@ -215,10 +226,11 @@
             }
             Integer counts = Convert.toInt(itemMap.get("COUNTS"));
 
-//            StringBuilder sb = new StringBuilder("update L_WH_PROCURE_MODEL_USER set USE_COUNT=USE_COUNT-").append(counts);
-//            sb.append(" where id=").append(procureModelUserId);
-//            sb.append(" and USE_COUNT-").append(counts).append(" >=0");
-//            goodsBaseService.update(sb.toString());
+            // StringBuilder sb = new StringBuilder("update L_WH_PROCURE_MODEL_USER set
+            // USE_COUNT=USE_COUNT-").append(counts);
+            // sb.append(" where id=").append(procureModelUserId);
+            // sb.append(" and USE_COUNT-").append(counts).append(" >=0");
+            // goodsBaseService.update(sb.toString());
 
             Object[] one = new Object[3];
             one[0] = counts;
@@ -227,11 +239,12 @@
             procureModelUserIdList.add(one);
         }
         if (!CollectionUtils.isEmpty(procureModelUserIdList)) {
-            goodsBaseService.execBatchUpdate("update L_WH_PROCURE_MODEL_USER set USE_COUNT=USE_COUNT- ?  where id= ? and USE_COUNT- ? >=0", procureModelUserIdList);
+            goodsBaseService.execBatchUpdate(
+                "update L_WH_PROCURE_MODEL_USER set USE_COUNT=USE_COUNT- ?  where id= ? and USE_COUNT- ? >=0",
+                procureModelUserIdList);
         }
 
-
-        //閲囪喘銆佽皟鎷ㄣ�佸嚭搴撶瓑鐨勭墿鍝佸瀷鍙枫�怢_WH_PROCURE_MODEL銆戜腑 鏍规嵁璋冩嫧鍗�+鍨嬪彿 鏇存柊 鍦ㄧ敤鏁伴噺
+        // 閲囪喘銆佽皟鎷ㄣ�佸嚭搴撶瓑鐨勭墿鍝佸瀷鍙枫�怢_WH_PROCURE_MODEL銆戜腑 鏍规嵁璋冩嫧鍗�+鍨嬪彿 鏇存柊 鍦ㄧ敤鏁伴噺
         List<Object[]> procureModelParameterList = new ArrayList<>();
         for (Map.Entry<String, Integer> entry : procureModelMap.entrySet()) {
             String key = entry.getKey();
@@ -252,9 +265,11 @@
             sb.append(modelUseingNum).append(" >=0");
             goodsBaseService.update(sb.toString());
         }
-//        goodsBaseService.execBatchUpdate("update L_WH_PROCURE_MODEL set USE_COUNT=USE_COUNT-? where BUSINESS_TYPE=4 and BUSINESS_ID=? and BASE_GOODS_MODELS_ID=? and USE_COUNT=USE_COUNT-? >0", procureModelParameterList);
-        //褰撳簱瀛樺彉鍔ㄦ椂璋冪敤璇ユ柟娉�
-        //lWhWarningCoreService.updateKuCun(Convert.toShort(warehouseType,(short) 0), warehouseId, allChangModelList, null, dealTime);
+        // goodsBaseService.execBatchUpdate("update L_WH_PROCURE_MODEL set USE_COUNT=USE_COUNT-? where BUSINESS_TYPE=4
+        // and BUSINESS_ID=? and BASE_GOODS_MODELS_ID=? and USE_COUNT=USE_COUNT-? >0", procureModelParameterList);
+        // 褰撳簱瀛樺彉鍔ㄦ椂璋冪敤璇ユ柟娉�
+        // lWhWarningCoreService.updateKuCun(Convert.toShort(warehouseType,(short) 0), warehouseId, allChangModelList,
+        // null, dealTime);
         return null;
     }
 }

--
Gitblit v1.9.1