Browse Source

✨ feat(mes): 新增维修工单确认完成请求及相关逻辑

新增 MesDvRepairConfirmReqVO 类以处理维修工单确认完成请求,更新相关服务和控制器逻辑以支持新的请求格式。确保维修工单名称和完成日期为必填项,增强了数据验证和状态管理。
YunaiV 2 months ago
parent
commit
eca2c176a2

+ 2 - 3
yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/controller/admin/dv/repair/MesDvRepairController.java

@@ -125,10 +125,9 @@ public class MesDvRepairController {
 
     @PutMapping("/confirm")
     @Operation(summary = "确认维修完成(维修中→待验收)")
-    @Parameter(name = "id", description = "编号", required = true)
     @PreAuthorize("@ss.hasPermission('mes:dv-repair:update')")
-    public CommonResult<Boolean> confirmRepair(@RequestParam("id") Long id) {
-        repairService.confirmRepair(id);
+    public CommonResult<Boolean> confirmRepair(@Valid @RequestBody cn.iocoder.yudao.module.mes.controller.admin.dv.repair.vo.MesDvRepairConfirmReqVO confirmReqVO) {
+        repairService.confirmRepair(confirmReqVO);
         return success(true);
     }
 

+ 21 - 0
yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/controller/admin/dv/repair/vo/MesDvRepairConfirmReqVO.java

@@ -0,0 +1,21 @@
+package cn.iocoder.yudao.module.mes.controller.admin.dv.repair.vo;
+
+import io.swagger.v3.oas.annotations.media.Schema;
+import lombok.Data;
+
+import jakarta.validation.constraints.NotNull;
+import java.time.LocalDateTime;
+
+@Schema(description = "管理后台 - MES 维修工单确认完成 Request VO")
+@Data
+public class MesDvRepairConfirmReqVO {
+
+    @Schema(description = "编号", requiredMode = Schema.RequiredMode.REQUIRED, example = "1024")
+    @NotNull(message = "维修工单编号不能为空")
+    private Long id;
+
+    @Schema(description = "维修完成日期", requiredMode = Schema.RequiredMode.REQUIRED)
+    @NotNull(message = "维修完成日期不能为空")
+    private LocalDateTime finishDate;
+
+}

+ 2 - 1
yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/controller/admin/dv/repair/vo/MesDvRepairSaveReqVO.java

@@ -18,7 +18,8 @@ public class MesDvRepairSaveReqVO {
     @NotBlank(message = "维修工单编码不能为空")
     private String code;
 
-    @Schema(description = "维修工单名称", example = "注塑机液压系统维修")
+    @Schema(description = "维修工单名称", requiredMode = Schema.RequiredMode.REQUIRED, example = "注塑机液压系统维修")
+    @NotBlank(message = "维修工单名称不能为空")
     private String name;
 
     @Schema(description = "设备编号", requiredMode = Schema.RequiredMode.REQUIRED, example = "1")

+ 3 - 3
yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/service/dv/repair/MesDvRepairService.java

@@ -1,10 +1,10 @@
 package cn.iocoder.yudao.module.mes.service.dv.repair;
 
 import cn.iocoder.yudao.framework.common.pojo.PageResult;
+import cn.iocoder.yudao.module.mes.controller.admin.dv.repair.vo.MesDvRepairConfirmReqVO;
 import cn.iocoder.yudao.module.mes.controller.admin.dv.repair.vo.MesDvRepairPageReqVO;
 import cn.iocoder.yudao.module.mes.controller.admin.dv.repair.vo.MesDvRepairSaveReqVO;
 import cn.iocoder.yudao.module.mes.dal.dataobject.dv.repair.MesDvRepairDO;
-
 import jakarta.validation.Valid;
 
 /**
@@ -78,9 +78,9 @@ public interface MesDvRepairService {
     /**
      * 确认维修完成(维修中→待验收)
      *
-     * @param id 编号
+     * @param confirmReqVO 确认信息
      */
-    void confirmRepair(Long id);
+    void confirmRepair(@Valid MesDvRepairConfirmReqVO confirmReqVO);
 
     /**
      * 完成验收(待验收→已确认)

+ 5 - 5
yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/service/dv/repair/MesDvRepairServiceImpl.java

@@ -144,16 +144,16 @@ public class MesDvRepairServiceImpl implements MesDvRepairService {
     }
 
     @Override
-    public void confirmRepair(Long id) {
+    public void confirmRepair(cn.iocoder.yudao.module.mes.controller.admin.dv.repair.vo.MesDvRepairConfirmReqVO confirmReqVO) {
         // 1. 校验存在,且状态为维修中
-        MesDvRepairDO repair = validateRepairExists(id);
+        MesDvRepairDO repair = validateRepairExists(confirmReqVO.getId());
         if (ObjUtil.notEqual(MesDvRepairStatusEnum.CONFIRMED.getStatus(), repair.getStatus())) {
             throw exception(DV_REPAIR_NOT_CONFIRMED);
         }
 
-        // 2. 更新状态为待验收,自动设置维修完成日期
-        repairMapper.updateById(new MesDvRepairDO().setId(id)
-                .setStatus(MesDvRepairStatusEnum.APPROVING.getStatus()).setFinishDate(LocalDateTime.now()));
+        // 2. 更新状态为待验收,设置维修完成日期
+        repairMapper.updateById(new MesDvRepairDO().setId(confirmReqVO.getId())
+                .setStatus(MesDvRepairStatusEnum.APPROVING.getStatus()).setFinishDate(confirmReqVO.getFinishDate()));
     }
 
     @Override