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); List<PackageDO> getPackageListByRequestNumber(String requestNumber);
/**
* 根据 申请单号 + 包装规格
* @param requestNumber
* @return
*/
List<PackageDO> getPackageListByRequestNumberAndPackUnit(String requestNumber, String packUnit);
/** /**
* 查询父子包装树 * 查询父子包装树
* @param pageVO * @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 @Override
public List<PackageDO> getPackageListByRequestNumber(String requestNumber) { 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("request_number", requestNumber);
queryWrapper.eq("pack_unit", packUnit);
return packageMapper.selectList(queryWrapper); 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); transactionService.createTransaction(transactionCreateReqVOList);
//移除预计入 //移除预计入
expectinService.deleteExpectinByJobNumber(productreceiptJobMainDO.getNumber()); expectinService.deleteExpectinByJobNumber(productreceiptJobMainDO.getNumber());
// 更新申请状态为已完成 // 判断该申请下所有任务是否完成
QueryWrapper queryWrapper = new QueryWrapper<>(); QueryWrapper<ProductreceiptJobMainDO> productreceiptJobMainDOQueryWrapper = new QueryWrapper<>();
queryWrapper.eq("number", productreceiptJobMainDO.getRequestNumber()); productreceiptJobMainDOQueryWrapper.eq("request_number", productreceiptJobMainDO.getRequestNumber());
ProductreceiptRequestMainDO productreceiptRequestMainDO = productreceiptRequestMainMapper.selectOne(queryWrapper); List<String> statusList = new ArrayList<>();
productreceiptRequestMainDO.setStatus(RequestStatusEnum.COMPLETED.getCode()); statusList.add(JobStatusEnum.PROCESSING.getCode());
productreceiptRequestMainMapper.updateById(productreceiptRequestMainDO); 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); trendsApi.createTrends(productreceiptJobMainDO.getId(), "productreceiptJob", "执行了制品收货任务", TrendsTypeEnum.UPDATE);
// 根据单据开关判断是否创建 回冲记录 // 根据单据开关判断是否创建 回冲记录
SwitchDO switchDOBack = switchService.selectSwitchExist("CreateProductreceiptRecordAfterProductreceiptRecordCreated"); SwitchDO switchDOBack = switchService.selectSwitchExist("CreateBackflushRecordAfterProductreceiptRecordCreated");
if (switchDOBack.getEffectiveSetValue().equals("TRUE")) { if (switchDOBack.getEffectiveSetValue().equals("TRUE")) {
// 创建 回冲记录(record_productreceipt_detailb) // 创建 回冲记录(record_productreceipt_detailb)
productreceiptRecordMainService.generateProductreceiptRecordByBom(productreceiptRecordMainDO, productreceiptRecordDetailDOList); 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); productreceiptRequestMainMapper.updateById(mainDO);
return; return;
} }
// 任务主表信息 for(ProductreceiptRequestDetailDO detailDO: detailDOList) {
ProductreceiptJobMainDO productreceiptJobMainDO = new ProductreceiptJobMainDO(); // 根据 申请的包装条数 来创建任务
BeanUtil.copyProperties(mainDO, productreceiptJobMainDO); List<ExpectinCreateReqVO> expectinCreateReqVOList = new ArrayList<>();
String number = serialNumberApi.generateCode(RuleCodeEnum.PRODUCT_RECEIPT_JOB.getCode()); List<PackageDO> packageDOList = packageService.getPackageListByRequestNumberAndPackUnit(mainDO.getNumber(),detailDO.getPackUnit());
productreceiptJobMainDO.setNumber(number); for(PackageDO packageDO: packageDOList) {
productreceiptJobMainDO.setRequestNumber(mainDO.getNumber()); // 任务主表信息
productreceiptJobMainDO.setWorkShopCode(mainDO.getWorkshopCode()); ProductreceiptJobMainDO productreceiptJobMainDO = new ProductreceiptJobMainDO();
productreceiptJobMainDO.setRequestDueTime(mainDO.getDueTime()); BeanUtil.copyProperties(mainDO, productreceiptJobMainDO);
productreceiptJobMainDO.setStatus(JobStatusEnum.PENDING.getCode()); String number = serialNumberApi.generateCode(RuleCodeEnum.PRODUCT_RECEIPT_JOB.getCode());
productreceiptJobMainDO.setId(null); productreceiptJobMainDO.setNumber(number);
productreceiptJobMainDO.setCreateTime(null); productreceiptJobMainDO.setRequestNumber(mainDO.getNumber());
productreceiptJobMainDO.setCreator(null); productreceiptJobMainDO.setWorkShopCode(mainDO.getWorkshopCode());
productreceiptJobMainDO.setUpdateTime(null); productreceiptJobMainDO.setRequestDueTime(mainDO.getDueTime());
productreceiptJobMainDO.setUpdater(null); productreceiptJobMainDO.setStatus(JobStatusEnum.PENDING.getCode());
productreceiptJobMainDO.setDepartmentCode(userApi.getUser(getLoginUserId()).getDeptId().toString()); productreceiptJobMainDO.setId(null);
// 获取任务单据设置 productreceiptJobMainDO.setCreateTime(null);
JobsettingDO jobsettingDO = jobsettingService.selectJobsettingExist("ProductReceiptJob"); productreceiptJobMainDO.setCreator(null);
productreceiptJobMainDO.setAutoComplete(jobsettingDO.getAutoComplete()); productreceiptJobMainDO.setUpdateTime(null);
productreceiptJobMainDO.setAllowModifyLocation(jobsettingDO.getAllowModifyLocation()); productreceiptJobMainDO.setUpdater(null);
productreceiptJobMainDO.setAllowModifyQty(jobsettingDO.getAllowModifyQty()); productreceiptJobMainDO.setDepartmentCode(userApi.getUser(getLoginUserId()).getDeptId().toString());
productreceiptJobMainDO.setAllowBiggerQty(jobsettingDO.getAllowBiggerQty()); // 获取任务单据设置
productreceiptJobMainDO.setAllowSmallerQty(jobsettingDO.getAllowSmallerQty()); JobsettingDO jobsettingDO = jobsettingService.selectJobsettingExist("ProductReceiptJob");
productreceiptJobMainDO.setAllowModifyInventoryStatus(jobsettingDO.getAllowModifyInventoryStatus()); productreceiptJobMainDO.setAutoComplete(jobsettingDO.getAutoComplete());
productreceiptJobMainDO.setAllowContinuousScanning(jobsettingDO.getAllowContinuousScanning()); productreceiptJobMainDO.setAllowModifyLocation(jobsettingDO.getAllowModifyLocation());
productreceiptJobMainDO.setAllowPartialComplete(jobsettingDO.getAllowPartialComplete()); productreceiptJobMainDO.setAllowModifyQty(jobsettingDO.getAllowModifyQty());
productreceiptJobMainDO.setAllowModifyPackingNumber(jobsettingDO.getAllowModifyPackingNumber()); productreceiptJobMainDO.setAllowBiggerQty(jobsettingDO.getAllowBiggerQty());
productreceiptJobMainDO.setAllowModifyBatch(jobsettingDO.getAllowModifyBach()); productreceiptJobMainDO.setAllowSmallerQty(jobsettingDO.getAllowSmallerQty());
//增加业务类型 productreceiptJobMainDO.setAllowModifyInventoryStatus(jobsettingDO.getAllowModifyInventoryStatus());
BusinesstypeDO businesstypeDO = jobUtils.selectDocumentSettingFromBusinessType("ProductReceiptJob","制品收货任务"); productreceiptJobMainDO.setAllowContinuousScanning(jobsettingDO.getAllowContinuousScanning());
productreceiptJobMainDO.setInInventoryStatuses(businesstypeDO.getInInventoryStatuses()); productreceiptJobMainDO.setAllowPartialComplete(jobsettingDO.getAllowPartialComplete());
productreceiptJobMainDO.setOutInventoryStatuses(businesstypeDO.getOutInventoryStatuses()); productreceiptJobMainDO.setAllowModifyPackingNumber(jobsettingDO.getAllowModifyPackingNumber());
productreceiptJobMainDO.setFromAreaTypes(businesstypeDO.getOutAreaTypes()); productreceiptJobMainDO.setAllowModifyBatch(jobsettingDO.getAllowModifyBach());
productreceiptJobMainDO.setToAreaTypes(businesstypeDO.getInAreaTypes()); //增加业务类型
productreceiptJobMainDO.setBusinessType(businesstypeDO.getCode()); BusinesstypeDO businesstypeDO = jobUtils.selectDocumentSettingFromBusinessType("ProductReceiptJob","制品收货任务");
productreceiptJobMainMapper.insert(productreceiptJobMainDO); productreceiptJobMainDO.setInInventoryStatuses(businesstypeDO.getInInventoryStatuses());
List<ProductreceiptJobDetailDO> productreceiptJobDetailDOList = new ArrayList<>(); productreceiptJobMainDO.setOutInventoryStatuses(businesstypeDO.getOutInventoryStatuses());
List<ExpectinCreateReqVO> expectinCreateReqVOList = new ArrayList<>(); productreceiptJobMainDO.setFromAreaTypes(businesstypeDO.getOutAreaTypes());
// 根据 创建的包装条数 来创建任务子表 productreceiptJobMainDO.setToAreaTypes(businesstypeDO.getInAreaTypes());
List<PackageDO> packageDOList = packageService.getPackageListByRequestNumber(mainDO.getNumber()); productreceiptJobMainDO.setBusinessType(businesstypeDO.getCode());
for(PackageDO packageDO: packageDOList) { productreceiptJobMainMapper.insert(productreceiptJobMainDO);
for(ProductreceiptRequestDetailDO detailDO: detailDOList) {
if (packageDO.getRequestNumber().equals(mainDO.getNumber()) && packageDO.getItemCode().equals(detailDO.getItemCode())) { ProductreceiptJobDetailDO productreceiptJobDetailDO = new ProductreceiptJobDetailDO();
ProductreceiptJobDetailDO productreceiptJobDetailDO = new ProductreceiptJobDetailDO(); BeanUtil.copyProperties(detailDO, productreceiptJobDetailDO);
BeanUtil.copyProperties(detailDO, productreceiptJobDetailDO); productreceiptJobDetailDO.setPackingNumber(packageDO.getNumber());
productreceiptJobDetailDO.setPackingNumber(packageDO.getNumber()); productreceiptJobDetailDO.setPackQty(packageDO.getPackQty());
productreceiptJobDetailDO.setPackQty(packageDO.getPackQty()); productreceiptJobDetailDO.setPackUnit(packageDO.getPackUnit());
productreceiptJobDetailDO.setPackUnit(packageDO.getPackUnit()); productreceiptJobDetailDO.setQty(packageDO.getQty());
productreceiptJobDetailDO.setQty(packageDO.getQty()); productreceiptJobDetailDO.setUom(packageDO.getUom());
productreceiptJobDetailDO.setUom(packageDO.getUom()); productreceiptJobDetailDO.setMasterId(productreceiptJobMainDO.getId());
productreceiptJobDetailDO.setMasterId(productreceiptJobMainDO.getId()); productreceiptJobDetailDO.setNumber(number);
productreceiptJobDetailDO.setNumber(number); productreceiptJobDetailDO.setId(null);
productreceiptJobDetailDO.setId(null); productreceiptJobDetailDO.setCreateTime(null);
productreceiptJobDetailDO.setCreateTime(null); productreceiptJobDetailDO.setCreator(null);
productreceiptJobDetailDO.setCreator(null); productreceiptJobDetailDO.setUpdateTime(null);
productreceiptJobDetailDO.setUpdateTime(null); productreceiptJobDetailDO.setUpdater(null);
productreceiptJobDetailDO.setUpdater(null); //预计入
productreceiptJobDetailDOList.add(productreceiptJobDetailDO); ExpectinCreateReqVO expectinCreateReqVO = new ExpectinCreateReqVO();
//预计入 BeanUtils.copyProperties(productreceiptJobDetailDO, expectinCreateReqVO);
ExpectinCreateReqVO expectinCreateReqVO = new ExpectinCreateReqVO(); expectinCreateReqVO.setJobNumber(number);
BeanUtils.copyProperties(productreceiptJobDetailDO, expectinCreateReqVO); expectinCreateReqVO.setBusinessType(productreceiptJobMainDO.getBusinessType());
expectinCreateReqVO.setJobNumber(number); expectinCreateReqVO.setLocationCode(detailDO.getToLocationCode());
expectinCreateReqVO.setBusinessType(productreceiptJobMainDO.getBusinessType()); expectinCreateReqVO.setOwnerCode(detailDO.getToOwnerCode());
expectinCreateReqVO.setLocationCode(detailDO.getToLocationCode()); expectinCreateReqVOList.add(expectinCreateReqVO);
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