From b268fd73f060108b8214ed1afcbbf03480435f3a Mon Sep 17 00:00:00 2001
From: futian.liu <liufutianyoo@163.com>
Date: 星期五, 15 十二月 2023 17:27:41 +0800
Subject: [PATCH] 1.出库手续回显 2.调拨申请时库存查询更换接口 3.调拨出库时从已有物品所在的仓库中选择

---
 consum-base/src/main/java/com/consum/base/service/LWarehouseFlowCoreService.java |  135 +++++++++++++++++++++-----------------------
 1 files changed, 64 insertions(+), 71 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 74df6dc..f0777aa 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,5 +1,7 @@
 package com.consum.base.service;
 
+import java.util.ArrayList;
+import java.util.Arrays;
 import java.util.List;
 import java.util.Map;
 import java.util.stream.Collectors;
@@ -50,12 +52,14 @@
 
     @PostConstruct
     public void init() {
-        this.simpleJdbcCall = new SimpleJdbcCall(jdbcTemplate).withCatalogName(dataBaseName).withProcedureName("InsertL_WH_GOODS");
+        this.simpleJdbcCall =
+            new SimpleJdbcCall(jdbcTemplate).withCatalogName(dataBaseName).withProcedureName("InsertL_WH_GOODS");
     }
 
     @Autowired
-    public LWarehouseFlowCoreService(JdbcTemplate jdbcTemplate, LWarehouseFlowService lWarehouseFlowService, LWhGoodsService lWhGoodsService,
-                                     BaseGoodsTemplateService baseGoodsTemplateService, LWhGoodsRecordService lWhGoodsRecordServiceImpl) {
+    public LWarehouseFlowCoreService(JdbcTemplate jdbcTemplate, LWarehouseFlowService lWarehouseFlowService,
+        LWhGoodsService lWhGoodsService, BaseGoodsTemplateService baseGoodsTemplateService,
+        LWhGoodsRecordService lWhGoodsRecordServiceImpl) {
         this.jdbcTemplate = jdbcTemplate;
         this.lWarehouseFlowService = lWarehouseFlowService;
         this.baseGoodsTemplateService = baseGoodsTemplateService;
@@ -70,7 +74,8 @@
      * @param warehouseFlow
      * @return
      */
-    public int buyInsertWareFlow(List<LWhProcureModel> goodsModelNumList, LWhFormProcure lWhFormProcure, LWarehouseFlow warehouseFlow) {
+    public int buyInsertWareFlow(List<LWhProcureModel> goodsModelNumList, LWhFormProcure lWhFormProcure,
+        LWarehouseFlow warehouseFlow) {
         if (CollectionUtils.isEmpty(goodsModelNumList)) {
             log.error("娌℃湁瑕佸叆搴撶殑鐗╁搧");
             return 0;
@@ -85,9 +90,9 @@
         Long dealTime = warehouseFlow.getDealTime();
         BaseWarehouse baseWarehouses = lWarehouseFlowService.get(new BaseWarehouse(warehouseId));
         String warehouseName = baseWarehouses.getWarehouseName();
-        //閲囪喘鏂瑰紡锛�1锛氶泦閲囷紱2=鑷噰锛�
+        // 閲囪喘鏂瑰紡锛�1锛氶泦閲囷紱2=鑷噰锛�
         short buyType = lWhFormProcure.getBuyType().shortValue();
-        //閲囪喘鏃堕棿
+        // 閲囪喘鏃堕棿
         Long procureTime2 = lWhFormProcure.getProcureTime();
         Long procureTime = procureTime2 == null ? dealTime : procureTime2;
         // 鎻掑叆娴佹按鎬昏〃
@@ -96,27 +101,26 @@
             return 0;
         }
 
-        //缁熻鍚勫瀷鍙锋暟閲�
-        Map<Long, Integer> countsSumByBaseGoodsModelsId = goodsModelNumList.stream()
-                .collect(Collectors.groupingBy(LWhProcureModel::getBaseGoodsModelsId,
-                        Collectors.summingInt(LWhProcureModel::getCounts)));
+        // 缁熻鍚勫瀷鍙锋暟閲�
+        Map<Long, Integer> countsSumByBaseGoodsModelsId = goodsModelNumList.stream().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);
-            //浠峰�肩被鍨�
-            String classificationObj = (String) tempGoodsInfo.get("classification");
+            // 浠峰�肩被鍨�
+            String classificationObj = (String)tempGoodsInfo.get("classification");
             Short classificationT = 3;
             if (classificationObj != null) {
-                classificationT = (short) ((classificationObj).charAt(0) - 64);
+                classificationT = (short)((classificationObj).charAt(0) - 64);
             }
             short classification = classificationT;
-            Long tempGoodsId = (Long) tempGoodsInfo.get("goodsid");
-            String goodsName = (String) tempGoodsInfo.get("goodsname");
-            String modelName = (String) tempGoodsInfo.get("modelname");
-            String goodsUnit = (String) tempGoodsInfo.get("unit");
+            Long tempGoodsId = (Long)tempGoodsInfo.get("goodsid");
+            String goodsName = (String)tempGoodsInfo.get("goodsname");
+            String modelName = (String)tempGoodsInfo.get("modelname");
+            String goodsUnit = (String)tempGoodsInfo.get("unit");
 
             // 鎻掑叆 鍚勮鏍肩墿鍝佺殑杩涘嚭搴撹褰� L_WH_GOODS_RECORD
             long whGoodsRecordId = IdUtil.generateId();
@@ -130,34 +134,35 @@
             whGoodsRecord.setBaseGoodsModelsId(baseGoodsModelsId);
             whGoodsRecord.setBaseGoodsModelsName(modelName);
             whGoodsRecord.setDealTime(dealTime);
-            //鏈璋冩暣绫诲瀷 1=璋冨锛�2=璋冨噺
+            // 鏈璋冩暣绫诲瀷 1=璋冨锛�2=璋冨噺
             whGoodsRecord.setThisType(1);
 
-            //閫氳繃LockManage鑾峰緱閿�
+            // 閫氳繃LockManage鑾峰緱閿�
             Object warehouseModelLockObj = LockManage.acquireLock(warehouseType, warehouseId, baseGoodsModelsId);
             synchronized (warehouseModelLockObj) {
                 // 鑾峰緱閿佸悗鏌ヨ璇ュ瀷鍙风殑鏈熷垵鏁伴噺
-                int goodsModelNum = lWhGoodsService.queryGoodsModelNum(warehouseType, warehouseId, baseGoodsModelsId, 1, null);
+                List<Long> warehouseIds = new ArrayList<>(Arrays.asList(warehouseId));
+                int goodsModelNum =
+                    lWhGoodsService.queryGoodsModelNum(warehouseType, warehouseIds, baseGoodsModelsId, 1, null);
                 whGoodsRecord.setInitialCount(goodsModelNum);
                 whGoodsRecord.setThisCount(modelCount);
                 whGoodsRecord.setEndCount(goodsModelNum + modelCount);
 
                 long totalPrice = 0;
-                //灏嗗悓鍨嬪彿鐨勭墿鍝佹彃鍏� 搴撳瓨鐗╁搧璇︽儏
+                // 灏嗗悓鍨嬪彿鐨勭墿鍝佹彃鍏� 搴撳瓨鐗╁搧璇︽儏
                 List<LWhProcureModel> lWhProcureModels = sameModelList.get(baseGoodsModelsId);
                 for (LWhProcureModel item : lWhProcureModels) {
-                    //渚涘簲鍟�
+                    // 渚涘簲鍟�
                     String supplier = item.getSupplier();
-                    //浠锋牸
+                    // 浠锋牸
                     Long price = item.getPrice();
-                    //鐗╁搧涓暟
+                    // 鐗╁搧涓暟
                     Integer counts = item.getCounts();
                     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);
-                }
-                ;
+                    sameGoodsInsertMore(warehouseFlowId, warehouseType, warehouseId, whGoodsRecordId, (short)1,
+                        warehouseName, classification, tempGoodsId, goodsName, baseGoodsModelsId, modelName, supplier,
+                        buyType, goodsUnit, price, procureTime, 1, dealTime, counts);
+                } ;
                 whGoodsRecord.setTotalPrice(totalPrice);
             }
             lWhGoodsRecordServiceImpl.insert(whGoodsRecord);
@@ -166,51 +171,39 @@
         return 1;
     }
 
