diff --git a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/convert/issueRecord/IssueRecordDetailConvert.java b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/convert/issueRecord/IssueRecordDetailConvert.java index 1845cd4d..762f9f89 100644 --- a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/convert/issueRecord/IssueRecordDetailConvert.java +++ b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/convert/issueRecord/IssueRecordDetailConvert.java @@ -9,6 +9,7 @@ import com.win.module.wms.controller.issueRecord.vo.IssueRecordDetailExcelVO; import com.win.module.wms.controller.issueRecord.vo.IssueRecordDetailRespVO; import com.win.module.wms.controller.issueRecord.vo.IssueRecordDetailUpdateReqVO; import com.win.module.wms.controller.repleinshRecord.vo.RepleinshRecordDetailCreateReqVO; +import com.win.module.wms.dal.dataobject.issueRequest.IssueRequestDetailDO; import com.win.module.wms.dal.dataobject.repleinshRecord.RepleinshRecordDetailDO; import org.mapstruct.Mapper; import org.mapstruct.factory.Mappers; @@ -38,4 +39,5 @@ public interface IssueRecordDetailConvert { List convertList03(List list); + List convert(List detailDOList); } diff --git a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/convert/issueRecord/IssueRecordMainConvert.java b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/convert/issueRecord/IssueRecordMainConvert.java index 169dcfeb..db0f306c 100644 --- a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/convert/issueRecord/IssueRecordMainConvert.java +++ b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/convert/issueRecord/IssueRecordMainConvert.java @@ -10,6 +10,7 @@ import com.win.module.wms.controller.issueRecord.vo.IssueRecordMainRespVO; import com.win.module.wms.controller.issueRecord.vo.IssueRecordMainUpdateReqVO; import com.win.module.wms.controller.purchasereceiptJob.vo.PurchasereceiptJobMainExcelVO; import com.win.module.wms.dal.dataobject.issueRecord.IssueRecordDetailDO; +import com.win.module.wms.dal.dataobject.issueRequest.IssueRequestMainDO; import com.win.module.wms.dal.dataobject.purchasereceiptJob.PurchasereceiptJobDetailDO; import com.win.module.wms.dal.dataobject.purchasereceiptJob.PurchasereceiptJobMainDO; import org.mapstruct.Mapper; @@ -50,4 +51,5 @@ public interface IssueRecordMainConvert { }) IssueRecordMainExcelVO convert(IssueRecordMainDO mainDO, IssueRecordDetailDO detailDO); + IssueRecordMainCreateReqVO convert(IssueRequestMainDO mainDO); } diff --git a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/convert/issueRequest/IssueRequestMainConvert.java b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/convert/issueRequest/IssueRequestMainConvert.java index 53387513..57a92b69 100644 --- a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/convert/issueRequest/IssueRequestMainConvert.java +++ b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/convert/issueRequest/IssueRequestMainConvert.java @@ -58,4 +58,5 @@ public interface IssueRequestMainConvert { @Mapping(source = "detailDO.remark", target = "remarkDetail"), }) IssueRequestMainExcelVO convert(IssueRequestMainDO mainDO, IssueRequestDetailDO detailDO); + } diff --git a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/convert/productdismantleRequest/ProductdismantleRequestMainConvert.java b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/convert/productdismantleRequest/ProductdismantleRequestMainConvert.java index 9a0dfa44..a14f5ddc 100644 --- a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/convert/productdismantleRequest/ProductdismantleRequestMainConvert.java +++ b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/convert/productdismantleRequest/ProductdismantleRequestMainConvert.java @@ -45,4 +45,6 @@ public interface ProductdismantleRequestMainConvert { @Mapping(source = "mainDO.updater", target = "updater"), }) ProductdismantleRequestMainExcelVO convert(ProductdismantleRequestMainDO mainDO, ProductdismantleRequestDetailaDO detailDO); + + ProductdismantleRequestMainUpdateReqVO convert01(ProductdismantleRequestMainDO mainDO); } diff --git a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/convert/productputawayRecord/ProductputawayRecordDetailConvert.java b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/convert/productputawayRecord/ProductputawayRecordDetailConvert.java index 7e950fa7..ea0b03b4 100644 --- a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/convert/productputawayRecord/ProductputawayRecordDetailConvert.java +++ b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/convert/productputawayRecord/ProductputawayRecordDetailConvert.java @@ -10,6 +10,7 @@ import com.win.module.wms.controller.productputawayRecord.vo.ProductputawayRecor import com.win.module.wms.controller.productputawayRecord.vo.ProductputawayRecordDetailRespVO; import com.win.module.wms.controller.productputawayRecord.vo.ProductputawayRecordDetailUpdateReqVO; import com.win.module.wms.dal.dataobject.issueRecord.IssueRecordDetailDO; +import com.win.module.wms.dal.dataobject.productputawayRequest.ProductputawayRequestDetailDO; import org.mapstruct.Mapper; import org.mapstruct.factory.Mappers; import com.win.module.wms.dal.dataobject.productputawayRecord.ProductputawayRecordDetailDO; @@ -38,4 +39,5 @@ public interface ProductputawayRecordDetailConvert { List convertList03(List list); + List convert(List detailDOList); } diff --git a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/convert/productputawayRecord/ProductputawayRecordMainConvert.java b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/convert/productputawayRecord/ProductputawayRecordMainConvert.java index e24cadd8..70b22026 100644 --- a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/convert/productputawayRecord/ProductputawayRecordMainConvert.java +++ b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/convert/productputawayRecord/ProductputawayRecordMainConvert.java @@ -9,6 +9,7 @@ import com.win.module.wms.controller.productputawayRecord.vo.ProductputawayRecor import com.win.module.wms.controller.productputawayRecord.vo.ProductputawayRecordMainRespVO; import com.win.module.wms.controller.productputawayRecord.vo.ProductputawayRecordMainUpdateReqVO; import com.win.module.wms.dal.dataobject.productputawayRecord.ProductputawayRecordDetailDO; +import com.win.module.wms.dal.dataobject.productputawayRequest.ProductputawayRequestMainDO; import org.mapstruct.Mapper; import org.mapstruct.Mapping; import org.mapstruct.Mappings; @@ -46,4 +47,6 @@ public interface ProductputawayRecordMainConvert { @Mapping(source = "mainDO.updater", target = "updater"), }) ProductputawayRecordMainExcelVO convert(ProductputawayRecordMainDO mainDO, ProductputawayRecordDetailDO detailDO); + + ProductputawayRecordMainCreateReqVO convert(ProductputawayRequestMainDO mainDO); } diff --git a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/convert/productreceiptRecord/ProductreceiptRecordDetailConvert.java b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/convert/productreceiptRecord/ProductreceiptRecordDetailConvert.java index 8042d901..8c63f1af 100644 --- a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/convert/productreceiptRecord/ProductreceiptRecordDetailConvert.java +++ b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/convert/productreceiptRecord/ProductreceiptRecordDetailConvert.java @@ -10,6 +10,7 @@ import com.win.module.wms.controller.productreceiptRecord.vo.ProductreceiptRecor import com.win.module.wms.controller.productreceiptRecord.vo.ProductreceiptRecordDetailRespVO; import com.win.module.wms.controller.productreceiptRecord.vo.ProductreceiptRecordDetailUpdateReqVO; import com.win.module.wms.dal.dataobject.issueRecord.IssueRecordDetailDO; +import com.win.module.wms.dal.dataobject.productreceiptRequest.ProductreceiptRequestDetailDO; import org.mapstruct.Mapper; import org.mapstruct.factory.Mappers; import com.win.module.wms.dal.dataobject.productreceiptRecord.ProductreceiptRecordDetailDO; @@ -38,4 +39,5 @@ public interface ProductreceiptRecordDetailConvert { List convertList03(List list); + List convert(List detailDOList); } diff --git a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/convert/productreceiptRecord/ProductreceiptRecordMainConvert.java b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/convert/productreceiptRecord/ProductreceiptRecordMainConvert.java index 205bed9f..3b81af53 100644 --- a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/convert/productreceiptRecord/ProductreceiptRecordMainConvert.java +++ b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/convert/productreceiptRecord/ProductreceiptRecordMainConvert.java @@ -9,6 +9,7 @@ import com.win.module.wms.controller.productreceiptRecord.vo.ProductreceiptRecor import com.win.module.wms.controller.productreceiptRecord.vo.ProductreceiptRecordMainRespVO; import com.win.module.wms.controller.productreceiptRecord.vo.ProductreceiptRecordMainUpdateReqVO; import com.win.module.wms.dal.dataobject.productreceiptRecord.ProductreceiptRecordDetailDO; +import com.win.module.wms.dal.dataobject.productreceiptRequest.ProductreceiptRequestMainDO; import org.mapstruct.Mapper; import org.mapstruct.Mapping; import org.mapstruct.Mappings; @@ -46,4 +47,6 @@ public interface ProductreceiptRecordMainConvert { @Mapping(source = "mainDO.updater", target = "updater"), }) ProductreceiptRecordMainExcelVO convert(ProductreceiptRecordMainDO mainDO, ProductreceiptRecordDetailDO detailDO); + + ProductreceiptRecordMainCreateReqVO convert(ProductreceiptRequestMainDO mainDO); } diff --git a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/convert/repleinshRecord/RepleinshRecordDetailConvert.java b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/convert/repleinshRecord/RepleinshRecordDetailConvert.java index 05a8e0e8..c904290f 100644 --- a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/convert/repleinshRecord/RepleinshRecordDetailConvert.java +++ b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/convert/repleinshRecord/RepleinshRecordDetailConvert.java @@ -10,6 +10,7 @@ import com.win.module.wms.controller.repleinshRecord.vo.RepleinshRecordDetailExc import com.win.module.wms.controller.repleinshRecord.vo.RepleinshRecordDetailRespVO; import com.win.module.wms.controller.repleinshRecord.vo.RepleinshRecordDetailUpdateReqVO; import com.win.module.wms.dal.dataobject.purchasereturnRecord.PurchasereturnRecordDetailDO; +import com.win.module.wms.dal.dataobject.repleinshRequest.RepleinshRequestDetailDO; import org.mapstruct.Mapper; import org.mapstruct.factory.Mappers; import com.win.module.wms.dal.dataobject.repleinshRecord.RepleinshRecordDetailDO; @@ -38,4 +39,5 @@ public interface RepleinshRecordDetailConvert { List convertList03(List list); + List convert(List detailDO); } diff --git a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/convert/repleinshRecord/RepleinshRecordMainConvert.java b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/convert/repleinshRecord/RepleinshRecordMainConvert.java index 90447c33..62042bde 100644 --- a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/convert/repleinshRecord/RepleinshRecordMainConvert.java +++ b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/convert/repleinshRecord/RepleinshRecordMainConvert.java @@ -9,6 +9,7 @@ import com.win.module.wms.controller.repleinshRecord.vo.RepleinshRecordMainExcel import com.win.module.wms.controller.repleinshRecord.vo.RepleinshRecordMainRespVO; import com.win.module.wms.controller.repleinshRecord.vo.RepleinshRecordMainUpdateReqVO; import com.win.module.wms.dal.dataobject.repleinshRecord.RepleinshRecordDetailDO; +import com.win.module.wms.dal.dataobject.repleinshRequest.RepleinshRequestMainDO; import org.mapstruct.Mapper; import org.mapstruct.Mapping; import org.mapstruct.Mappings; @@ -46,4 +47,6 @@ public interface RepleinshRecordMainConvert { @Mapping(source = "mainDO.updater", target = "updater"), }) RepleinshRecordMainExcelVO convert(RepleinshRecordMainDO mainDO, RepleinshRecordDetailDO detailDO); + + RepleinshRecordMainCreateReqVO convert(RepleinshRequestMainDO mainDO); } diff --git a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/issueJob/IssueJobMainServiceImpl.java b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/issueJob/IssueJobMainServiceImpl.java index 3bc723f9..77523860 100644 --- a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/issueJob/IssueJobMainServiceImpl.java +++ b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/issueJob/IssueJobMainServiceImpl.java @@ -15,12 +15,15 @@ import com.win.module.wms.controller.issueJob.vo.IssueJobDetailUpdateReqVO; import com.win.module.wms.controller.issueJob.vo.IssueJobMainExportReqVO; import com.win.module.wms.controller.issueJob.vo.IssueJobMainPageReqVO; import com.win.module.wms.controller.issueJob.vo.IssueJobMainUpdateReqVO; +import com.win.module.wms.controller.issueRequest.vo.IssueRequestMainUpdateReqVO; import com.win.module.wms.controller.transaction.vo.TransactionCreateReqVO; +import com.win.module.wms.convert.issueRequest.IssueRequestMainConvert; import com.win.module.wms.dal.dataobject.businesstype.BusinesstypeDO; import com.win.module.wms.dal.dataobject.issueJob.IssueJobDetailDO; import com.win.module.wms.dal.dataobject.issueJob.IssueJobMainDO; import com.win.module.wms.dal.dataobject.issueRecord.IssueRecordDetailDO; import com.win.module.wms.dal.dataobject.issueRecord.IssueRecordMainDO; +import com.win.module.wms.dal.dataobject.issueRequest.IssueRequestMainDO; import com.win.module.wms.dal.dataobject.jobsetting.JobsettingDO; import com.win.module.wms.dal.dataobject.location.LocationDO; import com.win.module.wms.dal.dataobject.onlinesettlementRecord.OnlinesettlementRecordDetailDO; @@ -31,15 +34,18 @@ import com.win.module.wms.dal.dataobject.transactiontype.TransactiontypeDO; import com.win.module.wms.dal.mysql.issueJob.IssueJobMainMapper; import com.win.module.wms.dal.mysql.issueRecord.IssueRecordDetailMapper; import com.win.module.wms.dal.mysql.issueRecord.IssueRecordMainMapper; +import com.win.module.wms.dal.mysql.issueRequest.IssueRequestMainMapper; import com.win.module.wms.dal.mysql.onlinesettlementRecord.OnlinesettlementRecordDetailMapper; import com.win.module.wms.dal.mysql.onlinesettlementRecord.OnlinesettlementRecordMainMapper; import com.win.module.wms.dal.mysql.productionreceiptJob.ProductionreceiptJobDetailMapper; import com.win.module.wms.dal.mysql.productionreceiptJob.ProductionreceiptJobMainMapper; import com.win.module.wms.enums.job.JobStatusEnum; import com.win.module.wms.enums.job.JobStatusState; +import com.win.module.wms.enums.request.RequestStatusEnum; import com.win.module.wms.service.documentSwitch.SwitchService; import com.win.module.wms.service.expectin.ExpectinService; import com.win.module.wms.service.expectout.ExpectoutService; +import com.win.module.wms.service.issueRequest.IssueRequestMainService; import com.win.module.wms.service.jobsetting.JobsettingService; import com.win.module.wms.service.location.LocationService; import com.win.module.wms.service.recordsetting.RecordsettingService; @@ -70,6 +76,8 @@ import static com.win.module.wms.enums.ErrorCodeConstants.ISSUE_JOB_MAIN_STATUS_ @Validated public class IssueJobMainServiceImpl implements IssueJobMainService { + @Resource + private IssueRequestMainMapper issueRequestMainMapper; @Resource private RecordsettingService recordsettingService; @Resource @@ -362,6 +370,12 @@ public class IssueJobMainServiceImpl implements IssueJobMainService { expectinService.deleteExpectinByJobNumber(issueJobMainDO.getNumber()); //移除预计出 expectoutService.deleteExpectoutByJobNumber(issueJobMainDO.getNumber()); + // 更新申请状态为已完成 + QueryWrapper queryWrapper = new QueryWrapper<>(); + queryWrapper.eq("number", issueJobMainDO.getRequestNumber()); + IssueRequestMainDO issueRequestMainDO = issueRequestMainMapper.selectOne(queryWrapper); + issueRequestMainDO.setStatus(RequestStatusEnum.COMPLETED.getCode()); + issueRequestMainMapper.updateById(issueRequestMainDO); //变更记录 trendsApi.createTrends(issueJobMainDO.getId(), "issueJob", "执行了发料任务", TrendsTypeEnum.UPDATE); return number; diff --git a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/issueRequest/IssueRequestMainServiceImpl.java b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/issueRequest/IssueRequestMainServiceImpl.java index 1daeed3b..38cc101c 100644 --- a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/issueRequest/IssueRequestMainServiceImpl.java +++ b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/issueRequest/IssueRequestMainServiceImpl.java @@ -17,8 +17,12 @@ import com.win.module.system.api.user.AdminUserApi; import com.win.module.system.enums.serialNumber.RuleCodeEnum; import com.win.module.wms.controller.expectin.vo.ExpectinCreateReqVO; import com.win.module.wms.controller.expectout.vo.ExpectoutCreateReqVO; +import com.win.module.wms.controller.issueRecord.vo.IssueRecordDetailCreateReqVO; +import com.win.module.wms.controller.issueRecord.vo.IssueRecordMainCreateReqVO; import com.win.module.wms.controller.issueRequest.vo.*; import com.win.module.wms.controller.rule.vo.RuleRespVO; +import com.win.module.wms.convert.issueRecord.IssueRecordDetailConvert; +import com.win.module.wms.convert.issueRecord.IssueRecordMainConvert; import com.win.module.wms.convert.issueRequest.IssueRequestDetailConvert; import com.win.module.wms.convert.issueRequest.IssueRequestMainConvert; import com.win.module.wms.dal.dataobject.balance.BalanceDO; @@ -45,6 +49,7 @@ import com.win.module.wms.enums.request.RequestStatusState; import com.win.module.wms.service.businesstype.BusinesstypeService; import com.win.module.wms.service.expectin.ExpectinService; import com.win.module.wms.service.expectout.ExpectoutService; +import com.win.module.wms.service.issueRecord.IssueRecordMainService; import com.win.module.wms.service.itembasic.ItembasicService; import com.win.module.wms.service.itempackaging.ItempackagingService; import com.win.module.wms.service.jobsetting.JobsettingService; @@ -79,6 +84,8 @@ import static com.win.module.wms.enums.ErrorCodeConstants.*; @Validated public class IssueRequestMainServiceImpl implements IssueRequestMainService { + @Resource + private IssueRecordMainService issueRecordMainService; @Resource private AdminUserApi userApi; @Resource @@ -429,7 +436,7 @@ public class IssueRequestMainServiceImpl implements IssueRequestMainService { issueRequestMainDO.setAutoCommit(requestsettingDO.getAutoCommit()); issueRequestMainDO.setAutoExecute(requestsettingDO.getAutoExecute()); issueRequestMainDO.setDirectCreateRecord(requestsettingDO.getDirectCreateRecord()); - RequestStatusState requestStatusState = new RequestStatusState(); + RequestStatusState requestStatusState = new RequestStatusState(issueRequestMainDO.getStatus()); requestStatusState.newObject(requestsettingDO.getAutoCommit(), requestsettingDO.getAutoAgree(), requestsettingDO.getAutoExecute()); issueRequestMainDO.setStatus(requestStatusState.getState().getCode()); BusinesstypeDO businesstypeDO = jobUtils.selectDocumentSettingFromBusinessType("IssueRequest"); @@ -611,23 +618,14 @@ public class IssueRequestMainServiceImpl implements IssueRequestMainService { private void generateJob (IssueRequestMainDO mainDO, List detailDOList) { //跳过任务直接生成记录 if("TRUE".equals(mainDO.getDirectCreateRecord())) { -// TODO: 发料申请 跳过任务直接生成记录 未做!! -// PurchasereceiptRecordMainCreateReqVO purchasereceiptRecordMainCreateReqVO = new PurchasereceiptRecordMainCreateReqVO(); -// BeanUtils.copyProperties(mainDO, purchasereceiptRecordMainCreateReqVO); -// purchasereceiptRecordMainCreateReqVO.setRequestNumber(mainDO.getNumber()); -// String number = serialNumberApi.generateCode(RuleCodeEnum.PURCHASE_RECEIPT_RECORD.getCode()); -// purchasereceiptRecordMainCreateReqVO.setNumber(number); -// //增加业务类型 -// BusinesstypeDO businesstypeDO = jobUtils.selectDocumentSettingFromBusinessType("PurchaseReceiptRecord"); -// purchasereceiptRecordMainCreateReqVO.setBusinessType(businesstypeDO.getCode()); -// purchasereceiptRecordMainMapper.insert(PurchasereceiptRecordMainConvert.INSTANCE.convert(purchasereceiptRecordMainCreateReqVO)); -// for(PurchasereceiptRequestDetailDO purchasereceiptRequestDetailDO : detailDOList) { -// PurchasereceiptRecordDetailCreateReqVO purchasereceiptRecordDetailCreateReqVO = new PurchasereceiptRecordDetailCreateReqVO(); -// BeanUtils.copyProperties(purchasereceiptRequestDetailDO, purchasereceiptRecordDetailCreateReqVO); -// purchasereceiptRecordDetailCreateReqVO.setNumber(number); -// purchasereceiptRecordDetailMapper.insert(PurchasereceiptRecordDetailConvert.INSTANCE.convert(purchasereceiptRecordDetailCreateReqVO)); -// } -// return; + IssueRecordMainCreateReqVO createReqVO = IssueRecordMainConvert.INSTANCE.convert(mainDO); + List issueRecordDetailCreateReqVOList = IssueRecordDetailConvert.INSTANCE.convert(detailDOList); + createReqVO.setSubList(issueRecordDetailCreateReqVOList); + issueRecordMainService.createIssueRecordMain(createReqVO); + // 更新申请状态为已完成 + mainDO.setStatus(RequestStatusEnum.COMPLETED.getCode()); + issueRequestMainMapper.updateById(mainDO); + return; } // 根据 子表 toLocationCode 拆分任务 Map> listMap = new HashMap<>(); diff --git a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/productdismantleRequest/ProductdismantleRequestMainServiceImpl.java b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/productdismantleRequest/ProductdismantleRequestMainServiceImpl.java index 90541ab4..f274f52b 100644 --- a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/productdismantleRequest/ProductdismantleRequestMainServiceImpl.java +++ b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/productdismantleRequest/ProductdismantleRequestMainServiceImpl.java @@ -11,12 +11,14 @@ import com.win.module.infra.enums.TrendsTypeEnum; import com.win.module.system.api.serialnumber.SerialNumberApi; import com.win.module.system.api.user.AdminUserApi; import com.win.module.system.enums.serialNumber.RuleCodeEnum; +import com.win.module.wms.controller.issueRequest.vo.IssueRequestMainUpdateReqVO; import com.win.module.wms.controller.productdismantleRequest.vo.*; import com.win.module.wms.controller.productrepairRequest.vo.ProductrepairRequestDetailaBaseVO; import com.win.module.wms.controller.productrepairRequest.vo.ProductrepairRequestDetailaCreateReqVO; import com.win.module.wms.controller.productrepairRequest.vo.ProductrepairRequestDetailbCreateReqVO; import com.win.module.wms.controller.rule.vo.RuleRespVO; import com.win.module.wms.controller.transaction.vo.TransactionCreateReqVO; +import com.win.module.wms.convert.issueRequest.IssueRequestMainConvert; import com.win.module.wms.convert.productdismantleRequest.ProductdismantleRequestDetailaConvert; import com.win.module.wms.convert.productdismantleRequest.ProductdismantleRequestDetailbConvert; import com.win.module.wms.convert.productdismantleRequest.ProductdismantleRequestMainConvert; @@ -603,6 +605,9 @@ public class ProductdismantleRequestMainServiceImpl implements ProductdismantleR } //增加库存事务 transactionService.createTransaction(transactionCreateReqVOList); + // 更新申请状态为已完成 + mainDO.setStatus(RequestStatusEnum.COMPLETED.getCode()); + productdismantleRequestMainMapper.updateById(mainDO); } else { throw new UtilException("该功能无任务!请到单据设置管理-申请设置功能中重新设置!"); } diff --git a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/productionreturnJob/ProductionreturnJobMainService.java b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/productionreturnJob/ProductionreturnJobMainService.java index 863b9f66..79b9cff4 100644 --- a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/productionreturnJob/ProductionreturnJobMainService.java +++ b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/productionreturnJob/ProductionreturnJobMainService.java @@ -108,6 +108,7 @@ public interface ProductionreturnJobMainService { String executeProductionreturnJobMain(ProductionreturnJobMainUpdateReqVO updateReqVO); + /** * 未处理的任务数 * @return 未处理的任务数 diff --git a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/productionreturnJob/ProductionreturnJobMainServiceImpl.java b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/productionreturnJob/ProductionreturnJobMainServiceImpl.java index b879b9e4..f5f50ade 100644 --- a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/productionreturnJob/ProductionreturnJobMainServiceImpl.java +++ b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/productionreturnJob/ProductionreturnJobMainServiceImpl.java @@ -11,24 +11,30 @@ import com.win.module.system.api.user.AdminUserApi; import com.win.module.system.api.user.dto.AdminUserRespDTO; import com.win.module.system.enums.serialNumber.RuleCodeEnum; import com.win.module.wms.controller.productionreturnJob.vo.*; +import com.win.module.wms.controller.productionreturnRequest.vo.ProductionreturnRequestMainUpdateReqVO; import com.win.module.wms.controller.transaction.vo.TransactionCreateReqVO; import com.win.module.wms.convert.productionreturnJob.ProductionreturnJobMainConvert; +import com.win.module.wms.convert.productionreturnRequest.ProductionreturnRequestMainConvert; import com.win.module.wms.dal.dataobject.businesstype.BusinesstypeDO; import com.win.module.wms.dal.dataobject.location.LocationDO; import com.win.module.wms.dal.dataobject.productionreturnJob.ProductionreturnJobDetailDO; import com.win.module.wms.dal.dataobject.productionreturnJob.ProductionreturnJobMainDO; import com.win.module.wms.dal.dataobject.productionreturnRecord.ProductionreturnRecordDetailDO; import com.win.module.wms.dal.dataobject.productionreturnRecord.ProductionreturnRecordMainDO; +import com.win.module.wms.dal.dataobject.productionreturnRequest.ProductionreturnRequestMainDO; import com.win.module.wms.dal.dataobject.recordsetting.RecordsettingDO; import com.win.module.wms.dal.dataobject.transactiontype.TransactiontypeDO; import com.win.module.wms.dal.mysql.productionreturnJob.ProductionreturnJobMainMapper; import com.win.module.wms.dal.mysql.productionreturnRecord.ProductionreturnRecordDetailMapper; import com.win.module.wms.dal.mysql.productionreturnRecord.ProductionreturnRecordMainMapper; +import com.win.module.wms.dal.mysql.productionreturnRequest.ProductionreturnRequestMainMapper; import com.win.module.wms.enums.job.JobStatusEnum; import com.win.module.wms.enums.job.JobStatusState; +import com.win.module.wms.enums.request.RequestStatusEnum; import com.win.module.wms.service.expectin.ExpectinService; import com.win.module.wms.service.expectout.ExpectoutService; import com.win.module.wms.service.location.LocationService; +import com.win.module.wms.service.productionreturnRequest.ProductionreturnRequestMainService; import com.win.module.wms.service.recordsetting.RecordsettingService; import com.win.module.wms.service.transaction.TransactionService; import com.win.module.wms.util.JobUtils; @@ -38,6 +44,7 @@ import org.springframework.transaction.annotation.Transactional; import org.springframework.validation.annotation.Validated; import javax.annotation.Resource; +import javax.validation.Valid; import java.math.BigDecimal; import java.time.LocalDateTime; import java.util.*; @@ -56,6 +63,10 @@ import static com.win.module.wms.enums.ErrorCodeConstants.PRODUCTIONRETURN_JOB_M @Validated public class ProductionreturnJobMainServiceImpl implements ProductionreturnJobMainService { + @Resource + private ProductionreturnRequestMainMapper productionreturnRequestMainMapper; + @Resource + private ProductionreturnRequestMainService productionreturnRequestMainService; @Resource private ProductionreturnRecordDetailMapper productionreturnRecordDetailMapper; @Resource @@ -352,6 +363,12 @@ public class ProductionreturnJobMainServiceImpl implements ProductionreturnJobMa expectinService.deleteExpectinByJobNumber(productionreturnJobMainDO.getNumber()); //移除预计出 expectoutService.deleteExpectoutByJobNumber(productionreturnJobMainDO.getNumber()); + // 更新申请状态为已完成 + QueryWrapper queryWrapper = new QueryWrapper<>(); + queryWrapper.eq("number", productionreturnJobMainDO.getRequestNumber()); + ProductionreturnRequestMainDO productionreturnRequestMainDO = productionreturnRequestMainMapper.selectOne(queryWrapper); + productionreturnRequestMainDO.setStatus(RequestStatusEnum.COMPLETED.getCode()); + productionreturnRequestMainMapper.updateById(productionreturnRequestMainDO); //变更记录 trendsApi.createTrends(productionreturnRecordMainDO.getId(), "productionreturnRecord", "生产退料任务生成记录", TrendsTypeEnum.CREATE); return number; diff --git a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/productionreturnRequest/ProductionreturnRequestMainServiceImpl.java b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/productionreturnRequest/ProductionreturnRequestMainServiceImpl.java index 1c93eea1..3db6e7da 100644 --- a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/productionreturnRequest/ProductionreturnRequestMainServiceImpl.java +++ b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/productionreturnRequest/ProductionreturnRequestMainServiceImpl.java @@ -2,6 +2,7 @@ package com.win.module.wms.service.productionreturnRequest; import cn.hutool.core.collection.CollUtil; import cn.hutool.core.exceptions.UtilException; +import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.win.framework.common.exception.ServiceException; import com.win.framework.common.pojo.CustomConditions; import com.win.framework.common.pojo.PageResult; @@ -283,7 +284,7 @@ public class ProductionreturnRequestMainServiceImpl implements ProductionreturnR } String number = serialNumberApi.generateCode(RuleCodeEnum.PRODUCTION_RETURN_REQUEST.getCode()); mainDo.setNumber(number); - RequestStatusState requestStatusState = new RequestStatusState(); + RequestStatusState requestStatusState = new RequestStatusState(mainDo.getStatus()); requestStatusState.newObject(requestsettingDO.getAutoCommit(), requestsettingDO.getAutoAgree(), requestsettingDO.getAutoExecute()); mainDo.setStatus(requestStatusState.getState().getCode()); mainDo.setDepartmentCode(userApi.getUser(getLoginUserId()).getDeptId().toString()); @@ -399,7 +400,7 @@ public class ProductionreturnRequestMainServiceImpl implements ProductionreturnR mainDo.setAutoCommit(requestsettingDO.getAutoCommit()); mainDo.setAutoExecute(requestsettingDO.getAutoExecute()); mainDo.setDirectCreateRecord(requestsettingDO.getDirectCreateRecord()); - RequestStatusState requestStatusState = new RequestStatusState(); + RequestStatusState requestStatusState = new RequestStatusState(mainDo.getStatus()); requestStatusState.newObject(requestsettingDO.getAutoCommit(), requestsettingDO.getAutoAgree(), requestsettingDO.getAutoExecute()); mainDo.setStatus(requestStatusState.getState().getCode()); } @@ -737,6 +738,9 @@ public class ProductionreturnRequestMainServiceImpl implements ProductionreturnR productionreturnRecordDetailMapper.insertBatch(productionreturnRecordDetailDOList); //增加库存事务 transactionService.createTransaction(transactionCreateReqVOList); + // 更新申请状态为已完成 + mainDO.setStatus(RequestStatusEnum.COMPLETED.getCode()); + productionreturnRequestMainMapper.updateById(mainDO); trendsApi.createTrends(productionreturnRecordMainDO.getId(), "productionreturnRecord", "生产退料申请直接生成记录", TrendsTypeEnum.CREATE); return; } diff --git a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/productputawayJob/ProductputawayJobMainServiceImpl.java b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/productputawayJob/ProductputawayJobMainServiceImpl.java index 37d1a630..1819db15 100644 --- a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/productputawayJob/ProductputawayJobMainServiceImpl.java +++ b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/productputawayJob/ProductputawayJobMainServiceImpl.java @@ -10,27 +10,36 @@ import com.win.module.system.api.serialnumber.SerialNumberApi; import com.win.module.system.api.user.AdminUserApi; import com.win.module.system.api.user.dto.AdminUserRespDTO; import com.win.module.system.enums.serialNumber.RuleCodeEnum; +import com.win.module.wms.controller.issueRequest.vo.IssueRequestMainUpdateReqVO; import com.win.module.wms.controller.productputawayJob.vo.ProductputawayJobMainCreateReqVO; import com.win.module.wms.controller.productputawayJob.vo.ProductputawayJobMainExportReqVO; import com.win.module.wms.controller.productputawayJob.vo.ProductputawayJobMainPageReqVO; import com.win.module.wms.controller.productputawayJob.vo.ProductputawayJobMainUpdateReqVO; +import com.win.module.wms.controller.productputawayRequest.vo.ProductputawayRequestMainUpdateReqVO; import com.win.module.wms.controller.transaction.vo.TransactionCreateReqVO; +import com.win.module.wms.convert.issueRequest.IssueRequestMainConvert; import com.win.module.wms.convert.productputawayJob.ProductputawayJobMainConvert; +import com.win.module.wms.convert.productputawayRequest.ProductputawayRequestMainConvert; import com.win.module.wms.dal.dataobject.businesstype.BusinesstypeDO; +import com.win.module.wms.dal.dataobject.issueRequest.IssueRequestMainDO; import com.win.module.wms.dal.dataobject.location.LocationDO; import com.win.module.wms.dal.dataobject.productputawayJob.ProductputawayJobDetailDO; import com.win.module.wms.dal.dataobject.productputawayJob.ProductputawayJobMainDO; import com.win.module.wms.dal.dataobject.productputawayRecord.ProductputawayRecordDetailDO; import com.win.module.wms.dal.dataobject.productputawayRecord.ProductputawayRecordMainDO; +import com.win.module.wms.dal.dataobject.productputawayRequest.ProductputawayRequestMainDO; import com.win.module.wms.dal.dataobject.transactiontype.TransactiontypeDO; import com.win.module.wms.dal.mysql.productputawayJob.ProductputawayJobMainMapper; import com.win.module.wms.dal.mysql.productputawayRecord.ProductputawayRecordDetailMapper; import com.win.module.wms.dal.mysql.productputawayRecord.ProductputawayRecordMainMapper; +import com.win.module.wms.dal.mysql.productputawayRequest.ProductputawayRequestMainMapper; import com.win.module.wms.enums.job.JobStatusEnum; import com.win.module.wms.enums.job.JobStatusState; +import com.win.module.wms.enums.request.RequestStatusEnum; import com.win.module.wms.service.expectin.ExpectinService; import com.win.module.wms.service.expectout.ExpectoutService; import com.win.module.wms.service.location.LocationService; +import com.win.module.wms.service.productputawayRequest.ProductputawayRequestMainService; import com.win.module.wms.service.recordsetting.RecordsettingService; import com.win.module.wms.service.transaction.TransactionService; import com.win.module.wms.util.JobUtils; @@ -58,6 +67,10 @@ import static com.win.module.wms.enums.ErrorCodeConstants.PRODUCTPUTAWAY_JOB_MAI @Validated public class ProductputawayJobMainServiceImpl implements ProductputawayJobMainService { + @Resource + private ProductputawayRequestMainService productputawayRequestMainService; + @Resource + private ProductputawayRequestMainMapper productputawayRequestMainMapper; @Resource private ExpectinService expectinService; @Resource @@ -340,6 +353,12 @@ public class ProductputawayJobMainServiceImpl implements ProductputawayJobMainSe expectinService.deleteExpectinByJobNumber(productputawayJobMainDO.getNumber()); //移除预计出 expectoutService.deleteExpectoutByJobNumber(productputawayJobMainDO.getNumber()); + // 更新申请状态为已完成 + QueryWrapper queryWrapper = new QueryWrapper<>(); + queryWrapper.eq("number", productputawayJobMainDO.getRequestNumber()); + ProductputawayRequestMainDO productputawayRequestMainDO = productputawayRequestMainMapper.selectOne(queryWrapper); + productputawayRequestMainDO.setStatus(RequestStatusEnum.COMPLETED.getCode()); + productputawayRequestMainMapper.updateById(productputawayRequestMainDO); //变更记录 trendsApi.createTrends(productputawayJobMainDO.getId(), "productputawayJob", "执行了制品上架任务", TrendsTypeEnum.UPDATE); return number; diff --git a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/productputawayRequest/ProductputawayRequestMainServiceImpl.java b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/productputawayRequest/ProductputawayRequestMainServiceImpl.java index 3c836ffd..2c65e055 100644 --- a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/productputawayRequest/ProductputawayRequestMainServiceImpl.java +++ b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/productputawayRequest/ProductputawayRequestMainServiceImpl.java @@ -14,8 +14,12 @@ import com.win.module.system.api.user.AdminUserApi; import com.win.module.system.enums.serialNumber.RuleCodeEnum; import com.win.module.wms.controller.expectin.vo.ExpectinCreateReqVO; import com.win.module.wms.controller.expectout.vo.ExpectoutCreateReqVO; +import com.win.module.wms.controller.productputawayRecord.vo.ProductputawayRecordDetailCreateReqVO; +import com.win.module.wms.controller.productputawayRecord.vo.ProductputawayRecordMainCreateReqVO; import com.win.module.wms.controller.productputawayRequest.vo.*; import com.win.module.wms.controller.rule.vo.RuleRespVO; +import com.win.module.wms.convert.productputawayRecord.ProductputawayRecordDetailConvert; +import com.win.module.wms.convert.productputawayRecord.ProductputawayRecordMainConvert; import com.win.module.wms.convert.productputawayRequest.ProductputawayRequestDetailConvert; import com.win.module.wms.convert.productputawayRequest.ProductputawayRequestMainConvert; import com.win.module.wms.dal.dataobject.balance.BalanceDO; @@ -40,6 +44,7 @@ import com.win.module.wms.service.expectout.ExpectoutService; import com.win.module.wms.service.itembasic.ItembasicService; import com.win.module.wms.service.jobsetting.JobsettingService; import com.win.module.wms.service.location.LocationService; +import com.win.module.wms.service.productputawayRecord.ProductputawayRecordMainService; import com.win.module.wms.service.requestsetting.RequestsettingService; import com.win.module.wms.service.rule.RuleService; import com.win.module.wms.util.JobUtils; @@ -70,6 +75,8 @@ import static com.win.module.wms.enums.ErrorCodeConstants.*; @Validated public class ProductputawayRequestMainServiceImpl implements ProductputawayRequestMainService { + @Resource + private ProductputawayRecordMainService productputawayRecordMainService; @Resource private ExpectoutService expectoutService; @Resource @@ -170,7 +177,7 @@ public class ProductputawayRequestMainServiceImpl implements ProductputawayReque private ProductputawayRequestMainDO validateMainMethod(ProductputawayRequestMainBaseVO baseVO, BusinesstypeDO businesstypeDO, RequestsettingDO requestsettingDO){ ProductputawayRequestMainDO productputawayRequestMainDO = ProductputawayRequestMainConvert.INSTANCE.convert(baseVO); - RequestStatusState requestStatusState = new RequestStatusState(); + RequestStatusState requestStatusState = new RequestStatusState(productputawayRequestMainDO.getStatus()); requestStatusState.newObject(requestsettingDO.getAutoCommit(), requestsettingDO.getAutoAgree(), requestsettingDO.getAutoExecute()); productputawayRequestMainDO.setStatus(requestStatusState.getState().getCode()); productputawayRequestMainDO.setDepartmentCode(userApi.getUser(getLoginUserId()).getDeptId().toString()); @@ -292,7 +299,7 @@ public class ProductputawayRequestMainServiceImpl implements ProductputawayReque mainDo.setAutoCommit(requestsettingDO.getAutoCommit()); mainDo.setAutoExecute(requestsettingDO.getAutoExecute()); mainDo.setDirectCreateRecord(requestsettingDO.getDirectCreateRecord()); - RequestStatusState requestStatusState = new RequestStatusState(); + RequestStatusState requestStatusState = new RequestStatusState(mainDo.getStatus()); requestStatusState.newObject(requestsettingDO.getAutoCommit(), requestsettingDO.getAutoAgree(), requestsettingDO.getAutoExecute()); mainDo.setStatus(requestStatusState.getState().getCode()); } @@ -552,7 +559,14 @@ public class ProductputawayRequestMainServiceImpl implements ProductputawayReque private void generateJob(ProductputawayRequestMainDO mainDO, List detailDOList) { //跳过任务直接生成记录 if("TRUE".equals(mainDO.getDirectCreateRecord())) { -// TODO: 发料申请 跳过任务直接生成记录 未做!! + ProductputawayRecordMainCreateReqVO createReqVO = ProductputawayRecordMainConvert.INSTANCE.convert(mainDO); + List productputawayRecordDetailCreateReqVOList = ProductputawayRecordDetailConvert.INSTANCE.convert(detailDOList); + createReqVO.setSubList(productputawayRecordDetailCreateReqVOList); + productputawayRecordMainService.createProductputawayRecordMain(createReqVO); + // 更新申请状态为已完成 + mainDO.setStatus(RequestStatusEnum.COMPLETED.getCode()); + productputawayRequestMainMapper.updateById(mainDO); + return; } // 任务主表信息 ProductputawayJobMainDO productputawayJobMainDO = new ProductputawayJobMainDO(); diff --git a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/productreceiptJob/ProductreceiptJobMainService.java b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/productreceiptJob/ProductreceiptJobMainService.java index 1a32a124..8f8bb22e 100644 --- a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/productreceiptJob/ProductreceiptJobMainService.java +++ b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/productreceiptJob/ProductreceiptJobMainService.java @@ -119,7 +119,6 @@ public interface ProductreceiptJobMainService { String executeProductreceiptJobMain(ProductreceiptJobMainUpdateReqVO updateReqVO); - void generateBackflushRecord(ProductreceiptRecordMainDO productreceiptRecordMainDO, List productreceiptRecordDetailDOList); /** * 未处理的任务数 diff --git a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/productreceiptJob/ProductreceiptJobMainServiceImpl.java b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/productreceiptJob/ProductreceiptJobMainServiceImpl.java index a1ebf613..f28990f5 100644 --- a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/productreceiptJob/ProductreceiptJobMainServiceImpl.java +++ b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/productreceiptJob/ProductreceiptJobMainServiceImpl.java @@ -14,8 +14,10 @@ import com.win.module.system.enums.serialNumber.RuleCodeEnum; import com.win.module.wms.controller.productputawayRequest.vo.ProductputawayRequestDetailCreateReqVO; import com.win.module.wms.controller.productputawayRequest.vo.ProductputawayRequestMainCreateReqVO; import com.win.module.wms.controller.productreceiptJob.vo.*; +import com.win.module.wms.controller.productreceiptRequest.vo.ProductreceiptRequestMainUpdateReqVO; import com.win.module.wms.controller.transaction.vo.TransactionCreateReqVO; import com.win.module.wms.convert.productreceiptJob.ProductreceiptJobMainConvert; +import com.win.module.wms.convert.productreceiptRequest.ProductreceiptRequestMainConvert; import com.win.module.wms.dal.dataobject.backflushRequest.BackflushRequestDetailbDO; import com.win.module.wms.dal.dataobject.balance.BalanceDO; import com.win.module.wms.dal.dataobject.businesstype.BusinesstypeDO; @@ -30,6 +32,7 @@ import com.win.module.wms.dal.dataobject.productreceiptRecord.BackflushRecordDet import com.win.module.wms.dal.dataobject.productreceiptRecord.ProductreceiptRecordDetailDO; import com.win.module.wms.dal.dataobject.productreceiptRecord.ProductreceiptRecordMainDO; import com.win.module.wms.dal.dataobject.productreceiptRequest.ProductreceiptRequestDetailDO; +import com.win.module.wms.dal.dataobject.productreceiptRequest.ProductreceiptRequestMainDO; import com.win.module.wms.dal.dataobject.transactiontype.TransactiontypeDO; import com.win.module.wms.dal.dataobject.workstation.WorkstationDO; import com.win.module.wms.dal.mysql.backflushRequest.BackflushRequestDetailbMapper; @@ -40,6 +43,7 @@ import com.win.module.wms.dal.mysql.productreceiptJob.ProductreceiptJobMainMappe import com.win.module.wms.dal.mysql.productreceiptRecord.BackflushRecordDetailbMapper; import com.win.module.wms.dal.mysql.productreceiptRecord.ProductreceiptRecordDetailMapper; import com.win.module.wms.dal.mysql.productreceiptRecord.ProductreceiptRecordMainMapper; +import com.win.module.wms.dal.mysql.productreceiptRequest.ProductreceiptRequestMainMapper; import com.win.module.wms.enums.job.JobStatusEnum; import com.win.module.wms.enums.job.JobStatusState; import com.win.module.wms.enums.request.RequestStatusEnum; @@ -51,6 +55,7 @@ import com.win.module.wms.service.itembasic.ItembasicService; import com.win.module.wms.service.location.LocationService; import com.win.module.wms.service.production.ProductionMainService; import com.win.module.wms.service.productputawayRequest.ProductputawayRequestMainService; +import com.win.module.wms.service.productreceiptRecord.ProductreceiptRecordMainService; import com.win.module.wms.service.productreceiptRequest.ProductreceiptRequestDetailService; import com.win.module.wms.service.productreceiptRequest.ProductreceiptRequestMainService; import com.win.module.wms.service.recordsetting.RecordsettingService; @@ -84,35 +89,22 @@ import static com.win.module.wms.enums.ErrorCodeConstants.*; public class ProductreceiptJobMainServiceImpl implements ProductreceiptJobMainService { @Resource - private BalanceMapper balanceMapper; - @Resource - private ProductputawayRequestMainService productputawayRequestMainService; + private ProductreceiptRecordMainService productreceiptRecordMainService; @Resource - private OfflinesettlementRecordDetailMapper offlinesettlementRecordDetailMapper; - @Resource - private OfflinesettlementRecordMainMapper offlinesettlementRecordMainMapper; - @Resource - private SupplieritemService supplieritemService; + private ProductreceiptRequestMainService productreceiptRequestService; @Resource - private ItembasicService itembasicService; + private ProductreceiptRequestMainMapper productreceiptRequestMainMapper; @Resource - private BusinesstypeService businesstypeService; + private BalanceMapper balanceMapper; @Resource - private TransactiontypeService transactiontypeService; + private ProductputawayRequestMainService productputawayRequestMainService; + + @Resource private SwitchService switchService; - @Resource - private BackflushRecordDetailbMapper backflushRecordDetailbMapper; - @Resource - private BalanceService balanceService; - @Resource - private WorkstationService workstationService; - @Resource - private BackflushRequestDetailbMapper backflushRequestDetailbMapper; - @Resource - private ProductreceiptRequestMainService productreceiptRequestService; - @Resource - private ProductreceiptRequestDetailService productreceiptRequestDetailService; + + + @Resource private ExpectinService expectinService; @Resource @@ -316,7 +308,7 @@ public class ProductreceiptJobMainServiceImpl implements ProductreceiptJobMainSe productreceiptRecordMainDO.setUpdater(null); productreceiptRecordMainDO.setUpdateTime(null); // 接口类型 - productreceiptRecordMainDO.setInterfaceType(recordsettingService.selectRecordsettingExist("IssueRecord").getInterfaceType()); + productreceiptRecordMainDO.setInterfaceType(recordsettingService.selectRecordsettingExist("ProductPutawayRecord").getInterfaceType()); //增加业务类型 BusinesstypeDO businesstypeDO = jobUtils.selectDocumentSettingFromBusinessType("ProductReceiptRecord"); productreceiptRecordMainDO.setOutTransactionType(businesstypeDO.getOutTransactionType()); @@ -388,19 +380,26 @@ public class ProductreceiptJobMainServiceImpl implements ProductreceiptJobMainSe transactionService.createTransaction(transactionCreateReqVOList); //移除预计入 expectinService.deleteExpectinByJobNumber(productreceiptJobMainDO.getNumber()); + // 更新申请状态为已完成 + QueryWrapper queryWrapper = new QueryWrapper<>(); + queryWrapper.eq("number", productreceiptJobMainDO.getRequestNumber()); + ProductreceiptRequestMainDO productreceiptRequestMainDO = productreceiptRequestMainMapper.selectOne(queryWrapper); + productreceiptRequestMainDO.setStatus(RequestStatusEnum.COMPLETED.getCode()); + productreceiptRequestMainMapper.updateById(productreceiptRequestMainDO); //变更记录 trendsApi.createTrends(productreceiptJobMainDO.getId(), "productreceiptJob", "执行了制品收货任务", TrendsTypeEnum.UPDATE); // 根据单据开关判断是否创建 回冲记录 SwitchDO switchDOBack = switchService.selectSwitchExist("CreateBackflushRecordAfterProductreceiptRecordCreated"); if (switchDOBack.getEffectiveSetValue().equals("TRUE")) { // 创建 回冲记录(record_backflush_detailb) - generateBackflushRecord(productreceiptRecordMainDO, productreceiptRecordDetailDOList); + productreceiptRecordMainService.generateBackflushRecord(productreceiptRecordMainDO, productreceiptRecordDetailDOList); } // 根据单据开关判断是否创建 制品上架申请 SwitchDO switchDO = switchService.selectSwitchExist("CreateProductputawayRequestAfterProductreceiptRecordCreated"); if (switchDO.getEffectiveSetValue().equals("TRUE")) { generateProductputawayRequest(productreceiptRecordMainDO, productreceiptRecordDetailDOList); } + return number; } @@ -430,95 +429,6 @@ public class ProductreceiptJobMainServiceImpl implements ProductreceiptJobMainSe productputawayRequestMainService.createProductputawayRequestMain(productputawayRequestMainCreateReqVO); } - /** - * 创建 回冲记录 - * @param productreceiptRecordMainDO - * @param productreceiptRecordDetailDOList - */ - public void generateBackflushRecord(ProductreceiptRecordMainDO productreceiptRecordMainDO, List productreceiptRecordDetailDOList) { - List productreceiptRequestDetailDOList = productreceiptRequestService.getProductreceiptRequestDetailDOByNumber(productreceiptRecordMainDO.getRequestNumber()); - List backflushRecordDetailbDOList = new ArrayList<>(); - // 下线结算集合 - List offlinesettlementRecordList = new ArrayList<>(); - //库存事务 - List transactionCreateReqVOList = new ArrayList<>(); - for(ProductreceiptRequestDetailDO productreceiptRequestDetailDO: productreceiptRequestDetailDOList){ - QueryWrapper queryWrapper = new QueryWrapper(); - queryWrapper.eq("master_id",productreceiptRequestDetailDO.getId().toString()); - List backflushRequestDetailbDOList = backflushRequestDetailbMapper.selectList(queryWrapper); - for(BackflushRequestDetailbDO backflushRequestDetailbDO: backflushRequestDetailbDOList ) { - ProductreceiptRecordDetailDO productreceiptRecordDetailDO = productreceiptRecordDetailDOList.stream().filter(item -> item.getItemCode().equals(productreceiptRequestDetailDO.getItemCode())).collect(Collectors.toList()).get(0); - BackflushRecordDetailbDO backflushRecordDetailbDO = new BackflushRecordDetailbDO(); - BeanUtils.copyProperties(backflushRequestDetailbDO,backflushRecordDetailbDO); - backflushRecordDetailbDO.setMasterId(productreceiptRecordDetailDO.getId()); - backflushRecordDetailbDO.setNumber(productreceiptRecordDetailDO.getNumber()); - backflushRecordDetailbDO.setId(null); - backflushRecordDetailbDO.setCreator(null); - backflushRecordDetailbDO.setCreateTime(null); - backflushRecordDetailbDO.setUpdater(null); - backflushRecordDetailbDO.setUpdateTime(null); - // from_location_code 工位表中原料库位 - // 根据 生产线 工位 查询工位信息 并赋值 from_location_code - WorkstationDO workstationDO = workstationService.selectWorkstationExist(productreceiptRecordDetailDO.getWorkStationCode(),productreceiptRecordMainDO.getWorkshopCode(),productreceiptRecordDetailDO.getProductionlineCode()); - backflushRecordDetailbDO.setFromLocationCode(workstationDO.getRawLocationCode()); - // 根据 from_location_code 查询库存余额 -// TODO: 如果按批次 查询批次获取库存余额 排序批次 如果第一条批次不够数量 需要扣除第二条余额 库存事务出的动作要存2条 - List inventoryStatus = new ArrayList<>(); - inventoryStatus.add("OK"); - List balanceDOList = balanceService.selectByNumber(backflushRequestDetailbDO.getItemCode(),inventoryStatus,workstationDO.getRawLocationCode()); - backflushRecordDetailbDO.setPackingNumber(balanceDOList.get(0).getPackingNumber()); - backflushRecordDetailbDO.setBatch(balanceDOList.get(0).getBatch()); - backflushRecordDetailbDO.setInventoryStatus("OK"); - backflushRecordDetailbDO.setFromAreaCode(balanceDOList.get(0).getAreaCode()); - backflushRecordDetailbDO.setFromLocationGroupCode(balanceDOList.get(0).getLocationGroupCode()); - // 消耗数量 = 成品数量 * bom数量 - BigDecimal qty = productreceiptRecordDetailDO.getQty().multiply(backflushRecordDetailbDO.getQty()); - backflushRecordDetailbDO.setQty(qty); - backflushRecordDetailbDOList.add(backflushRecordDetailbDO); - //查询库存余额 - BalanceDO balanceDO = balanceMapper.getBalanceQty(productreceiptRecordDetailDO.getPackingNumber(), productreceiptRecordDetailDO.getItemCode(), productreceiptRecordDetailDO.getBatch(), productreceiptRecordDetailDO.getInventoryStatus(), productreceiptRecordDetailDO.getToLocationCode()); - if (balanceDO == null) { - throw exception(BALANCE_NOT_EXISTS); - } - //添加库存事务list - // 出动作 - TransactionCreateReqVO transactionCreateReqVO = new TransactionCreateReqVO(); - BeanUtils.copyProperties(backflushRecordDetailbDO, transactionCreateReqVO); - BusinesstypeDO businesstypeDO = businesstypeService.selectBusinesstypeExist(productreceiptRecordMainDO.getBusinessType()); - TransactiontypeDO transactiontypeDO = jobUtils.selectDocumentFromTransactionType(businesstypeDO.getOutTransactionType()); - transactionCreateReqVO.setWorker(String.valueOf(userApi.getUser(getLoginUserId()).getId())); - transactionCreateReqVO.setInventoryAction(transactiontypeDO.getInventoryAction()); - transactionCreateReqVO.setTransactionType(transactiontypeDO.getCode()); - transactionCreateReqVO.setBusinessType(businesstypeDO.getCode()); - transactionCreateReqVO.setOwnerCode(""); - transactionCreateReqVO.setRecordNumber(backflushRecordDetailbDO.getNumber()); - transactionCreateReqVO.setId(null); - transactionCreateReqVO.setPackingNumber(backflushRecordDetailbDO.getPackingNumber()); - transactionCreateReqVO.setBatch(backflushRecordDetailbDO.getBatch()); - transactionCreateReqVO.setContainerNumber(""); - transactionCreateReqVO.setSinglePrice(balanceDO.getSinglePrice()); - transactionCreateReqVO.setAmount(balanceDO.getAmount()); - transactionCreateReqVO.setArriveDate(balanceDO.getArriveDate()); - transactionCreateReqVO.setProduceDate(balanceDO.getProduceDate()); - transactionCreateReqVO.setExpireDate(balanceDO.getExpireDate()); - transactionCreateReqVO.setWarehouseCode(""); - transactionCreateReqVO.setLocationCode(backflushRecordDetailbDO.getFromLocationCode()); - transactionCreateReqVO.setQty(qty); - transactionCreateReqVOList.add(transactionCreateReqVO); - // 判断 物品 是否为 下线结算物品 创建 下线结算记录 - if (itembasicService.isOfflines(backflushRecordDetailbDO.getItemCode())) { - offlinesettlementRecordList.add(backflushRecordDetailbDO); - } - } - } - backflushRecordDetailbMapper.insertBatch(backflushRecordDetailbDOList); - //增加库存事务 - transactionService.createTransaction(transactionCreateReqVOList); - // 创建 下线结算记录 - if (offlinesettlementRecordList != null && offlinesettlementRecordList.size() > 0) { - generateOfflinesettlementRecord(productreceiptRecordMainDO, offlinesettlementRecordList); - } - } @Override public Long getProductreceiptJobCount() { @@ -536,45 +446,4 @@ public class ProductreceiptJobMainServiceImpl implements ProductreceiptJobMainSe queryWrapper.eq("`status`", JobStatusEnum.PENDING.getCode()); return productreceiptJobMainMapper.selectCount(queryWrapper); } - - /** - * 创建 下线结算 记录 - * @param productreceiptRecordMainDO - * @param offlinesettlementRecordList - */ - private void generateOfflinesettlementRecord(ProductreceiptRecordMainDO productreceiptRecordMainDO, List offlinesettlementRecordList) { - OfflinesettlementRecordMainDO offlinesettlementRecordMainDO = new OfflinesettlementRecordMainDO(); - BeanUtils.copyProperties(productreceiptRecordMainDO,offlinesettlementRecordMainDO); - String number = serialNumberApi.generateCode(RuleCodeEnum.OFFLINE_SETTLEMENT_RECORD.getCode()); - offlinesettlementRecordMainDO.setNumber(number); - offlinesettlementRecordMainDO.setProductReceiptRecordNumber(productreceiptRecordMainDO.getNumber()); - offlinesettlementRecordMainDO.setBusinessType(""); - offlinesettlementRecordMainDO.setInTransactionType(""); - offlinesettlementRecordMainDO.setOutTransactionType(""); - offlinesettlementRecordMainDO.setId(null); - offlinesettlementRecordMainDO.setCreator(null); - offlinesettlementRecordMainDO.setCreateTime(null); - offlinesettlementRecordMainDO.setUpdater(null); - offlinesettlementRecordMainDO.setUpdateTime(null); - offlinesettlementRecordMainMapper.insert(offlinesettlementRecordMainDO); - //上线结算记录子 集合 - List offlinesettlementRecordDetailDOList = new ArrayList<>(); - for(BackflushRecordDetailbDO backflushRecordDetailbDO : offlinesettlementRecordList ) { - OfflinesettlementRecordDetailDO offlinesettlementRecordDetailDO = new OfflinesettlementRecordDetailDO(); - BeanUtils.copyProperties(backflushRecordDetailbDO,offlinesettlementRecordDetailDO); - offlinesettlementRecordDetailDO.setLocationCode(backflushRecordDetailbDO.getFromLocationCode()); - offlinesettlementRecordDetailDO.setLocationGroupCode(backflushRecordDetailbDO.getFromLocationGroupCode()); - offlinesettlementRecordDetailDO.setAreaCode(backflushRecordDetailbDO.getFromAreaCode()); - offlinesettlementRecordDetailDO.setMasterId(offlinesettlementRecordMainDO.getId()); - offlinesettlementRecordDetailDO.setId(null); - offlinesettlementRecordDetailDO.setCreator(null); - offlinesettlementRecordDetailDO.setCreateTime(null); - offlinesettlementRecordDetailDO.setUpdater(null); - offlinesettlementRecordDetailDO.setUpdateTime(null); - offlinesettlementRecordDetailDOList.add(offlinesettlementRecordDetailDO); - } - if(offlinesettlementRecordDetailDOList != null && offlinesettlementRecordDetailDOList.size() > 0) { - offlinesettlementRecordDetailMapper.insertBatch(offlinesettlementRecordDetailDOList); - } - } } diff --git a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/productreceiptRecord/ProductreceiptRecordMainService.java b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/productreceiptRecord/ProductreceiptRecordMainService.java index ef562497..4cd534bf 100644 --- a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/productreceiptRecord/ProductreceiptRecordMainService.java +++ b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/productreceiptRecord/ProductreceiptRecordMainService.java @@ -6,6 +6,7 @@ import com.win.module.wms.controller.productreceiptRecord.vo.ProductreceiptRecor import com.win.module.wms.controller.productreceiptRecord.vo.ProductreceiptRecordMainExportReqVO; import com.win.module.wms.controller.productreceiptRecord.vo.ProductreceiptRecordMainPageReqVO; import com.win.module.wms.controller.productreceiptRecord.vo.ProductreceiptRecordMainUpdateReqVO; +import com.win.module.wms.dal.dataobject.productreceiptRecord.ProductreceiptRecordDetailDO; import com.win.module.wms.dal.dataobject.productreceiptRecord.ProductreceiptRecordMainDO; import javax.validation.Valid; @@ -82,4 +83,7 @@ public interface ProductreceiptRecordMainService { PageResult getProductreceiptRecordMainSenior(CustomConditions conditions); List getProductreceiptRecordMainList(CustomConditions conditions); + + void generateBackflushRecord(ProductreceiptRecordMainDO productreceiptRecordMainDO, List productreceiptRecordDetailDOList); + } diff --git a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/productreceiptRecord/ProductreceiptRecordMainServiceImpl.java b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/productreceiptRecord/ProductreceiptRecordMainServiceImpl.java index 10942630..e835eba6 100644 --- a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/productreceiptRecord/ProductreceiptRecordMainServiceImpl.java +++ b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/productreceiptRecord/ProductreceiptRecordMainServiceImpl.java @@ -1,5 +1,6 @@ package com.win.module.wms.service.productreceiptRecord; +import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.win.framework.common.pojo.CustomConditions; import com.win.framework.common.pojo.PageResult; import com.win.module.infra.api.trends.TrendsApi; @@ -17,23 +18,40 @@ import com.win.module.wms.convert.productreceiptRecord.ProductreceiptRecordDetai import com.win.module.wms.convert.productreceiptRecord.ProductreceiptRecordMainConvert; import com.win.module.wms.convert.repleinshRecord.RepleinshRecordDetailConvert; import com.win.module.wms.dal.dataobject.accountcalendar.AccountcalendarDO; +import com.win.module.wms.dal.dataobject.backflushRequest.BackflushRequestDetailbDO; import com.win.module.wms.dal.dataobject.balance.BalanceDO; import com.win.module.wms.dal.dataobject.businesstype.BusinesstypeDO; import com.win.module.wms.dal.dataobject.itembasic.ItembasicDO; import com.win.module.wms.dal.dataobject.location.LocationDO; +import com.win.module.wms.dal.dataobject.offlinesettlementRecord.OfflinesettlementRecordDetailDO; +import com.win.module.wms.dal.dataobject.offlinesettlementRecord.OfflinesettlementRecordMainDO; +import com.win.module.wms.dal.dataobject.productreceiptRecord.BackflushRecordDetailbDO; import com.win.module.wms.dal.dataobject.productreceiptRecord.ProductreceiptRecordDetailDO; import com.win.module.wms.dal.dataobject.productreceiptRecord.ProductreceiptRecordMainDO; +import com.win.module.wms.dal.dataobject.productreceiptRequest.ProductreceiptRequestDetailDO; import com.win.module.wms.dal.dataobject.recordsetting.RecordsettingDO; import com.win.module.wms.dal.dataobject.repleinshRecord.RepleinshRecordDetailDO; import com.win.module.wms.dal.dataobject.transactiontype.TransactiontypeDO; +import com.win.module.wms.dal.dataobject.workstation.WorkstationDO; +import com.win.module.wms.dal.mysql.backflushRequest.BackflushRequestDetailbMapper; import com.win.module.wms.dal.mysql.balance.BalanceMapper; +import com.win.module.wms.dal.mysql.offlinesettlementRecord.OfflinesettlementRecordDetailMapper; +import com.win.module.wms.dal.mysql.offlinesettlementRecord.OfflinesettlementRecordMainMapper; +import com.win.module.wms.dal.mysql.productreceiptRecord.BackflushRecordDetailbMapper; import com.win.module.wms.dal.mysql.productreceiptRecord.ProductreceiptRecordDetailMapper; import com.win.module.wms.dal.mysql.productreceiptRecord.ProductreceiptRecordMainMapper; +import com.win.module.wms.dal.mysql.productreceiptRequest.ProductreceiptRequestDetailMapper; +import com.win.module.wms.service.balance.BalanceService; +import com.win.module.wms.service.businesstype.BusinesstypeService; import com.win.module.wms.service.itembasic.ItembasicService; import com.win.module.wms.service.location.LocationService; import com.win.module.wms.service.productreceiptJob.ProductreceiptJobMainService; +import com.win.module.wms.service.productreceiptRequest.ProductreceiptRequestDetailService; import com.win.module.wms.service.recordsetting.RecordsettingService; +import com.win.module.wms.service.supplieritem.SupplieritemService; import com.win.module.wms.service.transaction.TransactionService; +import com.win.module.wms.service.transactiontype.TransactiontypeService; +import com.win.module.wms.service.workstation.WorkstationService; import com.win.module.wms.util.JobUtils; import org.springframework.beans.BeanUtils; import org.springframework.stereotype.Service; @@ -46,6 +64,7 @@ import java.time.LocalDateTime; import java.util.ArrayList; import java.util.Collection; import java.util.List; +import java.util.stream.Collectors; import static com.win.framework.common.exception.util.ServiceExceptionUtil.exception; import static com.win.framework.security.core.util.SecurityFrameworkUtils.getLoginUserId; @@ -63,8 +82,6 @@ public class ProductreceiptRecordMainServiceImpl implements ProductreceiptRecord @Resource private BalanceMapper balanceMapper; @Resource - private ProductreceiptJobMainService productreceiptJobMainService; - @Resource private ProductreceiptRecordDetailMapper productreceiptRecordDetailMapper; @Resource private TransactionService transactionService; @@ -84,6 +101,26 @@ public class ProductreceiptRecordMainServiceImpl implements ProductreceiptRecord private AdminUserApi userApi; @Resource private ProductreceiptRecordMainMapper productreceiptRecordMainMapper; + @Resource + private SupplieritemService supplieritemService; + @Resource + private BusinesstypeService businesstypeService; + @Resource + private TransactiontypeService transactiontypeService; + @Resource + private ProductreceiptRequestDetailMapper productreceiptRequestDetailMapper; + @Resource + private BackflushRecordDetailbMapper backflushRecordDetailbMapper; + @Resource + private BalanceService balanceService; + @Resource + private WorkstationService workstationService; + @Resource + private BackflushRequestDetailbMapper backflushRequestDetailbMapper; + @Resource + private OfflinesettlementRecordDetailMapper offlinesettlementRecordDetailMapper; + @Resource + private OfflinesettlementRecordMainMapper offlinesettlementRecordMainMapper; @Override @Transactional @@ -161,7 +198,7 @@ public class ProductreceiptRecordMainServiceImpl implements ProductreceiptRecord transactionCreateReqVOList.add(transactionCreateReqVOIn); } // 创建第二子表回冲记录及库存事务 - productreceiptJobMainService.generateBackflushRecord(mainDO,subDOList); + generateBackflushRecord(mainDO,subDOList); //增加库存事务 transactionService.createTransaction(transactionCreateReqVOList); //增加操作记录 @@ -170,6 +207,139 @@ public class ProductreceiptRecordMainServiceImpl implements ProductreceiptRecord return mainDO.getNumber(); } + /** + * 创建 回冲记录 + * @param productreceiptRecordMainDO + * @param productreceiptRecordDetailDOList + */ + public void generateBackflushRecord(ProductreceiptRecordMainDO productreceiptRecordMainDO, List productreceiptRecordDetailDOList) { + QueryWrapper queryWrapperProductreceipt = new QueryWrapper(); + queryWrapperProductreceipt.eq("number", productreceiptRecordMainDO.getRequestNumber()); + List productreceiptRequestDetailDOList = productreceiptRequestDetailMapper.selectList(queryWrapperProductreceipt); + List backflushRecordDetailbDOList = new ArrayList<>(); + // 下线结算集合 + List offlinesettlementRecordList = new ArrayList<>(); + //库存事务 + List transactionCreateReqVOList = new ArrayList<>(); + for(ProductreceiptRequestDetailDO productreceiptRequestDetailDO: productreceiptRequestDetailDOList){ + QueryWrapper queryWrapper = new QueryWrapper(); + queryWrapper.eq("master_id",productreceiptRequestDetailDO.getId().toString()); + List backflushRequestDetailbDOList = backflushRequestDetailbMapper.selectList(queryWrapper); + for(BackflushRequestDetailbDO backflushRequestDetailbDO: backflushRequestDetailbDOList ) { + ProductreceiptRecordDetailDO productreceiptRecordDetailDO = productreceiptRecordDetailDOList.stream().filter(item -> item.getItemCode().equals(productreceiptRequestDetailDO.getItemCode())).collect(Collectors.toList()).get(0); + BackflushRecordDetailbDO backflushRecordDetailbDO = new BackflushRecordDetailbDO(); + BeanUtils.copyProperties(backflushRequestDetailbDO,backflushRecordDetailbDO); + backflushRecordDetailbDO.setMasterId(productreceiptRecordDetailDO.getId()); + backflushRecordDetailbDO.setNumber(productreceiptRecordDetailDO.getNumber()); + backflushRecordDetailbDO.setId(null); + backflushRecordDetailbDO.setCreator(null); + backflushRecordDetailbDO.setCreateTime(null); + backflushRecordDetailbDO.setUpdater(null); + backflushRecordDetailbDO.setUpdateTime(null); + // from_location_code 工位表中原料库位 + // 根据 生产线 工位 查询工位信息 并赋值 from_location_code + WorkstationDO workstationDO = workstationService.selectWorkstationExist(productreceiptRecordDetailDO.getWorkStationCode(),productreceiptRecordMainDO.getWorkshopCode(),productreceiptRecordDetailDO.getProductionlineCode()); + backflushRecordDetailbDO.setFromLocationCode(workstationDO.getRawLocationCode()); + // 根据 from_location_code 查询库存余额 +// TODO: 如果按批次 查询批次获取库存余额 排序批次 如果第一条批次不够数量 需要扣除第二条余额 库存事务出的动作要存2条 + List inventoryStatus = new ArrayList<>(); + inventoryStatus.add("OK"); + List balanceDOList = balanceService.selectByNumber(backflushRequestDetailbDO.getItemCode(),inventoryStatus,workstationDO.getRawLocationCode()); + backflushRecordDetailbDO.setPackingNumber(balanceDOList.get(0).getPackingNumber()); + backflushRecordDetailbDO.setBatch(balanceDOList.get(0).getBatch()); + backflushRecordDetailbDO.setInventoryStatus("OK"); + backflushRecordDetailbDO.setFromAreaCode(balanceDOList.get(0).getAreaCode()); + backflushRecordDetailbDO.setFromLocationGroupCode(balanceDOList.get(0).getLocationGroupCode()); + // 消耗数量 = 成品数量 * bom数量 + BigDecimal qty = productreceiptRecordDetailDO.getQty().multiply(backflushRecordDetailbDO.getQty()); + backflushRecordDetailbDO.setQty(qty); + backflushRecordDetailbDOList.add(backflushRecordDetailbDO); + //查询库存余额 + BalanceDO balanceDO = balanceMapper.getBalanceQty(productreceiptRecordDetailDO.getPackingNumber(), productreceiptRecordDetailDO.getItemCode(), productreceiptRecordDetailDO.getBatch(), productreceiptRecordDetailDO.getInventoryStatus(), productreceiptRecordDetailDO.getToLocationCode()); + if (balanceDO == null) { + throw exception(BALANCE_NOT_EXISTS); + } + //添加库存事务list + // 出动作 + TransactionCreateReqVO transactionCreateReqVO = new TransactionCreateReqVO(); + BeanUtils.copyProperties(backflushRecordDetailbDO, transactionCreateReqVO); + BusinesstypeDO businesstypeDO = businesstypeService.selectBusinesstypeExist(productreceiptRecordMainDO.getBusinessType()); + TransactiontypeDO transactiontypeDO = jobUtils.selectDocumentFromTransactionType(businesstypeDO.getOutTransactionType()); + transactionCreateReqVO.setWorker(String.valueOf(userApi.getUser(getLoginUserId()).getId())); + transactionCreateReqVO.setInventoryAction(transactiontypeDO.getInventoryAction()); + transactionCreateReqVO.setTransactionType(transactiontypeDO.getCode()); + transactionCreateReqVO.setBusinessType(businesstypeDO.getCode()); + transactionCreateReqVO.setOwnerCode(""); + transactionCreateReqVO.setRecordNumber(backflushRecordDetailbDO.getNumber()); + transactionCreateReqVO.setId(null); + transactionCreateReqVO.setPackingNumber(backflushRecordDetailbDO.getPackingNumber()); + transactionCreateReqVO.setBatch(backflushRecordDetailbDO.getBatch()); + transactionCreateReqVO.setContainerNumber(""); + transactionCreateReqVO.setSinglePrice(balanceDO.getSinglePrice()); + transactionCreateReqVO.setAmount(balanceDO.getAmount()); + transactionCreateReqVO.setArriveDate(balanceDO.getArriveDate()); + transactionCreateReqVO.setProduceDate(balanceDO.getProduceDate()); + transactionCreateReqVO.setExpireDate(balanceDO.getExpireDate()); + transactionCreateReqVO.setWarehouseCode(""); + transactionCreateReqVO.setLocationCode(backflushRecordDetailbDO.getFromLocationCode()); + transactionCreateReqVO.setQty(qty); + transactionCreateReqVOList.add(transactionCreateReqVO); + // 判断 物品 是否为 下线结算物品 创建 下线结算记录 + if (itembasicService.isOfflines(backflushRecordDetailbDO.getItemCode())) { + offlinesettlementRecordList.add(backflushRecordDetailbDO); + } + } + } + backflushRecordDetailbMapper.insertBatch(backflushRecordDetailbDOList); + //增加库存事务 + transactionService.createTransaction(transactionCreateReqVOList); + // 创建 下线结算记录 + if (offlinesettlementRecordList != null && offlinesettlementRecordList.size() > 0) { + generateOfflinesettlementRecord(productreceiptRecordMainDO, offlinesettlementRecordList); + } + } + + /** + * 创建 下线结算 记录 + * @param productreceiptRecordMainDO + * @param offlinesettlementRecordList + */ + private void generateOfflinesettlementRecord(ProductreceiptRecordMainDO productreceiptRecordMainDO, List offlinesettlementRecordList) { + OfflinesettlementRecordMainDO offlinesettlementRecordMainDO = new OfflinesettlementRecordMainDO(); + BeanUtils.copyProperties(productreceiptRecordMainDO,offlinesettlementRecordMainDO); + String number = serialNumberApi.generateCode(RuleCodeEnum.OFFLINE_SETTLEMENT_RECORD.getCode()); + offlinesettlementRecordMainDO.setNumber(number); + offlinesettlementRecordMainDO.setProductReceiptRecordNumber(productreceiptRecordMainDO.getNumber()); + offlinesettlementRecordMainDO.setBusinessType(""); + offlinesettlementRecordMainDO.setInTransactionType(""); + offlinesettlementRecordMainDO.setOutTransactionType(""); + offlinesettlementRecordMainDO.setId(null); + offlinesettlementRecordMainDO.setCreator(null); + offlinesettlementRecordMainDO.setCreateTime(null); + offlinesettlementRecordMainDO.setUpdater(null); + offlinesettlementRecordMainDO.setUpdateTime(null); + offlinesettlementRecordMainMapper.insert(offlinesettlementRecordMainDO); + //上线结算记录子 集合 + List offlinesettlementRecordDetailDOList = new ArrayList<>(); + for(BackflushRecordDetailbDO backflushRecordDetailbDO : offlinesettlementRecordList ) { + OfflinesettlementRecordDetailDO offlinesettlementRecordDetailDO = new OfflinesettlementRecordDetailDO(); + BeanUtils.copyProperties(backflushRecordDetailbDO,offlinesettlementRecordDetailDO); + offlinesettlementRecordDetailDO.setLocationCode(backflushRecordDetailbDO.getFromLocationCode()); + offlinesettlementRecordDetailDO.setLocationGroupCode(backflushRecordDetailbDO.getFromLocationGroupCode()); + offlinesettlementRecordDetailDO.setAreaCode(backflushRecordDetailbDO.getFromAreaCode()); + offlinesettlementRecordDetailDO.setMasterId(offlinesettlementRecordMainDO.getId()); + offlinesettlementRecordDetailDO.setId(null); + offlinesettlementRecordDetailDO.setCreator(null); + offlinesettlementRecordDetailDO.setCreateTime(null); + offlinesettlementRecordDetailDO.setUpdater(null); + offlinesettlementRecordDetailDO.setUpdateTime(null); + offlinesettlementRecordDetailDOList.add(offlinesettlementRecordDetailDO); + } + if(offlinesettlementRecordDetailDOList != null && offlinesettlementRecordDetailDOList.size() > 0) { + offlinesettlementRecordDetailMapper.insertBatch(offlinesettlementRecordDetailDOList); + } + } + @Override public void updateProductreceiptRecordMain(ProductreceiptRecordMainUpdateReqVO updateReqVO) { // 校验存在 diff --git a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/productreceiptRequest/ProductreceiptRequestDetailServiceImpl.java b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/productreceiptRequest/ProductreceiptRequestDetailServiceImpl.java index c50ff6eb..590c1d64 100644 --- a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/productreceiptRequest/ProductreceiptRequestDetailServiceImpl.java +++ b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/productreceiptRequest/ProductreceiptRequestDetailServiceImpl.java @@ -1,6 +1,7 @@ package com.win.module.wms.service.productreceiptRequest; import cn.hutool.core.exceptions.UtilException; +import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.win.framework.common.pojo.CustomConditions; import com.win.framework.common.pojo.PageResult; import com.win.module.wms.controller.productreceiptRequest.vo.ProductreceiptRequestDetailCreateReqVO; @@ -172,4 +173,5 @@ public class ProductreceiptRequestDetailServiceImpl implements ProductreceiptReq updateObj.setPackingNumber(packingNumber); productreceiptRequestDetailMapper.updateById(updateObj); } + } diff --git a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/productreceiptRequest/ProductreceiptRequestMainService.java b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/productreceiptRequest/ProductreceiptRequestMainService.java index ff3ba0bb..f4cbb959 100644 --- a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/productreceiptRequest/ProductreceiptRequestMainService.java +++ b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/productreceiptRequest/ProductreceiptRequestMainService.java @@ -84,8 +84,6 @@ public interface ProductreceiptRequestMainService { List importProductreceiptRequestList(List createReqVOList, Integer mode, Boolean updatePart); - List getProductreceiptRequestDetailDOByNumber(String requestNumber); - void generateBackflushRequest(ProductreceiptRequestDetailDO detailbDO); Integer closeProductreceiptRequestMain(Long id); diff --git a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/productreceiptRequest/ProductreceiptRequestMainServiceImpl.java b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/productreceiptRequest/ProductreceiptRequestMainServiceImpl.java index 09fecbf9..e975099d 100644 --- a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/productreceiptRequest/ProductreceiptRequestMainServiceImpl.java +++ b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/productreceiptRequest/ProductreceiptRequestMainServiceImpl.java @@ -3,14 +3,11 @@ package com.win.module.wms.service.productreceiptRequest; import cn.hutool.core.bean.BeanUtil; import cn.hutool.core.collection.CollUtil; import cn.hutool.core.exceptions.UtilException; -import cn.hutool.json.JSONObject; -import cn.hutool.json.JSONUtil; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.win.framework.common.exception.ServiceException; import com.win.framework.common.pojo.CustomConditions; import com.win.framework.common.pojo.PageResult; import com.win.framework.common.util.validation.ValidationUtils; -import com.win.framework.dict.core.util.DictFrameworkUtils; import com.win.module.infra.api.trends.TrendsApi; import com.win.module.infra.enums.TrendsTypeEnum; import com.win.module.system.api.dict.DictDataApi; @@ -18,17 +15,15 @@ import com.win.module.system.api.serialnumber.SerialNumberApi; import com.win.module.system.api.user.AdminUserApi; import com.win.module.system.enums.serialNumber.RuleCodeEnum; import com.win.module.wms.controller.expectin.vo.ExpectinCreateReqVO; +import com.win.module.wms.controller.productreceiptRecord.vo.ProductreceiptRecordDetailCreateReqVO; +import com.win.module.wms.controller.productreceiptRecord.vo.ProductreceiptRecordMainCreateReqVO; import com.win.module.wms.controller.productreceiptRequest.vo.*; -import com.win.module.wms.controller.rule.vo.RuleRespVO; +import com.win.module.wms.convert.productreceiptRecord.ProductreceiptRecordDetailConvert; +import com.win.module.wms.convert.productreceiptRecord.ProductreceiptRecordMainConvert; import com.win.module.wms.convert.productreceiptRequest.ProductreceiptRequestDetailConvert; import com.win.module.wms.convert.productreceiptRequest.ProductreceiptRequestMainConvert; -import com.win.module.wms.dal.dataobject.accountcalendar.AccountcalendarDO; import com.win.module.wms.dal.dataobject.backflushRequest.BackflushRequestDetailbDO; -import com.win.module.wms.dal.dataobject.bom.BomDO; import com.win.module.wms.dal.dataobject.businesstype.BusinesstypeDO; -import com.win.module.wms.dal.dataobject.issueJob.IssueJobDetailDO; -import com.win.module.wms.dal.dataobject.issueJob.IssueJobMainDO; -import com.win.module.wms.dal.dataobject.issueRequest.IssueRequestMainDO; import com.win.module.wms.dal.dataobject.itembasic.ItembasicDO; import com.win.module.wms.dal.dataobject.itempackaging.ItempackagingDO; import com.win.module.wms.dal.dataobject.jobsetting.JobsettingDO; @@ -37,7 +32,6 @@ import com.win.module.wms.dal.dataobject.productreceiptJob.ProductreceiptJobDeta import com.win.module.wms.dal.dataobject.productreceiptJob.ProductreceiptJobMainDO; import com.win.module.wms.dal.dataobject.productreceiptRequest.ProductreceiptRequestDetailDO; import com.win.module.wms.dal.dataobject.productreceiptRequest.ProductreceiptRequestMainDO; -import com.win.module.wms.dal.dataobject.purchasereceiptJob.PurchasereceiptJobMainDO; import com.win.module.wms.dal.dataobject.requestsetting.RequestsettingDO; import com.win.module.wms.dal.dataobject.workstation.WorkstationDO; import com.win.module.wms.dal.mysql.backflushRequest.BackflushRequestDetailbMapper; @@ -45,8 +39,6 @@ import com.win.module.wms.dal.mysql.productreceiptJob.ProductreceiptJobDetailMap import com.win.module.wms.dal.mysql.productreceiptJob.ProductreceiptJobMainMapper; import com.win.module.wms.dal.mysql.productreceiptRequest.ProductreceiptRequestDetailMapper; import com.win.module.wms.dal.mysql.productreceiptRequest.ProductreceiptRequestMainMapper; -import com.win.module.wms.dal.mysql.purchasereceiptJob.PurchasereceiptJobMainMapper; -import com.win.module.wms.enums.DictTypeConstants; import com.win.module.wms.enums.job.JobStatusEnum; import com.win.module.wms.enums.request.RequestStatusEnum; import com.win.module.wms.enums.request.RequestStatusState; @@ -58,6 +50,7 @@ import com.win.module.wms.service.itempackaging.ItempackagingService; import com.win.module.wms.service.jobsetting.JobsettingService; import com.win.module.wms.service.productionline.ProductionlineService; import com.win.module.wms.service.productionlineitem.ProductionlineitemService; +import com.win.module.wms.service.productreceiptRecord.ProductreceiptRecordMainService; import com.win.module.wms.service.requestsetting.RequestsettingService; import com.win.module.wms.service.shift.ShiftService; import com.win.module.wms.service.team.TeamService; @@ -91,6 +84,8 @@ import static com.win.module.wms.enums.ErrorCodeConstants.*; @Validated public class ProductreceiptRequestMainServiceImpl implements ProductreceiptRequestMainService { + @Resource + private ProductreceiptRecordMainService productreceiptRecordMainService; @Resource private ProductreceiptJobDetailMapper productreceiptJobDetailMapper; @Resource @@ -228,7 +223,7 @@ public class ProductreceiptRequestMainServiceImpl implements ProductreceiptReque mainDo.setAutoCommit(requestsettingDO.getAutoCommit()); mainDo.setAutoExecute(requestsettingDO.getAutoExecute()); mainDo.setDirectCreateRecord(requestsettingDO.getDirectCreateRecord()); - RequestStatusState requestStatusState = new RequestStatusState(); + RequestStatusState requestStatusState = new RequestStatusState(mainDo.getStatus()); requestStatusState.newObject(requestsettingDO.getAutoCommit(), requestsettingDO.getAutoAgree(), requestsettingDO.getAutoExecute()); mainDo.setStatus(requestStatusState.getState().getCode()); } @@ -360,7 +355,7 @@ public class ProductreceiptRequestMainServiceImpl implements ProductreceiptReque mainDo.setAutoCommit(requestsettingDO.getAutoCommit()); mainDo.setAutoExecute(requestsettingDO.getAutoExecute()); mainDo.setDirectCreateRecord(requestsettingDO.getDirectCreateRecord()); - RequestStatusState requestStatusState = new RequestStatusState(); + RequestStatusState requestStatusState = new RequestStatusState(mainDo.getStatus()); requestStatusState.newObject(requestsettingDO.getAutoCommit(), requestsettingDO.getAutoAgree(), requestsettingDO.getAutoExecute()); mainDo.setStatus(requestStatusState.getState().getCode()); } @@ -504,13 +499,6 @@ public class ProductreceiptRequestMainServiceImpl implements ProductreceiptReque return errorList; } - @Override - public List getProductreceiptRequestDetailDOByNumber(String requestNumber) { - QueryWrapper queryWrapper = new QueryWrapper(); - queryWrapper.eq("number", requestNumber); - return productreceiptRequestDetailMapper.selectList(queryWrapper); - } - /** * 创建 制品收货申请第二子表(bom相关) * @param detailbDO @@ -677,23 +665,14 @@ public class ProductreceiptRequestMainServiceImpl implements ProductreceiptReque private void generateJob(ProductreceiptRequestMainDO mainDO, List detailDOList) { //跳过任务直接生成记录 if("TRUE".equals(mainDO.getDirectCreateRecord())) { -// TODO: 制品收货申请 跳过任务直接生成记录 未做!! -// PurchasereceiptRecordMainCreateReqVO purchasereceiptRecordMainCreateReqVO = new PurchasereceiptRecordMainCreateReqVO(); -// BeanUtils.copyProperties(mainDO, purchasereceiptRecordMainCreateReqVO); -// purchasereceiptRecordMainCreateReqVO.setRequestNumber(mainDO.getNumber()); -// String number = serialNumberApi.generateCode(RuleCodeEnum.PURCHASE_RECEIPT_RECORD.getCode()); -// purchasereceiptRecordMainCreateReqVO.setNumber(number); -// //增加业务类型 -// BusinesstypeDO businesstypeDO = jobUtils.selectDocumentSettingFromBusinessType("PurchaseReceiptRecord"); -// purchasereceiptRecordMainCreateReqVO.setBusinessType(businesstypeDO.getCode()); -// purchasereceiptRecordMainMapper.insert(PurchasereceiptRecordMainConvert.INSTANCE.convert(purchasereceiptRecordMainCreateReqVO)); -// for(PurchasereceiptRequestDetailDO purchasereceiptRequestDetailDO : detailDOList) { -// PurchasereceiptRecordDetailCreateReqVO purchasereceiptRecordDetailCreateReqVO = new PurchasereceiptRecordDetailCreateReqVO(); -// BeanUtils.copyProperties(purchasereceiptRequestDetailDO, purchasereceiptRecordDetailCreateReqVO); -// purchasereceiptRecordDetailCreateReqVO.setNumber(number); -// purchasereceiptRecordDetailMapper.insert(PurchasereceiptRecordDetailConvert.INSTANCE.convert(purchasereceiptRecordDetailCreateReqVO)); -// } -// return; + ProductreceiptRecordMainCreateReqVO createReqVO = ProductreceiptRecordMainConvert.INSTANCE.convert(mainDO); + List productreceiptRecordDetailCreateReqVOList = ProductreceiptRecordDetailConvert.INSTANCE.convert(detailDOList); + createReqVO.setSubList(productreceiptRecordDetailCreateReqVOList); + productreceiptRecordMainService.createProductreceiptRecordMain(createReqVO); + // 更新申请状态为已完成 + mainDO.setStatus(RequestStatusEnum.COMPLETED.getCode()); + productreceiptRequestMainMapper.updateById(mainDO); + return; } // 任务主表信息 ProductreceiptJobMainDO productreceiptJobMainDO = new ProductreceiptJobMainDO(); diff --git a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/repleinshJob/RepleinshJobMainServiceImpl.java b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/repleinshJob/RepleinshJobMainServiceImpl.java index 316935f9..63b81d3d 100644 --- a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/repleinshJob/RepleinshJobMainServiceImpl.java +++ b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/repleinshJob/RepleinshJobMainServiceImpl.java @@ -11,24 +11,30 @@ import com.win.module.system.api.user.AdminUserApi; import com.win.module.system.api.user.dto.AdminUserRespDTO; import com.win.module.system.enums.serialNumber.RuleCodeEnum; import com.win.module.wms.controller.repleinshJob.vo.*; +import com.win.module.wms.controller.repleinshRequest.vo.RepleinshRequestMainUpdateReqVO; import com.win.module.wms.controller.transaction.vo.TransactionCreateReqVO; import com.win.module.wms.convert.repleinshJob.RepleinshJobMainConvert; +import com.win.module.wms.convert.repleinshRequest.RepleinshRequestMainConvert; import com.win.module.wms.dal.dataobject.businesstype.BusinesstypeDO; import com.win.module.wms.dal.dataobject.location.LocationDO; import com.win.module.wms.dal.dataobject.repleinshJob.RepleinshJobDetailDO; import com.win.module.wms.dal.dataobject.repleinshJob.RepleinshJobMainDO; import com.win.module.wms.dal.dataobject.repleinshRecord.RepleinshRecordDetailDO; import com.win.module.wms.dal.dataobject.repleinshRecord.RepleinshRecordMainDO; +import com.win.module.wms.dal.dataobject.repleinshRequest.RepleinshRequestMainDO; import com.win.module.wms.dal.dataobject.transactiontype.TransactiontypeDO; import com.win.module.wms.dal.mysql.repleinshJob.RepleinshJobMainMapper; import com.win.module.wms.dal.mysql.repleinshRecord.RepleinshRecordDetailMapper; import com.win.module.wms.dal.mysql.repleinshRecord.RepleinshRecordMainMapper; +import com.win.module.wms.dal.mysql.repleinshRequest.RepleinshRequestMainMapper; import com.win.module.wms.enums.job.JobStatusEnum; import com.win.module.wms.enums.job.JobStatusState; +import com.win.module.wms.enums.request.RequestStatusEnum; import com.win.module.wms.service.expectin.ExpectinService; import com.win.module.wms.service.expectout.ExpectoutService; import com.win.module.wms.service.location.LocationService; import com.win.module.wms.service.recordsetting.RecordsettingService; +import com.win.module.wms.service.repleinshRequest.RepleinshRequestMainService; import com.win.module.wms.service.transaction.TransactionService; import com.win.module.wms.util.JobUtils; import org.springframework.beans.BeanUtils; @@ -55,6 +61,10 @@ import static com.win.module.wms.enums.ErrorCodeConstants.REPLEINSH_JOB_MAIN_STA @Validated public class RepleinshJobMainServiceImpl implements RepleinshJobMainService { + @Resource + private RepleinshRequestMainService repleinshRequestMainService; + @Resource + private RepleinshRequestMainMapper repleinshRequestMainMapper; @Resource private ExpectinService expectinService; @Resource @@ -363,6 +373,12 @@ public class RepleinshJobMainServiceImpl implements RepleinshJobMainService { expectinService.deleteExpectinByJobNumber(repleinshRecordMainDO.getNumber()); //移除预计出 expectoutService.deleteExpectoutByJobNumber(repleinshRecordMainDO.getNumber()); + // 更新申请状态为已完成 + QueryWrapper queryWrapper = new QueryWrapper<>(); + queryWrapper.eq("number", repleinshJobMainDO.getRequestNumber()); + RepleinshRequestMainDO repleinshRequestMainDO = repleinshRequestMainMapper.selectOne(queryWrapper); + repleinshRequestMainDO.setStatus(RequestStatusEnum.COMPLETED.getCode()); + repleinshRequestMainMapper.updateById(repleinshRequestMainDO); //变更记录 trendsApi.createTrends(repleinshRecordMainDO.getId(), "repleinshJob", "执行了补料任务", TrendsTypeEnum.UPDATE); return number; diff --git a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/repleinshRequest/RepleinshRequestMainServiceImpl.java b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/repleinshRequest/RepleinshRequestMainServiceImpl.java index beae5f3b..011afe2e 100644 --- a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/repleinshRequest/RepleinshRequestMainServiceImpl.java +++ b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/repleinshRequest/RepleinshRequestMainServiceImpl.java @@ -12,7 +12,17 @@ import com.win.module.system.api.serialnumber.SerialNumberApi; import com.win.module.system.enums.serialNumber.RuleCodeEnum; import com.win.module.wms.controller.expectin.vo.ExpectinCreateReqVO; import com.win.module.wms.controller.expectout.vo.ExpectoutCreateReqVO; +import com.win.module.wms.controller.issueRecord.vo.IssueRecordDetailCreateReqVO; +import com.win.module.wms.controller.issueRecord.vo.IssueRecordMainCreateReqVO; +import com.win.module.wms.controller.issueRequest.vo.IssueRequestMainUpdateReqVO; +import com.win.module.wms.controller.repleinshRecord.vo.RepleinshRecordDetailCreateReqVO; +import com.win.module.wms.controller.repleinshRecord.vo.RepleinshRecordMainCreateReqVO; import com.win.module.wms.controller.repleinshRequest.vo.*; +import com.win.module.wms.convert.issueRecord.IssueRecordDetailConvert; +import com.win.module.wms.convert.issueRecord.IssueRecordMainConvert; +import com.win.module.wms.convert.issueRequest.IssueRequestMainConvert; +import com.win.module.wms.convert.repleinshRecord.RepleinshRecordDetailConvert; +import com.win.module.wms.convert.repleinshRecord.RepleinshRecordMainConvert; import com.win.module.wms.convert.repleinshRequest.RepleinshRequestDetailConvert; import com.win.module.wms.convert.repleinshRequest.RepleinshRequestMainConvert; import com.win.module.wms.dal.dataobject.balance.BalanceDO; @@ -41,6 +51,7 @@ import com.win.module.wms.service.expectout.ExpectoutService; import com.win.module.wms.service.itembasic.ItembasicService; import com.win.module.wms.service.itempackaging.ItempackagingService; import com.win.module.wms.service.jobsetting.JobsettingService; +import com.win.module.wms.service.repleinshRecord.RepleinshRecordMainService; import com.win.module.wms.service.requestsetting.RequestsettingService; import com.win.module.wms.service.shift.ShiftService; import com.win.module.wms.service.supplieritem.SupplieritemService; @@ -67,6 +78,9 @@ import static com.win.module.wms.enums.ErrorCodeConstants.*; @Service @Validated public class RepleinshRequestMainServiceImpl implements RepleinshRequestMainService { + + @Resource + private RepleinshRecordMainService repleinshRecordMainService; @Resource private ExpectoutService expectoutService; @Resource @@ -117,7 +131,7 @@ public class RepleinshRequestMainServiceImpl implements RepleinshRequestMainServ String number = serialNumberApi.generateCode(RuleCodeEnum.REPLEINMENT_REQUEST.getCode()); mainDO.setNumber(number); RequestsettingDO requestsettingDO = requestsettingService.selectRequestsettingExist("RepleinmentRequest"); - RequestStatusState requestStatusState = new RequestStatusState(); + RequestStatusState requestStatusState = new RequestStatusState(mainDO.getStatus()); requestStatusState.newObject(requestsettingDO.getAutoCommit(), requestsettingDO.getAutoAgree(), requestsettingDO.getAutoExecute()); mainDO.setStatus(requestStatusState.getState().getCode()); mainDO.setAutoCommit(requestsettingDO.getAutoCommit()); @@ -239,7 +253,7 @@ public class RepleinshRequestMainServiceImpl implements RepleinshRequestMainServ String number = serialNumberApi.generateCode(RuleCodeEnum.REPLEINMENT_REQUEST.getCode()); mainDO.setNumber(number); RequestsettingDO requestsettingDO = requestsettingService.selectRequestsettingExist("RepleinmentRequest"); - RequestStatusState requestStatusState = new RequestStatusState(); + RequestStatusState requestStatusState = new RequestStatusState(mainDO.getStatus()); requestStatusState.newObject(requestsettingDO.getAutoCommit(), requestsettingDO.getAutoAgree(), requestsettingDO.getAutoExecute()); mainDO.setStatus(requestStatusState.getState().getCode()); mainDO.setAutoCommit(requestsettingDO.getAutoCommit()); @@ -497,7 +511,14 @@ public class RepleinshRequestMainServiceImpl implements RepleinshRequestMainServ private void generateJob(RepleinshRequestMainDO mainDO, List detailDO) { //跳过任务直接生成记录 if("TRUE".equals(mainDO.getDirectCreateRecord())) { -// TODO: 发料申请 跳过任务直接生成记录 未做!! + RepleinshRecordMainCreateReqVO createReqVO = RepleinshRecordMainConvert.INSTANCE.convert(mainDO); + List repleinshRecordDetailCreateReqVOList = RepleinshRecordDetailConvert.INSTANCE.convert(detailDO); + createReqVO.setSubList(repleinshRecordDetailCreateReqVOList); + repleinshRecordMainService.createRepleinshRecordMain(createReqVO); + // 更新申请状态为已完成 + mainDO.setStatus(RequestStatusEnum.COMPLETED.getCode()); + repleinshRequestMainMapper.updateById(mainDO); + return; } // 根据 子表 toLocationCode 拆分任务 Map> listMap = new HashMap<>();