diff --git a/yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/controller/admin/wm/stocktaking/plan/MesWmStockTakingPlanController.java b/yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/controller/admin/wm/stocktaking/plan/MesWmStockTakingPlanController.java index 0f773d1..0fd192a 100644 --- a/yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/controller/admin/wm/stocktaking/plan/MesWmStockTakingPlanController.java +++ b/yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/controller/admin/wm/stocktaking/plan/MesWmStockTakingPlanController.java @@ -1,19 +1,20 @@ package cn.iocoder.yudao.module.mes.controller.admin.wm.stocktaking.plan; -import cn.hutool.core.collection.CollUtil; import cn.iocoder.yudao.framework.apilog.core.annotation.ApiAccessLog; +import cn.iocoder.yudao.framework.common.enums.CommonStatusEnum; import cn.iocoder.yudao.framework.common.pojo.CommonResult; import cn.iocoder.yudao.framework.common.pojo.PageParam; import cn.iocoder.yudao.framework.common.pojo.PageResult; import cn.iocoder.yudao.framework.common.util.object.BeanUtils; import cn.iocoder.yudao.framework.excel.core.util.ExcelUtils; -import cn.iocoder.yudao.module.mes.controller.admin.wm.stocktaking.plan.vo.*; -import cn.iocoder.yudao.module.mes.controller.admin.wm.stocktaking.plan.vo.param.MesWmStockTakingPlanParamRespVO; +import cn.iocoder.yudao.module.mes.controller.admin.wm.stocktaking.plan.vo.MesWmStockTakingPlanPageReqVO; +import cn.iocoder.yudao.module.mes.controller.admin.wm.stocktaking.plan.vo.MesWmStockTakingPlanRespVO; +import cn.iocoder.yudao.module.mes.controller.admin.wm.stocktaking.plan.vo.MesWmStockTakingPlanSaveReqVO; import cn.iocoder.yudao.module.mes.dal.dataobject.wm.stocktaking.plan.MesWmStockTakingPlanDO; -import cn.iocoder.yudao.module.mes.service.wm.stocktaking.plan.MesWmStockTakingPlanParamService; import cn.iocoder.yudao.module.mes.service.wm.stocktaking.plan.MesWmStockTakingPlanService; import io.swagger.v3.oas.annotations.Operation; import io.swagger.v3.oas.annotations.Parameter; +import io.swagger.v3.oas.annotations.Parameters; import io.swagger.v3.oas.annotations.tags.Tag; import jakarta.annotation.Resource; import jakarta.servlet.http.HttpServletResponse; @@ -23,14 +24,10 @@ import org.springframework.validation.annotation.Validated; import org.springframework.web.bind.annotation.*; import java.io.IOException; -import java.util.Collection; -import java.util.Collections; import java.util.List; -import java.util.Map; import static cn.iocoder.yudao.framework.apilog.core.enums.OperateTypeEnum.EXPORT; import static cn.iocoder.yudao.framework.common.pojo.CommonResult.success; -import static cn.iocoder.yudao.framework.common.util.collection.CollectionUtils.convertSet; @Tag(name = "管理后台 - MES 盘点方案") @RestController @@ -40,8 +37,6 @@ public class MesWmStockTakingPlanController { @Resource private MesWmStockTakingPlanService stockTakingPlanService; - @Resource - private MesWmStockTakingPlanParamService stockTakingPlanParamService; @PostMapping("/create") @Operation(summary = "创建盘点方案") @@ -73,10 +68,7 @@ public class MesWmStockTakingPlanController { @PreAuthorize("@ss.hasPermission('mes:wm-stocktaking-plan:query')") public CommonResult getStockTakingPlan(@RequestParam("id") Long id) { MesWmStockTakingPlanDO plan = stockTakingPlanService.getStockTakingPlan(id); - if (plan == null) { - return success(null); - } - return success(buildRespVOList(Collections.singletonList(plan), true).get(0)); + return success(plan == null ? null : BeanUtils.toBean(plan, MesWmStockTakingPlanRespVO.class)); } @GetMapping("/page") @@ -84,7 +76,7 @@ public class MesWmStockTakingPlanController { @PreAuthorize("@ss.hasPermission('mes:wm-stocktaking-plan:query')") public CommonResult> getStockTakingPlanPage(@Valid MesWmStockTakingPlanPageReqVO pageReqVO) { PageResult pageResult = stockTakingPlanService.getStockTakingPlanPage(pageReqVO); - return success(new PageResult<>(buildRespVOList(pageResult.getList(), false), pageResult.getTotal())); + return success(BeanUtils.toBean(pageResult, MesWmStockTakingPlanRespVO.class)); } @GetMapping("/export-excel") @@ -96,25 +88,7 @@ public class MesWmStockTakingPlanController { pageReqVO.setPageSize(PageParam.PAGE_SIZE_NONE); PageResult pageResult = stockTakingPlanService.getStockTakingPlanPage(pageReqVO); ExcelUtils.write(response, "盘点方案.xls", "数据", MesWmStockTakingPlanRespVO.class, - buildRespVOList(pageResult.getList(), false)); - } - - // TODO @AI:去掉 confirmStockTakingPlan 方法;改成 updateStatus 这种接口; - @PutMapping("/confirm") - @Operation(summary = "确认盘点方案") - @Parameter(name = "id", description = "编号", required = true) - @PreAuthorize("@ss.hasPermission('mes:wm-stocktaking-plan:update')") - public CommonResult confirmStockTakingPlan(@RequestParam("id") Long id) { - stockTakingPlanService.confirmStockTakingPlan(id); - return success(true); - } - - // TODO @AI:去掉 generateStockTakingTask 方法 - @PostMapping("/generate-task") - @Operation(summary = "根据盘点方案生成盘点任务") - @PreAuthorize("@ss.hasPermission('mes:wm-stocktaking-task:create')") - public CommonResult generateStockTakingTask(@Valid @RequestBody MesWmStockTakingPlanGenerateReqVO reqVO) { - return success(stockTakingPlanService.generateStockTakingTask(reqVO)); + BeanUtils.toBean(pageResult.getList(), MesWmStockTakingPlanRespVO.class)); } private List buildRespVOList(List list, boolean includeParams) { diff --git a/yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/controller/admin/wm/stocktaking/plan/MesWmStockTakingPlanParamController.java b/yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/controller/admin/wm/stocktaking/plan/MesWmStockTakingPlanParamController.java index 6ae1a38..eb7c6ef 100644 --- a/yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/controller/admin/wm/stocktaking/plan/MesWmStockTakingPlanParamController.java +++ b/yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/controller/admin/wm/stocktaking/plan/MesWmStockTakingPlanParamController.java @@ -1,7 +1,9 @@ package cn.iocoder.yudao.module.mes.controller.admin.wm.stocktaking.plan; import cn.iocoder.yudao.framework.common.pojo.CommonResult; +import cn.iocoder.yudao.framework.common.pojo.PageResult; import cn.iocoder.yudao.framework.common.util.object.BeanUtils; +import cn.iocoder.yudao.module.mes.controller.admin.wm.stocktaking.plan.vo.param.MesWmStockTakingPlanParamPageReqVO; import cn.iocoder.yudao.module.mes.controller.admin.wm.stocktaking.plan.vo.param.MesWmStockTakingPlanParamRespVO; import cn.iocoder.yudao.module.mes.controller.admin.wm.stocktaking.plan.vo.param.MesWmStockTakingPlanParamSaveReqVO; import cn.iocoder.yudao.module.mes.dal.dataobject.wm.stocktaking.plan.MesWmStockTakingPlanParamDO; @@ -15,8 +17,6 @@ import org.springframework.security.access.prepost.PreAuthorize; import org.springframework.validation.annotation.Validated; import org.springframework.web.bind.annotation.*; -import java.util.List; - import static cn.iocoder.yudao.framework.common.pojo.CommonResult.success; @Tag(name = "管理后台 - MES 盘点方案参数") @@ -61,14 +61,14 @@ public class MesWmStockTakingPlanParamController { return success(param == null ? null : BeanUtils.toBean(param, MesWmStockTakingPlanParamRespVO.class)); } - // TODO @AI:不需要这个接口;前端只需要分页接口; - @GetMapping("/list") - @Operation(summary = "获得盘点方案参数列表") - @Parameter(name = "planId", description = "方案编号", required = true) - @PreAuthorize("@ss.hasPermission('mes:wm-stocktaking-plan:query')") - public CommonResult> getStockTakingPlanParamList(@RequestParam("planId") Long planId) { - return success(BeanUtils.toBean(stockTakingPlanParamService.getStockTakingPlanParamList(planId), - MesWmStockTakingPlanParamRespVO.class)); + @GetMapping("/page") + @Operation(summary = "获得盘点方案参数分页") + @PreAuthorize("@ss.hasPermission('mes:wm-stock-taking-plan:query')") + public CommonResult> getStockTakingPlanParamPage( + @Valid MesWmStockTakingPlanParamPageReqVO pageReqVO) { + PageResult pageResult = stockTakingPlanParamService.getStockTakingPlanParamPage(pageReqVO); + return success(new PageResult<>(BeanUtils.toBean(pageResult.getList(), MesWmStockTakingPlanParamRespVO.class), pageResult.getTotal())); } + } diff --git a/yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/controller/admin/wm/stocktaking/plan/vo/MesWmStockTakingPlanGenerateReqVO.java b/yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/controller/admin/wm/stocktaking/plan/vo/MesWmStockTakingPlanGenerateReqVO.java deleted file mode 100644 index 7d4eed8..0000000 --- a/yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/controller/admin/wm/stocktaking/plan/vo/MesWmStockTakingPlanGenerateReqVO.java +++ /dev/null @@ -1,41 +0,0 @@ -package cn.iocoder.yudao.module.mes.controller.admin.wm.stocktaking.plan.vo; - -import cn.iocoder.yudao.module.mes.controller.admin.wm.stocktaking.plan.vo.param.MesWmStockTakingPlanParamSaveReqVO; -import io.swagger.v3.oas.annotations.media.Schema; -import jakarta.validation.constraints.NotEmpty; -import jakarta.validation.constraints.NotNull; -import lombok.Data; - -import java.time.LocalDateTime; -import java.util.List; - -@Schema(description = "管理后台 - MES 盘点方案生成任务 Request VO") -@Data -public class MesWmStockTakingPlanGenerateReqVO { - - @Schema(description = "方案编号", requiredMode = Schema.RequiredMode.REQUIRED, example = "1") - @NotNull(message = "方案编号不能为空") - private Long planId; - - @Schema(description = "任务编码", requiredMode = Schema.RequiredMode.REQUIRED, example = "ST202603080001") - @NotEmpty(message = "任务编码不能为空") - private String code; - - @Schema(description = "任务名称", requiredMode = Schema.RequiredMode.REQUIRED, example = "原料仓月度盘点任务") - @NotEmpty(message = "任务名称不能为空") - private String name; - - @Schema(description = "盘点日期") - private LocalDateTime takingDate; - - @Schema(description = "盘点人 ID", requiredMode = Schema.RequiredMode.REQUIRED, example = "1") - @NotNull(message = "盘点人不能为空") - private Long userId; - - @Schema(description = "备注", example = "备注") - private String remark; - - @Schema(description = "方案参数列表,为空时使用方案自身参数") - private List params; - -} diff --git a/yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/controller/admin/wm/stocktaking/plan/vo/MesWmStockTakingPlanPageReqVO.java b/yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/controller/admin/wm/stocktaking/plan/vo/MesWmStockTakingPlanPageReqVO.java index 075f829..e4153a5 100644 --- a/yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/controller/admin/wm/stocktaking/plan/vo/MesWmStockTakingPlanPageReqVO.java +++ b/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; import io.swagger.v3.oas.annotations.media.Schema; import lombok.Data; import lombok.EqualsAndHashCode; -import org.springframework.format.annotation.DateTimeFormat; - -import java.time.LocalDateTime; - -import static cn.iocoder.yudao.framework.common.util.date.DateUtils.FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND; @Schema(description = "管理后台 - MES 盘点方案分页 Request VO") @Data @@ -24,14 +19,4 @@ public class MesWmStockTakingPlanPageReqVO extends PageParam { @Schema(description = "盘点类型", example = "1") private Integer type; - @Schema(description = "状态", example = "0") - private Integer status; - - @Schema(description = "是否启用", example = "true") - private Boolean enableFlag; - - @Schema(description = "计划开始时间范围") - @DateTimeFormat(pattern = FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND) - private LocalDateTime[] startTime; - } diff --git a/yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/controller/admin/wm/stocktaking/plan/vo/MesWmStockTakingPlanRespVO.java b/yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/controller/admin/wm/stocktaking/plan/vo/MesWmStockTakingPlanRespVO.java index 5f000df..32fed96 100644 --- a/yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/controller/admin/wm/stocktaking/plan/vo/MesWmStockTakingPlanRespVO.java +++ b/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; import cn.idev.excel.annotation.ExcelIgnoreUnannotated; import cn.idev.excel.annotation.ExcelProperty; -import cn.iocoder.yudao.module.mes.controller.admin.wm.stocktaking.plan.vo.param.MesWmStockTakingPlanParamRespVO; import io.swagger.v3.oas.annotations.media.Schema; import lombok.Data; import java.time.LocalDateTime; -import java.util.List; @Schema(description = "管理后台 - MES 盘点方案 Response VO") @Data @@ -46,10 +44,6 @@ public class MesWmStockTakingPlanRespVO { @ExcelProperty("是否冻结库存") private Boolean frozenFlag; - @Schema(description = "是否启用", requiredMode = Schema.RequiredMode.REQUIRED, example = "true") - @ExcelProperty("是否启用") - private Boolean enableFlag; - @Schema(description = "状态", requiredMode = Schema.RequiredMode.REQUIRED, example = "0") @ExcelProperty("状态") private Integer status; @@ -58,9 +52,6 @@ public class MesWmStockTakingPlanRespVO { @ExcelProperty("备注") private String remark; - @Schema(description = "方案参数列表") - private List params; - @Schema(description = "创建时间", requiredMode = Schema.RequiredMode.REQUIRED) @ExcelProperty("创建时间") private LocalDateTime createTime; diff --git a/yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/controller/admin/wm/stocktaking/plan/vo/MesWmStockTakingPlanSaveReqVO.java b/yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/controller/admin/wm/stocktaking/plan/vo/MesWmStockTakingPlanSaveReqVO.java index 868ec7b..23976bc 100644 --- a/yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/controller/admin/wm/stocktaking/plan/vo/MesWmStockTakingPlanSaveReqVO.java +++ b/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 { @NotNull(message = "是否冻结库存不能为空") private Boolean frozenFlag; - @Schema(description = "是否启用", example = "true") - @NotNull(message = "是否启用不能为空") - private Boolean enableFlag; - @Schema(description = "备注", example = "备注") private String remark; diff --git a/yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/controller/admin/wm/stocktaking/plan/vo/param/MesWmStockTakingPlanParamPageReqVO.java b/yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/controller/admin/wm/stocktaking/plan/vo/param/MesWmStockTakingPlanParamPageReqVO.java new file mode 100644 index 0000000..2140b60 --- /dev/null +++ b/yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/controller/admin/wm/stocktaking/plan/vo/param/MesWmStockTakingPlanParamPageReqVO.java @@ -0,0 +1,20 @@ +package cn.iocoder.yudao.module.mes.controller.admin.wm.stocktaking.plan.vo.param; + +import cn.iocoder.yudao.framework.common.pojo.PageParam; +import io.swagger.v3.oas.annotations.media.Schema; +import jakarta.validation.constraints.NotNull; +import lombok.Data; +import lombok.EqualsAndHashCode; +import lombok.ToString; + +@Schema(description = "管理后台 - MES 盘点方案参数分页 Request VO") +@Data +@EqualsAndHashCode(callSuper = true) +@ToString(callSuper = true) +public class MesWmStockTakingPlanParamPageReqVO extends PageParam { + + @Schema(description = "方案 ID", requiredMode = Schema.RequiredMode.REQUIRED, example = "1") + @NotNull(message = "方案 ID 不能为空") + private Long planId; + +} diff --git a/yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/dal/dataobject/wm/stocktaking/plan/MesWmStockTakingPlanDO.java b/yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/dal/dataobject/wm/stocktaking/plan/MesWmStockTakingPlanDO.java index 7060759..e5f08b9 100644 --- a/yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/dal/dataobject/wm/stocktaking/plan/MesWmStockTakingPlanDO.java +++ b/yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/dal/dataobject/wm/stocktaking/plan/MesWmStockTakingPlanDO.java @@ -1,7 +1,7 @@ package cn.iocoder.yudao.module.mes.dal.dataobject.wm.stocktaking.plan; +import cn.iocoder.yudao.framework.common.enums.CommonStatusEnum; import cn.iocoder.yudao.framework.mybatis.core.dataobject.BaseDO; -import cn.iocoder.yudao.module.mes.enums.wm.MesWmStockTakingPlanStatusEnum; import cn.iocoder.yudao.module.mes.enums.wm.MesWmStockTakingTypeEnum; import com.baomidou.mybatisplus.annotation.KeySequence; import com.baomidou.mybatisplus.annotation.TableId; @@ -10,8 +10,6 @@ import lombok.*; import java.time.LocalDateTime; -// TODO @AI:缺少注释; - /** * MES 盘点方案 DO */ @@ -25,35 +23,56 @@ import java.time.LocalDateTime; @AllArgsConstructor public class MesWmStockTakingPlanDO extends BaseDO { + /** + * 编号 + */ @TableId private Long id; + /** + * 方案编码 + */ private String code; + /** + * 方案名称 + */ private String name; /** + * 盘点类型 + * * 枚举 {@link MesWmStockTakingTypeEnum} */ private Integer type; - + /** + * 计划开始时间 + */ private LocalDateTime startTime; - + /** + * 计划结束时间 + */ private LocalDateTime endTime; + /** + * 是否盲盘 + */ private Boolean blindFlag; - + /** + * 是否冻结库存 + */ private Boolean frozenFlag; - // TODO @AI:这个 enableFlag 改成 status,对应 CommonStatus; - private Boolean enableFlag; - - // TODO @AI:这个字段没用,可以删除掉; /** - * 枚举 {@link MesWmStockTakingPlanStatusEnum} + * 状态 + * + * 枚举 {@link CommonStatusEnum} */ private Integer status; + /** + * 备注 + */ private String remark; } diff --git a/yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/dal/dataobject/wm/stocktaking/plan/MesWmStockTakingPlanParamDO.java b/yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/dal/dataobject/wm/stocktaking/plan/MesWmStockTakingPlanParamDO.java index 71a8c85..9478684 100644 --- a/yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/dal/dataobject/wm/stocktaking/plan/MesWmStockTakingPlanParamDO.java +++ b/yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/dal/dataobject/wm/stocktaking/plan/MesWmStockTakingPlanParamDO.java @@ -20,9 +20,11 @@ import lombok.*; @AllArgsConstructor public class MesWmStockTakingPlanParamDO extends BaseDO { + /** + * 编号 + */ @TableId private Long id; - /** * 盘点方案编号 * @@ -31,6 +33,8 @@ public class MesWmStockTakingPlanParamDO extends BaseDO { private Long planId; /** + * 参数值类型 + * * 枚举 {@link MesWmStockTakingPlanParamTypeEnum} */ private Integer type; @@ -39,19 +43,18 @@ public class MesWmStockTakingPlanParamDO extends BaseDO { * 参数值编号,例如仓库、库区、库位、物料、批次的主键 ID */ private Long valueId; - /** * 参数值编码,例如仓库编码、库区编码、库位编码、物料编码、批次编码 */ private String valueCode; - /** * 参数值名称,例如仓库名称、库区名称、库位名称、物料名称、批次名称 */ private String valueName; + /** + * 备注 + */ private String remark; - private Long tenantId; - } diff --git a/yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/dal/mysql/wm/stocktaking/plan/MesWmStockTakingPlanMapper.java b/yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/dal/mysql/wm/stocktaking/plan/MesWmStockTakingPlanMapper.java index 5d1d2e7..4363c26 100644 --- a/yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/dal/mysql/wm/stocktaking/plan/MesWmStockTakingPlanMapper.java +++ b/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 selectListByStatus(Integer status) { return selectList(new LambdaQueryWrapperX() .eqIfPresent(MesWmStockTakingPlanDO::getStatus, status) - .eq(MesWmStockTakingPlanDO::getEnableFlag, true) .orderByDesc(MesWmStockTakingPlanDO::getId)); } diff --git a/yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/dal/mysql/wm/stocktaking/plan/MesWmStockTakingPlanParamMapper.java b/yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/dal/mysql/wm/stocktaking/plan/MesWmStockTakingPlanParamMapper.java index 6babf6a..ea869e5 100644 --- a/yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/dal/mysql/wm/stocktaking/plan/MesWmStockTakingPlanParamMapper.java +++ b/yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/dal/mysql/wm/stocktaking/plan/MesWmStockTakingPlanParamMapper.java @@ -1,11 +1,12 @@ package cn.iocoder.yudao.module.mes.dal.mysql.wm.stocktaking.plan; +import cn.iocoder.yudao.framework.common.pojo.PageResult; import cn.iocoder.yudao.framework.mybatis.core.mapper.BaseMapperX; import cn.iocoder.yudao.framework.mybatis.core.query.LambdaQueryWrapperX; +import cn.iocoder.yudao.module.mes.controller.admin.wm.stocktaking.plan.vo.param.MesWmStockTakingPlanParamPageReqVO; import cn.iocoder.yudao.module.mes.dal.dataobject.wm.stocktaking.plan.MesWmStockTakingPlanParamDO; import org.apache.ibatis.annotations.Mapper; -import java.util.Collection; import java.util.List; /** @@ -14,23 +15,18 @@ import java.util.List; @Mapper public interface MesWmStockTakingPlanParamMapper extends BaseMapperX { - default List selectListByPlanId(Long planId) { - return selectList(MesWmStockTakingPlanParamDO::getPlanId, planId); + default PageResult selectPage(MesWmStockTakingPlanParamPageReqVO reqVO) { + return selectPage(reqVO, new LambdaQueryWrapperX() + .eqIfPresent(MesWmStockTakingPlanParamDO::getPlanId, reqVO.getPlanId()) + .orderByAsc(MesWmStockTakingPlanParamDO::getId)); } - default List selectListByPlanIds(Collection planIds) { - return selectList(MesWmStockTakingPlanParamDO::getPlanId, planIds); + default List selectListByPlanId(Long planId) { + return selectList(MesWmStockTakingPlanParamDO::getPlanId, planId); } default void deleteByPlanId(Long planId) { delete(MesWmStockTakingPlanParamDO::getPlanId, planId); } - default List selectListByPlanIdAndType(Long planId, Integer type) { - return selectList(new LambdaQueryWrapperX() - .eq(MesWmStockTakingPlanParamDO::getPlanId, planId) - .eq(MesWmStockTakingPlanParamDO::getType, type) - .orderByAsc(MesWmStockTakingPlanParamDO::getId)); - } - } diff --git a/yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/enums/ErrorCodeConstants.java b/yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/enums/ErrorCodeConstants.java index a234b79..ac9f356 100644 --- a/yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/enums/ErrorCodeConstants.java +++ b/yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/enums/ErrorCodeConstants.java @@ -472,8 +472,8 @@ public interface ErrorCodeConstants { // ========== MES 仓库管理-盘点方案/任务/结果(1-040-714-100) ========== ErrorCode WM_STOCK_TAKING_PLAN_NOT_EXISTS = new ErrorCode(1_040_714_100, "盘点方案不存在"); ErrorCode WM_STOCK_TAKING_PLAN_CODE_DUPLICATE = new ErrorCode(1_040_714_101, "盘点方案编码已存在"); - ErrorCode WM_STOCK_TAKING_PLAN_NOT_PREPARE = new ErrorCode(1_040_714_102, "只有草稿状态的盘点方案才允许此操作"); - ErrorCode WM_STOCK_TAKING_PLAN_NOT_CONFIRMED = new ErrorCode(1_040_714_103, "只有已确认状态的盘点方案才允许生成任务"); + ErrorCode WM_STOCK_TAKING_PLAN_NOT_DISABLED = new ErrorCode(1_040_714_102, "只有禁用状态的盘点方案才允许修改、删除或维护参数"); + ErrorCode WM_STOCK_TAKING_PLAN_NOT_ENABLED = new ErrorCode(1_040_714_103, "只有启用状态的盘点方案才允许生成任务"); ErrorCode WM_STOCK_TAKING_PLAN_PARAM_NOT_EXISTS = new ErrorCode(1_040_714_104, "盘点方案参数不存在"); ErrorCode WM_STOCK_TAKING_TASK_NOT_EXISTS = new ErrorCode(1_040_714_110, "盘点任务不存在"); ErrorCode WM_STOCK_TAKING_TASK_CODE_DUPLICATE = new ErrorCode(1_040_714_111, "盘点任务编码已存在"); diff --git a/yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/enums/wm/MesWmStockTakingPlanParamTypeEnum.java b/yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/enums/wm/MesWmStockTakingPlanParamTypeEnum.java index f02c90d..5ebab92 100644 --- a/yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/enums/wm/MesWmStockTakingPlanParamTypeEnum.java +++ b/yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/enums/wm/MesWmStockTakingPlanParamTypeEnum.java @@ -7,7 +7,6 @@ import lombok.Getter; import java.util.Arrays; -// TODO @AI:缺少注释;type + name 这种; /** * MES 盘点方案参数类型枚举 */ @@ -24,7 +23,13 @@ public enum MesWmStockTakingPlanParamTypeEnum implements ArrayValuable public static final Integer[] ARRAYS = Arrays.stream(values()) .map(MesWmStockTakingPlanParamTypeEnum::getType).toArray(Integer[]::new); + /** + * 参数类型 + */ private final Integer type; + /** + * 类型名称 + */ private final String name; @Override diff --git a/yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/enums/wm/MesWmStockTakingPlanStatusEnum.java b/yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/enums/wm/MesWmStockTakingPlanStatusEnum.java deleted file mode 100644 index 20a0e80..0000000 --- a/yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/enums/wm/MesWmStockTakingPlanStatusEnum.java +++ /dev/null @@ -1,32 +0,0 @@ -package cn.iocoder.yudao.module.mes.enums.wm; - -import cn.iocoder.yudao.framework.common.core.ArrayValuable; -import cn.iocoder.yudao.module.mes.enums.MesOrderStatusConstants; -import lombok.AllArgsConstructor; -import lombok.Getter; - -import java.util.Arrays; - -// TODO @AI:缺少注释;status + name 这种; -/** - * MES 盘点方案状态枚举 - */ -@Getter -@AllArgsConstructor -public enum MesWmStockTakingPlanStatusEnum implements ArrayValuable { - - PREPARE(MesOrderStatusConstants.PREPARE, "草稿"), - CONFIRMED(MesOrderStatusConstants.CONFIRMED, "已确认"); - - public static final Integer[] ARRAYS = Arrays.stream(values()) - .map(MesWmStockTakingPlanStatusEnum::getStatus).toArray(Integer[]::new); - - private final Integer status; - private final String name; - - @Override - public Integer[] array() { - return ARRAYS; - } - -} diff --git a/yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/enums/wm/MesWmStockTakingTypeEnum.java b/yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/enums/wm/MesWmStockTakingTypeEnum.java index c77e580..5538fd9 100644 --- a/yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/enums/wm/MesWmStockTakingTypeEnum.java +++ b/yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/enums/wm/MesWmStockTakingTypeEnum.java @@ -6,7 +6,6 @@ import lombok.Getter; import java.util.Arrays; -// TODO @AI:缺少注释;type + name 这种; /** * MES 盘点类型枚举 */ @@ -14,15 +13,19 @@ import java.util.Arrays; @AllArgsConstructor public enum MesWmStockTakingTypeEnum implements ArrayValuable { - // TODO @AI:只有 2 种:动态盘点、静态盘点;按照这个顺序枚举; - OPEN(1, "开放盘点"), - CYCLE(2, "循环盘点"), - DYNAMIC(3, "动态盘点"); + STATIC(1, "静态盘点"), + DYNAMIC(2, "动态盘点"); public static final Integer[] ARRAYS = Arrays.stream(values()) .map(MesWmStockTakingTypeEnum::getType).toArray(Integer[]::new); + /** + * 盘点类型 + */ private final Integer type; + /** + * 类型名称 + */ private final String name; @Override diff --git a/yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/service/wm/stocktaking/plan/MesWmStockTakingPlanParamService.java b/yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/service/wm/stocktaking/plan/MesWmStockTakingPlanParamService.java index 319b6fd..b1ced63 100644 --- a/yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/service/wm/stocktaking/plan/MesWmStockTakingPlanParamService.java +++ b/yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/service/wm/stocktaking/plan/MesWmStockTakingPlanParamService.java @@ -1,39 +1,67 @@ package cn.iocoder.yudao.module.mes.service.wm.stocktaking.plan; +import cn.iocoder.yudao.framework.common.pojo.PageResult; +import cn.iocoder.yudao.module.mes.controller.admin.wm.stocktaking.plan.vo.param.MesWmStockTakingPlanParamPageReqVO; import cn.iocoder.yudao.module.mes.controller.admin.wm.stocktaking.plan.vo.param.MesWmStockTakingPlanParamSaveReqVO; import cn.iocoder.yudao.module.mes.dal.dataobject.wm.stocktaking.plan.MesWmStockTakingPlanParamDO; import jakarta.validation.Valid; -import java.util.Collection; -import java.util.List; -import java.util.Map; - -import static cn.iocoder.yudao.framework.common.util.collection.CollectionUtils.convertMultiMap; - -// TODO @AI:必要的注释 /** * MES 盘点方案参数 Service 接口 */ public interface MesWmStockTakingPlanParamService { + /** + * 创建盘点方案参数 + * + * @param createReqVO 创建信息 + * @return 参数编号 + */ Long createStockTakingPlanParam(@Valid MesWmStockTakingPlanParamSaveReqVO createReqVO); + /** + * 更新盘点方案参数 + * + * @param updateReqVO 更新信息 + */ void updateStockTakingPlanParam(@Valid MesWmStockTakingPlanParamSaveReqVO updateReqVO); + /** + * 删除盘点方案参数 + * + * @param id 参数编号 + */ void deleteStockTakingPlanParam(Long id); + /** + * 获得盘点方案参数 + * + * @param id 参数编号 + * @return 盘点方案参数 + */ MesWmStockTakingPlanParamDO getStockTakingPlanParam(Long id); - List getStockTakingPlanParamList(Long planId); - - default Map> getStockTakingPlanParamMap(Collection planIds) { - return convertMultiMap(getStockTakingPlanParamList(planIds), MesWmStockTakingPlanParamDO::getPlanId); - } - - List getStockTakingPlanParamList(Collection planIds); + /** + * 分页查询盘点方案参数 + * + * @param pageReqVO 分页查询条件 + * @return 盘点方案参数分页结果 + */ + PageResult getStockTakingPlanParamPage(MesWmStockTakingPlanParamPageReqVO pageReqVO); + /** + * 根据盘点方案编号删除参数 + * + * @param planId 盘点方案编号 + */ void deleteStockTakingPlanParamByPlanId(Long planId); + /** + * 校验盘点方案参数是否存在 + * + * @param id 参数编号 + * @return 盘点方案参数 + */ MesWmStockTakingPlanParamDO validateStockTakingPlanParamExists(Long id); } diff --git a/yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/service/wm/stocktaking/plan/MesWmStockTakingPlanParamServiceImpl.java b/yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/service/wm/stocktaking/plan/MesWmStockTakingPlanParamServiceImpl.java index bd63b9b..ed7f739 100644 --- a/yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/service/wm/stocktaking/plan/MesWmStockTakingPlanParamServiceImpl.java +++ b/yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/service/wm/stocktaking/plan/MesWmStockTakingPlanParamServiceImpl.java @@ -1,9 +1,9 @@ package cn.iocoder.yudao.module.mes.service.wm.stocktaking.plan; -import cn.hutool.core.collection.CollUtil; +import cn.iocoder.yudao.framework.common.pojo.PageResult; import cn.iocoder.yudao.framework.common.util.object.BeanUtils; +import cn.iocoder.yudao.module.mes.controller.admin.wm.stocktaking.plan.vo.param.MesWmStockTakingPlanParamPageReqVO; import cn.iocoder.yudao.module.mes.controller.admin.wm.stocktaking.plan.vo.param.MesWmStockTakingPlanParamSaveReqVO; -import cn.iocoder.yudao.module.mes.dal.dataobject.wm.stocktaking.plan.MesWmStockTakingPlanDO; import cn.iocoder.yudao.module.mes.dal.dataobject.wm.stocktaking.plan.MesWmStockTakingPlanParamDO; import cn.iocoder.yudao.module.mes.dal.mysql.wm.stocktaking.plan.MesWmStockTakingPlanParamMapper; import jakarta.annotation.Resource; @@ -11,14 +11,9 @@ import org.springframework.context.annotation.Lazy; import org.springframework.stereotype.Service; import org.springframework.validation.annotation.Validated; -import java.util.Collection; -import java.util.Collections; -import java.util.List; - import static cn.iocoder.yudao.framework.common.exception.util.ServiceExceptionUtil.exception; import static cn.iocoder.yudao.module.mes.enums.ErrorCodeConstants.WM_STOCK_TAKING_PLAN_PARAM_NOT_EXISTS; -// TODO @AI:必要的注释 /** * MES 盘点方案参数 Service 实现类 */ @@ -34,19 +29,23 @@ public class MesWmStockTakingPlanParamServiceImpl implements MesWmStockTakingPla @Override public Long createStockTakingPlanParam(MesWmStockTakingPlanParamSaveReqVO createReqVO) { - MesWmStockTakingPlanDO plan = stockTakingPlanService.validateStockTakingPlanEditable(createReqVO.getPlanId()); + // 校验盘点方案是否可编辑 + stockTakingPlanService.validateStockTakingPlanEditable(createReqVO.getPlanId()); + // 创建盘点方案参数 MesWmStockTakingPlanParamDO param = BeanUtils.toBean(createReqVO, MesWmStockTakingPlanParamDO.class); - param.setPlanId(plan.getId()); stockTakingPlanParamMapper.insert(param); return param.getId(); } @Override public void updateStockTakingPlanParam(MesWmStockTakingPlanParamSaveReqVO updateReqVO) { + // 校验盘点方案参数存在 MesWmStockTakingPlanParamDO param = validateStockTakingPlanParamExists(updateReqVO.getId()); + // 校验盘点方案是否可编辑 stockTakingPlanService.validateStockTakingPlanEditable(param.getPlanId()); + // 更新盘点方案参数 MesWmStockTakingPlanParamDO updateObj = BeanUtils.toBean(updateReqVO, MesWmStockTakingPlanParamDO.class); updateObj.setPlanId(param.getPlanId()); stockTakingPlanParamMapper.updateById(updateObj); @@ -54,8 +53,12 @@ public class MesWmStockTakingPlanParamServiceImpl implements MesWmStockTakingPla @Override public void deleteStockTakingPlanParam(Long id) { + // 校验盘点方案参数存在 MesWmStockTakingPlanParamDO param = validateStockTakingPlanParamExists(id); + // 校验盘点方案是否可编辑 stockTakingPlanService.validateStockTakingPlanEditable(param.getPlanId()); + + // 删除盘点方案参数 stockTakingPlanParamMapper.deleteById(id); } @@ -65,16 +68,8 @@ public class MesWmStockTakingPlanParamServiceImpl implements MesWmStockTakingPla } @Override - public List getStockTakingPlanParamList(Long planId) { - return stockTakingPlanParamMapper.selectListByPlanId(planId); - } - - @Override - public List getStockTakingPlanParamList(Collection planIds) { - if (CollUtil.isEmpty(planIds)) { - return Collections.emptyList(); - } - return stockTakingPlanParamMapper.selectListByPlanIds(planIds); + public PageResult getStockTakingPlanParamPage(MesWmStockTakingPlanParamPageReqVO pageReqVO) { + return stockTakingPlanParamMapper.selectPage(pageReqVO); } @Override diff --git a/yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/service/wm/stocktaking/plan/MesWmStockTakingPlanService.java b/yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/service/wm/stocktaking/plan/MesWmStockTakingPlanService.java index b789911..e1b3b0e 100644 --- a/yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/service/wm/stocktaking/plan/MesWmStockTakingPlanService.java +++ b/yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/service/wm/stocktaking/plan/MesWmStockTakingPlanService.java @@ -1,7 +1,6 @@ package cn.iocoder.yudao.module.mes.service.wm.stocktaking.plan; import cn.iocoder.yudao.framework.common.pojo.PageResult; -import cn.iocoder.yudao.module.mes.controller.admin.wm.stocktaking.plan.vo.MesWmStockTakingPlanGenerateReqVO; import cn.iocoder.yudao.module.mes.controller.admin.wm.stocktaking.plan.vo.MesWmStockTakingPlanPageReqVO; import cn.iocoder.yudao.module.mes.controller.admin.wm.stocktaking.plan.vo.MesWmStockTakingPlanSaveReqVO; import cn.iocoder.yudao.module.mes.dal.dataobject.wm.stocktaking.plan.MesWmStockTakingPlanDO; @@ -13,34 +12,97 @@ import java.util.Map; import static cn.iocoder.yudao.framework.common.util.collection.CollectionUtils.convertMap; -// TODO @AI:必要的注释 /** * MES 盘点方案 Service 接口 */ public interface MesWmStockTakingPlanService { + /** + * 创建盘点方案 + * + * @param createReqVO 创建信息 + * @return 盘点方案编号 + */ Long createStockTakingPlan(@Valid MesWmStockTakingPlanSaveReqVO createReqVO); + /** + * 更新盘点方案 + * + * @param updateReqVO 更新信息 + */ void updateStockTakingPlan(@Valid MesWmStockTakingPlanSaveReqVO updateReqVO); + /** + * 删除盘点方案 + * + * @param id 盘点方案编号 + */ void deleteStockTakingPlan(Long id); - void confirmStockTakingPlan(Long id); - - Long generateStockTakingTask(@Valid MesWmStockTakingPlanGenerateReqVO reqVO); - + /** + * 更新盘点方案状态。 + * + * @param id 盘点方案编号 + * @param status 状态 + */ + void updateStockTakingPlanStatus(Long id, Integer status); + + /** + * 获得盘点方案 + * + * @param id 盘点方案编号 + * @return 盘点方案 + */ MesWmStockTakingPlanDO getStockTakingPlan(Long id); + /** + * 校验盘点方案是否存在 + * + * @param id 盘点方案编号 + * @return 盘点方案 + */ MesWmStockTakingPlanDO validateStockTakingPlanExists(Long id); + /** + * 校验盘点方案是否可编辑 + * + * @param id 盘点方案编号 + * @return 盘点方案 + */ MesWmStockTakingPlanDO validateStockTakingPlanEditable(Long id); + /** + * 获得盘点方案列表。 + * + * @param ids 盘点方案编号集合 + * @return 盘点方案列表 + */ List getStockTakingPlanList(Collection ids); + /** + * 获得盘点方案 Map + * + * @param ids 盘点方案编号集合 + * @return 盘点方案 Map + */ default Map getStockTakingPlanMap(Collection ids) { return convertMap(getStockTakingPlanList(ids), MesWmStockTakingPlanDO::getId); } + /** + * 分页查询盘点方案 + * + * @param pageReqVO 分页查询条件 + * @return 盘点方案分页结果 + */ PageResult getStockTakingPlanPage(MesWmStockTakingPlanPageReqVO pageReqVO); + /** + * 根据状态获得盘点方案列表。 + * + * @param status 状态 + * @return 盘点方案列表 + */ + List getStockTakingPlanListByStatus(Integer status); + } diff --git a/yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/service/wm/stocktaking/plan/MesWmStockTakingPlanServiceImpl.java b/yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/service/wm/stocktaking/plan/MesWmStockTakingPlanServiceImpl.java index 5d2a8c6..caea6fd 100644 --- a/yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/service/wm/stocktaking/plan/MesWmStockTakingPlanServiceImpl.java +++ b/yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/service/wm/stocktaking/plan/MesWmStockTakingPlanServiceImpl.java @@ -1,17 +1,14 @@ package cn.iocoder.yudao.module.mes.service.wm.stocktaking.plan; import cn.hutool.core.collection.CollUtil; +import cn.hutool.core.util.ObjUtil; +import cn.iocoder.yudao.framework.common.enums.CommonStatusEnum; import cn.iocoder.yudao.framework.common.pojo.PageResult; import cn.iocoder.yudao.framework.common.util.object.BeanUtils; -import cn.iocoder.yudao.module.mes.controller.admin.wm.stocktaking.plan.vo.MesWmStockTakingPlanGenerateReqVO; import cn.iocoder.yudao.module.mes.controller.admin.wm.stocktaking.plan.vo.MesWmStockTakingPlanPageReqVO; -import cn.iocoder.yudao.module.mes.controller.admin.wm.stocktaking.plan.vo.param.MesWmStockTakingPlanParamSaveReqVO; import cn.iocoder.yudao.module.mes.controller.admin.wm.stocktaking.plan.vo.MesWmStockTakingPlanSaveReqVO; -import cn.iocoder.yudao.module.mes.controller.admin.wm.stocktaking.vo.task.MesWmStockTakingTaskSaveReqVO; import cn.iocoder.yudao.module.mes.dal.dataobject.wm.stocktaking.plan.MesWmStockTakingPlanDO; import cn.iocoder.yudao.module.mes.dal.mysql.wm.stocktaking.plan.MesWmStockTakingPlanMapper; -import cn.iocoder.yudao.module.mes.enums.wm.MesWmStockTakingPlanStatusEnum; -import cn.iocoder.yudao.module.mes.service.wm.stocktaking.MesWmStockTakingTaskService; import jakarta.annotation.Resource; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; @@ -20,12 +17,13 @@ import org.springframework.validation.annotation.Validated; import java.util.Collection; import java.util.Collections; import java.util.List; -import java.util.Objects; import static cn.iocoder.yudao.framework.common.exception.util.ServiceExceptionUtil.exception; import static cn.iocoder.yudao.module.mes.enums.ErrorCodeConstants.*; -// TODO @AI:必要的注释 +/** + * MES 盘点方案 Service 实现类 + */ @Service @Validated public class MesWmStockTakingPlanServiceImpl implements MesWmStockTakingPlanService { @@ -34,67 +32,50 @@ public class MesWmStockTakingPlanServiceImpl implements MesWmStockTakingPlanServ private MesWmStockTakingPlanMapper stockTakingPlanMapper; @Resource private MesWmStockTakingPlanParamService stockTakingPlanParamService; - @Resource - private MesWmStockTakingTaskService stockTakingTaskService; @Override - @Transactional(rollbackFor = Exception.class) public Long createStockTakingPlan(MesWmStockTakingPlanSaveReqVO createReqVO) { + // 校验 code 的唯一性 validatePlanCodeUnique(null, createReqVO.getCode()); + // 插入数据 MesWmStockTakingPlanDO plan = BeanUtils.toBean(createReqVO, MesWmStockTakingPlanDO.class); - plan.setStatus(MesWmStockTakingPlanStatusEnum.PREPARE.getStatus()); + plan.setStatus(CommonStatusEnum.DISABLE.getStatus()); stockTakingPlanMapper.insert(plan); return plan.getId(); } - // TODO @AI:开启后,就不允许编辑、删除了; @Override - @Transactional(rollbackFor = Exception.class) public void updateStockTakingPlan(MesWmStockTakingPlanSaveReqVO updateReqVO) { - validatePlanExistsAndPrepare(updateReqVO.getId()); + // 校验盘点方案存在,并且是可编辑状态 + validatePlanEditable(updateReqVO.getId()); + // 校验 code 的唯一性 validatePlanCodeUnique(updateReqVO.getId(), updateReqVO.getCode()); + // 更新数据 MesWmStockTakingPlanDO updateObj = BeanUtils.toBean(updateReqVO, MesWmStockTakingPlanDO.class); stockTakingPlanMapper.updateById(updateObj); } - // TODO @AI:开启后,就不允许编辑、删除了; @Override @Transactional(rollbackFor = Exception.class) public void deleteStockTakingPlan(Long id) { - validatePlanExistsAndPrepare(id); + // 校验盘点方案存在,并且是可编辑状态 + validatePlanEditable(id); + + // 删除盘点方案参数 stockTakingPlanParamService.deleteStockTakingPlanParamByPlanId(id); + // 删除盘点方案 stockTakingPlanMapper.deleteById(id); } @Override - public void confirmStockTakingPlan(Long id) { - MesWmStockTakingPlanDO plan = validatePlanExistsAndPrepare(id); - plan.setStatus(MesWmStockTakingPlanStatusEnum.CONFIRMED.getStatus()); - stockTakingPlanMapper.updateById(plan); - } + public void updateStockTakingPlanStatus(Long id, Integer status) { + // 校验盘点方案存在 + validateStockTakingPlanExists(id); - // TODO @AI:这个方法不需要了呀; - @Override - public Long generateStockTakingTask(MesWmStockTakingPlanGenerateReqVO reqVO) { - MesWmStockTakingPlanDO plan = validatePlanExistsAndConfirmed(reqVO.getPlanId()); - MesWmStockTakingTaskSaveReqVO taskSaveReqVO = new MesWmStockTakingTaskSaveReqVO(); - taskSaveReqVO.setCode(reqVO.getCode()); - taskSaveReqVO.setName(reqVO.getName()); - taskSaveReqVO.setTakingDate(reqVO.getTakingDate()); - taskSaveReqVO.setType(plan.getType()); - taskSaveReqVO.setUserId(reqVO.getUserId()); - taskSaveReqVO.setPlanId(plan.getId()); - taskSaveReqVO.setBlindFlag(plan.getBlindFlag()); - taskSaveReqVO.setFrozenFlag(plan.getFrozenFlag()); - taskSaveReqVO.setRemark(reqVO.getRemark()); - - List params = reqVO.getParams(); - if (CollUtil.isEmpty(params)) { - params = BeanUtils.toBean(stockTakingPlanParamService.getStockTakingPlanParamList(plan.getId()), MesWmStockTakingPlanParamSaveReqVO.class); - } - return stockTakingTaskService.createStockTakingTaskByPlan(reqVO, taskSaveReqVO, params); + // 更新状态 + stockTakingPlanMapper.updateById(new MesWmStockTakingPlanDO().setId(id).setStatus(status)); } @Override @@ -113,7 +94,7 @@ public class MesWmStockTakingPlanServiceImpl implements MesWmStockTakingPlanServ @Override public MesWmStockTakingPlanDO validateStockTakingPlanEditable(Long id) { - return validatePlanExistsAndPrepare(id); + return validatePlanEditable(id); } @Override @@ -129,29 +110,25 @@ public class MesWmStockTakingPlanServiceImpl implements MesWmStockTakingPlanServ return stockTakingPlanMapper.selectPage(pageReqVO); } + @Override + public List getStockTakingPlanListByStatus(Integer status) { + return stockTakingPlanMapper.selectListByStatus(status); + } private void validatePlanCodeUnique(Long id, String code) { MesWmStockTakingPlanDO plan = stockTakingPlanMapper.selectByCode(code); if (plan == null) { return; } - if (id == null || !Objects.equals(plan.getId(), id)) { + if (ObjUtil.notEqual(plan.getId(), id)) { throw exception(WM_STOCK_TAKING_PLAN_CODE_DUPLICATE); } } - private MesWmStockTakingPlanDO validatePlanExistsAndPrepare(Long id) { - MesWmStockTakingPlanDO plan = validateStockTakingPlanExists(id); - if (!MesWmStockTakingPlanStatusEnum.PREPARE.getStatus().equals(plan.getStatus())) { - throw exception(WM_STOCK_TAKING_PLAN_NOT_PREPARE); - } - return plan; - } - - private MesWmStockTakingPlanDO validatePlanExistsAndConfirmed(Long id) { + private MesWmStockTakingPlanDO validatePlanEditable(Long id) { MesWmStockTakingPlanDO plan = validateStockTakingPlanExists(id); - if (!MesWmStockTakingPlanStatusEnum.CONFIRMED.getStatus().equals(plan.getStatus())) { - throw exception(WM_STOCK_TAKING_PLAN_NOT_CONFIRMED); + if (!CommonStatusEnum.isDisable(plan.getStatus())) { + throw exception(WM_STOCK_TAKING_PLAN_NOT_DISABLED); } return plan; }