From b3585e6475b7a7ab38fcb8af79def5e938a297ea Mon Sep 17 00:00:00 2001
From: cy <1664593601@qq.com>
Date: 星期三, 22 十一月 2023 18:45:31 +0800
Subject: [PATCH] Merge remote-tracking branch 'origin/master'

---
 consum-base/src/main/java/com/consum/base/service/LWarehouseFlowCoreService.java |  120 ++++++++++++++++++++++++++---------------------------------
 1 files changed, 53 insertions(+), 67 deletions(-)

diff --git a/consum-base/src/main/java/com/consum/base/service/LWarehouseFlowCoreService.java b/consum-base/src/main/java/com/consum/base/service/LWarehouseFlowCoreService.java
index 6f37d34..5f65e91 100644
--- a/consum-base/src/main/java/com/consum/base/service/LWarehouseFlowCoreService.java
+++ b/consum-base/src/main/java/com/consum/base/service/LWarehouseFlowCoreService.java
@@ -1,9 +1,16 @@
 package com.consum.base.service;
 
-import com.consum.base.core.util.LockManage;
-import com.consum.model.po.*;
+import com.consum.base.core.utils.LockManage;
+import com.consum.model.po.BaseWarehouse;
+import com.consum.model.po.LWarehouseFlow;
+import com.consum.model.po.LWhFormProcure;
+import com.consum.model.po.LWhGoodsRecord;
+import com.consum.model.po.LWhProcureModel;
 import com.walker.infrastructure.utils.CollectionUtils;
 import com.walker.infrastructure.utils.NumberGenerator;
+import java.util.List;
+import java.util.Map;
+import java.util.stream.Collectors;
 import lombok.extern.slf4j.Slf4j;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.jdbc.core.JdbcTemplate;
@@ -12,13 +19,8 @@
 import org.springframework.jdbc.core.simple.SimpleJdbcCall;
 import org.springframework.stereotype.Service;
 
