diff --git a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/productrepairRecord/ProductrepairRecordMainController.java b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/productrepairRecord/ProductrepairRecordMainController.java index aef2e613..77061b80 100644 --- a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/productrepairRecord/ProductrepairRecordMainController.java +++ b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/productrepairRecord/ProductrepairRecordMainController.java @@ -8,6 +8,8 @@ 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.productrepairRecord.vo.*; +import com.win.module.wms.controller.productrepairRequest.vo.ProductrepairRequestBomRespVO; +import com.win.module.wms.controller.productrepairRequest.vo.ProductrepairRequestDetailaPageReqVO; import com.win.module.wms.convert.productrepairRecord.ProductrepairRecordMainConvert; import com.win.module.wms.dal.dataobject.productrepairRecord.ProductrepairRecordMainDO; import com.win.module.wms.service.productrepairRecord.ProductrepairRecordMainService; @@ -119,4 +121,12 @@ public class ProductrepairRecordMainController { return success(result); } + @GetMapping("/bomPage") + @Operation(summary = "获取BOM接口") + @PreAuthorize("@ss.hasPermission('wms:productrepair-record-main:query')") + public CommonResult> getBomInfoPage(ConsumeRecordDetailbPageReqVO pageVO) { + PageResult pageResult = productrepairRecordMainService.getBomInfoPage(pageVO); + return success(pageResult); + } + } diff --git a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/productrepairRecord/vo/ConsumeRecordDetailbBaseVO.java b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/productrepairRecord/vo/ConsumeRecordDetailbBaseVO.java index d046f166..cba023ee 100644 --- a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/productrepairRecord/vo/ConsumeRecordDetailbBaseVO.java +++ b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/productrepairRecord/vo/ConsumeRecordDetailbBaseVO.java @@ -4,6 +4,7 @@ import io.swagger.v3.oas.annotations.media.Schema; import lombok.Data; import org.springframework.format.annotation.DateTimeFormat; +import java.math.BigDecimal; import java.time.LocalDateTime; import static com.win.framework.common.util.date.DateUtils.FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND; @@ -73,4 +74,6 @@ public class ConsumeRecordDetailbBaseVO { @Schema(description = "接口类型") private String interfaceType; + @Schema(description = "数量") + private BigDecimal qty; } diff --git a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/productrepairRecord/vo/ConsumeRecordDetailbExportReqVO.java b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/productrepairRecord/vo/ConsumeRecordDetailbExportReqVO.java index 8ffdb470..5f87af75 100644 --- a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/productrepairRecord/vo/ConsumeRecordDetailbExportReqVO.java +++ b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/productrepairRecord/vo/ConsumeRecordDetailbExportReqVO.java @@ -67,4 +67,7 @@ public class ConsumeRecordDetailbExportReqVO { @Schema(description = "接口类型") private String interfaceType; + @Schema(description = "主键ID") + private Long masterId; + } diff --git a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/productrepairRecord/vo/ConsumeRecordDetailbPageReqVO.java b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/productrepairRecord/vo/ConsumeRecordDetailbPageReqVO.java index d9b4216a..a5ecd314 100644 --- a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/productrepairRecord/vo/ConsumeRecordDetailbPageReqVO.java +++ b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/productrepairRecord/vo/ConsumeRecordDetailbPageReqVO.java @@ -72,4 +72,7 @@ public class ConsumeRecordDetailbPageReqVO extends PageParam { @Schema(description = "接口类型") private String interfaceType; + @Schema(description = "主键ID") + private Long masterId; + } diff --git a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/productrepairRequest/ProductrepairRequestMainController.java b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/productrepairRequest/ProductrepairRequestMainController.java index 6ad0bdbf..d2f1a7ca 100644 --- a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/productrepairRequest/ProductrepairRequestMainController.java +++ b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/productrepairRequest/ProductrepairRequestMainController.java @@ -3,27 +3,36 @@ package com.win.module.wms.controller.productrepairRequest; 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.productrepairRequest.vo.*; +import com.win.module.wms.controller.transferissueRequest.vo.TransferissueRequestMainCreateReqVO; +import com.win.module.wms.controller.transferissueRequest.vo.TransferissueRequestMainImportErrorVO; +import com.win.module.wms.controller.transferissueRequest.vo.TransferissueRequestMainImportVO; import com.win.module.wms.convert.productrepairRequest.ProductrepairRequestMainConvert; import com.win.module.wms.dal.dataobject.productrepairRequest.ProductrepairRequestMainDO; +import com.win.module.wms.enums.DictTypeConstants; import com.win.module.wms.service.productrepairRequest.ProductrepairRequestMainService; import io.swagger.v3.oas.annotations.Operation; import io.swagger.v3.oas.annotations.Parameter; +import io.swagger.v3.oas.annotations.Parameters; import io.swagger.v3.oas.annotations.tags.Tag; import org.springframework.security.access.prepost.PreAuthorize; import org.springframework.validation.annotation.Validated; import org.springframework.web.bind.annotation.*; +import org.springframework.web.multipart.MultipartFile; import javax.annotation.Resource; import javax.servlet.http.HttpServletResponse; import javax.validation.Valid; import java.io.IOException; -import java.util.Collection; -import java.util.List; +import java.time.LocalDateTime; +import java.time.ZoneOffset; +import java.util.*; import static com.win.framework.common.pojo.CommonResult.success; import static com.win.framework.operatelog.core.enums.OperateTypeEnum.EXPORT; @@ -90,6 +99,20 @@ public class ProductrepairRequestMainController { return success(ProductrepairRequestMainConvert.INSTANCE.convertPage(pageResult)); } + @PostMapping("/senior") + @Operation(summary = "高级搜索获得制品返修申请主分页") + @PreAuthorize("@ss.hasPermission('wms:productrepair-request-main:query')") + public CommonResult> getProductrepairRequestMainSenior(@Valid @RequestBody CustomConditions conditions) { + PageResult pageResult = productrepairRequestMainService.getProductrepairRequestMainSenior(conditions); + PageResult result = ProductrepairRequestMainConvert.INSTANCE.convertPage(pageResult); + for(ProductrepairRequestMainRespVO vo : result.getList()) { + AdminUserRespDTO user = userApi.getUser(Long.valueOf(vo.getCreator())); + //后端创建个字段作为前端展示的虚拟字段 + vo.setCreator(user.getNickname()); + } + return success(result); + } + @GetMapping("/export-excel") @Operation(summary = "导出制品返修申请主 Excel") @PreAuthorize("@ss.hasPermission('wms:productrepair-request-main:export')") @@ -107,18 +130,41 @@ public class ProductrepairRequestMainController { ExcelUtils.write(response, "制品返修申请主.xls", "数据", ProductrepairRequestMainExcelVO.class, datas); } - @PostMapping("/senior") - @Operation(summary = "高级搜索获得制品返修申请主分页") - @PreAuthorize("@ss.hasPermission('wms:productrepair-request-main:query')") - public CommonResult> getProductrepairRequestMainSenior(@Valid @RequestBody CustomConditions conditions) { - PageResult pageResult = productrepairRequestMainService.getProductrepairRequestMainSenior(conditions); - PageResult result = ProductrepairRequestMainConvert.INSTANCE.convertPage(pageResult); - for(ProductrepairRequestMainRespVO vo : result.getList()) { - AdminUserRespDTO user = userApi.getUser(Long.valueOf(vo.getCreator())); - //后端创建个字段作为前端展示的虚拟字段 - vo.setCreator(user.getNickname()); + @GetMapping("/get-import-template") + @Operation(summary = "获得导入制品返修申请信息模板") + public void importTemplate(HttpServletResponse response) throws IOException { + // 手动创建导出 demo + List list = new ArrayList<>(); + Map mapDropDown = new HashMap<>(); +// String[] transferMode = DictFrameworkUtils.dictTypeDictDataValue(DictTypeConstants.TRANSFER_MODE); +// mapDropDown.put(2, transferMode); +// String[] inventoryStatus = DictFrameworkUtils.dictTypeDictDataValue(DictTypeConstants.INVENTORY_STATUS); +// mapDropDown.put(10, inventoryStatus); + // 输出 + ExcelUtils.write(response, "制品返修申请信息导入模板.xlsx", "制品返修申请信息列表", ProductrepairRequestMainImportVO.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:productrepair-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, ProductrepairRequestMainImportVO.class); + ConvertUtil convertUtil = new ConvertUtil<>(ProductrepairRequestMainCreateReqVO.class); + List createReqVOList = convertUtil.invoke(list).getDataList(); + List errorList = productrepairRequestMainService.importProductrepairRequestMainList(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(result); + return success(returnMap); } @PutMapping("/close") diff --git a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/productrepairRequest/vo/ProductrepairRequestBomRespVO.java b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/productrepairRequest/vo/ProductrepairRequestBomRespVO.java index c4a0badc..15c6cf77 100644 --- a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/productrepairRequest/vo/ProductrepairRequestBomRespVO.java +++ b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/productrepairRequest/vo/ProductrepairRequestBomRespVO.java @@ -6,10 +6,10 @@ import lombok.ToString; import java.math.BigDecimal; -@Schema(description = "管理后台 - 制品返修二级子表主 Response VO") +@Schema(description = "管理后台 - 制品返修二级子表 Response VO") @Data @ToString(callSuper = true) -public class ProductrepairRequestBomRespVO { +public class ProductrepairRequestBomRespVO extends ProductrepairRequestDetailbBaseVO{ private String itemCode; private String uom; diff --git a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/productrepairRequest/vo/ProductrepairRequestDetailaExportReqVO.java b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/productrepairRequest/vo/ProductrepairRequestDetailaExportReqVO.java index f29f2b44..56827a13 100644 --- a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/productrepairRequest/vo/ProductrepairRequestDetailaExportReqVO.java +++ b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/productrepairRequest/vo/ProductrepairRequestDetailaExportReqVO.java @@ -83,4 +83,7 @@ public class ProductrepairRequestDetailaExportReqVO { @Schema(description = "最后更新者用户名") private String updater; + @Schema(description = "主键ID") + private Long masterId; + } diff --git a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/productrepairRequest/vo/ProductrepairRequestDetailaPageReqVO.java b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/productrepairRequest/vo/ProductrepairRequestDetailaPageReqVO.java index 57ffc838..b249068a 100644 --- a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/productrepairRequest/vo/ProductrepairRequestDetailaPageReqVO.java +++ b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/productrepairRequest/vo/ProductrepairRequestDetailaPageReqVO.java @@ -85,4 +85,7 @@ public class ProductrepairRequestDetailaPageReqVO extends PageParam { @Schema(description = "最后更新者用户名") private String updater; + @Schema(description = "主键ID") + private Long masterId; + } diff --git a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/productrepairRequest/vo/ProductrepairRequestDetailbBaseVO.java b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/productrepairRequest/vo/ProductrepairRequestDetailbBaseVO.java index 8e037874..cd2719b2 100644 --- a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/productrepairRequest/vo/ProductrepairRequestDetailbBaseVO.java +++ b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/productrepairRequest/vo/ProductrepairRequestDetailbBaseVO.java @@ -5,6 +5,7 @@ import lombok.Data; import org.springframework.format.annotation.DateTimeFormat; import javax.validation.constraints.NotNull; +import java.math.BigDecimal; import java.time.LocalDateTime; import static com.win.framework.common.util.date.DateUtils.FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND; @@ -75,4 +76,6 @@ public class ProductrepairRequestDetailbBaseVO { @Schema(description = "最后更新者用户名") private String updater; + @Schema(description = "数量") + private BigDecimal qty; } diff --git a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/productrepairRequest/vo/ProductrepairRequestDetailbExportReqVO.java b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/productrepairRequest/vo/ProductrepairRequestDetailbExportReqVO.java index ebe5ec91..e9267370 100644 --- a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/productrepairRequest/vo/ProductrepairRequestDetailbExportReqVO.java +++ b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/productrepairRequest/vo/ProductrepairRequestDetailbExportReqVO.java @@ -62,4 +62,7 @@ public class ProductrepairRequestDetailbExportReqVO { @Schema(description = "最后更新者用户名") private String updater; + @Schema(description = "主键ID") + private Long masterId; + } diff --git a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/productrepairRequest/vo/ProductrepairRequestDetailbPageReqVO.java b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/productrepairRequest/vo/ProductrepairRequestDetailbPageReqVO.java index aec09297..64eea1c1 100644 --- a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/productrepairRequest/vo/ProductrepairRequestDetailbPageReqVO.java +++ b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/productrepairRequest/vo/ProductrepairRequestDetailbPageReqVO.java @@ -67,4 +67,7 @@ public class ProductrepairRequestDetailbPageReqVO extends PageParam { @Schema(description = "最后更新者用户名") private String updater; + @Schema(description = "主键ID") + private Long masterId; + } diff --git a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/productrepairRequest/vo/ProductrepairRequestMainBaseVO.java b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/productrepairRequest/vo/ProductrepairRequestMainBaseVO.java index 40a6678a..3689a3c8 100644 --- a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/productrepairRequest/vo/ProductrepairRequestMainBaseVO.java +++ b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/productrepairRequest/vo/ProductrepairRequestMainBaseVO.java @@ -32,22 +32,18 @@ public class ProductrepairRequestMainBaseVO { private String shift; @Schema(description = "从仓库代码", requiredMode = Schema.RequiredMode.REQUIRED) - @NotNull(message = "从仓库代码不能为空") private String fromWarehouseCode; @Schema(description = "单据号", requiredMode = Schema.RequiredMode.REQUIRED) - @NotNull(message = "单据号不能为空") 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; @@ -63,7 +59,6 @@ public class ProductrepairRequestMainBaseVO { private LocalDateTime dueTime; @Schema(description = "部门", requiredMode = Schema.RequiredMode.REQUIRED) - @NotNull(message = "部门不能为空") private String departmentCode; @Schema(description = "状态") @@ -77,27 +72,21 @@ public class ProductrepairRequestMainBaseVO { private String updater; @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) - @NotNull(message = "自动提交不能为空") private String autoCommit; @Schema(description = "自动通过", requiredMode = Schema.RequiredMode.REQUIRED) - @NotNull(message = "自动通过不能为空") private String autoAgree; @Schema(description = "自动执行", requiredMode = Schema.RequiredMode.REQUIRED) - @NotNull(message = "自动执行不能为空") private String autoExecute; @Schema(description = "直接生成记录", requiredMode = Schema.RequiredMode.REQUIRED) - @NotNull(message = "直接生成记录不能为空") private String directCreateRecord; } diff --git a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/productrepairRequest/vo/ProductrepairRequestMainImportErrorVO.java b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/productrepairRequest/vo/ProductrepairRequestMainImportErrorVO.java new file mode 100644 index 00000000..da563368 --- /dev/null +++ b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/productrepairRequest/vo/ProductrepairRequestMainImportErrorVO.java @@ -0,0 +1,18 @@ +package com.win.module.wms.controller.productrepairRequest.vo; + +import com.alibaba.excel.annotation.ExcelProperty; +import lombok.Data; +import lombok.EqualsAndHashCode; +import lombok.ToString; + +@Data +@EqualsAndHashCode(callSuper = true) +@ToString(callSuper = true) +public class ProductrepairRequestMainImportErrorVO extends ProductrepairRequestMainImportVO { + + @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/productrepairRequest/vo/ProductrepairRequestMainImportVO.java b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/productrepairRequest/vo/ProductrepairRequestMainImportVO.java new file mode 100644 index 00000000..6ac38fee --- /dev/null +++ b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/productrepairRequest/vo/ProductrepairRequestMainImportVO.java @@ -0,0 +1,85 @@ +package com.win.module.wms.controller.productrepairRequest.vo; + + +import com.alibaba.excel.annotation.ExcelProperty; +import com.win.framework.excel.core.annotations.DictFormat; +import com.win.framework.excel.core.convert.DictConvert; +import lombok.AllArgsConstructor; +import lombok.Data; +import lombok.NoArgsConstructor; +import lombok.experimental.Accessors; + +import java.time.LocalDateTime; + +@Data +@AllArgsConstructor +@NoArgsConstructor +@Accessors(chain = false) // 设置 chain = false,避免用户导入有问题 +public class ProductrepairRequestMainImportVO { + + @ExcelProperty("车间代码") + private String workshopCode; + + @ExcelProperty("班组") + private String team; + + @ExcelProperty("班次") + private String shift; + + @ExcelProperty("从仓库代码") + private String fromWarehouseCode; + + @ExcelProperty("单据号") + private String number; + + @ExcelProperty("业务类型") + private String businessType; + + @ExcelProperty("备注") + private String remark; + + @ExcelProperty("创建时间") + private LocalDateTime createTime; + + @ExcelProperty("创建者用户名") + private String creator; + + @ExcelProperty("申请时间") + private LocalDateTime requestTime; + + @ExcelProperty("截止时间") + private LocalDateTime dueTime; + + @ExcelProperty("部门") + private String departmentCode; + + @ExcelProperty(value = "状态", converter = DictConvert.class) + @DictFormat("request_status") // TODO 代码优化:建议设置到对应的 XXXDictTypeConstants 枚举类中 + private String status; + + @ExcelProperty("最后更新时间") + private LocalDateTime updateTime; + + @ExcelProperty("最后更新者用户名") + private String updater; + + @ExcelProperty(value = "从库位类型范围", converter = DictConvert.class) + @DictFormat("location_type") // TODO 代码优化:建议设置到对应的 XXXDictTypeConstants 枚举类中 + private String fromLocationTypes; + + @ExcelProperty("从库区代码范围") + private String fromAreaCodes; + + @ExcelProperty("自动提交") + private String autoCommit; + + @ExcelProperty("自动通过") + private String autoAgree; + + @ExcelProperty("自动执行") + private String autoExecute; + + @ExcelProperty("直接生成记录") + private String directCreateRecord; + +} diff --git a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/transferissueRecord/TransferissueRecordMainController.java b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/transferissueRecord/TransferissueRecordMainController.java index 33eab582..8dad4184 100644 --- a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/transferissueRecord/TransferissueRecordMainController.java +++ b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/transferissueRecord/TransferissueRecordMainController.java @@ -118,7 +118,6 @@ public class TransferissueRecordMainController { ExcelUtils.write(response, "调拨出库记录主.xls", "数据", TransferissueRecordMainExcelVO.class, datas); } - @PostMapping("/pdaCreate") @Operation(summary = "PDA创建调拨出库记录") @PreAuthorize("@ss.hasPermission('wms:transferissue-record-main:create')") @@ -126,4 +125,13 @@ public class TransferissueRecordMainController { Long id = transferissueRecordMainService.pdaCreateTransferissueRecord(createReqVO); return success(id); } + + @GetMapping("/getDetailInfoById") + @Operation(summary = "获取记录根据ID") + @PreAuthorize("@ss.hasPermission('wms:transferissue-record-main:query')") + public CommonResult getDetailInfoById(@RequestParam("id") Long id) { + TransferissueRecordMainRespVO transferissueRecordMainRespVO = transferissueRecordMainService.getDetailInfoById(id); + return success(transferissueRecordMainRespVO); + } + } diff --git a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/transferissueRecord/vo/TransferissueRecordDetailExportReqVO.java b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/transferissueRecord/vo/TransferissueRecordDetailExportReqVO.java index 0e8b97a2..e4a661ff 100644 --- a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/transferissueRecord/vo/TransferissueRecordDetailExportReqVO.java +++ b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/transferissueRecord/vo/TransferissueRecordDetailExportReqVO.java @@ -104,6 +104,6 @@ public class TransferissueRecordDetailExportReqVO { private String toBatch; @Schema(description = "主键Id") - private String masterId; + private Long masterId; } diff --git a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/transferissueRecord/vo/TransferissueRecordMainRespVO.java b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/transferissueRecord/vo/TransferissueRecordMainRespVO.java index 19c88052..8066a6de 100644 --- a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/transferissueRecord/vo/TransferissueRecordMainRespVO.java +++ b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/transferissueRecord/vo/TransferissueRecordMainRespVO.java @@ -1,12 +1,18 @@ package com.win.module.wms.controller.transferissueRecord.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 = "管理后台 - 调拨出库记录主 Response VO") @Data @EqualsAndHashCode(callSuper = true) @ToString(callSuper = true) public class TransferissueRecordMainRespVO extends TransferissueRecordMainBaseVO { + @SubObject + @Schema(description = "子表数据") + private List subList; } diff --git a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/convert/productrepairRequest/ProductrepairRequestDetailbConvert.java b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/convert/productrepairRequest/ProductrepairRequestDetailbConvert.java index d2671c36..c6948fa0 100644 --- a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/convert/productrepairRequest/ProductrepairRequestDetailbConvert.java +++ b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/convert/productrepairRequest/ProductrepairRequestDetailbConvert.java @@ -1,10 +1,7 @@ package com.win.module.wms.convert.productrepairRequest; import com.win.framework.common.pojo.PageResult; -import com.win.module.wms.controller.productrepairRequest.vo.ProductrepairRequestDetailbCreateReqVO; -import com.win.module.wms.controller.productrepairRequest.vo.ProductrepairRequestDetailbExcelVO; -import com.win.module.wms.controller.productrepairRequest.vo.ProductrepairRequestDetailbRespVO; -import com.win.module.wms.controller.productrepairRequest.vo.ProductrepairRequestDetailbUpdateReqVO; +import com.win.module.wms.controller.productrepairRequest.vo.*; import com.win.module.wms.dal.dataobject.productrepairRequest.ProductrepairRequestDetailbDO; import org.mapstruct.Mapper; import org.mapstruct.factory.Mappers; @@ -33,4 +30,5 @@ public interface ProductrepairRequestDetailbConvert { List convertList02(List list); + ProductrepairRequestBomRespVO convertRespVO(ProductrepairRequestDetailbDO productrepairRequestDetailbDO); } diff --git a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/dal/dataobject/productrepairRecord/ConsumeRecordDetailbDO.java b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/dal/dataobject/productrepairRecord/ConsumeRecordDetailbDO.java index 96fe3537..18b14438 100644 --- a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/dal/dataobject/productrepairRecord/ConsumeRecordDetailbDO.java +++ b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/dal/dataobject/productrepairRecord/ConsumeRecordDetailbDO.java @@ -6,6 +6,8 @@ import com.sun.xml.bind.v2.TODO; import com.win.framework.mybatis.core.dataobject.BaseDO; import lombok.*; +import java.math.BigDecimal; + /** * 制品返修记录子 DO * @@ -103,5 +105,9 @@ public class ConsumeRecordDetailbDO extends BaseDO { * 枚举 {@link TODO interface_type 对应的类} */ private String interfaceType; + /** + * 数量 + */ + private BigDecimal qty; } diff --git a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/dal/dataobject/productrepairRequest/ProductrepairRequestDetailbDO.java b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/dal/dataobject/productrepairRequest/ProductrepairRequestDetailbDO.java index d236e82e..14bdbc35 100644 --- a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/dal/dataobject/productrepairRequest/ProductrepairRequestDetailbDO.java +++ b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/dal/dataobject/productrepairRequest/ProductrepairRequestDetailbDO.java @@ -7,6 +7,8 @@ import com.sun.xml.bind.v2.TODO; import com.win.framework.mybatis.core.dataobject.BaseDO; import lombok.*; +import java.math.BigDecimal; + /** * 制品返修申请子 DO * @@ -88,5 +90,9 @@ public class ProductrepairRequestDetailbDO extends BaseDO { * 并发乐观锁 */ private String concurrencyStamp; + /** + * 数量 + */ + private BigDecimal qty; } diff --git a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/dal/mysql/productrepairRecord/ConsumeRecordDetailbMapper.java b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/dal/mysql/productrepairRecord/ConsumeRecordDetailbMapper.java index e51c9f31..0a257ce1 100644 --- a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/dal/mysql/productrepairRecord/ConsumeRecordDetailbMapper.java +++ b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/dal/mysql/productrepairRecord/ConsumeRecordDetailbMapper.java @@ -40,6 +40,7 @@ public interface ConsumeRecordDetailbMapper extends BaseMapperX selectSenior(CustomConditions conditions) { @@ -74,6 +75,7 @@ public interface ProductrepairRequestDetailaMapper extends BaseMapperX selectSenior(CustomConditions conditions) { @@ -61,6 +62,7 @@ public interface ProductrepairRequestDetailbMapper extends BaseMapperX getProductrepairRecordMainSenior(CustomConditions conditions); + + /** + * BOM记录 + * @param pageVO 分页请求数据 + * @return 分页列表 + */ + PageResult getBomInfoPage(ConsumeRecordDetailbPageReqVO pageVO); } diff --git a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/productrepairRecord/ProductrepairRecordMainServiceImpl.java b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/productrepairRecord/ProductrepairRecordMainServiceImpl.java index b658a61b..339398b2 100644 --- a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/productrepairRecord/ProductrepairRecordMainServiceImpl.java +++ b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/productrepairRecord/ProductrepairRecordMainServiceImpl.java @@ -2,12 +2,12 @@ package com.win.module.wms.service.productrepairRecord; import com.win.framework.common.pojo.CustomConditions; import com.win.framework.common.pojo.PageResult; -import com.win.module.wms.controller.productrepairRecord.vo.ProductrepairRecordMainCreateReqVO; -import com.win.module.wms.controller.productrepairRecord.vo.ProductrepairRecordMainExportReqVO; -import com.win.module.wms.controller.productrepairRecord.vo.ProductrepairRecordMainPageReqVO; -import com.win.module.wms.controller.productrepairRecord.vo.ProductrepairRecordMainUpdateReqVO; +import com.win.module.wms.controller.productrepairRecord.vo.*; +import com.win.module.wms.convert.productrepairRecord.ConsumeRecordDetailbConvert; import com.win.module.wms.convert.productrepairRecord.ProductrepairRecordMainConvert; +import com.win.module.wms.dal.dataobject.productrepairRecord.ConsumeRecordDetailbDO; import com.win.module.wms.dal.dataobject.productrepairRecord.ProductrepairRecordMainDO; +import com.win.module.wms.dal.mysql.productrepairRecord.ConsumeRecordDetailbMapper; import com.win.module.wms.dal.mysql.productrepairRecord.ProductrepairRecordMainMapper; import org.springframework.stereotype.Service; import org.springframework.validation.annotation.Validated; @@ -30,6 +30,8 @@ public class ProductrepairRecordMainServiceImpl implements ProductrepairRecordMa @Resource private ProductrepairRecordMainMapper productrepairRecordMainMapper; + @Resource + private ConsumeRecordDetailbMapper consumeRecordDetailbMapper; @Override public Long createProductrepairRecordMain(ProductrepairRecordMainCreateReqVO createReqVO) { @@ -87,4 +89,11 @@ public class ProductrepairRecordMainServiceImpl implements ProductrepairRecordMa public PageResult getProductrepairRecordMainSenior(CustomConditions conditions) { return productrepairRecordMainMapper.selectSenior(conditions); } + + @Override + public PageResult getBomInfoPage(ConsumeRecordDetailbPageReqVO pageVO) { + PageResult pageResult = consumeRecordDetailbMapper.selectPage(pageVO); + PageResult page = ConsumeRecordDetailbConvert.INSTANCE.convertPage(pageResult); + return page; + } } diff --git a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/productrepairRequest/ProductrepairRequestMainService.java b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/productrepairRequest/ProductrepairRequestMainService.java index 5d8f81e4..f05e92ba 100644 --- a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/productrepairRequest/ProductrepairRequestMainService.java +++ b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/productrepairRequest/ProductrepairRequestMainService.java @@ -3,6 +3,7 @@ package com.win.module.wms.service.productrepairRequest; import com.win.framework.common.pojo.CustomConditions; import com.win.framework.common.pojo.PageResult; import com.win.module.wms.controller.productrepairRequest.vo.*; +import com.win.module.wms.controller.transferissueRequest.vo.TransferissueRequestMainImportErrorVO; import com.win.module.wms.dal.dataobject.productrepairRequest.ProductrepairRequestMainDO; import javax.validation.Valid; @@ -126,4 +127,13 @@ public interface ProductrepairRequestMainService { * @return */ PageResult getBomInfoPage(ProductrepairRequestDetailaPageReqVO pageVO); + + /** + * excel导入数据 + * @param createReqVOList + * @param mode + * @param updatePart + * @return + */ + List importProductrepairRequestMainList(List createReqVOList, Integer mode, Boolean updatePart); } diff --git a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/productrepairRequest/ProductrepairRequestMainServiceImpl.java b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/productrepairRequest/ProductrepairRequestMainServiceImpl.java index f4af9678..dcf845dd 100644 --- a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/productrepairRequest/ProductrepairRequestMainServiceImpl.java +++ b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/productrepairRequest/ProductrepairRequestMainServiceImpl.java @@ -10,11 +10,11 @@ import com.win.module.infra.enums.TrendsTypeEnum; import com.win.module.system.api.serialnumber.SerialNumberApi; import com.win.module.system.api.user.AdminUserApi; import com.win.module.system.enums.serialNumber.RuleCodeEnum; -import com.win.module.wms.controller.bom.vo.BomExportReqVO; import com.win.module.wms.controller.productrepairRecord.vo.ProductrepairRecordDetailCreateReqVO; import com.win.module.wms.controller.productrepairRecord.vo.ProductrepairRecordMainCreateReqVO; import com.win.module.wms.controller.productrepairRequest.vo.*; import com.win.module.wms.controller.transaction.vo.TransactionCreateReqVO; +import com.win.module.wms.controller.transferissueRequest.vo.TransferissueRequestMainImportErrorVO; import com.win.module.wms.convert.productrepairRecord.ConsumeRecordDetailbConvert; import com.win.module.wms.convert.productrepairRecord.ProductrepairRecordDetailConvert; import com.win.module.wms.convert.productrepairRecord.ProductrepairRecordMainConvert; @@ -22,11 +22,9 @@ import com.win.module.wms.convert.productrepairRequest.ProductrepairRequestDetai import com.win.module.wms.convert.productrepairRequest.ProductrepairRequestDetailbConvert; import com.win.module.wms.convert.productrepairRequest.ProductrepairRequestMainConvert; import com.win.module.wms.dal.dataobject.balance.BalanceDO; -import com.win.module.wms.dal.dataobject.bom.BomDO; 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.productionline.ProductionlineDO; -import com.win.module.wms.dal.dataobject.productreceiptRequest.ProductreceiptRequestMainDO; import com.win.module.wms.dal.dataobject.productrepairRecord.ConsumeRecordDetailbDO; import com.win.module.wms.dal.dataobject.productrepairRecord.ProductrepairRecordDetailDO; import com.win.module.wms.dal.dataobject.productrepairRecord.ProductrepairRecordMainDO; @@ -66,6 +64,7 @@ import javax.annotation.Resource; import java.math.BigDecimal; import java.time.LocalDateTime; import java.util.*; +import java.util.stream.Collectors; import static com.win.framework.common.exception.util.ServiceExceptionUtil.exception; import static com.win.framework.security.core.util.SecurityFrameworkUtils.getLoginUserId; @@ -200,32 +199,56 @@ public class ProductrepairRequestMainServiceImpl implements ProductrepairRequest private ProductrepairRequestMainDO validatorToCreate(ProductrepairRequestMainCreateReqVO createReqVO, RequestsettingDO requestsettingDO) { // DBT——>DBT3("ProductRepairRequest") BusinesstypeDO businesstypeDO = jobUtils.selectDocumentSettingFromBusinessType("ProductRepairRequest"); - ProductrepairRequestMainDO productrepairRequestMainDO = validateMainMethod(createReqVO,businesstypeDO,requestsettingDO); + ProductrepairRequestMainDO mainBo = validateMainMethod(createReqVO,businesstypeDO,requestsettingDO); // 子表处理逻辑 ProductrepairRequestDetailaDO List subList = createReqVO.getSubList(); for(ProductrepairRequestDetailaCreateReqVO productrepairRequestDetailaCreateReqVO:subList){ - validateDetailMethod(productrepairRequestMainDO, productrepairRequestDetailaCreateReqVO,businesstypeDO); + validateDetailMethod(mainBo, productrepairRequestDetailaCreateReqVO,businesstypeDO); } - String number = serialNumberApi.generateCode(RuleCodeEnum.PURCHASE_CLAIM_RECORD.getCode()); - productrepairRequestMainDO.setNumber(number); - productrepairRequestMainDO.setDepartmentCode(userApi.getUser(getLoginUserId()).getDeptId().toString()); - productrepairRequestMainMapper.insert(productrepairRequestMainDO); + String number = serialNumberApi.generateCode(RuleCodeEnum.PRODUCT_REPAIR_REQUEST.getCode()); + mainBo.setNumber(number); + mainBo.setDepartmentCode(userApi.getUser(getLoginUserId()).getDeptId().toString()); + productrepairRequestMainMapper.insert(mainBo); for(ProductrepairRequestDetailaCreateReqVO productrepairRequestDetailaCreateReqVO:subList){ - ProductrepairRequestDetailaDO productrepairRequestDetailaDO = ProductrepairRequestDetailaConvert.INSTANCE.convert(productrepairRequestDetailaCreateReqVO); - productrepairRequestDetailaDO.setMasterId(productrepairRequestMainDO.getId()); - productrepairRequestDetailaDO.setNumber(productrepairRequestMainDO.getNumber()); - productrepairRequestDetailaDO.setInventoryStatus(businesstypeDO.getOutInventoryStatuses()); - productrepairRequestDetailaMapper.insert(productrepairRequestDetailaDO); + ProductrepairRequestDetailaDO detailaDO = ProductrepairRequestDetailaConvert.INSTANCE.convert(productrepairRequestDetailaCreateReqVO); + detailaDO.setMasterId(mainBo.getId()); + detailaDO.setNumber(mainBo.getNumber()); + detailaDO.setInventoryStatus(businesstypeDO.getOutInventoryStatuses()); + productrepairRequestDetailaMapper.insert(detailaDO); List consumereDetailbList = productrepairRequestDetailaCreateReqVO.getChildList(); List childList = new ArrayList<>(); for(ProductrepairRequestDetailbCreateReqVO productrepairRequestDetailbCreateReqVO:consumereDetailbList){ - ProductrepairRequestDetailbDO productrepairRequestDetailbDO = ProductrepairRequestDetailbConvert.INSTANCE.convert(productrepairRequestDetailbCreateReqVO); - productrepairRequestDetailbDO.setMasterId(productrepairRequestDetailaDO.getId()); - childList.add(productrepairRequestDetailbDO); + ProductrepairRequestDetailbDO detailbDO = ProductrepairRequestDetailbConvert.INSTANCE.convert(productrepairRequestDetailbCreateReqVO); + detailbDO.setMasterId(detailaDO.getId()); + detailbDO.setNumber(detailaDO.getNumber()); + validateDetailbBom(detailbDO,detailaDO,mainBo); // 创建二级子表数据 + detailbDO.setId(null); + childList.add(detailbDO); } productrepairRequestDetailbMapper.insertBatch(childList); } - return productrepairRequestMainDO; + return mainBo; + } + + private void validateDetailbBom(ProductrepairRequestDetailbDO detailbDO, ProductrepairRequestDetailaDO detailaDO, ProductrepairRequestMainDO mainBo) { + // 校验--物品基本信息 + ItembasicDO itembasicDO = itembasicService.selectItembasic(detailbDO.getItemCode()); + // 赋值物品Item相关信息 + detailbDO.setItemDesc1(itembasicDO.getDesc1()); + detailbDO.setItemDesc2(itembasicDO.getDesc2()); + detailbDO.setItemName(itembasicDO.getName()); + detailbDO.setProjectCode(itembasicDO.getProject()); + // 校验库存余额 + List inventoryStatus = new ArrayList<>(); + inventoryStatus.add("OK"); // 查询合格的边料库存余额 + List list = jobUtils.selectlocationReturnManagementAccuracy(detailbDO.getItemCode(),null,null,detailaDO.getFromLocationCode(),inventoryStatus); + BalanceDO balanceDO = list.get(0); // 去第一条库存余额 + detailbDO.setInventoryStatus(balanceDO.getInventoryStatus()); + detailbDO.setBatch(balanceDO.getBatch()); + detailbDO.setPackingNumber(balanceDO.getPackingNumber()); + detailbDO.setFromLocationCode(balanceDO.getLocationCode()); + detailbDO.setCreateTime(LocalDateTime.now()); + detailbDO.setCreator(null); } private void validateDetailMethod(ProductrepairRequestMainDO mainDO, ProductrepairRequestDetailaBaseVO detailDo,BusinesstypeDO businesstypeDO) { @@ -249,22 +272,23 @@ public class ProductrepairRequestMainServiceImpl implements ProductrepairRequest detailDo.setFromLocationCode(workstationDO.getRawLocationCode()); } // 校验--库存余额 TB——>TB1 - validateBalance(detailDo); + validateBalance(detailDo,mainDO); // 校验--物品类型 DBT——>DBT2——>IT - jobUtils.selectItembasicExist(itembasicDO.getType(),businesstypeDO); + jobUtils.ifInType(itembasicDO.getType(),businesstypeDO); // 校验--来源库位 DBT——>DBT2——>LO jobUtils.ifInToLocationType(detailDo.getFromLocationCode(), businesstypeDO); // 校验--库存状态 DBT——>DBT2——>ISO jobUtils.ifOutInventoryStatuses(detailDo.getInventoryStatus(),businesstypeDO); } - private void validateBalance(ProductrepairRequestDetailaBaseVO detailDo) { + private void validateBalance(ProductrepairRequestDetailaBaseVO detailDo,ProductrepairRequestMainDO mainDO) { String inventoryStatus = detailDo.getInventoryStatus(); String[] inventoryArray = inventoryStatus.split(","); List inventorystatus = Arrays.asList(inventoryArray); List list = jobUtils.selectlocationReturnManagementAccuracy(detailDo.getItemCode(), detailDo.getPackingNumber(), detailDo.getBatch(), detailDo.getFromLocationCode(),inventorystatus); if(list != null && list.size() > 0){ BalanceDO balanceDO = list.get(0); + mainDO.setFromWarehouseCode(balanceDO.getWarehouseCode()); if(balanceDO.getQty().compareTo(detailDo.getQty()) < 0){ // 返修数量【qty】不能大于库存数量【banlance.qty】 throw exception(PRODUCTREPAIR_REQUEST_DETAILA_QTY_ERROR,detailDo.getQty(),balanceDO.getQty()); @@ -480,11 +504,28 @@ public class ProductrepairRequestMainServiceImpl implements ProductrepairRequest IPage myPage = MyBatisUtils.buildPage(pageVO); List> list = jobUtils.bomDismantleList(pageVO.getItemCode(),""); List resultList = new ArrayList<>(); + Map detailbDOMap = new HashMap<>(); + if(pageVO.getMasterId() != null){ + List detailbBOList = productrepairRequestDetailbMapper.selectList(pageVO.getMasterId()); + if(detailbBOList != null && detailbBOList.size() > 0){ + detailbDOMap.putAll(detailbBOList.stream().collect(Collectors.toMap(ProductrepairRequestDetailbDO::getItemCode,item -> item))); + } + } for(Map map:list){ ProductrepairRequestBomRespVO productrepairRequestBomRespVO = new ProductrepairRequestBomRespVO(); - productrepairRequestBomRespVO.setItemCode(map.get("itemCode") != null?map.get("itemCode").toString():""); + String itemCode = map.get("itemCode") != null?map.get("itemCode").toString():""; + productrepairRequestBomRespVO.setItemCode(itemCode); + if(StringUtils.isNotEmpty(productrepairRequestBomRespVO.getItemCode())){ + if(detailbDOMap.get(productrepairRequestBomRespVO.getItemCode()) != null){ + ProductrepairRequestDetailbDO productrepairRequestDetailbDO = detailbDOMap.get(productrepairRequestBomRespVO.getItemCode()); + productrepairRequestBomRespVO = ProductrepairRequestDetailbConvert.INSTANCE.convertRespVO(productrepairRequestDetailbDO); + }else { + productrepairRequestBomRespVO.setQty(BigDecimal.ZERO); + } + }else { + productrepairRequestBomRespVO.setQty(BigDecimal.ZERO); + } productrepairRequestBomRespVO.setUom(map.get("uom") != null?map.get("uom").toString():""); - productrepairRequestBomRespVO.setQty(BigDecimal.ZERO); productrepairRequestBomRespVO.setVersion(map.get("version") != null?map.get("version").toString():""); resultList.add(productrepairRequestBomRespVO); } @@ -494,5 +535,10 @@ public class ProductrepairRequestMainServiceImpl implements ProductrepairRequest return pageResult; } + @Override + public List importProductrepairRequestMainList(List createReqVOList, Integer mode, Boolean updatePart) { + return null; + } + } diff --git a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/scrapRequest/ScrapRequestMainServiceImpl.java b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/scrapRequest/ScrapRequestMainServiceImpl.java index 234e46cb..fa6cd2e5 100644 --- a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/scrapRequest/ScrapRequestMainServiceImpl.java +++ b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/scrapRequest/ScrapRequestMainServiceImpl.java @@ -261,6 +261,7 @@ public class ScrapRequestMainServiceImpl implements ScrapRequestMainService { for(ScrapRequestDetailDO detailDo : subDOList){ detailDo.setMasterId(scrapRequestMainDO.getId()); detailDo.setNumber(scrapRequestMainDO.getNumber()); + detailDo.setId(null); } scrapRequestDetailMapper.insertBatch(subDOList); return scrapRequestMainDO; diff --git a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/transferissueRecord/TransferissueRecordMainService.java b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/transferissueRecord/TransferissueRecordMainService.java index c0c6d240..641f15f6 100644 --- a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/transferissueRecord/TransferissueRecordMainService.java +++ b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/transferissueRecord/TransferissueRecordMainService.java @@ -2,10 +2,7 @@ package com.win.module.wms.service.transferissueRecord; import com.win.framework.common.pojo.CustomConditions; import com.win.framework.common.pojo.PageResult; -import com.win.module.wms.controller.transferissueRecord.vo.TransferissueRecordMainCreateReqVO; -import com.win.module.wms.controller.transferissueRecord.vo.TransferissueRecordMainExportReqVO; -import com.win.module.wms.controller.transferissueRecord.vo.TransferissueRecordMainPageReqVO; -import com.win.module.wms.controller.transferissueRecord.vo.TransferissueRecordMainUpdateReqVO; +import com.win.module.wms.controller.transferissueRecord.vo.*; import com.win.module.wms.dal.dataobject.transferissueRecord.TransferissueRecordMainDO; import javax.validation.Valid; @@ -86,4 +83,11 @@ public interface TransferissueRecordMainService { * @return 主表ID */ Long pdaCreateTransferissueRecord(TransferissueRecordMainCreateReqVO createReqVO); + + /** + * 获取记录明细数据 + * @param id 主表ID + * @return 主子明细数据 + */ + TransferissueRecordMainRespVO getDetailInfoById(Long id); } diff --git a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/transferissueRecord/TransferissueRecordMainServiceImpl.java b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/transferissueRecord/TransferissueRecordMainServiceImpl.java index b88db8c1..84b8688e 100644 --- a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/transferissueRecord/TransferissueRecordMainServiceImpl.java +++ b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/transferissueRecord/TransferissueRecordMainServiceImpl.java @@ -3,27 +3,34 @@ package com.win.module.wms.service.transferissueRecord; import com.win.framework.common.pojo.CustomConditions; import com.win.framework.common.pojo.PageResult; import com.win.module.system.api.serialnumber.SerialNumberApi; +import com.win.module.system.api.user.AdminUserApi; import com.win.module.system.enums.serialNumber.RuleCodeEnum; +import com.win.module.wms.controller.transaction.vo.TransactionCreateReqVO; import com.win.module.wms.controller.transferissueRecord.vo.*; import com.win.module.wms.convert.transferissueRecord.TransferissueRecordDetailConvert; import com.win.module.wms.convert.transferissueRecord.TransferissueRecordMainConvert; import com.win.module.wms.dal.dataobject.businesstype.BusinesstypeDO; +import com.win.module.wms.dal.dataobject.transactiontype.TransactiontypeDO; import com.win.module.wms.dal.dataobject.transferissueRecord.TransferissueRecordDetailDO; import com.win.module.wms.dal.dataobject.transferissueRecord.TransferissueRecordMainDO; import com.win.module.wms.dal.mysql.transferissueRecord.TransferissueRecordDetailMapper; import com.win.module.wms.dal.mysql.transferissueRecord.TransferissueRecordMainMapper; import com.win.module.wms.service.recordsetting.RecordsettingService; +import com.win.module.wms.service.transaction.TransactionService; import com.win.module.wms.util.JobUtils; +import org.springframework.beans.BeanUtils; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; import org.springframework.validation.annotation.Validated; import javax.annotation.Resource; import java.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.framework.security.core.util.SecurityFrameworkUtils.getLoginUserId; import static com.win.module.wms.enums.ErrorCodeConstants.TRANSFERISSUE_RECORD_MAIN_NOT_EXISTS; /** @@ -45,6 +52,10 @@ public class TransferissueRecordMainServiceImpl implements TransferissueRecordMa private SerialNumberApi serialNumberApi; @Resource private TransferissueRecordDetailMapper transferissueRecordDetailMapper; + @Resource + private AdminUserApi userApi; + @Resource + private TransactionService transactionService; @Override public Long createTransferissueRecordMain(TransferissueRecordMainCreateReqVO createReqVO) { @@ -75,10 +86,12 @@ public class TransferissueRecordMainServiceImpl implements TransferissueRecordMa transferissueRecordMainMapper.deleteById(id); } - private void validateTransferissueRecordMainExists(Long id) { - if (transferissueRecordMainMapper.selectById(id) == null) { + private TransferissueRecordMainDO validateTransferissueRecordMainExists(Long id) { + TransferissueRecordMainDO transferissueRecordMainDO = transferissueRecordMainMapper.selectById(id); + if (transferissueRecordMainDO == null) { throw exception(TRANSFERISSUE_RECORD_MAIN_NOT_EXISTS); } + return transferissueRecordMainDO; } @Override @@ -123,14 +136,55 @@ public class TransferissueRecordMainServiceImpl implements TransferissueRecordMa transferissueRecordMainDO.setCreateTime(null); transferissueRecordMainMapper.insert(transferissueRecordMainDO); + //库存事务 + List transactionCreateReqVOList = new ArrayList<>(); + List subList = createReqVO.getSubList(); for(TransferissueRecordDetailCreateReqVO transferissueRecordDetailCreateReqVO : subList) { TransferissueRecordDetailDO recordDetailDO = TransferissueRecordDetailConvert.INSTANCE.convert(transferissueRecordDetailCreateReqVO); recordDetailDO.setNumber(number); recordDetailDO.setMasterId(transferissueRecordMainDO.getId()); transferissueRecordDetailMapper.insert(recordDetailDO); + + //添加库存事务list + TransactionCreateReqVO transactionCreateReqVO = new TransactionCreateReqVO(); + BeanUtils.copyProperties(recordDetailDO, transactionCreateReqVO); + //增加业务类型 + transactionCreateReqVO.setBusinessType(businesstypeDO.getCode()); + TransactiontypeDO transactiontypeDO = jobUtils.selectDocumentFromTransactionType(businesstypeDO.getInTransactionType()); + transactionCreateReqVO.setInventoryAction(transactiontypeDO.getInventoryAction()); + transactionCreateReqVO.setTransactionType(transactiontypeDO.getCode()); + transactionCreateReqVO.setBusinessType(transferissueRecordMainDO.getBusinessType()); + transactionCreateReqVO.setLocationCode(recordDetailDO.getToLocationCode()); + transactionCreateReqVO.setOwnerCode(recordDetailDO.getFromOwnerCode()); + transactionCreateReqVO.setPackingNumber(recordDetailDO.getFromPackingNumber()); + transactionCreateReqVO.setWorker(String.valueOf(userApi.getUser(getLoginUserId()).getId())); + transactionCreateReqVO.setBatch(recordDetailDO.getFromBatch()); + transactionCreateReqVO.setWarehouseCode(transferissueRecordMainDO.getToWarehouseCode()); + transactionCreateReqVO.setRecordNumber(number); + transactionCreateReqVO.setId(null); + transactionCreateReqVOList.add(transactionCreateReqVO); } + //增加库存事务 + transactionService.createTransaction(transactionCreateReqVOList); return transferissueRecordMainDO.getId(); } + @Override + public TransferissueRecordMainRespVO getDetailInfoById(Long id) { + TransferissueRecordMainRespVO transferissueRecordMainRespVO = new TransferissueRecordMainRespVO(); + TransferissueRecordMainDO transferissueRecordMainDO = validateTransferissueRecordMainExists(id); + TransferissueRecordDetailExportReqVO reqVO = new TransferissueRecordDetailExportReqVO(); + reqVO.setMasterId(id); + List subList = transferissueRecordDetailMapper.selectList(reqVO); + BeanUtils.copyProperties(transferissueRecordMainDO,transferissueRecordMainRespVO); + List detailList = new ArrayList<>(); + for(TransferissueRecordDetailDO transferissueRecordDetailDO:subList){ + TransferissueRecordDetailRespVO transferissueRecordDetailRespVO = TransferissueRecordDetailConvert.INSTANCE.convert(transferissueRecordDetailDO); + detailList.add(transferissueRecordDetailRespVO); + } + transferissueRecordMainRespVO.setSubList(detailList); + return transferissueRecordMainRespVO; + } + }