diff --git a/win-module-system/win-module-system-api/src/main/java/com/win/module/system/enums/serialNumber/RuleCodeEnum.java b/win-module-system/win-module-system-api/src/main/java/com/win/module/system/enums/serialNumber/RuleCodeEnum.java index 092301d3..46a1acad 100644 --- a/win-module-system/win-module-system-api/src/main/java/com/win/module/system/enums/serialNumber/RuleCodeEnum.java +++ b/win-module-system/win-module-system-api/src/main/java/com/win/module/system/enums/serialNumber/RuleCodeEnum.java @@ -143,7 +143,7 @@ public enum RuleCodeEnum { CUSTOMER_DELIVER_NUMBER("CustomerDeliverNumber"), // 客户发货单号 LABEL_NUMBER("LabelNumber"), // 标签流水号 TRANSFER_RECEIPT_REQUEST("TransferReceiptRequest"),// 调拨接收申请 - + CONTAINER_INIT_RECORD(""), // 器具初始化记录 ; private final String code; diff --git a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/container/vo/ContainerMainBaseVO.java b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/container/vo/ContainerMainBaseVO.java index 4bba2a0b..ea940114 100644 --- a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/container/vo/ContainerMainBaseVO.java +++ b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/container/vo/ContainerMainBaseVO.java @@ -38,4 +38,7 @@ public class ContainerMainBaseVO { @Schema(description = "乐观锁") private Integer concurrencyStamp; + @Schema(description = "仓库代码") + private String warehouseCode; + } diff --git a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/containerinit/ContainerInitRecordDetailController.java b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/containerinit/ContainerInitRecordDetailController.java new file mode 100644 index 00000000..7ae5cc33 --- /dev/null +++ b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/containerinit/ContainerInitRecordDetailController.java @@ -0,0 +1,135 @@ +package com.win.module.wms.controller.containerinit; + +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.containerinit.vo.*; +import com.win.module.wms.convert.containerinit.ContainerInitRecordDetailConvert; +import com.win.module.wms.dal.dataobject.containerinit.ContainerInitRecordDetailDO; +import com.win.module.wms.service.containerinit.ContainerInitRecordDetailService; +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/container-init-record-detail") +@Validated +public class ContainerInitRecordDetailController { + + @Resource + private ContainerInitRecordDetailService containerInitRecordDetailService; + + @PostMapping("/create") + @Operation(summary = "创建器具初始化记录子") + @PreAuthorize("@ss.hasPermission('wms:container-init-record-detail:create')") + public CommonResult createContainerInitRecordDetail(@Valid @RequestBody ContainerInitRecordDetailCreateReqVO createReqVO) { + return success(containerInitRecordDetailService.createContainerInitRecordDetail(createReqVO)); + } + + @PutMapping("/update") + @Operation(summary = "更新器具初始化记录子") + @PreAuthorize("@ss.hasPermission('wms:container-init-record-detail:update')") + public CommonResult updateContainerInitRecordDetail(@Valid @RequestBody ContainerInitRecordDetailUpdateReqVO updateReqVO) { + int result = containerInitRecordDetailService.updateContainerInitRecordDetail(updateReqVO); + return success(result > 0); + } + + @DeleteMapping("/delete") + @Operation(summary = "删除器具初始化记录子") + @Parameter(name = "id", description = "编号", required = true) + @PreAuthorize("@ss.hasPermission('wms:container-init-record-detail:delete')") + public CommonResult deleteContainerInitRecordDetail(@RequestParam("id") Long id) { + int result = containerInitRecordDetailService.deleteContainerInitRecordDetail(id); + return success(result > 0); + } + + @GetMapping("/get") + @Operation(summary = "获得器具初始化记录子") + @Parameter(name = "id", description = "编号", required = true, example = "1024") + @PreAuthorize("@ss.hasPermission('wms:container-init-record-detail:query')") + public CommonResult getContainerInitRecordDetail(@RequestParam("id") Long id) { + ContainerInitRecordDetailDO containerInitRecordDetail = containerInitRecordDetailService.getContainerInitRecordDetail(id); + return success(ContainerInitRecordDetailConvert.INSTANCE.convert(containerInitRecordDetail)); + } + + @GetMapping("/list") + @Operation(summary = "获得器具初始化记录子列表") + @Parameter(name = "ids", description = "编号列表", required = true, example = "1024,2048") + @PreAuthorize("@ss.hasPermission('wms:container-init-record-detail:query')") + public CommonResult> getContainerInitRecordDetailList(@RequestParam("ids") Collection ids) { + List list = containerInitRecordDetailService.getContainerInitRecordDetailList(ids); + return success(ContainerInitRecordDetailConvert.INSTANCE.convertList(list)); + } + + @GetMapping("/page") + @Operation(summary = "获得器具初始化记录子分页") + @PreAuthorize("@ss.hasPermission('wms:container-init-record-detail:query')") + public CommonResult> getContainerInitRecordDetailPage(@Valid ContainerInitRecordDetailPageReqVO pageVO) { + PageResult pageResult = containerInitRecordDetailService.getContainerInitRecordDetailPage(pageVO); + return success(ContainerInitRecordDetailConvert.INSTANCE.convertPage(pageResult)); + } + + @GetMapping("/export-excel") + @Operation(summary = "导出器具初始化记录子 Excel") + @PreAuthorize("@ss.hasPermission('wms:container-init-record-detail:export')") + @OperateLog(type = EXPORT) + public void exportContainerInitRecordDetailExcel(@Valid ContainerInitRecordDetailExportReqVO exportReqVO, + HttpServletResponse response) throws IOException { + List list = containerInitRecordDetailService.getContainerInitRecordDetailList(exportReqVO); + // 导出 Excel + List datas = ContainerInitRecordDetailConvert.INSTANCE.convertList02(list); + ExcelUtils.write(response, "器具初始化记录子.xls", "数据", ContainerInitRecordDetailExcelVO.class, datas); + } + + @GetMapping("/get-import-template") + @Operation(summary = "获得导入器具初始化记录子模板") + public void importTemplate(HttpServletResponse response) throws IOException { + List list = Arrays.asList(); + // 输出 + ExcelUtils.write(response, "器具初始化记录子基本信息导入模板.xls", "器具初始化记录子基本信息列表", ContainerInitRecordDetailExcelVO.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:container-init-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, ContainerInitRecordDetailExcelVO.class); + List errorList = containerInitRecordDetailService.importContainerInitRecordDetailList(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/containerinit/ContainerInitRecordMainController.java b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/containerinit/ContainerInitRecordMainController.java new file mode 100644 index 00000000..6ca9df21 --- /dev/null +++ b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/containerinit/ContainerInitRecordMainController.java @@ -0,0 +1,134 @@ +package com.win.module.wms.controller.containerinit; + +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.containerinit.vo.*; +import com.win.module.wms.convert.containerinit.ContainerInitRecordMainConvert; +import com.win.module.wms.dal.dataobject.containerinit.ContainerInitRecordMainDO; +import com.win.module.wms.service.containerinit.ContainerInitRecordMainService; +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/container-init-record-main") +@Validated +public class ContainerInitRecordMainController { + + @Resource + private ContainerInitRecordMainService containerInitRecordMainService; + + @PostMapping("/create") + @Operation(summary = "创建器具初始化记录主") + @PreAuthorize("@ss.hasPermission('wms:container-init-record-main:create')") + public CommonResult createContainerInitRecordMain(@Valid @RequestBody ContainerInitRecordMainCreateReqVO createReqVO) { + return success(containerInitRecordMainService.createContainerInitRecordMain(createReqVO)); + } + + @PutMapping("/update") + @Operation(summary = "更新器具初始化记录主") + @PreAuthorize("@ss.hasPermission('wms:container-init-record-main:update')") + public CommonResult updateContainerInitRecordMain(@Valid @RequestBody ContainerInitRecordMainUpdateReqVO updateReqVO) { + int result = containerInitRecordMainService.updateContainerInitRecordMain(updateReqVO); + return success(result > 0); + } + + @DeleteMapping("/delete") + @Operation(summary = "删除器具初始化记录主") + @Parameter(name = "id", description = "编号", required = true) + @PreAuthorize("@ss.hasPermission('wms:container-init-record-main:delete')") + public CommonResult deleteContainerInitRecordMain(@RequestParam("id") Long id) { + int result = containerInitRecordMainService.deleteContainerInitRecordMain(id); + return success(result > 0); + } + + @GetMapping("/get") + @Operation(summary = "获得器具初始化记录主") + @Parameter(name = "id", description = "编号", required = true, example = "1024") + @PreAuthorize("@ss.hasPermission('wms:container-init-record-main:query')") + public CommonResult getContainerInitRecordMain(@RequestParam("id") Long id) { + ContainerInitRecordMainDO containerInitRecordMain = containerInitRecordMainService.getContainerInitRecordMain(id); + return success(ContainerInitRecordMainConvert.INSTANCE.convert(containerInitRecordMain)); + } + + @GetMapping("/list") + @Operation(summary = "获得器具初始化记录主列表") + @Parameter(name = "ids", description = "编号列表", required = true, example = "1024,2048") + @PreAuthorize("@ss.hasPermission('wms:container-init-record-main:query')") + public CommonResult> getContainerInitRecordMainList(@RequestParam("ids") Collection ids) { + List list = containerInitRecordMainService.getContainerInitRecordMainList(ids); + return success(ContainerInitRecordMainConvert.INSTANCE.convertList(list)); + } + + @GetMapping("/page") + @Operation(summary = "获得器具初始化记录主分页") + @PreAuthorize("@ss.hasPermission('wms:container-init-record-main:query')") + public CommonResult> getContainerInitRecordMainPage(@Valid ContainerInitRecordMainPageReqVO pageVO) { + PageResult pageResult = containerInitRecordMainService.getContainerInitRecordMainPage(pageVO); + return success(ContainerInitRecordMainConvert.INSTANCE.convertPage(pageResult)); + } + + @GetMapping("/export-excel") + @Operation(summary = "导出器具初始化记录主子 Excel") + @PreAuthorize("@ss.hasPermission('wms:container-init-record-main:export')") + @OperateLog(type = EXPORT) + public void exportContainerInitRecordMainExcel(@Valid ContainerInitRecordMainExportReqVO exportReqVO, + HttpServletResponse response) throws IOException { + List list = containerInitRecordMainService.getContainerInitRecordMainList(exportReqVO); + // 导出 Excel + ExcelUtils.write(response, "器具初始化记录.xls", "数据", ContainerInitRecordMainExcelVO.class, list); + } + + @GetMapping("/get-import-template") + @Operation(summary = "获得导入器具初始化记录主模板") + public void importTemplate(HttpServletResponse response) throws IOException { + List list = Arrays.asList(); + // 输出 + ExcelUtils.write(response, "器具初始化记录主基本信息导入模板.xls", "器具初始化记录主基本信息列表", ContainerInitRecordMainExcelVO.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:container-init-record-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, ContainerInitRecordMainExcelVO.class); + List errorList = containerInitRecordMainService.importContainerInitRecordMainList(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/containerinit/vo/ContainerInitRecordDetailBaseVO.java b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/containerinit/vo/ContainerInitRecordDetailBaseVO.java new file mode 100644 index 00000000..66ff7e25 --- /dev/null +++ b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/containerinit/vo/ContainerInitRecordDetailBaseVO.java @@ -0,0 +1,48 @@ +package com.win.module.wms.controller.containerinit.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 ContainerInitRecordDetailBaseVO { + + @Schema(description = "器具号") + private String containerNumber; + + @Schema(description = "类型", requiredMode = Schema.RequiredMode.REQUIRED, example = "2") + @NotNull(message = "类型不能为空") + private String type; + + @Schema(description = "总容量") + private BigDecimal capacity; + + @Schema(description = "状态", requiredMode = Schema.RequiredMode.REQUIRED, example = "1") + @NotNull(message = "状态不能为空") + private String status; + + @Schema(description = "货主代码", requiredMode = Schema.RequiredMode.REQUIRED) + @NotNull(message = "货主代码不能为空") + private String ownerCode; + + @Schema(description = "主表ID", requiredMode = Schema.RequiredMode.REQUIRED, example = "1372") + @NotNull(message = "主表ID不能为空") + private Long masterId; + + @Schema(description = "单据号", requiredMode = Schema.RequiredMode.REQUIRED) + @NotNull(message = "单据号不能为空") + private String number; + + @Schema(description = "地点ID", example = "5160") + private String siteId; + + @Schema(description = "备注", example = "随便") + private String remark; + +} diff --git a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/containerinit/vo/ContainerInitRecordDetailCreateReqVO.java b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/containerinit/vo/ContainerInitRecordDetailCreateReqVO.java new file mode 100644 index 00000000..c6f0c056 --- /dev/null +++ b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/containerinit/vo/ContainerInitRecordDetailCreateReqVO.java @@ -0,0 +1,14 @@ +package com.win.module.wms.controller.containerinit.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 ContainerInitRecordDetailCreateReqVO extends ContainerInitRecordDetailBaseVO { + +} diff --git a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/containerinit/vo/ContainerInitRecordDetailExcelVO.java b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/containerinit/vo/ContainerInitRecordDetailExcelVO.java new file mode 100644 index 00000000..cb54bc65 --- /dev/null +++ b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/containerinit/vo/ContainerInitRecordDetailExcelVO.java @@ -0,0 +1,48 @@ +package com.win.module.wms.controller.containerinit.vo; + +import com.alibaba.excel.annotation.ExcelProperty; +import lombok.Data; + +import java.math.BigDecimal; +import java.time.LocalDateTime; + +/** + * 器具初始化记录子 Excel VO + * + * @author 超级管理员 + */ +@Data +public class ContainerInitRecordDetailExcelVO { + + + @ExcelProperty("器具号") + private String containerNumber; + + @ExcelProperty("类型") + private String type; + + @ExcelProperty("总容量") + private BigDecimal capacity; + + @ExcelProperty("状态") + private String status; + + @ExcelProperty("货主代码") + private String ownerCode; + + @ExcelProperty("主表ID") + private Long masterId; + + @ExcelProperty("单据号") + private String number; + + @ExcelProperty("地点ID") + private String siteId; + + @ExcelProperty("创建时间") + private LocalDateTime createTime; + + @ExcelProperty("备注") + private String remark; + +} diff --git a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/containerinit/vo/ContainerInitRecordDetailExportReqVO.java b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/containerinit/vo/ContainerInitRecordDetailExportReqVO.java new file mode 100644 index 00000000..aa1b61dc --- /dev/null +++ b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/containerinit/vo/ContainerInitRecordDetailExportReqVO.java @@ -0,0 +1,47 @@ +package com.win.module.wms.controller.containerinit.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,参数和 ContainerInitRecordDetailPageReqVO 是一致的") +@Data +public class ContainerInitRecordDetailExportReqVO { + + @Schema(description = "器具号") + private String containerNumber; + + @Schema(description = "类型", example = "2") + private String type; + + @Schema(description = "总容量") + private BigDecimal capacity; + + @Schema(description = "状态", example = "1") + private String status; + + @Schema(description = "货主代码") + private String ownerCode; + + @Schema(description = "主表ID", example = "1372") + private Long masterId; + + @Schema(description = "单据号") + private String number; + + @Schema(description = "地点ID", example = "5160") + private String siteId; + + @Schema(description = "创建时间") + @DateTimeFormat(pattern = FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND) + private LocalDateTime[] createTime; + + @Schema(description = "备注", example = "随便") + private String remark; + +} diff --git a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/containerinit/vo/ContainerInitRecordDetailPageReqVO.java b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/containerinit/vo/ContainerInitRecordDetailPageReqVO.java new file mode 100644 index 00000000..34faa616 --- /dev/null +++ b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/containerinit/vo/ContainerInitRecordDetailPageReqVO.java @@ -0,0 +1,52 @@ +package com.win.module.wms.controller.containerinit.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 ContainerInitRecordDetailPageReqVO extends PageParam { + + @Schema(description = "器具号") + private String containerNumber; + + @Schema(description = "类型", example = "2") + private String type; + + @Schema(description = "总容量") + private BigDecimal capacity; + + @Schema(description = "状态", example = "1") + private String status; + + @Schema(description = "货主代码") + private String ownerCode; + + @Schema(description = "主表ID", example = "1372") + private Long masterId; + + @Schema(description = "单据号") + private String number; + + @Schema(description = "地点ID", example = "5160") + private String siteId; + + @Schema(description = "创建时间") + @DateTimeFormat(pattern = FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND) + private LocalDateTime[] createTime; + + @Schema(description = "备注", example = "随便") + private String remark; + +} diff --git a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/containerinit/vo/ContainerInitRecordDetailRespVO.java b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/containerinit/vo/ContainerInitRecordDetailRespVO.java new file mode 100644 index 00000000..0abb5d83 --- /dev/null +++ b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/containerinit/vo/ContainerInitRecordDetailRespVO.java @@ -0,0 +1,19 @@ +package com.win.module.wms.controller.containerinit.vo; + +import io.swagger.v3.oas.annotations.media.Schema; +import lombok.*; +import java.time.LocalDateTime; + +@Schema(description = "管理后台 - 器具初始化记录子 Response VO") +@Data +@EqualsAndHashCode(callSuper = true) +@ToString(callSuper = true) +public class ContainerInitRecordDetailRespVO extends ContainerInitRecordDetailBaseVO { + + @Schema(description = "id", requiredMode = Schema.RequiredMode.REQUIRED, example = "27503") + 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/containerinit/vo/ContainerInitRecordDetailUpdateReqVO.java b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/containerinit/vo/ContainerInitRecordDetailUpdateReqVO.java new file mode 100644 index 00000000..01e13b4a --- /dev/null +++ b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/containerinit/vo/ContainerInitRecordDetailUpdateReqVO.java @@ -0,0 +1,20 @@ +package com.win.module.wms.controller.containerinit.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 ContainerInitRecordDetailUpdateReqVO extends ContainerInitRecordDetailBaseVO { + + @Schema(description = "id", requiredMode = Schema.RequiredMode.REQUIRED, example = "27503") + @NotNull(message = "id不能为空") + private Long id; + +} diff --git a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/containerinit/vo/ContainerInitRecordMainBaseVO.java b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/containerinit/vo/ContainerInitRecordMainBaseVO.java new file mode 100644 index 00000000..f15be2e6 --- /dev/null +++ b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/containerinit/vo/ContainerInitRecordMainBaseVO.java @@ -0,0 +1,88 @@ +package com.win.module.wms.controller.containerinit.vo; + +import io.swagger.v3.oas.annotations.media.Schema; +import lombok.Data; +import org.springframework.format.annotation.DateTimeFormat; + +import java.time.LocalDateTime; + +import static com.win.framework.common.util.date.DateUtils.FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND; + +/** + * 器具初始化记录主 Base VO,提供给添加、修改、详细的子 VO 使用 + * 如果子 VO 存在差异的字段,请不要添加到这里,影响 Swagger 文档生成 + */ +@Data +public class ContainerInitRecordMainBaseVO { + + @Schema(description = "单据号") + private String number; + + @Schema(description = "从仓库代码") + private String fromWarehouseCode; + + @Schema(description = "到仓库代码") + private String toWarehouseCode; + + @Schema(description = "出库事务类型", example = "2") + private String outTransactionType; + + @Schema(description = "入库事务类型", example = "1") + private String inTransactionType; + + @Schema(description = "执行时间") + @DateTimeFormat(pattern = FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND) + private LocalDateTime executeTime; + + @Schema(description = "生效日期") + @DateTimeFormat(pattern = FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND) + private LocalDateTime activeDate; + + @Schema(description = "是否可用") + private String available; + + @Schema(description = "申请时间") + @DateTimeFormat(pattern = FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND) + private LocalDateTime requestTime; + + @Schema(description = "截止时间") + @DateTimeFormat(pattern = FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND) + private LocalDateTime dueTime; + + @Schema(description = "部门") + private String departmentCode; + + @Schema(description = "用户组") + private String userGroupCode; + + @Schema(description = "接口类型", example = "2") + private String interfaceType; + + @Schema(description = "业务类型", example = "2") + private String businessType; + + @Schema(description = "备注", example = "你猜") + private String remark; + + @Schema(description = "扩展属性") + private String extraProperties; + + @Schema(description = "地点ID", example = "17905") + private String siteId; + + @Schema(description = "代码") + private String code; + + @Schema(description = "从库位类型范围") + private String fromLocationTypes; + + @Schema(description = "到库位类型范围") + private String toLocationTypes; + + @Schema(description = "从库区代码范围") + private String fromAreaCodes; + + @Schema(description = "到库区代码范围") + private String toAreaCodes; + +} diff --git a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/containerinit/vo/ContainerInitRecordMainCreateReqVO.java b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/containerinit/vo/ContainerInitRecordMainCreateReqVO.java new file mode 100644 index 00000000..c08a7e53 --- /dev/null +++ b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/containerinit/vo/ContainerInitRecordMainCreateReqVO.java @@ -0,0 +1,14 @@ +package com.win.module.wms.controller.containerinit.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 ContainerInitRecordMainCreateReqVO extends ContainerInitRecordMainBaseVO { + +} diff --git a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/containerinit/vo/ContainerInitRecordMainExcelVO.java b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/containerinit/vo/ContainerInitRecordMainExcelVO.java new file mode 100644 index 00000000..e895759f --- /dev/null +++ b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/containerinit/vo/ContainerInitRecordMainExcelVO.java @@ -0,0 +1,42 @@ +package com.win.module.wms.controller.containerinit.vo; + +import com.alibaba.excel.annotation.ExcelProperty; +import lombok.Data; + +import java.math.BigDecimal; +import java.time.LocalDateTime; + +/** + * 器具初始化记录主 Excel VO + * + * @author 超级管理员 + */ +@Data +public class ContainerInitRecordMainExcelVO { + + + @ExcelProperty("单据号") + private String number; + + @ExcelProperty("仓库代码") + private String fromWarehouseCode; + + @ExcelProperty("器具号") + private String containerNumber; + + @ExcelProperty("类型") + private String type; + + @ExcelProperty("总容量") + private BigDecimal capacity; + + @ExcelProperty("状态") + private String status; + + @ExcelProperty("货主代码") + private String ownerCode; + + @ExcelProperty("创建时间") + private LocalDateTime createTime; + +} diff --git a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/containerinit/vo/ContainerInitRecordMainExportReqVO.java b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/containerinit/vo/ContainerInitRecordMainExportReqVO.java new file mode 100644 index 00000000..f02310ab --- /dev/null +++ b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/containerinit/vo/ContainerInitRecordMainExportReqVO.java @@ -0,0 +1,89 @@ +package com.win.module.wms.controller.containerinit.vo; + +import io.swagger.v3.oas.annotations.media.Schema; +import lombok.Data; +import org.springframework.format.annotation.DateTimeFormat; + +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,参数和 ContainerInitRecordMainPageReqVO 是一致的") +@Data +public class ContainerInitRecordMainExportReqVO { + + @Schema(description = "单据号") + private String number; + + @Schema(description = "从仓库代码") + private String fromWarehouseCode; + + @Schema(description = "到仓库代码") + private String toWarehouseCode; + + @Schema(description = "出库事务类型", example = "2") + private String outTransactionType; + + @Schema(description = "入库事务类型", example = "1") + private String inTransactionType; + + @Schema(description = "执行时间") + @DateTimeFormat(pattern = FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND) + private LocalDateTime[] executeTime; + + @Schema(description = "生效日期") + @DateTimeFormat(pattern = FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND) + private LocalDateTime[] activeDate; + + @Schema(description = "是否可用") + private String available; + + @Schema(description = "申请时间") + @DateTimeFormat(pattern = FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND) + private LocalDateTime[] requestTime; + + @Schema(description = "截止时间") + @DateTimeFormat(pattern = FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND) + private LocalDateTime[] dueTime; + + @Schema(description = "部门") + private String departmentCode; + + @Schema(description = "用户组") + private String userGroupCode; + + @Schema(description = "接口类型", example = "2") + private String interfaceType; + + @Schema(description = "业务类型", example = "2") + private String businessType; + + @Schema(description = "备注", example = "你猜") + private String remark; + + @Schema(description = "创建时间") + @DateTimeFormat(pattern = FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND) + private LocalDateTime[] createTime; + + @Schema(description = "扩展属性") + private String extraProperties; + + @Schema(description = "地点ID", example = "17905") + private String siteId; + + @Schema(description = "代码") + private String code; + + @Schema(description = "从库位类型范围") + private String fromLocationTypes; + + @Schema(description = "到库位类型范围") + private String toLocationTypes; + + @Schema(description = "从库区代码范围") + private String fromAreaCodes; + + @Schema(description = "到库区代码范围") + private String toAreaCodes; + +} diff --git a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/containerinit/vo/ContainerInitRecordMainPageReqVO.java b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/containerinit/vo/ContainerInitRecordMainPageReqVO.java new file mode 100644 index 00000000..27ec8c01 --- /dev/null +++ b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/containerinit/vo/ContainerInitRecordMainPageReqVO.java @@ -0,0 +1,94 @@ +package com.win.module.wms.controller.containerinit.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.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 ContainerInitRecordMainPageReqVO extends PageParam { + + @Schema(description = "单据号") + private String number; + + @Schema(description = "从仓库代码") + private String fromWarehouseCode; + + @Schema(description = "到仓库代码") + private String toWarehouseCode; + + @Schema(description = "出库事务类型", example = "2") + private String outTransactionType; + + @Schema(description = "入库事务类型", example = "1") + private String inTransactionType; + + @Schema(description = "执行时间") + @DateTimeFormat(pattern = FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND) + private LocalDateTime[] executeTime; + + @Schema(description = "生效日期") + @DateTimeFormat(pattern = FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND) + private LocalDateTime[] activeDate; + + @Schema(description = "是否可用") + private String available; + + @Schema(description = "申请时间") + @DateTimeFormat(pattern = FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND) + private LocalDateTime[] requestTime; + + @Schema(description = "截止时间") + @DateTimeFormat(pattern = FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND) + private LocalDateTime[] dueTime; + + @Schema(description = "部门") + private String departmentCode; + + @Schema(description = "用户组") + private String userGroupCode; + + @Schema(description = "接口类型", example = "2") + private String interfaceType; + + @Schema(description = "业务类型", example = "2") + private String businessType; + + @Schema(description = "备注", example = "你猜") + private String remark; + + @Schema(description = "创建时间") + @DateTimeFormat(pattern = FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND) + private LocalDateTime[] createTime; + + @Schema(description = "扩展属性") + private String extraProperties; + + @Schema(description = "地点ID", example = "17905") + private String siteId; + + @Schema(description = "代码") + private String code; + + @Schema(description = "从库位类型范围") + private String fromLocationTypes; + + @Schema(description = "到库位类型范围") + private String toLocationTypes; + + @Schema(description = "从库区代码范围") + private String fromAreaCodes; + + @Schema(description = "到库区代码范围") + private String toAreaCodes; + +} diff --git a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/containerinit/vo/ContainerInitRecordMainRespVO.java b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/containerinit/vo/ContainerInitRecordMainRespVO.java new file mode 100644 index 00000000..765ec396 --- /dev/null +++ b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/containerinit/vo/ContainerInitRecordMainRespVO.java @@ -0,0 +1,22 @@ +package com.win.module.wms.controller.containerinit.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 ContainerInitRecordMainRespVO extends ContainerInitRecordMainBaseVO { + + @Schema(description = "id", requiredMode = Schema.RequiredMode.REQUIRED, example = "8791") + 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/containerinit/vo/ContainerInitRecordMainUpdateReqVO.java b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/containerinit/vo/ContainerInitRecordMainUpdateReqVO.java new file mode 100644 index 00000000..86e16260 --- /dev/null +++ b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/containerinit/vo/ContainerInitRecordMainUpdateReqVO.java @@ -0,0 +1,20 @@ +package com.win.module.wms.controller.containerinit.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 ContainerInitRecordMainUpdateReqVO extends ContainerInitRecordMainBaseVO { + + @Schema(description = "id", requiredMode = Schema.RequiredMode.REQUIRED, example = "8791") + @NotNull(message = "id不能为空") + private Long id; + +} diff --git a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/convert/containerinit/ContainerInitRecordDetailConvert.java b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/convert/containerinit/ContainerInitRecordDetailConvert.java new file mode 100644 index 00000000..0cd4fcd8 --- /dev/null +++ b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/convert/containerinit/ContainerInitRecordDetailConvert.java @@ -0,0 +1,36 @@ +package com.win.module.wms.convert.containerinit; + +import com.win.framework.common.pojo.PageResult; +import com.win.module.wms.controller.containerinit.vo.ContainerInitRecordDetailCreateReqVO; +import com.win.module.wms.controller.containerinit.vo.ContainerInitRecordDetailExcelVO; +import com.win.module.wms.controller.containerinit.vo.ContainerInitRecordDetailRespVO; +import com.win.module.wms.controller.containerinit.vo.ContainerInitRecordDetailUpdateReqVO; +import com.win.module.wms.dal.dataobject.containerinit.ContainerInitRecordDetailDO; +import org.mapstruct.Mapper; +import org.mapstruct.factory.Mappers; + +import java.util.List; + +/** + * 器具初始化记录子 Convert + * + * @author 超级管理员 + */ +@Mapper +public interface ContainerInitRecordDetailConvert { + + ContainerInitRecordDetailConvert INSTANCE = Mappers.getMapper(ContainerInitRecordDetailConvert.class); + + ContainerInitRecordDetailDO convert(ContainerInitRecordDetailCreateReqVO bean); + + ContainerInitRecordDetailDO convert(ContainerInitRecordDetailUpdateReqVO bean); + + ContainerInitRecordDetailRespVO convert(ContainerInitRecordDetailDO 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/containerinit/ContainerInitRecordMainConvert.java b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/convert/containerinit/ContainerInitRecordMainConvert.java new file mode 100644 index 00000000..a2cf20f9 --- /dev/null +++ b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/convert/containerinit/ContainerInitRecordMainConvert.java @@ -0,0 +1,36 @@ +package com.win.module.wms.convert.containerinit; + +import com.win.framework.common.pojo.PageResult; +import com.win.module.wms.controller.containerinit.vo.ContainerInitRecordMainCreateReqVO; +import com.win.module.wms.controller.containerinit.vo.ContainerInitRecordMainExcelVO; +import com.win.module.wms.controller.containerinit.vo.ContainerInitRecordMainRespVO; +import com.win.module.wms.controller.containerinit.vo.ContainerInitRecordMainUpdateReqVO; +import com.win.module.wms.dal.dataobject.containerinit.ContainerInitRecordMainDO; +import org.mapstruct.Mapper; +import org.mapstruct.factory.Mappers; + +import java.util.List; + +/** + * 器具初始化记录主 Convert + * + * @author 超级管理员 + */ +@Mapper +public interface ContainerInitRecordMainConvert { + + ContainerInitRecordMainConvert INSTANCE = Mappers.getMapper(ContainerInitRecordMainConvert.class); + + ContainerInitRecordMainDO convert(ContainerInitRecordMainCreateReqVO bean); + + ContainerInitRecordMainDO convert(ContainerInitRecordMainUpdateReqVO bean); + + ContainerInitRecordMainRespVO convert(ContainerInitRecordMainDO 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/container/ContainerMainDO.java b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/dal/dataobject/container/ContainerMainDO.java index b5a71030..c5257887 100644 --- a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/dal/dataobject/container/ContainerMainDO.java +++ b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/dal/dataobject/container/ContainerMainDO.java @@ -63,4 +63,9 @@ public class ContainerMainDO extends BaseDO { @Version private Integer concurrencyStamp; + /** + * 仓库代码 + */ + private String warehouseCode; + } diff --git a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/dal/dataobject/containerinit/ContainerInitRecordDetailDO.java b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/dal/dataobject/containerinit/ContainerInitRecordDetailDO.java new file mode 100644 index 00000000..687e4099 --- /dev/null +++ b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/dal/dataobject/containerinit/ContainerInitRecordDetailDO.java @@ -0,0 +1,66 @@ +package com.win.module.wms.dal.dataobject.containerinit; + +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_container_init_detail") +@Data +@EqualsAndHashCode(callSuper = true) +@ToString(callSuper = true) +@Builder +@NoArgsConstructor +@AllArgsConstructor +public class ContainerInitRecordDetailDO extends BaseDO { + + /** + * id + */ + @TableId + private Long id; + /** + * 器具号 + */ + private String containerNumber; + /** + * 类型 + */ + private String type; + /** + * 总容量 + */ + private BigDecimal capacity; + /** + * 状态 + */ + private String status; + /** + * 货主代码 + */ + private String ownerCode; + /** + * 主表ID + */ + private Long masterId; + /** + * 单据号 + */ + private String number; + /** + * 地点ID + */ + private String siteId; + /** + * 备注 + */ + private String remark; + +} diff --git a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/dal/dataobject/containerinit/ContainerInitRecordMainDO.java b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/dal/dataobject/containerinit/ContainerInitRecordMainDO.java new file mode 100644 index 00000000..9a68e761 --- /dev/null +++ b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/dal/dataobject/containerinit/ContainerInitRecordMainDO.java @@ -0,0 +1,118 @@ +package com.win.module.wms.dal.dataobject.containerinit; + +import com.baomidou.mybatisplus.annotation.TableId; +import com.baomidou.mybatisplus.annotation.TableName; +import com.win.framework.mybatis.core.dataobject.BaseDO; +import lombok.*; + +import java.time.LocalDateTime; + +/** + * 器具初始化记录主 DO + * + * @author 超级管理员 + */ +@TableName("record_container_init_main") +@Data +@EqualsAndHashCode(callSuper = true) +@ToString(callSuper = true) +@Builder +@NoArgsConstructor +@AllArgsConstructor +public class ContainerInitRecordMainDO extends BaseDO { + + /** + * id + */ + @TableId + private Long id; + /** + * 单据号 + */ + private String number; + /** + * 从仓库代码 + */ + private String fromWarehouseCode; + /** + * 到仓库代码 + */ + private String toWarehouseCode; + /** + * 出库事务类型 + */ + private String outTransactionType; + /** + * 入库事务类型 + */ + private String inTransactionType; + /** + * 执行时间 + */ + private LocalDateTime executeTime; + /** + * 生效日期 + */ + private LocalDateTime activeDate; + /** + * 是否可用 + */ + private String available; + /** + * 申请时间 + */ + private LocalDateTime requestTime; + /** + * 截止时间 + */ + private LocalDateTime dueTime; + /** + * 部门 + */ + private String departmentCode; + /** + * 用户组 + */ + private String userGroupCode; + /** + * 接口类型 + */ + private String interfaceType; + /** + * 业务类型 + */ + private String businessType; + /** + * 备注 + */ + private String remark; + /** + * 扩展属性 + */ + private String extraProperties; + /** + * 地点ID + */ + private String siteId; + /** + * 代码 + */ + private String code; + /** + * 从库位类型范围 + */ + private String fromLocationTypes; + /** + * 到库位类型范围 + */ + private String toLocationTypes; + /** + * 从库区代码范围 + */ + private String fromAreaCodes; + /** + * 到库区代码范围 + */ + private String toAreaCodes; + +} diff --git a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/dal/mysql/containerinit/ContainerInitRecordDetailMapper.java b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/dal/mysql/containerinit/ContainerInitRecordDetailMapper.java new file mode 100644 index 00000000..80a6e0ff --- /dev/null +++ b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/dal/mysql/containerinit/ContainerInitRecordDetailMapper.java @@ -0,0 +1,51 @@ +package com.win.module.wms.dal.mysql.containerinit; + +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.containerinit.vo.ContainerInitRecordDetailExportReqVO; +import com.win.module.wms.controller.containerinit.vo.ContainerInitRecordDetailPageReqVO; +import com.win.module.wms.dal.dataobject.containerinit.ContainerInitRecordDetailDO; +import org.apache.ibatis.annotations.Mapper; + +import java.util.List; + +/** + * 器具初始化记录子 Mapper + * + * @author 超级管理员 + */ +@Mapper +public interface ContainerInitRecordDetailMapper extends BaseMapperX { + + default PageResult selectPage(ContainerInitRecordDetailPageReqVO reqVO) { + return selectPage(reqVO, new LambdaQueryWrapperX() + .eqIfPresent(ContainerInitRecordDetailDO::getContainerNumber, reqVO.getContainerNumber()) + .eqIfPresent(ContainerInitRecordDetailDO::getType, reqVO.getType()) + .eqIfPresent(ContainerInitRecordDetailDO::getCapacity, reqVO.getCapacity()) + .eqIfPresent(ContainerInitRecordDetailDO::getStatus, reqVO.getStatus()) + .eqIfPresent(ContainerInitRecordDetailDO::getOwnerCode, reqVO.getOwnerCode()) + .eqIfPresent(ContainerInitRecordDetailDO::getMasterId, reqVO.getMasterId()) + .eqIfPresent(ContainerInitRecordDetailDO::getNumber, reqVO.getNumber()) + .eqIfPresent(ContainerInitRecordDetailDO::getSiteId, reqVO.getSiteId()) + .betweenIfPresent(ContainerInitRecordDetailDO::getCreateTime, reqVO.getCreateTime()) + .eqIfPresent(ContainerInitRecordDetailDO::getRemark, reqVO.getRemark()) + .orderByDesc(ContainerInitRecordDetailDO::getId)); + } + + default List selectList(ContainerInitRecordDetailExportReqVO reqVO) { + return selectList(new LambdaQueryWrapperX() + .eqIfPresent(ContainerInitRecordDetailDO::getContainerNumber, reqVO.getContainerNumber()) + .eqIfPresent(ContainerInitRecordDetailDO::getType, reqVO.getType()) + .eqIfPresent(ContainerInitRecordDetailDO::getCapacity, reqVO.getCapacity()) + .eqIfPresent(ContainerInitRecordDetailDO::getStatus, reqVO.getStatus()) + .eqIfPresent(ContainerInitRecordDetailDO::getOwnerCode, reqVO.getOwnerCode()) + .eqIfPresent(ContainerInitRecordDetailDO::getMasterId, reqVO.getMasterId()) + .eqIfPresent(ContainerInitRecordDetailDO::getNumber, reqVO.getNumber()) + .eqIfPresent(ContainerInitRecordDetailDO::getSiteId, reqVO.getSiteId()) + .betweenIfPresent(ContainerInitRecordDetailDO::getCreateTime, reqVO.getCreateTime()) + .eqIfPresent(ContainerInitRecordDetailDO::getRemark, reqVO.getRemark()) + .orderByDesc(ContainerInitRecordDetailDO::getId)); + } + +} diff --git a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/dal/mysql/containerinit/ContainerInitRecordMainMapper.java b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/dal/mysql/containerinit/ContainerInitRecordMainMapper.java new file mode 100644 index 00000000..64d6a03a --- /dev/null +++ b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/dal/mysql/containerinit/ContainerInitRecordMainMapper.java @@ -0,0 +1,77 @@ +package com.win.module.wms.dal.mysql.containerinit; + +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.containerinit.vo.ContainerInitRecordMainExportReqVO; +import com.win.module.wms.controller.containerinit.vo.ContainerInitRecordMainPageReqVO; +import com.win.module.wms.dal.dataobject.containerinit.ContainerInitRecordMainDO; +import org.apache.ibatis.annotations.Mapper; + +import java.util.List; + +/** + * 器具初始化记录主 Mapper + * + * @author 超级管理员 + */ +@Mapper +public interface ContainerInitRecordMainMapper extends BaseMapperX { + + default PageResult selectPage(ContainerInitRecordMainPageReqVO reqVO) { + return selectPage(reqVO, new LambdaQueryWrapperX() + .eqIfPresent(ContainerInitRecordMainDO::getNumber, reqVO.getNumber()) + .eqIfPresent(ContainerInitRecordMainDO::getFromWarehouseCode, reqVO.getFromWarehouseCode()) + .eqIfPresent(ContainerInitRecordMainDO::getToWarehouseCode, reqVO.getToWarehouseCode()) + .eqIfPresent(ContainerInitRecordMainDO::getOutTransactionType, reqVO.getOutTransactionType()) + .eqIfPresent(ContainerInitRecordMainDO::getInTransactionType, reqVO.getInTransactionType()) + .betweenIfPresent(ContainerInitRecordMainDO::getExecuteTime, reqVO.getExecuteTime()) + .betweenIfPresent(ContainerInitRecordMainDO::getActiveDate, reqVO.getActiveDate()) + .eqIfPresent(ContainerInitRecordMainDO::getAvailable, reqVO.getAvailable()) + .betweenIfPresent(ContainerInitRecordMainDO::getRequestTime, reqVO.getRequestTime()) + .betweenIfPresent(ContainerInitRecordMainDO::getDueTime, reqVO.getDueTime()) + .eqIfPresent(ContainerInitRecordMainDO::getDepartmentCode, reqVO.getDepartmentCode()) + .eqIfPresent(ContainerInitRecordMainDO::getUserGroupCode, reqVO.getUserGroupCode()) + .eqIfPresent(ContainerInitRecordMainDO::getInterfaceType, reqVO.getInterfaceType()) + .eqIfPresent(ContainerInitRecordMainDO::getBusinessType, reqVO.getBusinessType()) + .eqIfPresent(ContainerInitRecordMainDO::getRemark, reqVO.getRemark()) + .betweenIfPresent(ContainerInitRecordMainDO::getCreateTime, reqVO.getCreateTime()) + .eqIfPresent(ContainerInitRecordMainDO::getExtraProperties, reqVO.getExtraProperties()) + .eqIfPresent(ContainerInitRecordMainDO::getSiteId, reqVO.getSiteId()) + .eqIfPresent(ContainerInitRecordMainDO::getCode, reqVO.getCode()) + .eqIfPresent(ContainerInitRecordMainDO::getFromLocationTypes, reqVO.getFromLocationTypes()) + .eqIfPresent(ContainerInitRecordMainDO::getToLocationTypes, reqVO.getToLocationTypes()) + .eqIfPresent(ContainerInitRecordMainDO::getFromAreaCodes, reqVO.getFromAreaCodes()) + .eqIfPresent(ContainerInitRecordMainDO::getToAreaCodes, reqVO.getToAreaCodes()) + .orderByDesc(ContainerInitRecordMainDO::getId)); + } + + default List selectList(ContainerInitRecordMainExportReqVO reqVO) { + return selectList(new LambdaQueryWrapperX() + .eqIfPresent(ContainerInitRecordMainDO::getNumber, reqVO.getNumber()) + .eqIfPresent(ContainerInitRecordMainDO::getFromWarehouseCode, reqVO.getFromWarehouseCode()) + .eqIfPresent(ContainerInitRecordMainDO::getToWarehouseCode, reqVO.getToWarehouseCode()) + .eqIfPresent(ContainerInitRecordMainDO::getOutTransactionType, reqVO.getOutTransactionType()) + .eqIfPresent(ContainerInitRecordMainDO::getInTransactionType, reqVO.getInTransactionType()) + .betweenIfPresent(ContainerInitRecordMainDO::getExecuteTime, reqVO.getExecuteTime()) + .betweenIfPresent(ContainerInitRecordMainDO::getActiveDate, reqVO.getActiveDate()) + .eqIfPresent(ContainerInitRecordMainDO::getAvailable, reqVO.getAvailable()) + .betweenIfPresent(ContainerInitRecordMainDO::getRequestTime, reqVO.getRequestTime()) + .betweenIfPresent(ContainerInitRecordMainDO::getDueTime, reqVO.getDueTime()) + .eqIfPresent(ContainerInitRecordMainDO::getDepartmentCode, reqVO.getDepartmentCode()) + .eqIfPresent(ContainerInitRecordMainDO::getUserGroupCode, reqVO.getUserGroupCode()) + .eqIfPresent(ContainerInitRecordMainDO::getInterfaceType, reqVO.getInterfaceType()) + .eqIfPresent(ContainerInitRecordMainDO::getBusinessType, reqVO.getBusinessType()) + .eqIfPresent(ContainerInitRecordMainDO::getRemark, reqVO.getRemark()) + .betweenIfPresent(ContainerInitRecordMainDO::getCreateTime, reqVO.getCreateTime()) + .eqIfPresent(ContainerInitRecordMainDO::getExtraProperties, reqVO.getExtraProperties()) + .eqIfPresent(ContainerInitRecordMainDO::getSiteId, reqVO.getSiteId()) + .eqIfPresent(ContainerInitRecordMainDO::getCode, reqVO.getCode()) + .eqIfPresent(ContainerInitRecordMainDO::getFromLocationTypes, reqVO.getFromLocationTypes()) + .eqIfPresent(ContainerInitRecordMainDO::getToLocationTypes, reqVO.getToLocationTypes()) + .eqIfPresent(ContainerInitRecordMainDO::getFromAreaCodes, reqVO.getFromAreaCodes()) + .eqIfPresent(ContainerInitRecordMainDO::getToAreaCodes, reqVO.getToAreaCodes()) + .orderByDesc(ContainerInitRecordMainDO::getId)); + } + +} diff --git a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/container/ContainerMainServiceImpl.java b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/container/ContainerMainServiceImpl.java index 65d08d72..9955e51e 100644 --- a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/container/ContainerMainServiceImpl.java +++ b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/container/ContainerMainServiceImpl.java @@ -2,12 +2,21 @@ package com.win.module.wms.service.container; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.win.framework.common.pojo.CustomConditions; +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.container.vo.*; import com.win.module.wms.convert.container.ContainerDetailConvert; import com.win.module.wms.dal.dataobject.container.ContainerDetailDO; +import com.win.module.wms.dal.dataobject.containerinit.ContainerInitRecordDetailDO; +import com.win.module.wms.dal.dataobject.containerinit.ContainerInitRecordMainDO; import com.win.module.wms.dal.mysql.container.ContainerDetailMapper; +import com.win.module.wms.dal.mysql.containerinit.ContainerInitRecordDetailMapper; +import com.win.module.wms.dal.mysql.containerinit.ContainerInitRecordMainMapper; import org.springframework.stereotype.Service; import javax.annotation.Resource; + +import org.springframework.transaction.annotation.Transactional; import org.springframework.validation.annotation.Validated; import java.util.*; @@ -19,6 +28,7 @@ import com.win.module.wms.convert.container.ContainerMainConvert; import com.win.module.wms.dal.mysql.container.ContainerMainMapper; 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.*; /** @@ -32,19 +42,49 @@ public class ContainerMainServiceImpl implements ContainerMainService { @Resource private ContainerMainMapper containerMainMapper; - @Resource private ContainerDetailMapper containerDetailMapper; + @Resource + private ContainerInitRecordMainMapper containerInitRecordMainMapper; + @Resource + private ContainerInitRecordDetailMapper containerInitRecordDetailMapper; + @Resource + private SerialNumberApi serialNumberApi; + @Resource + private AdminUserApi userApi; + @Transactional @Override public String createContainerMain(ContainerMainCreateReqVO createReqVO) { // 插入 ContainerMainDO containerMain = ContainerMainConvert.INSTANCE.convert(createReqVO); containerMainMapper.insert(containerMain); + // 添加器具初始化记录表 + createContainerInit(containerMain); // 返回 return containerMain.getId(); } + public void createContainerInit(ContainerMainDO containerMain) { + // 器具初始化主表 + ContainerInitRecordMainDO containerInitRecordMainDO = new ContainerInitRecordMainDO(); + containerInitRecordMainDO.setFromWarehouseCode(containerMain.getWarehouseCode()); + String number = serialNumberApi.generateCode(RuleCodeEnum.CONTAINER_INIT_RECORD.getCode()); + containerInitRecordMainDO.setNumber(number); + containerInitRecordMainDO.setDepartmentCode(userApi.getUser(getLoginUserId()).getDeptId().toString()); + containerInitRecordMainMapper.insert(containerInitRecordMainDO); + // 器具初始化子表 + ContainerInitRecordDetailDO containerInitRecordDetailDO = new ContainerInitRecordDetailDO(); + containerInitRecordDetailDO.setMasterId(containerInitRecordMainDO.getId()); + containerInitRecordDetailDO.setNumber(number); + containerInitRecordDetailDO.setContainerNumber(containerMain.getNumber()); + containerInitRecordDetailDO.setType(containerMain.getType()); + containerInitRecordDetailDO.setCapacity(containerMain.getCapacity()); + containerInitRecordDetailDO.setStatus(containerMain.getStatus()); + containerInitRecordDetailDO.setOwnerCode(containerMain.getOwnerCode()); + containerInitRecordDetailMapper.insert(containerInitRecordDetailDO); + } + @Override public void updateContainerMain(ContainerMainUpdateReqVO updateReqVO) { // 校验存在 diff --git a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/containerinit/ContainerInitRecordDetailService.java b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/containerinit/ContainerInitRecordDetailService.java new file mode 100644 index 00000000..b3407e78 --- /dev/null +++ b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/containerinit/ContainerInitRecordDetailService.java @@ -0,0 +1,81 @@ +package com.win.module.wms.service.containerinit; + +import com.win.framework.common.pojo.PageResult; +import com.win.module.wms.controller.containerinit.vo.*; +import com.win.module.wms.dal.dataobject.containerinit.ContainerInitRecordDetailDO; + +import javax.validation.Valid; +import java.util.Collection; +import java.util.List; + +/** + * 器具初始化记录子 Service 接口 + * + * @author 超级管理员 + */ +public interface ContainerInitRecordDetailService { + + /** + * 创建器具初始化记录子 + * + * @param createReqVO 创建信息 + * @return 编号 + */ + Long createContainerInitRecordDetail(@Valid ContainerInitRecordDetailCreateReqVO createReqVO); + + /** + * 更新器具初始化记录子 + * + * @param updateReqVO 更新信息 + */ + Integer updateContainerInitRecordDetail(@Valid ContainerInitRecordDetailUpdateReqVO updateReqVO); + + /** + * 删除器具初始化记录子 + * + * @param id 编号 + */ + Integer deleteContainerInitRecordDetail(Long id); + + /** + * 获得器具初始化记录子 + * + * @param id 编号 + * @return 器具初始化记录子 + */ + ContainerInitRecordDetailDO getContainerInitRecordDetail(Long id); + + /** + * 获得器具初始化记录子列表 + * + * @param ids 编号 + * @return 器具初始化记录子列表 + */ + List getContainerInitRecordDetailList(Collection ids); + + /** + * 获得器具初始化记录子分页 + * + * @param pageReqVO 分页查询 + * @return 器具初始化记录子分页 + */ + PageResult getContainerInitRecordDetailPage(ContainerInitRecordDetailPageReqVO pageReqVO); + + /** + * 获得器具初始化记录子列表, 用于 Excel 导出 + * + * @param exportReqVO 查询条件 + * @return 器具初始化记录子列表 + */ + List getContainerInitRecordDetailList(ContainerInitRecordDetailExportReqVO exportReqVO); + + /** + * 导入器具初始化记录子主信息 + * + * @param datas 导入器具初始化记录子主信息列表 + * @param mode 导入模式1更新2追加3覆盖 + * @param updatePart 是否支持更新 + * @return 导入结果 + */ + public List importContainerInitRecordDetailList(List datas, Integer mode, boolean updatePart); +} diff --git a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/containerinit/ContainerInitRecordMainService.java b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/containerinit/ContainerInitRecordMainService.java new file mode 100644 index 00000000..ae634f9d --- /dev/null +++ b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/containerinit/ContainerInitRecordMainService.java @@ -0,0 +1,81 @@ +package com.win.module.wms.service.containerinit; + +import com.win.framework.common.pojo.PageResult; +import com.win.module.wms.controller.containerinit.vo.*; +import com.win.module.wms.dal.dataobject.containerinit.ContainerInitRecordMainDO; + +import javax.validation.Valid; +import java.util.Collection; +import java.util.List; + +/** + * 器具初始化记录主 Service 接口 + * + * @author 超级管理员 + */ +public interface ContainerInitRecordMainService { + + /** + * 创建器具初始化记录主 + * + * @param createReqVO 创建信息 + * @return 编号 + */ + Long createContainerInitRecordMain(@Valid ContainerInitRecordMainCreateReqVO createReqVO); + + /** + * 更新器具初始化记录主 + * + * @param updateReqVO 更新信息 + */ + Integer updateContainerInitRecordMain(@Valid ContainerInitRecordMainUpdateReqVO updateReqVO); + + /** + * 删除器具初始化记录主 + * + * @param id 编号 + */ + Integer deleteContainerInitRecordMain(Long id); + + /** + * 获得器具初始化记录主 + * + * @param id 编号 + * @return 器具初始化记录主 + */ + ContainerInitRecordMainDO getContainerInitRecordMain(Long id); + + /** + * 获得器具初始化记录主列表 + * + * @param ids 编号 + * @return 器具初始化记录主列表 + */ + List getContainerInitRecordMainList(Collection ids); + + /** + * 获得器具初始化记录主分页 + * + * @param pageReqVO 分页查询 + * @return 器具初始化记录主分页 + */ + PageResult getContainerInitRecordMainPage(ContainerInitRecordMainPageReqVO pageReqVO); + + /** + * 获得器具初始化记录主列表, 用于 Excel 导出 + * + * @param exportReqVO 查询条件 + * @return 器具初始化记录主列表 + */ + List getContainerInitRecordMainList(ContainerInitRecordMainExportReqVO exportReqVO); + + /** + * 导入器具初始化记录主主信息 + * + * @param datas 导入器具初始化记录主主信息列表 + * @param mode 导入模式1更新2追加3覆盖 + * @param updatePart 是否支持更新 + * @return 导入结果 + */ + public List importContainerInitRecordMainList(List datas, Integer mode, boolean updatePart); +} diff --git a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/containerinit/ContainerInitRecordMainServiceImpl.java b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/containerinit/ContainerInitRecordMainServiceImpl.java new file mode 100644 index 00000000..570cc9f6 --- /dev/null +++ b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/containerinit/ContainerInitRecordMainServiceImpl.java @@ -0,0 +1,137 @@ +package com.win.module.wms.service.containerinit; + +import cn.hutool.core.collection.CollUtil; +import com.win.framework.common.pojo.PageResult; +import com.win.module.wms.controller.containerinit.vo.*; +import com.win.module.wms.convert.containerinit.ContainerInitRecordMainConvert; +import com.win.module.wms.dal.dataobject.containerinit.ContainerInitRecordDetailDO; +import com.win.module.wms.dal.dataobject.containerinit.ContainerInitRecordMainDO; +import com.win.module.wms.dal.mysql.containerinit.ContainerInitRecordDetailMapper; +import com.win.module.wms.dal.mysql.containerinit.ContainerInitRecordMainMapper; +import org.springframework.beans.BeanUtils; +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 java.util.Map; +import java.util.stream.Collectors; + +import static com.win.framework.common.exception.util.ServiceExceptionUtil.exception; +import static com.win.module.wms.enums.ErrorCodeConstants.CONTAINER_INIT_RECORD_MAIN_IMPORT_LIST_IS_EMPTY; +import static com.win.module.wms.enums.ErrorCodeConstants.CONTAINER_INIT_RECORD_MAIN_NOT_EXISTS; + +/** + * 器具初始化记录主 Service 实现类 + * + * @author 超级管理员 + */ +@Service +@Validated +public class ContainerInitRecordMainServiceImpl implements ContainerInitRecordMainService { + + @Resource + private ContainerInitRecordMainMapper containerInitRecordMainMapper; + @Resource + private ContainerInitRecordDetailMapper containerInitRecordDetailMapper; + + + @Override + public Long createContainerInitRecordMain(ContainerInitRecordMainCreateReqVO createReqVO) { + // 插入 + ContainerInitRecordMainDO containerInitRecordMain = ContainerInitRecordMainConvert.INSTANCE.convert(createReqVO); + containerInitRecordMainMapper.insert(containerInitRecordMain); + // 返回 + return containerInitRecordMain.getId(); + } + + @Override + public Integer updateContainerInitRecordMain(ContainerInitRecordMainUpdateReqVO updateReqVO) { + // 校验存在 + validateContainerInitRecordMainExists(updateReqVO.getId()); + // 更新 + ContainerInitRecordMainDO updateObj = ContainerInitRecordMainConvert.INSTANCE.convert(updateReqVO); + return containerInitRecordMainMapper.updateById(updateObj); + } + + @Override + public Integer deleteContainerInitRecordMain(Long id) { + // 校验存在 + validateContainerInitRecordMainExists(id); + // 删除 + return containerInitRecordMainMapper.deleteById(id); + } + + private void validateContainerInitRecordMainExists(Long id) { + if (containerInitRecordMainMapper.selectById(id) == null) { + throw exception(CONTAINER_INIT_RECORD_MAIN_NOT_EXISTS); + } + } + + @Override + public ContainerInitRecordMainDO getContainerInitRecordMain(Long id) { + return containerInitRecordMainMapper.selectById(id); + } + + @Override + public List getContainerInitRecordMainList(Collection ids) { + return containerInitRecordMainMapper.selectBatchIds(ids); + } + + @Override + public PageResult getContainerInitRecordMainPage(ContainerInitRecordMainPageReqVO pageReqVO) { + return containerInitRecordMainMapper.selectPage(pageReqVO); + } + + @Override + public List getContainerInitRecordMainList(ContainerInitRecordMainExportReqVO exportReqVO) { + List excelVOList = new ArrayList<>(); + List mainDOList = containerInitRecordMainMapper.selectList(exportReqVO); + if(mainDOList != null && mainDOList.size() > 0){ + ContainerInitRecordDetailExportReqVO reqVO = new ContainerInitRecordDetailExportReqVO(); + BeanUtils.copyProperties(exportReqVO,reqVO); + List detailDOList = containerInitRecordDetailMapper.selectList(reqVO); + Map> groupMasterIdMap = detailDOList.stream().collect(Collectors.groupingBy(ContainerInitRecordDetailDO::getMasterId)); + for(ContainerInitRecordMainDO mainDO:mainDOList){ + Long id = mainDO.getId(); + List detailChildList = groupMasterIdMap.get(id); + if(detailChildList != null && detailChildList.size() > 0){ + for(ContainerInitRecordDetailDO detailDO:detailChildList){ + ContainerInitRecordMainExcelVO containerInitRecordMainExcelVO = new ContainerInitRecordMainExcelVO(); + BeanUtils.copyProperties(mainDO,containerInitRecordMainExcelVO); + BeanUtils.copyProperties(detailDO,containerInitRecordMainExcelVO); + excelVOList.add(containerInitRecordMainExcelVO); + } + } + } + } + return excelVOList; + } + + @Override + public List importContainerInitRecordMainList(List datas, Integer mode, boolean updatePart) { + if (CollUtil.isEmpty(datas)) { + throw exception(CONTAINER_INIT_RECORD_MAIN_IMPORT_LIST_IS_EMPTY); + } + + List errorList = new ArrayList<>(); +// datas.forEach(item -> { +// if(errorList == null){ +// // 判断如果不存在,在进行插入 +// ContainerInitRecordMainDO obj = containerInitRecordMainMapper.selectByCode(item.getCode()); +// if (obj == null&& mode != 3) { +// containerInitRecordMainMapper.insert(ContainerInitRecordMainConvert.INSTANCE.convert(item)); +// } +// else if (obj != null && mode != 2) {// 如果存在,判断是否允许更新 +// ContainerInitRecordMainDO containerInitRecordMainDO = ContainerInitRecordMainConvert.INSTANCE.convert(item); +// containerInitRecordMainDO.setId(obj.getId()); +// containerInitRecordMainMapper.updateById(obj); +// } +// } +// }); + + return errorList; + } +} diff --git a/win-module-wms/win-module-wms-biz/src/main/resources/mapper/containerinit/ContainerInitRecordDetailMapper.xml b/win-module-wms/win-module-wms-biz/src/main/resources/mapper/containerinit/ContainerInitRecordDetailMapper.xml new file mode 100644 index 00000000..0aab1030 --- /dev/null +++ b/win-module-wms/win-module-wms-biz/src/main/resources/mapper/containerinit/ContainerInitRecordDetailMapper.xml @@ -0,0 +1,12 @@ + + + + + + + diff --git a/win-module-wms/win-module-wms-biz/src/main/resources/mapper/containerinit/ContainerInitRecordMainMapper.xml b/win-module-wms/win-module-wms-biz/src/main/resources/mapper/containerinit/ContainerInitRecordMainMapper.xml new file mode 100644 index 00000000..b19c70ed --- /dev/null +++ b/win-module-wms/win-module-wms-biz/src/main/resources/mapper/containerinit/ContainerInitRecordMainMapper.xml @@ -0,0 +1,12 @@ + + + + + + +