diff --git a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/productputawayJob/ProductputawayJobMainController.java b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/productputawayJob/ProductputawayJobMainController.java index f6480e6d..a6a9ccf0 100644 --- a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/productputawayJob/ProductputawayJobMainController.java +++ b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/productputawayJob/ProductputawayJobMainController.java @@ -3,15 +3,16 @@ package com.win.module.wms.controller.productputawayJob; import com.win.framework.common.pojo.CommonResult; import com.win.framework.common.pojo.CustomConditions; import com.win.framework.common.pojo.PageResult; +import com.win.framework.dict.core.util.DictFrameworkUtils; import com.win.framework.excel.core.util.ExcelUtils; import com.win.framework.operatelog.core.annotations.OperateLog; import com.win.module.system.api.user.AdminUserApi; import com.win.module.system.api.user.dto.AdminUserRespDTO; import com.win.module.wms.controller.productputawayJob.vo.*; -import com.win.module.wms.convert.productputawayJob.ProductputawayJobDetailConvert; import com.win.module.wms.convert.productputawayJob.ProductputawayJobMainConvert; import com.win.module.wms.dal.dataobject.productputawayJob.ProductputawayJobDetailDO; import com.win.module.wms.dal.dataobject.productputawayJob.ProductputawayJobMainDO; +import com.win.module.wms.enums.DictTypeConstants; import com.win.module.wms.service.productputawayJob.ProductputawayJobDetailService; import com.win.module.wms.service.productputawayJob.ProductputawayJobMainService; import io.swagger.v3.oas.annotations.Operation; @@ -26,10 +27,7 @@ import javax.annotation.Resource; import javax.servlet.http.HttpServletResponse; import javax.validation.Valid; import java.io.IOException; -import java.util.ArrayList; -import java.util.Collection; -import java.util.List; -import java.util.Map; +import java.util.*; import static com.win.framework.common.pojo.CommonResult.success; import static com.win.framework.operatelog.core.enums.OperateTypeEnum.EXPORT; @@ -99,23 +97,6 @@ public class ProductputawayJobMainController { return success(ProductputawayJobMainConvert.INSTANCE.convertPage(pageResult)); } - @GetMapping("/export-excel") - @Operation(summary = "导出制品上架任务主 Excel") - @PreAuthorize("@ss.hasPermission('wms:productputaway-job-main:export')") - @OperateLog(type = EXPORT) - public void exportProductputawayJobMainExcel(@Valid ProductputawayJobMainExportReqVO exportReqVO, - HttpServletResponse response) throws IOException { - List list = productputawayJobMainService.getProductputawayJobMainList(exportReqVO); - // 导出 Excel - List datas = ProductputawayJobMainConvert.INSTANCE.convertList02(list); - for(ProductputawayJobMainExcelVO vo : datas) { - AdminUserRespDTO user = userApi.getUser(Long.valueOf(vo.getCreator())); - //后端创建个字段作为前端展示的虚拟字段 - vo.setCreator(user.getNickname()); - } - ExcelUtils.write(response, "制品上架任务主.xls", "数据", ProductputawayJobMainExcelVO.class, datas); - } - @PostMapping("/senior") @Operation(summary = "高级搜索获得制品上架任务主分页") @PreAuthorize("@ss.hasPermission('wms:productputaway-job-main:query')") @@ -130,6 +111,72 @@ public class ProductputawayJobMainController { return success(result); } + private List getExcelVo(List list, Map mapDropDown) { + String[] locationTypes = DictFrameworkUtils.dictTypeDictDataValue(DictTypeConstants.LOCATION_TYPE); + mapDropDown.put(8, locationTypes); + mapDropDown.put(9, locationTypes); + String[] trueFalse = DictFrameworkUtils.dictTypeDictDataValue(DictTypeConstants.TRUE_FALSE); + mapDropDown.put(14, trueFalse); + mapDropDown.put(15, trueFalse); + mapDropDown.put(16, trueFalse); + mapDropDown.put(17, trueFalse); + mapDropDown.put(18, trueFalse); + mapDropDown.put(19, trueFalse); + mapDropDown.put(20, trueFalse); + mapDropDown.put(21, trueFalse); + mapDropDown.put(22, trueFalse); + mapDropDown.put(23, trueFalse); + String[] inventoryStatus = DictFrameworkUtils.dictTypeDictDataValue(DictTypeConstants.INVENTORY_STATUS); + mapDropDown.put(39, inventoryStatus); + String[] uom = DictFrameworkUtils.dictTypeDictDataValue(DictTypeConstants.UOM); + mapDropDown.put(50, uom); + List resultList = new ArrayList<>(); + // 导出 + for(ProductputawayJobMainDO mainDO : list) { + List subList = productputawayJobDetailService.selectList(mainDO.getId()); + for(ProductputawayJobDetailDO detailDO : subList) { + ProductputawayJobMainExcelVO vo = ProductputawayJobMainConvert.INSTANCE.convert(mainDO, detailDO); + resultList.add(vo); + } + } + return resultList; + } + + @GetMapping("/export-excel") + @Operation(summary = "导出制品上架任务 Excel") + @PreAuthorize("@ss.hasPermission('wms:productputaway-job-main:export')") + @OperateLog(type = EXPORT) + public void exportProductputawayJobMainExcel(@Valid ProductputawayJobMainExportReqVO exportReqVO, + HttpServletResponse response) throws IOException { + List list = productputawayJobMainService.getProductputawayJobMainList(exportReqVO); + //组装vo + Map mapDropDown = new HashMap<>(); + List resultList = this.getExcelVo(list, mapDropDown); + resultList.forEach(item -> { + //后端创建个字段作为前端展示的虚拟字段 + item.setCreator(userApi.getUser(Long.valueOf(item.getCreator())).getNickname()); + item.setUpdater(userApi.getUser(Long.valueOf(item.getUpdater())).getNickname()); + }); + ExcelUtils.write(response, "制品上架任务.xls", "制品上架任务", ProductputawayJobMainExcelVO.class, resultList); + } + + @GetMapping("/export-excel-senior") + @Operation(summary = "导出制品上架任务 Excel") + @PreAuthorize("@ss.hasPermission('wms:productputaway-request-main:export')") + @OperateLog(type = EXPORT) + public void exportProductputawayJobMainSeniorExcel(@Valid @RequestBody CustomConditions conditions, HttpServletResponse response) throws IOException { + List list = productputawayJobMainService.getProductputawayJobMainList(conditions); + //组装vo + Map mapDropDown = new HashMap<>(); + List resultList = this.getExcelVo(list, mapDropDown); + resultList.forEach(item -> { + //后端创建个字段作为前端展示的虚拟字段 + item.setCreator(userApi.getUser(Long.valueOf(item.getCreator())).getNickname()); + item.setUpdater(userApi.getUser(Long.valueOf(item.getUpdater())).getNickname()); + }); + ExcelUtils.write(response, "制品上架任务.xlsx", "制品上架任务", ProductputawayJobMainExcelVO.class, resultList, mapDropDown); + } + @GetMapping("/getProductputawayJobById") @Operation(summary = "APP获得制品上架任务主子表明细列表") @Parameter(name = "id", description = "编号", required = true, example = "1024") @@ -140,11 +187,13 @@ public class ProductputawayJobMainController { if(result==null) { return success(result); }; - ProductputawayJobDetailExportReqVO reqVO = new ProductputawayJobDetailExportReqVO(); - reqVO.setMasterId(result.getId()); - List list = productputawayJobDetailService.getProductputawayJobDetailList(reqVO); - List vos = ProductputawayJobDetailConvert.INSTANCE.convertList02(list); - result.setSubList(vos); +// ProductputawayJobDetailExportReqVO reqVO = new ProductputawayJobDetailExportReqVO(); +// reqVO.setMasterId(result.getId()); +// List list = productputawayJobDetailService.getProductputawayJobDetailList(reqVO); +// List vos = ProductputawayJobDetailConvert.INSTANCE.convertList02(list); +// result.setSubList(vos); + List subList = productputawayJobDetailService.selectList(id); + result.setSubList(subList); return success(result); } @@ -163,4 +212,36 @@ public class ProductputawayJobMainController { return success(countByStatus); } + @PutMapping(value = "/accept") + @Operation(summary = "承接任务") + @PreAuthorize("@ss.hasPermission('wms:productputaway-job-main:accept')") + public CommonResult acceptProductputawayJobMain(@RequestParam("id") Long id) { + int result = productputawayJobMainService.acceptProductputawayJobMain(id); + return success(result > 0); + } + + @PutMapping(value = "/abandon") + @Operation(summary = "放弃任务") + @PreAuthorize("@ss.hasPermission('wms:productputaway-job-main:abandon')") + public CommonResult abandonProductputawayJobMain(@RequestParam("id") Long id) { + int result = productputawayJobMainService.abandonProductputawayJobMain(id); + return success(result > 0); + } + + @PutMapping(value = "/close") + @Operation(summary = "关闭任务") + @PreAuthorize("@ss.hasPermission('wms:productputaway-job-main:close')") + public CommonResult closeProductputawayJobMain(@RequestParam("id") Long id) { + int result = productputawayJobMainService.closeProductputawayJobMain(id); + return success(result > 0); + } + + @PutMapping("/execute") + @Operation(summary = "执行任务") + @PreAuthorize("@ss.hasPermission('wms:productputaway-job-main:execute')") + public CommonResult executeProductputawayJobMain(@Valid @RequestBody ProductputawayJobMainUpdateReqVO updateReqVO) { + String number = productputawayJobMainService.executeProductputawayJobMain(updateReqVO); + return success(number); + } + } diff --git a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/productputawayJob/vo/ProductputawayJobDetailPageReqVO.java b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/productputawayJob/vo/ProductputawayJobDetailPageReqVO.java index 8c139b4d..4d9d6876 100644 --- a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/productputawayJob/vo/ProductputawayJobDetailPageReqVO.java +++ b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/productputawayJob/vo/ProductputawayJobDetailPageReqVO.java @@ -81,4 +81,7 @@ public class ProductputawayJobDetailPageReqVO extends PageParam { @Schema(description = "到货主代码") private String toOwnerCode; + @Schema(description = "主表ID") + private String masterId; + } diff --git a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/productputawayJob/vo/ProductputawayJobMainExcelVO.java b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/productputawayJob/vo/ProductputawayJobMainExcelVO.java index 29140f20..1adce7b0 100644 --- a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/productputawayJob/vo/ProductputawayJobMainExcelVO.java +++ b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/productputawayJob/vo/ProductputawayJobMainExcelVO.java @@ -1,5 +1,7 @@ package com.win.module.wms.controller.productputawayJob.vo; +import com.win.module.wms.enums.DictTypeConstants; +import com.win.module.wms.enums.job.JobStatusConverter; import io.swagger.v3.oas.annotations.media.Schema; import lombok.*; import java.util.*; @@ -24,57 +26,92 @@ import com.win.framework.excel.core.convert.DictConvert; @Data public class ProductputawayJobMainExcelVO { + @ExcelProperty("单据号") + private String number; + @ExcelProperty("申请单号") private String requestNumber; @ExcelProperty("供应商代码") private String supplierCode; - @ExcelProperty("从仓库代码") - private String fromWarehouseCode; + @ExcelProperty("完成时间") + private LocalDateTime completetime; - @ExcelProperty("到仓库代码") - private String toWarehouseCode; + @ExcelProperty("申请时间") + private LocalDateTime requestTime; - @ExcelProperty("从库区代码范围") - private String fromAreaCodes; + @ExcelProperty("要求截止时间") + private LocalDateTime requestDueTime; - @ExcelProperty("到库区代码范围") - private String toAreaCodes; + @ExcelProperty(value = "状态", converter = JobStatusConverter.class) + private String status; + + @ExcelProperty("过期时间") + private LocalDateTime expiredTime; @ExcelProperty(value = "从库位类型范围", converter = DictConvert.class) - @DictFormat("location_type") // TODO 代码优化:建议设置到对应的 XXXDictTypeConstants 枚举类中 + @DictFormat(DictTypeConstants.LOCATION_TYPE) private String fromLocationTypes; @ExcelProperty(value = "到库位类型范围", converter = DictConvert.class) - @DictFormat("location_type") // TODO 代码优化:建议设置到对应的 XXXDictTypeConstants 枚举类中 + @DictFormat(DictTypeConstants.LOCATION_TYPE) private String toLocationTypes; - @ExcelProperty("完成时间") - private LocalDateTime completetime; + @ExcelProperty("从库区代码范围") + private String fromAreaCodes; - @ExcelProperty("申请时间") - private LocalDateTime requestTime; + @ExcelProperty("到库区代码范围") + private String toAreaCodes; - @ExcelProperty("要求截止时间") - private LocalDateTime requestDueTime; + @ExcelProperty("从仓库代码") + private String fromWarehouseCode; - @ExcelProperty(value = "状态", converter = DictConvert.class) - @DictFormat("job_status") // TODO 代码优化:建议设置到对应的 XXXDictTypeConstants 枚举类中 - private String status; + @ExcelProperty("到仓库代码") + private String toWarehouseCode; - @ExcelProperty("过期时间") - private LocalDateTime expiredTime; + @ExcelProperty(value = "自动完成", converter = DictConvert.class) + @DictFormat(DictTypeConstants.TRUE_FALSE) + private String autoComplete; - @ExcelProperty("最后更新时间") - private LocalDateTime updateTime; + @ExcelProperty(value = "允许修改库位", converter = DictConvert.class) + @DictFormat(DictTypeConstants.TRUE_FALSE) + private String allowModifyLocation; - @ExcelProperty("最后更新者Id") - private String updater; + @ExcelProperty(value = "允许修改数量", converter = DictConvert.class) + @DictFormat(DictTypeConstants.TRUE_FALSE) + private String allowModifyQty; - @ExcelProperty(value = "状态", converter = DictConvert.class) - @DictFormat("job_stage_status") // TODO 代码优化:建议设置到对应的 XXXDictTypeConstants 枚举类中 - private String jobStageStatus; + @ExcelProperty(value = "允许大于推荐数量", converter = DictConvert.class) + @DictFormat(DictTypeConstants.TRUE_FALSE) + private String allowBiggerQty; + + @ExcelProperty(value = "允许小于推荐数量", converter = DictConvert.class) + @DictFormat(DictTypeConstants.TRUE_FALSE) + private String allowSmallerQty; + + @ExcelProperty(value = "允许修改库存状态", converter = DictConvert.class) + @DictFormat(DictTypeConstants.TRUE_FALSE) + private String allowModifyInventoryStatus; + + @ExcelProperty(value = "允许连续扫描", converter = DictConvert.class) + @DictFormat(DictTypeConstants.TRUE_FALSE) + private String allowContinuousScanning; + + @ExcelProperty(value = "允许部分完成", converter = DictConvert.class) + @DictFormat(DictTypeConstants.TRUE_FALSE) + private String allowPartialComplete; + + @ExcelProperty(value = "允许修改箱码", converter = DictConvert.class) + @DictFormat(DictTypeConstants.TRUE_FALSE) + private String allowModifyPackingNumber; + + @ExcelProperty(value = "允许修改批次", converter = DictConvert.class) + @DictFormat(DictTypeConstants.TRUE_FALSE) + private String allowModifyBatch; + + @ExcelProperty("业务类型") + private String businessType; @ExcelProperty("优先级") private Integer priority; @@ -94,12 +131,6 @@ public class ProductputawayJobMainExcelVO { @ExcelProperty("完成人用户ID") private String completeUserId; - @ExcelProperty("单据号") - private String number; - - @ExcelProperty("业务类型") - private String businessType; - @ExcelProperty("备注") private String remark; @@ -109,34 +140,64 @@ public class ProductputawayJobMainExcelVO { @ExcelProperty("创建者id") private String creator; - @ExcelProperty("自动完成") - private String autoComplete; + @ExcelProperty("最后更新时间") + private LocalDateTime updateTime; - @ExcelProperty("允许修改库位") - private String allowModifyLocation; + @ExcelProperty("最后更新者Id") + private String updater; - @ExcelProperty("允许修改数量") - private String allowModifyQty; + // 子表数据 + @ExcelProperty("包装号") + private String packingNumber; - @ExcelProperty("允许大于推荐数量") - private String allowBiggerQty; + @ExcelProperty("器具号") + private String containerNumber; - @ExcelProperty("允许小于推荐数量") - private String allowSmallerQty; + @ExcelProperty("批次") + private String batch; - @ExcelProperty("允许修改库存状态") - private String allowModifyInventoryStatus; + @ExcelProperty(value = "库存状态", converter = DictConvert.class) + @DictFormat(DictTypeConstants.INVENTORY_STATUS) + private String inventoryStatus; - @ExcelProperty("允许连续扫描") - private String allowContinuousScanning; + @ExcelProperty("订单号") + private String poNumber; - @ExcelProperty("允许部分完成") - private String allowPartialComplete; + @ExcelProperty("订单行") + private String poLine; - @ExcelProperty("允许修改批次") - private String allowModifyBatch; + @ExcelProperty("从库位代码") + private String fromLocationCode; - @ExcelProperty("允许修改箱码") - private String allowModifyPackingNumber; + @ExcelProperty("到库位代码") + private String toLocationCode; + + @ExcelProperty("物品代码") + private String itemCode; + + @ExcelProperty("物品名称") + private String itemName; + + @ExcelProperty("物品描述1") + private String itemDesc1; + + @ExcelProperty("物品描述2") + private String itemDesc2; + + @ExcelProperty("项目代码") + private String projectCode; + + @ExcelProperty("数量") + private String qty; + + @ExcelProperty(value = "计量单位", converter = DictConvert.class) + @DictFormat(DictTypeConstants.UOM) + private String uom; + + @ExcelProperty("从货主代码") + private String fromOwnerCode; + + @ExcelProperty("到货主代码") + private String toOwnerCode; } diff --git a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/convert/productputawayJob/ProductputawayJobMainConvert.java b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/convert/productputawayJob/ProductputawayJobMainConvert.java index 0efbe311..61abc3b3 100644 --- a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/convert/productputawayJob/ProductputawayJobMainConvert.java +++ b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/convert/productputawayJob/ProductputawayJobMainConvert.java @@ -8,7 +8,10 @@ import com.win.module.wms.controller.productputawayJob.vo.ProductputawayJobMainC import com.win.module.wms.controller.productputawayJob.vo.ProductputawayJobMainExcelVO; import com.win.module.wms.controller.productputawayJob.vo.ProductputawayJobMainRespVO; import com.win.module.wms.controller.productputawayJob.vo.ProductputawayJobMainUpdateReqVO; +import com.win.module.wms.dal.dataobject.productputawayJob.ProductputawayJobDetailDO; import org.mapstruct.Mapper; +import org.mapstruct.Mapping; +import org.mapstruct.Mappings; import org.mapstruct.factory.Mappers; import com.win.module.wms.dal.dataobject.productputawayJob.ProductputawayJobMainDO; @@ -34,4 +37,13 @@ public interface ProductputawayJobMainConvert { List convertList02(List list); + @Mappings({ + @Mapping(source = "mainDO.number", target = "number"), + @Mapping(source = "mainDO.remark", target = "remark"), + @Mapping(source = "mainDO.createTime", target = "createTime"), + @Mapping(source = "mainDO.creator", target = "creator"), + @Mapping(source = "mainDO.updateTime", target = "updateTime"), + @Mapping(source = "mainDO.updater", target = "updater"), + }) + ProductputawayJobMainExcelVO convert(ProductputawayJobMainDO mainDO, ProductputawayJobDetailDO detailDO); } diff --git a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/dal/mysql/productputawayJob/ProductputawayJobDetailMapper.java b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/dal/mysql/productputawayJob/ProductputawayJobDetailMapper.java index b6d2689a..eadd49b1 100644 --- a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/dal/mysql/productputawayJob/ProductputawayJobDetailMapper.java +++ b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/dal/mysql/productputawayJob/ProductputawayJobDetailMapper.java @@ -7,6 +7,7 @@ import com.win.framework.mybatis.core.query.LambdaQueryWrapperX; import com.win.framework.mybatis.core.util.QueryWrapperUtils; import com.win.module.wms.controller.productputawayJob.vo.ProductputawayJobDetailExportReqVO; import com.win.module.wms.controller.productputawayJob.vo.ProductputawayJobDetailPageReqVO; +import com.win.module.wms.dal.dataobject.issueRequest.IssueRequestDetailDO; import com.win.module.wms.dal.dataobject.productputawayJob.ProductputawayJobDetailDO; import org.apache.ibatis.annotations.Mapper; @@ -22,6 +23,7 @@ public interface ProductputawayJobDetailMapper extends BaseMapperX selectPage(ProductputawayJobDetailPageReqVO reqVO) { return selectPage(reqVO, new LambdaQueryWrapperX() + .eqIfPresent(ProductputawayJobDetailDO::getMasterId, reqVO.getMasterId()) .eqIfPresent(ProductputawayJobDetailDO::getPackingNumber, reqVO.getPackingNumber()) .eqIfPresent(ProductputawayJobDetailDO::getContainerNumber, reqVO.getContainerNumber()) .eqIfPresent(ProductputawayJobDetailDO::getBatch, reqVO.getBatch()) @@ -77,4 +79,8 @@ public interface ProductputawayJobDetailMapper extends BaseMapperX selectList(Long masterId) { + return selectList(new LambdaQueryWrapperX() + .eq(ProductputawayJobDetailDO::getMasterId, masterId)); + } } diff --git a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/dal/mysql/productputawayJob/ProductputawayJobMainMapper.java b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/dal/mysql/productputawayJob/ProductputawayJobMainMapper.java index 1b57e31e..b9057ddd 100644 --- a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/dal/mysql/productputawayJob/ProductputawayJobMainMapper.java +++ b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/dal/mysql/productputawayJob/ProductputawayJobMainMapper.java @@ -8,6 +8,7 @@ import com.win.framework.mybatis.core.util.QueryWrapperUtils; import com.win.module.wms.controller.productputawayJob.vo.ProductputawayJobMainExportReqVO; import com.win.module.wms.controller.productputawayJob.vo.ProductputawayJobMainPageReqVO; 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.productputawayJob.ProductputawayJobMainDO; import com.win.module.wms.dal.dataobject.purchasereturnJob.PurchasereturnJobMainDO; import com.win.module.wms.enums.order.OrderStatusEnum; @@ -127,4 +128,8 @@ public interface ProductputawayJobMainMapper extends BaseMapperX selectSeniorList(CustomConditions conditions) { + return selectList(QueryWrapperUtils.structure(conditions)); + } } 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 50c71523..6d8d2151 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 @@ -349,7 +349,7 @@ public class IssueJobMainServiceImpl implements IssueJobMainService { } }); }); - if(!issueRecordDetailDOList.isEmpty()) { + if(issueRecordDetailDOList != null && issueRecordDetailDOList.size() > 0) { issueRecordDetailMapper.insertBatch(issueRecordDetailDOList); } // 1-创建发料记录后 是否创建 生产收料任务 2-同时满足 使用在途库 diff --git a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/preparetoissue/PreparetoissueMainServiceImpl.java b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/preparetoissue/PreparetoissueMainServiceImpl.java index 186796b9..ee18fe5f 100644 --- a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/preparetoissue/PreparetoissueMainServiceImpl.java +++ b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/preparetoissue/PreparetoissueMainServiceImpl.java @@ -335,6 +335,7 @@ public class PreparetoissueMainServiceImpl implements PreparetoissueMainService issueRequestMainCreateReqVO.setUseOnTheWayLocation("TRUE"); issueRequestMainCreateReqVO.setStatus(RequestStatusEnum.NEW.getCode()); issueRequestMainCreateReqVO.setDepartmentCode(String.valueOf(userApi.getUser(getLoginUserId()).getDeptId())); + issueRequestMainCreateReqVO.setPreparetoissuePlanNumber(mainDO.getNumber()); List subList = new ArrayList<>(); detailDO.forEach(itemDetailDO -> { IssueRequestDetailCreateReqVO issueRequestDetailCreateReqVO = new IssueRequestDetailCreateReqVO(); diff --git a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/productputawayJob/ProductputawayJobDetailService.java b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/productputawayJob/ProductputawayJobDetailService.java index 96ff0acc..bb3bc7a0 100644 --- a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/productputawayJob/ProductputawayJobDetailService.java +++ b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/productputawayJob/ProductputawayJobDetailService.java @@ -81,4 +81,5 @@ public interface ProductputawayJobDetailService { */ PageResult getProductputawayJobDetailSeniorList(CustomConditions conditions); + List selectList(Long id); } diff --git a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/productputawayJob/ProductputawayJobDetailServiceImpl.java b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/productputawayJob/ProductputawayJobDetailServiceImpl.java index ab004501..e7f8cc80 100644 --- a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/productputawayJob/ProductputawayJobDetailServiceImpl.java +++ b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/productputawayJob/ProductputawayJobDetailServiceImpl.java @@ -87,4 +87,9 @@ public class ProductputawayJobDetailServiceImpl implements ProductputawayJobDeta public PageResult getProductputawayJobDetailSeniorList(CustomConditions conditions) { return productputawayJobDetailMapper.selectSenior(conditions); } + + @Override + public List selectList(Long masterId) { + return productputawayJobDetailMapper.selectList(masterId); + } } diff --git a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/productputawayJob/ProductputawayJobMainService.java b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/productputawayJob/ProductputawayJobMainService.java index fd96f8d5..870e7540 100644 --- a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/productputawayJob/ProductputawayJobMainService.java +++ b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/productputawayJob/ProductputawayJobMainService.java @@ -99,4 +99,13 @@ public interface ProductputawayJobMainService { Map getCountByStatus(@Nullable Collection types); + List getProductputawayJobMainList(CustomConditions conditions); + + Integer acceptProductputawayJobMain(Long id); + + Integer abandonProductputawayJobMain(Long id); + + Integer closeProductputawayJobMain(Long id); + + String executeProductputawayJobMain(ProductputawayJobMainUpdateReqVO updateReqVO); } 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 a46e8f17..66630784 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 @@ -1,27 +1,55 @@ package com.win.module.wms.service.productputawayJob; 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.module.infra.api.trends.TrendsApi; +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.api.user.dto.AdminUserRespDTO; +import com.win.module.system.enums.serialNumber.RuleCodeEnum; 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.transaction.vo.TransactionCreateReqVO; import com.win.module.wms.convert.productputawayJob.ProductputawayJobMainConvert; +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.jobsetting.JobsettingDO; +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.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.enums.job.JobStatusState; +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.transaction.TransactionService; +import com.win.module.wms.util.JobUtils; +import org.springframework.beans.BeanUtils; import org.springframework.stereotype.Service; +import org.springframework.transaction.annotation.Transactional; import org.springframework.validation.annotation.Validated; import javax.annotation.Resource; -import java.util.Collection; -import java.util.HashMap; -import java.util.List; -import java.util.Map; +import java.math.BigDecimal; +import java.time.LocalDateTime; +import java.util.*; import static com.win.framework.common.exception.util.ServiceExceptionUtil.exception; -import static com.win.module.wms.enums.ErrorCodeConstants.PRODUCTPUTAWAY_JOB_MAIN_NOT_EXISTS; -import static com.win.module.wms.enums.ErrorCodeConstants.PRODUCTPUTAWAY_JOB_MAIN_STATUS_ERROR; +import static com.win.framework.security.core.util.SecurityFrameworkUtils.getLoginUserId; +import static com.win.module.wms.enums.ErrorCodeConstants.*; /** * 制品上架任务主 Service 实现类 @@ -32,6 +60,30 @@ import static com.win.module.wms.enums.ErrorCodeConstants.PRODUCTPUTAWAY_JOB_MAI @Validated public class ProductputawayJobMainServiceImpl implements ProductputawayJobMainService { + @Resource + private ExpectinService expectinService; + @Resource + private ExpectoutService expectoutService; + @Resource + private TransactionService transactionService; + @Resource + private ProductputawayRecordDetailMapper productputawayRecordDetailMapper; + @Resource + private LocationService locationService; + @Resource + private ProductputawayRecordMainMapper productputawayRecordMainMapper; + @Resource + private JobUtils jobUtils; + @Resource + private RecordsettingService recordsettingService; + @Resource + private SerialNumberApi serialNumberApi; + @Resource + private ProductputawayJobDetailService productputawayJobDetailService; + @Resource + private TrendsApi trendsApi; + @Resource + private AdminUserApi userApi; @Resource private ProductputawayJobMainMapper productputawayJobMainMapper; @@ -61,10 +113,12 @@ public class ProductputawayJobMainServiceImpl implements ProductputawayJobMainSe productputawayJobMainMapper.deleteById(id); } - private void validateProductputawayJobMainExists(Long id) { - if (productputawayJobMainMapper.selectById(id) == null) { + private ProductputawayJobMainDO validateProductputawayJobMainExists(Long id) { + ProductputawayJobMainDO productputawayJobMainDO = productputawayJobMainMapper.selectById(id); + if (productputawayJobMainDO == null) { throw exception(PRODUCTPUTAWAY_JOB_MAIN_NOT_EXISTS); } + return productputawayJobMainDO; } @Override @@ -112,4 +166,183 @@ public class ProductputawayJobMainServiceImpl implements ProductputawayJobMainSe map.put("count", l.intValue()); return map; } + + @Override + public List getProductputawayJobMainList(CustomConditions conditions) { + return productputawayJobMainMapper.selectSeniorList(conditions); + } + + @Override + @Transactional + public Integer acceptProductputawayJobMain(Long id) { + ProductputawayJobMainDO productputawayJobMainDO = this.validateProductputawayJobMainExists(id); + JobStatusState jobStatusState = new JobStatusState(productputawayJobMainDO.getStatus()); + if(!jobStatusState.accept()) { + throw exception(PRODUCTPUTAWAY_JOB_MAIN_STATUS_ERROR); + } + Long userId = getLoginUserId(); + AdminUserRespDTO userRespDTO = userApi.getUser(userId); + productputawayJobMainDO.setStatus(jobStatusState.getState().getCode()); + productputawayJobMainDO.setAcceptUserId(String.valueOf(userId)); + productputawayJobMainDO.setAcceptUserName(userRespDTO.getNickname()); + productputawayJobMainDO.setAcceptTime(LocalDateTime.now()); + trendsApi.createTrends(id, "productputawayJob", "承接了制品上架任务", TrendsTypeEnum.UPDATE); + return productputawayJobMainMapper.updateById(productputawayJobMainDO); + } + + @Override + @Transactional + public Integer abandonProductputawayJobMain(Long id) { + ProductputawayJobMainDO productputawayJobMainDO = this.validateProductputawayJobMainExists(id); + JobStatusState jobStatusState = new JobStatusState(productputawayJobMainDO.getStatus()); + if(!jobStatusState.cancelAccept()) { + throw exception(PRODUCTPUTAWAY_JOB_MAIN_STATUS_ERROR); + } + productputawayJobMainDO.setStatus(jobStatusState.getState().getCode()); + productputawayJobMainDO.setAcceptUserId(null); + productputawayJobMainDO.setAcceptUserName(null); + productputawayJobMainDO.setAcceptTime(null); + trendsApi.createTrends(id, "productputawayJob", "取消了制品上架任务", TrendsTypeEnum.UPDATE); + return productputawayJobMainMapper.updateById(productputawayJobMainDO); + } + + @Override + @Transactional + public Integer closeProductputawayJobMain(Long id) { + ProductputawayJobMainDO productputawayJobMainDO = this.validateProductputawayJobMainExists(id); + JobStatusState jobStatusState = new JobStatusState(productputawayJobMainDO.getStatus()); + if(!jobStatusState.close()) { + throw exception(PRODUCTPUTAWAY_JOB_MAIN_STATUS_ERROR); + } + productputawayJobMainDO.setStatus(jobStatusState.getState().getCode()); + trendsApi.createTrends(id, "productputawayJob", "关闭了制品上架任务", TrendsTypeEnum.UPDATE); + return productputawayJobMainMapper.updateById(productputawayJobMainDO); + } + + @Override + @Transactional + public String executeProductputawayJobMain(ProductputawayJobMainUpdateReqVO updateReqVO) { + //查询数据 + ProductputawayJobMainDO productputawayJobMainDO = this.validateProductputawayJobMainExists(updateReqVO.getId()); + List subList = productputawayJobDetailService.selectList(productputawayJobMainDO.getId()); + JobStatusState jobStatusState = new JobStatusState(productputawayJobMainDO.getStatus()); + boolean flag = jobStatusState.execute(); + if(!flag) { + throw new ServiceException(PRODUCTPUTAWAY_JOB_MAIN_STATUS_ERROR); + } + //更新完成信息 + Long userId = getLoginUserId(); + AdminUserRespDTO userRespDTO = userApi.getUser(userId); + productputawayJobMainDO.setStatus(jobStatusState.getState().getCode()); + productputawayJobMainDO.setCompletetime(LocalDateTime.now()); + productputawayJobMainDO.setCompleteUserId(String.valueOf(userRespDTO.getId())); + productputawayJobMainDO.setCompleteUserName(userRespDTO.getNickname()); + //更新任务表状态 + int result = productputawayJobMainMapper.updateById(productputawayJobMainDO); + // 创建 记录 主表 + ProductputawayRecordMainDO productputawayRecordMainDO = new ProductputawayRecordMainDO(); + BeanUtils.copyProperties(productputawayJobMainDO, productputawayRecordMainDO); + String number = serialNumberApi.generateCode(RuleCodeEnum.PRODUCT_RECEIPT_RECORD.getCode()); + productputawayRecordMainDO.setNumber(number); + productputawayRecordMainDO.setJobNumber(productputawayJobMainDO.getNumber()); + productputawayRecordMainDO.setRequestNumber(productputawayJobMainDO.getRequestNumber()); + productputawayRecordMainDO.setExecuteTime(LocalDateTime.now()); + productputawayRecordMainDO.setActiveDate(LocalDateTime.now()); + productputawayRecordMainDO.setAvailable("TRUE"); + productputawayRecordMainDO.setDueTime(productputawayJobMainDO.getRequestDueTime()); + // 接口类型 + productputawayRecordMainDO.setInterfaceType(recordsettingService.selectRecordsettingExist("MaterialReturnRecord").getInterfaceType()); + //增加业务类型 + BusinesstypeDO businesstypeDO = jobUtils.selectDocumentSettingFromBusinessType("ProductPutawayRecord"); + productputawayRecordMainDO.setOutTransactionType(businesstypeDO.getOutTransactionType()); + productputawayRecordMainDO.setInTransactionType(businesstypeDO.getInTransactionType()); + productputawayRecordMainDO.setFromLocationTypes(businesstypeDO.getOutLocationTypes()); + productputawayRecordMainDO.setToLocationTypes(businesstypeDO.getInLocationTypes()); + productputawayRecordMainDO.setFromAreaCodes(businesstypeDO.getOutAreaCodes()); + productputawayRecordMainDO.setToAreaCodes(businesstypeDO.getInAreaCodes()); + productputawayRecordMainDO.setBusinessType(businesstypeDO.getCode()); + productputawayRecordMainDO.setId(null); + productputawayRecordMainDO.setCreator(null); + productputawayRecordMainDO.setCreateTime(null); + productputawayRecordMainDO.setUpdater(null); + productputawayRecordMainDO.setUpdateTime(null); + productputawayRecordMainMapper.insert(productputawayRecordMainDO); + //记录子 + List productputawayRecordDetailDOList = new ArrayList<>(); + //库存事务 + List transactionCreateReqVOList = new ArrayList<>(); + for(ProductputawayJobDetailDO productputawayJobDetailDO :subList) { + ProductputawayRecordDetailDO productputawayRecordDetailDO = new ProductputawayRecordDetailDO(); + BeanUtils.copyProperties(productputawayJobDetailDO, productputawayRecordDetailDO); + productputawayRecordDetailDO.setFromPackingNumber(productputawayJobDetailDO.getPackingNumber()); + productputawayRecordDetailDO.setToPackingNumber(productputawayJobDetailDO.getPackingNumber()); + productputawayRecordDetailDO.setFromBatch(productputawayJobDetailDO.getBatch()); + productputawayRecordDetailDO.setToBatch(productputawayJobDetailDO.getBatch()); + productputawayRecordDetailDO.setFromContainerNumber(productputawayJobDetailDO.getContainerNumber()); + productputawayRecordDetailDO.setToContainerNumber(productputawayJobDetailDO.getContainerNumber()); + // 根据 to库位 查询 库位组 库区 + LocationDO locationDO = locationService.selectLocation(productputawayJobDetailDO.getToLocationCode()); + productputawayRecordDetailDO.setToLocationGroupCode(locationDO.getLocationGroupCode()); + productputawayRecordDetailDO.setToAreaCode(locationDO.getAreaCode()); + // 根据 from库位 查询 库位组 库区 + LocationDO locationDOFrom = locationService.selectLocation(productputawayJobDetailDO.getFromLocationCode()); + productputawayRecordDetailDO.setFromLocationGroupCode(locationDOFrom.getLocationGroupCode()); + productputawayRecordDetailDO.setFromAreaCode(locationDOFrom.getAreaCode()); + productputawayRecordDetailDO.setId(null); + productputawayRecordDetailDO.setCreator(null); + productputawayRecordDetailDO.setCreateTime(null); + productputawayRecordDetailDO.setUpdater(null); + productputawayRecordDetailDO.setUpdateTime(null); + productputawayRecordDetailDOList.add(productputawayRecordDetailDO); + //添加库存事务list + // 入动作 + TransactionCreateReqVO transactionCreateReqVO = new TransactionCreateReqVO(); + BeanUtils.copyProperties(productputawayRecordDetailDO, transactionCreateReqVO); + TransactiontypeDO transactiontypeDO = jobUtils.selectDocumentFromTransactionType(businesstypeDO.getInTransactionType()); + transactionCreateReqVO.setWorker(String.valueOf(userApi.getUser(getLoginUserId()).getId())); + transactionCreateReqVO.setInventoryAction(transactiontypeDO.getInventoryAction()); + transactionCreateReqVO.setTransactionType(transactiontypeDO.getCode()); + transactionCreateReqVO.setBusinessType(productputawayRecordMainDO.getBusinessType()); + transactionCreateReqVO.setOwnerCode(productputawayRecordDetailDO.getToOwnerCode()); + transactionCreateReqVO.setRecordNumber(number); + transactionCreateReqVO.setId(null); + transactionCreateReqVO.setPackingNumber(productputawayRecordDetailDO.getToPackingNumber()); + transactionCreateReqVO.setBatch(productputawayRecordDetailDO.getToBatch()); + transactionCreateReqVO.setContainerNumber(productputawayRecordDetailDO.getToContainerNumber()); + transactionCreateReqVO.setAmount(BigDecimal.ZERO); + transactionCreateReqVO.setWarehouseCode(productputawayRecordMainDO.getToWarehouseCode()); + transactionCreateReqVO.setLocationCode(productputawayRecordDetailDO.getToLocationCode()); + transactionCreateReqVOList.add(transactionCreateReqVO); + // 出动作 + TransactionCreateReqVO transactionCreateReqVOOut = new TransactionCreateReqVO(); + BeanUtils.copyProperties(productputawayRecordDetailDO, transactionCreateReqVOOut); + TransactiontypeDO transactiontypeDOOut = jobUtils.selectDocumentFromTransactionType(businesstypeDO.getOutTransactionType()); + transactionCreateReqVOOut.setWorker(String.valueOf(userApi.getUser(getLoginUserId()).getId())); + transactionCreateReqVOOut.setInventoryAction(transactiontypeDOOut.getInventoryAction()); + transactionCreateReqVOOut.setTransactionType(transactiontypeDOOut.getCode()); + transactionCreateReqVOOut.setBusinessType(productputawayRecordMainDO.getBusinessType()); + transactionCreateReqVOOut.setOwnerCode(productputawayRecordDetailDO.getFromOwnerCode()); + transactionCreateReqVOOut.setRecordNumber(number); + transactionCreateReqVOOut.setId(null); + transactionCreateReqVOOut.setPackingNumber(productputawayRecordDetailDO.getFromPackingNumber()); + transactionCreateReqVOOut.setBatch(productputawayRecordDetailDO.getFromBatch()); + transactionCreateReqVOOut.setContainerNumber(productputawayRecordDetailDO.getFromContainerNumber()); + transactionCreateReqVOOut.setAmount(BigDecimal.ZERO); + transactionCreateReqVOOut.setWarehouseCode(productputawayRecordMainDO.getFromWarehouseCode()); + transactionCreateReqVOOut.setLocationCode(productputawayRecordDetailDO.getFromLocationCode()); + transactionCreateReqVOList.add(transactionCreateReqVOOut); + } + if(productputawayRecordDetailDOList != null && productputawayRecordDetailDOList.size() > 0) { + productputawayRecordDetailMapper.insertBatch(productputawayRecordDetailDOList); + } + //增加库存事务 + transactionService.createTransaction(transactionCreateReqVOList); + //移除预计入 + expectinService.deleteExpectinByJobNumber(productputawayJobMainDO.getNumber()); + //移除预计出 + expectoutService.deleteExpectoutByJobNumber(productputawayJobMainDO.getNumber()); + //变更记录 + 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 19bc3469..eb69ebfa 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 @@ -622,8 +622,8 @@ public class ProductputawayRequestMainServiceImpl implements ProductputawayReque RuleRespVO ruleRespVO = ruleService.grounding(null,null, productputawayJobDetailDO.getItemCode(),null,null,null,null,null,null); LocationDO locationDO = locationService.inspectLocation(ruleRespVO, productputawayJobDetailDO.getItemCode(), productputawayJobDetailDO.getBatch(), productputawayJobDetailDO.getInventoryStatus()); productputawayJobDetailDO.setToLocationCode(locationDO.getCode()); - productputawayJobDetailDO.setNumber(mainDO.getNumber()); - productputawayJobDetailDO.setMasterId(mainDO.getId()); + productputawayJobDetailDO.setNumber(productputawayJobMainDO.getNumber()); + productputawayJobDetailDO.setMasterId(productputawayJobMainDO.getId()); productputawayJobDetailDO.setId(null); productputawayJobDetailDO.setCreateTime(null); productputawayJobDetailDO.setCreator(null); @@ -634,7 +634,7 @@ public class ProductputawayRequestMainServiceImpl implements ProductputawayReque ExpectinCreateReqVO expectinCreateReqVO = new ExpectinCreateReqVO(); BeanUtils.copyProperties(productputawayJobDetailDO, expectinCreateReqVO); expectinCreateReqVO.setJobNumber(number); - expectinCreateReqVO.setBusinessType(mainDO.getBusinessType()); + expectinCreateReqVO.setBusinessType(productputawayJobMainDO.getBusinessType()); expectinCreateReqVO.setLocationCode(productputawayJobDetailDO.getToLocationCode()); expectinCreateReqVO.setOwnerCode(productputawayJobDetailDO.getToOwnerCode()); expectinCreateReqVOList.add(expectinCreateReqVO); @@ -642,7 +642,7 @@ public class ProductputawayRequestMainServiceImpl implements ProductputawayReque ExpectoutCreateReqVO expectoutCreateReqVO = new ExpectoutCreateReqVO(); BeanUtils.copyProperties(productputawayJobDetailDO, expectoutCreateReqVO); expectoutCreateReqVO.setJobNumber(number); - expectoutCreateReqVO.setBusinessType(mainDO.getBusinessType()); + expectoutCreateReqVO.setBusinessType(productputawayJobMainDO.getBusinessType()); expectoutCreateReqVO.setLocationCode(productputawayJobDetailDO.getFromLocationCode()); expectoutCreateReqVO.setOwnerCode(productputawayJobDetailDO.getFromOwnerCode()); expectoutCreateReqVOList.add(expectoutCreateReqVO);