Commit 5fbd35bb66786fd217a7cd504c7321b19e93d634

Authored by YunaiV
1 parent c96bd633

✨ feat(mes): 更新盘点方案参数及状态管理逻辑

移除不必要的字段,优化参数类型枚举,添加分页请求和响应对象,增强代码可读性和维护性。更新状态管理逻辑,确保盘点方案的启用状态与参数一致性。
Showing 19 changed files with 255 additions and 278 deletions
yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/controller/admin/wm/stocktaking/plan/MesWmStockTakingPlanController.java
1 package cn.iocoder.yudao.module.mes.controller.admin.wm.stocktaking.plan; 1 package cn.iocoder.yudao.module.mes.controller.admin.wm.stocktaking.plan;
2 2
3 -import cn.hutool.core.collection.CollUtil;  
4 import cn.iocoder.yudao.framework.apilog.core.annotation.ApiAccessLog; 3 import cn.iocoder.yudao.framework.apilog.core.annotation.ApiAccessLog;
  4 +import cn.iocoder.yudao.framework.common.enums.CommonStatusEnum;
5 import cn.iocoder.yudao.framework.common.pojo.CommonResult; 5 import cn.iocoder.yudao.framework.common.pojo.CommonResult;
6 import cn.iocoder.yudao.framework.common.pojo.PageParam; 6 import cn.iocoder.yudao.framework.common.pojo.PageParam;
7 import cn.iocoder.yudao.framework.common.pojo.PageResult; 7 import cn.iocoder.yudao.framework.common.pojo.PageResult;
8 import cn.iocoder.yudao.framework.common.util.object.BeanUtils; 8 import cn.iocoder.yudao.framework.common.util.object.BeanUtils;
9 import cn.iocoder.yudao.framework.excel.core.util.ExcelUtils; 9 import cn.iocoder.yudao.framework.excel.core.util.ExcelUtils;
10 -import cn.iocoder.yudao.module.mes.controller.admin.wm.stocktaking.plan.vo.*;  
11 -import cn.iocoder.yudao.module.mes.controller.admin.wm.stocktaking.plan.vo.param.MesWmStockTakingPlanParamRespVO; 10 +import cn.iocoder.yudao.module.mes.controller.admin.wm.stocktaking.plan.vo.MesWmStockTakingPlanPageReqVO;
  11 +import cn.iocoder.yudao.module.mes.controller.admin.wm.stocktaking.plan.vo.MesWmStockTakingPlanRespVO;
  12 +import cn.iocoder.yudao.module.mes.controller.admin.wm.stocktaking.plan.vo.MesWmStockTakingPlanSaveReqVO;
12 import cn.iocoder.yudao.module.mes.dal.dataobject.wm.stocktaking.plan.MesWmStockTakingPlanDO; 13 import cn.iocoder.yudao.module.mes.dal.dataobject.wm.stocktaking.plan.MesWmStockTakingPlanDO;
13 -import cn.iocoder.yudao.module.mes.service.wm.stocktaking.plan.MesWmStockTakingPlanParamService;  
14 import cn.iocoder.yudao.module.mes.service.wm.stocktaking.plan.MesWmStockTakingPlanService; 14 import cn.iocoder.yudao.module.mes.service.wm.stocktaking.plan.MesWmStockTakingPlanService;
15 import io.swagger.v3.oas.annotations.Operation; 15 import io.swagger.v3.oas.annotations.Operation;
16 import io.swagger.v3.oas.annotations.Parameter; 16 import io.swagger.v3.oas.annotations.Parameter;
  17 +import io.swagger.v3.oas.annotations.Parameters;