-
     /**
      * 鍚屾牱瑙勬牸鐨勭墿鍝� 鎻掑叆澶氭锛� 鍚屾椂灏嗕富閿褰曞湪 杩涘嚭搴撴祦姘存槑缁嗐�怢_WH_GOODS_RECORD_DETAILS銆�, 鏇存柊 鐗╁搧浠撳簱淇濈璁板綍銆怢_GOODS_WH_RECORD銆�
      *
-     * @param pWarehouseId         浠撳簱id
-     * @param pWarehouseName       浠撳簱鍚嶇О
-     * @param pCostType            鐗╁搧浠峰�肩被鍨�
+     * @param pWarehouseId 浠撳簱id
+     * @param pWarehouseName 浠撳簱鍚嶇О
+     * @param pCostType 鐗╁搧浠峰�肩被鍨�
      * @param pBaseGoodsTemplateId 鐗╁搧妯℃澘ID
-     * @param pGoodsTemplateName   鐗╁搧妯℃澘鍚嶇О
-     * @param pBaseGoodsModelsId   鐗╁搧鍨嬪彿ID
+     * @param pGoodsTemplateName 鐗╁搧妯℃澘鍚嶇О
+     * @param pBaseGoodsModelsId 鐗╁搧鍨嬪彿ID
      * @param pBaseGoodsModelsName 鐗╁搧鍨嬪彿鍚嶇О
-     * @param pUnit                鐗╁搧鍗曚綅
-     * @param pSupplier            鐗╁搧渚涘簲鍟�
-     * @param pBuyType             鐗╁搧璐拱绫诲瀷
-     * @param pPrice               鐗╁搧浠锋牸
-     * @param pProcureDate         閲囪喘鏃ユ湡
-     * @param pStates              鐘舵��
-     * @param pTimes               鎻掑叆鏉℃暟
+     * @param pUnit 鐗╁搧鍗曚綅
+     * @param pSupplier 鐗╁搧渚涘簲鍟�
+     * @param pBuyType 鐗╁搧璐拱绫诲瀷
+     * @param pPrice 鐗╁搧浠锋牸
+     * @param pProcureDate 閲囪喘鏃ユ湡
+     * @param pStates 鐘舵��
+     * @param 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_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);
+    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_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);
     }

--
Gitblit v1.9.1