From d8fb6d11aa24b77b8bbcc5740140d31f5692837d Mon Sep 17 00:00:00 2001 From: cy <1664593601@qq.com> Date: 星期四, 16 十一月 2023 16:11:05 +0800 Subject: [PATCH] feat: 调拨调整 --- consum-base/src/main/java/com/consum/base/service/LWarehouseFlowCoreService.java | 30 ++++++++++++++++++++---------- 1 files changed, 20 insertions(+), 10 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 720aa82..a44e229 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,6 +1,6 @@ package com.consum.base.service; -import com.consum.base.core.util.LockManage; +import com.consum.base.core.utils.LockManage; import com.consum.model.po.*; import com.walker.infrastructure.utils.CollectionUtils; import com.walker.infrastructure.utils.NumberGenerator; @@ -18,7 +18,7 @@ /** * @ClassName LWarehouseFlowService - * @Author cy + * @Date 2023/10/24 * @Description * @Version 1.0 @@ -31,14 +31,16 @@ private SimpleJdbcCall simpleJdbcCall; private LWarehouseFlowService lWarehouseFlowService; private LWhGoodsService lWhGoodsService; + private LWhGoodsRecordService lWhGoodsRecordService; private BaseGoodsTemplateServiceImpl baseGoodsTemplateService; @Autowired - public LWarehouseFlowCoreService(JdbcTemplate jdbcTemplate, LWarehouseFlowService lWarehouseFlowService, LWhGoodsService lWhGoodsService, BaseGoodsTemplateServiceImpl baseGoodsTemplateService) { + 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"); } @@ -49,7 +51,7 @@ * @param warehouseFlow * @return */ - public int insertWareFlow(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; @@ -59,6 +61,7 @@ } // 鏌ヨ浠撳簱淇℃伅 Long warehouseFlowId = warehouseFlow.getId(); + Integer warehouseType = warehouseFlow.getWarehouseType(); Long warehouseId = warehouseFlow.getWarehouseId(); Long dealTime = warehouseFlow.getDealTime(); BaseWarehouse baseWarehouses = lWarehouseFlowService.get(new BaseWarehouse(warehouseId)); @@ -112,32 +115,37 @@ whGoodsRecord.setThisType(1); //閫氳繃LockManage鑾峰緱閿� - Object warehouseModelLockObj = LockManage.acquireLock(warehouseId, baseGoodsModelsId); + Object warehouseModelLockObj = LockManage.acquireLock(warehouseType, warehouseId, baseGoodsModelsId); synchronized (warehouseModelLockObj) { // 鑾峰緱閿佸悗鏌ヨ璇ュ瀷鍙风殑鏈熷垵鏁伴噺 - int goodsModelNum = lWhGoodsService.queryGoodsModelNum(warehouseId, baseGoodsModelsId, (short) 1); + int goodsModelNum = lWhGoodsService.queryGoodsModelNum(warehouseType, warehouseId, baseGoodsModelsId, (short) 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(); - sameGoodsInsertMore(warehouseFlowId, warehouseId, whGoodsRecordId, (short) 1, warehouseName, + 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); }); return 1; } + /** * 鍚屾牱瑙勬牸鐨勭墿鍝� 鎻掑叆澶氭锛� @@ -159,13 +167,14 @@ * @param pStates 鐘舵�� * @param pTimes 鎻掑叆鏉℃暟 */ - public void sameGoodsInsertMore(long pWarehouseFlowId, 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, 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) @@ -186,4 +195,5 @@ Map<String, Object> out = simpleJdbcCall.execute(in); System.out.println("Procedure result: " + out); } + } -- Gitblit v1.9.1