From 803abc3807b3f544674b57797c59b8ff1635be60 Mon Sep 17 00:00:00 2001 From: "hongxi.lian" Date: Tue, 21 Nov 2023 11:37:22 +0800 Subject: [PATCH] =?UTF-8?q?=E8=AE=A1=E5=88=92=E5=A4=96=E5=85=A5=E5=BA=93?= =?UTF-8?q?=E8=AE=A1=E5=88=92=E5=A4=96=E5=87=BA=E5=BA=93?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../UnplannedissueRequestMainController.java | 107 ++++++- .../vo/UnplannedissueRequestDetailBaseVO.java | 4 +- .../vo/UnplannedissueRequestMainBaseVO.java | 8 +- .../UnplannedissueRequestMainCreateReqVO.java | 8 +- .../vo/UnplannedissueRequestMainExcelVO.java | 42 ++- ...nplannedissueRequestMainImportErrorVO.java | 25 ++ .../vo/UnplannedissueRequestMainImportVO.java | 70 ++++ .../UnplannedissueRequestMainUpdateReqVO.java | 8 +- ...UnplannedreceiptRequestMainController.java | 59 +++- .../UnplannedreceiptRequestDetailBaseVO.java | 3 + ...lannedreceiptRequestDetailUpdateReqVO.java | 4 + .../vo/UnplannedreceiptRequestMainBaseVO.java | 2 + .../UnplannedreceiptRequestMainExcelVO.java | 66 ++++ ...nplannedreceiptRequestMainExportReqVO.java | 14 +- .../UnplannedreceiptRequestMainImportVO.java | 26 +- ...nplannedreceiptRequestMainUpdateReqVO.java | 7 +- .../TransferissueRequestDetailConvert.java | 2 +- .../TransferissueRequestMainConvert.java | 8 +- .../UnplannedissueRequestDetailConvert.java | 20 +- .../UnplannedissueRequestMainConvert.java | 30 +- .../UnplannedreceiptRequestDetailConvert.java | 8 +- .../UnplannedreceiptRequestMainConvert.java | 31 +- .../UnplannedissueRequestDetailMapper.java | 6 + .../UnplannedissueRequestMainMapper.java | 6 + .../UnplannedreceiptRequestDetailMapper.java | 6 + .../UnplannedreceiptRequestMainMapper.java | 5 + .../TransferissueRequestMainServiceImpl.java | 9 +- ...nplannedissueRequestDetailServiceImpl.java | 77 ++++- .../UnplannedissueRequestMainService.java | 16 +- .../UnplannedissueRequestMainServiceImpl.java | 298 +++++++++++++++++- .../UnplannedreceiptRequestDetailService.java | 3 + ...lannedreceiptRequestDetailServiceImpl.java | 65 +++- .../UnplannedreceiptRequestMainService.java | 4 + ...nplannedreceiptRequestMainServiceImpl.java | 296 +++++++++++------ 34 files changed, 1160 insertions(+), 183 deletions(-) create mode 100644 win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/unplannedissueRequest/vo/UnplannedissueRequestMainImportErrorVO.java create mode 100644 win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/unplannedissueRequest/vo/UnplannedissueRequestMainImportVO.java diff --git a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/unplannedissueRequest/UnplannedissueRequestMainController.java b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/unplannedissueRequest/UnplannedissueRequestMainController.java index dcb3d93f..951e7431 100644 --- a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/unplannedissueRequest/UnplannedissueRequestMainController.java +++ b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/unplannedissueRequest/UnplannedissueRequestMainController.java @@ -1,12 +1,23 @@ package com.win.module.wms.controller.unplannedissueRequest; 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.purchasereceiptRequest.vo.PurchasereceiptRequestMainCreateReqVO; +import com.win.module.wms.controller.purchasereceiptRequest.vo.PurchasereceiptRequestMainImportErrorVO; +import com.win.module.wms.controller.purchasereceiptRequest.vo.PurchasereceiptRequestMainImportVO; import com.win.module.wms.controller.unplannedissueRequest.vo.*; +import com.win.module.wms.controller.unplannedreceiptRequest.vo.UnplannedreceiptRequestMainExcelVO; import com.win.module.wms.convert.unplannedissueRequest.UnplannedissueRequestDetailConvert; +import com.win.module.wms.convert.unplannedreceiptRequest.UnplannedreceiptRequestMainConvert; 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 com.win.module.wms.enums.DictTypeConstants; import com.win.module.wms.service.unplannedissueRequest.UnplannedissueRequestDetailService; +import io.swagger.v3.oas.annotations.Parameters; import org.springframework.web.bind.annotation.*; import javax.annotation.Resource; import org.springframework.validation.annotation.Validated; @@ -17,6 +28,8 @@ 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; @@ -31,6 +44,7 @@ import static com.win.framework.operatelog.core.enums.OperateTypeEnum.*; import com.win.module.wms.dal.dataobject.unplannedissueRequest.UnplannedissueRequestMainDO; import com.win.module.wms.convert.unplannedissueRequest.UnplannedissueRequestMainConvert; import com.win.module.wms.service.unplannedissueRequest.UnplannedissueRequestMainService; +import org.springframework.web.multipart.MultipartFile; @Tag(name = "管理后台 - 计划外出库申请主") @RestController @@ -111,23 +125,60 @@ public class UnplannedissueRequestMainController { return success(UnplannedissueRequestMainConvert.INSTANCE.convertPage(pageResult)); } + @GetMapping("/export-excel") @Operation(summary = "导出计划外出库申请主 Excel") @PreAuthorize("@ss.hasPermission('wms:unplannedissue-request-main:export')") @OperateLog(type = EXPORT) - public void exportUnplannedissueRequestMainExcel(@Valid UnplannedissueRequestMainExportReqVO exportReqVO, - HttpServletResponse response) throws IOException { + public void exportUnplannedissueRequestMainExcel(@Valid UnplannedissueRequestMainExportReqVO exportReqVO, HttpServletResponse response) throws IOException { List list = unplannedissueRequestMainService.getUnplannedissueRequestMainList(exportReqVO); + //组装vo + Map mapDropDown = new HashMap<>(); + List resultList = this.getExcelVo(list, mapDropDown); // 导出 Excel - List datas = UnplannedissueRequestMainConvert.INSTANCE.convertList02(list); - for(UnplannedissueRequestMainExcelVO vo : datas) { - AdminUserRespDTO user = userApi.getUser(Long.valueOf(vo.getCreator())); - //后端创建个字段作为前端展示的虚拟字段 - vo.setCreator(user.getNickname()); + ExcelUtils.write(response, "计划外出库申请主.xls", "计划外出库申请数据", UnplannedissueRequestMainExcelVO.class, resultList,mapDropDown); + } + + @PostMapping("/export-excel-senior") + @Operation(summary = "导出计划外出库申请主 Excel") + @PreAuthorize("@ss.hasPermission('wms:unplannedreceipt-request-main:export')") + @OperateLog(type = EXPORT) + public void exportUnplannedreceiptRequestMainSeniorExcel(@Valid @RequestBody CustomConditions conditions, HttpServletResponse response) throws IOException { + List list = unplannedissueRequestMainService.getUnplannedissueRequestMainList1(conditions); + //组装vo + Map mapDropDown = new HashMap<>(); + List resultList = this.getExcelVo(list, mapDropDown); + // 导出 Excel + ExcelUtils.write(response, "计划外出库申请主.xlsx", "计划外出库申请数据", UnplannedissueRequestMainExcelVO.class, resultList, mapDropDown); + } + + + + + private List getExcelVo(List list, Map mapDropDown) { + String[] fromInventoryStatus = DictFrameworkUtils.dictTypeDictDataValue(DictTypeConstants.INVENTORY_STATUS); + mapDropDown.put(22, fromInventoryStatus); + String[] uom = DictFrameworkUtils.dictTypeDictDataValue(DictTypeConstants.UOM); + mapDropDown.put(28, uom); + List resultList = new ArrayList<>(); + // 导出 + for(UnplannedissueRequestMainDO mainDO : list) { + List subList = unplannedissueRequestMainService.selectList(mainDO.getId()); + for(UnplannedissueRequestDetailDO detailDO : subList) { + UnplannedissueRequestMainExcelVO vo = UnplannedissueRequestMainConvert.INSTANCE.convert(mainDO, detailDO); + AdminUserRespDTO user = userApi.getUser(Long.valueOf(mainDO.getCreator())); + vo.setCreator(user.getNickname()); + resultList.add(vo); + } } - ExcelUtils.write(response, "计划外出库申请主.xls", "数据", UnplannedissueRequestMainExcelVO.class, datas); + return resultList; } + + + + + @GetMapping("/getUnplannedissueRequestById") @Operation(summary = "APP获得计划外出库申请主子表明细列表") @Parameter(name = "id", description = "编号", required = true, example = "1024") @@ -146,4 +197,44 @@ public class UnplannedissueRequestMainController { return success(result); } + @GetMapping("/get-import-template") + @Operation(summary = "获得导入采购收货申请信息模板") + public void importTemplate(HttpServletResponse response) throws IOException { + // 手动创建导出 demo + List list = new ArrayList<>(); + Map mapDropDown = new HashMap<>(); + String[] uom = DictFrameworkUtils.dictTypeDictDataValue(DictTypeConstants.UOM); + mapDropDown.put(7, uom); + String[] inventoryStatus = DictFrameworkUtils.dictTypeDictDataValue(DictTypeConstants.INVENTORY_STATUS); + mapDropDown.put(8, inventoryStatus); + // 输出 + ExcelUtils.write(response, "采购收货申请信息导入模板.xlsx", "采购收货申请信息列表", UnplannedissueRequestMainImportVO.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:unplannedissue-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, UnplannedissueRequestMainImportVO.class); + ConvertUtil convertUtil = new ConvertUtil<>(UnplannedissueRequestMainCreateReqVO.class); + List createReqVOList = convertUtil.invoke(list).getDataList(); + List errorList = unplannedissueRequestMainService.importUnplannedissueRequestMainList(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); + } + + } diff --git a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/unplannedissueRequest/vo/UnplannedissueRequestDetailBaseVO.java b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/unplannedissueRequest/vo/UnplannedissueRequestDetailBaseVO.java index 5940cfb6..98a05a66 100644 --- a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/unplannedissueRequest/vo/UnplannedissueRequestDetailBaseVO.java +++ b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/unplannedissueRequest/vo/UnplannedissueRequestDetailBaseVO.java @@ -57,7 +57,6 @@ public class UnplannedissueRequestDetailBaseVO { private String remark; @Schema(description = "创建时间", requiredMode = Schema.RequiredMode.REQUIRED) - @NotNull(message = "创建时间不能为空") @DateTimeFormat(pattern = FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND) private LocalDateTime createTime; @@ -89,4 +88,7 @@ public class UnplannedissueRequestDetailBaseVO { @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/unplannedissueRequest/vo/UnplannedissueRequestMainBaseVO.java b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/unplannedissueRequest/vo/UnplannedissueRequestMainBaseVO.java index 03739762..6b3d923a 100644 --- a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/unplannedissueRequest/vo/UnplannedissueRequestMainBaseVO.java +++ b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/unplannedissueRequest/vo/UnplannedissueRequestMainBaseVO.java @@ -1,5 +1,6 @@ package com.win.module.wms.controller.unplannedissueRequest.vo; +import com.win.framework.excel.core.annotations.OnlyOne; import io.swagger.v3.oas.annotations.media.Schema; import lombok.*; import java.util.*; @@ -23,22 +24,19 @@ public class UnplannedissueRequestMainBaseVO { private Long id; @Schema(description = "从仓库代码", requiredMode = Schema.RequiredMode.REQUIRED) - @NotNull(message = "从仓库代码不能为空") private String fromWarehouseCode; @Schema(description = "单据号", requiredMode = Schema.RequiredMode.REQUIRED) - @NotNull(message = "单据号不能为空") + @OnlyOne private String number; @Schema(description = "业务类型", requiredMode = Schema.RequiredMode.REQUIRED) - @NotNull(message = "业务类型不能为空") private String businessType; @Schema(description = "备注") private String remark; @Schema(description = "创建时间", requiredMode = Schema.RequiredMode.REQUIRED) - @NotNull(message = "创建时间不能为空") @DateTimeFormat(pattern = FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND) private LocalDateTime createTime; @@ -71,11 +69,9 @@ public class UnplannedissueRequestMainBaseVO { private String concurrencyStamp; @Schema(description = "从库位类型范围", requiredMode = Schema.RequiredMode.REQUIRED) - @NotNull(message = "从库位类型范围不能为空") private String fromLocationTypes; @Schema(description = "从库区代码范围", requiredMode = Schema.RequiredMode.REQUIRED) - @NotNull(message = "从库区代码范围不能为空") private String fromAreaCodes; @Schema(description = "自动提交", requiredMode = Schema.RequiredMode.REQUIRED) diff --git a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/unplannedissueRequest/vo/UnplannedissueRequestMainCreateReqVO.java b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/unplannedissueRequest/vo/UnplannedissueRequestMainCreateReqVO.java index 1507da9b..950374d4 100644 --- a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/unplannedissueRequest/vo/UnplannedissueRequestMainCreateReqVO.java +++ b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/unplannedissueRequest/vo/UnplannedissueRequestMainCreateReqVO.java @@ -1,12 +1,18 @@ package com.win.module.wms.controller.unplannedissueRequest.vo; +import com.win.framework.excel.core.annotations.SubObject; +import com.win.module.wms.controller.unplannedreceiptRequest.vo.UnplannedreceiptRequestDetailCreateReqVO; 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 UnplannedissueRequestMainCreateReqVO extends UnplannedissueRequestMainBaseVO { - + @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/UnplannedissueRequestMainExcelVO.java b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/unplannedissueRequest/vo/UnplannedissueRequestMainExcelVO.java index c630c621..97ad5d66 100644 --- a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/unplannedissueRequest/vo/UnplannedissueRequestMainExcelVO.java +++ b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/unplannedissueRequest/vo/UnplannedissueRequestMainExcelVO.java @@ -1,5 +1,6 @@ package com.win.module.wms.controller.unplannedissueRequest.vo; +import com.alibaba.excel.annotation.write.style.ColumnWidth; import io.swagger.v3.oas.annotations.media.Schema; import lombok.*; import java.util.*; @@ -34,15 +35,18 @@ public class UnplannedissueRequestMainExcelVO { 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("部门") @@ -53,13 +57,12 @@ public class UnplannedissueRequestMainExcelVO { private String status; @ExcelProperty("最后更新时间") + @ColumnWidth(value = 25) private LocalDateTime updateTime; @ExcelProperty("最后更新者用户名") private String updater; - @ExcelProperty("并发乐观锁") - private String concurrencyStamp; @ExcelProperty(value = "从库位类型范围", converter = DictConvert.class) @DictFormat("location_type") // TODO 代码优化:建议设置到对应的 XXXDictTypeConstants 枚举类中 @@ -80,4 +83,39 @@ public class UnplannedissueRequestMainExcelVO { @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 uom; + } diff --git a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/unplannedissueRequest/vo/UnplannedissueRequestMainImportErrorVO.java b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/unplannedissueRequest/vo/UnplannedissueRequestMainImportErrorVO.java new file mode 100644 index 00000000..af149813 --- /dev/null +++ b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/unplannedissueRequest/vo/UnplannedissueRequestMainImportErrorVO.java @@ -0,0 +1,25 @@ +package com.win.module.wms.controller.unplannedissueRequest.vo; + +import com.alibaba.excel.annotation.ExcelProperty; +import lombok.Data; +import lombok.EqualsAndHashCode; +import lombok.ToString; + + +/** + * 采购索赔申请子 Excel VO + * + * @author 超级管理员 + */ +@Data +@EqualsAndHashCode(callSuper = true) +@ToString(callSuper = true) +public class UnplannedissueRequestMainImportErrorVO extends UnplannedissueRequestMainImportVO { + + @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/unplannedissueRequest/vo/UnplannedissueRequestMainImportVO.java b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/unplannedissueRequest/vo/UnplannedissueRequestMainImportVO.java new file mode 100644 index 00000000..ff0e7adc --- /dev/null +++ b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/unplannedissueRequest/vo/UnplannedissueRequestMainImportVO.java @@ -0,0 +1,70 @@ +package com.win.module.wms.controller.unplannedissueRequest.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 java.math.BigDecimal; +import java.time.LocalDateTime; + + +/** + * + * + * @author 超级管理员 + */ +@Data +@AllArgsConstructor +@NoArgsConstructor +@Accessors(chain = false) // 设置 chain = false,避免用户导入有问题 +public class UnplannedissueRequestMainImportVO { + + @ExcelProperty("单据号") + private String number; + + @ExcelProperty("截止时间") + private LocalDateTime dueTime; + + + //主表数据 + + @ExcelProperty("物品代码") + private String itemCode; + + @ExcelProperty("包装号") + private String packingNumber; + + @ExcelProperty("器具号") + private String containerNumber; + + @ExcelProperty("批次") + private String batch; + + @ExcelProperty("数量") + private BigDecimal qty; + + @ExcelProperty("计量单位") + private String uom; + + @ExcelProperty(value = "库存状态", converter = DictConvert.class) + @DictFormat(DictTypeConstants.INVENTORY_STATUS) + private String inventoryStatus; + + @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/unplannedissueRequest/vo/UnplannedissueRequestMainUpdateReqVO.java b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/unplannedissueRequest/vo/UnplannedissueRequestMainUpdateReqVO.java index ad93ce4b..14eb7412 100644 --- a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/unplannedissueRequest/vo/UnplannedissueRequestMainUpdateReqVO.java +++ b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/unplannedissueRequest/vo/UnplannedissueRequestMainUpdateReqVO.java @@ -1,12 +1,18 @@ package com.win.module.wms.controller.unplannedissueRequest.vo; +import com.win.framework.excel.core.annotations.SubObject; +import com.win.module.wms.controller.unplannedreceiptRequest.vo.UnplannedreceiptRequestDetailUpdateReqVO; 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 UnplannedissueRequestMainUpdateReqVO extends UnplannedissueRequestMainBaseVO { - + @SubObject + @Schema(description = "子表数据") + private List subList; } 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 eed38f4a..e5f02f01 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 @@ -3,16 +3,23 @@ package com.win.module.wms.controller.unplannedreceiptRequest; 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.ConvertUtil; 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.purchasereceiptRequest.vo.PurchasereceiptRequestMainExcelVO; import com.win.module.wms.controller.unplannedreceiptRequest.vo.*; +import com.win.module.wms.convert.purchasereceiptRequest.PurchasereceiptRequestMainConvert; import com.win.module.wms.convert.unplannedreceiptRequest.UnplannedreceiptRequestDetailConvert; import com.win.module.wms.convert.unplannedreceiptRequest.UnplannedreceiptRequestMainConvert; +import com.win.module.wms.dal.dataobject.purchasereceiptRequest.PurchasereceiptRequestDetailDO; +import com.win.module.wms.dal.dataobject.purchasereceiptRequest.PurchasereceiptRequestMainDO; 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.purchasereceiptRequest.PurchasereceiptRequestDetailService; import com.win.module.wms.service.unplannedreceiptRequest.UnplannedreceiptRequestDetailService; import com.win.module.wms.service.unplannedreceiptRequest.UnplannedreceiptRequestMainService; import io.swagger.v3.oas.annotations.Operation; @@ -50,6 +57,7 @@ public class UnplannedreceiptRequestMainController { @Resource private AdminUserApi userApi; + @PostMapping("/create") @Operation(summary = "创建计划外入库申请主") @PreAuthorize("@ss.hasPermission('wms:unplannedreceipt-request-main:create')") @@ -117,17 +125,44 @@ public class UnplannedreceiptRequestMainController { @Operation(summary = "导出计划外入库申请主 Excel") @PreAuthorize("@ss.hasPermission('wms:unplannedreceipt-request-main:export')") @OperateLog(type = EXPORT) - public void exportUnplannedreceiptRequestMainExcel(@Valid UnplannedreceiptRequestMainExportReqVO exportReqVO, - HttpServletResponse response) throws IOException { + public void exportUnplannedreceiptRequestMainExcel(@Valid UnplannedreceiptRequestMainExportReqVO exportReqVO, HttpServletResponse response) throws IOException { List list = unplannedreceiptRequestMainService.getUnplannedreceiptRequestMainList(exportReqVO); + //组装vo + Map mapDropDown = new HashMap<>(); + List resultList = this.getExcelVo(list, mapDropDown); + ExcelUtils.write(response, "计划外入库申请主.xls", "数据", UnplannedreceiptRequestMainExcelVO.class, resultList, mapDropDown); + } + + @PostMapping("/export-excel-senior") + @Operation(summary = "导出计划外入库申请主 Excel") + @PreAuthorize("@ss.hasPermission('wms:unplannedreceipt-request-main:export')") + @OperateLog(type = EXPORT) + public void exportUnplannedreceiptRequestMainSeniorExcel(@Valid @RequestBody CustomConditions conditions, HttpServletResponse response) throws IOException { + List list = unplannedreceiptRequestMainService.getUnplannedreceiptRequestMainList1(conditions); + //组装vo + Map mapDropDown = new HashMap<>(); + List resultList = this.getExcelVo(list, mapDropDown); // 导出 Excel - List datas = UnplannedreceiptRequestMainConvert.INSTANCE.convertList02(list); - for(UnplannedreceiptRequestMainExcelVO vo : datas) { - AdminUserRespDTO user = userApi.getUser(Long.valueOf(vo.getCreator())); - //后端创建个字段作为前端展示的虚拟字段 - vo.setCreator(user.getNickname()); + ExcelUtils.write(response, "计划外入库申请主.xlsx", "计划外入库申请数据", UnplannedreceiptRequestMainExcelVO.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(UnplannedreceiptRequestMainDO mainDO : list) { + List subList = unplannedreceiptRequestDetailService.selectList(mainDO.getId()); + for(UnplannedreceiptRequestDetailDO detailDO : subList) { + UnplannedreceiptRequestMainExcelVO vo = UnplannedreceiptRequestMainConvert.INSTANCE.convert(mainDO, detailDO); + AdminUserRespDTO user = userApi.getUser(Long.valueOf(mainDO.getCreator())); + vo.setCreator(user.getNickname()); + resultList.add(vo); + } } - ExcelUtils.write(response, "计划外入库申请主.xls", "数据", UnplannedreceiptRequestMainExcelVO.class, datas); + return resultList; } @GetMapping("/getUnplannedreceiptRequestById") @@ -154,10 +189,10 @@ public class UnplannedreceiptRequestMainController { // 手动创建导出 demo List list = new ArrayList<>(); Map mapDropDown = new HashMap<>(); -// String[] purchaseReturnReason = DictFrameworkUtils.dictTypeDictDataValue(DictTypeConstants.PURCHASE_RETURN_REASON); -// mapDropDown.put(16, purchaseReturnReason); -// String[] uom = DictFrameworkUtils.dictTypeDictDataValue(DictTypeConstants.UOM); -// mapDropDown.put(25, uom); + String[] fromInventoryStatus = DictFrameworkUtils.dictTypeDictDataValue(DictTypeConstants.INVENTORY_STATUS); + mapDropDown.put(6, fromInventoryStatus); + String[] uom = DictFrameworkUtils.dictTypeDictDataValue(DictTypeConstants.UOM); + mapDropDown.put(8, uom); // 输出 ExcelUtils.write(response, "要货计划信息导入模板.xlsx", "要货计划信息列表", UnplannedreceiptRequestMainImportVO.class, list, mapDropDown); } diff --git a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/unplannedreceiptRequest/vo/UnplannedreceiptRequestDetailBaseVO.java b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/unplannedreceiptRequest/vo/UnplannedreceiptRequestDetailBaseVO.java index 87ef15f2..988588ed 100644 --- a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/unplannedreceiptRequest/vo/UnplannedreceiptRequestDetailBaseVO.java +++ b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/unplannedreceiptRequest/vo/UnplannedreceiptRequestDetailBaseVO.java @@ -101,4 +101,7 @@ public class UnplannedreceiptRequestDetailBaseVO { @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/unplannedreceiptRequest/vo/UnplannedreceiptRequestDetailUpdateReqVO.java b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/unplannedreceiptRequest/vo/UnplannedreceiptRequestDetailUpdateReqVO.java index 629a3acb..b30b8c5d 100644 --- a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/unplannedreceiptRequest/vo/UnplannedreceiptRequestDetailUpdateReqVO.java +++ b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/unplannedreceiptRequest/vo/UnplannedreceiptRequestDetailUpdateReqVO.java @@ -1,8 +1,12 @@ package com.win.module.wms.controller.unplannedreceiptRequest.vo; +import com.win.framework.excel.core.annotations.SubObject; +import com.win.module.wms.controller.transferissueRequest.vo.TransferissueRequestDetailUpdateReqVO; import io.swagger.v3.oas.annotations.media.Schema; import lombok.*; +import java.util.List; + @Schema(description = "管理后台 - 计划外入库申请子更新 Request VO") @Data @EqualsAndHashCode(callSuper = true) diff --git a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/unplannedreceiptRequest/vo/UnplannedreceiptRequestMainBaseVO.java b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/unplannedreceiptRequest/vo/UnplannedreceiptRequestMainBaseVO.java index 9a7d16f7..aa1e2f1b 100644 --- a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/unplannedreceiptRequest/vo/UnplannedreceiptRequestMainBaseVO.java +++ b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/unplannedreceiptRequest/vo/UnplannedreceiptRequestMainBaseVO.java @@ -1,5 +1,6 @@ package com.win.module.wms.controller.unplannedreceiptRequest.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 UnplannedreceiptRequestMainBaseVO { private String toWarehouseCode; @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/unplannedreceiptRequest/vo/UnplannedreceiptRequestMainExcelVO.java b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/unplannedreceiptRequest/vo/UnplannedreceiptRequestMainExcelVO.java index b9ca2865..b2fa7133 100644 --- a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/unplannedreceiptRequest/vo/UnplannedreceiptRequestMainExcelVO.java +++ b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/unplannedreceiptRequest/vo/UnplannedreceiptRequestMainExcelVO.java @@ -1,7 +1,10 @@ package com.win.module.wms.controller.unplannedreceiptRequest.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,18 +37,22 @@ public class UnplannedreceiptRequestMainExcelVO { 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("部门") + @ColumnWidth(value = 25) private String departmentCode; @ExcelProperty(value = "状态", converter = DictConvert.class) @@ -53,6 +60,7 @@ public class UnplannedreceiptRequestMainExcelVO { private String status; @ExcelProperty("最后更新时间") + @ColumnWidth(value = 25) private LocalDateTime updateTime; @ExcelProperty("最后更新者用户名") @@ -77,4 +85,62 @@ public class UnplannedreceiptRequestMainExcelVO { @ExcelProperty("直接生成记录") private String directCreateRecord; + @ExcelProperty("包装号") + private String packingNumber; + + @ExcelProperty("器具号") + private String containerNumber; + + @ExcelProperty("批次") + private String batch; + + @ExcelProperty("替代批次") + private String altBatch; + + @ExcelProperty("到货日期") + @ColumnWidth(value = 24) + private LocalDateTime arriveDate; + + @ExcelProperty("生产日期") + @ColumnWidth(value = 24) + private LocalDateTime produceDate; + + @ExcelProperty("过期日期") + @ColumnWidth(value = 24) + private LocalDateTime expireDate; + + @ExcelProperty("到库位代码") + private String toLocationCode; + + @ExcelProperty(value = "库存状态", converter = DictConvert.class) + @DictFormat("inventory_status") // TODO 代码优化:建议设置到对应的 XXXDictTypeConstants 枚举类中 + private String inventoryStatus; + + @ExcelProperty(value = "原因", converter = DictConvert.class) + @DictFormat("unplanned_receipt_reason") // TODO 代码优化:建议设置到对应的 XXXDictTypeConstants 枚举类中 + 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(value = "计量单位", converter = DictConvert.class) + @DictFormat("uom") // TODO 代码优化:建议设置到对应的 XXXDictTypeConstants 枚举类中 + private String uom; + + } diff --git a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/unplannedreceiptRequest/vo/UnplannedreceiptRequestMainExportReqVO.java b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/unplannedreceiptRequest/vo/UnplannedreceiptRequestMainExportReqVO.java index 534c4757..c1d20c75 100644 --- a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/unplannedreceiptRequest/vo/UnplannedreceiptRequestMainExportReqVO.java +++ b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/unplannedreceiptRequest/vo/UnplannedreceiptRequestMainExportReqVO.java @@ -1,10 +1,12 @@ package com.win.module.wms.controller.unplannedreceiptRequest.vo; +import com.alibaba.excel.annotation.write.style.ColumnWidth;; +import com.win.framework.excel.core.annotations.SubObject; import lombok.*; -import java.util.*; import io.swagger.v3.oas.annotations.media.Schema; -import com.win.framework.common.pojo.PageParam; import java.time.LocalDateTime; +import java.util.List; + import org.springframework.format.annotation.DateTimeFormat; import static com.win.framework.common.util.date.DateUtils.FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND; @@ -27,6 +29,7 @@ public class UnplannedreceiptRequestMainExportReqVO { @Schema(description = "创建时间") @DateTimeFormat(pattern = FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND) + @ColumnWidth(value = 24) private LocalDateTime[] createTime; @Schema(description = "创建者用户名") @@ -34,10 +37,12 @@ public class UnplannedreceiptRequestMainExportReqVO { @Schema(description = "申请时间") @DateTimeFormat(pattern = FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND) + @ColumnWidth(value = 24) private LocalDateTime[] requestTime; @Schema(description = "截止时间") @DateTimeFormat(pattern = FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND) + @ColumnWidth(value = 24) private LocalDateTime[] dueTime; @Schema(description = "部门") @@ -48,6 +53,7 @@ public class UnplannedreceiptRequestMainExportReqVO { @Schema(description = "最后更新时间") @DateTimeFormat(pattern = FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND) + @ColumnWidth(value = 24) private LocalDateTime[] updateTime; @Schema(description = "最后更新者用户名") @@ -71,4 +77,8 @@ public class UnplannedreceiptRequestMainExportReqVO { @Schema(description = "直接生成记录") private String directCreateRecord; + @SubObject + @Schema(description = "子表数据") + private List subList; + } diff --git a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/unplannedreceiptRequest/vo/UnplannedreceiptRequestMainImportVO.java b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/unplannedreceiptRequest/vo/UnplannedreceiptRequestMainImportVO.java index 57c7984c..133d4835 100644 --- a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/unplannedreceiptRequest/vo/UnplannedreceiptRequestMainImportVO.java +++ b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/unplannedreceiptRequest/vo/UnplannedreceiptRequestMainImportVO.java @@ -1,6 +1,9 @@ package com.win.module.wms.controller.unplannedreceiptRequest.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; @@ -23,29 +26,48 @@ public class UnplannedreceiptRequestMainImportVO { //主表数据 + @ExcelProperty("单据号") + private String number; + + @ExcelProperty("截止时间") + private LocalDateTime dueTime; //子表数据 @ExcelProperty("零件号") private String itemCode; + @ExcelProperty("包装号") private String packingNumber; + @ExcelProperty("器具号") private String containerNumber; + @ExcelProperty("批次") private String batch; - @ExcelProperty("库存状态") + + @ExcelProperty(value = "库存状态", converter = DictConvert.class) + @DictFormat(DictTypeConstants.INVENTORY_STATUS) private String inventoryStatus; + @ExcelProperty("数量") private BigDecimal qty; - @ExcelProperty("记录单位") + + @ExcelProperty(value = "记录单位", converter = DictConvert.class) + @DictFormat(DictTypeConstants.UOM) private String uom; + @ExcelProperty("到货日期") private LocalDateTime arriveDate; + @ExcelProperty("生产日期") private LocalDateTime produceDate; + + @ExcelProperty("过期日期") private LocalDateTime expireDate; + @ExcelProperty("目标库位") private String toLocationCode; + @ExcelProperty("原因") private String reason; } diff --git a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/unplannedreceiptRequest/vo/UnplannedreceiptRequestMainUpdateReqVO.java b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/unplannedreceiptRequest/vo/UnplannedreceiptRequestMainUpdateReqVO.java index 620f0d56..1eeed988 100644 --- a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/unplannedreceiptRequest/vo/UnplannedreceiptRequestMainUpdateReqVO.java +++ b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/unplannedreceiptRequest/vo/UnplannedreceiptRequestMainUpdateReqVO.java @@ -1,12 +1,17 @@ package com.win.module.wms.controller.unplannedreceiptRequest.vo; +import com.win.framework.excel.core.annotations.SubObject; 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 UnplannedreceiptRequestMainUpdateReqVO extends UnplannedreceiptRequestMainBaseVO { - + @SubObject + @Schema(description = "子表数据") + private List subList; } diff --git a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/convert/transferissueRequest/TransferissueRequestDetailConvert.java b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/convert/transferissueRequest/TransferissueRequestDetailConvert.java index 32a40069..55f45c13 100644 --- a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/convert/transferissueRequest/TransferissueRequestDetailConvert.java +++ b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/convert/transferissueRequest/TransferissueRequestDetailConvert.java @@ -49,6 +49,6 @@ public interface TransferissueRequestDetailConvert { }) TransferissueRequestDetailExcelVO convert(TransferissueRequestMainDO mainDO, TransferissueRequestDetailDO detailDO); - TransferissueRequestMainImportErrorVO convert(TransferissueRequestMainCreateReqVO mainVo, TransferissueRequestDetailCreateReqVO detailVo); + } diff --git a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/convert/transferissueRequest/TransferissueRequestMainConvert.java b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/convert/transferissueRequest/TransferissueRequestMainConvert.java index 1c20f1ca..cb0d3528 100644 --- a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/convert/transferissueRequest/TransferissueRequestMainConvert.java +++ b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/convert/transferissueRequest/TransferissueRequestMainConvert.java @@ -8,6 +8,8 @@ import com.win.module.wms.controller.transferissueRequest.vo.*; import com.win.module.wms.dal.dataobject.productputawayRequest.ProductputawayRequestMainDO; import com.win.module.wms.dal.dataobject.transferissueRequest.TransferissueRequestDetailDO; import org.mapstruct.Mapper; +import org.mapstruct.Mapping; +import org.mapstruct.Mappings; import org.mapstruct.factory.Mappers; import com.win.module.wms.dal.dataobject.transferissueRequest.TransferissueRequestMainDO; @@ -34,7 +36,9 @@ public interface TransferissueRequestMainConvert { PageResult convertPage(PageResult page); List convertList02(List list); - - TransferissueRequestMainImportErrorVO convert(TransferissueRequestMainCreateReqVO mainVo, TransferissueRequestDetailDO detailDo); + @Mappings({ + @Mapping(source = "mainDo.number", target = "number") + }) + TransferissueRequestMainImportErrorVO convert(TransferissueRequestMainCreateReqVO mainDo, TransferissueRequestDetailDO detailDo); } diff --git a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/convert/unplannedissueRequest/UnplannedissueRequestDetailConvert.java b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/convert/unplannedissueRequest/UnplannedissueRequestDetailConvert.java index b07cbf5e..3fa13399 100644 --- a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/convert/unplannedissueRequest/UnplannedissueRequestDetailConvert.java +++ b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/convert/unplannedissueRequest/UnplannedissueRequestDetailConvert.java @@ -4,11 +4,16 @@ import java.util.*; import com.win.framework.common.pojo.PageResult; -import com.win.module.wms.controller.unplannedissueRequest.vo.UnplannedissueRequestDetailCreateReqVO; -import com.win.module.wms.controller.unplannedissueRequest.vo.UnplannedissueRequestDetailExcelVO; -import com.win.module.wms.controller.unplannedissueRequest.vo.UnplannedissueRequestDetailRespVO; -import com.win.module.wms.controller.unplannedissueRequest.vo.UnplannedissueRequestDetailUpdateReqVO; +import com.win.module.wms.controller.unplannedissueRequest.vo.*; +import com.win.module.wms.controller.unplannedreceiptRequest.vo.UnplannedreceiptRequestDetailCreateReqVO; +import com.win.module.wms.controller.unplannedreceiptRequest.vo.UnplannedreceiptRequestDetailUpdateReqVO; +import com.win.module.wms.controller.unplannedreceiptRequest.vo.UnplannedreceiptRequestMainCreateReqVO; +import com.win.module.wms.controller.unplannedreceiptRequest.vo.UnplannedreceiptRequestMainImportErrorVO; +import com.win.module.wms.dal.dataobject.unplannedissueRequest.UnplannedissueRequestMainDO; +import com.win.module.wms.dal.dataobject.unplannedreceiptRequest.UnplannedreceiptRequestDetailDO; import org.mapstruct.Mapper; +import org.mapstruct.Mapping; +import org.mapstruct.Mappings; import org.mapstruct.factory.Mappers; import com.win.module.wms.dal.dataobject.unplannedissueRequest.UnplannedissueRequestDetailDO; @@ -22,8 +27,12 @@ public interface UnplannedissueRequestDetailConvert { UnplannedissueRequestDetailConvert INSTANCE = Mappers.getMapper(UnplannedissueRequestDetailConvert.class); + + UnplannedissueRequestDetailDO convert(UnplannedissueRequestDetailBaseVO bean); + UnplannedissueRequestDetailDO convert(UnplannedissueRequestDetailCreateReqVO bean); + List convertList05(List list); UnplannedissueRequestDetailDO convert(UnplannedissueRequestDetailUpdateReqVO bean); UnplannedissueRequestDetailRespVO convert(UnplannedissueRequestDetailDO bean); @@ -32,6 +41,9 @@ public interface UnplannedissueRequestDetailConvert { 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/unplannedissueRequest/UnplannedissueRequestMainConvert.java b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/convert/unplannedissueRequest/UnplannedissueRequestMainConvert.java index 2aec09b5..949ee480 100644 --- a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/convert/unplannedissueRequest/UnplannedissueRequestMainConvert.java +++ b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/convert/unplannedissueRequest/UnplannedissueRequestMainConvert.java @@ -4,11 +4,15 @@ import java.util.*; import com.win.framework.common.pojo.PageResult; -import com.win.module.wms.controller.unplannedissueRequest.vo.UnplannedissueRequestMainCreateReqVO; -import com.win.module.wms.controller.unplannedissueRequest.vo.UnplannedissueRequestMainExcelVO; -import com.win.module.wms.controller.unplannedissueRequest.vo.UnplannedissueRequestMainRespVO; -import com.win.module.wms.controller.unplannedissueRequest.vo.UnplannedissueRequestMainUpdateReqVO; +import com.win.module.wms.controller.unplannedissueRequest.vo.*; +import com.win.module.wms.controller.unplannedreceiptRequest.vo.UnplannedreceiptRequestMainBaseVO; +import com.win.module.wms.controller.unplannedreceiptRequest.vo.UnplannedreceiptRequestMainExcelVO; +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.unplannedissueRequest.UnplannedissueRequestMainDO; @@ -22,16 +26,34 @@ public interface UnplannedissueRequestMainConvert { UnplannedissueRequestMainConvert INSTANCE = Mappers.getMapper(UnplannedissueRequestMainConvert.class); + + UnplannedissueRequestMainDO convert(UnplannedissueRequestMainBaseVO bean); + UnplannedissueRequestMainDO convert(UnplannedissueRequestMainCreateReqVO bean); UnplannedissueRequestMainDO convert(UnplannedissueRequestMainUpdateReqVO bean); UnplannedissueRequestMainRespVO convert(UnplannedissueRequestMainDO bean); + @Mappings({ + @Mapping(source = "mainVo.number", target = "number"), + }) + UnplannedissueRequestMainImportErrorVO convert(UnplannedissueRequestMainCreateReqVO mainVo, UnplannedissueRequestDetailDO detailDo); + List convertList(List list); PageResult convertPage(PageResult page); 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"), + }) + UnplannedissueRequestMainExcelVO convert(UnplannedissueRequestMainDO mainDO, UnplannedissueRequestDetailDO detailDO); + } diff --git a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/convert/unplannedreceiptRequest/UnplannedreceiptRequestDetailConvert.java b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/convert/unplannedreceiptRequest/UnplannedreceiptRequestDetailConvert.java index 1bca3447..27746fb2 100644 --- a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/convert/unplannedreceiptRequest/UnplannedreceiptRequestDetailConvert.java +++ b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/convert/unplannedreceiptRequest/UnplannedreceiptRequestDetailConvert.java @@ -1,7 +1,9 @@ package com.win.module.wms.convert.unplannedreceiptRequest; import com.win.framework.common.pojo.PageResult; +import com.win.module.wms.controller.transferissueRequest.vo.TransferissueRequestDetailUpdateReqVO; import com.win.module.wms.controller.unplannedreceiptRequest.vo.*; +import com.win.module.wms.dal.dataobject.transferissueRequest.TransferissueRequestDetailDO; import com.win.module.wms.dal.dataobject.unplannedreceiptRequest.UnplannedreceiptRequestDetailDO; import com.win.module.wms.dal.dataobject.unplannedreceiptRequest.UnplannedreceiptRequestMainDO; import org.mapstruct.Mapper; @@ -23,6 +25,10 @@ public interface UnplannedreceiptRequestDetailConvert { UnplannedreceiptRequestDetailDO convert(UnplannedreceiptRequestDetailCreateReqVO bean); + UnplannedreceiptRequestDetailDO convert(UnplannedreceiptRequestDetailBaseVO bean); + + List convertList05(List list); + UnplannedreceiptRequestDetailDO convert(UnplannedreceiptRequestDetailUpdateReqVO bean); UnplannedreceiptRequestDetailRespVO convert(UnplannedreceiptRequestDetailDO bean); @@ -47,6 +53,6 @@ public interface UnplannedreceiptRequestDetailConvert { }) UnplannedreceiptRequestDetailExcelVO convert(UnplannedreceiptRequestMainDO mainDO, UnplannedreceiptRequestDetailDO detailDO); - UnplannedreceiptRequestMainImportErrorVO convert(UnplannedreceiptRequestMainCreateReqVO mainVo, UnplannedreceiptRequestDetailCreateReqVO detailVo); + } diff --git a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/convert/unplannedreceiptRequest/UnplannedreceiptRequestMainConvert.java b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/convert/unplannedreceiptRequest/UnplannedreceiptRequestMainConvert.java index d38db26c..f28a4c8f 100644 --- a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/convert/unplannedreceiptRequest/UnplannedreceiptRequestMainConvert.java +++ b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/convert/unplannedreceiptRequest/UnplannedreceiptRequestMainConvert.java @@ -4,11 +4,19 @@ import java.util.*; import com.win.framework.common.pojo.PageResult; -import com.win.module.wms.controller.unplannedreceiptRequest.vo.UnplannedreceiptRequestMainCreateReqVO; -import com.win.module.wms.controller.unplannedreceiptRequest.vo.UnplannedreceiptRequestMainExcelVO; -import com.win.module.wms.controller.unplannedreceiptRequest.vo.UnplannedreceiptRequestMainRespVO; -import com.win.module.wms.controller.unplannedreceiptRequest.vo.UnplannedreceiptRequestMainUpdateReqVO; +import com.win.module.wms.controller.productputawayRequest.vo.ProductputawayImportErrorVO; +import com.win.module.wms.controller.productputawayRequest.vo.ProductputawayRequestMainBaseVO; +import com.win.module.wms.controller.productputawayRequest.vo.ProductputawayRequestMainCreateReqVO; +import com.win.module.wms.controller.purchasereceiptRequest.vo.PurchasereceiptRequestMainExcelVO; +import com.win.module.wms.controller.unplannedreceiptRequest.vo.*; +import com.win.module.wms.dal.dataobject.productputawayRequest.ProductputawayRequestDetailDO; +import com.win.module.wms.dal.dataobject.productputawayRequest.ProductputawayRequestMainDO; +import com.win.module.wms.dal.dataobject.purchasereceiptRequest.PurchasereceiptRequestDetailDO; +import com.win.module.wms.dal.dataobject.purchasereceiptRequest.PurchasereceiptRequestMainDO; +import com.win.module.wms.dal.dataobject.unplannedreceiptRequest.UnplannedreceiptRequestDetailDO; import org.mapstruct.Mapper; +import org.mapstruct.Mapping; +import org.mapstruct.Mappings; import org.mapstruct.factory.Mappers; import com.win.module.wms.dal.dataobject.unplannedreceiptRequest.UnplannedreceiptRequestMainDO; @@ -24,6 +32,8 @@ public interface UnplannedreceiptRequestMainConvert { UnplannedreceiptRequestMainDO convert(UnplannedreceiptRequestMainCreateReqVO bean); + UnplannedreceiptRequestMainDO convert(UnplannedreceiptRequestMainBaseVO bean); + UnplannedreceiptRequestMainDO convert(UnplannedreceiptRequestMainUpdateReqVO bean); UnplannedreceiptRequestMainRespVO convert(UnplannedreceiptRequestMainDO bean); @@ -33,5 +43,18 @@ public interface UnplannedreceiptRequestMainConvert { PageResult convertPage(PageResult page); List convertList02(List list); + @Mappings({ + @Mapping(source = "mainVo.number", target = "number"), + }) + UnplannedreceiptRequestMainImportErrorVO convert(UnplannedreceiptRequestMainCreateReqVO mainVo, UnplannedreceiptRequestDetailDO detailDo); + @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"), + }) + UnplannedreceiptRequestMainExcelVO convert(UnplannedreceiptRequestMainDO mainDO,UnplannedreceiptRequestDetailDO detailDO); } diff --git a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/dal/mysql/unplannedissueRequest/UnplannedissueRequestDetailMapper.java b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/dal/mysql/unplannedissueRequest/UnplannedissueRequestDetailMapper.java index 9a8d4186..959d5456 100644 --- a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/dal/mysql/unplannedissueRequest/UnplannedissueRequestDetailMapper.java +++ b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/dal/mysql/unplannedissueRequest/UnplannedissueRequestDetailMapper.java @@ -10,6 +10,7 @@ import com.win.framework.mybatis.core.util.QueryWrapperUtils; import com.win.module.wms.controller.unplannedissueRequest.vo.UnplannedissueRequestDetailExportReqVO; import com.win.module.wms.controller.unplannedissueRequest.vo.UnplannedissueRequestDetailPageReqVO; import com.win.module.wms.dal.dataobject.unplannedissueRequest.UnplannedissueRequestDetailDO; +import com.win.module.wms.dal.dataobject.unplannedreceiptRequest.UnplannedreceiptRequestDetailDO; import org.apache.ibatis.annotations.Mapper; /** @@ -75,4 +76,9 @@ public interface UnplannedissueRequestDetailMapper extends BaseMapperX selectList(Long masterId) { + return selectList(new LambdaQueryWrapperX() + .eq(UnplannedissueRequestDetailDO::getMasterId, masterId)); + } + } diff --git a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/dal/mysql/unplannedissueRequest/UnplannedissueRequestMainMapper.java b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/dal/mysql/unplannedissueRequest/UnplannedissueRequestMainMapper.java index 7beec62a..b4f2b5b6 100644 --- a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/dal/mysql/unplannedissueRequest/UnplannedissueRequestMainMapper.java +++ b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/dal/mysql/unplannedissueRequest/UnplannedissueRequestMainMapper.java @@ -10,6 +10,7 @@ import com.win.framework.mybatis.core.util.QueryWrapperUtils; import com.win.module.wms.controller.unplannedissueRequest.vo.UnplannedissueRequestMainExportReqVO; import com.win.module.wms.controller.unplannedissueRequest.vo.UnplannedissueRequestMainPageReqVO; import com.win.module.wms.dal.dataobject.unplannedissueRequest.UnplannedissueRequestMainDO; +import com.win.module.wms.dal.dataobject.unplannedreceiptRequest.UnplannedreceiptRequestMainDO; import org.apache.ibatis.annotations.Mapper; /** @@ -72,4 +73,9 @@ public interface UnplannedissueRequestMainMapper 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/dal/mysql/unplannedreceiptRequest/UnplannedreceiptRequestDetailMapper.java b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/dal/mysql/unplannedreceiptRequest/UnplannedreceiptRequestDetailMapper.java index 6e99f01f..03b744a2 100644 --- a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/dal/mysql/unplannedreceiptRequest/UnplannedreceiptRequestDetailMapper.java +++ b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/dal/mysql/unplannedreceiptRequest/UnplannedreceiptRequestDetailMapper.java @@ -9,6 +9,7 @@ import com.win.framework.mybatis.core.mapper.BaseMapperX; import com.win.framework.mybatis.core.util.QueryWrapperUtils; import com.win.module.wms.controller.unplannedreceiptRequest.vo.UnplannedreceiptRequestDetailExportReqVO; import com.win.module.wms.controller.unplannedreceiptRequest.vo.UnplannedreceiptRequestDetailPageReqVO; +import com.win.module.wms.dal.dataobject.purchasereceiptRequest.PurchasereceiptRequestDetailDO; import com.win.module.wms.dal.dataobject.unplannedreceiptRequest.UnplannedreceiptRequestDetailDO; import org.apache.ibatis.annotations.Mapper; @@ -81,4 +82,9 @@ public interface UnplannedreceiptRequestDetailMapper extends BaseMapperX selectList(Long masterId) { + return selectList(new LambdaQueryWrapperX() + .eq(UnplannedreceiptRequestDetailDO::getMasterId, masterId)); + } + } diff --git a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/dal/mysql/unplannedreceiptRequest/UnplannedreceiptRequestMainMapper.java b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/dal/mysql/unplannedreceiptRequest/UnplannedreceiptRequestMainMapper.java index 86f864ae..24764151 100644 --- a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/dal/mysql/unplannedreceiptRequest/UnplannedreceiptRequestMainMapper.java +++ b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/dal/mysql/unplannedreceiptRequest/UnplannedreceiptRequestMainMapper.java @@ -9,6 +9,7 @@ import com.win.framework.mybatis.core.mapper.BaseMapperX; import com.win.framework.mybatis.core.util.QueryWrapperUtils; import com.win.module.wms.controller.unplannedreceiptRequest.vo.UnplannedreceiptRequestMainExportReqVO; import com.win.module.wms.controller.unplannedreceiptRequest.vo.UnplannedreceiptRequestMainPageReqVO; +import com.win.module.wms.dal.dataobject.purchasereceiptRequest.PurchasereceiptRequestMainDO; import com.win.module.wms.dal.dataobject.unplannedreceiptRequest.UnplannedreceiptRequestMainDO; import org.apache.ibatis.annotations.Mapper; @@ -70,4 +71,8 @@ public interface UnplannedreceiptRequestMainMapper 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/transferissueRequest/TransferissueRequestMainServiceImpl.java b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/transferissueRequest/TransferissueRequestMainServiceImpl.java index 34aa1222..fa079ba5 100644 --- a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/transferissueRequest/TransferissueRequestMainServiceImpl.java +++ b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/transferissueRequest/TransferissueRequestMainServiceImpl.java @@ -94,7 +94,7 @@ public class TransferissueRequestMainServiceImpl implements TransferissueRequest for(TransferissueRequestDetailDO transferissueRequestDetailDO: subDOList){ validateDetailMethod(transferissueRequestDetailDO,businesstypeDO,transferissueRequestMainDO); } - String number = serialNumberApi.generateCode(RuleCodeEnum.PURCHASE_CLAIM_RECORD.getCode()); + String number = serialNumberApi.generateCode(RuleCodeEnum.TRANSFER_REQUEST.getCode()); transferissueRequestMainDO.setNumber(number); transferissueRequestMainMapper.insert(transferissueRequestMainDO); for(TransferissueRequestDetailDO transferissueRequestDetailDO: subDOList){ @@ -127,7 +127,12 @@ public class TransferissueRequestMainServiceImpl implements TransferissueRequest private TransferissueRequestMainDO validateMainMethod(TransferissueRequestMainBaseVO baseVO, BusinesstypeDO businesstypeDO, RequestsettingDO requestsettingDO){ TransferissueRequestMainDO transferissueRequestMainDO = TransferissueRequestMainConvert.INSTANCE.convert(baseVO); - transferissueRequestMainDO.setStatus(DictFrameworkUtils.parseDictDataValue(DictTypeConstants.REQUEST_STATUS, "1")); + RequestStatusState requestStatusState = new RequestStatusState(); + requestStatusState.newObject(transferissueRequestMainDO.getAutoCommit(), transferissueRequestMainDO.getAutoAgree(), transferissueRequestMainDO.getAutoExecute()); + transferissueRequestMainDO.setStatus(requestStatusState.getState().getCode()); + transferissueRequestMainDO.setRequestTime(LocalDateTime.now()); + transferissueRequestMainDO.setCreateTime(LocalDateTime.now()); + validordurtime(transferissueRequestMainDO.getDueTime()); transferissueRequestMainDO.setAutoAgree(requestsettingDO.getAutoAgree()); transferissueRequestMainDO.setAutoCommit(requestsettingDO.getAutoCommit()); transferissueRequestMainDO.setAutoExecute(requestsettingDO.getAutoExecute()); diff --git a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/unplannedissueRequest/UnplannedissueRequestDetailServiceImpl.java b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/unplannedissueRequest/UnplannedissueRequestDetailServiceImpl.java index e80ad7a1..88426405 100644 --- a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/unplannedissueRequest/UnplannedissueRequestDetailServiceImpl.java +++ b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/unplannedissueRequest/UnplannedissueRequestDetailServiceImpl.java @@ -1,10 +1,22 @@ package com.win.module.wms.service.unplannedissueRequest; import com.win.framework.common.pojo.CustomConditions; -import com.win.module.wms.controller.unplannedissueRequest.vo.UnplannedissueRequestDetailCreateReqVO; -import com.win.module.wms.controller.unplannedissueRequest.vo.UnplannedissueRequestDetailExportReqVO; -import com.win.module.wms.controller.unplannedissueRequest.vo.UnplannedissueRequestDetailPageReqVO; -import com.win.module.wms.controller.unplannedissueRequest.vo.UnplannedissueRequestDetailUpdateReqVO; +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.unplannedissueRequest.vo.*; +import com.win.module.wms.convert.unplannedissueRequest.UnplannedissueRequestMainConvert; +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.unplannedissueRequest.UnplannedissueRequestMainDO; +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; @@ -32,13 +44,64 @@ public class UnplannedissueRequestDetailServiceImpl implements UnplannedissueReq @Resource private UnplannedissueRequestDetailMapper unplannedissueRequestDetailMapper; + @Resource + private RequestsettingService requestsettingService; + + @Resource + private JobUtils jobUtils; + + @Resource + private SerialNumberApi serialNumberApi; + @Resource + private ItembasicService itembasicService; + + @Resource + private TrendsApi trendsApi; + + @Resource + private LocationService locationService; + @Override public Long createUnplannedissueRequestDetail(UnplannedissueRequestDetailCreateReqVO createReqVO) { + RequestsettingDO requestsettingDO = requestsettingService.selectRequestsettingExist("UnplannedDeliverRequest"); // 插入 - UnplannedissueRequestDetailDO unplannedissueRequestDetail = UnplannedissueRequestDetailConvert.INSTANCE.convert(createReqVO); - unplannedissueRequestDetailMapper.insert(unplannedissueRequestDetail); - // 返回 + UnplannedissueRequestDetailDO unplannedissueRequestDetail =validatorToCreate(createReqVO,requestsettingDO); + + trendsApi.createTrends(requestsettingDO.getId(), "UnplannedDeliverRequest", "增加了计划外出库申请", TrendsTypeEnum.CREATE); return unplannedissueRequestDetail.getId(); + + } + + private UnplannedissueRequestDetailDO validatorToCreate(UnplannedissueRequestDetailCreateReqVO createReqVO, RequestsettingDO requestsettingDO) { + BusinesstypeDO businesstypeDO = jobUtils.selectDocumentSettingFromBusinessType("UnplannedDeliverRequest"); + UnplannedissueRequestDetailDO unplannedissueRequestDetailDO = validateDetailMethod(createReqVO,businesstypeDO,requestsettingDO); + unplannedissueRequestDetailDO.setMasterId(createReqVO.getMasterId()); + String number = serialNumberApi.generateCode(RuleCodeEnum.TRANSFER_REQUEST.getCode()); + unplannedissueRequestDetailDO.setNumber(number); + unplannedissueRequestDetailMapper.insert(unplannedissueRequestDetailDO); + return unplannedissueRequestDetailDO; + } + + private UnplannedissueRequestDetailDO validateDetailMethod(UnplannedissueRequestDetailBaseVO baseVO, BusinesstypeDO businesstypeDO, RequestsettingDO requestsettingDO){ + UnplannedissueRequestDetailDO detailDo = UnplannedissueRequestDetailConvert.INSTANCE.convert(baseVO); + validatorLocation(detailDo.getFromLocationCode()); + ItembasicDO itembasicDO = itembasicService.selectItembasic(detailDo.getItemCode()); + detailDo.setItemDesc1(itembasicDO.getDesc1()); + detailDo.setItemDesc2(itembasicDO.getDesc2()); + detailDo.setItemName(itembasicDO.getName()); + detailDo.setProjectCode(itembasicDO.getProject()); + detailDo.setUom(itembasicDO.getUom()); + jobUtils.ifInToLocationType(detailDo.getFromLocationCode(), businesstypeDO ); + jobUtils.ifOutInventoryStatuses(detailDo.getInventoryStatus(), businesstypeDO ); + 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; + } + + private LocationDO validatorLocation(String Location){ + return locationService.selectLocation(Location); } @Override diff --git a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/unplannedissueRequest/UnplannedissueRequestMainService.java b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/unplannedissueRequest/UnplannedissueRequestMainService.java index a7b36905..7b76ba8e 100644 --- a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/unplannedissueRequest/UnplannedissueRequestMainService.java +++ b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/unplannedissueRequest/UnplannedissueRequestMainService.java @@ -5,12 +5,14 @@ import javax.validation.*; import com.win.framework.common.pojo.CustomConditions; import com.win.module.system.api.dict.dto.DictDataRespDTO; -import com.win.module.wms.controller.unplannedissueRequest.vo.UnplannedissueRequestMainCreateReqVO; -import com.win.module.wms.controller.unplannedissueRequest.vo.UnplannedissueRequestMainExportReqVO; -import com.win.module.wms.controller.unplannedissueRequest.vo.UnplannedissueRequestMainPageReqVO; -import com.win.module.wms.controller.unplannedissueRequest.vo.UnplannedissueRequestMainUpdateReqVO; +import com.win.module.wms.controller.purchasereceiptRequest.vo.PurchasereceiptRequestMainCreateReqVO; +import com.win.module.wms.controller.purchasereceiptRequest.vo.PurchasereceiptRequestMainImportErrorVO; +import com.win.module.wms.controller.unplannedissueRequest.vo.*; +import com.win.module.wms.dal.dataobject.unplannedissueRequest.UnplannedissueRequestDetailDO; import com.win.module.wms.dal.dataobject.unplannedissueRequest.UnplannedissueRequestMainDO; import com.win.framework.common.pojo.PageResult; +import com.win.module.wms.dal.dataobject.unplannedreceiptRequest.UnplannedreceiptRequestDetailDO; +import com.win.module.wms.dal.dataobject.unplannedreceiptRequest.UnplannedreceiptRequestMainDO; /** * 计划外出库申请主 Service 接口 @@ -88,4 +90,10 @@ public interface UnplannedissueRequestMainService { */ public DictDataRespDTO selectLabelExist(String ptype, String plabel); + List selectList(Long masterId); + + List importUnplannedissueRequestMainList(List datas, Integer mode, boolean updatePart); + + List getUnplannedissueRequestMainList1(CustomConditions conditions); + } diff --git a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/unplannedissueRequest/UnplannedissueRequestMainServiceImpl.java b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/unplannedissueRequest/UnplannedissueRequestMainServiceImpl.java index 81346cd8..3e1da3bb 100644 --- a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/unplannedissueRequest/UnplannedissueRequestMainServiceImpl.java +++ b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/unplannedissueRequest/UnplannedissueRequestMainServiceImpl.java @@ -1,16 +1,47 @@ package com.win.module.wms.service.unplannedissueRequest; +import cn.hutool.core.collection.CollUtil; import com.win.framework.common.pojo.CustomConditions; +import com.win.module.infra.api.trends.TrendsApi; +import com.win.module.infra.enums.TrendsTypeEnum; import com.win.module.system.api.dict.DictDataApi; import com.win.module.system.api.dict.dto.DictDataRespDTO; -import com.win.module.wms.controller.unplannedissueRequest.vo.UnplannedissueRequestMainCreateReqVO; -import com.win.module.wms.controller.unplannedissueRequest.vo.UnplannedissueRequestMainExportReqVO; -import com.win.module.wms.controller.unplannedissueRequest.vo.UnplannedissueRequestMainPageReqVO; -import com.win.module.wms.controller.unplannedissueRequest.vo.UnplannedissueRequestMainUpdateReqVO; +import com.win.module.system.api.serialnumber.SerialNumberApi; +import com.win.module.system.enums.serialNumber.RuleCodeEnum; +import com.win.module.wms.controller.purchasereceiptRequest.vo.PurchasereceiptRequestDetailCreateReqVO; +import com.win.module.wms.controller.purchasereceiptRequest.vo.PurchasereceiptRequestMainCreateReqVO; +import com.win.module.wms.controller.purchasereceiptRequest.vo.PurchasereceiptRequestMainImportErrorVO; +import com.win.module.wms.controller.unplannedissueRequest.vo.*; +import com.win.module.wms.controller.unplannedreceiptRequest.vo.*; +import com.win.module.wms.convert.purchasereceiptRequest.PurchasereceiptRequestDetailConvert; +import com.win.module.wms.convert.purchasereceiptRequest.PurchasereceiptRequestMainConvert; +import com.win.module.wms.convert.unplannedissueRequest.UnplannedissueRequestDetailConvert; +import com.win.module.wms.convert.unplannedreceiptRequest.UnplannedreceiptRequestDetailConvert; +import com.win.module.wms.convert.unplannedreceiptRequest.UnplannedreceiptRequestMainConvert; +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.purchasereceiptRequest.PurchasereceiptRequestDetailDO; +import com.win.module.wms.dal.dataobject.purchasereceiptRequest.PurchasereceiptRequestMainDO; +import com.win.module.wms.dal.dataobject.requestsetting.RequestsettingDO; +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 com.win.module.wms.dal.mysql.unplannedissueRequest.UnplannedissueRequestDetailMapper; +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.transaction.annotation.Transactional; import org.springframework.validation.annotation.Validated; +import java.time.LocalDateTime; import java.util.*; import com.win.module.wms.dal.dataobject.unplannedissueRequest.UnplannedissueRequestMainDO; @@ -33,25 +64,129 @@ public class UnplannedissueRequestMainServiceImpl implements UnplannedissueReque @Resource private UnplannedissueRequestMainMapper unplannedissueRequestMainMapper; + + @Resource + private UnplannedissueRequestDetailMapper unplannedissueRequestDetailMapper; @Resource private DictDataApi dictDataApi; + + @Resource + private LocationService locationService; + + @Resource + private RequestsettingService requestsettingService; + + @Resource + private SerialNumberApi serialNumberApi; + + @Resource + private ItembasicService itembasicService; + @Resource + private TrendsApi trendsApi; + + @Resource + private JobUtils jobUtils; + @Override public Long createUnplannedissueRequestMain(UnplannedissueRequestMainCreateReqVO createReqVO) { - // 插入 - UnplannedissueRequestMainDO unplannedissueRequestMain = UnplannedissueRequestMainConvert.INSTANCE.convert(createReqVO); - unplannedissueRequestMainMapper.insert(unplannedissueRequestMain); - // 返回 - return unplannedissueRequestMain.getId(); + RequestsettingDO requestsettingDO = requestsettingService.selectRequestsettingExist("UnplannedDeliverRequest"); + UnplannedissueRequestMainDO unplannedissueRequestMainDO = validatorToCreate(createReqVO,requestsettingDO); + //调用自动执行方法 + if(RequestStatusEnum.HANDLING.getCode().equals(unplannedissueRequestMainDO.getStatus())) { + + } + trendsApi.createTrends(requestsettingDO.getId(), "UnplannedDeliverRequest", "增加了计划外出库申请", TrendsTypeEnum.CREATE); + return unplannedissueRequestMainDO.getId(); + } + + private UnplannedissueRequestMainDO validatorToCreate(UnplannedissueRequestMainCreateReqVO createReqVO, RequestsettingDO requestsettingDO) { + BusinesstypeDO businesstypeDO = jobUtils.selectDocumentSettingFromBusinessType("UnplannedDeliverRequest"); + UnplannedissueRequestMainDO unplannedissueRequestMainDO = validateMainMethod(createReqVO,businesstypeDO,requestsettingDO); + List subList = createReqVO.getSubList(); + List subDOList = UnplannedissueRequestDetailConvert.INSTANCE.convertList03(subList); + for (UnplannedissueRequestDetailDO unplannedissueRequestDetailDO : subDOList) { + validateDetailMethod(unplannedissueRequestDetailDO, businesstypeDO,unplannedissueRequestMainDO); + } + String number = serialNumberApi.generateCode(RuleCodeEnum.UNPLANNED_DELIVER_REQUEST.getCode()); + unplannedissueRequestMainDO.setNumber(number); + unplannedissueRequestMainMapper.insert(unplannedissueRequestMainDO); + for(UnplannedissueRequestDetailDO unplannedreceiptRequestDetailDO: subDOList){ + unplannedreceiptRequestDetailDO.setMasterId(unplannedissueRequestMainDO.getId()); + unplannedreceiptRequestDetailDO.setNumber(unplannedissueRequestMainDO.getNumber()); + } + unplannedissueRequestDetailMapper.insertBatch(subDOList); + return unplannedissueRequestMainDO; + } + + private void validateDetailMethod(UnplannedissueRequestDetailDO detailDo, BusinesstypeDO businesstypeDO, UnplannedissueRequestMainDO mainDo) { + detailDo.setCreateTime(LocalDateTime.now()); + LocationDO locationDO = validatorLocation(detailDo.getFromLocationCode()); + mainDo.setFromAreaCodes(locationDO.getAreaCode()); + mainDo.setFromLocationTypes(locationDO.getCode()); + ItembasicDO itembasicDO = itembasicService.selectItembasic(detailDo.getItemCode()); + detailDo.setItemDesc1(itembasicDO.getDesc1()); + detailDo.setItemDesc2(itembasicDO.getDesc2()); + detailDo.setItemName(itembasicDO.getName()); + detailDo.setProjectCode(itembasicDO.getProject()); + detailDo.setUom(itembasicDO.getUom()); + jobUtils.ifInToLocationType(detailDo.getFromLocationCode(), businesstypeDO ); + jobUtils.ifOutInventoryStatuses(detailDo.getInventoryStatus(), businesstypeDO ); + 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 UnplannedissueRequestMainDO validateMainMethod(UnplannedissueRequestMainBaseVO baseVO, BusinesstypeDO businesstypeDO, RequestsettingDO requestsettingDO){ + UnplannedissueRequestMainDO mainDo = UnplannedissueRequestMainConvert.INSTANCE.convert(baseVO); + mainDo.setRequestTime(LocalDateTime.now()); + mainDo.setCreateTime(LocalDateTime.now()); + validordurtime(mainDo.getDueTime()); + mainDo.setBusinessType(businesstypeDO.getCode()); + mainDo.setAutoAgree(requestsettingDO.getAutoAgree()); + mainDo.setAutoCommit(requestsettingDO.getAutoCommit()); + mainDo.setAutoExecute(requestsettingDO.getAutoExecute()); + mainDo.setDirectCreateRecord(requestsettingDO.getDirectCreateRecord()); + return mainDo; + } @Override public void updateUnplannedissueRequestMain(UnplannedissueRequestMainUpdateReqVO updateReqVO) { + RequestsettingDO requestsettingDO = requestsettingService.selectRequestsettingExist("UnplannedDeliverRequest"); // 校验存在 validateUnplannedissueRequestMainExists(updateReqVO.getId()); // 更新 - UnplannedissueRequestMainDO updateObj = UnplannedissueRequestMainConvert.INSTANCE.convert(updateReqVO); - unplannedissueRequestMainMapper.updateById(updateObj); + UnplannedissueRequestMainDO unplannedissueRequestMainDO = validatorToUpdate(updateReqVO, requestsettingDO); + if(RequestStatusEnum.HANDLING.getCode().equals(unplannedissueRequestMainDO.getStatus())) { + + } + trendsApi.createTrends(requestsettingDO.getId(), "TransferDeliverRequest", "增加了计划外出库申请", TrendsTypeEnum.CREATE); } + private UnplannedissueRequestMainDO validatorToUpdate(UnplannedissueRequestMainUpdateReqVO updateReqVO, RequestsettingDO requestsettingDO) { + BusinesstypeDO businesstypeDO = jobUtils.selectDocumentSettingFromBusinessType("UnplannedDeliverRequest"); + UnplannedissueRequestMainDO unplannedissueRequestMainDO = validateMainMethod(updateReqVO,businesstypeDO,requestsettingDO); + //子表校验 + List subList = updateReqVO.getSubList(); + if(!subList.isEmpty()) { + List subDOList = UnplannedissueRequestDetailConvert.INSTANCE.convertList05(subList); + for (UnplannedissueRequestDetailDO unplannedissueRequestDetailDO : subDOList) { + validateDetailMethod(unplannedissueRequestDetailDO, businesstypeDO, unplannedissueRequestMainDO); + } + unplannedissueRequestDetailMapper.updateBatch(subDOList); + } + unplannedissueRequestMainMapper.updateById(unplannedissueRequestMainDO); + return unplannedissueRequestMainDO; + } + + + @Override public PageResult getUnplannedissueRequestMainSenior(CustomConditions conditions) { return unplannedissueRequestMainMapper.selectSenior(conditions); @@ -95,4 +230,145 @@ public class UnplannedissueRequestMainServiceImpl implements UnplannedissueReque DictDataRespDTO dictDataRespDTO = dictDataApi.selectDictTypeAndLabel(ptype, plabel); return dictDataRespDTO; } + @Override + public List getUnplannedissueRequestMainList1(CustomConditions conditions) { + return unplannedissueRequestMainMapper.selectSeniorList(conditions); + } + + private String validateUnplannedissueRequestMainImport(UnplannedissueRequestMainDO mainDo, BusinesstypeDO businesstypeDO) { + StringBuilder message = new StringBuilder(); + mainDo.setRequestTime(LocalDateTime.now()); + mainDo.setCreateTime(LocalDateTime.now()); + try { + validordurtime(mainDo.getDueTime()); + } catch (Exception ex) { + message.append(ex.getMessage()).append(","); + } + if (businesstypeDO != null) { + mainDo.setBusinessType(businesstypeDO.getCode()); + } try{ + RequestsettingDO requestsettingDO = requestsettingService.selectRequestsettingExist("UnplannedDeliverRequest"); + if (requestsettingDO != null) { + mainDo.setAutoAgree(requestsettingDO.getAutoAgree()); + mainDo.setAutoCommit(requestsettingDO.getAutoCommit()); + mainDo.setAutoExecute(requestsettingDO.getAutoExecute()); + mainDo.setDirectCreateRecord(requestsettingDO.getDirectCreateRecord()); + } + } catch (Exception ex) { + message.append(ex.getMessage()).append(","); + } + + return message.toString(); + + } + + private LocationDO validatorLocation(String Location){ + return locationService.selectLocation(Location); + } + + private void validordurtime(LocalDateTime durtime){ + if(!durtime.isAfter(LocalDateTime.now())){ + throw exception(TIME_AFTER,LocalDateTime.now(),durtime); + } + } + + private String validateUnplannedissueRequestDetailImport(UnplannedissueRequestDetailDO detailDo, BusinesstypeDO businesstypeDO ,UnplannedissueRequestMainDO mainDo ){ + StringBuilder message = new StringBuilder(); + detailDo.setCreateTime(LocalDateTime.now()); + try{ + LocationDO locationDO = validatorLocation(detailDo.getFromLocationCode()); + mainDo.setFromAreaCodes(locationDO.getAreaCode()); + mainDo.setFromLocationTypes(locationDO.getCode()); + }catch (Exception ex) { + message.append(ex.getMessage()).append(","); + } + try{ + ItembasicDO itembasicDO = itembasicService.selectItembasic(detailDo.getItemCode()); + detailDo.setItemDesc1(itembasicDO.getDesc1()); + detailDo.setItemDesc2(itembasicDO.getDesc2()); + detailDo.setItemName(itembasicDO.getName()); + detailDo.setProjectCode(itembasicDO.getProject()); + detailDo.setUom(itembasicDO.getUom()); + }catch (Exception ex) { + message.append(ex.getMessage()).append(","); + } + try{ + jobUtils.ifInToLocationType(detailDo.getFromLocationCode(), businesstypeDO ); + }catch (Exception ex) { + message.append(ex.getMessage()).append(","); + } + try{ + jobUtils.ifOutInventoryStatuses(detailDo.getInventoryStatus(), businesstypeDO ); + }catch (Exception ex) { + message.append(ex.getMessage()).append(","); + } + try { + 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(); + } + + + + + + @Override + @Transactional + public List importUnplannedissueRequestMainList(List datas, Integer mode, boolean updatePart) { + if (CollUtil.isEmpty(datas)) { + throw exception(UNPLANNEDISSUE_REQUEST_MAIN_NOT_EXISTS); + } + List errorList = new ArrayList<>(); + datas.forEach(createReqVO -> { + BusinesstypeDO businesstypeDO = jobUtils.selectDocumentSettingFromBusinessType("UnplannedDeliverRequest"); + UnplannedissueRequestMainDO mainDo = UnplannedissueRequestMainConvert.INSTANCE.convert(createReqVO); + String messageMain = this.validateUnplannedissueRequestMainImport(mainDo, businesstypeDO); + List subList = createReqVO.getSubList(); + List subDOList = UnplannedissueRequestDetailConvert.INSTANCE.convertList03(subList); + // 是否有错误数据 + boolean flag = true; + for (UnplannedissueRequestDetailDO detailDO : subDOList) { + String messageDetail = this.validateUnplannedissueRequestDetailImport(detailDO,businesstypeDO,mainDo); + if(!messageMain.isEmpty() || !messageDetail.isEmpty()) { + UnplannedissueRequestMainImportErrorVO importErrorVO = UnplannedissueRequestMainConvert.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.PRODUCT_PUTAWAY_REQUEST.getCode()); + mainDo.setNumber(number); + RequestStatusState requestStatusState = new RequestStatusState(); + requestStatusState.newObject(mainDo.getAutoCommit(), mainDo.getAutoAgree(), mainDo.getAutoExecute()); + mainDo.setStatus(requestStatusState.getState().getCode()); + unplannedissueRequestMainMapper.insert(mainDo); + for (UnplannedissueRequestDetailDO detailDO : subDOList) { + detailDO.setMasterId(mainDo.getId()); + detailDO.setNumber(number); + } + unplannedissueRequestDetailMapper.insertBatch(subDOList); + } + }); + return errorList; + } + + + @Override + public List selectList(Long masterId) { + return unplannedissueRequestDetailMapper.selectList(masterId); + } + + } diff --git a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/unplannedreceiptRequest/UnplannedreceiptRequestDetailService.java b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/unplannedreceiptRequest/UnplannedreceiptRequestDetailService.java index 13b75b0c..f8a92885 100644 --- a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/unplannedreceiptRequest/UnplannedreceiptRequestDetailService.java +++ b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/unplannedreceiptRequest/UnplannedreceiptRequestDetailService.java @@ -8,6 +8,7 @@ import com.win.module.wms.controller.unplannedreceiptRequest.vo.Unplannedreceipt import com.win.module.wms.controller.unplannedreceiptRequest.vo.UnplannedreceiptRequestDetailExportReqVO; import com.win.module.wms.controller.unplannedreceiptRequest.vo.UnplannedreceiptRequestDetailPageReqVO; import com.win.module.wms.controller.unplannedreceiptRequest.vo.UnplannedreceiptRequestDetailUpdateReqVO; +import com.win.module.wms.dal.dataobject.purchasereceiptRequest.PurchasereceiptRequestDetailDO; import com.win.module.wms.dal.dataobject.unplannedreceiptRequest.UnplannedreceiptRequestDetailDO; import com.win.framework.common.pojo.PageResult; @@ -79,4 +80,6 @@ public interface UnplannedreceiptRequestDetailService { */ List getUnplannedreceiptRequestDetailList(UnplannedreceiptRequestDetailExportReqVO exportReqVO); + List selectList(Long masterId); + } diff --git a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/unplannedreceiptRequest/UnplannedreceiptRequestDetailServiceImpl.java b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/unplannedreceiptRequest/UnplannedreceiptRequestDetailServiceImpl.java index 5f98b9f1..60042381 100644 --- a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/unplannedreceiptRequest/UnplannedreceiptRequestDetailServiceImpl.java +++ b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/unplannedreceiptRequest/UnplannedreceiptRequestDetailServiceImpl.java @@ -1,14 +1,24 @@ package com.win.module.wms.service.unplannedreceiptRequest; import com.win.framework.common.pojo.CustomConditions; -import com.win.module.wms.controller.unplannedreceiptRequest.vo.UnplannedreceiptRequestDetailCreateReqVO; -import com.win.module.wms.controller.unplannedreceiptRequest.vo.UnplannedreceiptRequestDetailExportReqVO; -import com.win.module.wms.controller.unplannedreceiptRequest.vo.UnplannedreceiptRequestDetailPageReqVO; -import com.win.module.wms.controller.unplannedreceiptRequest.vo.UnplannedreceiptRequestDetailUpdateReqVO; +import com.win.module.infra.api.trends.TrendsApi; +import com.win.module.infra.enums.TrendsTypeEnum; +import com.win.module.wms.controller.unplannedreceiptRequest.vo.*; +import com.win.module.wms.convert.unplannedreceiptRequest.UnplannedreceiptRequestMainConvert; +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.purchasereceiptRequest.PurchasereceiptRequestDetailDO; +import com.win.module.wms.dal.dataobject.requestsetting.RequestsettingDO; +import com.win.module.wms.dal.dataobject.unplannedreceiptRequest.UnplannedreceiptRequestMainDO; +import com.win.module.wms.enums.request.RequestStatusEnum; +import com.win.module.wms.service.itembasic.ItembasicService; +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.unplannedreceiptRequest.UnplannedreceiptRequestDetailDO; @@ -32,15 +42,50 @@ public class UnplannedreceiptRequestDetailServiceImpl implements Unplannedreceip @Resource private UnplannedreceiptRequestDetailMapper unplannedreceiptRequestDetailMapper; + @Resource + private RequestsettingService requestsettingService; + + @Resource + private ItembasicService itembasicService; + + @Resource + private JobUtils jobUtils; + + @Resource + private TrendsApi trendsApi; + @Override public Long createUnplannedreceiptRequestDetail(UnplannedreceiptRequestDetailCreateReqVO createReqVO) { + RequestsettingDO requestsettingDO = requestsettingService.selectRequestsettingExist("UnplannedReceiptRequest"); // 插入 - UnplannedreceiptRequestDetailDO unplannedreceiptRequestDetail = UnplannedreceiptRequestDetailConvert.INSTANCE.convert(createReqVO); - unplannedreceiptRequestDetailMapper.insert(unplannedreceiptRequestDetail); - // 返回 + UnplannedreceiptRequestDetailDO unplannedreceiptRequestDetail = validatorToCreate(createReqVO,requestsettingDO); return unplannedreceiptRequestDetail.getId(); } + + private UnplannedreceiptRequestDetailDO validatorToCreate(UnplannedreceiptRequestDetailCreateReqVO createReqVO, RequestsettingDO requestsettingDO) { + BusinesstypeDO businesstypeDO = jobUtils.selectDocumentSettingFromBusinessType("UnplannedReceiptRequest"); + UnplannedreceiptRequestDetailDO unplannedreceiptRequestDetailDO = validateDetailMethod(createReqVO,businesstypeDO); + unplannedreceiptRequestDetailMapper.insert(unplannedreceiptRequestDetailDO); + return unplannedreceiptRequestDetailDO; + + } + + private UnplannedreceiptRequestDetailDO validateDetailMethod(UnplannedreceiptRequestDetailBaseVO unplannedreceiptRequestDetailBaseVO, BusinesstypeDO businesstypeDO) { + UnplannedreceiptRequestDetailDO detailDo = UnplannedreceiptRequestDetailConvert.INSTANCE.convert(unplannedreceiptRequestDetailBaseVO); + detailDo.setMasterId(unplannedreceiptRequestDetailBaseVO.getMasterId()); + detailDo.setCreateTime(LocalDateTime.now()); + ItembasicDO itembasicDO = itembasicService.selectItembasic(detailDo.getItemCode()); + detailDo.setItemDesc1(itembasicDO.getDesc1()); + detailDo.setItemDesc2(itembasicDO.getDesc2()); + detailDo.setItemName(itembasicDO.getName()); + detailDo.setProjectCode(itembasicDO.getProject()); + detailDo.setUom(itembasicDO.getUom()); + jobUtils.ifInToLocationType(detailDo.getToLocationCode(), businesstypeDO); + jobUtils.ifOutInventoryStatuses(detailDo.getInventoryStatus(), businesstypeDO); + return detailDo; + } + @Override public void updateUnplannedreceiptRequestDetail(UnplannedreceiptRequestDetailUpdateReqVO updateReqVO) { // 校验存在 @@ -89,4 +134,10 @@ public class UnplannedreceiptRequestDetailServiceImpl implements Unplannedreceip return unplannedreceiptRequestDetailMapper.selectList(exportReqVO); } + + @Override + public List selectList(Long masterId) { + return unplannedreceiptRequestDetailMapper.selectList(masterId); + } + } diff --git a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/unplannedreceiptRequest/UnplannedreceiptRequestMainService.java b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/unplannedreceiptRequest/UnplannedreceiptRequestMainService.java index 0758c13e..efe03d36 100644 --- a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/unplannedreceiptRequest/UnplannedreceiptRequestMainService.java +++ b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/unplannedreceiptRequest/UnplannedreceiptRequestMainService.java @@ -3,6 +3,7 @@ package com.win.module.wms.service.unplannedreceiptRequest; import com.win.framework.common.pojo.CustomConditions; import com.win.framework.common.pojo.PageResult; import com.win.module.wms.controller.unplannedreceiptRequest.vo.*; +import com.win.module.wms.dal.dataobject.purchasereceiptRequest.PurchasereceiptRequestMainDO; import com.win.module.wms.dal.dataobject.unplannedreceiptRequest.UnplannedreceiptRequestMainDO; import javax.validation.Valid; @@ -89,4 +90,7 @@ public interface UnplannedreceiptRequestMainService { */ public List importUnplannedreceiptRequestMainList(List datas, Integer mode, boolean updatePart); + + List getUnplannedreceiptRequestMainList1(CustomConditions conditions); + } diff --git a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/unplannedreceiptRequest/UnplannedreceiptRequestMainServiceImpl.java b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/unplannedreceiptRequest/UnplannedreceiptRequestMainServiceImpl.java index 479d629c..2a881865 100644 --- a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/unplannedreceiptRequest/UnplannedreceiptRequestMainServiceImpl.java +++ b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/unplannedreceiptRequest/UnplannedreceiptRequestMainServiceImpl.java @@ -5,20 +5,37 @@ import com.win.framework.common.exception.ServiceException; 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.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.productputawayRequest.vo.ProductputawayImportErrorVO; +import com.win.module.wms.controller.productputawayRequest.vo.ProductputawayRequestMainBaseVO; +import com.win.module.wms.controller.productputawayRequest.vo.ProductputawayRequestMainCreateReqVO; +import com.win.module.wms.controller.purchasereceiptRequest.vo.PurchasereceiptRequestMainExportReqVO; +import com.win.module.wms.controller.transferissueRequest.vo.TransferissueRequestDetailUpdateReqVO; +import com.win.module.wms.controller.transferissueRequest.vo.TransferissueRequestMainUpdateReqVO; import com.win.module.wms.controller.unplannedreceiptRequest.vo.*; +import com.win.module.wms.convert.productputawayRequest.ProductputawayRequestMainConvert; +import com.win.module.wms.convert.transferissueRequest.TransferissueRequestDetailConvert; import com.win.module.wms.convert.unplannedreceiptRequest.UnplannedreceiptRequestDetailConvert; import com.win.module.wms.convert.unplannedreceiptRequest.UnplannedreceiptRequestMainConvert; 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.productputawayRequest.ProductputawayRequestDetailDO; +import com.win.module.wms.dal.dataobject.productputawayRequest.ProductputawayRequestMainDO; +import com.win.module.wms.dal.dataobject.purchasereceiptRequest.PurchasereceiptRequestMainDO; import com.win.module.wms.dal.dataobject.requestsetting.RequestsettingDO; +import com.win.module.wms.dal.dataobject.transferissueRequest.TransferissueRequestDetailDO; +import com.win.module.wms.dal.dataobject.transferissueRequest.TransferissueRequestMainDO; import com.win.module.wms.dal.dataobject.unplannedreceiptRequest.UnplannedreceiptRequestDetailDO; import com.win.module.wms.dal.dataobject.unplannedreceiptRequest.UnplannedreceiptRequestMainDO; import com.win.module.wms.dal.mysql.unplannedreceiptRequest.UnplannedreceiptRequestDetailMapper; import com.win.module.wms.dal.mysql.unplannedreceiptRequest.UnplannedreceiptRequestMainMapper; 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.businesstype.BusinesstypeService; import com.win.module.wms.service.itembasic.ItembasicService; import com.win.module.wms.service.location.LocationService; @@ -31,13 +48,13 @@ import org.springframework.transaction.interceptor.TransactionAspectSupport; import org.springframework.validation.annotation.Validated; import javax.annotation.Resource; +import java.time.LocalDateTime; import java.util.ArrayList; import java.util.Collection; import java.util.List; import static com.win.framework.common.exception.util.ServiceExceptionUtil.exception; -import static com.win.module.wms.enums.ErrorCodeConstants.PURCHASECLAIM_REQUEST_IMPORT_LIST_IS_EMPTY; -import static com.win.module.wms.enums.ErrorCodeConstants.UNPLANNEDRECEIPT_REQUEST_MAIN_NOT_EXISTS; +import static com.win.module.wms.enums.ErrorCodeConstants.*; /** * 计划外入库申请主 Service 实现类 @@ -68,24 +85,95 @@ public class UnplannedreceiptRequestMainServiceImpl implements UnplannedreceiptR private SerialNumberApi serialNumberApi; @Resource private RequestsettingService requestsettingService; - + @Resource + private TrendsApi trendsApi; @Override public Long createUnplannedreceiptRequestMain(UnplannedreceiptRequestMainCreateReqVO createReqVO) { - // 插入 - UnplannedreceiptRequestMainDO unplannedreceiptRequestMain = UnplannedreceiptRequestMainConvert.INSTANCE.convert(createReqVO); - unplannedreceiptRequestMainMapper.insert(unplannedreceiptRequestMain); - // 返回 - return unplannedreceiptRequestMain.getId(); + RequestsettingDO requestsettingDO = requestsettingService.selectRequestsettingExist("UnplannedReceiptRequest"); + UnplannedreceiptRequestMainDO unplannedreceiptRequestMainDO = validatorToCreate(createReqVO,requestsettingDO); + //调用自动执行方法 + if(RequestStatusEnum.HANDLING.getCode().equals(unplannedreceiptRequestMainDO.getStatus())) { + + } + trendsApi.createTrends(requestsettingDO.getId(), "UnplannedReceiptRequest", "增加了计划外入库申请", TrendsTypeEnum.CREATE); + return unplannedreceiptRequestMainDO.getId(); + } + + private UnplannedreceiptRequestMainDO validatorToCreate(UnplannedreceiptRequestMainCreateReqVO createReqVO, RequestsettingDO requestsettingDO) { + BusinesstypeDO businesstypeDO = jobUtils.selectDocumentSettingFromBusinessType("UnplannedReceiptRequest"); + UnplannedreceiptRequestMainDO unplannedreceiptRequestMainDO = validateMainMethod(createReqVO,businesstypeDO,requestsettingDO); + List subList = createReqVO.getSubList(); + List subDOList = UnplannedreceiptRequestDetailConvert.INSTANCE.convertList03(subList); + for (UnplannedreceiptRequestDetailDO unplannedreceiptRequestDetailDO : subDOList) { + validateDetailMethod(unplannedreceiptRequestDetailDO, businesstypeDO,unplannedreceiptRequestMainDO); + } + String number = serialNumberApi.generateCode(RuleCodeEnum.TRANSFER_REQUEST.getCode()); + unplannedreceiptRequestMainDO.setNumber(number); + unplannedreceiptRequestMainMapper.insert(unplannedreceiptRequestMainDO); + for(UnplannedreceiptRequestDetailDO unplannedreceiptRequestDetailDO: subDOList){ + unplannedreceiptRequestDetailDO.setMasterId(unplannedreceiptRequestMainDO.getId()); + unplannedreceiptRequestDetailDO.setNumber(unplannedreceiptRequestMainDO.getNumber()); + } + unplannedreceiptRequestDetailMapper.insertBatch(subDOList); + return unplannedreceiptRequestMainDO; + } + + private void validateDetailMethod(UnplannedreceiptRequestDetailDO detailDo, BusinesstypeDO businesstypeDO, UnplannedreceiptRequestMainDO unplannedreceiptRequestMainDO) { + detailDo.setCreateTime(LocalDateTime.now()); + ItembasicDO itembasicDO = itembasicService.selectItembasic(detailDo.getItemCode()); + detailDo.setItemDesc1(itembasicDO.getDesc1()); + detailDo.setItemDesc2(itembasicDO.getDesc2()); + detailDo.setItemName(itembasicDO.getName()); + detailDo.setProjectCode(itembasicDO.getProject()); + detailDo.setUom(itembasicDO.getUom()); + jobUtils.ifInToLocationType(detailDo.getToLocationCode(), businesstypeDO); + jobUtils.ifOutInventoryStatuses(detailDo.getInventoryStatus(), businesstypeDO); + } + + + + + private UnplannedreceiptRequestMainDO validateMainMethod(UnplannedreceiptRequestMainBaseVO baseVO, BusinesstypeDO businesstypeDO, RequestsettingDO requestsettingDO){ + UnplannedreceiptRequestMainDO unplannedreceiptRequestMainDO = UnplannedreceiptRequestMainConvert.INSTANCE.convert(baseVO); + unplannedreceiptRequestMainDO.setRequestTime(LocalDateTime.now()); + unplannedreceiptRequestMainDO.setCreateTime(LocalDateTime.now()); + validordurtime(unplannedreceiptRequestMainDO.getDueTime()); + unplannedreceiptRequestMainDO.setBusinessType(businesstypeDO.getCode()); + unplannedreceiptRequestMainDO.setAutoAgree(requestsettingDO.getAutoAgree()); + unplannedreceiptRequestMainDO.setAutoCommit(requestsettingDO.getAutoCommit()); + unplannedreceiptRequestMainDO.setAutoExecute(requestsettingDO.getAutoExecute()); + unplannedreceiptRequestMainDO.setDirectCreateRecord(requestsettingDO.getDirectCreateRecord()); + return unplannedreceiptRequestMainDO; } @Override public void updateUnplannedreceiptRequestMain(UnplannedreceiptRequestMainUpdateReqVO updateReqVO) { + RequestsettingDO requestsettingDO = requestsettingService.selectRequestsettingExist("UnplannedReceiptRequest"); // 校验存在 validateUnplannedreceiptRequestMainExists(updateReqVO.getId()); // 更新 - UnplannedreceiptRequestMainDO updateObj = UnplannedreceiptRequestMainConvert.INSTANCE.convert(updateReqVO); - unplannedreceiptRequestMainMapper.updateById(updateObj); + UnplannedreceiptRequestMainDO unplannedreceiptRequestMainDO = validatorToUpdate(updateReqVO, requestsettingDO); + if(RequestStatusEnum.HANDLING.getCode().equals(unplannedreceiptRequestMainDO.getStatus())) { + + } + trendsApi.createTrends(requestsettingDO.getId(), "TransferDeliverRequest", "增加了计划外入库申请", TrendsTypeEnum.CREATE); + } + + private UnplannedreceiptRequestMainDO validatorToUpdate(UnplannedreceiptRequestMainUpdateReqVO updateReqVO, RequestsettingDO requestsettingDO) { + BusinesstypeDO businesstypeDO = jobUtils.selectDocumentSettingFromBusinessType("TransferDeliverRequest"); + UnplannedreceiptRequestMainDO unplannedreceiptRequestMainDO = validateMainMethod(updateReqVO,businesstypeDO,requestsettingDO); + //子表校验 + List subList = updateReqVO.getSubList(); + if(!subList.isEmpty()) { + List subDOList = UnplannedreceiptRequestDetailConvert.INSTANCE.convertList05(subList); + for (UnplannedreceiptRequestDetailDO unplannedreceiptRequestDetailDO : subDOList) { + validateDetailMethod(unplannedreceiptRequestDetailDO, businesstypeDO, unplannedreceiptRequestMainDO); + } + unplannedreceiptRequestDetailMapper.updateBatch(subDOList); + } + unplannedreceiptRequestMainMapper.updateById(unplannedreceiptRequestMainDO); + return unplannedreceiptRequestMainDO; } @Override @@ -127,111 +215,119 @@ public class UnplannedreceiptRequestMainServiceImpl implements UnplannedreceiptR return unplannedreceiptRequestMainMapper.selectList(exportReqVO); } + private void validordurtime(LocalDateTime durtime){ + if(!durtime.isAfter(LocalDateTime.now())){ + throw exception(TIME_AFTER,LocalDateTime.now(),durtime); + } + } + + private LocationDO validatorLocation(String Location){ + return locationService.selectLocation(Location); + } + + private String validateUnplannedreceiptRequestMainImport(UnplannedreceiptRequestMainDO mainDo, BusinesstypeDO businesstypeDO) { + StringBuilder message = new StringBuilder(); + mainDo.setRequestTime(LocalDateTime.now()); + mainDo.setCreateTime(LocalDateTime.now()); + try { + validordurtime(mainDo.getDueTime()); + } catch (Exception ex) { + message.append(ex.getMessage()).append(","); + } + if (businesstypeDO != null) { + mainDo.setBusinessType(businesstypeDO.getCode()); + } + try{ + RequestsettingDO requestsettingDO = requestsettingService.selectRequestsettingExist("UnplannedReceiptRequest"); + if (requestsettingDO != null) { + mainDo.setAutoAgree(requestsettingDO.getAutoAgree()); + mainDo.setAutoCommit(requestsettingDO.getAutoCommit()); + mainDo.setAutoExecute(requestsettingDO.getAutoExecute()); + mainDo.setDirectCreateRecord(requestsettingDO.getDirectCreateRecord()); + } + } catch (Exception ex) { + message.append(ex.getMessage()).append(","); + } + return message.toString(); + } + + private String validateUnplannedreceiptRequestDetailImport(UnplannedreceiptRequestDetailDO detailDo, UnplannedreceiptRequestMainDO mainDo, BusinesstypeDO businesstypeDO) { + StringBuilder message = new StringBuilder(); + detailDo.setCreateTime(LocalDateTime.now()); + // 校验,判断是否有不符合的原因,并加入errorList,同主表,只把有错误的子表加入errorList + try{ + validatorLocation(detailDo.getToLocationCode()); + }catch (Exception ex) { + message.append(ex.getMessage()).append(","); + } + try{ + ItembasicDO itembasicDO = itembasicService.selectItembasic(detailDo.getItemCode()); + detailDo.setItemDesc1(itembasicDO.getDesc1()); + detailDo.setItemDesc2(itembasicDO.getDesc2()); + detailDo.setItemName(itembasicDO.getName()); + detailDo.setProjectCode(itembasicDO.getProject()); + detailDo.setUom(itembasicDO.getUom()); + }catch (Exception ex) { + message.append(ex.getMessage()).append(","); + } + try{ + jobUtils.ifInToLocationType(detailDo.getToLocationCode(), businesstypeDO); + }catch(Exception ex){ + message.append(ex.getMessage()).append(","); + } + try{ + jobUtils.ifOutInventoryStatuses(detailDo.getInventoryStatus(), businesstypeDO); + }catch(Exception ex){ + message.append(ex.getMessage()).append(","); + } + return message.toString(); + } + + public List getUnplannedreceiptRequestMainList1(CustomConditions conditions) { + return unplannedreceiptRequestMainMapper.selectSeniorList(conditions); + } + + + + public List importUnplannedreceiptRequestMainList(List datas, Integer mode, boolean updatePart) { if (CollUtil.isEmpty(datas)) { throw exception(PURCHASECLAIM_REQUEST_IMPORT_LIST_IS_EMPTY); } List errorList = new ArrayList<>(); datas.forEach(createReqVO -> { - // 校验,判断是否有不符合的原因,并加入errorList,如果主表则所有子表都加入errorList - String messageMain = ""; - //主表的验证 - //子表的验证 + BusinesstypeDO businesstypeDO = jobUtils.selectDocumentSettingFromBusinessType("UnplannedReceiptRequest"); + UnplannedreceiptRequestMainDO mainDo = UnplannedreceiptRequestMainConvert.INSTANCE.convert(createReqVO); + String messageMain = validateUnplannedreceiptRequestMainImport(mainDo, businesstypeDO); List subList = createReqVO.getSubList(); List subDOList = UnplannedreceiptRequestDetailConvert.INSTANCE.convertList03(subList); + boolean flag = true; for (UnplannedreceiptRequestDetailDO purchasePlanDetailDO : subDOList) { - String messageDetail = ""; - // 校验物品基础信息 - try { - ItembasicDO itembasicDO = itembasicService.selectItembasic(purchasePlanDetailDO.getItemCode()); - if (itembasicDO.getUom() != purchasePlanDetailDO.getUom()) { - messageDetail += "计量单位" + itembasicDO.getUom() + "错误,应该是" + purchasePlanDetailDO.getUom() + ","; - } else { - purchasePlanDetailDO.setItemDesc1(itembasicDO.getDesc1()); - purchasePlanDetailDO.setItemDesc2(itembasicDO.getDesc2()); - purchasePlanDetailDO.setItemName(itembasicDO.getName()); - purchasePlanDetailDO.setProjectCode(itembasicDO.getProject()); - } - } catch (ServiceException ex) { - messageDetail += ex.getMessage() + ","; - } - //校验库位基础信息 - try { - LocationDO locationDO = locationService.selectLocation(purchasePlanDetailDO.getToLocationCode()); - } catch (ServiceException ex) { - messageMain += ex.getMessage() + ","; - } - - // 校验业务类型 - try { - BusinesstypeDO businesstypeDO = businesstypeService.selectBusinesstypeExist("UnplannedReceipt"); - jobUtils.ifInToLocationType(purchasePlanDetailDO.getToLocationCode(), businesstypeDO); - jobUtils.ifOutInventoryStatuses(purchasePlanDetailDO.getInventoryStatus(), businesstypeDO); - } catch (ServiceException ex) { - messageDetail += ex.getMessage() + ","; - } - - UnplannedreceiptRequestDetailCreateReqVO purchasePlanDetailCreateReqVO = UnplannedreceiptRequestDetailConvert.INSTANCE.convert1(purchasePlanDetailDO); - UnplannedreceiptRequestMainImportErrorVO importVO = UnplannedreceiptRequestDetailConvert.INSTANCE.convert(createReqVO, purchasePlanDetailCreateReqVO); - //进行子表的错误统计 - //主表没有错误 写入库里 - if (!messageMain.equals("") || !messageDetail.equals("")) { - importVO.setImportStatus("失败"); + String messageDetail = validateUnplannedreceiptRequestDetailImport(purchasePlanDetailDO, mainDo, businesstypeDO); + if (!"".equals(messageMain) || !"".equals(messageDetail)) { + UnplannedreceiptRequestMainImportErrorVO importErrorVO = UnplannedreceiptRequestMainConvert.INSTANCE.convert(createReqVO, purchasePlanDetailDO); + importErrorVO.setImportStatus("失败"); messageMain = messageMain + messageDetail; - importVO.setImportRemark(messageMain.substring(0, messageMain.length() - 1)); - errorList.add(importVO); - } else { - purchasePlanDetailDO.setNumber(createReqVO.getNumber()); - purchasePlanDetailDO.setMasterId(createReqVO.getId()); + importErrorVO.setImportRemark(messageMain.substring(0, messageMain.length() - 1)); + errorList.add(importErrorVO); + flag = false; } } - - if (errorList.isEmpty()) { - // 判断如果不存在,在进行插入 - if (mode != 3) { - createReqVO.setStatus(DictFrameworkUtils.parseDictDataValue(DictTypeConstants.REQUEST_STATUS, "新增")); - BusinesstypeDO businesstypeDO = jobUtils.selectDocumentSettingFromBusinessType("UnplannedReceiptRequest"); - if (businesstypeDO != null) { - createReqVO.setBusinessType(businesstypeDO.getCode()); - } - String number = serialNumberApi.generateCode(RuleCodeEnum.UNPLANNED_RECEIPT_REQUEST.getCode()); - createReqVO.setNumber(number); - - RequestsettingDO requestsettingDO = requestsettingService.selectRequestsettingExist("UnplannedReceiptRequest"); - if (requestsettingDO != null) { - createReqVO.setAutoAgree(requestsettingDO.getAutoAgree()); - createReqVO.setAutoCommit(requestsettingDO.getAutoCommit()); - createReqVO.setAutoExecute(requestsettingDO.getAutoExecute()); - createReqVO.setDirectCreateRecord(requestsettingDO.getDirectCreateRecord()); - } - UnplannedreceiptRequestMainDO createObj = UnplannedreceiptRequestMainConvert.INSTANCE.convert(createReqVO); - unplannedreceiptRequestMainMapper.insert(createObj); - unplannedreceiptRequestDetailMapper.insertBatch(subDOList); - } else if (mode != 2) { - createReqVO.setStatus(DictFrameworkUtils.parseDictDataValue(DictTypeConstants.REQUEST_STATUS, "新增")); - BusinesstypeDO businesstypeDO = jobUtils.selectDocumentSettingFromBusinessType("UnplannedReceiptRequest"); - if (businesstypeDO != null) { - createReqVO.setBusinessType(businesstypeDO.getCode()); - } - String number = serialNumberApi.generateCode(RuleCodeEnum.UNPLANNED_RECEIPT_REQUEST.getCode()); - createReqVO.setNumber(number); - RequestsettingDO requestsettingDO = requestsettingService.selectRequestsettingExist("UnplannedReceiptRequest"); - if (requestsettingDO != null) { - createReqVO.setAutoAgree(requestsettingDO.getAutoAgree()); - createReqVO.setAutoCommit(requestsettingDO.getAutoCommit()); - createReqVO.setAutoExecute(requestsettingDO.getAutoExecute()); - createReqVO.setDirectCreateRecord(requestsettingDO.getDirectCreateRecord()); - } - UnplannedreceiptRequestMainDO createObj = UnplannedreceiptRequestMainConvert.INSTANCE.convert(createReqVO); - unplannedreceiptRequestMainMapper.updateById(createObj); - unplannedreceiptRequestDetailMapper.updateBatch(subDOList); + //写入数据 + if (flag) { + String number = serialNumberApi.generateCode(RuleCodeEnum.PRODUCT_PUTAWAY_REQUEST.getCode()); + mainDo.setNumber(number); + RequestStatusState requestStatusState = new RequestStatusState(); + requestStatusState.newObject(mainDo.getAutoCommit(), mainDo.getAutoAgree(), mainDo.getAutoExecute()); + mainDo.setStatus(requestStatusState.getState().getCode()); + unplannedreceiptRequestMainMapper.insert(mainDo); + for (UnplannedreceiptRequestDetailDO detailDO : subDOList) { + detailDO.setMasterId(mainDo.getId()); + detailDO.setNumber(number); } + unplannedreceiptRequestDetailMapper.insertBatch(subDOList); } }); - //错误不为空并非部分更新,手工回滚 - if (!errorList.isEmpty() && !updatePart) { - TransactionAspectSupport.currentTransactionStatus().setRollbackOnly(); - } return errorList; }