diff --git a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/productionreceiptJob/vo/ProductionreceiptJobDetailUpdateReqVO.java b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/productionreceiptJob/vo/ProductionreceiptJobDetailUpdateReqVO.java index ef25de46..a1cac2ad 100644 --- a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/productionreceiptJob/vo/ProductionreceiptJobDetailUpdateReqVO.java +++ b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/productionreceiptJob/vo/ProductionreceiptJobDetailUpdateReqVO.java @@ -30,4 +30,7 @@ public class ProductionreceiptJobDetailUpdateReqVO extends ProductionreceiptJobD @Schema(description = "到库位") private String toLocationCode; + @Schema(description = "供应商代码") + private String supplierCode; + } diff --git a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/productionreceiptJob/ProductionreceiptJobMainServiceImpl.java b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/productionreceiptJob/ProductionreceiptJobMainServiceImpl.java index 0663a8b3..c8d81731 100644 --- a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/productionreceiptJob/ProductionreceiptJobMainServiceImpl.java +++ b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/productionreceiptJob/ProductionreceiptJobMainServiceImpl.java @@ -16,13 +16,18 @@ import com.win.module.wms.controller.transaction.vo.TransactionCreateReqVO; import com.win.module.wms.convert.productionreceiptJob.ProductionreceiptJobMainConvert; import com.win.module.wms.dal.dataobject.businesstype.BusinesstypeDO; 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.location.LocationDO; +import com.win.module.wms.dal.dataobject.onlinesettlementRecord.OnlinesettlementRecordDetailDO; +import com.win.module.wms.dal.dataobject.onlinesettlementRecord.OnlinesettlementRecordMainDO; import com.win.module.wms.dal.dataobject.production.ProductionDetailDO; import com.win.module.wms.dal.dataobject.productionreceiptJob.ProductionreceiptJobDetailDO; import com.win.module.wms.dal.dataobject.productionreceiptJob.ProductionreceiptJobMainDO; import com.win.module.wms.dal.dataobject.productionreceiptRecord.ProductionreceiptRecordDetailDO; import com.win.module.wms.dal.dataobject.productionreceiptRecord.ProductionreceiptRecordMainDO; import com.win.module.wms.dal.dataobject.transactiontype.TransactiontypeDO; +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.ProductionreceiptJobMainMapper; import com.win.module.wms.dal.mysql.productionreceiptRecord.ProductionreceiptRecordDetailMapper; import com.win.module.wms.dal.mysql.productionreceiptRecord.ProductionreceiptRecordMainMapper; @@ -30,6 +35,7 @@ import com.win.module.wms.enums.job.JobStatusState; import com.win.module.wms.service.expectin.ExpectinService; import com.win.module.wms.service.location.LocationService; import com.win.module.wms.service.production.ProductionMainService; +import com.win.module.wms.service.supplieritem.SupplieritemService; import com.win.module.wms.service.transaction.TransactionService; import com.win.module.wms.util.JobUtils; import org.springframework.beans.BeanUtils; @@ -55,6 +61,12 @@ import static com.win.module.wms.enums.ErrorCodeConstants.*; @Validated public class ProductionreceiptJobMainServiceImpl implements ProductionreceiptJobMainService { + @Resource + private OnlinesettlementRecordDetailMapper onlinesettlementRecordDetailMapper; + @Resource + private SupplieritemService supplieritemService; + @Resource + private OnlinesettlementRecordMainMapper onlinesettlementRecordMainMapper; @Resource private ExpectinService expectinService; @Resource @@ -290,6 +302,7 @@ public class ProductionreceiptJobMainServiceImpl implements ProductionreceiptJob productionreceiptRecordDetailDO.setToContainerNumber(DetailUpdateItem.getToContainerNumber()); productionreceiptRecordDetailDO.setInventoryStatus(DetailUpdateItem.getToInventoryStatus()); productionreceiptRecordDetailDO.setQty(DetailUpdateItem.getHandleQty()); + productionreceiptRecordDetailDO.setSupplierCode(DetailUpdateItem.getSupplierCode()); // 根据 to库位 查询 库位组 库区 LocationDO locationDO = locationService.selectLocation(DetailUpdateItem.getToLocationCode()); productionreceiptRecordDetailDO.setToLocationGroupCode(locationDO.getLocationGroupCode()); @@ -327,6 +340,8 @@ public class ProductionreceiptJobMainServiceImpl implements ProductionreceiptJob if(!productionreceiptRecordDetailDOList.isEmpty()) { productionreceiptRecordDetailMapper.insertBatch(productionreceiptRecordDetailDOList); } + // 创建 上线结算记录 + createOnlinesettlementRecord(productionreceiptRecordMainDO,productionreceiptRecordDetailDOList); //增加库存事务 transactionService.createTransaction(transactionCreateReqVOList); //移除预计入 @@ -335,4 +350,54 @@ public class ProductionreceiptJobMainServiceImpl implements ProductionreceiptJob trendsApi.createTrends(productionreceiptJobMainDO.getId(), "productionreceiptJob", "执行了生产收料任务", TrendsTypeEnum.UPDATE); return result; } + + /** + * 创建 上线结算记录 + * @param productionreceiptRecordMainDO + * @param productionreceiptRecordDetailDOList + */ + private void createOnlinesettlementRecord (ProductionreceiptRecordMainDO productionreceiptRecordMainDO, List productionreceiptRecordDetailDOList) { + OnlinesettlementRecordMainDO onlinesettlementRecordMainDO = new OnlinesettlementRecordMainDO(); + BeanUtils.copyProperties(productionreceiptRecordMainDO, onlinesettlementRecordMainDO); + onlinesettlementRecordMainDO.setProductionreceiptRecordNumber(productionreceiptRecordMainDO.getNumber()); + onlinesettlementRecordMainDO.setWarehouseCode(productionreceiptRecordMainDO.getToWarehouseCode()); + String number = serialNumberApi.generateCode(RuleCodeEnum.ONLINE_SETTLEMENT_RECORD.getCode()); + onlinesettlementRecordMainDO.setId(null); + onlinesettlementRecordMainDO.setNumber(number); + onlinesettlementRecordMainDO.setBusinessType(""); + onlinesettlementRecordMainDO.setInTransactionType(""); + onlinesettlementRecordMainDO.setOutTransactionType(""); + onlinesettlementRecordMainDO.setRequestNumber(""); + onlinesettlementRecordMainDO.setCreator(null); + onlinesettlementRecordMainDO.setCreateTime(null); + onlinesettlementRecordMainDO.setUpdater(null); + onlinesettlementRecordMainDO.setUpdateTime(null); + onlinesettlementRecordMainMapper.insert(onlinesettlementRecordMainDO); + //上线结算记录子 集合 + List onlinesettlementRecordDetailDOList = new ArrayList<>(); + productionreceiptRecordDetailDOList.forEach(item -> { + OnlinesettlementRecordDetailDO onlinesettlementRecordDetailDO = new OnlinesettlementRecordDetailDO(); + BeanUtils.copyProperties(item, onlinesettlementRecordDetailDO); + onlinesettlementRecordDetailDO.setPackingNumber(item.getToPackingNumber()); + onlinesettlementRecordDetailDO.setContainerNumber(item.getToContainerNumber()); + onlinesettlementRecordDetailDO.setBatch(item.getToBatch()); + onlinesettlementRecordDetailDO.setLocationCode(item.getToLocationCode()); + onlinesettlementRecordDetailDO.setLocationGroupCode(item.getToLocationGroupCode()); + onlinesettlementRecordDetailDO.setAreaCode(item.getToAreaCode()); + onlinesettlementRecordDetailDO.setMasterId(onlinesettlementRecordMainDO.getId()); + onlinesettlementRecordDetailDO.setNumber(number); + onlinesettlementRecordDetailDO.setSupplierCode(item.getSupplierCode()); + // 查询 供应商物品 赋值 供应商物品代码 + onlinesettlementRecordDetailDO.setSupplierItemCode(supplieritemService.selectSupplierItemExist(item.getSupplierCode(),item.getItemCode()).getSupplierItemCode()); + onlinesettlementRecordDetailDO.setId(null); + onlinesettlementRecordDetailDO.setCreator(null); + onlinesettlementRecordDetailDO.setCreateTime(null); + onlinesettlementRecordDetailDO.setUpdater(null); + onlinesettlementRecordDetailDO.setUpdateTime(null); + onlinesettlementRecordDetailDOList.add(onlinesettlementRecordDetailDO); + }); + if(!onlinesettlementRecordDetailDOList.isEmpty()) { + onlinesettlementRecordDetailMapper.insertBatch(onlinesettlementRecordDetailDOList); + } + } }