From b268fd73f060108b8214ed1afcbbf03480435f3a Mon Sep 17 00:00:00 2001 From: futian.liu <liufutianyoo@163.com> Date: 星期五, 15 十二月 2023 17:27:41 +0800 Subject: [PATCH] 1.出库手续回显 2.调拨申请时库存查询更换接口 3.调拨出库时从已有物品所在的仓库中选择 --- consum-base/src/main/java/com/consum/base/service/LWarehouseFlowCoreService.java | 135 +++++++++++++++++++++----------------------- 1 files changed, 64 insertions(+), 71 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 74df6dc..f0777aa 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,7 @@ package com.consum.base.service; +import java.util.ArrayList; +import java.util.Arrays; import java.util.List; import java.util.Map; import java.util.stream.Collectors; @@ -50,12 +52,14 @@ @PostConstruct public void init() { - this.simpleJdbcCall = new SimpleJdbcCall(jdbcTemplate).withCatalogName(dataBaseName).withProcedureName("InsertL_WH_GOODS"); + this.simpleJdbcCall = + new SimpleJdbcCall(jdbcTemplate).withCatalogName(dataBaseName).withProcedureName("InsertL_WH_GOODS"); } @Autowired - public LWarehouseFlowCoreService(JdbcTemplate jdbcTemplate, LWarehouseFlowService lWarehouseFlowService, LWhGoodsService lWhGoodsService, - BaseGoodsTemplateService baseGoodsTemplateService, LWhGoodsRecordService lWhGoodsRecordServiceImpl) { + public LWarehouseFlowCoreService(JdbcTemplate jdbcTemplate, LWarehouseFlowService lWarehouseFlowService, + LWhGoodsService lWhGoodsService, BaseGoodsTemplateService baseGoodsTemplateService, + LWhGoodsRecordService lWhGoodsRecordServiceImpl) { this.jdbcTemplate = jdbcTemplate; this.lWarehouseFlowService = lWarehouseFlowService; this.baseGoodsTemplateService = baseGoodsTemplateService; @@ -70,7 +74,8 @@ * @param warehouseFlow * @return */ - public int buyInsertWareFlow(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; @@ -85,9 +90,9 @@ Long dealTime = warehouseFlow.getDealTime(); BaseWarehouse baseWarehouses = lWarehouseFlowService.get(new BaseWarehouse(warehouseId)); String warehouseName = baseWarehouses.getWarehouseName(); - //閲囪喘鏂瑰紡锛�1锛氶泦閲囷紱2=鑷噰锛� + // 閲囪喘鏂瑰紡锛�1锛氶泦閲囷紱2=鑷噰锛� short buyType = lWhFormProcure.getBuyType().shortValue(); - //閲囪喘鏃堕棿 + // 閲囪喘鏃堕棿 Long procureTime2 = lWhFormProcure.getProcureTime(); Long procureTime = procureTime2 == null ? dealTime : procureTime2; // 鎻掑叆娴佹按鎬昏〃 @@ -96,27 +101,26 @@ return 0; } - //缁熻鍚勫瀷鍙锋暟閲� - Map<Long, Integer> countsSumByBaseGoodsModelsId = goodsModelNumList.stream() - .collect(Collectors.groupingBy(LWhProcureModel::getBaseGoodsModelsId, - Collectors.summingInt(LWhProcureModel::getCounts))); + // 缁熻鍚勫瀷鍙锋暟閲� + Map<Long, Integer> countsSumByBaseGoodsModelsId = goodsModelNumList.stream().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); - //浠峰�肩被鍨� - String classificationObj = (String) tempGoodsInfo.get("classification"); + // 浠峰�肩被鍨� + String classificationObj = (String)tempGoodsInfo.get("classification"); Short classificationT = 3; if (classificationObj != null) { - classificationT = (short) ((classificationObj).charAt(0) - 64); + classificationT = (short)((classificationObj).charAt(0) - 64); } short classification = classificationT; - Long tempGoodsId = (Long) tempGoodsInfo.get("goodsid"); - String goodsName = (String) tempGoodsInfo.get("goodsname"); - String modelName = (String) tempGoodsInfo.get("modelname"); - String goodsUnit = (String) tempGoodsInfo.get("unit"); + Long tempGoodsId = (Long)tempGoodsInfo.get("goodsid"); + String goodsName = (String)tempGoodsInfo.get("goodsname"); + String modelName = (String)tempGoodsInfo.get("modelname"); + String goodsUnit = (String)tempGoodsInfo.get("unit"); // 鎻掑叆 鍚勮鏍肩墿鍝佺殑杩涘嚭搴撹褰� L_WH_GOODS_RECORD long whGoodsRecordId = IdUtil.generateId(); @@ -130,34 +134,35 @@ whGoodsRecord.setBaseGoodsModelsId(baseGoodsModelsId); whGoodsRecord.setBaseGoodsModelsName(modelName); whGoodsRecord.setDealTime(dealTime); - //鏈璋冩暣绫诲瀷 1=璋冨锛�2=璋冨噺 + // 鏈璋冩暣绫诲瀷 1=璋冨锛�2=璋冨噺 whGoodsRecord.setThisType(1); - //閫氳繃LockManage鑾峰緱閿� + // 閫氳繃LockManage鑾峰緱閿� Object warehouseModelLockObj = LockManage.acquireLock(warehouseType, warehouseId, baseGoodsModelsId); synchronized (warehouseModelLockObj) { // 鑾峰緱閿佸悗鏌ヨ璇ュ瀷鍙风殑鏈熷垵鏁伴噺 - int goodsModelNum = lWhGoodsService.queryGoodsModelNum(warehouseType, warehouseId, baseGoodsModelsId, 1, null); + List<Long> warehouseIds = new ArrayList<>(Arrays.asList(warehouseId)); + int goodsModelNum = + lWhGoodsService.queryGoodsModelNum(warehouseType, warehouseIds, baseGoodsModelsId, 1, null); whGoodsRecord.setInitialCount(goodsModelNum); whGoodsRecord.setThisCount(modelCount); whGoodsRecord.setEndCount(goodsModelNum + modelCount); long totalPrice = 0; - //灏嗗悓鍨嬪彿鐨勭墿鍝佹彃鍏� 搴撳瓨鐗╁搧璇︽儏 + // 灏嗗悓鍨嬪彿鐨勭墿鍝佹彃鍏� 搴撳瓨鐗╁搧璇︽儏 List<LWhProcureModel> lWhProcureModels = sameModelList.get(baseGoodsModelsId); 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); - } - ; + sameGoodsInsertMore(warehouseFlowId, warehouseType, warehouseId, whGoodsRecordId, (short)1, + warehouseName, classification, tempGoodsId, goodsName, baseGoodsModelsId, modelName, supplier, + buyType, goodsUnit, price, procureTime, 1, dealTime, counts); + } ; whGoodsRecord.setTotalPrice(totalPrice); } lWhGoodsRecordServiceImpl.insert(whGoodsRecord); @@ -166,51 +171,39 @@ return 1; } - /** * 鍚屾牱瑙勬牸鐨勭墿鍝� 鎻掑叆澶氭锛� 鍚屾椂灏嗕富閿褰曞湪 杩涘嚭搴撴祦姘存槑缁嗐�怢_WH_GOODS_RECORD_DETAILS銆�, 鏇存柊 鐗╁搧浠撳簱淇濈璁板綍銆怢_GOODS_WH_RECORD銆� * - * @param pWarehouseId 浠撳簱id - * @param pWarehouseName 浠撳簱鍚嶇О - * @param pCostType 鐗╁搧浠峰�肩被鍨� + * @param pWarehouseId 浠撳簱id + * @param pWarehouseName 浠撳簱鍚嶇О + * @param pCostType 鐗╁搧浠峰�肩被鍨� * @param pBaseGoodsTemplateId 鐗╁搧妯℃澘ID - * @param pGoodsTemplateName 鐗╁搧妯℃澘鍚嶇О - * @param pBaseGoodsModelsId 鐗╁搧鍨嬪彿ID + * @param pGoodsTemplateName 鐗╁搧妯℃澘鍚嶇О + * @param pBaseGoodsModelsId 鐗╁搧鍨嬪彿ID * @param pBaseGoodsModelsName 鐗╁搧鍨嬪彿鍚嶇О - * @param pUnit 鐗╁搧鍗曚綅 - * @param pSupplier 鐗╁搧渚涘簲鍟� - * @param pBuyType 鐗╁搧璐拱绫诲瀷 - * @param pPrice 鐗╁搧浠锋牸 - * @param pProcureDate 閲囪喘鏃ユ湡 - * @param pStates 鐘舵�� - * @param pTimes 鎻掑叆鏉℃暟 + * @param pUnit 鐗╁搧鍗曚綅 + * @param pSupplier 鐗╁搧渚涘簲鍟� + * @param pBuyType 鐗╁搧璐拱绫诲瀷 + * @param pPrice 鐗╁搧浠锋牸 + * @param pProcureDate 閲囪喘鏃ユ湡 + * @param pStates 鐘舵�� + * @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) { - 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); + 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) + .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