From f7163108fef21286a2b447f1958ee3204d7854d0 Mon Sep 17 00:00:00 2001
From: 石广澎 <shiguangpeng@163.com>
Date: 星期六, 02 十二月 2023 11:39:44 +0800
Subject: [PATCH] feat: 部门物品报废 1、分发单选择增加校验 2、明细列表字段对接

---
 consum-base/src/main/java/com/consum/base/service/LWarehouseFlowCoreService.java |   39 +++++++++++++++++++++++++++------------
 1 files changed, 27 insertions(+), 12 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 d85b03e..a9989b2 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
@@ -6,25 +6,29 @@
 import com.walker.infrastructure.utils.NumberGenerator;
 import lombok.extern.slf4j.Slf4j;
 import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.beans.factory.annotation.Value;
 import org.springframework.jdbc.core.JdbcTemplate;
 import org.springframework.jdbc.core.namedparam.MapSqlParameterSource;
 import org.springframework.jdbc.core.namedparam.SqlParameterSource;
 import org.springframework.jdbc.core.simple.SimpleJdbcCall;
 import org.springframework.stereotype.Service;
+import org.springframework.transaction.annotation.Propagation;
+import org.springframework.transaction.annotation.Transactional;
 
+import javax.annotation.PostConstruct;
 import java.util.List;
 import java.util.Map;
 import java.util.stream.Collectors;
 
 /**
  * @ClassName LWarehouseFlowService
-
  * @Date 2023/10/24
  * @Description
  * @Version 1.0
  **/
 @Service
 @Slf4j
+@Transactional(propagation = Propagation.REQUIRED)
 public class LWarehouseFlowCoreService {
 
     private final JdbcTemplate jdbcTemplate;
@@ -34,14 +38,22 @@
     private LWhGoodsRecordService lWhGoodsRecordService;
     private BaseGoodsTemplateServiceImpl baseGoodsTemplateService;
 
+    @Value("${spring.datasource.dataBaseName}")
+    private String dataBaseName;
+
+    @PostConstruct
+    public void init() {
+        this.simpleJdbcCall = new SimpleJdbcCall(jdbcTemplate).withCatalogName(dataBaseName).withProcedureName("InsertL_WH_GOODS");
+    }
+
     @Autowired
-    public LWarehouseFlowCoreService(JdbcTemplate jdbcTemplate, LWarehouseFlowService lWarehouseFlowService, LWhGoodsService lWhGoodsService, 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.lWhGoodsService = lWhGoodsService;
         this.lWhGoodsRecordService = lWhGoodsRecordService;
-        this.simpleJdbcCall = new SimpleJdbcCall(jdbcTemplate).withProcedureName("InsertL_WH_GOODS");
     }
 
     /**
@@ -69,8 +81,8 @@
         //閲囪喘鏂瑰紡锛�1锛氶泦閲囷紱2=鑷噰锛�
         short buyType = lWhFormProcure.getBuyType().shortValue();
         //閲囪喘鏃堕棿
-        Long procureTime = lWhFormProcure.getProcureTime();
-
+        Long procureTime2 = lWhFormProcure.getProcureTime();
+        Long procureTime = procureTime2 == null ? dealTime : procureTime2;
         // 鎻掑叆娴佹按鎬昏〃
         int flowInsertFlag = lWarehouseFlowService.insert(warehouseFlow);
         if (flowInsertFlag == 0) {
@@ -118,24 +130,28 @@
             Object warehouseModelLockObj = LockManage.acquireLock(warehouseType, warehouseId, baseGoodsModelsId);
             synchronized (warehouseModelLockObj) {
                 // 鑾峰緱閿佸悗鏌ヨ璇ュ瀷鍙风殑鏈熷垵鏁伴噺
-                int goodsModelNum = lWhGoodsService.queryGoodsModelNum(warehouseType, 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();
+                    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);
         });
@@ -145,9 +161,7 @@
 
 
     /**
-     * 鍚屾牱瑙勬牸鐨勭墿鍝� 鎻掑叆澶氭锛�
-     * 鍚屾椂灏嗕富閿褰曞湪 杩涘嚭搴撴祦姘存槑缁嗐�怢_WH_GOODS_RECORD_DETAILS銆�,
-     * 鏇存柊 鐗╁搧浠撳簱淇濈璁板綍銆怢_GOODS_WH_RECORD銆�
+     * 鍚屾牱瑙勬牸鐨勭墿鍝� 鎻掑叆澶氭锛� 鍚屾椂灏嗕富閿褰曞湪 杩涘嚭搴撴祦姘存槑缁嗐�怢_WH_GOODS_RECORD_DETAILS銆�, 鏇存柊 鐗╁搧浠撳簱淇濈璁板綍銆怢_GOODS_WH_RECORD銆�
      *
      * @param pWarehouseId         浠撳簱id
      * @param pWarehouseName       浠撳簱鍚嶇О
@@ -164,7 +178,8 @@
      * @param pStates              鐘舵��
      * @param pTimes               鎻掑叆鏉℃暟
      */
-    public void sameGoodsInsertMore(long pWarehouseFlowId, Integer warehouseType, long pWarehouseId, long pWhGoodsRecordId, short pRecordType, String pWarehouseName, short pCostType,
+    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,

--
Gitblit v1.9.1