From f4f434e36f9aa2cc367dab9637003fd36ae4c4a2 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E9=99=88=E8=96=AA=E5=90=8D?= <942005050@qq.com> Date: Fri, 22 Mar 2024 11:31:32 +0800 Subject: [PATCH] =?UTF-8?q?=E5=88=B6=E5=93=81=E6=94=B6=E8=B4=A7=E4=BB=BB?= =?UTF-8?q?=E5=8A=A1=20=E6=8C=89=E5=8C=85=E8=A3=85=E8=BF=9B=E8=A1=8C?= =?UTF-8?q?=E6=8B=86=E5=88=86?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../packageMassage/PackageService.java | 7 + .../packageMassage/PackageServiceImpl.java | 10 +- .../ProductreceiptJobMainServiceImpl.java | 24 ++- .../ProductreceiptRequestMainServiceImpl.java | 162 +++++++++--------- 4 files changed, 113 insertions(+), 90 deletions(-) diff --git a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/packageMassage/PackageService.java b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/packageMassage/PackageService.java index ab078edb89..0b1cb329f2 100644 --- a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/packageMassage/PackageService.java +++ b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/packageMassage/PackageService.java @@ -132,6 +132,13 @@ public interface PackageService { List getPackageListByRequestNumber(String requestNumber); + /** + * 根据 申请单号 + 包装规格 + * @param requestNumber + * @return + */ + List getPackageListByRequestNumberAndPackUnit(String requestNumber, String packUnit); + /** * 查询父子包装树 * @param pageVO diff --git a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/packageMassage/PackageServiceImpl.java b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/packageMassage/PackageServiceImpl.java index 667ee47d6c..38985e3ba6 100644 --- a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/packageMassage/PackageServiceImpl.java +++ b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/packageMassage/PackageServiceImpl.java @@ -626,8 +626,16 @@ public class PackageServiceImpl implements PackageService { @Override public List getPackageListByRequestNumber(String requestNumber) { - QueryWrapper queryWrapper = new QueryWrapper<>(); + QueryWrapper queryWrapper = new QueryWrapper<>(); + queryWrapper.eq("request_number", requestNumber); + return packageMapper.selectList(queryWrapper); + } + + @Override + public List getPackageListByRequestNumberAndPackUnit(String requestNumber, String packUnit) { + QueryWrapper queryWrapper = new QueryWrapper<>(); queryWrapper.eq("request_number", requestNumber); + queryWrapper.eq("pack_unit", packUnit); return packageMapper.selectList(queryWrapper); } 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 5753cb2998..5b2832ef02 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 @@ -368,16 +368,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); + // 判断该申请下所有任务是否完成 + QueryWrapper productreceiptJobMainDOQueryWrapper = new QueryWrapper<>(); + productreceiptJobMainDOQueryWrapper.eq("request_number", productreceiptJobMainDO.getRequestNumber()); + List statusList = new ArrayList<>(); + statusList.add(JobStatusEnum.PROCESSING.getCode()); + statusList.add(JobStatusEnum.PENDING.getCode()); + productreceiptJobMainDOQueryWrapper.in("status", statusList); + List productreceiptJobMainDOList = productreceiptJobMainMapper.selectList(productreceiptJobMainDOQueryWrapper); + if (productreceiptJobMainDOList.isEmpty()) { + //更新申请状态为已完成 + 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("CreateProductreceiptRecordAfterProductreceiptRecordCreated"); + SwitchDO switchDOBack = switchService.selectSwitchExist("CreateBackflushRecordAfterProductreceiptRecordCreated"); if (switchDOBack.getEffectiveSetValue().equals("TRUE")) { // 创建 回冲记录(record_productreceipt_detailb) productreceiptRecordMainService.generateProductreceiptRecordByBom(productreceiptRecordMainDO, productreceiptRecordDetailDOList); 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 bc009b6f60..2e2c7baa8d 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 @@ -681,89 +681,87 @@ public class ProductreceiptRequestMainServiceImpl implements ProductreceiptReque productreceiptRequestMainMapper.updateById(mainDO); return; } - // 任务主表信息 - ProductreceiptJobMainDO productreceiptJobMainDO = new ProductreceiptJobMainDO(); - BeanUtil.copyProperties(mainDO, productreceiptJobMainDO); - String number = serialNumberApi.generateCode(RuleCodeEnum.PRODUCT_RECEIPT_JOB.getCode()); - productreceiptJobMainDO.setNumber(number); - productreceiptJobMainDO.setRequestNumber(mainDO.getNumber()); - productreceiptJobMainDO.setWorkShopCode(mainDO.getWorkshopCode()); - productreceiptJobMainDO.setRequestDueTime(mainDO.getDueTime()); - productreceiptJobMainDO.setStatus(JobStatusEnum.PENDING.getCode()); - productreceiptJobMainDO.setId(null); - productreceiptJobMainDO.setCreateTime(null); - productreceiptJobMainDO.setCreator(null); - productreceiptJobMainDO.setUpdateTime(null); - productreceiptJobMainDO.setUpdater(null); - productreceiptJobMainDO.setDepartmentCode(userApi.getUser(getLoginUserId()).getDeptId().toString()); - // 获取任务单据设置 - JobsettingDO jobsettingDO = jobsettingService.selectJobsettingExist("ProductReceiptJob"); - productreceiptJobMainDO.setAutoComplete(jobsettingDO.getAutoComplete()); - productreceiptJobMainDO.setAllowModifyLocation(jobsettingDO.getAllowModifyLocation()); - productreceiptJobMainDO.setAllowModifyQty(jobsettingDO.getAllowModifyQty()); - productreceiptJobMainDO.setAllowBiggerQty(jobsettingDO.getAllowBiggerQty()); - productreceiptJobMainDO.setAllowSmallerQty(jobsettingDO.getAllowSmallerQty()); - productreceiptJobMainDO.setAllowModifyInventoryStatus(jobsettingDO.getAllowModifyInventoryStatus()); - productreceiptJobMainDO.setAllowContinuousScanning(jobsettingDO.getAllowContinuousScanning()); - productreceiptJobMainDO.setAllowPartialComplete(jobsettingDO.getAllowPartialComplete()); - productreceiptJobMainDO.setAllowModifyPackingNumber(jobsettingDO.getAllowModifyPackingNumber()); - productreceiptJobMainDO.setAllowModifyBatch(jobsettingDO.getAllowModifyBach()); - //增加业务类型 - BusinesstypeDO businesstypeDO = jobUtils.selectDocumentSettingFromBusinessType("ProductReceiptJob","制品收货任务"); - productreceiptJobMainDO.setInInventoryStatuses(businesstypeDO.getInInventoryStatuses()); - productreceiptJobMainDO.setOutInventoryStatuses(businesstypeDO.getOutInventoryStatuses()); - productreceiptJobMainDO.setFromAreaTypes(businesstypeDO.getOutAreaTypes()); - productreceiptJobMainDO.setToAreaTypes(businesstypeDO.getInAreaTypes()); - productreceiptJobMainDO.setBusinessType(businesstypeDO.getCode()); - productreceiptJobMainMapper.insert(productreceiptJobMainDO); - List productreceiptJobDetailDOList = new ArrayList<>(); - List expectinCreateReqVOList = new ArrayList<>(); - // 根据 创建的包装条数 来创建任务子表 - List packageDOList = packageService.getPackageListByRequestNumber(mainDO.getNumber()); - for(PackageDO packageDO: packageDOList) { - for(ProductreceiptRequestDetailDO detailDO: detailDOList) { - if (packageDO.getRequestNumber().equals(mainDO.getNumber()) && packageDO.getItemCode().equals(detailDO.getItemCode())) { - ProductreceiptJobDetailDO productreceiptJobDetailDO = new ProductreceiptJobDetailDO(); - BeanUtil.copyProperties(detailDO, productreceiptJobDetailDO); - productreceiptJobDetailDO.setPackingNumber(packageDO.getNumber()); - productreceiptJobDetailDO.setPackQty(packageDO.getPackQty()); - productreceiptJobDetailDO.setPackUnit(packageDO.getPackUnit()); - productreceiptJobDetailDO.setQty(packageDO.getQty()); - productreceiptJobDetailDO.setUom(packageDO.getUom()); - productreceiptJobDetailDO.setMasterId(productreceiptJobMainDO.getId()); - productreceiptJobDetailDO.setNumber(number); - productreceiptJobDetailDO.setId(null); - productreceiptJobDetailDO.setCreateTime(null); - productreceiptJobDetailDO.setCreator(null); - productreceiptJobDetailDO.setUpdateTime(null); - productreceiptJobDetailDO.setUpdater(null); - productreceiptJobDetailDOList.add(productreceiptJobDetailDO); - //预计入 - ExpectinCreateReqVO expectinCreateReqVO = new ExpectinCreateReqVO(); - BeanUtils.copyProperties(productreceiptJobDetailDO, expectinCreateReqVO); - expectinCreateReqVO.setJobNumber(number); - expectinCreateReqVO.setBusinessType(productreceiptJobMainDO.getBusinessType()); - expectinCreateReqVO.setLocationCode(detailDO.getToLocationCode()); - expectinCreateReqVO.setOwnerCode(detailDO.getToOwnerCode()); - expectinCreateReqVOList.add(expectinCreateReqVO); - } + for(ProductreceiptRequestDetailDO detailDO: detailDOList) { + // 根据 申请的包装条数 来创建任务 + List expectinCreateReqVOList = new ArrayList<>(); + List packageDOList = packageService.getPackageListByRequestNumberAndPackUnit(mainDO.getNumber(),detailDO.getPackUnit()); + for(PackageDO packageDO: packageDOList) { + // 任务主表信息 + ProductreceiptJobMainDO productreceiptJobMainDO = new ProductreceiptJobMainDO(); + BeanUtil.copyProperties(mainDO, productreceiptJobMainDO); + String number = serialNumberApi.generateCode(RuleCodeEnum.PRODUCT_RECEIPT_JOB.getCode()); + productreceiptJobMainDO.setNumber(number); + productreceiptJobMainDO.setRequestNumber(mainDO.getNumber()); + productreceiptJobMainDO.setWorkShopCode(mainDO.getWorkshopCode()); + productreceiptJobMainDO.setRequestDueTime(mainDO.getDueTime()); + productreceiptJobMainDO.setStatus(JobStatusEnum.PENDING.getCode()); + productreceiptJobMainDO.setId(null); + productreceiptJobMainDO.setCreateTime(null); + productreceiptJobMainDO.setCreator(null); + productreceiptJobMainDO.setUpdateTime(null); + productreceiptJobMainDO.setUpdater(null); + productreceiptJobMainDO.setDepartmentCode(userApi.getUser(getLoginUserId()).getDeptId().toString()); + // 获取任务单据设置 + JobsettingDO jobsettingDO = jobsettingService.selectJobsettingExist("ProductReceiptJob"); + productreceiptJobMainDO.setAutoComplete(jobsettingDO.getAutoComplete()); + productreceiptJobMainDO.setAllowModifyLocation(jobsettingDO.getAllowModifyLocation()); + productreceiptJobMainDO.setAllowModifyQty(jobsettingDO.getAllowModifyQty()); + productreceiptJobMainDO.setAllowBiggerQty(jobsettingDO.getAllowBiggerQty()); + productreceiptJobMainDO.setAllowSmallerQty(jobsettingDO.getAllowSmallerQty()); + productreceiptJobMainDO.setAllowModifyInventoryStatus(jobsettingDO.getAllowModifyInventoryStatus()); + productreceiptJobMainDO.setAllowContinuousScanning(jobsettingDO.getAllowContinuousScanning()); + productreceiptJobMainDO.setAllowPartialComplete(jobsettingDO.getAllowPartialComplete()); + productreceiptJobMainDO.setAllowModifyPackingNumber(jobsettingDO.getAllowModifyPackingNumber()); + productreceiptJobMainDO.setAllowModifyBatch(jobsettingDO.getAllowModifyBach()); + //增加业务类型 + BusinesstypeDO businesstypeDO = jobUtils.selectDocumentSettingFromBusinessType("ProductReceiptJob","制品收货任务"); + productreceiptJobMainDO.setInInventoryStatuses(businesstypeDO.getInInventoryStatuses()); + productreceiptJobMainDO.setOutInventoryStatuses(businesstypeDO.getOutInventoryStatuses()); + productreceiptJobMainDO.setFromAreaTypes(businesstypeDO.getOutAreaTypes()); + productreceiptJobMainDO.setToAreaTypes(businesstypeDO.getInAreaTypes()); + productreceiptJobMainDO.setBusinessType(businesstypeDO.getCode()); + productreceiptJobMainMapper.insert(productreceiptJobMainDO); + + ProductreceiptJobDetailDO productreceiptJobDetailDO = new ProductreceiptJobDetailDO(); + BeanUtil.copyProperties(detailDO, productreceiptJobDetailDO); + productreceiptJobDetailDO.setPackingNumber(packageDO.getNumber()); + productreceiptJobDetailDO.setPackQty(packageDO.getPackQty()); + productreceiptJobDetailDO.setPackUnit(packageDO.getPackUnit()); + productreceiptJobDetailDO.setQty(packageDO.getQty()); + productreceiptJobDetailDO.setUom(packageDO.getUom()); + productreceiptJobDetailDO.setMasterId(productreceiptJobMainDO.getId()); + productreceiptJobDetailDO.setNumber(number); + productreceiptJobDetailDO.setId(null); + productreceiptJobDetailDO.setCreateTime(null); + productreceiptJobDetailDO.setCreator(null); + productreceiptJobDetailDO.setUpdateTime(null); + productreceiptJobDetailDO.setUpdater(null); + //预计入 + ExpectinCreateReqVO expectinCreateReqVO = new ExpectinCreateReqVO(); + BeanUtils.copyProperties(productreceiptJobDetailDO, expectinCreateReqVO); + expectinCreateReqVO.setJobNumber(number); + expectinCreateReqVO.setBusinessType(productreceiptJobMainDO.getBusinessType()); + expectinCreateReqVO.setLocationCode(detailDO.getToLocationCode()); + expectinCreateReqVO.setOwnerCode(detailDO.getToOwnerCode()); + expectinCreateReqVOList.add(expectinCreateReqVO); + + productreceiptJobDetailMapper.insert(productreceiptJobDetailDO); + //增加预计入 + expectinService.createExpectin(expectinCreateReqVOList); + trendsApi.createTrends(productreceiptJobMainDO.getId(), "productreceiptJob", "制品收货申请生成制品收货任务", TrendsTypeEnum.CREATE); + //消息通知 + NotifySendSingleToRoleReqDTO notifySendSingleToRoleReqDTO = new NotifySendSingleToRoleReqDTO(); + notifySendSingleToRoleReqDTO.setRoleId(1L); + notifySendSingleToRoleReqDTO.setTemplateCode("createJob"); + Map templateParams = new HashMap<>(); + DateTimeFormatter fmt = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"); + String dateTime = LocalDateTime.now().format(fmt); + templateParams.put("name","制品收货任务"); + templateParams.put("dateTime", dateTime); + templateParams.put("number", productreceiptJobMainDO.getNumber()); + notifySendSingleToRoleReqDTO.setTemplateParams(templateParams); + notifyMessageSendApi.sendMessageToRole(notifySendSingleToRoleReqDTO); } } - productreceiptJobDetailMapper.insertBatch(productreceiptJobDetailDOList); - //增加预计入 - expectinService.createExpectin(expectinCreateReqVOList); - trendsApi.createTrends(productreceiptJobMainDO.getId(), "productreceiptJob", "制品收货申请生成制品收货任务", TrendsTypeEnum.CREATE); - //消息通知 - NotifySendSingleToRoleReqDTO notifySendSingleToRoleReqDTO = new NotifySendSingleToRoleReqDTO(); - notifySendSingleToRoleReqDTO.setRoleId(1L); - notifySendSingleToRoleReqDTO.setTemplateCode("createJob"); - Map templateParams = new HashMap<>(); - DateTimeFormatter fmt = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"); - String dateTime = LocalDateTime.now().format(fmt); - templateParams.put("name","制品收货任务"); - templateParams.put("dateTime", dateTime); - templateParams.put("number", productreceiptJobMainDO.getNumber()); - notifySendSingleToRoleReqDTO.setTemplateParams(templateParams); - notifyMessageSendApi.sendMessageToRole(notifySendSingleToRoleReqDTO); } }