From 25b639f34bd7e80a69cdb5b46b2d082c1590d033 Mon Sep 17 00:00:00 2001 From: cy <1664593601@qq.com> Date: 星期五, 08 十二月 2023 13:13:04 +0800 Subject: [PATCH] feat: 部门管理-新增报错 Closes #12537 --- consum-base/src/main/java/com/consum/base/service/LWarehouseFlowCoreService.java | 119 ++++++++++++++++++++++++++++++++++------------------------- 1 files changed, 68 insertions(+), 51 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 5f65e91..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,5 +1,22 @@ package com.consum.base.service; +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 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; @@ -7,17 +24,8 @@ 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; -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; /** * @ClassName LWarehouseFlowService @@ -27,24 +35,32 @@ **/ @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) { + 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; } /** @@ -72,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) { @@ -82,11 +98,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); @@ -103,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); @@ -136,14 +152,15 @@ Long price = item.getPrice(); //鐗╁搧涓暟 Integer counts = item.getCounts(); - totalPrice = totalPrice + counts*price; + 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); - }; + classification, tempGoodsId, goodsName, baseGoodsModelsId, modelName, + supplier, buyType, goodsUnit, price, procureTime, 1, dealTime, counts); + } + ; whGoodsRecord.setTotalPrice(totalPrice); } - lWhGoodsRecordService.insert(whGoodsRecord); + lWhGoodsRecordServiceImpl.insert(whGoodsRecord); }); return 1; @@ -169,31 +186,31 @@ * @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) { + 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); + .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