17 import io.swagger.v3.oas.annotations.tags.Tag; 18 import io.swagger.v3.oas.annotations.tags.Tag;
18 import jakarta.annotation.Resource; 19 import jakarta.annotation.Resource;
19 import jakarta.servlet.http.HttpServletResponse; 20 import jakarta.servlet.http.HttpServletResponse;
@@ -23,14 +24,10 @@ import org.springframework.validation.annotation.Validated; @@ -23,14 +24,10 @@ import org.springframework.validation.annotation.Validated;
23 import org.springframework.web.bind.annotation.*; 24 import org.springframework.web.bind.annotation.*;
24 25
25 import java.io.IOException; 26 import java.io.IOException;
26 -import java.util.Collection;  
27 -import java.util.Collections;  
28 import java.util.List; 27 import java.util.List;
29 -import java.util.Map;  
30 28
31 import static cn.iocoder.yudao.framework.apilog.core.enums.OperateTypeEnum.EXPORT; 29 import static cn.iocoder.yudao.framework.apilog.core.enums.OperateTypeEnum.EXPORT;
32 import static cn.iocoder.yudao.framework.common.pojo.CommonResult.success; 30 import static cn.iocoder.yudao.framework.common.pojo.CommonResult.success;
33 -import static cn.iocoder.yudao.framework.common.util.collection.CollectionUtils.convertSet;  
34 31
35 @Tag(name = "管理后台 - MES 盘点方案") 32 @Tag(name = "管理后台 - MES 盘点方案")
36 @RestController 33 @RestController
@@ -40,8 +37,6 @@ public class MesWmStockTakingPlanController { @@ -40,8 +37,6 @@ public class MesWmStockTakingPlanController {
40 37
41 @Resource 38 @Resource
42 private MesWmStockTakingPlanService stockTakingPlanService; 39 private MesWmStockTakingPlanService stockTakingPlanService;
43 - @Resource  
44 - private MesWmStockTakingPlanParamService stockTakingPlanParamService;  
45 40
46 @PostMapping("/create") 41 @PostMapping("/create")
47 @Operation(summary = "创建盘点方案") 42 @Operation(summary = "创建盘点方案")
@@ -73,10 +68,7 @@ public class MesWmStockTakingPlanController { @@ -73,10 +68,7 @@ public class MesWmStockTakingPlanController {
73 @PreAuthorize("@ss.hasPermission('mes:wm-stocktaking-plan:query')") 68 @PreAuthorize("@ss.hasPermission('mes:wm-stocktaking-plan:query')")
74 public CommonResult<MesWmStockTakingPlanRespVO> getStockTakingPlan(@RequestParam("id") Long id) { 69 public CommonResult<MesWmStockTakingPlanRespVO> getStockTakingPlan(@RequestParam("id") Long id) {
75 MesWmStockTakingPlanDO plan = stockTakingPlanService.getStockTakingPlan(id); 70 MesWmStockTakingPlanDO plan = stockTakingPlanService.getStockTakingPlan(id);
76 - if (plan == null) {  
77 - return success(null);  
78 - }  
79 - return success(buildRespVOList(Collections.singletonList(plan), true).get(0)); 71 + return success(plan == null ? null : BeanUtils.toBean(plan, MesWmStockTakingPlanRespVO.class));
80 } 72 }
81 73
82 @GetMapping("/page") 74 @GetMapping("/page")
@@ -84,7 +76,7 @@ public class MesWmStockTakingPlanController { @@ -84,7 +76,7 @@ public class MesWmStockTakingPlanController {
84 @PreAuthorize("@ss.hasPermission('mes:wm-stocktaking-plan:query')") 76 @PreAuthorize("@ss.hasPermission('mes:wm-stocktaking-plan:query')")
85 public CommonResult<PageResult<MesWmStockTakingPlanRespVO>> getStockTakingPlanPage(@Valid MesWmStockTakingPlanPageReqVO pageReqVO) { 77 public CommonResult<PageResult<MesWmStockTakingPlanRespVO>> getStockTakingPlanPage(@Valid MesWmStockTakingPlanPageReqVO pageReqVO) {
86 PageResult<MesWmStockTakingPlanDO> pageResult = stockTakingPlanService.getStockTakingPlanPage(pageReqVO); 78 PageResult<MesWmStockTakingPlanDO> pageResult = stockTakingPlanService.getStockTakingPlanPage(pageReqVO);
87 - return success(new PageResult<>(buildRespVOList(pageResult.getList(), false), pageResult.getTotal())); 79 + return success(BeanUtils.toBean(pageResult, MesWmStockTakingPlanRespVO.class));
88 } 80 }
89 81
90 @GetMapping("/export-excel") 82 @GetMapping("/export-excel")
@@ -96,25 +88,7 @@ public class MesWmStockTakingPlanController { @@ -96,25 +88,7 @@ public class MesWmStockTakingPlanController {
96 pageReqVO.setPageSize(PageParam.PAGE_SIZE_NONE); 88 pageReqVO.setPageSize(PageParam.PAGE_SIZE_NONE);
97 PageResult<MesWmStockTakingPlanDO> pageResult = stockTakingPlanService.getStockTakingPlanPage(pageReqVO); 89 PageResult<MesWmStockTakingPlanDO> pageResult = stockTakingPlanService.getStockTakingPlanPage(pageReqVO);
98 ExcelUtils.write(response, "盘点方案.xls", "数据", MesWmStockTakingPlanRespVO.class, 90 ExcelUtils.write(response, "盘点方案.xls", "数据", MesWmStockTakingPlanRespVO.class,
99 - buildRespVOList(pageResult.getList(), false));  
100 - }  
101 -  
102 - // TODO @AI:去掉 confirmStockTakingPlan 方法;改成 updateStatus 这种接口;  
103 - @PutMapping("/confirm")  
104 - @Operation(summary = "确认盘点方案")  
105 - @Parameter(name = "id", description = "编号", required = true)  
106 - @PreAuthorize("@ss.hasPermission('mes:wm-stocktaking-plan:update')")  
107 - public CommonResult<Boolean> confirmStockTakingPlan(@RequestParam("id") Long id) {  
108 - stockTakingPlanService.confirmStockTakingPlan(id);  
109 - return success(true);  
110 - }  
111 -  
112 - // TODO @AI:去掉 generateStockTakingTask 方法  
113 - @PostMapping("/generate-task")  
114 - @Operation(summary = "根据盘点方案生成盘点任务")  
115 - @PreAuthorize("@ss.hasPermission('mes:wm-stocktaking-task:create')")  
116 - public CommonResult<Long> generateStockTakingTask(@Valid @RequestBody MesWmStockTakingPlanGenerateReqVO reqVO) {  
117 - return success(stockTakingPlanService.generateStockTakingTask(reqVO)); 91 + BeanUtils.toBean(pageResult.getList(), MesWmStockTakingPlanRespVO.class));
118 } 92 }
119 93
120 private List<MesWmStockTakingPlanRespVO> buildRespVOList(List<MesWmStockTakingPlanDO> list, boolean includeParams) { 94 private List<MesWmStockTakingPlanRespVO> buildRespVOList(List<MesWmStockTakingPlanDO> list, boolean includeParams) {
yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/controller/admin/wm/stocktaking/plan/MesWmStockTakingPlanParamController.java
1 package cn.iocoder.yudao.module.mes.controller.admin.wm.stocktaking.plan; 1 package cn.iocoder.yudao.module.mes.controller.admin.wm.stocktaking.plan;
2 2
3 import cn.iocoder.yudao.framework.common.pojo.CommonResult; 3 import cn.iocoder.yudao.framework.common.pojo.CommonResult;
  4 +import cn.iocoder.yudao.framework.common.pojo.PageResult;
4 import cn.iocoder.yudao.framework.common.util.object.BeanUtils; 5 import cn.iocoder.yudao.framework.common.util.object.BeanUtils;
  6 +import cn.iocoder.yudao.module.mes.controller.admin.wm.stocktaking.plan.vo.param.MesWmStockTakingPlanParamPageReqVO;
5 import cn.iocoder.yudao.module.mes.controller.admin.wm.stocktaking.plan.vo.param.MesWmStockTakingPlanParamRespVO; 7 import cn.iocoder.yudao.module.mes.controller.admin.wm.stocktaking.plan.vo.param.MesWmStockTakingPlanParamRespVO;
6 import cn.iocoder.yudao.module.mes.controller.admin.wm.stocktaking.plan.vo.param.MesWmStockTakingPlanParamSaveReqVO; 8 import cn.iocoder.yudao.module.mes.controller.admin.wm.stocktaking.plan.vo.param.MesWmStockTakingPlanParamSaveReqVO;
7 import cn.iocoder.yudao.module.mes.dal.dataobject.wm.stocktaking.plan.MesWmStockTakingPlanParamDO; 9 import cn.iocoder.yudao.module.mes.dal.dataobject.wm.stocktaking.plan.MesWmStockTakingPlanParamDO;
@@ -15,8 +17,6 @@ import org.springframework.security.access.prepost.PreAuthorize; @@ -15,8 +17,6 @@ import org.springframework.security.access.prepost.PreAuthorize;
15 import org.springframework.validation.annotation.Validated; 17 import org.springframework.validation.annotation.Validated;
16 import org.springframework.web.bind.annotation.*; 18 import org.springframework.web.bind.annotation.*;
17 19
18 -import java.util.List;  
19 -  
20 import static cn.iocoder.yudao.framework.common.pojo.CommonResult.success; 20 import static cn.iocoder.yudao.framework.common.pojo.CommonResult.success;
21 21
22 @Tag(name = "管理后台 - MES 盘点方案参数") 22 @Tag(name = "管理后台 - MES 盘点方案参数")
@@ -61,14 +61,14 @@ public class MesWmStockTakingPlanParamController { @@ -61,14 +61,14 @@ public class MesWmStockTakingPlanParamController {
61 return success(param == null ? null : BeanUtils.toBean(param, MesWmStockTakingPlanParamRespVO.class)); 61 return success(param == null ? null : BeanUtils.toBean(param, MesWmStockTakingPlanParamRespVO.class));
62 } 62 }
63 63
64 - // TODO @AI:不需要这个接口;前端只需要分页接口;  
65 - @GetMapping("/list")  
66 - @Operation(summary = "获得盘点方案参数列表")  
67 - @Parameter(name = "planId", description = "方案编号", required = true)  
68 - @PreAuthorize("@ss.hasPermission('mes:wm-stocktaking-plan:query')")  
69 - public CommonResult<List<MesWmStockTakingPlanParamRespVO>> getStockTakingPlanParamList(@RequestParam("planId") Long planId) {  
70 - return success(BeanUtils.toBean(stockTakingPlanParamService.getStockTakingPlanParamList(planId),  
71 - MesWmStockTakingPlanParamRespVO.class)); 64 + @GetMapping("/page")
  65 + @Operation(summary = "获得盘点方案参数分页")
  66 + @PreAuthorize("@ss.hasPermission('mes:wm-stock-taking-plan:query')")
  67 + public CommonResult<PageResult<MesWmStockTakingPlanParamRespVO>> getStockTakingPlanParamPage(
  68 + @Valid MesWmStockTakingPlanParamPageReqVO pageReqVO) {
  69 + PageResult<MesWmStockTakingPlanParamDO> pageResult = stockTakingPlanParamService.getStockTakingPlanParamPage(pageReqVO);
  70 + return success(new PageResult<>(BeanUtils.toBean(pageResult.getList(), MesWmStockTakingPlanParamRespVO.class), pageResult.getTotal()));
72 } 71 }
73 72
  73 +
74 } 74 }
yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/controller/admin/wm/stocktaking/plan/vo/MesWmStockTakingPlanGenerateReqVO.java deleted
1 -package cn.iocoder.yudao.module.mes.controller.admin.wm.stocktaking.plan.vo;  
2 -  
3 -import cn.iocoder.yudao.module.mes.controller.admin.wm.stocktaking.plan.vo.param.MesWmStockTakingPlanParamSaveReqVO;  
4 -import io.swagger.v3.oas.annotations.media.Schema;  
5 -import jakarta.validation.constraints.NotEmpty;  
6 -import jakarta.validation.constraints.NotNull;  
7 -import lombok.Data;  
8 -  
9 -import java.time.LocalDateTime;  
10 -import java.util.List;  
11 -  
12 -@Schema(description = "管理后台 - MES 盘点方案生成任务 Request VO")  
13 -@Data  
14 -public class MesWmStockTakingPlanGenerateReqVO {  
15 -  
16 - @Schema(description = "方案编号", requiredMode = Schema.RequiredMode.REQUIRED, example = "1")  
17 - @NotNull(message = "方案编号不能为空")  
18 - private Long planId;  
19 -  
20 - @Schema(description = "任务编码", requiredMode = Schema.RequiredMode.REQUIRED, example = "ST202603080001")  
21 - @NotEmpty(message = "任务编码不能为空")  
22 - private String code;  
23 -  
24 - @Schema(description = "任务名称", requiredMode = Schema.RequiredMode.REQUIRED, example = "原料仓月度盘点任务")  
25 - @NotEmpty(message = "任务名称不能为空")  
26 - private String name;  
27 -  
28 - @Schema(description = "盘点日期")  
29 - private LocalDateTime takingDate;  
30 -  
31 - @Schema(description = "盘点人 ID", requiredMode = Schema.RequiredMode.REQUIRED, example = "1")  
32 - @NotNull(message = "盘点人不能为空")  
33 - private Long userId;  
34 -  
35 - @Schema(description = "备注", example = "备注")  
36 - private String remark;  
37 -  
38 - @Schema(description = "方案参数列表,为空时使用方案自身参数")  
39 - private List<MesWmStockTakingPlanParamSaveReqVO> params;  
40 -  
41 -}  
yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/controller/admin/wm/stocktaking/plan/vo/MesWmStockTakingPlanPageReqVO.java
@@ -4,11 +4,6 @@ import cn.iocoder.yudao.framework.common.pojo.PageParam; @@ -4,11 +4,6 @@ import cn.iocoder.yudao.framework.common.pojo.PageParam;
4 import io.swagger.v3.oas.annotations.media.Schema; 4 import io.swagger.v3.oas.annotations.media.Schema;
5 import lombok.Data; 5 import lombok.Data;
6 import lombok.EqualsAndHashCode; 6 import lombok.EqualsAndHashCode;
7 -import org.springframework.format.annotation.DateTimeFormat;  
8 -  
9 -import java.time.LocalDateTime;  
10 -  
11 -import static cn.iocoder.yudao.framework.common.util.date.DateUtils.FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND;  
12 7
13 @Schema(description = "管理后台 - MES 盘点方案分页 Request VO") 8 @Schema(description = "管理后台 - MES 盘点方案分页 Request VO")
14 @Data 9 @Data
@@ -24,14 +19,4 @@ public class MesWmStockTakingPlanPageReqVO extends PageParam { @@ -24,14 +19,4 @@ public class MesWmStockTakingPlanPageReqVO extends PageParam {
24 @Schema(description = "盘点类型", example = "1") 19 @Schema(description = "盘点类型", example = "1")
25 private Integer type; 20 private Integer type;
26 21
27 - @Schema(description = "状态", example = "0")  
28 - private Integer status;  
29 -  
30 - @Schema(description = "是否启用", example = "true")  
31 - private Boolean enableFlag;  
32 -  
33 - @Schema(description = "计划开始时间范围")  
34 - @DateTimeFormat(pattern = FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND)  
35 - private LocalDateTime[] startTime;  
36 -  
37 } 22 }
yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/controller/admin/wm/stocktaking/plan/vo/MesWmStockTakingPlanRespVO.java
@@ -2,12 +2,10 @@ package cn.iocoder.yudao.module.mes.controller.admin.wm.stocktaking.plan.vo; @@ -2,12 +2,10 @@ package cn.iocoder.yudao.module.mes.controller.admin.wm.stocktaking.plan.vo;
2 2
3 import cn.idev.excel.annotation.ExcelIgnoreUnannotated; 3 import cn.idev.excel.annotation.ExcelIgnoreUnannotated;
4 import cn.idev.excel.annotation.ExcelProperty; 4 import cn.idev.excel.annotation.ExcelProperty;
5 -import cn.iocoder.yudao.module.mes.controller.admin.wm.stocktaking.plan.vo.param.MesWmStockTakingPlanParamRespVO;  
6 import io.swagger.v3.oas.annotations.media.Schema; 5 import io.swagger.v3.oas.annotations.media.Schema;
7 import lombok.Data; 6 import lombok.Data;
8 7
9 import java.time.LocalDateTime; 8 import java.time.LocalDateTime;
10 -import java.util.List;  
11 9
12 @Schema(description = "管理后台 - MES 盘点方案 Response VO") 10 @Schema(description = "管理后台 - MES 盘点方案 Response VO")
13 @Data 11 @Data
@@ -46,10 +44,6 @@ public class MesWmStockTakingPlanRespVO { @@ -46,10 +44,6 @@ public class MesWmStockTakingPlanRespVO {
46 @ExcelProperty("是否冻结库存") 44 @ExcelProperty("是否冻结库存")
47 private Boolean frozenFlag; 45 private Boolean frozenFlag;
48 46
49 - @Schema(description = "是否启用", requiredMode = Schema.RequiredMode.REQUIRED, example = "true")  
50 - @ExcelProperty("是否启用")  
51 - private Boolean enableFlag;  
52 -  
53 @Schema(description = "状态", requiredMode = Schema.RequiredMode.REQUIRED, example = "0") 47 @Schema(description = "状态", requiredMode = Schema.RequiredMode.REQUIRED, example = "0")
54 @ExcelProperty("状态") 48 @ExcelProperty("状态")
55 private Integer status; 49 private Integer status;
@@ -58,9 +52,6 @@ public class MesWmStockTakingPlanRespVO { @@ -58,9 +52,6 @@ public class MesWmStockTakingPlanRespVO {
58 @ExcelProperty("备注") 52 @ExcelProperty("备注")
59 private String remark; 53 private String remark;
60 54
61 - @Schema(description = "方案参数列表")  
62 - private List<MesWmStockTakingPlanParamRespVO> params;  
63 -  
64 @Schema(description = "创建时间", requiredMode = Schema.RequiredMode.REQUIRED) 55 @Schema(description = "创建时间", requiredMode = Schema.RequiredMode.REQUIRED)
65 @ExcelProperty("创建时间") 56 @ExcelProperty("创建时间")
66 private LocalDateTime createTime; 57 private LocalDateTime createTime;
yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/controller/admin/wm/stocktaking/plan/vo/MesWmStockTakingPlanSaveReqVO.java
@@ -40,10 +40,6 @@ public class MesWmStockTakingPlanSaveReqVO { @@ -40,10 +40,6 @@ public class MesWmStockTakingPlanSaveReqVO {
40 @NotNull(message = "是否冻结库存不能为空") 40 @NotNull(message = "是否冻结库存不能为空")
41 private Boolean frozenFlag; 41 private Boolean frozenFlag;
42 42
43 - @Schema(description = "是否启用", example = "true")  
44 - @NotNull(message = "是否启用不能为空")  
45 - private Boolean enableFlag;  
46 -  
47 @Schema(description = "备注", example = "备注") 43 @Schema(description = "备注", example = "备注")
48 private String remark; 44 private String remark;
49 45
yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/controller/admin/wm/stocktaking/plan/vo/param/MesWmStockTakingPlanParamPageReqVO.java 0 → 100644
  1 +package cn.iocoder.yudao.module.mes.controller.admin.wm.stocktaking.plan.vo.param;
  2 +
  3 +import cn.iocoder.yudao.framework.common.pojo.PageParam;
  4 +import io.swagger.v3.oas.annotations.media.Schema;
  5 +import jakarta.validation.constraints.NotNull;
  6 +import lombok.Data;
  7 +import lombok.EqualsAndHashCode;
  8 +import lombok.ToString;
  9 +
  10 +@Schema(description = "管理后台 - MES 盘点方案参数分页 Request VO")
  11 +@Data
  12 +@EqualsAndHashCode(callSuper = true)
  13 +@ToString(callSuper = true)
  14 +public class MesWmStockTakingPlanParamPageReqVO extends PageParam {
  15 +
  16 + @Schema(description = "方案 ID", requiredMode = Schema.RequiredMode.REQUIRED, example = "1")
  17 + @NotNull(message = "方案 ID 不能为空")
  18 + private Long planId;
  19 +
  20 +}
yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/dal/dataobject/wm/stocktaking/plan/MesWmStockTakingPlanDO.java
1 package cn.iocoder.yudao.module.mes.dal.dataobject.wm.stocktaking.plan; 1 package cn.iocoder.yudao.module.mes.dal.dataobject.wm.stocktaking.plan;
2 2
  3 +import cn.iocoder.yudao.framework.common.enums.CommonStatusEnum;
3 import cn.iocoder.yudao.framework.mybatis.core.dataobject.BaseDO; 4 import cn.iocoder.yudao.framework.mybatis.core.dataobject.BaseDO;
4 -import cn.iocoder.yudao.module.mes.enums.wm.MesWmStockTakingPlanStatusEnum;  
5 import cn.iocoder.yudao.module.mes.enums.wm.MesWmStockTakingTypeEnum; 5 import cn.iocoder.yudao.module.mes.enums.wm.MesWmStockTakingTypeEnum;
6 import com.baomidou.mybatisplus.annotation.KeySequence; 6 import com.baomidou.mybatisplus.annotation.KeySequence;
7 import com.baomidou.mybatisplus.annotation.TableId; 7 import com.baomidou.mybatisplus.annotation.TableId;
@@ -10,8 +10,6 @@ import lombok.*; @@ -10,8 +10,6 @@ import lombok.*;
10 10
11 import java.time.LocalDateTime; 11 import java.time.LocalDateTime;
12 12
13 -// TODO @AI:缺少注释;  
14 -  
15 /** 13 /**
16 * MES 盘点方案 DO 14 * MES 盘点方案 DO
17 */ 15 */
@@ -25,35 +23,56 @@ import java.time.LocalDateTime; @@ -25,35 +23,56 @@ import java.time.LocalDateTime;
25 @AllArgsConstructor 23 @AllArgsConstructor
26 public class MesWmStockTakingPlanDO extends BaseDO { 24 public class MesWmStockTakingPlanDO extends BaseDO {
27 25
  26 + /**
  27 + * 编号
  28 + */
28 @TableId 29 @TableId
29 private Long id; 30 private Long id;
30 31
  32 + /**
  33 + * 方案编码
  34 + */
31 private String code; 35 private String code;
32 36
  37 + /**
  38 + * 方案名称
  39 + */
33 private String name; 40 private String name;
34 41
35 /** 42 /**
  43 + * 盘点类型
  44 + *
36 * 枚举 {@link MesWmStockTakingTypeEnum} 45 * 枚举 {@link MesWmStockTakingTypeEnum}
37 */ 46 */
38 private Integer type; 47 private Integer type;
39 - 48 + /**
  49 + * 计划开始时间
  50 + */
40 private LocalDateTime startTime; 51 private LocalDateTime startTime;
41 - 52 + /**
  53 + * 计划结束时间
  54 + */
42 private LocalDateTime endTime; 55 private LocalDateTime endTime;
43 56
  57 + /**
  58 + * 是否盲盘
  59 + */
44 private Boolean blindFlag; 60 private Boolean blindFlag;
45 - 61 + /**
  62 + * 是否冻结库存
  63 + */
46 private Boolean frozenFlag; 64 private Boolean frozenFlag;
47 65
48 - // TODO @AI:这个 enableFlag 改成 status,对应 CommonStatus;  
49 - private Boolean enableFlag;  
50 -  
51 - // TODO @AI:这个字段没用,可以删除掉;  
52 /** 66 /**
53 - * 枚举 {@link MesWmStockTakingPlanStatusEnum} 67 + * 状态
  68 + *
  69 + * 枚举 {@link CommonStatusEnum}
54 */ 70 */
55 private Integer status; 71 private Integer status;
56 72
  73 + /**
  74 + * 备注
  75 + */
57 private String remark; 76 private String remark;
58 77
59 } 78 }
yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/dal/dataobject/wm/stocktaking/plan/MesWmStockTakingPlanParamDO.java
@@ -20,9 +20,11 @@ import lombok.*; @@ -20,9 +20,11 @@ import lombok.*;
20 @AllArgsConstructor 20 @AllArgsConstructor
21 public class MesWmStockTakingPlanParamDO extends BaseDO { 21 public class MesWmStockTakingPlanParamDO extends BaseDO {
22 22
  23 + /**
  24 + * 编号
  25 + */
23 @TableId 26 @TableId
24 private Long id; 27 private Long id;
25 -  
26 /** 28 /**
27 * 盘点方案编号 29 * 盘点方案编号
28 * 30 *
@@ -31,6 +33,8 @@ public class MesWmStockTakingPlanParamDO extends BaseDO { @@ -31,6 +33,8 @@ public class MesWmStockTakingPlanParamDO extends BaseDO {
31 private Long planId; 33 private Long planId;
32 34
33 /** 35 /**
  36 + * 参数值类型
  37 + *
34 * 枚举 {@link MesWmStockTakingPlanParamTypeEnum} 38 * 枚举 {@link MesWmStockTakingPlanParamTypeEnum}
35 */ 39 */
36 private Integer type; 40 private Integer type;
@@ -39,19 +43,18 @@ public class MesWmStockTakingPlanParamDO extends BaseDO { @@ -39,19 +43,18 @@ public class MesWmStockTakingPlanParamDO extends BaseDO {
39 * 参数值编号,例如仓库、库区、库位、物料、批次的主键 ID 43 * 参数值编号,例如仓库、库区、库位、物料、批次的主键 ID
40 */ 44 */
41 private Long valueId; 45 private Long valueId;
42 -  
43 /** 46 /**
44 * 参数值编码,例如仓库编码、库区编码、库位编码、物料编码、批次编码 47 * 参数值编码,例如仓库编码、库区编码、库位编码、物料编码、批次编码
45 */ 48 */
46 private String valueCode; 49 private String valueCode;
47 -  
48 /** 50 /**
49 * 参数值名称,例如仓库名称、库区名称、库位名称、物料名称、批次名称 51 * 参数值名称,例如仓库名称、库区名称、库位名称、物料名称、批次名称
50 */ 52 */
51 private String valueName; 53 private String valueName;
52 54
  55 + /**
  56 + * 备注
  57 + */
53 private String remark; 58 private String remark;
54 59
55 - private Long tenantId;  
56 -  
57 } 60 }
yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/dal/mysql/wm/stocktaking/plan/MesWmStockTakingPlanMapper.java
@@ -24,16 +24,12 @@ public interface MesWmStockTakingPlanMapper extends BaseMapperX&lt;MesWmStockTaking @@ -24,16 +24,12 @@ public interface MesWmStockTakingPlanMapper extends BaseMapperX&lt;MesWmStockTaking
24 .likeIfPresent(MesWmStockTakingPlanDO::getCode, reqVO.getCode()) 24 .likeIfPresent(MesWmStockTakingPlanDO::getCode, reqVO.getCode())
25 .likeIfPresent(MesWmStockTakingPlanDO::getName, reqVO.getName()) 25 .likeIfPresent(MesWmStockTakingPlanDO::getName, reqVO.getName())
26 .eqIfPresent(MesWmStockTakingPlanDO::getType, reqVO.getType()) 26 .eqIfPresent(MesWmStockTakingPlanDO::getType, reqVO.getType())
27 - .eqIfPresent(MesWmStockTakingPlanDO::getStatus, reqVO.getStatus())  
28 - .eqIfPresent(MesWmStockTakingPlanDO::getEnableFlag, reqVO.getEnableFlag())  
29 - .betweenIfPresent(MesWmStockTakingPlanDO::getStartTime, reqVO.getStartTime())  
30 .orderByDesc(MesWmStockTakingPlanDO::getId)); 27 .orderByDesc(MesWmStockTakingPlanDO::getId));
31 } 28 }
32 29
33 default List<MesWmStockTakingPlanDO> selectListByStatus(Integer status) { 30 default List<MesWmStockTakingPlanDO> selectListByStatus(Integer status) {
34 return selectList(new LambdaQueryWrapperX<MesWmStockTakingPlanDO>() 31 return selectList(new LambdaQueryWrapperX<MesWmStockTakingPlanDO>()
35 .eqIfPresent(MesWmStockTakingPlanDO::getStatus, status) 32 .eqIfPresent(MesWmStockTakingPlanDO::getStatus, status)
36 - .eq(MesWmStockTakingPlanDO::getEnableFlag, true)  
37 .orderByDesc(MesWmStockTakingPlanDO::getId)); 33 .orderByDesc(MesWmStockTakingPlanDO::getId));
38 } 34 }
39 35
yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/dal/mysql/wm/stocktaking/plan/MesWmStockTakingPlanParamMapper.java
1 package cn.iocoder.yudao.module.mes.dal.mysql.wm.stocktaking.plan; 1 package cn.iocoder.yudao.module.mes.dal.mysql.wm.stocktaking.plan;
2 2
  3 +import cn.iocoder.yudao.framework.common.pojo.PageResult;
3 import cn.iocoder.yudao.framework.mybatis.core.mapper.BaseMapperX; 4 import cn.iocoder.yudao.framework.mybatis.core.mapper.BaseMapperX;
4 import cn.iocoder.yudao.framework.mybatis.core.query.LambdaQueryWrapperX; 5 import cn.iocoder.yudao.framework.mybatis.core.query.LambdaQueryWrapperX;
  6 +import cn.iocoder.yudao.module.mes.controller.admin.wm.stocktaking.plan.vo.param.MesWmStockTakingPlanParamPageReqVO;
5 import cn.iocoder.yudao.module.mes.dal.dataobject.wm.stocktaking.plan.MesWmStockTakingPlanParamDO; 7 import cn.iocoder.yudao.module.mes.dal.dataobject.wm.stocktaking.plan.MesWmStockTakingPlanParamDO;
6 import org.apache.ibatis.annotations.Mapper; 8 import org.apache.ibatis.annotations.Mapper;
7 9
8 -import java.util.Collection;  
9 import java.util.List; 10 import java.util.List;
10 11
11 /** 12 /**
@@ -14,23 +15,18 @@ import java.util.List; @@ -14,23 +15,18 @@ import java.util.List;
14 @Mapper 15 @Mapper
15 public interface MesWmStockTakingPlanParamMapper extends BaseMapperX<MesWmStockTakingPlanParamDO> { 16 public interface MesWmStockTakingPlanParamMapper extends BaseMapperX<MesWmStockTakingPlanParamDO> {
16 17
17 - default List<MesWmStockTakingPlanParamDO> selectListByPlanId(Long planId) {  
18 - return selectList(MesWmStockTakingPlanParamDO::getPlanId, planId); 18 + default PageResult<MesWmStockTakingPlanParamDO> selectPage(MesWmStockTakingPlanParamPageReqVO reqVO) {
  19 + return selectPage(reqVO, new LambdaQueryWrapperX<MesWmStockTakingPlanParamDO>()
  20 + .eqIfPresent(MesWmStockTakingPlanParamDO::getPlanId, reqVO.getPlanId())
  21 + .orderByAsc(MesWmStockTakingPlanParamDO::getId));
19 } 22 }
20 23
21 - default List<MesWmStockTakingPlanParamDO> selectListByPlanIds(Collection<Long> planIds) {  
22 - return selectList(MesWmStockTakingPlanParamDO::getPlanId, planIds); 24 + default List<MesWmStockTakingPlanParamDO> selectListByPlanId(Long planId) {
  25 + return selectList(MesWmStockTakingPlanParamDO::getPlanId, planId);
23 } 26 }
24 27
25 default void deleteByPlanId(Long planId) { 28 default void deleteByPlanId(Long planId) {
26 delete(MesWmStockTakingPlanParamDO::getPlanId, planId); 29 delete(MesWmStockTakingPlanParamDO::getPlanId, planId);
27 } 30 }
28 31
29 - default List<MesWmStockTakingPlanParamDO> selectListByPlanIdAndType(Long planId, Integer type) {  
30 - return selectList(new LambdaQueryWrapperX<MesWmStockTakingPlanParamDO>()  
31 - .eq(MesWmStockTakingPlanParamDO::getPlanId, planId)  
32 - .eq(MesWmStockTakingPlanParamDO::getType, type)  
33 - .orderByAsc(MesWmStockTakingPlanParamDO::getId));  
34 - }  
35 -  
36 } 32 }
yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/enums/ErrorCodeConstants.java
@@ -472,8 +472,8 @@ public interface ErrorCodeConstants { @@ -472,8 +472,8 @@ public interface ErrorCodeConstants {
472 // ========== MES 仓库管理-盘点方案/任务/结果(1-040-714-100) ========== 472 // ========== MES 仓库管理-盘点方案/任务/结果(1-040-714-100) ==========
473 ErrorCode WM_STOCK_TAKING_PLAN_NOT_EXISTS = new ErrorCode(1_040_714_100, "盘点方案不存在"); 473 ErrorCode WM_STOCK_TAKING_PLAN_NOT_EXISTS = new ErrorCode(1_040_714_100, "盘点方案不存在");
474 ErrorCode WM_STOCK_TAKING_PLAN_CODE_DUPLICATE = new ErrorCode(1_040_714_101, "盘点方案编码已存在"); 474 ErrorCode WM_STOCK_TAKING_PLAN_CODE_DUPLICATE = new ErrorCode(1_040_714_101, "盘点方案编码已存在");
475 - ErrorCode WM_STOCK_TAKING_PLAN_NOT_PREPARE = new ErrorCode(1_040_714_102, "只有草稿状态的盘点方案才允许此操作");  
476 - ErrorCode WM_STOCK_TAKING_PLAN_NOT_CONFIRMED = new ErrorCode(1_040_714_103, "只有已确认状态的盘点方案才允许生成任务"); 475 + ErrorCode WM_STOCK_TAKING_PLAN_NOT_DISABLED = new ErrorCode(1_040_714_102, "只有禁用状态的盘点方案才允许修改、删除或维护参数");
  476 + ErrorCode WM_STOCK_TAKING_PLAN_NOT_ENABLED = new ErrorCode(1_040_714_103, "只有启用状态的盘点方案才允许生成任务");
477 ErrorCode WM_STOCK_TAKING_PLAN_PARAM_NOT_EXISTS = new ErrorCode(1_040_714_104, "盘点方案参数不存在"); 477 ErrorCode WM_STOCK_TAKING_PLAN_PARAM_NOT_EXISTS = new ErrorCode(1_040_714_104, "盘点方案参数不存在");
478 ErrorCode WM_STOCK_TAKING_TASK_NOT_EXISTS = new ErrorCode(1_040_714_110, "盘点任务不存在"); 478 ErrorCode WM_STOCK_TAKING_TASK_NOT_EXISTS = new ErrorCode(1_040_714_110, "盘点任务不存在");
479 ErrorCode WM_STOCK_TAKING_TASK_CODE_DUPLICATE = new ErrorCode(1_040_714_111, "盘点任务编码已存在"); 479 ErrorCode WM_STOCK_TAKING_TASK_CODE_DUPLICATE = new ErrorCode(1_040_714_111, "盘点任务编码已存在");
yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/enums/wm/MesWmStockTakingPlanParamTypeEnum.java
@@ -7,7 +7,6 @@ import lombok.Getter; @@ -7,7 +7,6 @@ import lombok.Getter;
7 7
8 import java.util.Arrays; 8 import java.util.Arrays;
9 9
10 -// TODO @AI:缺少注释;type + name 这种;  
11 /** 10 /**
12 * MES 盘点方案参数类型枚举 11 * MES 盘点方案参数类型枚举
13 */ 12 */
@@ -24,7 +23,13 @@ public enum MesWmStockTakingPlanParamTypeEnum implements ArrayValuable&lt;Integer&gt; @@ -24,7 +23,13 @@ public enum MesWmStockTakingPlanParamTypeEnum implements ArrayValuable&lt;Integer&gt;
24 public static final Integer[] ARRAYS = Arrays.stream(values()) 23 public static final Integer[] ARRAYS = Arrays.stream(values())
25 .map(MesWmStockTakingPlanParamTypeEnum::getType).toArray(Integer[]::new); 24 .map(MesWmStockTakingPlanParamTypeEnum::getType).toArray(Integer[]::new);
26 25
  26 + /**
  27 + * 参数类型
  28 + */
27 private final Integer type; 29 private final Integer type;
  30 + /**
  31 + * 类型名称
  32 + */
28 private final String name; 33 private final String name;
29 34
30 @Override 35 @Override
yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/enums/wm/MesWmStockTakingPlanStatusEnum.java deleted
1 -package cn.iocoder.yudao.module.mes.enums.wm;  
2 -  
3 -import cn.iocoder.yudao.framework.common.core.ArrayValuable;  
4 -import cn.iocoder.yudao.module.mes.enums.MesOrderStatusConstants;  
5 -import lombok.AllArgsConstructor;  
6 -import lombok.Getter;  
7 -  
8 -import java.util.Arrays;  
9 -  
10 -// TODO @AI:缺少注释;status + name 这种;  
11 -/**  
12 - * MES 盘点方案状态枚举  
13 - */  
14 -@Getter  
15 -@AllArgsConstructor  
16 -public enum MesWmStockTakingPlanStatusEnum implements ArrayValuable<Integer> {  
17 -  
18 - PREPARE(MesOrderStatusConstants.PREPARE, "草稿"),  
19 - CONFIRMED(MesOrderStatusConstants.CONFIRMED, "已确认");  
20 -  
21 - public static final Integer[] ARRAYS = Arrays.stream(values())  
22 - .map(MesWmStockTakingPlanStatusEnum::getStatus).toArray(Integer[]::new);  
23 -  
24 - private final Integer status;  
25 - private final String name;  
26 -  
27 - @Override  
28 - public Integer[] array() {  
29 - return ARRAYS;  
30 - }  
31 -  
32 -}  
yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/enums/wm/MesWmStockTakingTypeEnum.java
@@ -6,7 +6,6 @@ import lombok.Getter; @@ -6,7 +6,6 @@ import lombok.Getter;
6 6
7 import java.util.Arrays; 7 import java.util.Arrays;
8 8
9 -// TODO @AI:缺少注释;type + name 这种;  
10 /** 9 /**
11 * MES 盘点类型枚举 10 * MES 盘点类型枚举
12 */ 11 */
@@ -14,15 +13,19 @@ import java.util.Arrays; @@ -14,15 +13,19 @@ import java.util.Arrays;
14 @AllArgsConstructor 13 @AllArgsConstructor
15 public enum MesWmStockTakingTypeEnum implements ArrayValuable<Integer> { 14 public enum MesWmStockTakingTypeEnum implements ArrayValuable<Integer> {
16 15
17 - // TODO @AI:只有 2 种:动态盘点、静态盘点;按照这个顺序枚举;  
18 - OPEN(1, "开放盘点"),  
19 - CYCLE(2, "循环盘点"),  
20 - DYNAMIC(3, "动态盘点"); 16 + STATIC(1, "静态盘点"),
  17 + DYNAMIC(2, "动态盘点");
21 18
22 public static final Integer[] ARRAYS = Arrays.stream(values()) 19 public static final Integer[] ARRAYS = Arrays.stream(values())
23 .map(MesWmStockTakingTypeEnum::getType).toArray(Integer[]::new); 20 .map(MesWmStockTakingTypeEnum::getType).toArray(Integer[]::new);
24 21
  22 + /**
  23 + * 盘点类型
  24 + */
25 private final Integer type; 25 private final Integer type;
  26 + /**
  27 + * 类型名称
  28 + */
26 private final String name; 29 private final String name;
27 30
28 @Override 31 @Override
yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/service/wm/stocktaking/plan/MesWmStockTakingPlanParamService.java
1 package cn.iocoder.yudao.module.mes.service.wm.stocktaking.plan; 1 package cn.iocoder.yudao.module.mes.service.wm.stocktaking.plan;
2 2
  3 +import cn.iocoder.yudao.framework.common.pojo.PageResult;
  4 +import cn.iocoder.yudao.module.mes.controller.admin.wm.stocktaking.plan.vo.param.MesWmStockTakingPlanParamPageReqVO;
3 import cn.iocoder.yudao.module.mes.controller.admin.wm.stocktaking.plan.vo.param.MesWmStockTakingPlanParamSaveReqVO; 5 import cn.iocoder.yudao.module.mes.controller.admin.wm.stocktaking.plan.vo.param.MesWmStockTakingPlanParamSaveReqVO;
4 import cn.iocoder.yudao.module.mes.dal.dataobject.wm.stocktaking.plan.MesWmStockTakingPlanParamDO; 6 import cn.iocoder.yudao.module.mes.dal.dataobject.wm.stocktaking.plan.MesWmStockTakingPlanParamDO;
5 import jakarta.validation.Valid; 7 import jakarta.validation.Valid;
6 8
7 -import java.util.Collection;  
8 -import java.util.List;  
9 -import java.util.Map;  
10 -  
11 -import static cn.iocoder.yudao.framework.common.util.collection.CollectionUtils.convertMultiMap;  
12 -  
13 -// TODO @AI:必要的注释  
14 /** 9 /**
15 * MES 盘点方案参数 Service 接口 10 * MES 盘点方案参数 Service 接口
16 */ 11 */
17 public interface MesWmStockTakingPlanParamService { 12 public interface MesWmStockTakingPlanParamService {
18 13
  14 + /**
  15 + * 创建盘点方案参数
  16 + *
  17 + * @param createReqVO 创建信息
  18 + * @return 参数编号
  19 + */
19 Long createStockTakingPlanParam(@Valid MesWmStockTakingPlanParamSaveReqVO createReqVO); 20 Long createStockTakingPlanParam(@Valid MesWmStockTakingPlanParamSaveReqVO createReqVO);
20 21
  22 + /**
  23 + * 更新盘点方案参数
  24 + *
  25 + * @param updateReqVO 更新信息
  26 + */
21 void updateStockTakingPlanParam(@Valid MesWmStockTakingPlanParamSaveReqVO updateReqVO); 27 void updateStockTakingPlanParam(@Valid MesWmStockTakingPlanParamSaveReqVO updateReqVO);
22 28
  29 + /**
  30 + * 删除盘点方案参数
  31 + *
  32 + * @param id 参数编号
  33 + */
23 void deleteStockTakingPlanParam(Long id); 34 void deleteStockTakingPlanParam(Long id);
24 35
  36 + /**
  37 + * 获得盘点方案参数
  38 + *
  39 + * @param id 参数编号
  40 + * @return 盘点方案参数
  41 + */
25 MesWmStockTakingPlanParamDO getStockTakingPlanParam(Long id); 42 MesWmStockTakingPlanParamDO getStockTakingPlanParam(Long id);
26 43
27 - List<MesWmStockTakingPlanParamDO> getStockTakingPlanParamList(Long planId);  
28 -  
29 - default Map<Long, List<MesWmStockTakingPlanParamDO>> getStockTakingPlanParamMap(Collection<Long> planIds) {  
30 - return convertMultiMap(getStockTakingPlanParamList(planIds), MesWmStockTakingPlanParamDO::getPlanId);  
31 - }  
32 -  
33 - List<MesWmStockTakingPlanParamDO> getStockTakingPlanParamList(Collection<Long> planIds); 44 + /**
  45 + * 分页查询盘点方案参数
  46 + *
  47 + * @param pageReqVO 分页查询条件
  48 + * @return 盘点方案参数分页结果
  49 + */
  50 + PageResult<MesWmStockTakingPlanParamDO> getStockTakingPlanParamPage(MesWmStockTakingPlanParamPageReqVO pageReqVO);
34 51
  52 + /**
  53 + * 根据盘点方案编号删除参数
  54 + *
  55 + * @param planId 盘点方案编号
  56 + */
35 void deleteStockTakingPlanParamByPlanId(Long planId); 57 void deleteStockTakingPlanParamByPlanId(Long planId);
36 58
  59 + /**
  60 + * 校验盘点方案参数是否存在
  61 + *
  62 + * @param id 参数编号
  63 + * @return 盘点方案参数
  64 + */
37 MesWmStockTakingPlanParamDO validateStockTakingPlanParamExists(Long id); 65 MesWmStockTakingPlanParamDO validateStockTakingPlanParamExists(Long id);
38 66
39 } 67 }
yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/service/wm/stocktaking/plan/MesWmStockTakingPlanParamServiceImpl.java
1 package cn.iocoder.yudao.module.mes.service.wm.stocktaking.plan; 1 package cn.iocoder.yudao.module.mes.service.wm.stocktaking.plan;
2 2
3 -import cn.hutool.core.collection.CollUtil; 3 +import cn.iocoder.yudao.framework.common.pojo.PageResult;
4 import cn.iocoder.yudao.framework.common.util.object.BeanUtils; 4 import cn.iocoder.yudao.framework.common.util.object.BeanUtils;
  5 +import cn.iocoder.yudao.module.mes.controller.admin.wm.stocktaking.plan.vo.param.MesWmStockTakingPlanParamPageReqVO;
5 import cn.iocoder.yudao.module.mes.controller.admin.wm.stocktaking.plan.vo.param.MesWmStockTakingPlanParamSaveReqVO; 6 import cn.iocoder.yudao.module.mes.controller.admin.wm.stocktaking.plan.vo.param.MesWmStockTakingPlanParamSaveReqVO;
6 -import cn.iocoder.yudao.module.mes.dal.dataobject.wm.stocktaking.plan.MesWmStockTakingPlanDO;  
7 import cn.iocoder.yudao.module.mes.dal.dataobject.wm.stocktaking.plan.MesWmStockTakingPlanParamDO; 7 import cn.iocoder.yudao.module.mes.dal.dataobject.wm.stocktaking.plan.MesWmStockTakingPlanParamDO;
8 import cn.iocoder.yudao.module.mes.dal.mysql.wm.stocktaking.plan.MesWmStockTakingPlanParamMapper; 8 import cn.iocoder.yudao.module.mes.dal.mysql.wm.stocktaking.plan.MesWmStockTakingPlanParamMapper;
9 import jakarta.annotation.Resource; 9 import jakarta.annotation.Resource;
@@ -11,14 +11,9 @@ import org.springframework.context.annotation.Lazy; @@ -11,14 +11,9 @@ import org.springframework.context.annotation.Lazy;
11 import org.springframework.stereotype.Service; 11 import org.springframework.stereotype.Service;
12 import org.springframework.validation.annotation.Validated; 12 import org.springframework.validation.annotation.Validated;
13 13
14 -import java.util.Collection;  
15 -import java.util.Collections;  
16 -import java.util.List;  
17 -  
18 import static cn.iocoder.yudao.framework.common.exception.util.ServiceExceptionUtil.exception; 14 import static cn.iocoder.yudao.framework.common.exception.util.ServiceExceptionUtil.exception;
19 import static cn.iocoder.yudao.module.mes.enums.ErrorCodeConstants.WM_STOCK_TAKING_PLAN_PARAM_NOT_EXISTS; 15 import static cn.iocoder.yudao.module.mes.enums.ErrorCodeConstants.WM_STOCK_TAKING_PLAN_PARAM_NOT_EXISTS;
20 16
21 -// TODO @AI:必要的注释  
22 /** 17 /**
23 * MES 盘点方案参数 Service 实现类 18 * MES 盘点方案参数 Service 实现类
24 */ 19 */
@@ -34,19 +29,23 @@ public class MesWmStockTakingPlanParamServiceImpl implements MesWmStockTakingPla @@ -34,19 +29,23 @@ public class MesWmStockTakingPlanParamServiceImpl implements MesWmStockTakingPla
34 29
35 @Override 30 @Override
36 public Long createStockTakingPlanParam(MesWmStockTakingPlanParamSaveReqVO createReqVO) { 31 public Long createStockTakingPlanParam(MesWmStockTakingPlanParamSaveReqVO createReqVO) {
37 - MesWmStockTakingPlanDO plan = stockTakingPlanService.validateStockTakingPlanEditable(createReqVO.getPlanId()); 32 + // 校验盘点方案是否可编辑
  33 + stockTakingPlanService.validateStockTakingPlanEditable(createReqVO.getPlanId());
38 34
  35 + // 创建盘点方案参数
39 MesWmStockTakingPlanParamDO param = BeanUtils.toBean(createReqVO, MesWmStockTakingPlanParamDO.class); 36 MesWmStockTakingPlanParamDO param = BeanUtils.toBean(createReqVO, MesWmStockTakingPlanParamDO.class);
40 - param.setPlanId(plan.getId());  
41 stockTakingPlanParamMapper.insert(param); 37 stockTakingPlanParamMapper.insert(param);
42 return param.getId(); 38 return param.getId();
43 } 39 }
44 40
45 @Override 41 @Override
46 public void updateStockTakingPlanParam(MesWmStockTakingPlanParamSaveReqVO updateReqVO) { 42 public void updateStockTakingPlanParam(MesWmStockTakingPlanParamSaveReqVO updateReqVO) {
  43 + // 校验盘点方案参数存在
47 MesWmStockTakingPlanParamDO param = validateStockTakingPlanParamExists(updateReqVO.getId()); 44 MesWmStockTakingPlanParamDO param = validateStockTakingPlanParamExists(updateReqVO.getId());
  45 + // 校验盘点方案是否可编辑
48 stockTakingPlanService.validateStockTakingPlanEditable(param.getPlanId()); 46 stockTakingPlanService.validateStockTakingPlanEditable(param.getPlanId());
49 47
  48 + // 更新盘点方案参数
50 MesWmStockTakingPlanParamDO updateObj = BeanUtils.toBean(updateReqVO, MesWmStockTakingPlanParamDO.class); 49 MesWmStockTakingPlanParamDO updateObj = BeanUtils.toBean(updateReqVO, MesWmStockTakingPlanParamDO.class);
51 updateObj.setPlanId(param.getPlanId()); 50 updateObj.setPlanId(param.getPlanId());
52 stockTakingPlanParamMapper.updateById(updateObj); 51 stockTakingPlanParamMapper.updateById(updateObj);
@@ -54,8 +53,12 @@ public class MesWmStockTakingPlanParamServiceImpl implements MesWmStockTakingPla @@ -54,8 +53,12 @@ public class MesWmStockTakingPlanParamServiceImpl implements MesWmStockTakingPla
54 53
55 @Override 54 @Override
56 public void deleteStockTakingPlanParam(Long id) { 55 public void deleteStockTakingPlanParam(Long id) {
  56 + // 校验盘点方案参数存在
57 MesWmStockTakingPlanParamDO param = validateStockTakingPlanParamExists(id); 57 MesWmStockTakingPlanParamDO param = validateStockTakingPlanParamExists(id);
  58 + // 校验盘点方案是否可编辑
58 stockTakingPlanService.validateStockTakingPlanEditable(param.getPlanId()); 59 stockTakingPlanService.validateStockTakingPlanEditable(param.getPlanId());
  60 +
  61 + // 删除盘点方案参数
59 stockTakingPlanParamMapper.deleteById(id); 62 stockTakingPlanParamMapper.deleteById(id);
60 } 63 }
61 64
@@ -65,16 +68,8 @@ public class MesWmStockTakingPlanParamServiceImpl implements MesWmStockTakingPla @@ -65,16 +68,8 @@ public class MesWmStockTakingPlanParamServiceImpl implements MesWmStockTakingPla
65 } 68 }
66 69
67 @Override 70 @Override
68 - public List<MesWmStockTakingPlanParamDO> getStockTakingPlanParamList(Long planId) {  
69 - return stockTakingPlanParamMapper.selectListByPlanId(planId);  
70 - }  
71 -  
72 - @Override  
73 - public List<MesWmStockTakingPlanParamDO> getStockTakingPlanParamList(Collection<Long> planIds) {  
74 - if (CollUtil.isEmpty(planIds)) {  
75 - return Collections.emptyList();  
76 - }  
77 - return stockTakingPlanParamMapper.selectListByPlanIds(planIds); 71 + public PageResult<MesWmStockTakingPlanParamDO> getStockTakingPlanParamPage(MesWmStockTakingPlanParamPageReqVO pageReqVO) {
  72 + return stockTakingPlanParamMapper.selectPage(pageReqVO);
78 } 73 }
79 74
80 @Override 75 @Override
yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/service/wm/stocktaking/plan/MesWmStockTakingPlanService.java
1 package cn.iocoder.yudao.module.mes.service.wm.stocktaking.plan; 1 package cn.iocoder.yudao.module.mes.service.wm.stocktaking.plan;
2 2
3 import cn.iocoder.yudao.framework.common.pojo.PageResult; 3 import cn.iocoder.yudao.framework.common.pojo.PageResult;
4 -import cn.iocoder.yudao.module.mes.controller.admin.wm.stocktaking.plan.vo.MesWmStockTakingPlanGenerateReqVO;  
5 import cn.iocoder.yudao.module.mes.controller.admin.wm.stocktaking.plan.vo.MesWmStockTakingPlanPageReqVO; 4 import cn.iocoder.yudao.module.mes.controller.admin.wm.stocktaking.plan.vo.MesWmStockTakingPlanPageReqVO;
6 import cn.iocoder.yudao.module.mes.controller.admin.wm.stocktaking.plan.vo.MesWmStockTakingPlanSaveReqVO; 5 import cn.iocoder.yudao.module.mes.controller.admin.wm.stocktaking.plan.vo.MesWmStockTakingPlanSaveReqVO;
7 import cn.iocoder.yudao.module.mes.dal.dataobject.wm.stocktaking.plan.MesWmStockTakingPlanDO; 6 import cn.iocoder.yudao.module.mes.dal.dataobject.wm.stocktaking.plan.MesWmStockTakingPlanDO;
@@ -13,34 +12,97 @@ import java.util.Map; @@ -13,34 +12,97 @@ import java.util.Map;
13 12
14 import static cn.iocoder.yudao.framework.common.util.collection.CollectionUtils.convertMap; 13 import static cn.iocoder.yudao.framework.common.util.collection.CollectionUtils.convertMap;
15 14
16 -// TODO @AI:必要的注释  
17 /** 15 /**
18 * MES 盘点方案 Service 接口 16 * MES 盘点方案 Service 接口
19 */ 17 */
20 public interface MesWmStockTakingPlanService { 18 public interface MesWmStockTakingPlanService {
21 19
  20 + /**
  21 + * 创建盘点方案
  22 + *
  23 + * @param createReqVO 创建信息
  24 + * @return 盘点方案编号
  25 + */
22 Long createStockTakingPlan(@Valid MesWmStockTakingPlanSaveReqVO createReqVO); 26 Long createStockTakingPlan(@Valid MesWmStockTakingPlanSaveReqVO createReqVO);
23 27
  28 + /**
  29 + * 更新盘点方案
  30 + *
  31 + * @param updateReqVO 更新信息
  32 + */
24 void updateStockTakingPlan(@Valid MesWmStockTakingPlanSaveReqVO updateReqVO); 33 void updateStockTakingPlan(@Valid MesWmStockTakingPlanSaveReqVO updateReqVO);
25 34
  35 + /**
  36 + * 删除盘点方案
  37 + *
  38 + * @param id 盘点方案编号
  39 + */
26 void deleteStockTakingPlan(Long id); 40 void deleteStockTakingPlan(Long id);
27 41
28 - void confirmStockTakingPlan(Long id);  
29 -  
30 - Long generateStockTakingTask(@Valid MesWmStockTakingPlanGenerateReqVO reqVO);  
31 - 42 + /**
  43 + * 更新盘点方案状态。
  44 + *
  45 + * @param id 盘点方案编号
  46 + * @param status 状态
  47 + */
  48 + void updateStockTakingPlanStatus(Long id, Integer status);
  49 +
  50 + /**
  51 + * 获得盘点方案
  52 + *
  53 + * @param id 盘点方案编号
  54 + * @return 盘点方案
  55 + */
32 MesWmStockTakingPlanDO getStockTakingPlan(Long id); 56 MesWmStockTakingPlanDO getStockTakingPlan(Long id);
33 57
  58 + /**
  59 + * 校验盘点方案是否存在
  60 + *
  61 + * @param id 盘点方案编号
  62 + * @return 盘点方案
  63 + */
34 MesWmStockTakingPlanDO validateStockTakingPlanExists(Long id); 64 MesWmStockTakingPlanDO validateStockTakingPlanExists(Long id);
35 65
  66 + /**
  67 + * 校验盘点方案是否可编辑
  68 + *
  69 + * @param id 盘点方案编号
  70 + * @return 盘点方案
  71 + */
36 MesWmStockTakingPlanDO validateStockTakingPlanEditable(Long id); 72 MesWmStockTakingPlanDO validateStockTakingPlanEditable(Long id);
37 73
  74 + /**
  75 + * 获得盘点方案列表。
  76 + *
  77 + * @param ids 盘点方案编号集合
  78 + * @return 盘点方案列表
  79 + */
38 List<MesWmStockTakingPlanDO> getStockTakingPlanList(Collection<Long> ids); 80 List<MesWmStockTakingPlanDO> getStockTakingPlanList(Collection<Long> ids);
39 81
  82 + /**
  83 + * 获得盘点方案 Map
  84 + *
  85 + * @param ids 盘点方案编号集合
  86 + * @return 盘点方案 Map
  87 + */
40 default Map<Long, MesWmStockTakingPlanDO> getStockTakingPlanMap(Collection<Long> ids) { 88 default Map<Long, MesWmStockTakingPlanDO> getStockTakingPlanMap(Collection<Long> ids) {
41 return convertMap(getStockTakingPlanList(ids), MesWmStockTakingPlanDO::getId); 89 return convertMap(getStockTakingPlanList(ids), MesWmStockTakingPlanDO::getId);
42 } 90 }
43 91
  92 + /**
  93 + * 分页查询盘点方案
  94 + *
  95 + * @param pageReqVO 分页查询条件
  96 + * @return 盘点方案分页结果
  97 + */
44 PageResult<MesWmStockTakingPlanDO> getStockTakingPlanPage(MesWmStockTakingPlanPageReqVO pageReqVO); 98 PageResult<MesWmStockTakingPlanDO> getStockTakingPlanPage(MesWmStockTakingPlanPageReqVO pageReqVO);
45 99
  100 + /**
  101 + * 根据状态获得盘点方案列表。
  102 + *
  103 + * @param status 状态
  104 + * @return 盘点方案列表
  105 + */
  106 + List<MesWmStockTakingPlanDO> getStockTakingPlanListByStatus(Integer status);
  107 +
46 } 108 }
yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/service/wm/stocktaking/plan/MesWmStockTakingPlanServiceImpl.java
1 package cn.iocoder.yudao.module.mes.service.wm.stocktaking.plan; 1 package cn.iocoder.yudao.module.mes.service.wm.stocktaking.plan;
2 2
3 import cn.hutool.core.collection.CollUtil; 3 import cn.hutool.core.collection.CollUtil;
  4 +import cn.hutool.core.util.ObjUtil;
  5 +import cn.iocoder.yudao.framework.common.enums.CommonStatusEnum;
4 import cn.iocoder.yudao.framework.common.pojo.PageResult; 6 import cn.iocoder.yudao.framework.common.pojo.PageResult;
5 import cn.iocoder.yudao.framework.common.util.object.BeanUtils; 7 import cn.iocoder.yudao.framework.common.util.object.BeanUtils;
6 -import cn.iocoder.yudao.module.mes.controller.admin.wm.stocktaking.plan.vo.MesWmStockTakingPlanGenerateReqVO;  
7 import cn.iocoder.yudao.module.mes.controller.admin.wm.stocktaking.plan.vo.MesWmStockTakingPlanPageReqVO; 8 import cn.iocoder.yudao.module.mes.controller.admin.wm.stocktaking.plan.vo.MesWmStockTakingPlanPageReqVO;
8 -import cn.iocoder.yudao.module.mes.controller.admin.wm.stocktaking.plan.vo.param.MesWmStockTakingPlanParamSaveReqVO;  
9 import cn.iocoder.yudao.module.mes.controller.admin.wm.stocktaking.plan.vo.MesWmStockTakingPlanSaveReqVO; 9 import cn.iocoder.yudao.module.mes.controller.admin.wm.stocktaking.plan.vo.MesWmStockTakingPlanSaveReqVO;
10 -import cn.iocoder.yudao.module.mes.controller.admin.wm.stocktaking.vo.task.MesWmStockTakingTaskSaveReqVO;  
11 import cn.iocoder.yudao.module.mes.dal.dataobject.wm.stocktaking.plan.MesWmStockTakingPlanDO; 10 import cn.iocoder.yudao.module.mes.dal.dataobject.wm.stocktaking.plan.MesWmStockTakingPlanDO;
12 import cn.iocoder.yudao.module.mes.dal.mysql.wm.stocktaking.plan.MesWmStockTakingPlanMapper; 11 import cn.iocoder.yudao.module.mes.dal.mysql.wm.stocktaking.plan.MesWmStockTakingPlanMapper;
13 -import cn.iocoder.yudao.module.mes.enums.wm.MesWmStockTakingPlanStatusEnum;  
14 -import cn.iocoder.yudao.module.mes.service.wm.stocktaking.MesWmStockTakingTaskService;  
15 import jakarta.annotation.Resource; 12 import jakarta.annotation.Resource;
16 import org.springframework.stereotype.Service; 13 import org.springframework.stereotype.Service;
17 import org.springframework.transaction.annotation.Transactional; 14 import org.springframework.transaction.annotation.Transactional;
@@ -20,12 +17,13 @@ import org.springframework.validation.annotation.Validated; @@ -20,12 +17,13 @@ import org.springframework.validation.annotation.Validated;
20 import java.util.Collection; 17 import java.util.Collection;
21 import java.util.Collections; 18 import java.util.Collections;
22 import java.util.List; 19 import java.util.List;
23 -import java.util.Objects;  
24 20
25 import static cn.iocoder.yudao.framework.common.exception.util.ServiceExceptionUtil.exception; 21 import static cn.iocoder.yudao.framework.common.exception.util.ServiceExceptionUtil.exception;
26 import static cn.iocoder.yudao.module.mes.enums.ErrorCodeConstants.*; 22 import static cn.iocoder.yudao.module.mes.enums.ErrorCodeConstants.*;
27 23
28 -// TODO @AI:必要的注释 24 +/**
  25 + * MES 盘点方案 Service 实现类
  26 + */
29 @Service 27 @Service
30 @Validated 28 @Validated
31 public class MesWmStockTakingPlanServiceImpl implements MesWmStockTakingPlanService { 29 public class MesWmStockTakingPlanServiceImpl implements MesWmStockTakingPlanService {
@@ -34,67 +32,50 @@ public class MesWmStockTakingPlanServiceImpl implements MesWmStockTakingPlanServ @@ -34,67 +32,50 @@ public class MesWmStockTakingPlanServiceImpl implements MesWmStockTakingPlanServ
34 private MesWmStockTakingPlanMapper stockTakingPlanMapper; 32 private MesWmStockTakingPlanMapper stockTakingPlanMapper;
35 @Resource 33 @Resource
36 private MesWmStockTakingPlanParamService stockTakingPlanParamService; 34 private MesWmStockTakingPlanParamService stockTakingPlanParamService;
37 - @Resource  
38 - private MesWmStockTakingTaskService stockTakingTaskService;  
39 35
40 @Override 36 @Override
41 - @Transactional(rollbackFor = Exception.class)  
42 public Long createStockTakingPlan(MesWmStockTakingPlanSaveReqVO createReqVO) { 37 public Long createStockTakingPlan(MesWmStockTakingPlanSaveReqVO createReqVO) {
  38 + // 校验 code 的唯一性
43 validatePlanCodeUnique(null, createReqVO.getCode()); 39 validatePlanCodeUnique(null, createReqVO.getCode());
44 40
  41 + // 插入数据
45 MesWmStockTakingPlanDO plan = BeanUtils.toBean(createReqVO, MesWmStockTakingPlanDO.class); 42 MesWmStockTakingPlanDO plan = BeanUtils.toBean(createReqVO, MesWmStockTakingPlanDO.class);
46 - plan.setStatus(MesWmStockTakingPlanStatusEnum.PREPARE.getStatus()); 43 + plan.setStatus(CommonStatusEnum.DISABLE.getStatus());
47 stockTakingPlanMapper.insert(plan); 44 stockTakingPlanMapper.insert(plan);
48 return plan.getId(); 45 return plan.getId();
49 } 46 }
50 47
51 - // TODO @AI:开启后,就不允许编辑、删除了;  
52 @Override 48 @Override
53 - @Transactional(rollbackFor = Exception.class)  
54 public void updateStockTakingPlan(MesWmStockTakingPlanSaveReqVO updateReqVO) { 49 public void updateStockTakingPlan(MesWmStockTakingPlanSaveReqVO updateReqVO) {
55 - validatePlanExistsAndPrepare(updateReqVO.getId()); 50 + // 校验盘点方案存在,并且是可编辑状态
  51 + validatePlanEditable(updateReqVO.getId());
  52 + // 校验 code 的唯一性
56 validatePlanCodeUnique(updateReqVO.getId(), updateReqVO.getCode()); 53 validatePlanCodeUnique(updateReqVO.getId(), updateReqVO.getCode());
57 54
  55 + // 更新数据
58 MesWmStockTakingPlanDO updateObj = BeanUtils.toBean(updateReqVO, MesWmStockTakingPlanDO.class); 56 MesWmStockTakingPlanDO updateObj = BeanUtils.toBean(updateReqVO, MesWmStockTakingPlanDO.class);
59 stockTakingPlanMapper.updateById(updateObj); 57 stockTakingPlanMapper.updateById(updateObj);
60 } 58 }
61 59
62 - // TODO @AI:开启后,就不允许编辑、删除了;  
63 @Override 60 @Override
64 @Transactional(rollbackFor = Exception.class) 61 @Transactional(rollbackFor = Exception.class)
65 public void deleteStockTakingPlan(Long id) { 62 public void deleteStockTakingPlan(Long id) {
66 - validatePlanExistsAndPrepare(id); 63 + // 校验盘点方案存在,并且是可编辑状态
  64 + validatePlanEditable(id);
  65 +
  66 + // 删除盘点方案参数
67 stockTakingPlanParamService.deleteStockTakingPlanParamByPlanId(id); 67 stockTakingPlanParamService.deleteStockTakingPlanParamByPlanId(id);
  68 + // 删除盘点方案
68 stockTakingPlanMapper.deleteById(id); 69 stockTakingPlanMapper.deleteById(id);
69 } 70 }
70 71
71 @Override 72 @Override
72 - public void confirmStockTakingPlan(Long id) {  
73 - MesWmStockTakingPlanDO plan = validatePlanExistsAndPrepare(id);  
74 - plan.setStatus(MesWmStockTakingPlanStatusEnum.CONFIRMED.getStatus());  
75 - stockTakingPlanMapper.updateById(plan);  
76 - } 73 + public void updateStockTakingPlanStatus(Long id, Integer status) {
  74 + // 校验盘点方案存在
  75 + validateStockTakingPlanExists(id);
77 76
78 - // TODO @AI:这个方法不需要了呀;  
79 - @Override  
80 - public Long generateStockTakingTask(MesWmStockTakingPlanGenerateReqVO reqVO) {  
81 - MesWmStockTakingPlanDO plan = validatePlanExistsAndConfirmed(reqVO.getPlanId());  
82 - MesWmStockTakingTaskSaveReqVO taskSaveReqVO = new MesWmStockTakingTaskSaveReqVO();  
83 - taskSaveReqVO.setCode(reqVO.getCode());  
84 - taskSaveReqVO.setName(reqVO.getName());  
85 - taskSaveReqVO.setTakingDate(reqVO.getTakingDate());  
86 - taskSaveReqVO.setType(plan.getType());  
87 - taskSaveReqVO.setUserId(reqVO.getUserId());  
88 - taskSaveReqVO.setPlanId(plan.getId());  
89 - taskSaveReqVO.setBlindFlag(plan.getBlindFlag());  
90 - taskSaveReqVO.setFrozenFlag(plan.getFrozenFlag());  
91 - taskSaveReqVO.setRemark(reqVO.getRemark());  
92 -  
93 - List<MesWmStockTakingPlanParamSaveReqVO> params = reqVO.getParams();  
94 - if (CollUtil.isEmpty(params)) {  
95 - params = BeanUtils.toBean(stockTakingPlanParamService.getStockTakingPlanParamList(plan.getId()), MesWmStockTakingPlanParamSaveReqVO.class);  
96 - }  
97 - return stockTakingTaskService.createStockTakingTaskByPlan(reqVO, taskSaveReqVO, params); 77 + // 更新状态
  78 + stockTakingPlanMapper.updateById(new MesWmStockTakingPlanDO().setId(id).setStatus(status));
98 } 79 }
99 80
100 @Override 81 @Override
@@ -113,7 +94,7 @@ public class MesWmStockTakingPlanServiceImpl implements MesWmStockTakingPlanServ @@ -113,7 +94,7 @@ public class MesWmStockTakingPlanServiceImpl implements MesWmStockTakingPlanServ
113 94
114 @Override 95 @Override
115 public MesWmStockTakingPlanDO validateStockTakingPlanEditable(Long id) { 96 public MesWmStockTakingPlanDO validateStockTakingPlanEditable(Long id) {
116 - return validatePlanExistsAndPrepare(id); 97 + return validatePlanEditable(id);
117 } 98 }
118 99
119 @Override 100 @Override
@@ -129,29 +110,25 @@ public class MesWmStockTakingPlanServiceImpl implements MesWmStockTakingPlanServ @@ -129,29 +110,25 @@ public class MesWmStockTakingPlanServiceImpl implements MesWmStockTakingPlanServ
129 return stockTakingPlanMapper.selectPage(pageReqVO); 110 return stockTakingPlanMapper.selectPage(pageReqVO);
130 } 111 }
131 112
  113 + @Override
  114 + public List<MesWmStockTakingPlanDO> getStockTakingPlanListByStatus(Integer status) {
  115 + return stockTakingPlanMapper.selectListByStatus(status);
  116 + }
132 117
133 private void validatePlanCodeUnique(Long id, String code) { 118 private void validatePlanCodeUnique(Long id, String code) {
134 MesWmStockTakingPlanDO plan = stockTakingPlanMapper.selectByCode(code); 119 MesWmStockTakingPlanDO plan = stockTakingPlanMapper.selectByCode(code);
135 if (plan == null) { 120 if (plan == null) {
136 return; 121 return;
137 } 122 }
138 - if (id == null || !Objects.equals(plan.getId(), id)) { 123 + if (ObjUtil.notEqual(plan.getId(), id)) {
139 throw exception(WM_STOCK_TAKING_PLAN_CODE_DUPLICATE); 124 throw exception(WM_STOCK_TAKING_PLAN_CODE_DUPLICATE);
140 } 125 }
141 } 126 }
142 127
143 - private MesWmStockTakingPlanDO validatePlanExistsAndPrepare(Long id) {  
144 - MesWmStockTakingPlanDO plan = validateStockTakingPlanExists(id);  
145 - if (!MesWmStockTakingPlanStatusEnum.PREPARE.getStatus().equals(plan.getStatus())) {  
146 - throw exception(WM_STOCK_TAKING_PLAN_NOT_PREPARE);  
147 - }  
148 - return plan;  
149 - }  
150 -  
151 - private MesWmStockTakingPlanDO validatePlanExistsAndConfirmed(Long id) { 128 + private MesWmStockTakingPlanDO validatePlanEditable(Long id) {
152 MesWmStockTakingPlanDO plan = validateStockTakingPlanExists(id); 129 MesWmStockTakingPlanDO plan = validateStockTakingPlanExists(id);
153 - if (!MesWmStockTakingPlanStatusEnum.CONFIRMED.getStatus().equals(plan.getStatus())) {  
154 - throw exception(WM_STOCK_TAKING_PLAN_NOT_CONFIRMED); 130 + if (!CommonStatusEnum.isDisable(plan.getStatus())) {
  131 + throw exception(WM_STOCK_TAKING_PLAN_NOT_DISABLED);
155 } 132 }
156 return plan; 133 return plan;
157 } 134 }