From 293996df5d4e39499384ffc5e2aca48241677bd9 Mon Sep 17 00:00:00 2001
From: cy <1664593601@qq.com>
Date: 星期二, 14 十一月 2023 14:17:08 +0800
Subject: [PATCH] feat: 增加金额

---
 consum-base/src/main/java/com/consum/base/service/LWhFormOutputCoreService.java |   21 ++++++----
 consum-base/src/main/java/com/consum/base/service/LWhGoodsService.java          |   51 +++++++++++++++++--------
 2 files changed, 48 insertions(+), 24 deletions(-)

diff --git a/consum-base/src/main/java/com/consum/base/service/LWhFormOutputCoreService.java b/consum-base/src/main/java/com/consum/base/service/LWhFormOutputCoreService.java
index 7b1b328..e6cd166 100644
--- a/consum-base/src/main/java/com/consum/base/service/LWhFormOutputCoreService.java
+++ b/consum-base/src/main/java/com/consum/base/service/LWhFormOutputCoreService.java
@@ -40,13 +40,13 @@
 
     @Autowired
     public LWhFormOutputCoreService(BaseGoodsTemplateServiceImpl baseGoodsTemplateService,
-        LWhGoodsService lWhGoodsService,
-        CodeGeneratorService codeGeneratorService,
-        LWhProcureModelService lWhProcureModelService,
-        LWhFormOutputService lWhFormOutputService,
-        LWarehouseFlowService lWarehouseFlowService,
-        LWhGoodsRecordDetailsService lWhGoodsRecordDetailsService,
-        LWhGoodsRecordService lWhGoodsRecordService) {
+                                    LWhGoodsService lWhGoodsService,
+                                    CodeGeneratorService codeGeneratorService,
+                                    LWhProcureModelService lWhProcureModelService,
+                                    LWhFormOutputService lWhFormOutputService,
+                                    LWarehouseFlowService lWarehouseFlowService,
+                                    LWhGoodsRecordDetailsService lWhGoodsRecordDetailsService,
+                                    LWhGoodsRecordService lWhGoodsRecordService) {
         this.baseGoodsTemplateService = baseGoodsTemplateService;
         this.lWhGoodsService = lWhGoodsService;
         this.codeGeneratorService = codeGeneratorService;
@@ -239,6 +239,7 @@
 
             //閫氳繃LockManage鑾峰緱閿�
             Object warehouseModelLockObj = LockManage.acquireLock(outWarehouseType, outWarehouseId, baseGoodsModelsId);
+            List<Long> outGoodsId = null;
             synchronized (warehouseModelLockObj) {
                 // 鑾峰緱閿佸悗鏌ヨ璇ュ瀷鍙风殑鏈熷垵鏁伴噺
                 int goodsModelNum = lWhGoodsService.queryGoodsModelNum(outWarehouseType, outWarehouseId, baseGoodsModelsId, queryModelStatus, buyType);
@@ -252,13 +253,17 @@
                 whGoodsRecord.setEndCount(goodsModelNum - counts);
 
                 //鍑哄簱鏃跺�欙紝鎸� 鍏堝叆搴撶殑鍏堝嚭搴擄紝鍚屾椂鍏ュ簱鐨勶紝鎸変环鏍奸珮鐨勫厛鍑哄簱
-                List<Long> outGoodsId = lWhGoodsService.queryOutGoodsId(outWarehouseType, outWarehouseId, baseGoodsModelsId, queryModelStatus, buyType,
+                outGoodsId = lWhGoodsService.queryOutGoodsId(outWarehouseType, outWarehouseId, baseGoodsModelsId, queryModelStatus, buyType,
                         counts);
                 lWhGoodsService.modGoodsTransfering(outGoodsId, inWarehouseType, inWarehouseId, inWarehouseName, modGoodsTransferingStatus);
                 // 鎵归噺鎻掑叆 杩涘嚭搴撴祦姘存槑缁哰L_WH_GOODS_RECORD_DETAILS]
                 lWhGoodsRecordDetailsService.sameGoodsInsertMore(outGoodsId, whGoodsRecordId, (short) 0);
                 lWhGoodsRecordService.insert(whGoodsRecord);
             }
+            long totalAmount = lWhGoodsService.queryGoodsPriceById(outGoodsId);
+            LWhProcureModel lWhProcureModel = new LWhProcureModel(itemModelInfo.getId());
+            lWhProcureModel.setTotalAmount(totalAmount);
+            lWhProcureModelService.update(lWhProcureModel);
         });
         LWarehouseFlow warehouseFlow = new LWarehouseFlow();
         warehouseFlow.setId(lWarehouseFlowId);
