From 717ff115ee5c57c8df0fd491b40b848090d2c68e Mon Sep 17 00:00:00 2001 From: cy <1664593601@qq.com> Date: 星期一, 20 十一月 2023 14:48:53 +0800 Subject: [PATCH] feat: 台账库存查询、导出 --- consum-base/src/main/java/com/consum/base/service/LWarehouseFlowCoreService.java | 117 +++++++++++++++++++++++++--------------------------------- 1 files changed, 51 insertions(+), 66 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 a45460e..5f65e91 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,9 +1,16 @@ package com.consum.base.service; -import com.consum.base.core.util.LockManage; -import com.consum.model.po.*; +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 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; @@ -12,13 +19,8 @@ import org.springframework.jdbc.core.simple.SimpleJdbcCall; import org.springframework.stereotype.Service; -import java.util.List; -import java.util.Map; -import java.util.stream.Collectors; - /** * @ClassName LWarehouseFlowService - * @Author cy * @Date 2023/10/24 * @Description * @Version 1.0 @@ -32,17 +34,14 @@ private LWarehouseFlowService lWarehouseFlowService; private LWhGoodsService lWhGoodsService; private LWhGoodsRecordService lWhGoodsRecordService; - private LWhFormTransferService lWhFormTransferService; - private LWhFormOutputCoreService lWhFormOutputCoreService; private BaseGoodsTemplateServiceImpl baseGoodsTemplateService; @Autowired - public LWarehouseFlowCoreService(JdbcTemplate jdbcTemplate, LWarehouseFlowService lWarehouseFlowService, LWhGoodsService lWhGoodsService, LWhFormTransferService lWhFormTransferService, LWhFormOutputCoreService lWhFormOutputCoreService, 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.lWhFormTransferService = lWhFormTransferService; - this.lWhFormOutputCoreService = lWhFormOutputCoreService; this.lWhGoodsService = lWhGoodsService; this.lWhGoodsRecordService = lWhGoodsRecordService; this.simpleJdbcCall = new SimpleJdbcCall(jdbcTemplate).withProcedureName("InsertL_WH_GOODS"); @@ -83,11 +82,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); @@ -122,24 +121,27 @@ 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(); - sameGoodsInsertMore(warehouseFlowId, warehouseId, whGoodsRecordId, (short) 1, warehouseName, - classification, tempGoodsId, goodsName, baseGoodsModelsId, modelName, - supplier, buyType, goodsUnit, price, procureTime, 1, dealTime, counts); - }); + 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); }); @@ -147,10 +149,9 @@ return 1; } + /** - * 鍚屾牱瑙勬牸鐨勭墿鍝� 鎻掑叆澶氭锛� - * 鍚屾椂灏嗕富閿褰曞湪 杩涘嚭搴撴祦姘存槑缁嗐�怢_WH_GOODS_RECORD_DETAILS銆�, - * 鏇存柊 鐗╁搧浠撳簱淇濈璁板綍銆怢_GOODS_WH_RECORD銆� + * 鍚屾牱瑙勬牸鐨勭墿鍝� 鎻掑叆澶氭锛� 鍚屾椂灏嗕富閿褰曞湪 杩涘嚭搴撴祦姘存槑缁嗐�怢_WH_GOODS_RECORD_DETAILS銆�, 鏇存柊 鐗╁搧浠撳簱淇濈璁板綍銆怢_GOODS_WH_RECORD銆� * * @param pWarehouseId 浠撳簱id * @param pWarehouseName 浠撳簱鍚嶇О @@ -167,50 +168,34 @@ * @param pStates 鐘舵�� * @param pTimes 鎻掑叆鏉℃暟 */ - public void sameGoodsInsertMore(long pWarehouseFlowId, 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) { + 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_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); } - /** - * 璋冩嫧鍑哄簱 - * - * @param outWarehouseId 鍑哄簱鍗� - * @return - */ - public int outInsertWareFlow(Long outWarehouseId) { - // 鍑哄簱鏃跺�欙紝鎸� 鍏堝叆搴撶殑鍏堝嚭搴擄紝鍚屾椂鍏ュ簱鐨勶紝鎸変环鏍奸珮鐨勫厛鍑哄簱 -// List<Long> outGoodsId = lWhGoodsService.queryOutGoodsId(outWarehouseId, baseGoodsModelsId, queryModelStatus, buyType, goodsModelNum); - // 淇敼鐗╁搧鐨勭姸鎬佷负 鐘舵�侊紙0=鍦ㄩ�旇皟鎷紱1=鍏ュ簱鏈垎鍙戯紱2=宸蹭笅鍙戯紱3=鎶ュ簾锛� - // 淇敼 鎵�灞炰粨搴撲粨搴撶紪鍙稺AREHOUSE_ID銆佷粨搴撳悕绉癢AREHOUSE_NAME锛屾鏃朵笉瑕佸悓姝ヨ繘 鐗╁搧浠撳簱淇濈璁板綍銆怢_GOODS_WH_RECORD銆戯紒鍏ュ簱鏃跺啀鍚屾 - - - // 鏂板璁板綍 杩涘嚭搴撴祦姘存�昏〃[L_WAREHOUSE_FLOW] 鍚勮鏍肩墿鍝佺殑杩涘嚭搴撱�怢_WH_GOODS_RECORD銆戣繘鍑哄簱娴佹按鏄庣粏[L_WH_GOODS_RECORD_DETAILS] - - - return 0; - } } -- Gitblit v1.9.1