diff --git a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/inventoryinitRequest/InventoryinitRequestMainController.java b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/inventoryinitRequest/InventoryinitRequestMainController.java index a105280c..49689793 100644 --- a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/inventoryinitRequest/InventoryinitRequestMainController.java +++ b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/inventoryinitRequest/InventoryinitRequestMainController.java @@ -10,9 +10,15 @@ 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.inventoryinitRequest.vo.*; +import com.win.module.wms.controller.unplannedreceiptRequest.vo.UnplannedreceiptRequestMainExcelVO; import com.win.module.wms.convert.inventoryinitRequest.InventoryinitRequestMainConvert; +import com.win.module.wms.convert.unplannedreceiptRequest.UnplannedreceiptRequestMainConvert; +import com.win.module.wms.dal.dataobject.inventoryinitRequest.InventoryinitRequestDetailDO; import com.win.module.wms.dal.dataobject.inventoryinitRequest.InventoryinitRequestMainDO; +import com.win.module.wms.dal.dataobject.unplannedreceiptRequest.UnplannedreceiptRequestDetailDO; +import com.win.module.wms.dal.dataobject.unplannedreceiptRequest.UnplannedreceiptRequestMainDO; import com.win.module.wms.enums.DictTypeConstants; +import com.win.module.wms.service.inventoryinitRequest.InventoryinitRequestDetailService; import com.win.module.wms.service.inventoryinitRequest.InventoryinitRequestMainService; import io.swagger.v3.oas.annotations.Operation; import io.swagger.v3.oas.annotations.Parameter; @@ -43,6 +49,12 @@ public class InventoryinitRequestMainController { @Resource private InventoryinitRequestMainService inventoryinitRequestMainService; + @Resource + private InventoryinitRequestDetailService inventoryinitRequestDetailService; + + + + @Resource private AdminUserApi userApi; @@ -108,21 +120,36 @@ public class InventoryinitRequestMainController { } return success(result); } - @GetMapping("/export-excel") + @PostMapping("/export-excel") @Operation(summary = "导出库存初始化申请主 Excel") @PreAuthorize("@ss.hasPermission('wms:inventoryinit-request-main:export')") @OperateLog(type = EXPORT) - public void exportInventoryinitRequestMainExcel(@Valid InventoryinitRequestMainExportReqVO exportReqVO, - HttpServletResponse response) throws IOException { + public void exportInventoryinitRequestMainExcel(@Valid InventoryinitRequestMainExportReqVO exportReqVO, HttpServletResponse response) throws IOException { List list = inventoryinitRequestMainService.getInventoryinitRequestMainList(exportReqVO); + //组装vo + Map mapDropDown = new HashMap<>(); + List resultList = this.getExcelVo(list, mapDropDown); // 导出 Excel - List datas = InventoryinitRequestMainConvert.INSTANCE.convertList02(list); - for(InventoryinitRequestMainExcelVO vo : datas) { - AdminUserRespDTO user = userApi.getUser(Long.valueOf(vo.getCreator())); - //后端创建个字段作为前端展示的虚拟字段 - vo.setCreator(user.getNickname()); + ExcelUtils.write(response, "库存初始化申请主.xls", "数据", InventoryinitRequestMainExcelVO.class, resultList,mapDropDown); + } + + private List getExcelVo(List list, Map mapDropDown) { + String[] fromInventoryStatus = DictFrameworkUtils.dictTypeDictDataValue(DictTypeConstants.INVENTORY_STATUS); + mapDropDown.put(26, fromInventoryStatus); + String[] uom = DictFrameworkUtils.dictTypeDictDataValue(DictTypeConstants.UOM); + mapDropDown.put(34, uom); + List resultList = new ArrayList<>(); + // 导出 + for(InventoryinitRequestMainDO mainDO : list) { + List subList = inventoryinitRequestDetailService.selectList(mainDO.getId()); + for(InventoryinitRequestDetailDO detailDO : subList) { + InventoryinitRequestMainExcelVO vo = InventoryinitRequestMainConvert.INSTANCE.convert(mainDO, detailDO); + AdminUserRespDTO user = userApi.getUser(Long.valueOf(mainDO.getCreator())); + vo.setCreator(user.getNickname()); + resultList.add(vo); + } } - ExcelUtils.write(response, "库存初始化申请主.xls", "数据", InventoryinitRequestMainExcelVO.class, datas); + return resultList; } @GetMapping("/get-import-template") diff --git a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/inventoryinitRequest/vo/InventoryinitRequestMainExcelVO.java b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/inventoryinitRequest/vo/InventoryinitRequestMainExcelVO.java index 19d0d2c2..1a07e5a9 100644 --- a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/inventoryinitRequest/vo/InventoryinitRequestMainExcelVO.java +++ b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/inventoryinitRequest/vo/InventoryinitRequestMainExcelVO.java @@ -1,7 +1,10 @@ package com.win.module.wms.controller.inventoryinitRequest.vo; +import com.alibaba.excel.annotation.write.style.ColumnWidth; import io.swagger.v3.oas.annotations.media.Schema; import lombok.*; + +import java.math.BigDecimal; import java.util.*; import java.time.LocalDateTime; import java.time.LocalDateTime; @@ -34,25 +37,28 @@ public class InventoryinitRequestMainExcelVO { private String remark; @ExcelProperty("创建时间") + @ColumnWidth(value = 25) private LocalDateTime creationTime; @ExcelProperty("创建者用户名") private String creator; @ExcelProperty("申请时间") + @ColumnWidth(value = 25) private LocalDateTime requestTime; @ExcelProperty("截止时间") + @ColumnWidth(value = 25) private LocalDateTime dueTime; @ExcelProperty("部门") private String departmentCode; - @ExcelProperty(value = "状态", converter = DictConvert.class) - @DictFormat("request_status") // TODO 代码优化:建议设置到对应的 XXXDictTypeConstants 枚举类中 + @ExcelProperty( "状态") private String status; @ExcelProperty("最后更新时间") + @ColumnWidth(value = 25) private LocalDateTime updateTime; @ExcelProperty("最后更新者用户名") @@ -70,4 +76,60 @@ public class InventoryinitRequestMainExcelVO { @ExcelProperty("直接生成记录") private String directCreateRecord; + @ExcelProperty("包装号") + private String packingNumber; + + @ExcelProperty("器具号") + private String containerNumber; + + @ExcelProperty("批次") + private String batch; + + @ExcelProperty("替代批次") + private String altBatch; + + @ExcelProperty("到货日期") + @ColumnWidth(value = 25) + private LocalDateTime arriveDate; + + @ExcelProperty("生产日期") + @ColumnWidth(value = 25) + private LocalDateTime produceDate; + + @ExcelProperty("过期日期") + @ColumnWidth(value = 25) + private LocalDateTime expireDate; + + @ExcelProperty("到库位代码") + private String toLocationCode; + + @ExcelProperty("库存状态") + private String inventoryStatus; + + @ExcelProperty("原因") + private String reason; + + + @ExcelProperty("物品代码") + private String itemCode; + + @ExcelProperty("物品名称") + private String itemName; + + @ExcelProperty("物品描述1") + private String itemDesc1; + + @ExcelProperty("物品描述2") + private String itemDesc2; + + @ExcelProperty("项目代码") + private String projectCode; + + @ExcelProperty("数量") + private BigDecimal qty; + + @ExcelProperty("计量单位") + private String uom; + + } diff --git a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/productscrapRequest/ProductscrapRequestMainController.java b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/productscrapRequest/ProductscrapRequestMainController.java index c09d8172..5e8c60cc 100644 --- a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/productscrapRequest/ProductscrapRequestMainController.java +++ b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/productscrapRequest/ProductscrapRequestMainController.java @@ -134,9 +134,9 @@ public class ProductscrapRequestMainController { List list = new ArrayList<>(); Map mapDropDown = new HashMap<>(); String[] inventoryStatus = DictFrameworkUtils.dictTypeDictDataValue(DictTypeConstants.INVENTORY_STATUS); - mapDropDown.put(3, inventoryStatus); + mapDropDown.put(5, inventoryStatus); String[] uom = DictFrameworkUtils.dictTypeDictDataValue(DictTypeConstants.UOM); - mapDropDown.put(6, uom); + mapDropDown.put(8, uom); ExcelUtils.write(response, "制品报废申请信息导入模板.xlsx", "制品报废申请信息列表", ProductscrapRequestImportVO.class, list,mapDropDown); } diff --git a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/productscrapRequest/vo/ProductscrapRequestImportVO.java b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/productscrapRequest/vo/ProductscrapRequestImportVO.java index 6ad6400c..7a9b007f 100644 --- a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/productscrapRequest/vo/ProductscrapRequestImportVO.java +++ b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/productscrapRequest/vo/ProductscrapRequestImportVO.java @@ -27,7 +27,11 @@ import java.time.LocalDateTime; @Accessors(chain = false) // 设置 chain = false,避免用户导入有问题 public class ProductscrapRequestImportVO { + @ExcelProperty("单据号") + private String number; + @ExcelProperty("截止时间") + private LocalDateTime dueTime; @ExcelProperty("包装号") diff --git a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/scrapRequest/ScrapRequestDetailController.java b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/scrapRequest/ScrapRequestDetailController.java index 779a63ce..fe6409fd 100644 --- a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/scrapRequest/ScrapRequestDetailController.java +++ b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/scrapRequest/ScrapRequestDetailController.java @@ -91,6 +91,7 @@ public class ScrapRequestDetailController { return success(ScrapRequestDetailConvert.INSTANCE.convertList(list)); } + @GetMapping("/page") @Operation(summary = "获得报废出库申请子分页") @PreAuthorize("@ss.hasPermission('wms:scrap-request-detail:query')") diff --git a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/scrapRequest/ScrapRequestMainController.java b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/scrapRequest/ScrapRequestMainController.java index 9b7b8004..5e8e3fbe 100644 --- a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/scrapRequest/ScrapRequestMainController.java +++ b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/scrapRequest/ScrapRequestMainController.java @@ -1,12 +1,16 @@ package com.win.module.wms.controller.scrapRequest; import com.win.framework.common.pojo.CustomConditions; +import com.win.framework.dict.core.util.DictFrameworkUtils; +import com.win.framework.excel.core.util.ConvertUtil; import com.win.module.system.api.user.AdminUserApi; import com.win.module.system.api.user.dto.AdminUserRespDTO; import com.win.module.wms.controller.scrapRequest.vo.*; import com.win.module.wms.convert.scrapRequest.ScrapRequestDetailConvert; import com.win.module.wms.dal.dataobject.scrapRequest.ScrapRequestDetailDO; +import com.win.module.wms.enums.DictTypeConstants; import com.win.module.wms.service.scrapRequest.ScrapRequestDetailService; +import io.swagger.v3.oas.annotations.Parameters; import org.springframework.web.bind.annotation.*; import javax.annotation.Resource; import org.springframework.validation.annotation.Validated; @@ -16,6 +20,8 @@ import io.swagger.v3.oas.annotations.Parameter; import io.swagger.v3.oas.annotations.Operation; import javax.validation.*; import javax.servlet.http.*; +import java.time.LocalDateTime; +import java.time.ZoneOffset; import java.util.*; import java.io.IOException; import com.win.framework.common.pojo.PageResult; @@ -24,10 +30,10 @@ import static com.win.framework.common.pojo.CommonResult.success; import com.win.framework.excel.core.util.ExcelUtils; import com.win.framework.operatelog.core.annotations.OperateLog; import static com.win.framework.operatelog.core.enums.OperateTypeEnum.*; - import com.win.module.wms.dal.dataobject.scrapRequest.ScrapRequestMainDO; import com.win.module.wms.convert.scrapRequest.ScrapRequestMainConvert; import com.win.module.wms.service.scrapRequest.ScrapRequestMainService; +import org.springframework.web.multipart.MultipartFile; @Tag(name = "管理后台 - 报废出库申请主") @RestController @@ -109,25 +115,93 @@ public class ScrapRequestMainController { return success(result); } + @GetMapping("/get-import-template") + @Operation(summary = "获得导入制品报废申请信息模板") + public void importTemplate(HttpServletResponse response) throws IOException { + List list = new ArrayList<>(); + Map mapDropDown = new HashMap<>(); + String[] uom = DictFrameworkUtils.dictTypeDictDataValue(DictTypeConstants.UOM); + mapDropDown.put(7, uom); + ExcelUtils.write(response, "制品报废申请信息导入模板.xlsx", "制品报废申请信息列表", ScrapRequestImportVO.class, list,mapDropDown); + } + + @PostMapping("/import") + @Operation(summary = "导入制品报废申请基本信息") + @Parameters({ + @Parameter(name = "file", description = "Excel 文件", required = true), + @Parameter(name = "mode", description = "导入模式1更新2追加3覆盖", example = "1"), + @Parameter(name = "updatePart", description = "部分更新,默认为 true", example = "true") + }) + @PreAuthorize("@ss.hasPermission('wms:scrap-request-main:import')") + public CommonResult> importExcel(HttpServletResponse response, + @RequestParam("file") MultipartFile file, + @RequestParam(value = "mode") Integer mode, + @RequestParam(value = "updatePart", required = false, defaultValue = "false") Boolean updatePart) throws Exception { + List list = ExcelUtils.read(file, ScrapRequestImportVO.class); + ConvertUtil convertUtil = new ConvertUtil<>(ScrapRequestMainCreateReqVO.class); + List createReqVOList = convertUtil.invoke(list).getDataList(); + List errorList = scrapRequestMainService.importscrapRequestList(createReqVOList, mode, updatePart); + Map returnMap = new HashMap<>(); + returnMap.put("errorCount", errorList.size()); + if(!errorList.isEmpty()) { + String url = ExcelUtils.writeLocalFile("报废出库申请基本信息导入错误数据" + LocalDateTime.now().toEpochSecond(ZoneOffset.of("+8")) + ".xlsx", "错误列表", errorList); + returnMap.put("errorFile", url); + } + return success(returnMap); + } + @GetMapping("/export-excel") @Operation(summary = "导出报废出库申请主 Excel") @PreAuthorize("@ss.hasPermission('wms:scrap-request-main:export')") @OperateLog(type = EXPORT) - public void exportScrapRequestMainExcel(@Valid ScrapRequestMainExportReqVO exportReqVO, - HttpServletResponse response) throws IOException { + public void exportScrapRequestMainExcel(@Valid ScrapRequestMainExportReqVO exportReqVO, HttpServletResponse response) throws IOException { List list = scrapRequestMainService.getScrapRequestMainList(exportReqVO); + //组装vo + Map mapDropDown = new HashMap<>(); + List resultList = this.getExcelVo(list, mapDropDown); + ExcelUtils.write(response, "报废出库申请主.xls", "数据", ScrapRequestMainExcelVO.class, resultList,mapDropDown); + } + + @PostMapping("/export-excel-senior") + @Operation(summary = "导出报废出库申请主 Excel") + @PreAuthorize("@ss.hasPermission('wms:scrap-request-main:export')") + @OperateLog(type = EXPORT) + public void exportScrapRequestMainSeniorExcel(@Valid @RequestBody CustomConditions conditions, HttpServletResponse response) throws IOException { + List list = scrapRequestMainService.getScrapRequestMainList1(conditions); + //组装vo + Map mapDropDown = new HashMap<>(); + List resultList = this.getExcelVo(list, mapDropDown); // 导出 Excel - List datas = ScrapRequestMainConvert.INSTANCE.convertList02(list); - ExcelUtils.write(response, "报废出库申请主.xls", "数据", ScrapRequestMainExcelVO.class, datas); + ExcelUtils.write(response, "计划外入库申请主.xlsx", "计划外入库申请数据", ScrapRequestMainExcelVO.class, resultList, mapDropDown); } + + + private List getExcelVo(List list, Map mapDropDown) { + String[] uom = DictFrameworkUtils.dictTypeDictDataValue(DictTypeConstants.UOM); + mapDropDown.put(30, uom); + List resultList = new ArrayList<>(); + // 导出 + for(ScrapRequestMainDO mainDO : list) { + List subList = scrapRequestDetailService.selectList(mainDO.getId()); + for(ScrapRequestDetailDO detailDO : subList) { + ScrapRequestMainExcelVO vo = ScrapRequestMainConvert.INSTANCE.convert(mainDO, detailDO); + AdminUserRespDTO user = userApi.getUser(Long.valueOf(mainDO.getCreator())); + vo.setCreator(user.getNickname()); + resultList.add(vo); + } + } + return resultList; + } + + + @GetMapping("/getScrapRequestById") @Operation(summary = "APP获得报废出库申请主子表明细列表") @Parameter(name = "id", description = "编号", required = true, example = "1024") @PreAuthorize("@ss.hasPermission('wms:scrap-request-main:query')") public CommonResult getScrapRequestById(@RequestParam("id") Long id) { - ScrapRequestMainDO scrapRequestMain = scrapRequestMainService.getScrapRequestMain(id); ScrapRequestMainRespVO result = ScrapRequestMainConvert.INSTANCE.convert(scrapRequestMain); if(result==null) { diff --git a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/scrapRequest/vo/ScrapRequestDetailBaseVO.java b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/scrapRequest/vo/ScrapRequestDetailBaseVO.java index 6503026a..45f998fe 100644 --- a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/scrapRequest/vo/ScrapRequestDetailBaseVO.java +++ b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/scrapRequest/vo/ScrapRequestDetailBaseVO.java @@ -83,4 +83,9 @@ public class ScrapRequestDetailBaseVO { @Schema(description = "最后更新者用户名") private String updater; + @Schema(description = "master_id", example = "master_id") + private Long masterId; + + + } diff --git a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/scrapRequest/vo/ScrapRequestDetailPageReqVO.java b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/scrapRequest/vo/ScrapRequestDetailPageReqVO.java index 624eb306..a67bbdad 100644 --- a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/scrapRequest/vo/ScrapRequestDetailPageReqVO.java +++ b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/scrapRequest/vo/ScrapRequestDetailPageReqVO.java @@ -76,7 +76,7 @@ public class ScrapRequestDetailPageReqVO extends PageParam { @DateTimeFormat(pattern = FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND) private LocalDateTime[] updateTime; - @Schema(description = "最后更新者用户名") - private String updater; + @Schema(description = "主表ID") + private String masterId; } diff --git a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/scrapRequest/vo/ScrapRequestImportErrorVO.java b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/scrapRequest/vo/ScrapRequestImportErrorVO.java new file mode 100644 index 00000000..a7fb372e --- /dev/null +++ b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/scrapRequest/vo/ScrapRequestImportErrorVO.java @@ -0,0 +1,25 @@ +package com.win.module.wms.controller.scrapRequest.vo; +import com.alibaba.excel.annotation.ExcelProperty; +import com.win.module.wms.controller.productscrapRequest.vo.ProductscrapRequestImportVO; +import com.win.module.wms.controller.purchaseclaimRequest.vo.PurchaseclaimRequestImportVO; +import lombok.Data; +import lombok.EqualsAndHashCode; +import lombok.ToString; + + +/** + * 采购索赔申请子 Excel VO + * + * @author 超级管理员 + */ +@Data +@EqualsAndHashCode(callSuper = true) +@ToString(callSuper = true) +public class ScrapRequestImportErrorVO extends ScrapRequestImportVO { + + @ExcelProperty(value = "导入状态", index = 0) + private String importStatus; + + @ExcelProperty(value = "导入说明", index = 1) + private String importRemark; +} diff --git a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/scrapRequest/vo/ScrapRequestImportVO.java b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/scrapRequest/vo/ScrapRequestImportVO.java new file mode 100644 index 00000000..9ba3c599 --- /dev/null +++ b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/scrapRequest/vo/ScrapRequestImportVO.java @@ -0,0 +1,61 @@ +package com.win.module.wms.controller.scrapRequest.vo; +import com.alibaba.excel.annotation.ExcelProperty; +import com.win.framework.excel.core.annotations.DictFormat; +import com.win.framework.excel.core.convert.DictConvert; +import com.win.module.wms.enums.DictTypeConstants; +import lombok.AllArgsConstructor; +import lombok.Data; +import lombok.NoArgsConstructor; +import lombok.experimental.Accessors; + +import javax.validation.constraints.NotBlank; +import java.math.BigDecimal; +import java.time.LocalDateTime; + + +/** + * 采购索赔申请子 Excel VO + * + * @author 超级管理员 + */ +@Data +@AllArgsConstructor +@NoArgsConstructor +@Accessors(chain = false) // 设置 chain = false,避免用户导入有问题 +public class ScrapRequestImportVO { + + @ExcelProperty("单据号") + private String number; + + @ExcelProperty("截止时间") + private LocalDateTime dueTime; + + + @ExcelProperty("零件号") + @NotBlank(message = "物品代码不能为空") + private String itemCode; + + @ExcelProperty("包装号") + private String packingNumber; + + @ExcelProperty("器具号") + private String containerNumber; + + @ExcelProperty("批次") + private String batch; + + + @ExcelProperty("数量") + private BigDecimal qty; + + @ExcelProperty(value = "记录单位", converter = DictConvert.class) + @DictFormat(DictTypeConstants.UOM) + private String uom; + + @ExcelProperty("来源库位代码") + private String fromLocationCode; + + @ExcelProperty(value = "原因") + private String reason; + +} diff --git a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/scrapRequest/vo/ScrapRequestMainBaseVO.java b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/scrapRequest/vo/ScrapRequestMainBaseVO.java index 8403656f..f6b79275 100644 --- a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/scrapRequest/vo/ScrapRequestMainBaseVO.java +++ b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/scrapRequest/vo/ScrapRequestMainBaseVO.java @@ -1,5 +1,6 @@ package com.win.module.wms.controller.scrapRequest.vo; +import com.win.framework.excel.core.annotations.OnlyOne; import io.swagger.v3.oas.annotations.media.Schema; import lombok.*; import java.util.*; @@ -26,6 +27,7 @@ public class ScrapRequestMainBaseVO { private String fromWarehouseCode; @Schema(description = "单据号") + @OnlyOne private String number; @Schema(description = "业务类型") diff --git a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/scrapRequest/vo/ScrapRequestMainCreateReqVO.java b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/scrapRequest/vo/ScrapRequestMainCreateReqVO.java index fa69a5f9..fada21e8 100644 --- a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/scrapRequest/vo/ScrapRequestMainCreateReqVO.java +++ b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/scrapRequest/vo/ScrapRequestMainCreateReqVO.java @@ -1,12 +1,18 @@ package com.win.module.wms.controller.scrapRequest.vo; +import com.win.framework.excel.core.annotations.SubObject; +import com.win.module.wms.controller.productscrapRequest.vo.ProductscrapRequestDetailCreateReqVO; import lombok.*; import io.swagger.v3.oas.annotations.media.Schema; +import java.util.List; + @Schema(description = "管理后台 - 报废出库申请主创建 Request VO") @Data @EqualsAndHashCode(callSuper = true) @ToString(callSuper = true) public class ScrapRequestMainCreateReqVO extends ScrapRequestMainBaseVO { - + @SubObject + @Schema(description = "子表数据") + private List subList; } diff --git a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/scrapRequest/vo/ScrapRequestMainExcelVO.java b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/scrapRequest/vo/ScrapRequestMainExcelVO.java index 4e56a06b..f113fdca 100644 --- a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/scrapRequest/vo/ScrapRequestMainExcelVO.java +++ b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/scrapRequest/vo/ScrapRequestMainExcelVO.java @@ -1,7 +1,10 @@ package com.win.module.wms.controller.scrapRequest.vo; +import com.alibaba.excel.annotation.write.style.ColumnWidth; import io.swagger.v3.oas.annotations.media.Schema; import lombok.*; + +import java.math.BigDecimal; import java.util.*; import java.time.LocalDateTime; import java.time.LocalDateTime; @@ -34,32 +37,34 @@ public class ScrapRequestMainExcelVO { private String remark; @ExcelProperty("创建时间") + @ColumnWidth(value = 25) private LocalDateTime createTime; @ExcelProperty("创建者用户名") private String creator; @ExcelProperty("申请时间") + @ColumnWidth(value = 25) private LocalDateTime requestTime; @ExcelProperty("截止时间") + @ColumnWidth(value = 25) private LocalDateTime dueTime; @ExcelProperty("部门") private String departmentCode; - @ExcelProperty(value = "状态", converter = DictConvert.class) - @DictFormat("request_status") // TODO 代码优化:建议设置到对应的 XXXDictTypeConstants 枚举类中 + @ExcelProperty("状态") private String status; @ExcelProperty("最后更新时间") + @ColumnWidth(value = 25) private LocalDateTime updateTime; @ExcelProperty("最后更新者用户名") private String updater; - @ExcelProperty(value = "从库位类型范围", converter = DictConvert.class) - @DictFormat("location_type") // TODO 代码优化:建议设置到对应的 XXXDictTypeConstants 枚举类中 + @ExcelProperty( "从库位类型范围") private String fromLocationTypes; @ExcelProperty("从库区代码范围") @@ -77,4 +82,43 @@ public class ScrapRequestMainExcelVO { @ExcelProperty("直接生成记录") private String directCreateRecord; + + @ExcelProperty("包装号") + private String packingNumber; + + @ExcelProperty("器具号") + private String containerNumber; + + @ExcelProperty("批次") + private String batch; + + @ExcelProperty("从库位代码") + private String fromLocationCode; + + @ExcelProperty("库存状态") + private String inventoryStatus; + + @ExcelProperty("原因") + private String reason; + + @ExcelProperty("物品代码") + private String itemCode; + + @ExcelProperty("物品名称") + private String itemName; + + @ExcelProperty("物品描述1") + private String itemDesc1; + + @ExcelProperty("物品描述2") + private String itemDesc2; + + @ExcelProperty("项目代码") + private String projectCode; + + @ExcelProperty("数量") + private BigDecimal qty; + + @ExcelProperty("计量单位") + private String uom; } diff --git a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/scrapRequest/vo/ScrapRequestMainUpdateReqVO.java b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/scrapRequest/vo/ScrapRequestMainUpdateReqVO.java index 0fb90378..6a7ff9d3 100644 --- a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/scrapRequest/vo/ScrapRequestMainUpdateReqVO.java +++ b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/scrapRequest/vo/ScrapRequestMainUpdateReqVO.java @@ -1,12 +1,18 @@ package com.win.module.wms.controller.scrapRequest.vo; +import com.win.framework.excel.core.annotations.SubObject; +import com.win.module.wms.controller.productscrapRequest.vo.ProductscrapRequestDetailUpdateReqVO; import io.swagger.v3.oas.annotations.media.Schema; import lombok.*; +import java.util.List; + @Schema(description = "管理后台 - 报废出库申请主更新 Request VO") @Data @EqualsAndHashCode(callSuper = true) @ToString(callSuper = true) public class ScrapRequestMainUpdateReqVO extends ScrapRequestMainBaseVO { - + @SubObject + @Schema(description = "子表数据") + private List subList; } diff --git a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/unplannedissueRequest/vo/UnplannedissueRequestMainImportVO.java b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/unplannedissueRequest/vo/UnplannedissueRequestMainImportVO.java index ff0e7adc..22b098d4 100644 --- a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/unplannedissueRequest/vo/UnplannedissueRequestMainImportVO.java +++ b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/unplannedissueRequest/vo/UnplannedissueRequestMainImportVO.java @@ -64,7 +64,4 @@ public class UnplannedissueRequestMainImportVO { - - - } diff --git a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/unplannedreceiptRequest/UnplannedreceiptRequestMainController.java b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/unplannedreceiptRequest/UnplannedreceiptRequestMainController.java index e5f02f01..8a4a70cf 100644 --- a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/unplannedreceiptRequest/UnplannedreceiptRequestMainController.java +++ b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/unplannedreceiptRequest/UnplannedreceiptRequestMainController.java @@ -121,7 +121,7 @@ public class UnplannedreceiptRequestMainController { return success(result); } - @GetMapping("/export-excel") + @PostMapping("/export-excel") @Operation(summary = "导出计划外入库申请主 Excel") @PreAuthorize("@ss.hasPermission('wms:unplannedreceipt-request-main:export')") @OperateLog(type = EXPORT) diff --git a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/convert/inventoryinitRequest/InventoryinitRequestMainConvert.java b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/convert/inventoryinitRequest/InventoryinitRequestMainConvert.java index b48bff67..fc473706 100644 --- a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/convert/inventoryinitRequest/InventoryinitRequestMainConvert.java +++ b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/convert/inventoryinitRequest/InventoryinitRequestMainConvert.java @@ -8,8 +8,11 @@ import com.win.module.wms.controller.inventoryinitRequest.vo.*; import com.win.module.wms.controller.productputawayRequest.vo.ProductputawayRequestMainUpdateReqVO; import com.win.module.wms.controller.purchasereceiptRequest.vo.PurchasereceiptRequestMainCreateReqVO; import com.win.module.wms.controller.purchasereceiptRequest.vo.PurchasereceiptRequestMainImportErrorVO; +import com.win.module.wms.controller.unplannedreceiptRequest.vo.UnplannedreceiptRequestMainExcelVO; import com.win.module.wms.dal.dataobject.inventoryinitRequest.InventoryinitRequestDetailDO; import com.win.module.wms.dal.dataobject.purchasereceiptRequest.PurchasereceiptRequestDetailDO; +import com.win.module.wms.dal.dataobject.unplannedreceiptRequest.UnplannedreceiptRequestDetailDO; +import com.win.module.wms.dal.dataobject.unplannedreceiptRequest.UnplannedreceiptRequestMainDO; import org.mapstruct.Mapper; import org.mapstruct.Mapping; import org.mapstruct.Mappings; @@ -44,4 +47,13 @@ public interface InventoryinitRequestMainConvert { List convertList02(List list); + @Mappings({ + @Mapping(source = "mainDO.number", target = "number"), + @Mapping(source = "mainDO.remark", target = "remark"), + @Mapping(source = "mainDO.creator", target = "creator"), + @Mapping(source = "mainDO.updateTime", target = "updateTime"), + @Mapping(source = "mainDO.updater", target = "updater"), + }) + InventoryinitRequestMainExcelVO convert(InventoryinitRequestMainDO mainDO, InventoryinitRequestDetailDO detailDO); + } diff --git a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/convert/productscrapRequest/ProductscrapRequestDetailConvert.java b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/convert/productscrapRequest/ProductscrapRequestDetailConvert.java index c9ac6175..de1b877c 100644 --- a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/convert/productscrapRequest/ProductscrapRequestDetailConvert.java +++ b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/convert/productscrapRequest/ProductscrapRequestDetailConvert.java @@ -42,7 +42,9 @@ public interface ProductscrapRequestDetailConvert { List convertList03(List list); List convertList05(List list); - + @Mappings({ + @Mapping(source = "mainVo.number", target = "number") + }) ProductscrapRequestImportErrorVO convert(ProductscrapRequestMainCreateReqVO mainVo, ProductscrapRequestDetailDO detailVo); ProductscrapRequestDetailCreateReqVO convert1(ProductscrapRequestDetailDO bean); diff --git a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/convert/productscrapRequest/ProductscrapRequestMainConvert.java b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/convert/productscrapRequest/ProductscrapRequestMainConvert.java index 3440b770..04ff5e1e 100644 --- a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/convert/productscrapRequest/ProductscrapRequestMainConvert.java +++ b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/convert/productscrapRequest/ProductscrapRequestMainConvert.java @@ -41,9 +41,9 @@ public interface ProductscrapRequestMainConvert { List convertList02(List list); - /* @Mappings({ + @Mappings({ @Mapping(source = "mainVo.number", target = "number"), - })*/ + }) ProductscrapRequestImportErrorVO convert(ProductscrapRequestMainCreateReqVO mainVo, ProductscrapRequestDetailDO detailDo); } diff --git a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/convert/scrapRequest/ScrapRequestDetailConvert.java b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/convert/scrapRequest/ScrapRequestDetailConvert.java index 94e253fc..768b4eea 100644 --- a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/convert/scrapRequest/ScrapRequestDetailConvert.java +++ b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/convert/scrapRequest/ScrapRequestDetailConvert.java @@ -4,10 +4,12 @@ import java.util.*; import com.win.framework.common.pojo.PageResult; -import com.win.module.wms.controller.scrapRequest.vo.ScrapRequestDetailCreateReqVO; -import com.win.module.wms.controller.scrapRequest.vo.ScrapRequestDetailExcelVO; -import com.win.module.wms.controller.scrapRequest.vo.ScrapRequestDetailRespVO; -import com.win.module.wms.controller.scrapRequest.vo.ScrapRequestDetailUpdateReqVO; +import com.win.module.wms.controller.productscrapRequest.vo.ProductscrapRequestDetailCreateReqVO; +import com.win.module.wms.controller.productscrapRequest.vo.ProductscrapRequestDetailUpdateReqVO; +import com.win.module.wms.controller.productscrapRequest.vo.ProductscrapRequestMainBaseVO; +import com.win.module.wms.controller.scrapRequest.vo.*; +import com.win.module.wms.dal.dataobject.productscrapRequest.ProductscrapRequestDetailDO; +import com.win.module.wms.dal.dataobject.productscrapRequest.ProductscrapRequestMainDO; import org.mapstruct.Mapper; import org.mapstruct.factory.Mappers; import com.win.module.wms.dal.dataobject.scrapRequest.ScrapRequestDetailDO; @@ -23,15 +25,20 @@ public interface ScrapRequestDetailConvert { ScrapRequestDetailConvert INSTANCE = Mappers.getMapper(ScrapRequestDetailConvert.class); ScrapRequestDetailDO convert(ScrapRequestDetailCreateReqVO bean); + ScrapRequestDetailDO convert(ScrapRequestDetailBaseVO bean); ScrapRequestDetailDO convert(ScrapRequestDetailUpdateReqVO bean); ScrapRequestDetailRespVO convert(ScrapRequestDetailDO bean); + List convertList05(List list); + List convertList(List list); PageResult convertPage(PageResult page); + List convertList03(List list); + List convertList02(List list); } diff --git a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/convert/scrapRequest/ScrapRequestMainConvert.java b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/convert/scrapRequest/ScrapRequestMainConvert.java index 423d72bf..215784bb 100644 --- a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/convert/scrapRequest/ScrapRequestMainConvert.java +++ b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/convert/scrapRequest/ScrapRequestMainConvert.java @@ -4,11 +4,19 @@ import java.util.*; import com.win.framework.common.pojo.PageResult; -import com.win.module.wms.controller.scrapRequest.vo.ScrapRequestMainCreateReqVO; -import com.win.module.wms.controller.scrapRequest.vo.ScrapRequestMainExcelVO; -import com.win.module.wms.controller.scrapRequest.vo.ScrapRequestMainRespVO; -import com.win.module.wms.controller.scrapRequest.vo.ScrapRequestMainUpdateReqVO; +import com.win.module.wms.controller.productscrapRequest.vo.ProductscrapRequestMainBaseVO; +import com.win.module.wms.controller.scrapRequest.vo.*; +import com.win.module.wms.controller.unplannedissueRequest.vo.UnplannedissueRequestMainCreateReqVO; +import com.win.module.wms.controller.unplannedissueRequest.vo.UnplannedissueRequestMainImportErrorVO; +import com.win.module.wms.controller.unplannedreceiptRequest.vo.UnplannedreceiptRequestMainExcelVO; +import com.win.module.wms.dal.dataobject.productscrapRequest.ProductscrapRequestMainDO; +import com.win.module.wms.dal.dataobject.scrapRequest.ScrapRequestDetailDO; +import com.win.module.wms.dal.dataobject.unplannedissueRequest.UnplannedissueRequestDetailDO; +import com.win.module.wms.dal.dataobject.unplannedreceiptRequest.UnplannedreceiptRequestDetailDO; +import com.win.module.wms.dal.dataobject.unplannedreceiptRequest.UnplannedreceiptRequestMainDO; import org.mapstruct.Mapper; +import org.mapstruct.Mapping; +import org.mapstruct.Mappings; import org.mapstruct.factory.Mappers; import com.win.module.wms.dal.dataobject.scrapRequest.ScrapRequestMainDO; @@ -21,6 +29,12 @@ import com.win.module.wms.dal.dataobject.scrapRequest.ScrapRequestMainDO; public interface ScrapRequestMainConvert { ScrapRequestMainConvert INSTANCE = Mappers.getMapper(ScrapRequestMainConvert.class); + @Mappings({ + @Mapping(source = "mainVo.number", target = "number"), + }) + ScrapRequestImportErrorVO convert(ScrapRequestMainCreateReqVO mainVo, ScrapRequestDetailDO detailDo); + + ScrapRequestMainDO convert(ScrapRequestMainBaseVO bean); ScrapRequestMainDO convert(ScrapRequestMainCreateReqVO bean); @@ -34,4 +48,14 @@ public interface ScrapRequestMainConvert { 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"), + }) + ScrapRequestMainExcelVO convert(ScrapRequestMainDO mainDO, ScrapRequestDetailDO detailDO); + } diff --git a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/dal/dataobject/scrapRequest/ScrapRequestDetailDO.java b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/dal/dataobject/scrapRequest/ScrapRequestDetailDO.java index c413df58..8b8f77e5 100644 --- a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/dal/dataobject/scrapRequest/ScrapRequestDetailDO.java +++ b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/dal/dataobject/scrapRequest/ScrapRequestDetailDO.java @@ -27,6 +27,10 @@ public class ScrapRequestDetailDO extends BaseDO { */ @TableId private Long id; + /** + * 主表ID + */ + private Long masterId; /** * 从货主代码 */ @@ -59,10 +63,6 @@ public class ScrapRequestDetailDO extends BaseDO { * 枚举 {@link TODO scrap_reason 对应的类} */ private String reason; - /** - * 主表ID - */ - private Long masterid; /** * 单据号 */ diff --git a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/dal/mysql/inventoryinitRequest/InventoryinitRequestDetailMapper.java b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/dal/mysql/inventoryinitRequest/InventoryinitRequestDetailMapper.java index 1e4a71d2..b5b5fed9 100644 --- a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/dal/mysql/inventoryinitRequest/InventoryinitRequestDetailMapper.java +++ b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/dal/mysql/inventoryinitRequest/InventoryinitRequestDetailMapper.java @@ -10,6 +10,7 @@ import com.win.framework.mybatis.core.util.QueryWrapperUtils; import com.win.module.wms.controller.inventoryinitRequest.vo.InventoryinitRequestDetailExportReqVO; import com.win.module.wms.controller.inventoryinitRequest.vo.InventoryinitRequestDetailPageReqVO; import com.win.module.wms.dal.dataobject.inventoryinitRequest.InventoryinitRequestDetailDO; +import com.win.module.wms.dal.dataobject.unplannedreceiptRequest.UnplannedreceiptRequestDetailDO; import org.apache.ibatis.annotations.Mapper; /** @@ -86,4 +87,9 @@ public interface InventoryinitRequestDetailMapper extends BaseMapperX selectList(Long masterId) { + return selectList(new LambdaQueryWrapperX() + .eq(InventoryinitRequestDetailDO::getMasterId, masterId)); + } + } diff --git a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/dal/mysql/scrapRequest/ScrapRequestDetailMapper.java b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/dal/mysql/scrapRequest/ScrapRequestDetailMapper.java index f3ef4cc3..bb1fe976 100644 --- a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/dal/mysql/scrapRequest/ScrapRequestDetailMapper.java +++ b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/dal/mysql/scrapRequest/ScrapRequestDetailMapper.java @@ -10,6 +10,7 @@ import com.win.framework.mybatis.core.util.QueryWrapperUtils; import com.win.module.wms.controller.scrapRequest.vo.ScrapRequestDetailExportReqVO; import com.win.module.wms.controller.scrapRequest.vo.ScrapRequestDetailPageReqVO; import com.win.module.wms.dal.dataobject.scrapRequest.ScrapRequestDetailDO; +import com.win.module.wms.dal.dataobject.unplannedreceiptRequest.UnplannedreceiptRequestDetailDO; import org.apache.ibatis.annotations.Mapper; /** @@ -23,6 +24,7 @@ public interface ScrapRequestDetailMapper extends BaseMapperX selectPage(ScrapRequestDetailPageReqVO reqVO) { return selectPage(reqVO, new LambdaQueryWrapperX() .eqIfPresent(ScrapRequestDetailDO::getFromOwnerCode, reqVO.getFromOwnerCode()) + .eqIfPresent(ScrapRequestDetailDO::getMasterId, reqVO.getMasterId()) .eqIfPresent(ScrapRequestDetailDO::getPackingNumber, reqVO.getPackingNumber()) .eqIfPresent(ScrapRequestDetailDO::getContainerNumber, reqVO.getContainerNumber()) .eqIfPresent(ScrapRequestDetailDO::getBatch, reqVO.getBatch()) @@ -41,7 +43,6 @@ public interface ScrapRequestDetailMapper extends BaseMapperX selectSenior(CustomConditions conditions) { @@ -50,7 +51,7 @@ public interface ScrapRequestDetailMapper extends BaseMapperX selectList(ScrapRequestDetailExportReqVO reqVO) { return selectList(new LambdaQueryWrapperX() .eqIfPresent(ScrapRequestDetailDO::getFromOwnerCode, reqVO.getFromOwnerCode()) - .eqIfPresent(ScrapRequestDetailDO::getMasterid, reqVO.getMasterId()) + .eqIfPresent(ScrapRequestDetailDO::getMasterId, reqVO.getMasterId()) .eqIfPresent(ScrapRequestDetailDO::getPackingNumber, reqVO.getPackingNumber()) .eqIfPresent(ScrapRequestDetailDO::getContainerNumber, reqVO.getContainerNumber()) .eqIfPresent(ScrapRequestDetailDO::getBatch, reqVO.getBatch()) @@ -73,4 +74,9 @@ public interface ScrapRequestDetailMapper extends BaseMapperX selectList(Long masterId) { + return selectList(new LambdaQueryWrapperX() + .eq(ScrapRequestDetailDO::getMasterId, masterId)); + } + } diff --git a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/dal/mysql/scrapRequest/ScrapRequestMainMapper.java b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/dal/mysql/scrapRequest/ScrapRequestMainMapper.java index a898082d..adfb7a7b 100644 --- a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/dal/mysql/scrapRequest/ScrapRequestMainMapper.java +++ b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/dal/mysql/scrapRequest/ScrapRequestMainMapper.java @@ -10,6 +10,7 @@ import com.win.framework.mybatis.core.util.QueryWrapperUtils; import com.win.module.wms.controller.scrapRequest.vo.ScrapRequestMainExportReqVO; import com.win.module.wms.controller.scrapRequest.vo.ScrapRequestMainPageReqVO; import com.win.module.wms.dal.dataobject.scrapRequest.ScrapRequestMainDO; +import com.win.module.wms.dal.dataobject.unplannedreceiptRequest.UnplannedreceiptRequestMainDO; import org.apache.ibatis.annotations.Mapper; /** @@ -68,4 +69,8 @@ public interface ScrapRequestMainMapper extends BaseMapperX .orderByDesc(ScrapRequestMainDO::getId)); } + default List 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/inventoryinitRequest/InventoryinitRequestDetailService.java b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/inventoryinitRequest/InventoryinitRequestDetailService.java index d45c7148..a0fca1f8 100644 --- a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/inventoryinitRequest/InventoryinitRequestDetailService.java +++ b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/inventoryinitRequest/InventoryinitRequestDetailService.java @@ -10,6 +10,7 @@ import com.win.module.wms.controller.inventoryinitRequest.vo.InventoryinitReques import com.win.module.wms.controller.inventoryinitRequest.vo.InventoryinitRequestDetailUpdateReqVO; import com.win.module.wms.dal.dataobject.inventoryinitRequest.InventoryinitRequestDetailDO; import com.win.framework.common.pojo.PageResult; +import com.win.module.wms.dal.dataobject.unplannedreceiptRequest.UnplannedreceiptRequestDetailDO; /** * 库存初始化申请子 Service 接口 @@ -79,4 +80,6 @@ public interface InventoryinitRequestDetailService { */ List getInventoryinitRequestDetailList(InventoryinitRequestDetailExportReqVO exportReqVO); + List selectList(Long masterId); + } diff --git a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/inventoryinitRequest/InventoryinitRequestDetailServiceImpl.java b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/inventoryinitRequest/InventoryinitRequestDetailServiceImpl.java index 0a1d33ba..92a6e70b 100644 --- a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/inventoryinitRequest/InventoryinitRequestDetailServiceImpl.java +++ b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/inventoryinitRequest/InventoryinitRequestDetailServiceImpl.java @@ -5,6 +5,7 @@ import com.win.module.wms.controller.inventoryinitRequest.vo.InventoryinitReques import com.win.module.wms.controller.inventoryinitRequest.vo.InventoryinitRequestDetailExportReqVO; import com.win.module.wms.controller.inventoryinitRequest.vo.InventoryinitRequestDetailPageReqVO; import com.win.module.wms.controller.inventoryinitRequest.vo.InventoryinitRequestDetailUpdateReqVO; +import com.win.module.wms.dal.dataobject.unplannedreceiptRequest.UnplannedreceiptRequestDetailDO; import org.springframework.stereotype.Service; import javax.annotation.Resource; import org.springframework.validation.annotation.Validated; @@ -87,4 +88,9 @@ public class InventoryinitRequestDetailServiceImpl implements InventoryinitReque return inventoryinitRequestDetailMapper.selectList(exportReqVO); } + @Override + public List selectList(Long masterId) { + return inventoryinitRequestDetailMapper.selectList(masterId); + } + } diff --git a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/productscrapRequest/ProductscrapRequestMainService.java b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/productscrapRequest/ProductscrapRequestMainService.java index 14d80177..6c34b50c 100644 --- a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/productscrapRequest/ProductscrapRequestMainService.java +++ b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/productscrapRequest/ProductscrapRequestMainService.java @@ -93,6 +93,6 @@ public interface ProductscrapRequestMainService { * @param updatePart 是否支持更新 * @return 导入结果 */ - public List importProductscrapRequestList(List datas, Integer mode, boolean updatePart); + public List importProductscrapRequestList(List datas, Integer mode, boolean updatePart); } diff --git a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/productscrapRequest/ProductscrapRequestMainServiceImpl.java b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/productscrapRequest/ProductscrapRequestMainServiceImpl.java index 3582909c..8eecb16b 100644 --- a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/productscrapRequest/ProductscrapRequestMainServiceImpl.java +++ b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/productscrapRequest/ProductscrapRequestMainServiceImpl.java @@ -1,7 +1,6 @@ package com.win.module.wms.service.productscrapRequest; import cn.hutool.core.collection.CollUtil; -import cn.hutool.core.exceptions.UtilException; import com.google.common.annotations.VisibleForTesting; import com.win.framework.common.pojo.CustomConditions; import com.win.framework.common.util.validation.ValidationUtils; @@ -13,18 +12,7 @@ import com.win.module.system.api.dict.DictDataApi; import com.win.module.system.api.dict.dto.DictDataRespDTO; import com.win.module.system.api.serialnumber.SerialNumberApi; import com.win.module.system.enums.serialNumber.RuleCodeEnum; -import com.win.module.wms.controller.issueRequest.vo.*; -import com.win.module.wms.controller.productputawayRequest.vo.ProductputawayRequestDetailUpdateReqVO; -import com.win.module.wms.controller.productputawayRequest.vo.ProductputawayRequestMainUpdateReqVO; import com.win.module.wms.controller.productscrapRequest.vo.*; -import com.win.module.wms.convert.issueRequest.IssueRequestDetailConvert; -import com.win.module.wms.convert.issueRequest.IssueRequestMainConvert; -import com.win.module.wms.convert.productputawayRequest.ProductputawayRequestDetailConvert; -import com.win.module.wms.dal.dataobject.issueRequest.IssueRequestDetailDO; -import com.win.module.wms.dal.dataobject.issueRequest.IssueRequestMainDO; -import com.win.module.wms.dal.dataobject.productputawayRequest.ProductputawayRequestDetailDO; -import com.win.module.wms.dal.dataobject.productputawayRequest.ProductputawayRequestMainDO; -import com.win.module.wms.dal.mysql.productscrapRequest.*; import com.win.module.wms.convert.productscrapRequest.ProductscrapRequestDetailConvert; import com.win.module.wms.convert.productscrapRequest.ProductscrapRequestMainConvert; import com.win.module.wms.dal.dataobject.balance.BalanceDO; @@ -37,35 +25,15 @@ import com.win.module.wms.dal.mysql.productscrapRequest.ProductscrapRequestDetai import com.win.module.wms.dal.mysql.productscrapRequest.ProductscrapRequestMainMapper; import com.win.module.wms.enums.DictTypeConstants; import com.win.module.wms.enums.request.RequestStatusEnum; +import com.win.module.wms.enums.request.RequestStatusState; import com.win.module.wms.service.itembasic.ItembasicService; -import com.win.module.wms.service.location.LocationService; import com.win.module.wms.service.requestsetting.RequestsettingService; -import com.win.module.wms.service.shift.ShiftService; -import com.win.module.wms.service.supplieritem.SupplieritemService; import com.win.module.wms.util.JobUtils; import org.springframework.stereotype.Service; -import org.springframework.transaction.interceptor.TransactionAspectSupport; import org.springframework.validation.annotation.Validated; -import com.win.module.wms.service.itembasic.ItembasicService.*; - import java.math.BigDecimal; import java.time.LocalDateTime; -import java.util.*; - -import com.win.module.wms.dal.dataobject.productscrapRequest.ProductscrapRequestMainDO; -import com.win.framework.common.pojo.PageResult; -import com.win.module.wms.controller.productscrapRequest.vo.*; -import com.win.module.wms.convert.productscrapRequest.ProductscrapRequestDetailConvert; -import com.win.module.wms.convert.productscrapRequest.ProductscrapRequestMainConvert; -import com.win.module.wms.dal.dataobject.productscrapRequest.ProductscrapRequestDetailDO; -import com.win.module.wms.dal.dataobject.productscrapRequest.ProductscrapRequestMainDO; -import com.win.module.wms.dal.mysql.productscrapRequest.ProductscrapRequestDetailMapper; -import com.win.module.wms.dal.mysql.productscrapRequest.ProductscrapRequestMainMapper; -import org.springframework.stereotype.Service; -import org.springframework.validation.annotation.Validated; - import javax.annotation.Resource; -import java.math.BigDecimal; import javax.validation.Validator; import java.util.ArrayList; import java.util.Arrays; @@ -258,10 +226,21 @@ public class ProductscrapRequestMainServiceImpl implements ProductscrapRequestMa return productscrapRequestMainMapper.selectList(exportReqVO); } + private void validatetime(LocalDateTime durtime){ + if(durtime.isAfter(LocalDateTime.now())){ + throw exception(TIME_AFTER,LocalDateTime.now(),durtime); + } + } + + private String validateProductscrapRequestMainImport(ProductscrapRequestMainDO mainDo, BusinesstypeDO businesstypeDO) { StringBuilder message = new StringBuilder(); - mainDo.setStatus(DictFrameworkUtils.parseDictDataValue(DictTypeConstants.REQUEST_STATUS, "新增")); mainDo.setRequestTime(LocalDateTime.now()); + try{ + validatetime(mainDo.getDueTime()); + } catch (Exception ex) { + message.append(ex.getMessage()).append(","); + } RequestsettingDO requestsettingDO = requestsettingService.selectRequestsettingExist("ProductScrapRequest"); if (requestsettingDO == null) { message.append("未查找到制品报废申请的相关申请设置"); @@ -380,11 +359,11 @@ public class ProductscrapRequestMainServiceImpl implements ProductscrapRequestMa public List importProductscrapRequestList(List datas, Integer mode, boolean updatePart) { if (CollUtil.isEmpty(datas)) { - throw exception(PRODUCTSCRAP_REQUEST_NOT_EXISTS); + throw exception(PRODUCTSCRAP_REQUEST_MAIN_NOT_EXISTS); } List errorList = new ArrayList<>(); datas.forEach(createReqVO -> { - BusinesstypeDO businesstypeDO = businesstypeDO = jobUtils.selectDocumentSettingFromBusinessType("ProductScrapRequest"); + BusinesstypeDO businesstypeDO = jobUtils.selectDocumentSettingFromBusinessType("ProductScrapRequest"); ProductscrapRequestMainDO mainDo = ProductscrapRequestMainConvert.INSTANCE.convert(createReqVO); String messageMain = validateProductscrapRequestMainImport(mainDo, businesstypeDO); List subList = createReqVO.getSubList(); @@ -404,9 +383,11 @@ public class ProductscrapRequestMainServiceImpl implements ProductscrapRequestMa } //写入数据 if (flag) { - String number = serialNumberApi.generateCode(RuleCodeEnum.PRODUCT_SCRAP_REQUEST.getCode()); + String number = serialNumberApi.generateCode(RuleCodeEnum.SCRAP_REQUEST.getCode()); mainDo.setNumber(number); - mainDo.setStatus(DictFrameworkUtils.parseDictDataValue(DictTypeConstants.REQUEST_STATUS, "新增")); + RequestStatusState requestStatusState = new RequestStatusState(); + requestStatusState.newObject(mainDo.getAutoCommit(), mainDo.getAutoAgree(), mainDo.getAutoExecute()); + mainDo.setStatus(requestStatusState.getState().getCode()); productscrapRequestMainMapper.insert(mainDo); for (ProductscrapRequestDetailDO detailDO : subDOList) { detailDO.setMasterId(mainDo.getId()); diff --git a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/scrapRequest/ScrapRequestDetailService.java b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/scrapRequest/ScrapRequestDetailService.java index 805f8262..fa74959a 100644 --- a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/scrapRequest/ScrapRequestDetailService.java +++ b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/scrapRequest/ScrapRequestDetailService.java @@ -8,6 +8,7 @@ import com.win.module.wms.controller.scrapRequest.vo.ScrapRequestDetailPageReqVO import com.win.module.wms.controller.scrapRequest.vo.ScrapRequestDetailUpdateReqVO; import com.win.module.wms.dal.dataobject.scrapRequest.ScrapRequestDetailDO; import com.win.framework.common.pojo.PageResult; +import com.win.module.wms.dal.dataobject.unplannedreceiptRequest.UnplannedreceiptRequestDetailDO; /** * 报废出库申请子 Service 接口 @@ -77,4 +78,7 @@ public interface ScrapRequestDetailService { */ List getScrapRequestDetailList(ScrapRequestDetailExportReqVO exportReqVO); + + List selectList(Long masterId); + } diff --git a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/scrapRequest/ScrapRequestDetailServiceImpl.java b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/scrapRequest/ScrapRequestDetailServiceImpl.java index ca266e47..284864a0 100644 --- a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/scrapRequest/ScrapRequestDetailServiceImpl.java +++ b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/scrapRequest/ScrapRequestDetailServiceImpl.java @@ -1,10 +1,21 @@ package com.win.module.wms.service.scrapRequest; import com.win.framework.common.pojo.CustomConditions; -import com.win.module.wms.controller.scrapRequest.vo.ScrapRequestDetailCreateReqVO; -import com.win.module.wms.controller.scrapRequest.vo.ScrapRequestDetailExportReqVO; -import com.win.module.wms.controller.scrapRequest.vo.ScrapRequestDetailPageReqVO; -import com.win.module.wms.controller.scrapRequest.vo.ScrapRequestDetailUpdateReqVO; +import com.win.module.system.api.serialnumber.SerialNumberApi; +import com.win.module.system.enums.serialNumber.RuleCodeEnum; +import com.win.module.wms.controller.scrapRequest.vo.*; +import com.win.module.wms.convert.scrapRequest.ScrapRequestMainConvert; +import com.win.module.wms.dal.dataobject.balance.BalanceDO; +import com.win.module.wms.dal.dataobject.businesstype.BusinesstypeDO; +import com.win.module.wms.dal.dataobject.itembasic.ItembasicDO; +import com.win.module.wms.dal.dataobject.location.LocationDO; +import com.win.module.wms.dal.dataobject.requestsetting.RequestsettingDO; +import com.win.module.wms.dal.dataobject.scrapRequest.ScrapRequestMainDO; +import com.win.module.wms.dal.dataobject.unplannedreceiptRequest.UnplannedreceiptRequestDetailDO; +import com.win.module.wms.service.itembasic.ItembasicService; +import com.win.module.wms.service.location.LocationService; +import com.win.module.wms.service.requestsetting.RequestsettingService; +import com.win.module.wms.util.JobUtils; import org.springframework.stereotype.Service; import javax.annotation.Resource; import org.springframework.validation.annotation.Validated; @@ -28,15 +39,64 @@ public class ScrapRequestDetailServiceImpl implements ScrapRequestDetailService @Resource private ScrapRequestDetailMapper scrapRequestDetailMapper; + @Resource + private RequestsettingService requestsettingService; + @Resource + private LocationService locationService; + @Resource + private SerialNumberApi serialNumberApi; + + @Resource + private JobUtils jobUtils; + + @Resource + private ItembasicService itembasicService; + @Override public Long createScrapRequestDetail(ScrapRequestDetailCreateReqVO createReqVO) { + RequestsettingDO requestsettingDO = requestsettingService.selectRequestsettingExist("ScrapRequest"); // 插入 - ScrapRequestDetailDO scrapRequestDetail = ScrapRequestDetailConvert.INSTANCE.convert(createReqVO); - scrapRequestDetailMapper.insert(scrapRequestDetail); - // 返回 + ScrapRequestDetailDO scrapRequestDetail = validatorToCreate(createReqVO,requestsettingDO); return scrapRequestDetail.getId(); } + private ScrapRequestDetailDO validatorToCreate(ScrapRequestDetailCreateReqVO createReqVO, RequestsettingDO requestsettingDO) { + BusinesstypeDO businesstypeDO = jobUtils.selectDocumentSettingFromBusinessType("ScrapRequest"); + ScrapRequestDetailDO scrapRequestDetailDO = validateDetailMethod(createReqVO, businesstypeDO, requestsettingDO); + String number = serialNumberApi.generateCode(RuleCodeEnum.SCRAP_REQUEST.getCode()); + scrapRequestDetailDO.setNumber(number); + scrapRequestDetailDO.setMasterId(createReqVO.getMasterId()); + scrapRequestDetailMapper.insert(scrapRequestDetailDO); + return scrapRequestDetailDO; + } + + private ItembasicDO validatorItembasic(String itemCode) { + return itembasicService.selectItembasic(itemCode); + } + private LocationDO validatorLocation(String Location){ + return locationService.selectLocation(Location); + } + + + private ScrapRequestDetailDO validateDetailMethod(ScrapRequestDetailBaseVO baseVO, BusinesstypeDO businesstypeDO, RequestsettingDO requestsettingDO) { + ScrapRequestDetailDO detailDo = ScrapRequestDetailConvert.INSTANCE.convert(baseVO); + ItembasicDO itembasic = validatorItembasic(detailDo.getItemCode()); + detailDo.setItemDesc1(itembasic.getDesc1()); + detailDo.setItemDesc2(itembasic.getDesc2()); + detailDo.setItemName(itembasic.getName()); + detailDo.setProjectCode(itembasic.getProject()); + LocationDO locationDO = validatorLocation(detailDo.getFromLocationCode()); + jobUtils.ifInToLocationType(detailDo.getFromLocationCode(),businesstypeDO); + detailDo.setInventoryStatus("SCRAP"); + String INVENTORY = detailDo.getInventoryStatus(); + String[] inventory = INVENTORY.split(","); + List inventorystatus = Arrays.asList(inventory); + List balanceDO = jobUtils.selectlocationReturnManagementAccuracy(detailDo.getItemCode(),detailDo.getPackingNumber(),detailDo.getBatch(), detailDo.getFromLocationCode(),inventorystatus); + return detailDo; + } + + + @Override public void updateScrapRequestDetail(ScrapRequestDetailUpdateReqVO updateReqVO) { // 校验存在 @@ -85,4 +145,10 @@ public class ScrapRequestDetailServiceImpl implements ScrapRequestDetailService return scrapRequestDetailMapper.selectList(exportReqVO); } + + @Override + public List selectList(Long masterId) { + return scrapRequestDetailMapper.selectList(masterId); + } + } diff --git a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/scrapRequest/ScrapRequestMainService.java b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/scrapRequest/ScrapRequestMainService.java index 1803507a..5e2e16e9 100644 --- a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/scrapRequest/ScrapRequestMainService.java +++ b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/scrapRequest/ScrapRequestMainService.java @@ -4,12 +4,12 @@ import java.util.*; import javax.validation.*; import com.win.framework.common.pojo.CustomConditions; -import com.win.module.wms.controller.scrapRequest.vo.ScrapRequestMainCreateReqVO; -import com.win.module.wms.controller.scrapRequest.vo.ScrapRequestMainExportReqVO; -import com.win.module.wms.controller.scrapRequest.vo.ScrapRequestMainPageReqVO; -import com.win.module.wms.controller.scrapRequest.vo.ScrapRequestMainUpdateReqVO; +import com.win.module.wms.controller.productscrapRequest.vo.ProductscrapRequestImportErrorVO; +import com.win.module.wms.controller.productscrapRequest.vo.ProductscrapRequestMainCreateReqVO; +import com.win.module.wms.controller.scrapRequest.vo.*; import com.win.module.wms.dal.dataobject.scrapRequest.ScrapRequestMainDO; import com.win.framework.common.pojo.PageResult; +import com.win.module.wms.dal.dataobject.unplannedreceiptRequest.UnplannedreceiptRequestMainDO; /** * 报废出库申请主 Service 接口 @@ -81,4 +81,9 @@ public interface ScrapRequestMainService { */ List getScrapRequestMainList(ScrapRequestMainExportReqVO exportReqVO); + + public List importscrapRequestList(List datas, Integer mode, boolean updatePart); + + List getScrapRequestMainList1(CustomConditions conditions); + } diff --git a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/scrapRequest/ScrapRequestMainServiceImpl.java b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/scrapRequest/ScrapRequestMainServiceImpl.java index a58af87f..3348a306 100644 --- a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/scrapRequest/ScrapRequestMainServiceImpl.java +++ b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/scrapRequest/ScrapRequestMainServiceImpl.java @@ -1,14 +1,38 @@ package com.win.module.wms.service.scrapRequest; +import cn.hutool.core.collection.CollUtil; import com.win.framework.common.pojo.CustomConditions; -import com.win.module.wms.controller.scrapRequest.vo.ScrapRequestMainCreateReqVO; -import com.win.module.wms.controller.scrapRequest.vo.ScrapRequestMainExportReqVO; -import com.win.module.wms.controller.scrapRequest.vo.ScrapRequestMainPageReqVO; -import com.win.module.wms.controller.scrapRequest.vo.ScrapRequestMainUpdateReqVO; +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.enums.serialNumber.RuleCodeEnum; +import com.win.module.wms.controller.productscrapRequest.vo.*; +import com.win.module.wms.controller.scrapRequest.vo.*; +import com.win.module.wms.convert.productscrapRequest.ProductscrapRequestDetailConvert; +import com.win.module.wms.convert.productscrapRequest.ProductscrapRequestMainConvert; +import com.win.module.wms.convert.scrapRequest.ScrapRequestDetailConvert; +import com.win.module.wms.dal.dataobject.balance.BalanceDO; +import com.win.module.wms.dal.dataobject.businesstype.BusinesstypeDO; +import com.win.module.wms.dal.dataobject.itembasic.ItembasicDO; +import com.win.module.wms.dal.dataobject.location.LocationDO; +import com.win.module.wms.dal.dataobject.productscrapRequest.ProductscrapRequestDetailDO; +import com.win.module.wms.dal.dataobject.productscrapRequest.ProductscrapRequestMainDO; +import com.win.module.wms.dal.dataobject.requestsetting.RequestsettingDO; +import com.win.module.wms.dal.dataobject.scrapRequest.ScrapRequestDetailDO; +import com.win.module.wms.dal.dataobject.unplannedissueRequest.UnplannedissueRequestDetailDO; +import com.win.module.wms.dal.dataobject.unplannedreceiptRequest.UnplannedreceiptRequestMainDO; +import com.win.module.wms.dal.mysql.scrapRequest.ScrapRequestDetailMapper; +import com.win.module.wms.enums.request.RequestStatusEnum; +import com.win.module.wms.enums.request.RequestStatusState; +import com.win.module.wms.service.itembasic.ItembasicService; +import com.win.module.wms.service.location.LocationService; +import com.win.module.wms.service.requestsetting.RequestsettingService; +import com.win.module.wms.util.JobUtils; import org.springframework.stereotype.Service; import javax.annotation.Resource; import org.springframework.validation.annotation.Validated; +import java.time.LocalDateTime; import java.util.*; import com.win.module.wms.dal.dataobject.scrapRequest.ScrapRequestMainDO; @@ -32,22 +56,127 @@ public class ScrapRequestMainServiceImpl implements ScrapRequestMainService { @Resource private ScrapRequestMainMapper scrapRequestMainMapper; + @Resource + private ScrapRequestDetailMapper scrapRequestDetailMapper; + + @Resource + private SerialNumberApi serialNumberApi; + + @Resource + private LocationService locationService; + + @Resource + private JobUtils jobUtils; + + @Resource + private ItembasicService itembasicService; + + @Resource + private TrendsApi trendsApi; + + @Resource + private RequestsettingService requestsettingService; + @Override public Long createScrapRequestMain(ScrapRequestMainCreateReqVO createReqVO) { + RequestsettingDO requestsettingDO = requestsettingService.selectRequestsettingExist("ScrapRequest"); // 插入 - ScrapRequestMainDO scrapRequestMain = ScrapRequestMainConvert.INSTANCE.convert(createReqVO); - scrapRequestMainMapper.insert(scrapRequestMain); - // 返回 + ScrapRequestMainDO scrapRequestMain = validatorToCreate(createReqVO,requestsettingDO); + //调用自动执行方法 + if (RequestStatusEnum.HANDLING.getCode().equals(scrapRequestMain.getStatus())) { + + } + trendsApi.createTrends(requestsettingDO.getId(), "ScrapRequest", "增加了报废出库申请", TrendsTypeEnum.CREATE); return scrapRequestMain.getId(); } + private ScrapRequestMainDO validatorToCreate(ScrapRequestMainCreateReqVO createReqVO,RequestsettingDO requestsettingDO) { + BusinesstypeDO businesstypeDO = jobUtils.selectDocumentSettingFromBusinessType("ScrapRequest"); + ScrapRequestMainDO scrapRequestMainDO = validateMainMethod(createReqVO, businesstypeDO, requestsettingDO); + List subList = createReqVO.getSubList(); + List subDOList = ScrapRequestDetailConvert.INSTANCE.convertList03(subList); + for (ScrapRequestDetailDO scrapRequestDetailDO : subDOList) { + validateDetailMethod(scrapRequestDetailDO, businesstypeDO, scrapRequestMainDO); + } + String number = serialNumberApi.generateCode(RuleCodeEnum.PURCHASE_CLAIM_RECORD.getCode()); + scrapRequestMainDO.setNumber(number); + scrapRequestMainMapper.insert(scrapRequestMainDO); + for(ScrapRequestDetailDO detailDo : subDOList){ + detailDo.setMasterId(scrapRequestMainDO.getId()); + detailDo.setNumber(scrapRequestMainDO.getNumber()); + } + scrapRequestDetailMapper.insertBatch(subDOList); + return scrapRequestMainDO; + } + + + private void validateDetailMethod(ScrapRequestDetailDO detailDo, BusinesstypeDO businesstypeDO, ScrapRequestMainDO mainDo) { + ItembasicDO itembasic = validatorItembasic(detailDo.getItemCode()); + detailDo.setItemDesc1(itembasic.getDesc1()); + detailDo.setItemDesc2(itembasic.getDesc2()); + detailDo.setItemName(itembasic.getName()); + detailDo.setProjectCode(itembasic.getProject()); + LocationDO locationDO = validatorLocation(detailDo.getFromLocationCode()); + mainDo.setFromAreaCodes(locationDO.getAreaCode()); + mainDo.setFromLocationTypes(locationDO.getCode()); + jobUtils.ifInToLocationType(detailDo.getFromLocationCode(),businesstypeDO); + mainDo.setBusinessType(businesstypeDO.getCode()); + mainDo.setFromLocationTypes(businesstypeDO.getOutLocationTypes()); + mainDo.setFromAreaCodes(businesstypeDO.getOutAreaCodes()); + detailDo.setInventoryStatus("SCRAP"); + String INVENTORY = detailDo.getInventoryStatus(); + String[] inventory = INVENTORY.split(","); + List inventorystatus = Arrays.asList(inventory); + List balanceDO = jobUtils.selectlocationReturnManagementAccuracy(detailDo.getItemCode(),detailDo.getPackingNumber(),detailDo.getBatch(), detailDo.getFromLocationCode(),inventorystatus); + for(BalanceDO balance: balanceDO){ + mainDo.setFromWarehouseCode(balance.getWarehouseCode()); + } + } + + private ScrapRequestMainDO validateMainMethod(ScrapRequestMainBaseVO baseVO, BusinesstypeDO businesstypeDO, RequestsettingDO requestsettingDO) { + ScrapRequestMainDO mainDo = ScrapRequestMainConvert.INSTANCE.convert(baseVO); + mainDo.setRequestTime(LocalDateTime.now()); + validatetime(mainDo.getDueTime()); + mainDo.setAutoAgree(requestsettingDO.getAutoAgree()); + mainDo.setAutoCommit(requestsettingDO.getAutoCommit()); + mainDo.setAutoExecute(requestsettingDO.getAutoExecute()); + mainDo.setDirectCreateRecord(requestsettingDO.getDirectCreateRecord()); + mainDo.setBusinessType(businesstypeDO.getCode()); + mainDo.setFromLocationTypes(businesstypeDO.getInLocationTypes()); + mainDo.setFromAreaCodes(businesstypeDO.getInAreaCodes()); + return mainDo; + } + private ScrapRequestMainDO validatorToUpdate(ScrapRequestMainUpdateReqVO updateReqVO, RequestsettingDO requestsettingDO) { + BusinesstypeDO businesstypeDO = jobUtils.selectDocumentSettingFromBusinessType("ScrapRequest"); + ScrapRequestMainDO scrapRequestMainDO = validateMainMethod(updateReqVO,businesstypeDO,requestsettingDO); + //子表校验 + List subList = updateReqVO.getSubList(); + if(!subList.isEmpty()) { + List subDOList = ScrapRequestDetailConvert.INSTANCE.convertList05(subList); + for (ScrapRequestDetailDO scrapRequestDetailDO : subDOList) { + validateDetailMethod(scrapRequestDetailDO, businesstypeDO, scrapRequestMainDO); + } + scrapRequestDetailMapper.updateBatch(subDOList); + } + scrapRequestMainMapper.updateById(scrapRequestMainDO); + return scrapRequestMainDO; + + } + + + + @Override public void updateScrapRequestMain(ScrapRequestMainUpdateReqVO updateReqVO) { + RequestsettingDO requestsettingDO = requestsettingService.selectRequestsettingExist("ScrapRequest"); // 校验存在 validateScrapRequestMainExists(updateReqVO.getId()); // 更新 - ScrapRequestMainDO updateObj = ScrapRequestMainConvert.INSTANCE.convert(updateReqVO); - scrapRequestMainMapper.updateById(updateObj); + ScrapRequestMainDO scrapRequestMainDO = validatorToUpdate(updateReqVO, requestsettingDO); + if(RequestStatusEnum.HANDLING.getCode().equals(scrapRequestMainDO.getStatus())) { + + } + trendsApi.createTrends(requestsettingDO.getId(), "ScrapRequest", "增加了报废出库申请", TrendsTypeEnum.CREATE); } @Override public PageResult getScrapRequestMainSenior(CustomConditions conditions) { @@ -81,10 +210,142 @@ public class ScrapRequestMainServiceImpl implements ScrapRequestMainService { public PageResult getScrapRequestMainPage(ScrapRequestMainPageReqVO pageReqVO) { return scrapRequestMainMapper.selectPage(pageReqVO); } + private void validatetime(LocalDateTime durtime){ + if(LocalDateTime.now().isAfter(durtime)){ + throw exception(TIME_AFTER,LocalDateTime.now(),durtime); + } + } + private LocationDO validatorLocation(String Location){ + return locationService.selectLocation(Location); + } + @Override public List getScrapRequestMainList(ScrapRequestMainExportReqVO exportReqVO) { return scrapRequestMainMapper.selectList(exportReqVO); } + private ItembasicDO validatorItembasic(String itemCode) { + return itembasicService.selectItembasic(itemCode); + } + + private String validateScrapRequestMainImport(ScrapRequestMainDO mainDo, BusinesstypeDO businesstypeDO) { + StringBuilder message = new StringBuilder(); + mainDo.setRequestTime(LocalDateTime.now()); + try{ + validatetime(mainDo.getDueTime()); + } catch (Exception ex) { + message.append(ex.getMessage()).append(","); + } + RequestsettingDO requestsettingDO = requestsettingService.selectRequestsettingExist("ScrapRequest"); + if (requestsettingDO == null) { + message.append("未查找到制品报废申请的相关申请设置"); + } else { + mainDo.setAutoAgree(requestsettingDO.getAutoAgree()); + mainDo.setAutoCommit(requestsettingDO.getAutoCommit()); + mainDo.setAutoExecute(requestsettingDO.getAutoExecute()); + mainDo.setDirectCreateRecord(requestsettingDO.getDirectCreateRecord()); + } + if (businesstypeDO == null) { + message.append("根据单据设置未查找到制品报废申请申请的相关业务类型"); + } else { + mainDo.setBusinessType(businesstypeDO.getCode()); + mainDo.setFromLocationTypes(businesstypeDO.getInLocationTypes()); + mainDo.setFromAreaCodes(businesstypeDO.getInAreaCodes()); + } + return message.toString(); + } + + private String validateScrapvRequestDetailImport(ScrapRequestDetailDO detailDo, ScrapRequestMainDO mainDo, BusinesstypeDO businesstypeDO) { + StringBuilder message = new StringBuilder(); + try{ + ItembasicDO itembasic = validatorItembasic(detailDo.getItemCode()); + detailDo.setItemDesc1(itembasic.getDesc1()); + detailDo.setItemDesc2(itembasic.getDesc2()); + detailDo.setItemName(itembasic.getName()); + detailDo.setProjectCode(itembasic.getProject()); + } catch (Exception ex) { + message.append(ex.getMessage()).append(","); + } + try{ + LocationDO locationDO = validatorLocation(detailDo.getFromLocationCode()); + mainDo.setFromAreaCodes(locationDO.getAreaCode()); + mainDo.setFromLocationTypes(locationDO.getCode()); + }catch (Exception ex) { + message.append(ex.getMessage()).append(","); + } + try{ + jobUtils.ifInToLocationType(detailDo.getFromLocationCode(),businesstypeDO); + mainDo.setBusinessType(businesstypeDO.getCode()); + mainDo.setFromLocationTypes(businesstypeDO.getOutLocationTypes()); + mainDo.setFromAreaCodes(businesstypeDO.getOutAreaCodes()); + + }catch (Exception ex) { + message.append(ex.getMessage()).append(","); + } + try{ + detailDo.setInventoryStatus("SCRAP"); + String INVENTORY = detailDo.getInventoryStatus(); + String[] inventory = INVENTORY.split(","); + List inventorystatus = Arrays.asList(inventory); + List balanceDO = jobUtils.selectlocationReturnManagementAccuracy(detailDo.getItemCode(),detailDo.getPackingNumber(),detailDo.getBatch(), detailDo.getFromLocationCode(),inventorystatus); + for(BalanceDO balance: balanceDO){ + mainDo.setFromWarehouseCode(balance.getWarehouseCode()); + } + }catch (Exception ex) { + message.append(ex.getMessage()).append(","); + } + return message.toString(); + } + + + public List importscrapRequestList(List datas, Integer mode, boolean updatePart){ + if (CollUtil.isEmpty(datas)) { + throw exception(SCRAP_REQUEST_MAIN_NOT_EXISTS); + } + List errorList = new ArrayList<>(); + datas.forEach(createReqVO -> { + BusinesstypeDO businesstypeDO = jobUtils.selectDocumentSettingFromBusinessType("ScrapRequest"); + ScrapRequestMainDO mainDo = ScrapRequestMainConvert.INSTANCE.convert(createReqVO); + String messageMain = validateScrapRequestMainImport(mainDo, businesstypeDO); + List subList = createReqVO.getSubList(); + List subDOList = ScrapRequestDetailConvert.INSTANCE.convertList03(subList); + // 是否有错误数据 + boolean flag = true; + for (ScrapRequestDetailDO detailDO : subDOList) { + String messageDetail = validateScrapvRequestDetailImport(detailDO, mainDo, businesstypeDO); + if (!"".equals(messageMain) ||!"".equals(messageDetail) ) { + ScrapRequestImportErrorVO importErrorVO = ScrapRequestMainConvert.INSTANCE.convert(createReqVO, detailDO); + importErrorVO.setImportStatus("失败"); + messageMain = messageMain + messageDetail; + importErrorVO.setImportRemark(messageMain.substring(0, messageMain.length() - 1)); + errorList.add(importErrorVO); + flag = false; + } + } + //写入数据 + if (flag) { + String number = serialNumberApi.generateCode(RuleCodeEnum.SCRAP_REQUEST.getCode()); + mainDo.setNumber(number); + RequestStatusState requestStatusState = new RequestStatusState(); + requestStatusState.newObject(mainDo.getAutoCommit(), mainDo.getAutoAgree(), mainDo.getAutoExecute()); + mainDo.setStatus(requestStatusState.getState().getCode()); + scrapRequestMainMapper.insert(mainDo); + for (ScrapRequestDetailDO detailDO : subDOList) { + detailDO.setMasterId(mainDo.getId()); + detailDO.setNumber(number); + } + scrapRequestDetailMapper.insertBatch(subDOList); + } + }); + return errorList; + + } + + public List getScrapRequestMainList1(CustomConditions conditions) { + return scrapRequestMainMapper.selectSeniorList(conditions); + } + + + }