diff --git a/consum-base/src/main/java/com/consum/base/service/LWhGoodsService.java b/consum-base/src/main/java/com/consum/base/service/LWhGoodsService.java
index e53939c..007e80b 100644
--- a/consum-base/src/main/java/com/consum/base/service/LWhGoodsService.java
+++ b/consum-base/src/main/java/com/consum/base/service/LWhGoodsService.java
@@ -3,13 +3,15 @@
 import com.consum.model.po.LWhGoods;
 import com.walker.infrastructure.utils.CollectionUtils;
 import com.walker.jdbc.service.BaseServiceImpl;
+import org.apache.commons.lang3.StringUtils;
+import org.springframework.stereotype.Service;
+
+import java.math.BigDecimal;
 import java.util.ArrayList;
 import java.util.HashMap;
 import java.util.List;
 import java.util.Map;
 import java.util.stream.Collectors;
-import org.apache.commons.lang3.StringUtils;
-import org.springframework.stereotype.Service;
 
 /**
  * @ClassName LWhGoodsService
@@ -72,7 +74,7 @@
     private static String QUERY_OUT_GOODS_ID = "SELECT * FROM L_WH_GOODS WHERE 1=1";
 
     public List<Map<String, Object>> queryOutGoods(Integer warehouseType, Long warehouseId, Long baseGoodsModelsId, Short states, Short buyType,
-        Integer goodsModelNum) {
+                                                   Integer goodsModelNum) {
         StringBuilder sql = new StringBuilder(QUERY_OUT_GOODS_ID);
         Map<String, Object> paramts = new HashMap<>();
         if (warehouseType != null) {
@@ -118,6 +120,23 @@
         return whGoodsIds;
     }
 
+    private static String QUERY_GOODS_PRICE_BY_ID = "SELECT sum(PRICE)totalPrice from L_WH_GOODS goods where 1=1";
+
+    public long queryGoodsPriceById(List<Long> goodsIds) {
+        StringBuilder sql = new StringBuilder(QUERY_GOODS_PRICE_BY_ID);
+        Map<String, Object> paramts = new HashMap<>();
+        if (!CollectionUtils.isEmpty(goodsIds)) {
+            sql.append(" and id in(:goodsIds)");
+            paramts.put("goodsIds", goodsIds);
+        }
+        List<Map<String, Object>> map = this.select(sql.toString(), paramts);
+        if (CollectionUtils.isEmpty(map)) {
+            return 0;
+        }
+        BigDecimal totalPrice = (BigDecimal) map.get(0).get("totalPrice");
+        return totalPrice.longValue();
+    }
+
 
     /**
      * 鏌ヨ鎶ュ簾鐗╁搧 榛樿浼樺厛鎶ュ簾鏈�楂樹环鐨勭墿鍝�
@@ -137,12 +156,12 @@
     private static String QUERY_SCRAPPED_GOODS_END = " ORDER BY goods.PRICE DESC,goods.PROCURE_DATE ASC,goods.id";
 
     public List<Map<String, Object>> queryScrappedGoods(Integer warehouseType,
-        Long warehouseId,
-        Long transBusinessId,
-        String nowUserName,
-        Long baseGoodsModelsId,
-        Short states,
-        Integer goodsModelNum) {
+                                                        Long warehouseId,
+                                                        Long transBusinessId,
+                                                        String nowUserName,
+                                                        Long baseGoodsModelsId,
+                                                        Short states,
+                                                        Integer goodsModelNum) {
         if (warehouseType == null) {
             warehouseType = 0;
         }
@@ -192,14 +211,14 @@
      * @return
      */
     public List<Long> queryScrappedGoodsIds(Integer warehouseType,
-        Long warehouseId,
-        Long transBusinessId,
-        String nowUserName,
-        Long baseGoodsModelsId,
-        Short states,
-        Integer goodsModelNum) {
+                                            Long warehouseId,
+                                            Long transBusinessId,
+                                            String nowUserName,
+                                            Long baseGoodsModelsId,
+                                            Short states,
+                                            Integer goodsModelNum) {
         List<Map<String, Object>> outGoods = queryScrappedGoods(warehouseType, warehouseId, transBusinessId, nowUserName, baseGoodsModelsId, states,
-            goodsModelNum);
+                goodsModelNum);
         if (CollectionUtils.isEmpty(outGoods)) {
             return null;
         }

--
Gitblit v1.9.1