Commit 5fbd35bb66786fd217a7cd504c7321b19e93d634
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<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<Integer> |
| 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 | } | ... | ... |