From 91455c2d5bfd57e4716c22457d9a18c3903ea9a0 Mon Sep 17 00:00:00 2001 From: YunaiV Date: Mon, 16 Mar 2026 23:28:28 +0800 Subject: [PATCH] ✨ feat(mes): 优化生产任务保存请求和验证逻辑 --- yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/controller/admin/pro/task/vo/MesProTaskSaveReqVO.java | 30 ++++++++++++------------------ yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/service/pro/task/MesProTaskService.java | 3 ++- yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/service/pro/task/MesProTaskServiceImpl.java | 31 +++++++++++++++++++++++-------- 3 files changed, 37 insertions(+), 27 deletions(-) diff --git a/yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/controller/admin/pro/task/vo/MesProTaskSaveReqVO.java b/yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/controller/admin/pro/task/vo/MesProTaskSaveReqVO.java index 77fa325..db9f5e2 100644 --- a/yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/controller/admin/pro/task/vo/MesProTaskSaveReqVO.java +++ b/yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/controller/admin/pro/task/vo/MesProTaskSaveReqVO.java @@ -16,30 +16,24 @@ public class MesProTaskSaveReqVO { @Schema(description = "编号", requiredMode = Schema.RequiredMode.REQUIRED, example = "1024") private Long id; - @Schema(description = "生产工单编号", requiredMode = Schema.RequiredMode.REQUIRED, example = "1") - @NotNull(message = "生产工单不能为空") - private Long workOrderId; + @Schema(description = "生产工单编号", example = "1") + private Long workOrderId; // 编辑时,可不传递 - @Schema(description = "工作站编号", requiredMode = Schema.RequiredMode.REQUIRED, example = "1") - @NotNull(message = "工作站不能为空") - private Long workstationId; + @Schema(description = "工作站编号", example = "1") + private Long workstationId; // 编辑时,可不传递 - @Schema(description = "工艺路线编号", requiredMode = Schema.RequiredMode.REQUIRED, example = "1") - @NotNull(message = "工艺路线不能为空") - private Long routeId; + @Schema(description = "工艺路线编号", example = "1") + private Long routeId; // 编辑时,可不传递 - @Schema(description = "工序编号", requiredMode = Schema.RequiredMode.REQUIRED, example = "1") - @NotNull(message = "工序不能为空") - private Long processId; + @Schema(description = "工序编号", example = "1") + private Long processId; // 编辑时,可不传递 - @Schema(description = "产品物料编号", requiredMode = Schema.RequiredMode.REQUIRED, example = "100") - @NotNull(message = "产品不能为空") - private Long itemId; + @Schema(description = "产品物料编号", example = "100") + private Long itemId; // 编辑时,可不传递 - @Schema(description = "排产数量", requiredMode = Schema.RequiredMode.REQUIRED, example = "100.00") - @NotNull(message = "排产数量不能为空") + @Schema(description = "排产数量", example = "100.00") @DecimalMin(value = "0", inclusive = false, message = "排产数量必须大于 0") - private BigDecimal quantity; + private BigDecimal quantity; // 编辑时,可不传递 @Schema(description = "开始生产时间") private LocalDateTime startTime; diff --git a/yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/service/pro/task/MesProTaskService.java b/yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/service/pro/task/MesProTaskService.java index ed473cc..10addca 100644 --- a/yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/service/pro/task/MesProTaskService.java +++ b/yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/service/pro/task/MesProTaskService.java @@ -77,8 +77,9 @@ public interface MesProTaskService { * 校验任务是否存在 * * @param id 编号 + * @return 生产任务 */ - void validateTaskExists(Long id); + MesProTaskDO validateTaskExists(Long id); /** * 获得生产任务列表 diff --git a/yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/service/pro/task/MesProTaskServiceImpl.java b/yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/service/pro/task/MesProTaskServiceImpl.java index 7254542..8d6b779 100644 --- a/yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/service/pro/task/MesProTaskServiceImpl.java +++ b/yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/service/pro/task/MesProTaskServiceImpl.java @@ -78,13 +78,26 @@ public class MesProTaskServiceImpl implements MesProTaskService { @Override public void updateTask(MesProTaskSaveReqVO updateReqVO) { // 1.1 校验存在 - validateTaskExists(updateReqVO.getId()); + MesProTaskDO task = validateTaskExists(updateReqVO.getId()); // 1.2 校验关联数据存在 - workOrderService.validateWorkOrderExists(updateReqVO.getWorkOrderId()); - workstationService.validateWorkstationExists(updateReqVO.getWorkstationId()); - routeService.validateRouteExists(updateReqVO.getRouteId()); - processService.validateProcessExists(updateReqVO.getProcessId()); - MesMdItemDO item = itemService.validateItemExists(updateReqVO.getItemId()); + if (updateReqVO.getWorkOrderId() != null) { + workOrderService.validateWorkOrderExists(updateReqVO.getWorkOrderId()); + } + if (updateReqVO.getWorkstationId() != null) { + workstationService.validateWorkstationExists(updateReqVO.getWorkstationId()); + } + if (updateReqVO.getRouteId() != null) { + routeService.validateRouteExists(updateReqVO.getRouteId()); + } + if (updateReqVO.getProcessId() != null) { + processService.validateProcessExists(updateReqVO.getProcessId()); + } + MesMdItemDO item; + if (updateReqVO.getItemId() != null) { + item = itemService.validateItemExists(updateReqVO.getItemId()); + } else { + item = itemService.validateItemExists(task.getItemId()); + } // 2. 更新 MesProTaskDO updateObj = BeanUtils.toBean(updateReqVO, MesProTaskDO.class) @@ -124,10 +137,12 @@ public class MesProTaskServiceImpl implements MesProTaskService { } @Override - public void validateTaskExists(Long id) { - if (taskMapper.selectById(id) == null) { + public MesProTaskDO validateTaskExists(Long id) { + MesProTaskDO task = taskMapper.selectById(id); + if (task == null) { throw exception(PRO_TASK_NOT_EXISTS); } + return task; } @Override -- libgit2 0.21.4