-import java.util.List;
-import java.util.Map;
-import java.util.stream.Collectors;
-
 /**
  * @ClassName LWarehouseFlowService
- * @Author cy
  * @Date 2023/10/24
  * @Description
  * @Version 1.0
@@ -32,17 +34,14 @@
     private LWarehouseFlowService lWarehouseFlowService;
     private LWhGoodsService lWhGoodsService;
     private LWhGoodsRecordService lWhGoodsRecordService;
-    private LWhFormTransferService lWhFormTransferService;
-    private LWhFormOutputCoreService lWhFormOutputCoreService;
     private BaseGoodsTemplateServiceImpl baseGoodsTemplateService;
 
     @Autowired
-    public LWarehouseFlowCoreService(JdbcTemplate jdbcTemplate, LWarehouseFlowService lWarehouseFlowService, LWhGoodsService lWhGoodsService, LWhFormTransferService lWhFormTransferService, LWhFormOutputCoreService lWhFormOutputCoreService, BaseGoodsTemplateServiceImpl baseGoodsTemplateService, LWhGoodsRecordService lWhGoodsRecordService) {
+    public LWarehouseFlowCoreService(JdbcTemplate jdbcTemplate, LWarehouseFlowService lWarehouseFlowService, LWhGoodsService lWhGoodsService,
+        BaseGoodsTemplateServiceImpl baseGoodsTemplateService, LWhGoodsRecordService lWhGoodsRecordService) {
         this.jdbcTemplate = jdbcTemplate;
         this.lWarehouseFlowService = lWarehouseFlowService;
         this.baseGoodsTemplateService = baseGoodsTemplateService;
-        this.lWhFormTransferService = lWhFormTransferService;
-        this.lWhFormOutputCoreService = lWhFormOutputCoreService;
         this.lWhGoodsService = lWhGoodsService;
         this.lWhGoodsRecordService = lWhGoodsRecordService;
         this.simpleJdbcCall = new SimpleJdbcCall(jdbcTemplate).withProcedureName("InsertL_WH_GOODS");
@@ -65,6 +64,7 @@
         }
         // 鏌ヨ浠撳簱淇℃伅
         Long warehouseFlowId = warehouseFlow.getId();
+        Integer warehouseType = warehouseFlow.getWarehouseType();
         Long warehouseId = warehouseFlow.getWarehouseId();
         Long dealTime = warehouseFlow.getDealTime();
         BaseWarehouse baseWarehouses = lWarehouseFlowService.get(new BaseWarehouse(warehouseId));
@@ -82,11 +82,11 @@
 
         //缁熻鍚勫瀷鍙锋暟閲�
         Map<Long, Integer> countsSumByBaseGoodsModelsId = goodsModelNumList.stream()
-                .collect(Collectors.groupingBy(LWhProcureModel::getBaseGoodsModelsId,
-                        Collectors.summingInt(LWhProcureModel::getCounts)));
+            .collect(Collectors.groupingBy(LWhProcureModel::getBaseGoodsModelsId,
+                Collectors.summingInt(LWhProcureModel::getCounts)));
         Map<Long, List<LWhProcureModel>> sameModelList = goodsModelNumList.stream()
-                // 鎸夊瀷鍙峰垎
-                .collect(Collectors.groupingBy(LWhProcureModel::getBaseGoodsModelsId));
+            // 鎸夊瀷鍙峰垎
+            .collect(Collectors.groupingBy(LWhProcureModel::getBaseGoodsModelsId));
         countsSumByBaseGoodsModelsId.forEach((baseGoodsModelsId, modelCount) -> {
             //鏌ヨ鍨嬪彿淇℃伅
             Map<String, Object> tempGoodsInfo = baseGoodsTemplateService.queryGoodsInfoByModelId(baseGoodsModelsId);
@@ -118,27 +118,30 @@
             whGoodsRecord.setThisType(1);
 
             //閫氳繃LockManage鑾峰緱閿�
-            Object warehouseModelLockObj = LockManage.acquireLock(warehouseId, baseGoodsModelsId);
+            Object warehouseModelLockObj = LockManage.acquireLock(warehouseType, warehouseId, baseGoodsModelsId);
             synchronized (warehouseModelLockObj) {
                 // 鑾峰緱閿佸悗鏌ヨ璇ュ瀷鍙风殑鏈熷垵鏁伴噺
-                int goodsModelNum = lWhGoodsService.queryGoodsModelNum(warehouseId, baseGoodsModelsId, (short) 1, null);
+                int goodsModelNum = lWhGoodsService.queryGoodsModelNum(warehouseType, warehouseId, baseGoodsModelsId, 1, null);
                 whGoodsRecord.setInitialCount(goodsModelNum);
                 whGoodsRecord.setThisCount(modelCount);
                 whGoodsRecord.setEndCount(goodsModelNum + modelCount);
 
+                long totalPrice = 0;
                 //灏嗗悓鍨嬪彿鐨勭墿鍝佹彃鍏� 搴撳瓨鐗╁搧璇︽儏
                 List<LWhProcureModel> lWhProcureModels = sameModelList.get(baseGoodsModelsId);
-                lWhProcureModels.forEach(item -> {
+                for (LWhProcureModel item : lWhProcureModels) {
                     //渚涘簲鍟�
                     String supplier = item.getSupplier();
                     //浠锋牸
                     Long price = item.getPrice();
                     //鐗╁搧涓暟
                     Integer counts = item.getCounts();
-                    sameGoodsInsertMore(warehouseFlowId, warehouseId, whGoodsRecordId, (short) 1, warehouseName,
-                            classification, tempGoodsId, goodsName, baseGoodsModelsId, modelName,
-                            supplier, buyType, goodsUnit, price, procureTime, 1, dealTime, counts);
-                });
+                    totalPrice = totalPrice + counts*price;
+                    sameGoodsInsertMore(warehouseFlowId, warehouseType, warehouseId, whGoodsRecordId, (short) 1, warehouseName,
+                        classification, tempGoodsId, goodsName, baseGoodsModelsId, modelName,
+                        supplier, buyType, goodsUnit, price, procureTime, 1, dealTime, counts);
+                };
+                whGoodsRecord.setTotalPrice(totalPrice);
             }
             lWhGoodsRecordService.insert(whGoodsRecord);
         });
@@ -146,10 +149,9 @@
         return 1;
     }
 
+
     /**
-     * 鍚屾牱瑙勬牸鐨勭墿鍝� 鎻掑叆澶氭锛�
-     * 鍚屾椂灏嗕富閿褰曞湪 杩涘嚭搴撴祦姘存槑缁嗐�怢_WH_GOODS_RECORD_DETAILS銆�,
-     * 鏇存柊 鐗╁搧浠撳簱淇濈璁板綍銆怢_GOODS_WH_RECORD銆�
+     * 鍚屾牱瑙勬牸鐨勭墿鍝� 鎻掑叆澶氭锛� 鍚屾椂灏嗕富閿褰曞湪 杩涘嚭搴撴祦姘存槑缁嗐�怢_WH_GOODS_RECORD_DETAILS銆�, 鏇存柊 鐗╁搧浠撳簱淇濈璁板綍銆怢_GOODS_WH_RECORD銆�
      *
      * @param pWarehouseId         浠撳簱id
      * @param pWarehouseName       浠撳簱鍚嶇О
@@ -166,50 +168,34 @@
      * @param pStates              鐘舵��
      * @param pTimes               鎻掑叆鏉℃暟
      */
