diff --git a/win-module-wms/win-module-wms-api/src/main/java/com/win/module/wms/enums/ErrorCodeConstants.java b/win-module-wms/win-module-wms-api/src/main/java/com/win/module/wms/enums/ErrorCodeConstants.java index 4ea3b36c..19671284 100644 --- a/win-module-wms/win-module-wms-api/src/main/java/com/win/module/wms/enums/ErrorCodeConstants.java +++ b/win-module-wms/win-module-wms-api/src/main/java/com/win/module/wms/enums/ErrorCodeConstants.java @@ -714,7 +714,9 @@ public interface ErrorCodeConstants { ErrorCode PRODUCTSCRAP_REQUEST_MAIN_NOT_EXISTS = new ErrorCode(1_000_110_000, "制品报废申请主不存在"); //制品报废申请子ErrorCode ErrorCode PRODUCTSCRAP_REQUEST_DETAIL_NOT_EXISTS = new ErrorCode(1_001_110_001, "制品报废申请子不存在"); - + // 制品报废二级子表ErrorCode + ErrorCode RAWSCRAP_REQUEST_DETAIL_NOT_EXISTS = new ErrorCode(1_000_111_100, "制品报废子申请状态错误"); + ErrorCode RAWSCRAP_REQUEST_DETAIL_IMPORT_LIST_IS_EMPTY= new ErrorCode(1_000_111_101, "制品报废子申请导入列表是空"); //制品报废申请子ErrorCode ErrorCode PRODUCTSCRAP_REQUEST_NOT_EXISTS = new ErrorCode(1_001_110_002, "制品报废申请不存在"); //制品报废任务主ErrorCode @@ -722,9 +724,13 @@ public interface ErrorCodeConstants { //制品报废任务子ErrorCode ErrorCode PRODUCTSCRAP_JOB_DETAIL_NOT_EXISTS = new ErrorCode(1_001_110_001, "制品报废任务子不存在"); ErrorCode PRODUCTSCRAP_JOB_MAIN_STATUS_ERROR = new ErrorCode(1_000_111_002, "制品报废任务状态错误"); + //制品报废记录ErrorCode ErrorCode PRODUCTSCRAP_RECORD_MAIN_NOT_EXISTS = new ErrorCode(1_000_111_000, "制品报废记录主不存在"); ErrorCode PRODUCTSCRAP_RECORD_DETAIL_NOT_EXISTS = new ErrorCode(1_000_111_001, "制品报废记录子不存在"); + ErrorCode RAWSCRAP_RECORD_DETAIL_NOT_EXISTS= new ErrorCode(1_000_111_002, "制品报废记录子不存在"); + ErrorCode RAWSCRAP_RECORD_DETAIL_IMPORT_LIST_IS_EMPTY= new ErrorCode(1_000_111_002, "制品报废记录子导入列表是空"); + //制品上架申请ErrorCode ErrorCode PRODUCTPUTAWAY_REQUEST_MAIN_NOT_EXISTS = new ErrorCode(1_000_112_000, "制品上架申请主不存在"); ErrorCode PRODUCTPUTAWAY_REQUEST_DETAIL_NOT_EXISTS = new ErrorCode(1_000_112_001, "制品上架申请子不存在"); diff --git a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/productrepairRecord/vo/ProductrepairRecordDetailBaseVO.java b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/productrepairRecord/vo/ProductrepairRecordDetailBaseVO.java index cff380cf..0e182358 100644 --- a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/productrepairRecord/vo/ProductrepairRecordDetailBaseVO.java +++ b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/productrepairRecord/vo/ProductrepairRecordDetailBaseVO.java @@ -109,4 +109,7 @@ public class ProductrepairRecordDetailBaseVO { @Schema(description = "主表ID") private String masterId; + @Schema(description = "BOM版本") + private String bomVersion; + } diff --git a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/productrepairRequest/vo/ProductrepairRequestDetailaBaseVO.java b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/productrepairRequest/vo/ProductrepairRequestDetailaBaseVO.java index 889a44f6..a90331f9 100644 --- a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/productrepairRequest/vo/ProductrepairRequestDetailaBaseVO.java +++ b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/productrepairRequest/vo/ProductrepairRequestDetailaBaseVO.java @@ -96,4 +96,7 @@ public class ProductrepairRequestDetailaBaseVO { @Schema(description = "最后更新者用户名") private String updater; + @Schema(description = "BOM版本") + private String bomVersion; + } 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 b249068a..08ef06cd 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 @@ -88,4 +88,7 @@ public class ProductrepairRequestDetailaPageReqVO extends PageParam { @Schema(description = "主键ID") private Long masterId; + @Schema(description = "BOM版本") + private String bomVersion; + } diff --git a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/productscrapRecord/RawscrapRecordDetailController.java b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/productscrapRecord/RawscrapRecordDetailController.java new file mode 100644 index 00000000..671dc0df --- /dev/null +++ b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/productscrapRecord/RawscrapRecordDetailController.java @@ -0,0 +1,135 @@ +package com.win.module.wms.controller.productscrapRecord; + +import com.win.framework.common.pojo.CommonResult; +import com.win.framework.common.pojo.PageResult; +import com.win.framework.excel.core.util.ExcelUtils; +import com.win.framework.operatelog.core.annotations.OperateLog; +import com.win.module.wms.controller.productscrapRecord.vo.*; +import com.win.module.wms.convert.productscrapRecord.RawscrapRecordDetailConvert; +import com.win.module.wms.dal.dataobject.productscrapRecord.RawscrapRecordDetailDO; +import com.win.module.wms.service.productscrapRecord.RawscrapRecordDetailService; +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.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; + + +@Tag(name = "管理后台 - 制品返修记录子") +@RestController +@RequestMapping("/wms/rawscrap-record-detail") +@Validated +public class RawscrapRecordDetailController { + + @Resource + private RawscrapRecordDetailService rawscrapRecordDetailService; + + @PostMapping("/create") + @Operation(summary = "创建制品返修记录子") + @PreAuthorize("@ss.hasPermission('wms:rawscrap-record-detail:create')") + public CommonResult createRawscrapRecordDetail(@Valid @RequestBody RawscrapRecordDetailCreateReqVO createReqVO) { + return success(rawscrapRecordDetailService.createRawscrapRecordDetail(createReqVO)); + } + + @PutMapping("/update") + @Operation(summary = "更新制品返修记录子") + @PreAuthorize("@ss.hasPermission('wms:rawscrap-record-detail:update')") + public CommonResult updateRawscrapRecordDetail(@Valid @RequestBody RawscrapRecordDetailUpdateReqVO updateReqVO) { + int result = rawscrapRecordDetailService.updateRawscrapRecordDetail(updateReqVO); + return success(result > 0); + } + + @DeleteMapping("/delete") + @Operation(summary = "删除制品返修记录子") + @Parameter(name = "id", description = "编号", required = true) + @PreAuthorize("@ss.hasPermission('wms:rawscrap-record-detail:delete')") + public CommonResult deleteRawscrapRecordDetail(@RequestParam("id") Long id) { + int result = rawscrapRecordDetailService.deleteRawscrapRecordDetail(id); + return success(result > 0); + } + + @GetMapping("/get") + @Operation(summary = "获得制品返修记录子") + @Parameter(name = "id", description = "编号", required = true, example = "1024") + @PreAuthorize("@ss.hasPermission('wms:rawscrap-record-detail:query')") + public CommonResult getRawscrapRecordDetail(@RequestParam("id") Long id) { + RawscrapRecordDetailDO rawscrapRecordDetail = rawscrapRecordDetailService.getRawscrapRecordDetail(id); + return success(RawscrapRecordDetailConvert.INSTANCE.convert(rawscrapRecordDetail)); + } + + @GetMapping("/list") + @Operation(summary = "获得制品返修记录子列表") + @Parameter(name = "ids", description = "编号列表", required = true, example = "1024,2048") + @PreAuthorize("@ss.hasPermission('wms:rawscrap-record-detail:query')") + public CommonResult> getRawscrapRecordDetailList(@RequestParam("ids") Collection ids) { + List list = rawscrapRecordDetailService.getRawscrapRecordDetailList(ids); + return success(RawscrapRecordDetailConvert.INSTANCE.convertList(list)); + } + + @GetMapping("/page") + @Operation(summary = "获得制品返修记录子分页") + @PreAuthorize("@ss.hasPermission('wms:rawscrap-record-detail:query')") + public CommonResult> getRawscrapRecordDetailPage(@Valid RawscrapRecordDetailPageReqVO pageVO) { + PageResult pageResult = rawscrapRecordDetailService.getRawscrapRecordDetailPage(pageVO); + return success(RawscrapRecordDetailConvert.INSTANCE.convertPage(pageResult)); + } + + @GetMapping("/export-excel") + @Operation(summary = "导出制品返修记录子 Excel") + @PreAuthorize("@ss.hasPermission('wms:rawscrap-record-detail:export')") + @OperateLog(type = EXPORT) + public void exportRawscrapRecordDetailExcel(@Valid RawscrapRecordDetailExportReqVO exportReqVO, + HttpServletResponse response) throws IOException { + List list = rawscrapRecordDetailService.getRawscrapRecordDetailList(exportReqVO); + // 导出 Excel + List datas = RawscrapRecordDetailConvert.INSTANCE.convertList02(list); + ExcelUtils.write(response, "制品返修记录子.xls", "数据", RawscrapRecordDetailExcelVO.class, datas); + } + + @GetMapping("/get-import-template") + @Operation(summary = "获得导入制品返修记录子模板") + public void importTemplate(HttpServletResponse response) throws IOException { + List list = Arrays.asList(); + // 输出 + ExcelUtils.write(response, "制品返修记录子基本信息导入模板.xls", "制品返修记录子基本信息列表", RawscrapRecordDetailExcelVO.class, list); + } + + @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:rawscrap-record-detail: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, RawscrapRecordDetailExcelVO.class); + List errorList = rawscrapRecordDetailService.importRawscrapRecordDetailList(list, 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/productscrapRecord/vo/RawscrapRecordDetailBaseVO.java b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/productscrapRecord/vo/RawscrapRecordDetailBaseVO.java new file mode 100644 index 00000000..858825e5 --- /dev/null +++ b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/productscrapRecord/vo/RawscrapRecordDetailBaseVO.java @@ -0,0 +1,72 @@ +package com.win.module.wms.controller.productscrapRecord.vo; + +import io.swagger.v3.oas.annotations.media.Schema; +import lombok.Data; + +import java.math.BigDecimal; + +/** + * 制品返修记录子 Base VO,提供给添加、修改、详细的子 VO 使用 + * 如果子 VO 存在差异的字段,请不要添加到这里,影响 Swagger 文档生成 + */ +@Data +public class RawscrapRecordDetailBaseVO { + + @Schema(description = "批次") + private String batch; + + @Schema(description = "从库位代码") + private String fromLocationCode; + + @Schema(description = "从库位组代码") + private String fromLocationGroupCode; + + @Schema(description = "从库区代码") + private String fromAreaCode; + + @Schema(description = "库存状态", example = "2") + private String inventoryStatus; + + @Schema(description = "包装号") + private String packingNumber; + + @Schema(description = "主表ID", example = "17320") + private Long masterId; + + @Schema(description = "单据号") + private String number; + + @Schema(description = "物品代码") + private String itemCode; + + @Schema(description = "备注", example = "你猜") + private String remark; + + @Schema(description = "地点ID", example = "25447") + private String siteId; + + @Schema(description = "物品名称", example = "赵六") + private String itemName; + + @Schema(description = "物品描述1") + private String itemDesc1; + + @Schema(description = "物品描述2") + private String itemDesc2; + + @Schema(description = "项目代码") + private String projectCode; + + @Schema(description = "计量单位") + private String uom; + + @Schema(description = "代码") + private String code; + + @Schema(description = "接口类型", example = "2") + 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/productscrapRecord/vo/RawscrapRecordDetailCreateReqVO.java b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/productscrapRecord/vo/RawscrapRecordDetailCreateReqVO.java new file mode 100644 index 00000000..3178ab5f --- /dev/null +++ b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/productscrapRecord/vo/RawscrapRecordDetailCreateReqVO.java @@ -0,0 +1,14 @@ +package com.win.module.wms.controller.productscrapRecord.vo; + +import io.swagger.v3.oas.annotations.media.Schema; +import lombok.Data; +import lombok.EqualsAndHashCode; +import lombok.ToString; + +@Schema(description = "管理后台 - 制品返修记录子创建 Request VO") +@Data +@EqualsAndHashCode(callSuper = true) +@ToString(callSuper = true) +public class RawscrapRecordDetailCreateReqVO extends RawscrapRecordDetailBaseVO { + +} diff --git a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/productscrapRecord/vo/RawscrapRecordDetailExcelVO.java b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/productscrapRecord/vo/RawscrapRecordDetailExcelVO.java new file mode 100644 index 00000000..f7c5d0e7 --- /dev/null +++ b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/productscrapRecord/vo/RawscrapRecordDetailExcelVO.java @@ -0,0 +1,80 @@ +package com.win.module.wms.controller.productscrapRecord.vo; + +import com.alibaba.excel.annotation.ExcelProperty; +import lombok.Data; + +import java.math.BigDecimal; +import java.time.LocalDateTime; + +/** + * 制品返修记录子 Excel VO + * + * @author 超级管理员 + */ +@Data +public class RawscrapRecordDetailExcelVO { + + @ExcelProperty("id") + private Long id; + + @ExcelProperty("批次") + private String batch; + + @ExcelProperty("从库位代码") + private String fromLocationCode; + + @ExcelProperty("从库位组代码") + private String fromLocationGroupCode; + + @ExcelProperty("从库区代码") + private String fromAreaCode; + + @ExcelProperty("库存状态") + private String inventoryStatus; + + @ExcelProperty("包装号") + private String packingNumber; + + @ExcelProperty("主表ID") + private Long masterId; + + @ExcelProperty("单据号") + private String number; + + @ExcelProperty("物品代码") + private String itemCode; + + @ExcelProperty("备注") + private String remark; + + @ExcelProperty("创建时间") + private LocalDateTime createTime; + + @ExcelProperty("地点ID") + private String siteId; + + @ExcelProperty("物品名称") + private String itemName; + + @ExcelProperty("物品描述1") + private String itemDesc1; + + @ExcelProperty("物品描述2") + private String itemDesc2; + + @ExcelProperty("项目代码") + private String projectCode; + + @ExcelProperty("计量单位") + private String uom; + + @ExcelProperty("代码") + private String code; + + @ExcelProperty("接口类型") + private String interfaceType; + + @ExcelProperty("数量") + private BigDecimal qty; + +} diff --git a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/productscrapRecord/vo/RawscrapRecordDetailExportReqVO.java b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/productscrapRecord/vo/RawscrapRecordDetailExportReqVO.java new file mode 100644 index 00000000..b25e413e --- /dev/null +++ b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/productscrapRecord/vo/RawscrapRecordDetailExportReqVO.java @@ -0,0 +1,77 @@ +package com.win.module.wms.controller.productscrapRecord.vo; + +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; + +@Schema(description = "管理后台 - 制品返修记录子 Excel 导出 Request VO,参数和 RawscrapRecordDetailPageReqVO 是一致的") +@Data +public class RawscrapRecordDetailExportReqVO { + + @Schema(description = "批次") + private String batch; + + @Schema(description = "从库位代码") + private String fromLocationCode; + + @Schema(description = "从库位组代码") + private String fromLocationGroupCode; + + @Schema(description = "从库区代码") + private String fromAreaCode; + + @Schema(description = "库存状态", example = "2") + private String inventoryStatus; + + @Schema(description = "包装号") + private String packingNumber; + + @Schema(description = "主表ID", example = "17320") + private Long masterId; + + @Schema(description = "单据号") + private String number; + + @Schema(description = "物品代码") + private String itemCode; + + @Schema(description = "备注", example = "你猜") + private String remark; + + @Schema(description = "创建时间") + @DateTimeFormat(pattern = FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND) + private LocalDateTime[] createTime; + + @Schema(description = "地点ID", example = "25447") + private String siteId; + + @Schema(description = "物品名称", example = "赵六") + private String itemName; + + @Schema(description = "物品描述1") + private String itemDesc1; + + @Schema(description = "物品描述2") + private String itemDesc2; + + @Schema(description = "项目代码") + private String projectCode; + + @Schema(description = "计量单位") + private String uom; + + @Schema(description = "代码") + private String code; + + @Schema(description = "接口类型", example = "2") + 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/productscrapRecord/vo/RawscrapRecordDetailPageReqVO.java b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/productscrapRecord/vo/RawscrapRecordDetailPageReqVO.java new file mode 100644 index 00000000..31a2d6d5 --- /dev/null +++ b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/productscrapRecord/vo/RawscrapRecordDetailPageReqVO.java @@ -0,0 +1,82 @@ +package com.win.module.wms.controller.productscrapRecord.vo; + +import com.win.framework.common.pojo.PageParam; +import io.swagger.v3.oas.annotations.media.Schema; +import lombok.Data; +import lombok.EqualsAndHashCode; +import lombok.ToString; +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; + +@Schema(description = "管理后台 - 制品返修记录子分页 Request VO") +@Data +@EqualsAndHashCode(callSuper = true) +@ToString(callSuper = true) +public class RawscrapRecordDetailPageReqVO extends PageParam { + + @Schema(description = "批次") + private String batch; + + @Schema(description = "从库位代码") + private String fromLocationCode; + + @Schema(description = "从库位组代码") + private String fromLocationGroupCode; + + @Schema(description = "从库区代码") + private String fromAreaCode; + + @Schema(description = "库存状态", example = "2") + private String inventoryStatus; + + @Schema(description = "包装号") + private String packingNumber; + + @Schema(description = "主表ID", example = "17320") + private Long masterId; + + @Schema(description = "单据号") + private String number; + + @Schema(description = "物品代码") + private String itemCode; + + @Schema(description = "备注", example = "你猜") + private String remark; + + @Schema(description = "创建时间") + @DateTimeFormat(pattern = FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND) + private LocalDateTime[] createTime; + + @Schema(description = "地点ID", example = "25447") + private String siteId; + + @Schema(description = "物品名称", example = "赵六") + private String itemName; + + @Schema(description = "物品描述1") + private String itemDesc1; + + @Schema(description = "物品描述2") + private String itemDesc2; + + @Schema(description = "项目代码") + private String projectCode; + + @Schema(description = "计量单位") + private String uom; + + @Schema(description = "代码") + private String code; + + @Schema(description = "接口类型", example = "2") + 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/productscrapRecord/vo/RawscrapRecordDetailRespVO.java b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/productscrapRecord/vo/RawscrapRecordDetailRespVO.java new file mode 100644 index 00000000..000d1912 --- /dev/null +++ b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/productscrapRecord/vo/RawscrapRecordDetailRespVO.java @@ -0,0 +1,22 @@ +package com.win.module.wms.controller.productscrapRecord.vo; + +import io.swagger.v3.oas.annotations.media.Schema; +import lombok.Data; +import lombok.EqualsAndHashCode; +import lombok.ToString; + +import java.time.LocalDateTime; + +@Schema(description = "管理后台 - 制品返修记录子 Response VO") +@Data +@EqualsAndHashCode(callSuper = true) +@ToString(callSuper = true) +public class RawscrapRecordDetailRespVO extends RawscrapRecordDetailBaseVO { + + @Schema(description = "id", requiredMode = Schema.RequiredMode.REQUIRED, example = "8745") + private Long id; + + @Schema(description = "创建时间") + private LocalDateTime createTime; + +} diff --git a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/productscrapRecord/vo/RawscrapRecordDetailUpdateReqVO.java b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/productscrapRecord/vo/RawscrapRecordDetailUpdateReqVO.java new file mode 100644 index 00000000..acf3ae55 --- /dev/null +++ b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/productscrapRecord/vo/RawscrapRecordDetailUpdateReqVO.java @@ -0,0 +1,20 @@ +package com.win.module.wms.controller.productscrapRecord.vo; + +import io.swagger.v3.oas.annotations.media.Schema; +import lombok.Data; +import lombok.EqualsAndHashCode; +import lombok.ToString; + +import javax.validation.constraints.NotNull; + +@Schema(description = "管理后台 - 制品返修记录子更新 Request VO") +@Data +@EqualsAndHashCode(callSuper = true) +@ToString(callSuper = true) +public class RawscrapRecordDetailUpdateReqVO extends RawscrapRecordDetailBaseVO { + + @Schema(description = "id", requiredMode = Schema.RequiredMode.REQUIRED, example = "8745") + @NotNull(message = "id不能为空") + private Long id; + +} diff --git a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/productscrapRequest/RawscrapRequestDetailController.java b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/productscrapRequest/RawscrapRequestDetailController.java new file mode 100644 index 00000000..b3533eac --- /dev/null +++ b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/productscrapRequest/RawscrapRequestDetailController.java @@ -0,0 +1,137 @@ +package com.win.module.wms.controller.productscrapRequest; + +import com.win.framework.common.pojo.CommonResult; +import com.win.framework.common.pojo.PageResult; +import com.win.framework.excel.core.util.ExcelUtils; +import com.win.framework.operatelog.core.annotations.OperateLog; +import com.win.module.wms.controller.productscrapRequest.vo.*; +import com.win.module.wms.convert.productscrapRequest.RawscrapRequestDetailConvert; +import com.win.module.wms.dal.dataobject.productscrapRequest.RawscrapRequestDetailDO; +import com.win.module.wms.service.productscrapRequest.RawscrapRequestDetailService; +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.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; + + + +@Tag(name = "管理后台 - 制品报废-原材料报废申请") +@RestController +@RequestMapping("/wms/rawscrap-request-detail") +@Validated +public class RawscrapRequestDetailController { + + @Resource + private RawscrapRequestDetailService rawscrapRequestDetailService; + + @PostMapping("/create") + @Operation(summary = "创建制品报废-原材料报废申请") + @PreAuthorize("@ss.hasPermission('wms:rawscrap-request-detail:create')") + public CommonResult createRawscrapRequestDetail(@Valid @RequestBody RawscrapRequestDetailCreateReqVO createReqVO) { + return success(rawscrapRequestDetailService.createRawscrapRequestDetail(createReqVO)); + } + + @PutMapping("/update") + @Operation(summary = "更新制品报废-原材料报废申请") + @PreAuthorize("@ss.hasPermission('wms:rawscrap-request-detail:update')") + public CommonResult updateRawscrapRequestDetail(@Valid @RequestBody RawscrapRequestDetailUpdateReqVO updateReqVO) { + int result = rawscrapRequestDetailService.updateRawscrapRequestDetail(updateReqVO); + return success(result > 0); + } + + @DeleteMapping("/delete") + @Operation(summary = "删除制品报废-原材料报废申请") + @Parameter(name = "id", description = "编号", required = true) + @PreAuthorize("@ss.hasPermission('wms:rawscrap-request-detail:delete')") + public CommonResult deleteRawscrapRequestDetail(@RequestParam("id") Long id) { + int result = rawscrapRequestDetailService.deleteRawscrapRequestDetail(id); + return success(result > 0); + } + + @GetMapping("/get") + @Operation(summary = "获得制品报废-原材料报废申请") + @Parameter(name = "id", description = "编号", required = true, example = "1024") + @PreAuthorize("@ss.hasPermission('wms:rawscrap-request-detail:query')") + public CommonResult getRawscrapRequestDetail(@RequestParam("id") Long id) { + RawscrapRequestDetailDO rawscrapRequestDetail = rawscrapRequestDetailService.getRawscrapRequestDetail(id); + return success(RawscrapRequestDetailConvert.INSTANCE.convert(rawscrapRequestDetail)); + } + + @GetMapping("/list") + @Operation(summary = "获得制品报废-原材料报废申请列表") + @Parameter(name = "ids", description = "编号列表", required = true, example = "1024,2048") + @PreAuthorize("@ss.hasPermission('wms:rawscrap-request-detail:query')") + public CommonResult> getRawscrapRequestDetailList(@RequestParam("ids") Collection ids) { + List list = rawscrapRequestDetailService.getRawscrapRequestDetailList(ids); + return success(RawscrapRequestDetailConvert.INSTANCE.convertList(list)); + } + + @GetMapping("/page") + @Operation(summary = "获得制品报废-原材料报废申请分页") + @PreAuthorize("@ss.hasPermission('wms:rawscrap-request-detail:query')") + public CommonResult> getRawscrapRequestDetailPage(@Valid RawscrapRequestDetailPageReqVO pageVO) { + PageResult pageResult = rawscrapRequestDetailService.getRawscrapRequestDetailPage(pageVO); + return success(RawscrapRequestDetailConvert.INSTANCE.convertPage(pageResult)); + } + + @GetMapping("/export-excel") + @Operation(summary = "导出制品报废-原材料报废申请 Excel") + @PreAuthorize("@ss.hasPermission('wms:rawscrap-request-detail:export')") + @OperateLog(type = EXPORT) + public void exportRawscrapRequestDetailExcel(@Valid RawscrapRequestDetailExportReqVO exportReqVO, + HttpServletResponse response) throws IOException { + List list = rawscrapRequestDetailService.getRawscrapRequestDetailList(exportReqVO); + // 导出 Excel + List datas = RawscrapRequestDetailConvert.INSTANCE.convertList02(list); + ExcelUtils.write(response, "制品报废-原材料报废申请.xls", "数据", RawscrapRequestDetailExcelVO.class, datas); + } + + @GetMapping("/get-import-template") + @Operation(summary = "获得导入制品报废-原材料报废申请模板") + public void importTemplate(HttpServletResponse response) throws IOException { + List list = Arrays.asList(); + // 输出 + ExcelUtils.write(response, "制品报废-原材料报废申请基本信息导入模板.xls", "制品报废-原材料报废申请基本信息列表", RawscrapRequestDetailExcelVO.class, list); + } + + @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:rawscrap-request-detail: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, RawscrapRequestDetailExcelVO.class); + List errorList = rawscrapRequestDetailService.importRawscrapRequestDetailList(list, 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/productscrapRequest/vo/RawscrapRequestDetailBaseVO.java b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/productscrapRequest/vo/RawscrapRequestDetailBaseVO.java new file mode 100644 index 00000000..5b1f766e --- /dev/null +++ b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/productscrapRequest/vo/RawscrapRequestDetailBaseVO.java @@ -0,0 +1,68 @@ +package com.win.module.wms.controller.productscrapRequest.vo; + +import io.swagger.v3.oas.annotations.media.Schema; +import lombok.Data; + +import javax.validation.constraints.NotNull; +import java.math.BigDecimal; + +/** + * 制品报废-原材料报废申请 Base VO,提供给添加、修改、详细的子 VO 使用 + * 如果子 VO 存在差异的字段,请不要添加到这里,影响 Swagger 文档生成 + */ +@Data +public class RawscrapRequestDetailBaseVO { + + @Schema(description = "库存状态", requiredMode = Schema.RequiredMode.REQUIRED, example = "1") + @NotNull(message = "库存状态不能为空") + private String inventoryStatus; + + @Schema(description = "包装号") + private String packingNumber; + + @Schema(description = "批次") + private String batch; + + @Schema(description = "从库位代码", requiredMode = Schema.RequiredMode.REQUIRED) + @NotNull(message = "从库位代码不能为空") + private String fromLocationCode; + + @Schema(description = "主表ID", requiredMode = Schema.RequiredMode.REQUIRED, example = "18816") + @NotNull(message = "主表ID不能为空") + private Long masterId; + + @Schema(description = "单据号") + private String number; + + @Schema(description = "物品代码", requiredMode = Schema.RequiredMode.REQUIRED) + @NotNull(message = "物品代码不能为空") + private String itemCode; + + @Schema(description = "备注", example = "随便") + private String remark; + + @Schema(description = "地点ID", example = "8586") + private Long siteId; + + @Schema(description = "物品名称", example = "芋艿") + private String itemName; + + @Schema(description = "物品描述1") + private String itemDesc1; + + @Schema(description = "物品描述2") + private String itemDesc2; + + @Schema(description = "项目代码") + private String projectCode; + + @Schema(description = "计量单位") + private String uom; + + @Schema(description = "并发乐观锁") + private String concurrencyStamp; + + @Schema(description = "数量") + private BigDecimal qty; + +} diff --git a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/productscrapRequest/vo/RawscrapRequestDetailCreateReqVO.java b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/productscrapRequest/vo/RawscrapRequestDetailCreateReqVO.java new file mode 100644 index 00000000..3c4d246c --- /dev/null +++ b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/productscrapRequest/vo/RawscrapRequestDetailCreateReqVO.java @@ -0,0 +1,14 @@ +package com.win.module.wms.controller.productscrapRequest.vo; + +import io.swagger.v3.oas.annotations.media.Schema; +import lombok.Data; +import lombok.EqualsAndHashCode; +import lombok.ToString; + +@Schema(description = "管理后台 - 制品报废-原材料报废申请创建 Request VO") +@Data +@EqualsAndHashCode(callSuper = true) +@ToString(callSuper = true) +public class RawscrapRequestDetailCreateReqVO extends RawscrapRequestDetailBaseVO { + +} diff --git a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/productscrapRequest/vo/RawscrapRequestDetailExcelVO.java b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/productscrapRequest/vo/RawscrapRequestDetailExcelVO.java new file mode 100644 index 00000000..32c7ab01 --- /dev/null +++ b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/productscrapRequest/vo/RawscrapRequestDetailExcelVO.java @@ -0,0 +1,71 @@ +package com.win.module.wms.controller.productscrapRequest.vo; + +import com.alibaba.excel.annotation.ExcelProperty; +import lombok.Data; + +import java.math.BigDecimal; +import java.time.LocalDateTime; + +/** + * 制品报废-原材料报废申请 Excel VO + * + * @author 超级管理员 + */ +@Data +public class RawscrapRequestDetailExcelVO { + + @ExcelProperty("id") + private Long id; + + @ExcelProperty("库存状态") + private String inventoryStatus; + + @ExcelProperty("包装号") + private String packingNumber; + + @ExcelProperty("批次") + private String batch; + + @ExcelProperty("从库位代码") + private String fromLocationCode; + + @ExcelProperty("主表ID") + private Long masterId; + + @ExcelProperty("单据号") + private String number; + + @ExcelProperty("物品代码") + private String itemCode; + + @ExcelProperty("备注") + private String remark; + + @ExcelProperty("创建时间") + private LocalDateTime createTime; + + @ExcelProperty("地点ID") + private Long siteId; + + @ExcelProperty("物品名称") + private String itemName; + + @ExcelProperty("物品描述1") + private String itemDesc1; + + @ExcelProperty("物品描述2") + private String itemDesc2; + + @ExcelProperty("项目代码") + private String projectCode; + + @ExcelProperty("计量单位") + private String uom; + + @ExcelProperty("并发乐观锁") + private String concurrencyStamp; + + @ExcelProperty("数量") + private BigDecimal qty; + +} diff --git a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/productscrapRequest/vo/RawscrapRequestDetailExportReqVO.java b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/productscrapRequest/vo/RawscrapRequestDetailExportReqVO.java new file mode 100644 index 00000000..0c559277 --- /dev/null +++ b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/productscrapRequest/vo/RawscrapRequestDetailExportReqVO.java @@ -0,0 +1,68 @@ +package com.win.module.wms.controller.productscrapRequest.vo; + +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; + +@Schema(description = "管理后台 - 制品报废-原材料报废申请 Excel 导出 Request VO,参数和 RawscrapRequestDetailPageReqVO 是一致的") +@Data +public class RawscrapRequestDetailExportReqVO { + + @Schema(description = "库存状态", example = "1") + private String inventoryStatus; + + @Schema(description = "包装号") + private String packingNumber; + + @Schema(description = "批次") + private String batch; + + @Schema(description = "从库位代码") + private String fromLocationCode; + + @Schema(description = "主表ID", example = "18816") + private Long masterId; + + @Schema(description = "单据号") + private String number; + + @Schema(description = "物品代码") + private String itemCode; + + @Schema(description = "备注", example = "随便") + private String remark; + + @Schema(description = "创建时间") + @DateTimeFormat(pattern = FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND) + private LocalDateTime[] createTime; + + @Schema(description = "地点ID", example = "8586") + private Long siteId; + + @Schema(description = "物品名称", example = "芋艿") + private String itemName; + + @Schema(description = "物品描述1") + private String itemDesc1; + + @Schema(description = "物品描述2") + private String itemDesc2; + + @Schema(description = "项目代码") + private String projectCode; + + @Schema(description = "计量单位") + private String uom; + + @Schema(description = "并发乐观锁") + private String concurrencyStamp; + + @Schema(description = "数量") + private BigDecimal qty; + +} diff --git a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/productscrapRequest/vo/RawscrapRequestDetailPageReqVO.java b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/productscrapRequest/vo/RawscrapRequestDetailPageReqVO.java new file mode 100644 index 00000000..135d6569 --- /dev/null +++ b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/productscrapRequest/vo/RawscrapRequestDetailPageReqVO.java @@ -0,0 +1,73 @@ +package com.win.module.wms.controller.productscrapRequest.vo; + +import com.win.framework.common.pojo.PageParam; +import io.swagger.v3.oas.annotations.media.Schema; +import lombok.Data; +import lombok.EqualsAndHashCode; +import lombok.ToString; +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; + +@Schema(description = "管理后台 - 制品报废-原材料报废申请分页 Request VO") +@Data +@EqualsAndHashCode(callSuper = true) +@ToString(callSuper = true) +public class RawscrapRequestDetailPageReqVO extends PageParam { + + @Schema(description = "库存状态", example = "1") + private String inventoryStatus; + + @Schema(description = "包装号") + private String packingNumber; + + @Schema(description = "批次") + private String batch; + + @Schema(description = "从库位代码") + private String fromLocationCode; + + @Schema(description = "主表ID", example = "18816") + private Long masterId; + + @Schema(description = "单据号") + private String number; + + @Schema(description = "物品代码") + private String itemCode; + + @Schema(description = "备注", example = "随便") + private String remark; + + @Schema(description = "创建时间") + @DateTimeFormat(pattern = FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND) + private LocalDateTime[] createTime; + + @Schema(description = "地点ID", example = "8586") + private Long siteId; + + @Schema(description = "物品名称", example = "芋艿") + private String itemName; + + @Schema(description = "物品描述1") + private String itemDesc1; + + @Schema(description = "物品描述2") + private String itemDesc2; + + @Schema(description = "项目代码") + private String projectCode; + + @Schema(description = "计量单位") + private String uom; + + @Schema(description = "并发乐观锁") + private String concurrencyStamp; + + @Schema(description = "数量") + private BigDecimal qty; + +} diff --git a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/productscrapRequest/vo/RawscrapRequestDetailRespVO.java b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/productscrapRequest/vo/RawscrapRequestDetailRespVO.java new file mode 100644 index 00000000..eca2b863 --- /dev/null +++ b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/productscrapRequest/vo/RawscrapRequestDetailRespVO.java @@ -0,0 +1,22 @@ +package com.win.module.wms.controller.productscrapRequest.vo; + +import io.swagger.v3.oas.annotations.media.Schema; +import lombok.Data; +import lombok.EqualsAndHashCode; +import lombok.ToString; + +import java.time.LocalDateTime; + +@Schema(description = "管理后台 - 制品报废-原材料报废申请 Response VO") +@Data +@EqualsAndHashCode(callSuper = true) +@ToString(callSuper = true) +public class RawscrapRequestDetailRespVO extends RawscrapRequestDetailBaseVO { + + @Schema(description = "id", requiredMode = Schema.RequiredMode.REQUIRED, example = "19071") + private Long id; + + @Schema(description = "创建时间", requiredMode = Schema.RequiredMode.REQUIRED) + private LocalDateTime createTime; + +} diff --git a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/productscrapRequest/vo/RawscrapRequestDetailUpdateReqVO.java b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/productscrapRequest/vo/RawscrapRequestDetailUpdateReqVO.java new file mode 100644 index 00000000..f54632db --- /dev/null +++ b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/productscrapRequest/vo/RawscrapRequestDetailUpdateReqVO.java @@ -0,0 +1,20 @@ +package com.win.module.wms.controller.productscrapRequest.vo; + +import io.swagger.v3.oas.annotations.media.Schema; +import lombok.Data; +import lombok.EqualsAndHashCode; +import lombok.ToString; + +import javax.validation.constraints.NotNull; + +@Schema(description = "管理后台 - 制品报废-原材料报废申请更新 Request VO") +@Data +@EqualsAndHashCode(callSuper = true) +@ToString(callSuper = true) +public class RawscrapRequestDetailUpdateReqVO extends RawscrapRequestDetailBaseVO { + + @Schema(description = "id", requiredMode = Schema.RequiredMode.REQUIRED, example = "19071") + @NotNull(message = "id不能为空") + private Long id; + +} diff --git a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/convert/productscrapRecord/RawscrapRecordDetailConvert.java b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/convert/productscrapRecord/RawscrapRecordDetailConvert.java new file mode 100644 index 00000000..dec6f934 --- /dev/null +++ b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/convert/productscrapRecord/RawscrapRecordDetailConvert.java @@ -0,0 +1,37 @@ +package com.win.module.wms.convert.productscrapRecord; + +import com.win.framework.common.pojo.PageResult; +import com.win.module.wms.controller.productscrapRecord.vo.RawscrapRecordDetailCreateReqVO; +import com.win.module.wms.controller.productscrapRecord.vo.RawscrapRecordDetailExcelVO; +import com.win.module.wms.controller.productscrapRecord.vo.RawscrapRecordDetailRespVO; +import com.win.module.wms.controller.productscrapRecord.vo.RawscrapRecordDetailUpdateReqVO; +import com.win.module.wms.dal.dataobject.productscrapRecord.RawscrapRecordDetailDO; +import org.mapstruct.Mapper; +import org.mapstruct.factory.Mappers; + +import java.util.List; + + +/** + * 制品返修记录子 Convert + * + * @author 超级管理员 + */ +@Mapper +public interface RawscrapRecordDetailConvert { + + RawscrapRecordDetailConvert INSTANCE = Mappers.getMapper(RawscrapRecordDetailConvert.class); + + RawscrapRecordDetailDO convert(RawscrapRecordDetailCreateReqVO bean); + + RawscrapRecordDetailDO convert(RawscrapRecordDetailUpdateReqVO bean); + + RawscrapRecordDetailRespVO convert(RawscrapRecordDetailDO bean); + + List convertList(List list); + + PageResult convertPage(PageResult page); + + List convertList02(List list); + +} diff --git a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/convert/productscrapRequest/RawscrapRequestDetailConvert.java b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/convert/productscrapRequest/RawscrapRequestDetailConvert.java new file mode 100644 index 00000000..28d5e401 --- /dev/null +++ b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/convert/productscrapRequest/RawscrapRequestDetailConvert.java @@ -0,0 +1,37 @@ +package com.win.module.wms.convert.productscrapRequest; + +import com.win.framework.common.pojo.PageResult; +import com.win.module.wms.controller.productscrapRequest.vo.RawscrapRequestDetailCreateReqVO; +import com.win.module.wms.controller.productscrapRequest.vo.RawscrapRequestDetailExcelVO; +import com.win.module.wms.controller.productscrapRequest.vo.RawscrapRequestDetailRespVO; +import com.win.module.wms.controller.productscrapRequest.vo.RawscrapRequestDetailUpdateReqVO; +import com.win.module.wms.dal.dataobject.productscrapRequest.RawscrapRequestDetailDO; +import org.mapstruct.Mapper; +import org.mapstruct.factory.Mappers; + +import java.util.List; + + +/** + * 制品报废-原材料报废申请 Convert + * + * @author 超级管理员 + */ +@Mapper +public interface RawscrapRequestDetailConvert { + + RawscrapRequestDetailConvert INSTANCE = Mappers.getMapper(RawscrapRequestDetailConvert.class); + + RawscrapRequestDetailDO convert(RawscrapRequestDetailCreateReqVO bean); + + RawscrapRequestDetailDO convert(RawscrapRequestDetailUpdateReqVO bean); + + RawscrapRequestDetailRespVO convert(RawscrapRequestDetailDO bean); + + List convertList(List list); + + PageResult convertPage(PageResult page); + + List convertList02(List list); + +} diff --git a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/dal/dataobject/productrepairRecord/ProductrepairRecordDetailDO.java b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/dal/dataobject/productrepairRecord/ProductrepairRecordDetailDO.java index 17413e9e..07c5a1ae 100644 --- a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/dal/dataobject/productrepairRecord/ProductrepairRecordDetailDO.java +++ b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/dal/dataobject/productrepairRecord/ProductrepairRecordDetailDO.java @@ -147,4 +147,9 @@ public class ProductrepairRecordDetailDO extends BaseDO { */ private String jobDetailId; + /** + * BOM版本 + */ + private String bomVersion; + } diff --git a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/dal/dataobject/productrepairRequest/ProductrepairRequestDetailaDO.java b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/dal/dataobject/productrepairRequest/ProductrepairRequestDetailaDO.java index feaaff87..1199ba50 100644 --- a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/dal/dataobject/productrepairRequest/ProductrepairRequestDetailaDO.java +++ b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/dal/dataobject/productrepairRequest/ProductrepairRequestDetailaDO.java @@ -120,4 +120,9 @@ public class ProductrepairRequestDetailaDO extends BaseDO { */ private String concurrencyStamp; + /** + * BOM版本 + */ + private String bomVersion; + } diff --git a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/dal/dataobject/productscrapRecord/RawscrapRecordDetailDO.java b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/dal/dataobject/productscrapRecord/RawscrapRecordDetailDO.java new file mode 100644 index 00000000..173f9279 --- /dev/null +++ b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/dal/dataobject/productscrapRecord/RawscrapRecordDetailDO.java @@ -0,0 +1,106 @@ +package com.win.module.wms.dal.dataobject.productscrapRecord; + +import com.baomidou.mybatisplus.annotation.TableId; +import com.baomidou.mybatisplus.annotation.TableName; +import com.win.framework.mybatis.core.dataobject.BaseDO; +import lombok.*; + +import java.math.BigDecimal; + +/** + * 制品返修记录子 DO + * + * @author 超级管理员 + */ +@TableName("record_rawscrap_detail") +@Data +@EqualsAndHashCode(callSuper = true) +@ToString(callSuper = true) +@Builder +@NoArgsConstructor +@AllArgsConstructor +public class RawscrapRecordDetailDO extends BaseDO { + + /** + * id + */ + @TableId + private Long id; + /** + * 批次 + */ + private String batch; + /** + * 从库位代码 + */ + private String fromLocationCode; + /** + * 从库位组代码 + */ + private String fromLocationGroupCode; + /** + * 从库区代码 + */ + private String fromAreaCode; + /** + * 库存状态 + */ + private String inventoryStatus; + /** + * 包装号 + */ + private String packingNumber; + /** + * 主表ID + */ + private Long masterId; + /** + * 单据号 + */ + private String number; + /** + * 物品代码 + */ + private String itemCode; + /** + * 备注 + */ + private String remark; + /** + * 地点ID + */ + private String siteId; + /** + * 物品名称 + */ + private String itemName; + /** + * 物品描述1 + */ + private String itemDesc1; + /** + * 物品描述2 + */ + private String itemDesc2; + /** + * 项目代码 + */ + private String projectCode; + /** + * 计量单位 + */ + private String uom; + /** + * 代码 + */ + private String code; + /** + * 接口类型 + */ + 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/productscrapRequest/RawscrapRequestDetailDO.java b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/dal/dataobject/productscrapRequest/RawscrapRequestDetailDO.java new file mode 100644 index 00000000..c7caa71e --- /dev/null +++ b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/dal/dataobject/productscrapRequest/RawscrapRequestDetailDO.java @@ -0,0 +1,94 @@ +package com.win.module.wms.dal.dataobject.productscrapRequest; + +import com.baomidou.mybatisplus.annotation.TableId; +import com.baomidou.mybatisplus.annotation.TableName; +import com.win.framework.mybatis.core.dataobject.BaseDO; +import lombok.*; + +import java.math.BigDecimal; + +/** + * 制品报废-原材料报废申请 DO + * + * @author 超级管理员 + */ +@TableName("request_rawscrap_detail") +@Data +@EqualsAndHashCode(callSuper = true) +@ToString(callSuper = true) +@Builder +@NoArgsConstructor +@AllArgsConstructor +public class RawscrapRequestDetailDO extends BaseDO { + + /** + * id + */ + @TableId + private Long id; + /** + * 库存状态 + */ + private String inventoryStatus; + /** + * 包装号 + */ + private String packingNumber; + /** + * 批次 + */ + private String batch; + /** + * 从库位代码 + */ + private String fromLocationCode; + /** + * 主表ID + */ + private Long masterId; + /** + * 单据号 + */ + private String number; + /** + * 物品代码 + */ + private String itemCode; + /** + * 备注 + */ + private String remark; + /** + * 地点ID + */ + private Long siteId; + /** + * 物品名称 + */ + private String itemName; + /** + * 物品描述1 + */ + private String itemDesc1; + /** + * 物品描述2 + */ + private String itemDesc2; + /** + * 项目代码 + */ + private String projectCode; + /** + * 计量单位 + */ + private String uom; + /** + * 并发乐观锁 + */ + 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/productscrapRecord/RawscrapRecordDetailMapper.java b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/dal/mysql/productscrapRecord/RawscrapRecordDetailMapper.java new file mode 100644 index 00000000..8d8f88d8 --- /dev/null +++ b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/dal/mysql/productscrapRecord/RawscrapRecordDetailMapper.java @@ -0,0 +1,72 @@ +package com.win.module.wms.dal.mysql.productscrapRecord; + + +import com.win.framework.common.pojo.PageResult; +import com.win.framework.mybatis.core.mapper.BaseMapperX; +import com.win.framework.mybatis.core.query.LambdaQueryWrapperX; +import com.win.module.wms.controller.productscrapRecord.vo.RawscrapRecordDetailExportReqVO; +import com.win.module.wms.controller.productscrapRecord.vo.RawscrapRecordDetailPageReqVO; +import com.win.module.wms.dal.dataobject.productscrapRecord.RawscrapRecordDetailDO; +import org.apache.ibatis.annotations.Mapper; + +import java.util.List; + +/** + * 制品返修记录子 Mapper + * + * @author 超级管理员 + */ +@Mapper +public interface RawscrapRecordDetailMapper extends BaseMapperX { + + default PageResult selectPage(RawscrapRecordDetailPageReqVO reqVO) { + return selectPage(reqVO, new LambdaQueryWrapperX() + .eqIfPresent(RawscrapRecordDetailDO::getBatch, reqVO.getBatch()) + .eqIfPresent(RawscrapRecordDetailDO::getFromLocationCode, reqVO.getFromLocationCode()) + .eqIfPresent(RawscrapRecordDetailDO::getFromLocationGroupCode, reqVO.getFromLocationGroupCode()) + .eqIfPresent(RawscrapRecordDetailDO::getFromAreaCode, reqVO.getFromAreaCode()) + .eqIfPresent(RawscrapRecordDetailDO::getInventoryStatus, reqVO.getInventoryStatus()) + .eqIfPresent(RawscrapRecordDetailDO::getPackingNumber, reqVO.getPackingNumber()) + .eqIfPresent(RawscrapRecordDetailDO::getMasterId, reqVO.getMasterId()) + .eqIfPresent(RawscrapRecordDetailDO::getNumber, reqVO.getNumber()) + .eqIfPresent(RawscrapRecordDetailDO::getItemCode, reqVO.getItemCode()) + .eqIfPresent(RawscrapRecordDetailDO::getRemark, reqVO.getRemark()) + .betweenIfPresent(RawscrapRecordDetailDO::getCreateTime, reqVO.getCreateTime()) + .eqIfPresent(RawscrapRecordDetailDO::getSiteId, reqVO.getSiteId()) + .likeIfPresent(RawscrapRecordDetailDO::getItemName, reqVO.getItemName()) + .eqIfPresent(RawscrapRecordDetailDO::getItemDesc1, reqVO.getItemDesc1()) + .eqIfPresent(RawscrapRecordDetailDO::getItemDesc2, reqVO.getItemDesc2()) + .eqIfPresent(RawscrapRecordDetailDO::getProjectCode, reqVO.getProjectCode()) + .eqIfPresent(RawscrapRecordDetailDO::getUom, reqVO.getUom()) + .eqIfPresent(RawscrapRecordDetailDO::getCode, reqVO.getCode()) + .eqIfPresent(RawscrapRecordDetailDO::getInterfaceType, reqVO.getInterfaceType()) + .eqIfPresent(RawscrapRecordDetailDO::getQty, reqVO.getQty()) + .orderByDesc(RawscrapRecordDetailDO::getId)); + } + + default List selectList(RawscrapRecordDetailExportReqVO reqVO) { + return selectList(new LambdaQueryWrapperX() + .eqIfPresent(RawscrapRecordDetailDO::getBatch, reqVO.getBatch()) + .eqIfPresent(RawscrapRecordDetailDO::getFromLocationCode, reqVO.getFromLocationCode()) + .eqIfPresent(RawscrapRecordDetailDO::getFromLocationGroupCode, reqVO.getFromLocationGroupCode()) + .eqIfPresent(RawscrapRecordDetailDO::getFromAreaCode, reqVO.getFromAreaCode()) + .eqIfPresent(RawscrapRecordDetailDO::getInventoryStatus, reqVO.getInventoryStatus()) + .eqIfPresent(RawscrapRecordDetailDO::getPackingNumber, reqVO.getPackingNumber()) + .eqIfPresent(RawscrapRecordDetailDO::getMasterId, reqVO.getMasterId()) + .eqIfPresent(RawscrapRecordDetailDO::getNumber, reqVO.getNumber()) + .eqIfPresent(RawscrapRecordDetailDO::getItemCode, reqVO.getItemCode()) + .eqIfPresent(RawscrapRecordDetailDO::getRemark, reqVO.getRemark()) + .betweenIfPresent(RawscrapRecordDetailDO::getCreateTime, reqVO.getCreateTime()) + .eqIfPresent(RawscrapRecordDetailDO::getSiteId, reqVO.getSiteId()) + .likeIfPresent(RawscrapRecordDetailDO::getItemName, reqVO.getItemName()) + .eqIfPresent(RawscrapRecordDetailDO::getItemDesc1, reqVO.getItemDesc1()) + .eqIfPresent(RawscrapRecordDetailDO::getItemDesc2, reqVO.getItemDesc2()) + .eqIfPresent(RawscrapRecordDetailDO::getProjectCode, reqVO.getProjectCode()) + .eqIfPresent(RawscrapRecordDetailDO::getUom, reqVO.getUom()) + .eqIfPresent(RawscrapRecordDetailDO::getCode, reqVO.getCode()) + .eqIfPresent(RawscrapRecordDetailDO::getInterfaceType, reqVO.getInterfaceType()) + .eqIfPresent(RawscrapRecordDetailDO::getQty, reqVO.getQty()) + .orderByDesc(RawscrapRecordDetailDO::getId)); + } + +} diff --git a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/dal/mysql/productscrapRequest/RawscrapRequestDetailMapper.java b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/dal/mysql/productscrapRequest/RawscrapRequestDetailMapper.java new file mode 100644 index 00000000..7d5eb702 --- /dev/null +++ b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/dal/mysql/productscrapRequest/RawscrapRequestDetailMapper.java @@ -0,0 +1,66 @@ +package com.win.module.wms.dal.mysql.productscrapRequest; + + +import com.win.framework.common.pojo.PageResult; +import com.win.framework.mybatis.core.mapper.BaseMapperX; +import com.win.framework.mybatis.core.query.LambdaQueryWrapperX; +import com.win.module.wms.controller.productscrapRequest.vo.RawscrapRequestDetailExportReqVO; +import com.win.module.wms.controller.productscrapRequest.vo.RawscrapRequestDetailPageReqVO; +import com.win.module.wms.dal.dataobject.productscrapRequest.RawscrapRequestDetailDO; +import org.apache.ibatis.annotations.Mapper; + +import java.util.List; + +/** + * 制品报废-原材料报废申请 Mapper + * + * @author 超级管理员 + */ +@Mapper +public interface RawscrapRequestDetailMapper extends BaseMapperX { + + default PageResult selectPage(RawscrapRequestDetailPageReqVO reqVO) { + return selectPage(reqVO, new LambdaQueryWrapperX() + .eqIfPresent(RawscrapRequestDetailDO::getInventoryStatus, reqVO.getInventoryStatus()) + .eqIfPresent(RawscrapRequestDetailDO::getPackingNumber, reqVO.getPackingNumber()) + .eqIfPresent(RawscrapRequestDetailDO::getBatch, reqVO.getBatch()) + .eqIfPresent(RawscrapRequestDetailDO::getFromLocationCode, reqVO.getFromLocationCode()) + .eqIfPresent(RawscrapRequestDetailDO::getMasterId, reqVO.getMasterId()) + .eqIfPresent(RawscrapRequestDetailDO::getNumber, reqVO.getNumber()) + .eqIfPresent(RawscrapRequestDetailDO::getItemCode, reqVO.getItemCode()) + .eqIfPresent(RawscrapRequestDetailDO::getRemark, reqVO.getRemark()) + .betweenIfPresent(RawscrapRequestDetailDO::getCreateTime, reqVO.getCreateTime()) + .eqIfPresent(RawscrapRequestDetailDO::getSiteId, reqVO.getSiteId()) + .likeIfPresent(RawscrapRequestDetailDO::getItemName, reqVO.getItemName()) + .eqIfPresent(RawscrapRequestDetailDO::getItemDesc1, reqVO.getItemDesc1()) + .eqIfPresent(RawscrapRequestDetailDO::getItemDesc2, reqVO.getItemDesc2()) + .eqIfPresent(RawscrapRequestDetailDO::getProjectCode, reqVO.getProjectCode()) + .eqIfPresent(RawscrapRequestDetailDO::getUom, reqVO.getUom()) + .eqIfPresent(RawscrapRequestDetailDO::getConcurrencyStamp, reqVO.getConcurrencyStamp()) + .eqIfPresent(RawscrapRequestDetailDO::getQty, reqVO.getQty()) + .orderByDesc(RawscrapRequestDetailDO::getId)); + } + + default List selectList(RawscrapRequestDetailExportReqVO reqVO) { + return selectList(new LambdaQueryWrapperX() + .eqIfPresent(RawscrapRequestDetailDO::getInventoryStatus, reqVO.getInventoryStatus()) + .eqIfPresent(RawscrapRequestDetailDO::getPackingNumber, reqVO.getPackingNumber()) + .eqIfPresent(RawscrapRequestDetailDO::getBatch, reqVO.getBatch()) + .eqIfPresent(RawscrapRequestDetailDO::getFromLocationCode, reqVO.getFromLocationCode()) + .eqIfPresent(RawscrapRequestDetailDO::getMasterId, reqVO.getMasterId()) + .eqIfPresent(RawscrapRequestDetailDO::getNumber, reqVO.getNumber()) + .eqIfPresent(RawscrapRequestDetailDO::getItemCode, reqVO.getItemCode()) + .eqIfPresent(RawscrapRequestDetailDO::getRemark, reqVO.getRemark()) + .betweenIfPresent(RawscrapRequestDetailDO::getCreateTime, reqVO.getCreateTime()) + .eqIfPresent(RawscrapRequestDetailDO::getSiteId, reqVO.getSiteId()) + .likeIfPresent(RawscrapRequestDetailDO::getItemName, reqVO.getItemName()) + .eqIfPresent(RawscrapRequestDetailDO::getItemDesc1, reqVO.getItemDesc1()) + .eqIfPresent(RawscrapRequestDetailDO::getItemDesc2, reqVO.getItemDesc2()) + .eqIfPresent(RawscrapRequestDetailDO::getProjectCode, reqVO.getProjectCode()) + .eqIfPresent(RawscrapRequestDetailDO::getUom, reqVO.getUom()) + .eqIfPresent(RawscrapRequestDetailDO::getConcurrencyStamp, reqVO.getConcurrencyStamp()) + .eqIfPresent(RawscrapRequestDetailDO::getQty, reqVO.getQty()) + .orderByDesc(RawscrapRequestDetailDO::getId)); + } + +} 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 934ad660..28986e03 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 @@ -510,7 +510,7 @@ public class ProductrepairRequestMainServiceImpl implements ProductrepairRequest @Override public PageResult getBomInfoPage(ProductrepairRequestDetailaPageReqVO pageVO) { IPage myPage = MyBatisUtils.buildPage(pageVO); - List> list = jobUtils.bomDismantleList(pageVO.getItemCode(),""); + List> list = jobUtils.bomDismantleList(pageVO.getItemCode(),pageVO.getBomVersion()); List resultList = new ArrayList<>(); Map detailbDOMap = new HashMap<>(); if(pageVO.getMasterId() != null){ diff --git a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/productscrapRecord/RawscrapRecordDetailService.java b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/productscrapRecord/RawscrapRecordDetailService.java new file mode 100644 index 00000000..ae31a685 --- /dev/null +++ b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/productscrapRecord/RawscrapRecordDetailService.java @@ -0,0 +1,81 @@ +package com.win.module.wms.service.productscrapRecord; + +import com.win.framework.common.pojo.PageResult; +import com.win.module.wms.controller.productscrapRecord.vo.*; +import com.win.module.wms.dal.dataobject.productscrapRecord.RawscrapRecordDetailDO; + +import java.util.*; +import javax.validation.*; + + +/** + * 制品返修记录子 Service 接口 + * + * @author 超级管理员 + */ +public interface RawscrapRecordDetailService { + + /** + * 创建制品返修记录子 + * + * @param createReqVO 创建信息 + * @return 编号 + */ + Long createRawscrapRecordDetail(@Valid RawscrapRecordDetailCreateReqVO createReqVO); + + /** + * 更新制品返修记录子 + * + * @param updateReqVO 更新信息 + */ + Integer updateRawscrapRecordDetail(@Valid RawscrapRecordDetailUpdateReqVO updateReqVO); + + /** + * 删除制品返修记录子 + * + * @param id 编号 + */ + Integer deleteRawscrapRecordDetail(Long id); + + /** + * 获得制品返修记录子 + * + * @param id 编号 + * @return 制品返修记录子 + */ + RawscrapRecordDetailDO getRawscrapRecordDetail(Long id); + + /** + * 获得制品返修记录子列表 + * + * @param ids 编号 + * @return 制品返修记录子列表 + */ + List getRawscrapRecordDetailList(Collection ids); + + /** + * 获得制品返修记录子分页 + * + * @param pageReqVO 分页查询 + * @return 制品返修记录子分页 + */ + PageResult getRawscrapRecordDetailPage(RawscrapRecordDetailPageReqVO pageReqVO); + + /** + * 获得制品返修记录子列表, 用于 Excel 导出 + * + * @param exportReqVO 查询条件 + * @return 制品返修记录子列表 + */ + List getRawscrapRecordDetailList(RawscrapRecordDetailExportReqVO exportReqVO); + + /** + * 导入制品返修记录子主信息 + * + * @param datas 导入制品返修记录子主信息列表 + * @param mode 导入模式1更新2追加3覆盖 + * @param updatePart 是否支持更新 + * @return 导入结果 + */ + public List importRawscrapRecordDetailList(List datas, Integer mode, boolean updatePart); +} diff --git a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/productscrapRecord/RawscrapRecordDetailServiceImpl.java b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/productscrapRecord/RawscrapRecordDetailServiceImpl.java new file mode 100644 index 00000000..cb9dd50d --- /dev/null +++ b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/productscrapRecord/RawscrapRecordDetailServiceImpl.java @@ -0,0 +1,109 @@ +package com.win.module.wms.service.productscrapRecord; + +import cn.hutool.core.collection.CollUtil; +import com.win.framework.common.pojo.PageResult; +import com.win.module.wms.controller.productscrapRecord.vo.*; +import com.win.module.wms.convert.productscrapRecord.RawscrapRecordDetailConvert; +import com.win.module.wms.dal.dataobject.productscrapRecord.RawscrapRecordDetailDO; +import com.win.module.wms.dal.mysql.productscrapRecord.RawscrapRecordDetailMapper; +import org.springframework.stereotype.Service; +import org.springframework.validation.annotation.Validated; + +import javax.annotation.Resource; +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.RAWSCRAP_RECORD_DETAIL_IMPORT_LIST_IS_EMPTY; +import static com.win.module.wms.enums.ErrorCodeConstants.RAWSCRAP_RECORD_DETAIL_NOT_EXISTS; + +/** + * 制品返修记录子 Service 实现类 + * + * @author 超级管理员 + */ +@Service +@Validated +public class RawscrapRecordDetailServiceImpl implements RawscrapRecordDetailService { + + @Resource + private RawscrapRecordDetailMapper rawscrapRecordDetailMapper; + + @Override + public Long createRawscrapRecordDetail(RawscrapRecordDetailCreateReqVO createReqVO) { + // 插入 + RawscrapRecordDetailDO rawscrapRecordDetail = RawscrapRecordDetailConvert.INSTANCE.convert(createReqVO); + rawscrapRecordDetailMapper.insert(rawscrapRecordDetail); + // 返回 + return rawscrapRecordDetail.getId(); + } + + @Override + public Integer updateRawscrapRecordDetail(RawscrapRecordDetailUpdateReqVO updateReqVO) { + // 校验存在 + validateRawscrapRecordDetailExists(updateReqVO.getId()); + // 更新 + RawscrapRecordDetailDO updateObj = RawscrapRecordDetailConvert.INSTANCE.convert(updateReqVO); + return rawscrapRecordDetailMapper.updateById(updateObj); + } + + @Override + public Integer deleteRawscrapRecordDetail(Long id) { + // 校验存在 + validateRawscrapRecordDetailExists(id); + // 删除 + return rawscrapRecordDetailMapper.deleteById(id); + } + + private void validateRawscrapRecordDetailExists(Long id) { + if (rawscrapRecordDetailMapper.selectById(id) == null) { + throw exception(RAWSCRAP_RECORD_DETAIL_NOT_EXISTS); + } + } + + @Override + public RawscrapRecordDetailDO getRawscrapRecordDetail(Long id) { + return rawscrapRecordDetailMapper.selectById(id); + } + + @Override + public List getRawscrapRecordDetailList(Collection ids) { + return rawscrapRecordDetailMapper.selectBatchIds(ids); + } + + @Override + public PageResult getRawscrapRecordDetailPage(RawscrapRecordDetailPageReqVO pageReqVO) { + return rawscrapRecordDetailMapper.selectPage(pageReqVO); + } + + @Override + public List getRawscrapRecordDetailList(RawscrapRecordDetailExportReqVO exportReqVO) { + return rawscrapRecordDetailMapper.selectList(exportReqVO); + } + + @Override + public List importRawscrapRecordDetailList(List datas, Integer mode, boolean updatePart) { + if (CollUtil.isEmpty(datas)) { + throw exception(RAWSCRAP_RECORD_DETAIL_IMPORT_LIST_IS_EMPTY); + } + + List errorList = new ArrayList<>(); +// datas.forEach(item -> { +// if(errorList == null){ +// // 判断如果不存在,在进行插入 +// RawscrapRecordDetailDO obj = rawscrapRecordDetailMapper.selectByCode(item.getCode()); +// if (obj == null&& mode != 3) { +// rawscrapRecordDetailMapper.insert(RawscrapRecordDetailConvert.INSTANCE.convert(item)); +// } +// else if (obj != null && mode != 2) {// 如果存在,判断是否允许更新 +// RawscrapRecordDetailDO rawscrapRecordDetailDO = RawscrapRecordDetailConvert.INSTANCE.convert(item); +// rawscrapRecordDetailDO.setId(obj.getId()); +// rawscrapRecordDetailMapper.updateById(obj); +// } +// } +// }); + + return errorList; + } +} diff --git a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/productscrapRequest/RawscrapRequestDetailService.java b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/productscrapRequest/RawscrapRequestDetailService.java new file mode 100644 index 00000000..eafec8eb --- /dev/null +++ b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/productscrapRequest/RawscrapRequestDetailService.java @@ -0,0 +1,81 @@ +package com.win.module.wms.service.productscrapRequest; + +import com.win.framework.common.pojo.PageResult; +import com.win.module.wms.controller.productscrapRequest.vo.*; +import com.win.module.wms.dal.dataobject.productscrapRequest.RawscrapRequestDetailDO; + +import javax.validation.Valid; +import java.util.Collection; +import java.util.List; + +/** + * 制品报废-原材料报废申请 Service 接口 + * + * @author 超级管理员 + */ +public interface RawscrapRequestDetailService { + + /** + * 创建制品报废-原材料报废申请 + * + * @param createReqVO 创建信息 + * @return 编号 + */ + Long createRawscrapRequestDetail(@Valid RawscrapRequestDetailCreateReqVO createReqVO); + + /** + * 更新制品报废-原材料报废申请 + * + * @param updateReqVO 更新信息 + */ + Integer updateRawscrapRequestDetail(@Valid RawscrapRequestDetailUpdateReqVO updateReqVO); + + /** + * 删除制品报废-原材料报废申请 + * + * @param id 编号 + */ + Integer deleteRawscrapRequestDetail(Long id); + + /** + * 获得制品报废-原材料报废申请 + * + * @param id 编号 + * @return 制品报废-原材料报废申请 + */ + RawscrapRequestDetailDO getRawscrapRequestDetail(Long id); + + /** + * 获得制品报废-原材料报废申请列表 + * + * @param ids 编号 + * @return 制品报废-原材料报废申请列表 + */ + List getRawscrapRequestDetailList(Collection ids); + + /** + * 获得制品报废-原材料报废申请分页 + * + * @param pageReqVO 分页查询 + * @return 制品报废-原材料报废申请分页 + */ + PageResult getRawscrapRequestDetailPage(RawscrapRequestDetailPageReqVO pageReqVO); + + /** + * 获得制品报废-原材料报废申请列表, 用于 Excel 导出 + * + * @param exportReqVO 查询条件 + * @return 制品报废-原材料报废申请列表 + */ + List getRawscrapRequestDetailList(RawscrapRequestDetailExportReqVO exportReqVO); + + /** + * 导入制品报废-原材料报废申请主信息 + * + * @param datas 导入制品报废-原材料报废申请主信息列表 + * @param mode 导入模式1更新2追加3覆盖 + * @param updatePart 是否支持更新 + * @return 导入结果 + */ + public List importRawscrapRequestDetailList(List datas, Integer mode, boolean updatePart); +} diff --git a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/productscrapRequest/RawscrapRequestDetailServiceImpl.java b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/productscrapRequest/RawscrapRequestDetailServiceImpl.java new file mode 100644 index 00000000..4edcfc70 --- /dev/null +++ b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/productscrapRequest/RawscrapRequestDetailServiceImpl.java @@ -0,0 +1,109 @@ +package com.win.module.wms.service.productscrapRequest; + +import cn.hutool.core.collection.CollUtil; +import com.win.framework.common.pojo.PageResult; +import com.win.module.wms.controller.productscrapRequest.vo.*; +import com.win.module.wms.convert.productscrapRequest.RawscrapRequestDetailConvert; +import com.win.module.wms.dal.dataobject.productscrapRequest.RawscrapRequestDetailDO; +import com.win.module.wms.dal.mysql.productscrapRequest.RawscrapRequestDetailMapper; +import org.springframework.stereotype.Service; +import org.springframework.validation.annotation.Validated; + +import javax.annotation.Resource; +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.RAWSCRAP_REQUEST_DETAIL_IMPORT_LIST_IS_EMPTY; +import static com.win.module.wms.enums.ErrorCodeConstants.RAWSCRAP_REQUEST_DETAIL_NOT_EXISTS; + +/** + * 制品报废-原材料报废申请 Service 实现类 + * + * @author 超级管理员 + */ +@Service +@Validated +public class RawscrapRequestDetailServiceImpl implements RawscrapRequestDetailService { + + @Resource + private RawscrapRequestDetailMapper rawscrapRequestDetailMapper; + + @Override + public Long createRawscrapRequestDetail(RawscrapRequestDetailCreateReqVO createReqVO) { + // 插入 + RawscrapRequestDetailDO rawscrapRequestDetail = RawscrapRequestDetailConvert.INSTANCE.convert(createReqVO); + rawscrapRequestDetailMapper.insert(rawscrapRequestDetail); + // 返回 + return rawscrapRequestDetail.getId(); + } + + @Override + public Integer updateRawscrapRequestDetail(RawscrapRequestDetailUpdateReqVO updateReqVO) { + // 校验存在 + validateRawscrapRequestDetailExists(updateReqVO.getId()); + // 更新 + RawscrapRequestDetailDO updateObj = RawscrapRequestDetailConvert.INSTANCE.convert(updateReqVO); + return rawscrapRequestDetailMapper.updateById(updateObj); + } + + @Override + public Integer deleteRawscrapRequestDetail(Long id) { + // 校验存在 + validateRawscrapRequestDetailExists(id); + // 删除 + return rawscrapRequestDetailMapper.deleteById(id); + } + + private void validateRawscrapRequestDetailExists(Long id) { + if (rawscrapRequestDetailMapper.selectById(id) == null) { + throw exception(RAWSCRAP_REQUEST_DETAIL_NOT_EXISTS); + } + } + + @Override + public RawscrapRequestDetailDO getRawscrapRequestDetail(Long id) { + return rawscrapRequestDetailMapper.selectById(id); + } + + @Override + public List getRawscrapRequestDetailList(Collection ids) { + return rawscrapRequestDetailMapper.selectBatchIds(ids); + } + + @Override + public PageResult getRawscrapRequestDetailPage(RawscrapRequestDetailPageReqVO pageReqVO) { + return rawscrapRequestDetailMapper.selectPage(pageReqVO); + } + + @Override + public List getRawscrapRequestDetailList(RawscrapRequestDetailExportReqVO exportReqVO) { + return rawscrapRequestDetailMapper.selectList(exportReqVO); + } + + @Override + public List importRawscrapRequestDetailList(List datas, Integer mode, boolean updatePart) { + if (CollUtil.isEmpty(datas)) { + throw exception(RAWSCRAP_REQUEST_DETAIL_IMPORT_LIST_IS_EMPTY); + } + + List errorList = new ArrayList<>(); +// datas.forEach(item -> { +// if(errorList == null){ +// // 判断如果不存在,在进行插入 +// RawscrapRequestDetailDO obj = rawscrapRequestDetailMapper.selectByCode(item.getCode()); +// if (obj == null&& mode != 3) { +// rawscrapRequestDetailMapper.insert(RawscrapRequestDetailConvert.INSTANCE.convert(item)); +// } +// else if (obj != null && mode != 2) {// 如果存在,判断是否允许更新 +// RawscrapRequestDetailDO rawscrapRequestDetailDO = RawscrapRequestDetailConvert.INSTANCE.convert(item); +// rawscrapRequestDetailDO.setId(obj.getId()); +// rawscrapRequestDetailMapper.updateById(obj); +// } +// } +// }); + + return errorList; + } +} diff --git a/win-module-wms/win-module-wms-biz/src/main/resources/mapper/productscrapRecord/RawscrapRecordDetailMapper.xml b/win-module-wms/win-module-wms-biz/src/main/resources/mapper/productscrapRecord/RawscrapRecordDetailMapper.xml new file mode 100644 index 00000000..97f21cfc --- /dev/null +++ b/win-module-wms/win-module-wms-biz/src/main/resources/mapper/productscrapRecord/RawscrapRecordDetailMapper.xml @@ -0,0 +1,12 @@ + + + + + + + diff --git a/win-module-wms/win-module-wms-biz/src/main/resources/mapper/productscrapRequest/RawscrapRequestDetailMapper.xml b/win-module-wms/win-module-wms-biz/src/main/resources/mapper/productscrapRequest/RawscrapRequestDetailMapper.xml new file mode 100644 index 00000000..9f154721 --- /dev/null +++ b/win-module-wms/win-module-wms-biz/src/main/resources/mapper/productscrapRequest/RawscrapRequestDetailMapper.xml @@ -0,0 +1,12 @@ + + + + + + +