consum-base/src/main/java/com/consum/base/core/service/LWhWarningCoreServiceImpl.java
@@ -15,6 +15,7 @@ import java.util.ArrayList; import java.util.List; import java.util.Map; import java.util.stream.Collectors; /** @@ -45,6 +46,7 @@ if (baseModelIdList == null) { baseModelIdList = new ArrayList<>(); } sysInfo = sysInfo == null ? new FinSysTenantUser() : sysInfo; // 获取到达到阈值的物品 List<Map<String, Object>> kuCunNotifyList = lWhWarningService.checkKuCun(warehouseType, warehouseId, baseModelIdList); // @@ -53,6 +55,11 @@ kuCunNormalModel(warehouseType, warehouseId, baseModelIdList); return; } List<Long> allChangModelList = baseModelIdList.stream() .distinct() .collect(Collectors.toList()); baseModelIdList = allChangModelList; // 将数据插入库存预警【WH_WARNING】 BaseWarehouse baseWarehouses = baseWarehouseService.get(new BaseWarehouse(warehouseId)); @@ -105,8 +112,15 @@ private String KU_CUN_NORMAL_MODEL = "update WH_WARNING set STATES=2 where WAREHOUSE_TYPE=? and BASE_WAREHOUSE_ID=?"; private int kuCunNormalModel(Short warehouseType, Long warehouseId, List<Long> baseModelIdList) { if (CollectionUtils.isEmpty(baseModelIdList)) { /** * * @param warehouseType * @param warehouseId * @param normalBaseModelIdList 库存正常的 * @return */ private int kuCunNormalModel(Short warehouseType, Long warehouseId, List<Long> normalBaseModelIdList) { if (CollectionUtils.isEmpty(normalBaseModelIdList)) { return 1; } ArrayList<Object> params = new ArrayList<>(); @@ -114,9 +128,9 @@ params.add(warehouseId); StringBuilder sql = new StringBuilder(KU_CUN_NORMAL_MODEL); if (!org.springframework.util.CollectionUtils.isEmpty(baseModelIdList)) { if (!org.springframework.util.CollectionUtils.isEmpty(normalBaseModelIdList)) { sql.append(" and BASE_GOODS_MODELS_ID in(?)"); params.add(baseModelIdList); params.add(org.apache.commons.lang3.StringUtils.join(normalBaseModelIdList, ",")); } return lWhWarningService.update(sql.toString(), params.toArray()); } consum-base/src/main/java/com/consum/base/service/LWhFormOutputCoreService.java
@@ -1,25 +1,25 @@ package com.consum.base.service; import cn.hutool.core.convert.Convert; import com.consum.base.core.CodeGeneratorEnum; import com.consum.base.core.CodeGeneratorService; import com.consum.base.core.WhBusinessEnum; import com.consum.base.core.param.BaseWarehouseParam1; import com.consum.base.core.service.LWhWarningCoreServiceImpl; import com.consum.base.core.utils.LockManage; import com.consum.model.po.LWarehouseFlow; import com.consum.model.po.LWhFormOutput; import com.consum.model.po.LWhFormTransfer; import com.consum.model.po.LWhGoodsRecord; import com.consum.model.po.LWhProcureModel; import com.consum.model.po.*; import com.iplatform.model.po.S_user_core; import com.walker.infrastructure.utils.CollectionUtils; import com.walker.infrastructure.utils.NumberGenerator; import java.util.List; import java.util.Map; import lombok.extern.slf4j.Slf4j; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; import org.springframework.transaction.interceptor.TransactionAspectSupport; import java.util.ArrayList; import java.util.List; import java.util.Map; /** * @ClassName WhFormOutputCoreService @@ -37,19 +37,21 @@ private CodeGeneratorService codeGeneratorService; private LWhProcureModelService lWhProcureModelService; private LWhFormOutputService lWhFormOutputService; private LWhWarningCoreServiceImpl lWhWarningCoreService; private LWarehouseFlowService lWarehouseFlowService; private LWhGoodsRecordDetailsService lWhGoodsRecordDetailsService; private LWhGoodsRecordService lWhGoodsRecordService; @Autowired public LWhFormOutputCoreService(BaseGoodsTemplateServiceImpl baseGoodsTemplateService, LWhGoodsService lWhGoodsService, CodeGeneratorService codeGeneratorService, LWhProcureModelService lWhProcureModelService, LWhFormOutputService lWhFormOutputService, LWarehouseFlowService lWarehouseFlowService, LWhGoodsRecordDetailsService lWhGoodsRecordDetailsService, LWhGoodsRecordService lWhGoodsRecordService) { LWhGoodsService lWhGoodsService, CodeGeneratorService codeGeneratorService, LWhProcureModelService lWhProcureModelService, LWhFormOutputService lWhFormOutputService, LWarehouseFlowService lWarehouseFlowService, LWhGoodsRecordDetailsService lWhGoodsRecordDetailsService, LWhGoodsRecordService lWhGoodsRecordService, LWhWarningCoreServiceImpl lWhWarningCoreService) { this.baseGoodsTemplateService = baseGoodsTemplateService; this.lWhGoodsService = lWhGoodsService; this.codeGeneratorService = codeGeneratorService; @@ -58,6 +60,7 @@ this.lWarehouseFlowService = lWarehouseFlowService; this.lWhGoodsRecordDetailsService = lWhGoodsRecordDetailsService; this.lWhGoodsRecordService = lWhGoodsRecordService; this.lWhWarningCoreService = lWhWarningCoreService; } @@ -206,9 +209,11 @@ Integer buyType = buyTypeT; Integer modGoodsTransferingStatus = modGoodsTransferingStatusT; ArrayList<Long> allChangModelList = new ArrayList<>(); goodsModelNumList.forEach(itemModelInfo -> { // 需要调拨的物品的某个型号 Long baseGoodsModelsId = itemModelInfo.getBaseGoodsModelsId(); allChangModelList.add(baseGoodsModelsId); // 需要调拨的物品某个型号的数量 Integer counts = itemModelInfo.getCounts(); @@ -258,7 +263,7 @@ //出库时候,按 先入库的先出库,同时入库的,按价格高的先出库 outGoodsId = lWhGoodsService.queryOutGoodsId(outWarehouseType, outWarehouseId, baseGoodsModelsId, queryModelStatus, buyType, counts); counts); lWhGoodsService.modGoodsTransfering(outGoodsId, inWarehouseType, inWarehouseId, inWarehouseName, modGoodsTransferingStatus); // 批量插入 进出库流水明细[L_WH_GOODS_RECORD_DETAILS] lWhGoodsRecordDetailsService.sameGoodsInsertMore(outGoodsId, whGoodsRecordId, (short) 0); @@ -292,6 +297,8 @@ lWhFormOutput.setWarehouseFlowId(lWarehouseFlowId); lWhFormOutputService.update(lWhFormOutput); //当库存变动时调用该方法 lWhWarningCoreService.updateKuCun(Convert.toShort(outWarehouseType, (short) 0), outWarehouseId, allChangModelList, null, dealTime); return lWarehouseFlowId; } consum-base/src/main/java/com/consum/base/service/LWhFormProcureCoreService.java
@@ -1,6 +1,7 @@ package com.consum.base.service; import com.consum.base.core.WhBusinessEnum; import com.consum.base.core.service.LWhWarningCoreServiceImpl; import com.consum.model.po.LWarehouseFlow; import com.consum.model.po.LWhFormProcure; import com.consum.model.po.LWhProcureModel; @@ -13,10 +14,10 @@ import javax.annotation.Resource; import java.util.List; import java.util.stream.Collectors; /** * @ClassName LWhFormProcureCoreService * @Date 2023/10/26 * @Description * @Version 1.0 @@ -29,6 +30,9 @@ @Resource private LWhFormProcureService lWhFormProcureService; @Resource private LWhWarningCoreServiceImpl lWhWarningCoreService; @Resource private LWarehouseFlowCoreService lWarehouseFlowService; @@ -56,11 +60,12 @@ List<LWhProcureModel> goodsModelNum = lWhProcureModelService.getModelByForm(WhBusinessEnum.CAIGOU, whFormProcureId); // 流水记录总表ID Long warehouseId = lWhFormProcure.getWarehouseId(); long lWarehouseFlowId = NumberGenerator.getLongSequenceNumberNano(); LWarehouseFlow warehouseFlow = new LWarehouseFlow(); warehouseFlow.setId(lWarehouseFlowId); warehouseFlow.setWarehouseType(0); warehouseFlow.setWarehouseId(lWhFormProcure.getWarehouseId()); warehouseFlow.setWarehouseId(warehouseId); warehouseFlow.setWarehouseName(lWhFormProcure.getWarehouseName()); warehouseFlow.setThisType(1); warehouseFlow.setBusinessType(WhBusinessEnum.CAIGOU.getValue() + 0); @@ -79,8 +84,18 @@ whFormProcure.setIncomeTime(dealTime); lWhFormProcureService.update(whFormProcure); } // 提取baseGoodsModelsId并放入新的List中 List<Long> allChangModelList = goodsModelNum.stream() .map(LWhProcureModel::getBaseGoodsModelsId) .distinct() .collect(Collectors.toList()); //当库存变动时调用该方法 lWhWarningCoreService.updateKuCun((short) 0, warehouseId, allChangModelList, null, dealTime); log.info("入库单:{} 入库完成", whFormProcureId); return null; } } consum-base/src/main/java/com/consum/base/service/LWhFormScrappedCoreService.java
@@ -1,6 +1,8 @@ package com.consum.base.service; import cn.hutool.core.convert.Convert; import com.consum.base.core.WhBusinessEnum; import com.consum.base.core.service.LWhWarningCoreServiceImpl; import com.consum.base.core.utils.LockManage; import com.consum.model.po.LWarehouseFlow; import com.consum.model.po.LWhFormScrapped; @@ -9,14 +11,16 @@ import com.iplatform.model.po.S_user_core; 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.stereotype.Service; import org.springframework.transaction.annotation.Transactional; import org.springframework.transaction.interceptor.TransactionAspectSupport; import java.util.ArrayList; import java.util.List; import java.util.Map; import java.util.stream.Collectors; /** * @ClassName LWhFormScrappedCoreService @@ -35,15 +39,17 @@ private LWhGoodsRecordDetailsService lWhGoodsRecordDetailsService; private LWhGoodsRecordService lWhGoodsRecordService; private LWarehouseFlowService lWarehouseFlowService; private LWhWarningCoreServiceImpl lWhWarningCoreService; @Autowired public LWhFormScrappedCoreService(GoodsBaseServiceImpl goodsBaseService, LWhFormScrappedGoodsService lWhFormScrappedGoodsService, BaseGoodsTemplateServiceImpl baseGoodsTemplateService, LWhGoodsService lWhGoodsService, LWhGoodsRecordDetailsService lWhGoodsRecordDetailsService, LWhGoodsRecordService lWhGoodsRecordService, LWarehouseFlowService lWarehouseFlowService) { LWhFormScrappedGoodsService lWhFormScrappedGoodsService, BaseGoodsTemplateServiceImpl baseGoodsTemplateService, LWhGoodsService lWhGoodsService, LWhGoodsRecordDetailsService lWhGoodsRecordDetailsService, LWhGoodsRecordService lWhGoodsRecordService, LWarehouseFlowService lWarehouseFlowService, LWhWarningCoreServiceImpl lWhWarningCoreService) { // this.lWhFormScrappedService = lWhFormScrappedService; this.lWhFormScrappedGoodsService = lWhFormScrappedGoodsService; this.baseGoodsTemplateService = baseGoodsTemplateService; @@ -52,6 +58,7 @@ this.lWhGoodsRecordService = lWhGoodsRecordService; this.lWarehouseFlowService = lWarehouseFlowService; this.goodsBaseService = goodsBaseService; this.lWhWarningCoreService = lWhWarningCoreService; } @@ -92,11 +99,14 @@ } // 按型号分组 ArrayList<Long> allChangModelList = new ArrayList<>(); Map<Long, List<LWhFormScrappedGoods>> modelGroup = formScrappedGoods.stream() .collect(Collectors.groupingBy(LWhFormScrappedGoods::getBaseGoodsModelsId)); .collect(Collectors.groupingBy(LWhFormScrappedGoods::getBaseGoodsModelsId)); for (Map.Entry<Long, List<LWhFormScrappedGoods>> entry : modelGroup.entrySet()) { //规格型号编号 Long baseGoodsModelsId = entry.getKey(); allChangModelList.add(baseGoodsModelsId); //对每组中要报废的数量求和 List<LWhFormScrappedGoods> modelGoodsList = entry.getValue(); //查询型号信息 @@ -140,7 +150,7 @@ String userName = formScrappedGood.getUserName(); // 根据分发单、规格型号编号、使用人员名称,进行报废 srappedGoodsIds = lWhGoodsService.queryScrappedGoodsIds(warehouseType, warehouseId, transBusinessId, userName, baseGoodsModelsId, (short) 2, counts); (short) 2, counts); } if (CollectionUtils.isEmpty(srappedGoodsIds) || srappedGoodsIds.size() < counts) { log.error("要报废的物品数量不足!"); @@ -191,6 +201,9 @@ lWhFormScrapped.setOperatorName(nickName); lWhFormScrapped.setDealTime(dealTime); goodsBaseService.update(lWhFormScrapped); //当库存变动时调用该方法 lWhWarningCoreService.updateKuCun(Convert.toShort(warehouseType,(short) 0), warehouseId, allChangModelList, null, dealTime); return lWarehouseFlowId; } consum-base/src/main/java/com/consum/base/service/LWhFormTransferCoreService.java
@@ -1,27 +1,25 @@ package com.consum.base.service; import cn.hutool.core.convert.Convert; import com.consum.base.core.WhBusinessEnum; import com.consum.base.core.service.LWhWarningCoreServiceImpl; import com.consum.base.core.utils.LockManage; import com.consum.model.po.LGoodsUserRecord; import com.consum.model.po.LWarehouseFlow; import com.consum.model.po.LWhFormTransfer; import com.consum.model.po.LWhGoodsRecord; import com.consum.model.po.LWhGoodsRecordDetails; import com.consum.model.po.LWhProcureModelUser; import com.consum.model.po.*; import com.iplatform.model.po.S_user_core; import com.walker.infrastructure.utils.CollectionUtils; import com.walker.infrastructure.utils.DateUtils; import com.walker.infrastructure.utils.NumberGenerator; import lombok.extern.slf4j.Slf4j; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; import org.springframework.transaction.interceptor.TransactionAspectSupport; import javax.annotation.Resource; import java.util.ArrayList; import java.util.HashMap; import java.util.List; import java.util.Map; import java.util.stream.Collectors; import javax.annotation.Resource; import lombok.extern.slf4j.Slf4j; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; import org.springframework.transaction.interceptor.TransactionAspectSupport; /** * @ClassName LWhFormTransferCoreService @@ -52,7 +50,8 @@ private LWhGoodsRecordDetailsService lWhGoodsRecordDetailsService; @Resource private LGoodsUserRecordServiceImpl lGoodsUserRecordService; @Resource private LWhWarningCoreServiceImpl lWhWarningCoreService; /** * 执行调拨出库操作 @@ -103,6 +102,7 @@ lWhFormTransfer.setOutputTime(dealTime); lWhFormTransfer.setOutWarehouseFlowId(lWarehouseFlowId); lWhFormTransferService.update(lWhFormTransfer); log.info("调拨单:{} 出库完成", whFormTransferId); return; @@ -163,12 +163,14 @@ inwarehouseFlow.setDealTime(dealTime); lWarehouseFlowService.insert(inwarehouseFlow); ArrayList<Long> allChangModelList = new ArrayList<>(); LWhGoodsRecord lWhGoodsRecord = new LWhGoodsRecord(); lWhGoodsRecord.setWarehouseFlowId(outWarehouseFlowId); List<LWhGoodsRecord> whGoodsRecordList = lWhGoodsRecordService.select(lWhGoodsRecord); for (LWhGoodsRecord whGoodsRecord : whGoodsRecordList) { Long oldRecordId = whGoodsRecord.getId(); Long baseGoodsModelsId = whGoodsRecord.getBaseGoodsModelsId(); allChangModelList.add(baseGoodsModelsId); whGoodsRecord.setId(NumberGenerator.getLongSequenceNumber()); whGoodsRecord.setWarehouseType(inWarehouseType); whGoodsRecord.setWarehouseId(inWarehouseId); @@ -180,7 +182,7 @@ List<Long> outGoodsIds = getGoodsidByFlowId(outWarehouseFlowId, oldRecordId); // 库存物品详情(L_WH_GOODS)中 状态设置为1 lWhGoodsService.modGoodsTransfering(outGoodsIds, inWarehouseType, inWarehouseId, inWarehouseName, goodsStatus); if (businessType == 1){ if (businessType == 1) { // 1部门分发 此时要往 物品使用记录【L_GOODS_USER_RECORD】添加数据 //查询部门分发使用人 LWhProcureModelUser lWhProcureModelUser = new LWhProcureModelUser(); @@ -257,6 +259,9 @@ lWhFormTransfer.setInOperatorName(nickName); lWhFormTransfer.setInTime(dealTime); lWhFormTransferService.update(lWhFormTransfer); //当库存变动时调用该方法 lWhWarningCoreService.updateKuCun(Convert.toShort(inWarehouseType, (short) 0), inWarehouseId, allChangModelList, null, dealTime); log.info("调拨单:{} 入库完成", whFormTransferId); return; } consum-base/src/main/java/com/consum/base/service/LWhWarningServiceImpl.java
@@ -68,7 +68,7 @@ paramts.put("costType", costType); } sql.append(" ORDER BY wareWarn.id DESC "); sql.append(" ORDER BY wareWarn.DEAL_TIME DESC "); return selectSplit(sql.toString(), paramts, param.getPageNum(), param.getPageSize(), new MapperUtil()); } @@ -87,7 +87,7 @@ private String CHECK_KUCUN_CONFIG_JOINTKUCUN = ") warnConf LEFT JOIN ("; private String CHECK_KUCUN_KUCUN_PREFIX = "SELECT WAREHOUSE_TYPE,WAREHOUSE_ID,BASE_GOODS_MODELS_ID,count(1) goods_Num FROM L_WH_GOODS"; private String CHECK_KUCUN_KUCUN_WHERE = " WHERE 1=1"; private String CHECK_KUCUN_KUCUN_WHERE = " WHERE 1=1 and STATES=1"; private String CHECK_KUCUN_KUCUN_END = " GROUP BY BASE_GOODS_MODELS_ID)"; private String CHECK_KUCUN_END = "goods ON goods.BASE_GOODS_MODELS_ID=warnConf.BASE_GOODS_MODELS_ID AND goods.WAREHOUSE_TYPE=warnConf.WAREHOUSE_TYPE AND goods.BASE_GOODS_MODELS_ID=warnConf.BASE_GOODS_MODELS_ID WHERE (warnConf.LOWER_LIMIT>=goods.goods_Num OR warnConf.UPPER_LIMIT<=goods.goods_Num)";