-    public void sameGoodsInsertMore(long pWarehouseFlowId, long pWarehouseId, long pWhGoodsRecordId, short pRecordType, String pWarehouseName, short pCostType,
-                                    long pBaseGoodsTemplateId, String pGoodsTemplateName, long pBaseGoodsModelsId,
-                                    String pBaseGoodsModelsName, String pSupplier, short pBuyType,
-                                    String pUnit, long pPrice, long pProcureDate,
-                                    int pStates, long pDealTime, int pTimes) {
+    public void sameGoodsInsertMore(long pWarehouseFlowId, Integer warehouseType, long pWarehouseId, long pWhGoodsRecordId, short pRecordType,
+        String pWarehouseName, short pCostType,
+        long pBaseGoodsTemplateId, String pGoodsTemplateName, long pBaseGoodsModelsId,
+        String pBaseGoodsModelsName, String pSupplier, short pBuyType,
+        String pUnit, long pPrice, long pProcureDate,
+        int pStates, long pDealTime, int pTimes) {
         SqlParameterSource in = new MapSqlParameterSource()
-                .addValue("p_WAREHOUSE_FLOW_ID", pWarehouseFlowId)
-                .addValue("p_WAREHOUSE_ID", pWarehouseId)
-                .addValue("p_WH_GOODS_RECORD_ID", pWhGoodsRecordId)
-                .addValue("p_RECORD_TYPE", pRecordType)
-                .addValue("p_WAREHOUSE_NAME", pWarehouseName)
-                .addValue("p_COST_TYPE", pCostType)
-                .addValue("p_BASE_GOODS_TEMPLATE_ID", pBaseGoodsTemplateId)
-                .addValue("p_GOODS_TEMPLATE_NAME", pGoodsTemplateName)
-                .addValue("p_BASE_GOODS_MODELS_ID", pBaseGoodsModelsId)
-                .addValue("p_BASE_GOODS_MODELS_NAME", pBaseGoodsModelsName)
-                .addValue("p_SUPPLIER", pSupplier)
-                .addValue("p_BUY_TYPE", pBuyType)
-                .addValue("p_UNIT", pUnit)
-                .addValue("p_PRICE", pPrice)
-                .addValue("p_PROCURE_DATE", pProcureDate)
-                .addValue("p_STATES", pStates)
-                .addValue("p_DEAL_TIME", pDealTime)
-                .addValue("p_times", pTimes);
+            .addValue("p_WAREHOUSE_FLOW_ID", pWarehouseFlowId)
+            .addValue("p_WAREHOUSE_TYPE", warehouseType)
+            .addValue("p_WAREHOUSE_ID", pWarehouseId)
+            .addValue("p_WH_GOODS_RECORD_ID", pWhGoodsRecordId)
+            .addValue("p_RECORD_TYPE", pRecordType)
+            .addValue("p_WAREHOUSE_NAME", pWarehouseName)
+            .addValue("p_COST_TYPE", pCostType)
+            .addValue("p_BASE_GOODS_TEMPLATE_ID", pBaseGoodsTemplateId)
+            .addValue("p_GOODS_TEMPLATE_NAME", pGoodsTemplateName)
+            .addValue("p_BASE_GOODS_MODELS_ID", pBaseGoodsModelsId)
+            .addValue("p_BASE_GOODS_MODELS_NAME", pBaseGoodsModelsName)
+            .addValue("p_SUPPLIER", pSupplier)
+            .addValue("p_BUY_TYPE", pBuyType)
+            .addValue("p_UNIT", pUnit)
+            .addValue("p_PRICE", pPrice)
+            .addValue("p_PROCURE_DATE", pProcureDate)
+            .addValue("p_STATES", pStates)
+            .addValue("p_DEAL_TIME", pDealTime)
+            .addValue("p_times", pTimes);
         Map<String, Object> out = simpleJdbcCall.execute(in);
         System.out.println("Procedure result: " + out);
     }
 
-    /**
-     * 璋冩嫧鍑哄簱
-     *
-     * @param outWarehouseId 鍑哄簱鍗�
-     * @return
-     */
-    public int outInsertWareFlow(Long outWarehouseId) {
-        // 鍑哄簱鏃跺�欙紝鎸� 鍏堝叆搴撶殑鍏堝嚭搴擄紝鍚屾椂鍏ュ簱鐨勶紝鎸変环鏍奸珮鐨勫厛鍑哄簱
-//        List<Long> outGoodsId = lWhGoodsService.queryOutGoodsId(outWarehouseId, baseGoodsModelsId, queryModelStatus, buyType, goodsModelNum);
-        // 淇敼鐗╁搧鐨勭姸鎬佷负  鐘舵�侊紙0=鍦ㄩ�旇皟鎷紱1=鍏ュ簱鏈垎鍙戯紱2=宸蹭笅鍙戯紱3=鎶ュ簾锛�
-        // 淇敼 鎵�灞炰粨搴撲粨搴撶紪鍙稺AREHOUSE_ID銆佷粨搴撳悕绉癢AREHOUSE_NAME锛屾鏃朵笉瑕佸悓姝ヨ繘 鐗╁搧浠撳簱淇濈璁板綍銆怢_GOODS_WH_RECORD銆戯紒鍏ュ簱鏃跺啀鍚屾
-
-
-        // 鏂板璁板綍 杩涘嚭搴撴祦姘存�昏〃[L_WAREHOUSE_FLOW]   鍚勮鏍肩墿鍝佺殑杩涘嚭搴撱�怢_WH_GOODS_RECORD銆戣繘鍑哄簱娴佹按鏄庣粏[L_WH_GOODS_RECORD_DETAILS]
-
-
-        return 0;
-    }
 }

--
Gitblit v1.9.1