From 7261ee93908d61a2c714645f19501aee9a7aba7b Mon Sep 17 00:00:00 2001 From: futian.liu <liufutianyoo@163.com> Date: 星期五, 24 十一月 2023 17:35:51 +0800 Subject: [PATCH] --部门物品分发 --- consum-base/src/main/java/com/consum/base/service/LWhFormOutputCoreService.java | 55 +++++++++++++++++++++++++++++++++---------------------- 1 files changed, 33 insertions(+), 22 deletions(-) diff --git a/consum-base/src/main/java/com/consum/base/service/LWhFormOutputCoreService.java b/consum-base/src/main/java/com/consum/base/service/LWhFormOutputCoreService.java index 3e32a02..c74b9a0 100644 --- a/consum-base/src/main/java/com/consum/base/service/LWhFormOutputCoreService.java +++ b/consum-base/src/main/java/com/consum/base/service/LWhFormOutputCoreService.java @@ -4,19 +4,22 @@ import com.consum.base.core.CodeGeneratorService; import com.consum.base.core.WhBusinessEnum; import com.consum.base.core.param.BaseWarehouseParam1; -import com.consum.base.core.util.LockManage; -import com.consum.model.po.*; +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.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.List; -import java.util.Map; /** * @ClassName WhFormOutputCoreService @@ -40,13 +43,13 @@ @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) { this.baseGoodsTemplateService = baseGoodsTemplateService; this.lWhGoodsService = lWhGoodsService; this.codeGeneratorService = codeGeneratorService; @@ -121,6 +124,7 @@ whFormOutput.setOutputName("璋冩嫧鍑哄簱"); whFormOutput.setWarehouseId(outWarehouseId); whFormOutput.setWarehouseName(outWarehouseName); + // 杩欐牱灏辨煡璇笉鍒拌鏉¤褰� whFormOutput.setAgencyId(null); whFormOutput.setAgencyName(null); whFormOutput.setOperatorId(currentUser.getId()); @@ -145,7 +149,7 @@ * @return 娴佹按璁板綍鎬昏〃ID */ @Transactional(rollbackFor = Exception.class) - public Long outFormByTransId(Long outWarehouseFormId, S_user_core currentUser, Long dealTime) { + public Long outFormByTransId(Long outWarehouseFormId, WhBusinessEnum businessType, S_user_core currentUser, Long dealTime) { if (outWarehouseFormId == null) { return null; } @@ -178,10 +182,10 @@ long lWarehouseFlowBusinessId = outWarehouseFormId; // 鐗╁搧鐘舵�侊紙0=鍦ㄩ�旇皟鎷紱1=鍏ュ簱鏈垎鍙戯紱2=宸蹭笅鍙戯紱3=鎶ュ簾锛� - short queryModelStatusT = 1; + Integer queryModelStatusT = 1; //閲囪喘鏂瑰紡锛�1锛氶泦閲囷紱2=鑷噰锛� - Short buyTypeT = null; - Short modGoodsTransferingStatusT = null; + Integer buyTypeT = null; + Integer modGoodsTransferingStatusT = null; String outputCode = lWhFormOutput.getOutputCode(); if ((BaseWarehouseParam1.In_OutPutTypeEnum.Transfer_Output.getValue() + "").equals(outputCode)) { //璋冩嫧鍑哄簱 @@ -198,9 +202,9 @@ buyTypeT = null; modGoodsTransferingStatusT = 4; } - short queryModelStatus = queryModelStatusT; - Short buyType = buyTypeT; - Short modGoodsTransferingStatus = modGoodsTransferingStatusT; + Integer queryModelStatus = queryModelStatusT; + Integer buyType = buyTypeT; + Integer modGoodsTransferingStatus = modGoodsTransferingStatusT; goodsModelNumList.forEach(itemModelInfo -> { // 闇�瑕佽皟鎷ㄧ殑鐗╁搧鐨勬煇涓瀷鍙� @@ -239,6 +243,7 @@ //閫氳繃LockManage鑾峰緱閿� Object warehouseModelLockObj = LockManage.acquireLock(outWarehouseType, outWarehouseId, baseGoodsModelsId); + List<Long> outGoodsId = null; synchronized (warehouseModelLockObj) { // 鑾峰緱閿佸悗鏌ヨ璇ュ瀷鍙风殑鏈熷垵鏁伴噺 int goodsModelNum = lWhGoodsService.queryGoodsModelNum(outWarehouseType, outWarehouseId, baseGoodsModelsId, queryModelStatus, buyType); @@ -252,19 +257,25 @@ whGoodsRecord.setEndCount(goodsModelNum - counts); //鍑哄簱鏃跺�欙紝鎸� 鍏堝叆搴撶殑鍏堝嚭搴擄紝鍚屾椂鍏ュ簱鐨勶紝鎸変环鏍奸珮鐨勫厛鍑哄簱 - List<Long> outGoodsId = lWhGoodsService.queryOutGoodsId(outWarehouseType, outWarehouseId, baseGoodsModelsId, queryModelStatus, buyType, goodsModelNum); + outGoodsId = lWhGoodsService.queryOutGoodsId(outWarehouseType, outWarehouseId, baseGoodsModelsId, queryModelStatus, buyType, + counts); lWhGoodsService.modGoodsTransfering(outGoodsId, inWarehouseType, inWarehouseId, inWarehouseName, modGoodsTransferingStatus); // 鎵归噺鎻掑叆 杩涘嚭搴撴祦姘存槑缁哰L_WH_GOODS_RECORD_DETAILS] lWhGoodsRecordDetailsService.sameGoodsInsertMore(outGoodsId, whGoodsRecordId, (short) 0); - lWhGoodsRecordService.insert(whGoodsRecord); } + long totalAmount = lWhGoodsService.queryGoodsPriceById(outGoodsId); + LWhProcureModel lWhProcureModel = new LWhProcureModel(itemModelInfo.getId()); + whGoodsRecord.setTotalPrice(totalAmount); + lWhGoodsRecordService.insert(whGoodsRecord); + lWhProcureModel.setTotalAmount(totalAmount); + lWhProcureModelService.update(lWhProcureModel); }); LWarehouseFlow warehouseFlow = new LWarehouseFlow(); warehouseFlow.setId(lWarehouseFlowId); warehouseFlow.setWarehouseId(outWarehouseId); warehouseFlow.setWarehouseName(warehouseName); warehouseFlow.setThisType(2); - warehouseFlow.setBusinessType(WhBusinessEnum.DIAOBO.getValue() + 0); + warehouseFlow.setBusinessType(businessType.getValue() + 0); warehouseFlow.setBusinessFormId(lWarehouseFlowBusinessId); warehouseFlow.setOperatorId(userId); -- Gitblit v1.9.1