From ceecebe477faf5a45b19f3b258f7add8f93b4583 Mon Sep 17 00:00:00 2001 From: futian.liu <liufutianyoo@163.com> Date: 星期二, 05 十二月 2023 10:00:24 +0800 Subject: [PATCH] 代码优化 结构调整 --- consum-base/src/main/java/com/consum/base/service/LWarehouseFlowCoreService.java | 72 +++++++++++++++++++++++------------ 1 files changed, 47 insertions(+), 25 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..74df6dc 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,47 +1,66 @@ package com.consum.base.service; -import com.consum.base.core.utils.LockManage; -import com.consum.model.po.*; -import com.walker.infrastructure.utils.CollectionUtils; -import com.walker.infrastructure.utils.NumberGenerator; -import lombok.extern.slf4j.Slf4j; +import java.util.List; +import java.util.Map; +import java.util.stream.Collectors; + +import javax.annotation.PostConstruct; + 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 java.util.List; -import java.util.Map; -import java.util.stream.Collectors; +import com.consum.base.core.utils.IdUtil; +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 lombok.extern.slf4j.Slf4j; /** * @ClassName LWarehouseFlowService - * @Date 2023/10/24 * @Description * @Version 1.0 **/ @Service @Slf4j +@Transactional(propagation = Propagation.REQUIRED) public class LWarehouseFlowCoreService { private final JdbcTemplate jdbcTemplate; private SimpleJdbcCall simpleJdbcCall; private LWarehouseFlowService lWarehouseFlowService; private LWhGoodsService lWhGoodsService; - private LWhGoodsRecordService lWhGoodsRecordService; - private BaseGoodsTemplateServiceImpl baseGoodsTemplateService; + private LWhGoodsRecordService lWhGoodsRecordServiceImpl; + private BaseGoodsTemplateService 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, + BaseGoodsTemplateService baseGoodsTemplateService, LWhGoodsRecordService lWhGoodsRecordServiceImpl) { this.jdbcTemplate = jdbcTemplate; this.lWarehouseFlowService = lWarehouseFlowService; this.baseGoodsTemplateService = baseGoodsTemplateService; this.lWhGoodsService = lWhGoodsService; - this.lWhGoodsRecordService = lWhGoodsRecordService; - this.simpleJdbcCall = new SimpleJdbcCall(jdbcTemplate).withProcedureName("InsertL_WH_GOODS"); + this.lWhGoodsRecordServiceImpl = lWhGoodsRecordServiceImpl; } /** @@ -69,8 +88,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) { @@ -100,7 +119,7 @@ String goodsUnit = (String) tempGoodsInfo.get("unit"); // 鎻掑叆 鍚勮鏍肩墿鍝佺殑杩涘嚭搴撹褰� L_WH_GOODS_RECORD - long whGoodsRecordId = NumberGenerator.getLongSequenceNumberNano(); + long whGoodsRecordId = IdUtil.generateId(); LWhGoodsRecord whGoodsRecord = new LWhGoodsRecord(); whGoodsRecord.setId(whGoodsRecordId); whGoodsRecord.setWarehouseId(warehouseId); @@ -118,26 +137,30 @@ 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); + lWhGoodsRecordServiceImpl.insert(whGoodsRecord); }); return 1; @@ -145,9 +168,7 @@ /** - * 鍚屾牱瑙勬牸鐨勭墿鍝� 鎻掑叆澶氭锛� - * 鍚屾椂灏嗕富閿褰曞湪 杩涘嚭搴撴祦姘存槑缁嗐�怢_WH_GOODS_RECORD_DETAILS銆�, - * 鏇存柊 鐗╁搧浠撳簱淇濈璁板綍銆怢_GOODS_WH_RECORD銆� + * 鍚屾牱瑙勬牸鐨勭墿鍝� 鎻掑叆澶氭锛� 鍚屾椂灏嗕富閿褰曞湪 杩涘嚭搴撴祦姘存槑缁嗐�怢_WH_GOODS_RECORD_DETAILS銆�, 鏇存柊 鐗╁搧浠撳簱淇濈璁板綍銆怢_GOODS_WH_RECORD銆� * * @param pWarehouseId 浠撳簱id * @param pWarehouseName 浠撳簱鍚嶇О @@ -164,7 +185,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