Browse Source

制品收货任务 按包装进行拆分

master_hella_20240701
陈薪名 1 year ago
parent
commit
f4f434e36f
  1. 7
      win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/packageMassage/PackageService.java
  2. 10
      win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/packageMassage/PackageServiceImpl.java
  3. 24
      win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/productreceiptJob/ProductreceiptJobMainServiceImpl.java
  4. 162
      win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/productreceiptRequest/ProductreceiptRequestMainServiceImpl.java

7
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<PackageDO> getPackageListByRequestNumber(String requestNumber);
/**
* 根据 申请单号 + 包装规格
* @param requestNumber
* @return
*/
List<PackageDO> getPackageListByRequestNumberAndPackUnit(String requestNumber, String packUnit);
/**
* 查询父子包装树
* @param pageVO

10
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<PackageDO> getPackageListByRequestNumber(String requestNumber) {
QueryWrapper queryWrapper = new QueryWrapper<>();
QueryWrapper<PackageDO> queryWrapper = new QueryWrapper<>();
queryWrapper.eq("request_number", requestNumber);
return packageMapper.selectList(queryWrapper);
}
@Override
public List<PackageDO> getPackageListByRequestNumberAndPackUnit(String requestNumber, String packUnit) {
QueryWrapper<PackageDO> queryWrapper = new QueryWrapper<>();
queryWrapper.eq("request_number", requestNumber);
queryWrapper.eq("pack_unit", packUnit);
return packageMapper.selectList(queryWrapper);
}

24
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<ProductreceiptJobMainDO> productreceiptJobMainDOQueryWrapper = new QueryWrapper<>();
productreceiptJobMainDOQueryWrapper.eq("request_number", productreceiptJobMainDO.getRequestNumber());
List<String> statusList = new ArrayList<>();
statusList.add(JobStatusEnum.PROCESSING.getCode());
statusList.add(JobStatusEnum.PENDING.getCode());
productreceiptJobMainDOQueryWrapper.in("status", statusList);
List<ProductreceiptJobMainDO> productreceiptJobMainDOList = productreceiptJobMainMapper.selectList(productreceiptJobMainDOQueryWrapper);
if (productreceiptJobMainDOList.isEmpty()) {
//更新申请状态为已完成
QueryWrapper<ProductreceiptRequestMainDO> 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);

162
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<ProductreceiptJobDetailDO> productreceiptJobDetailDOList = new ArrayList<>();
List<ExpectinCreateReqVO> expectinCreateReqVOList = new ArrayList<>();
// 根据 创建的包装条数 来创建任务子表
List<PackageDO> 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<ExpectinCreateReqVO> expectinCreateReqVOList = new ArrayList<>();
List<PackageDO> 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<String, Object> 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<String, Object> 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);
}
}

Loading…
Cancel
Save