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 1 package cn.iocoder.yudao.module.mes.controller.admin.wm.stocktaking.plan;
2 2  
3   -import cn.hutool.core.collection.CollUtil;
4 3 import cn.iocoder.yudao.framework.apilog.core.annotation.ApiAccessLog;
  4 +import cn.iocoder.yudao.framework.common.enums.CommonStatusEnum;
5 5 import cn.iocoder.yudao.framework.common.pojo.CommonResult;
6 6 import cn.iocoder.yudao.framework.common.pojo.PageParam;
7 7 import cn.iocoder.yudao.framework.common.pojo.PageResult;
8 8 import cn.iocoder.yudao.framework.common.util.object.BeanUtils;
9 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 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 14 import cn.iocoder.yudao.module.mes.service.wm.stocktaking.plan.MesWmStockTakingPlanService;
15 15 import io.swagger.v3.oas.annotations.Operation;
16 16 import io.swagger.v3.oas.annotations.Parameter;
  17 +import io.swagger.v3.oas.annotations.Parameters;
17 18 import io.swagger.v3.oas.annotations.tags.Tag;
18 19 import jakarta.annotation.Resource;
19 20 import jakarta.servlet.http.HttpServletResponse;
... ... @@ -23,14 +24,10 @@ import org.springframework.validation.annotation.Validated;
23 24 import org.springframework.web.bind.annotation.*;
24 25  
25 26 import java.io.IOException;
26   -import java.util.Collection;
27   -import java.util.Collections;
28 27 import java.util.List;
29   -import java.util.Map;
30 28  
31 29 import static cn.iocoder.yudao.framework.apilog.core.enums.OperateTypeEnum.EXPORT;
32 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 32 @Tag(name = "管理后台 - MES 盘点方案")
36 33 @RestController
... ... @@ -40,8 +37,6 @@ public class MesWmStockTakingPlanController {
40 37  
41 38 @Resource
42 39 private MesWmStockTakingPlanService stockTakingPlanService;
43   - @Resource
44   - private MesWmStockTakingPlanParamService stockTakingPlanParamService;
45 40  
46 41 @PostMapping("/create")
47 42 @Operation(summary = "创建盘点方案")
... ... @@ -73,10 +68,7 @@ public class MesWmStockTakingPlanController {
73 68 @PreAuthorize("@ss.hasPermission('mes:wm-stocktaking-plan:query')")
74 69 public CommonResult<MesWmStockTakingPlanRespVO> getStockTakingPlan(@RequestParam("id") Long id) {
75 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 74 @GetMapping("/page")
... ... @@ -84,7 +76,7 @@ public class MesWmStockTakingPlanController {
84 76 @PreAuthorize("@ss.hasPermission('mes:wm-stocktaking-plan:query')")
85 77 public CommonResult<PageResult<MesWmStockTakingPlanRespVO>> getStockTakingPlanPage(@Valid MesWmStockTakingPlanPageReqVO pageReqVO) {
86 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 82 @GetMapping("/export-excel")
... ... @@ -96,25 +88,7 @@ public class MesWmStockTakingPlanController {
96 88 pageReqVO.setPageSize(PageParam.PAGE_SIZE_NONE);
97 89 PageResult<MesWmStockTakingPlanDO> pageResult = stockTakingPlanService.getStockTakingPlanPage(pageReqVO);
98 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 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 1 package cn.iocoder.yudao.module.mes.controller.admin.wm.stocktaking.plan;
2 2  
3 3 import cn.iocoder.yudao.framework.common.pojo.CommonResult;
  4 +import cn.iocoder.yudao.framework.common.pojo.PageResult;
4 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 7 import cn.iocoder.yudao.module.mes.controller.admin.wm.stocktaking.plan.vo.param.MesWmStockTakingPlanParamRespVO;
6 8 import cn.iocoder.yudao.module.mes.controller.admin.wm.stocktaking.plan.vo.param.MesWmStockTakingPlanParamSaveReqVO;
7 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 17 import org.springframework.validation.annotation.Validated;
16 18 import org.springframework.web.bind.annotation.*;
17 19  
18   -import java.util.List;
19   -
20 20 import static cn.iocoder.yudao.framework.common.pojo.CommonResult.success;
21 21  
22 22 @Tag(name = "管理后台 - MES 盘点方案参数")
... ... @@ -61,14 +61,14 @@ public class MesWmStockTakingPlanParamController {
61 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 4 import io.swagger.v3.oas.annotations.media.Schema;
5 5 import lombok.Data;
6 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 8 @Schema(description = "管理后台 - MES 盘点方案分页 Request VO")
14 9 @Data
... ... @@ -24,14 +19,4 @@ public class MesWmStockTakingPlanPageReqVO extends PageParam {
24 19 @Schema(description = "盘点类型", example = "1")
25 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 2  
3 3 import cn.idev.excel.annotation.ExcelIgnoreUnannotated;
4 4 import cn.idev.excel.annotation.ExcelProperty;
5   -import cn.iocoder.yudao.module.mes.controller.admin.wm.stocktaking.plan.vo.param.MesWmStockTakingPlanParamRespVO;
6 5 import io.swagger.v3.oas.annotations.media.Schema;
7 6 import lombok.Data;
8 7  
9 8 import java.time.LocalDateTime;
10   -import java.util.List;
11 9  
12 10 @Schema(description = "管理后台 - MES 盘点方案 Response VO")
13 11 @Data
... ... @@ -46,10 +44,6 @@ public class MesWmStockTakingPlanRespVO {
46 44 @ExcelProperty("是否冻结库存")
47 45 private Boolean frozenFlag;
48 46  
49   - @Schema(description = "是否启用", requiredMode = Schema.RequiredMode.REQUIRED, example = "true")
50   - @ExcelProperty("是否启用")
51   - private Boolean enableFlag;
52   -
53 47 @Schema(description = "状态", requiredMode = Schema.RequiredMode.REQUIRED, example = "0")
54 48 @ExcelProperty("状态")
55 49 private Integer status;
... ... @@ -58,9 +52,6 @@ public class MesWmStockTakingPlanRespVO {
58 52 @ExcelProperty("备注")
59 53 private String remark;
60 54  
61   - @Schema(description = "方案参数列表")
62   - private List<MesWmStockTakingPlanParamRespVO> params;
63   -
64 55 @Schema(description = "创建时间", requiredMode = Schema.RequiredMode.REQUIRED)
65 56 @ExcelProperty("创建时间")
66 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 40 @NotNull(message = "是否冻结库存不能为空")
41 41 private Boolean frozenFlag;
42 42  
43   - @Schema(description = "是否启用", example = "true")
44   - @NotNull(message = "是否启用不能为空")
45   - private Boolean enableFlag;
46   -
47 43 @Schema(description = "备注", example = "备注")
48 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 1 package cn.iocoder.yudao.module.mes.dal.dataobject.wm.stocktaking.plan;
2 2  
  3 +import cn.iocoder.yudao.framework.common.enums.CommonStatusEnum;
3 4 import cn.iocoder.yudao.framework.mybatis.core.dataobject.BaseDO;
4   -import cn.iocoder.yudao.module.mes.enums.wm.MesWmStockTakingPlanStatusEnum;
5 5 import cn.iocoder.yudao.module.mes.enums.wm.MesWmStockTakingTypeEnum;
6 6 import com.baomidou.mybatisplus.annotation.KeySequence;
7 7 import com.baomidou.mybatisplus.annotation.TableId;
... ... @@ -10,8 +10,6 @@ import lombok.*;
10 10  
11 11 import java.time.LocalDateTime;
12 12  
13   -// TODO @AI:缺少注释;
14   -
15 13 /**
16 14 * MES 盘点方案 DO
17 15 */
... ... @@ -25,35 +23,56 @@ import java.time.LocalDateTime;
25 23 @AllArgsConstructor
26 24 public class MesWmStockTakingPlanDO extends BaseDO {
27 25  
  26 + /**
  27 + * 编号
  28 + */
28 29 @TableId
29 30 private Long id;
30 31  
  32 + /**
  33 + * 方案编码
  34 + */
31 35 private String code;
32 36  
  37 + /**
  38 + * 方案名称
  39 + */
33 40 private String name;
34 41  
35 42 /**
  43 + * 盘点类型
  44 + *
36 45 * 枚举 {@link MesWmStockTakingTypeEnum}
37 46 */
38 47 private Integer type;
39   -
  48 + /**
  49 + * 计划开始时间
  50 + */
40 51 private LocalDateTime startTime;
41   -
  52 + /**
  53 + * 计划结束时间
  54 + */
42 55 private LocalDateTime endTime;
43 56  
  57 + /**
  58 + * 是否盲盘
  59 + */
44 60 private Boolean blindFlag;
45   -
  61 + /**
  62 + * 是否冻结库存
  63 + */
46 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 71 private Integer status;
56 72  
  73 + /**
  74 + * 备注
  75 + */
57 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 20 @AllArgsConstructor
21 21 public class MesWmStockTakingPlanParamDO extends BaseDO {
22 22  
  23 + /**
  24 + * 编号
  25 + */
23 26 @TableId
24 27 private Long id;
25   -
26 28 /**
27 29 * 盘点方案编号
28 30 *
... ... @@ -31,6 +33,8 @@ public class MesWmStockTakingPlanParamDO extends BaseDO {
31 33 private Long planId;
32 34  
33 35 /**
  36 + * 参数值类型
  37 + *
34 38 * 枚举 {@link MesWmStockTakingPlanParamTypeEnum}
35 39 */
36 40 private Integer type;
... ... @@ -39,19 +43,18 @@ public class MesWmStockTakingPlanParamDO extends BaseDO {
39 43 * 参数值编号,例如仓库、库区、库位、物料、批次的主键 ID
40 44 */
41 45 private Long valueId;
42   -
43 46 /**
44 47 * 参数值编码,例如仓库编码、库区编码、库位编码、物料编码、批次编码
45 48 */
46 49 private String valueCode;
47   -
48 50 /**
49 51 * 参数值名称,例如仓库名称、库区名称、库位名称、物料名称、批次名称
50 52 */
51 53 private String valueName;
52 54  
  55 + /**
  56 + * 备注
  57 + */
53 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 24 .likeIfPresent(MesWmStockTakingPlanDO::getCode, reqVO.getCode())
25 25 .likeIfPresent(MesWmStockTakingPlanDO::getName, reqVO.getName())
26 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 27 .orderByDesc(MesWmStockTakingPlanDO::getId));
31 28 }
32 29  
33 30 default List<MesWmStockTakingPlanDO> selectListByStatus(Integer status) {
34 31 return selectList(new LambdaQueryWrapperX<MesWmStockTakingPlanDO>()
35 32 .eqIfPresent(MesWmStockTakingPlanDO::getStatus, status)
36   - .eq(MesWmStockTakingPlanDO::getEnableFlag, true)
37 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 1 package cn.iocoder.yudao.module.mes.dal.mysql.wm.stocktaking.plan;
2 2  
  3 +import cn.iocoder.yudao.framework.common.pojo.PageResult;
3 4 import cn.iocoder.yudao.framework.mybatis.core.mapper.BaseMapperX;
4 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 7 import cn.iocoder.yudao.module.mes.dal.dataobject.wm.stocktaking.plan.MesWmStockTakingPlanParamDO;
6 8 import org.apache.ibatis.annotations.Mapper;
7 9  
8   -import java.util.Collection;
9 10 import java.util.List;
10 11  
11 12 /**
... ... @@ -14,23 +15,18 @@ import java.util.List;
14 15 @Mapper
15 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 28 default void deleteByPlanId(Long planId) {
26 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 472 // ========== MES 仓库管理-盘点方案/任务/结果(1-040-714-100) ==========
473 473 ErrorCode WM_STOCK_TAKING_PLAN_NOT_EXISTS = new ErrorCode(1_040_714_100, "盘点方案不存在");
474 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 477 ErrorCode WM_STOCK_TAKING_PLAN_PARAM_NOT_EXISTS = new ErrorCode(1_040_714_104, "盘点方案参数不存在");
478 478 ErrorCode WM_STOCK_TAKING_TASK_NOT_EXISTS = new ErrorCode(1_040_714_110, "盘点任务不存在");
479 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  
8 8 import java.util.Arrays;
9 9  
10   -// TODO @AI:缺少注释;type + name 这种;
11 10 /**
12 11 * MES 盘点方案参数类型枚举
13 12 */
... ... @@ -24,7 +23,13 @@ public enum MesWmStockTakingPlanParamTypeEnum implements ArrayValuable&lt;Integer&gt;
24 23 public static final Integer[] ARRAYS = Arrays.stream(values())
25 24 .map(MesWmStockTakingPlanParamTypeEnum::getType).toArray(Integer[]::new);
26 25  
  26 + /**
  27 + * 参数类型
  28 + */
27 29 private final Integer type;
  30 + /**
  31 + * 类型名称
  32 + */
28 33 private final String name;
29 34  
30 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 6  
7 7 import java.util.Arrays;
8 8  
9   -// TODO @AI:缺少注释;type + name 这种;
10 9 /**
11 10 * MES 盘点类型枚举
12 11 */
... ... @@ -14,15 +13,19 @@ import java.util.Arrays;
14 13 @AllArgsConstructor
15 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 19 public static final Integer[] ARRAYS = Arrays.stream(values())
23 20 .map(MesWmStockTakingTypeEnum::getType).toArray(Integer[]::new);
24 21  
  22 + /**
  23 + * 盘点类型
  24 + */
25 25 private final Integer type;
  26 + /**
  27 + * 类型名称
  28 + */
26 29 private final String name;
27 30  
28 31 @Override
... ...
yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/service/wm/stocktaking/plan/MesWmStockTakingPlanParamService.java
1 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 5 import cn.iocoder.yudao.module.mes.controller.admin.wm.stocktaking.plan.vo.param.MesWmStockTakingPlanParamSaveReqVO;
4 6 import cn.iocoder.yudao.module.mes.dal.dataobject.wm.stocktaking.plan.MesWmStockTakingPlanParamDO;
5 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 10 * MES 盘点方案参数 Service 接口
16 11 */
17 12 public interface MesWmStockTakingPlanParamService {
18 13  
  14 + /**
  15 + * 创建盘点方案参数
  16 + *
  17 + * @param createReqVO 创建信息
  18 + * @return 参数编号
  19 + */
19 20 Long createStockTakingPlanParam(@Valid MesWmStockTakingPlanParamSaveReqVO createReqVO);
20 21  
  22 + /**
  23 + * 更新盘点方案参数
  24 + *
  25 + * @param updateReqVO 更新信息
  26 + */
21 27 void updateStockTakingPlanParam(@Valid MesWmStockTakingPlanParamSaveReqVO updateReqVO);
22 28  
  29 + /**
  30 + * 删除盘点方案参数
  31 + *
  32 + * @param id 参数编号
  33 + */
23 34 void deleteStockTakingPlanParam(Long id);
24 35  
  36 + /**
  37 + * 获得盘点方案参数
  38 + *
  39 + * @param id 参数编号
  40 + * @return 盘点方案参数
  41 + */
25 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 57 void deleteStockTakingPlanParamByPlanId(Long planId);
36 58  
  59 + /**
  60 + * 校验盘点方案参数是否存在
  61 + *
  62 + * @param id 参数编号
  63 + * @return 盘点方案参数
  64 + */
37 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 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 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 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 7 import cn.iocoder.yudao.module.mes.dal.dataobject.wm.stocktaking.plan.MesWmStockTakingPlanParamDO;
8 8 import cn.iocoder.yudao.module.mes.dal.mysql.wm.stocktaking.plan.MesWmStockTakingPlanParamMapper;
9 9 import jakarta.annotation.Resource;
... ... @@ -11,14 +11,9 @@ import org.springframework.context.annotation.Lazy;
11 11 import org.springframework.stereotype.Service;
12 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 14 import static cn.iocoder.yudao.framework.common.exception.util.ServiceExceptionUtil.exception;
19 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 18 * MES 盘点方案参数 Service 实现类
24 19 */
... ... @@ -34,19 +29,23 @@ public class MesWmStockTakingPlanParamServiceImpl implements MesWmStockTakingPla
34 29  
35 30 @Override
36 31 public Long createStockTakingPlanParam(MesWmStockTakingPlanParamSaveReqVO createReqVO) {
37   - MesWmStockTakingPlanDO plan = stockTakingPlanService.validateStockTakingPlanEditable(createReqVO.getPlanId());
  32 + // 校验盘点方案是否可编辑
  33 + stockTakingPlanService.validateStockTakingPlanEditable(createReqVO.getPlanId());
38 34  
  35 + // 创建盘点方案参数
39 36 MesWmStockTakingPlanParamDO param = BeanUtils.toBean(createReqVO, MesWmStockTakingPlanParamDO.class);
40   - param.setPlanId(plan.getId());
41 37 stockTakingPlanParamMapper.insert(param);
42 38 return param.getId();
43 39 }
44 40  
45 41 @Override
46 42 public void updateStockTakingPlanParam(MesWmStockTakingPlanParamSaveReqVO updateReqVO) {
  43 + // 校验盘点方案参数存在
47 44 MesWmStockTakingPlanParamDO param = validateStockTakingPlanParamExists(updateReqVO.getId());
  45 + // 校验盘点方案是否可编辑
48 46 stockTakingPlanService.validateStockTakingPlanEditable(param.getPlanId());
49 47  
  48 + // 更新盘点方案参数
50 49 MesWmStockTakingPlanParamDO updateObj = BeanUtils.toBean(updateReqVO, MesWmStockTakingPlanParamDO.class);
51 50 updateObj.setPlanId(param.getPlanId());
52 51 stockTakingPlanParamMapper.updateById(updateObj);
... ... @@ -54,8 +53,12 @@ public class MesWmStockTakingPlanParamServiceImpl implements MesWmStockTakingPla
54 53  
55 54 @Override
56 55 public void deleteStockTakingPlanParam(Long id) {
  56 + // 校验盘点方案参数存在
57 57 MesWmStockTakingPlanParamDO param = validateStockTakingPlanParamExists(id);
  58 + // 校验盘点方案是否可编辑
58 59 stockTakingPlanService.validateStockTakingPlanEditable(param.getPlanId());
  60 +
  61 + // 删除盘点方案参数
59 62 stockTakingPlanParamMapper.deleteById(id);
60 63 }
61 64  
... ... @@ -65,16 +68,8 @@ public class MesWmStockTakingPlanParamServiceImpl implements MesWmStockTakingPla
65 68 }
66 69  
67 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 75 @Override
... ...
yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/service/wm/stocktaking/plan/MesWmStockTakingPlanService.java
1 1 package cn.iocoder.yudao.module.mes.service.wm.stocktaking.plan;
2 2  
3 3 import cn.iocoder.yudao.framework.common.pojo.PageResult;
4   -import cn.iocoder.yudao.module.mes.controller.admin.wm.stocktaking.plan.vo.MesWmStockTakingPlanGenerateReqVO;
5 4 import cn.iocoder.yudao.module.mes.controller.admin.wm.stocktaking.plan.vo.MesWmStockTakingPlanPageReqVO;
6 5 import cn.iocoder.yudao.module.mes.controller.admin.wm.stocktaking.plan.vo.MesWmStockTakingPlanSaveReqVO;
7 6 import cn.iocoder.yudao.module.mes.dal.dataobject.wm.stocktaking.plan.MesWmStockTakingPlanDO;
... ... @@ -13,34 +12,97 @@ import java.util.Map;
13 12  
14 13 import static cn.iocoder.yudao.framework.common.util.collection.CollectionUtils.convertMap;
15 14  
16   -// TODO @AI:必要的注释
17 15 /**
18 16 * MES 盘点方案 Service 接口
19 17 */
20 18 public interface MesWmStockTakingPlanService {
21 19  
  20 + /**
  21 + * 创建盘点方案
  22 + *
  23 + * @param createReqVO 创建信息
  24 + * @return 盘点方案编号
  25 + */
22 26 Long createStockTakingPlan(@Valid MesWmStockTakingPlanSaveReqVO createReqVO);
23 27  
  28 + /**
  29 + * 更新盘点方案
  30 + *
  31 + * @param updateReqVO 更新信息
  32 + */
24 33 void updateStockTakingPlan(@Valid MesWmStockTakingPlanSaveReqVO updateReqVO);
25 34  
  35 + /**
  36 + * 删除盘点方案
  37 + *
  38 + * @param id 盘点方案编号
  39 + */
26 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 56 MesWmStockTakingPlanDO getStockTakingPlan(Long id);
33 57  
  58 + /**
  59 + * 校验盘点方案是否存在
  60 + *
  61 + * @param id 盘点方案编号
  62 + * @return 盘点方案
  63 + */
34 64 MesWmStockTakingPlanDO validateStockTakingPlanExists(Long id);
35 65  
  66 + /**
  67 + * 校验盘点方案是否可编辑
  68 + *
  69 + * @param id 盘点方案编号
  70 + * @return 盘点方案
  71 + */
36 72 MesWmStockTakingPlanDO validateStockTakingPlanEditable(Long id);
37 73  
  74 + /**
  75 + * 获得盘点方案列表。
  76 + *
  77 + * @param ids 盘点方案编号集合
  78 + * @return 盘点方案列表
  79 + */
38 80 List<MesWmStockTakingPlanDO> getStockTakingPlanList(Collection<Long> ids);
39 81  
  82 + /**
  83 + * 获得盘点方案 Map
  84 + *
  85 + * @param ids 盘点方案编号集合
  86 + * @return 盘点方案 Map
  87 + */
40 88 default Map<Long, MesWmStockTakingPlanDO> getStockTakingPlanMap(Collection<Long> ids) {
41 89 return convertMap(getStockTakingPlanList(ids), MesWmStockTakingPlanDO::getId);
42 90 }
43 91  
  92 + /**
  93 + * 分页查询盘点方案
  94 + *
  95 + * @param pageReqVO 分页查询条件
  96 + * @return 盘点方案分页结果
  97 + */
44 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 1 package cn.iocoder.yudao.module.mes.service.wm.stocktaking.plan;
2 2  
3 3 import cn.hutool.core.collection.CollUtil;
  4 +import cn.hutool.core.util.ObjUtil;
  5 +import cn.iocoder.yudao.framework.common.enums.CommonStatusEnum;
4 6 import cn.iocoder.yudao.framework.common.pojo.PageResult;
5 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 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 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 10 import cn.iocoder.yudao.module.mes.dal.dataobject.wm.stocktaking.plan.MesWmStockTakingPlanDO;
12 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 12 import jakarta.annotation.Resource;
16 13 import org.springframework.stereotype.Service;
17 14 import org.springframework.transaction.annotation.Transactional;
... ... @@ -20,12 +17,13 @@ import org.springframework.validation.annotation.Validated;
20 17 import java.util.Collection;
21 18 import java.util.Collections;
22 19 import java.util.List;
23   -import java.util.Objects;
24 20  
25 21 import static cn.iocoder.yudao.framework.common.exception.util.ServiceExceptionUtil.exception;
26 22 import static cn.iocoder.yudao.module.mes.enums.ErrorCodeConstants.*;
27 23  
28   -// TODO @AI:必要的注释
  24 +/**
  25 + * MES 盘点方案 Service 实现类
  26 + */
29 27 @Service
30 28 @Validated
31 29 public class MesWmStockTakingPlanServiceImpl implements MesWmStockTakingPlanService {
... ... @@ -34,67 +32,50 @@ public class MesWmStockTakingPlanServiceImpl implements MesWmStockTakingPlanServ
34 32 private MesWmStockTakingPlanMapper stockTakingPlanMapper;
35 33 @Resource
36 34 private MesWmStockTakingPlanParamService stockTakingPlanParamService;
37   - @Resource
38   - private MesWmStockTakingTaskService stockTakingTaskService;
39 35  
40 36 @Override
41   - @Transactional(rollbackFor = Exception.class)
42 37 public Long createStockTakingPlan(MesWmStockTakingPlanSaveReqVO createReqVO) {
  38 + // 校验 code 的唯一性
43 39 validatePlanCodeUnique(null, createReqVO.getCode());
44 40  
  41 + // 插入数据
45 42 MesWmStockTakingPlanDO plan = BeanUtils.toBean(createReqVO, MesWmStockTakingPlanDO.class);
46   - plan.setStatus(MesWmStockTakingPlanStatusEnum.PREPARE.getStatus());
  43 + plan.setStatus(CommonStatusEnum.DISABLE.getStatus());
47 44 stockTakingPlanMapper.insert(plan);
48 45 return plan.getId();
49 46 }
50 47  
51   - // TODO @AI:开启后,就不允许编辑、删除了;
52 48 @Override
53   - @Transactional(rollbackFor = Exception.class)
54 49 public void updateStockTakingPlan(MesWmStockTakingPlanSaveReqVO updateReqVO) {
55   - validatePlanExistsAndPrepare(updateReqVO.getId());
  50 + // 校验盘点方案存在,并且是可编辑状态
  51 + validatePlanEditable(updateReqVO.getId());
  52 + // 校验 code 的唯一性
56 53 validatePlanCodeUnique(updateReqVO.getId(), updateReqVO.getCode());
57 54  
  55 + // 更新数据
58 56 MesWmStockTakingPlanDO updateObj = BeanUtils.toBean(updateReqVO, MesWmStockTakingPlanDO.class);
59 57 stockTakingPlanMapper.updateById(updateObj);
60 58 }
61 59  
62   - // TODO @AI:开启后,就不允许编辑、删除了;
63 60 @Override
64 61 @Transactional(rollbackFor = Exception.class)
65 62 public void deleteStockTakingPlan(Long id) {
66   - validatePlanExistsAndPrepare(id);
  63 + // 校验盘点方案存在,并且是可编辑状态
  64 + validatePlanEditable(id);
  65 +
  66 + // 删除盘点方案参数
67 67 stockTakingPlanParamService.deleteStockTakingPlanParamByPlanId(id);
  68 + // 删除盘点方案
68 69 stockTakingPlanMapper.deleteById(id);
69 70 }
70 71  
71 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 81 @Override
... ... @@ -113,7 +94,7 @@ public class MesWmStockTakingPlanServiceImpl implements MesWmStockTakingPlanServ
113 94  
114 95 @Override
115 96 public MesWmStockTakingPlanDO validateStockTakingPlanEditable(Long id) {
116   - return validatePlanExistsAndPrepare(id);
  97 + return validatePlanEditable(id);
117 98 }
118 99  
119 100 @Override
... ... @@ -129,29 +110,25 @@ public class MesWmStockTakingPlanServiceImpl implements MesWmStockTakingPlanServ
129 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 118 private void validatePlanCodeUnique(Long id, String code) {
134 119 MesWmStockTakingPlanDO plan = stockTakingPlanMapper.selectByCode(code);
135 120 if (plan == null) {
136 121 return;
137 122 }
138   - if (id == null || !Objects.equals(plan.getId(), id)) {
  123 + if (ObjUtil.notEqual(plan.getId(), id)) {
139 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 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 133 return plan;
157 134 }
... ...