Commit 5c60fab8bb57eac0a6160d5b32e6b66f213679ef
1 parent
749651e8
✨ feat(mes): 添加安灯呼叫记录创建和更新请求 VO
Showing
7 changed files
with
83 additions
and
59 deletions
yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/controller/admin/pro/andon/MesProAndonRecordController.java
| ... | ... | @@ -8,10 +8,10 @@ import cn.iocoder.yudao.framework.common.pojo.PageResult; |
| 8 | 8 | import cn.iocoder.yudao.framework.common.util.collection.MapUtils; |
| 9 | 9 | import cn.iocoder.yudao.framework.common.util.object.BeanUtils; |
| 10 | 10 | import cn.iocoder.yudao.framework.excel.core.util.ExcelUtils; |
| 11 | -import cn.iocoder.yudao.module.mes.controller.admin.pro.andon.vo.record.MesProAndonRecordHandleReqVO; | |
| 11 | +import cn.iocoder.yudao.module.mes.controller.admin.pro.andon.vo.record.MesProAndonRecordUpdateReqVO; | |
| 12 | 12 | import cn.iocoder.yudao.module.mes.controller.admin.pro.andon.vo.record.MesProAndonRecordPageReqVO; |
| 13 | 13 | import cn.iocoder.yudao.module.mes.controller.admin.pro.andon.vo.record.MesProAndonRecordRespVO; |
| 14 | -import cn.iocoder.yudao.module.mes.controller.admin.pro.andon.vo.record.MesProAndonRecordSaveReqVO; | |
| 14 | +import cn.iocoder.yudao.module.mes.controller.admin.pro.andon.vo.record.MesProAndonRecordCreateReqVO; | |
| 15 | 15 | import cn.iocoder.yudao.module.mes.dal.dataobject.md.workstation.MesMdWorkstationDO; |
| 16 | 16 | import cn.iocoder.yudao.module.mes.dal.dataobject.pro.andon.MesProAndonRecordDO; |
| 17 | 17 | import cn.iocoder.yudao.module.mes.dal.dataobject.pro.process.MesProProcessDO; |
| ... | ... | @@ -65,7 +65,7 @@ public class MesProAndonRecordController { |
| 65 | 65 | @PostMapping("/create") |
| 66 | 66 | @Operation(summary = "创建安灯呼叫记录") |
| 67 | 67 | @PreAuthorize("@ss.hasPermission('mes:pro-andon-record:create')") |
| 68 | - public CommonResult<Long> createAndonRecord(@Valid @RequestBody MesProAndonRecordSaveReqVO createReqVO) { | |
| 68 | + public CommonResult<Long> createAndonRecord(@Valid @RequestBody MesProAndonRecordCreateReqVO createReqVO) { | |
| 69 | 69 | return success(andonRecordService.createAndonRecord(createReqVO)); |
| 70 | 70 | } |
| 71 | 71 | |
| ... | ... | @@ -78,11 +78,11 @@ public class MesProAndonRecordController { |
| 78 | 78 | return success(true); |
| 79 | 79 | } |
| 80 | 80 | |
| 81 | - @PutMapping("/handle") | |
| 82 | - @Operation(summary = "处置安灯呼叫记录") | |
| 81 | + @PutMapping("/update") | |
| 82 | + @Operation(summary = "更新安灯呼叫记录") | |
| 83 | 83 | @PreAuthorize("@ss.hasPermission('mes:pro-andon-record:update')") |
| 84 | - public CommonResult<Boolean> handleAndonRecord(@Valid @RequestBody MesProAndonRecordHandleReqVO handleReqVO) { | |
| 85 | - andonRecordService.handleAndonRecord(handleReqVO); | |
| 84 | + public CommonResult<Boolean> updateAndonRecord(@Valid @RequestBody MesProAndonRecordUpdateReqVO updateReqVO) { | |
| 85 | + andonRecordService.updateAndonRecord(updateReqVO); | |
| 86 | 86 | return success(true); |
| 87 | 87 | } |
| 88 | 88 | ... | ... |
yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/controller/admin/pro/andon/vo/record/MesProAndonRecordSaveReqVO.java renamed to yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/controller/admin/pro/andon/vo/record/MesProAndonRecordCreateReqVO.java
| 1 | 1 | package cn.iocoder.yudao.module.mes.controller.admin.pro.andon.vo.record; |
| 2 | 2 | |
| 3 | 3 | import io.swagger.v3.oas.annotations.media.Schema; |
| 4 | -import jakarta.validation.constraints.NotEmpty; | |
| 5 | 4 | import jakarta.validation.constraints.NotNull; |
| 6 | 5 | import lombok.Data; |
| 7 | 6 | |
| 8 | 7 | @Schema(description = "管理后台 - MES 安灯呼叫记录新增 Request VO") |
| 9 | 8 | @Data |
| 10 | -public class MesProAndonRecordSaveReqVO { | |
| 9 | +public class MesProAndonRecordCreateReqVO { | |
| 11 | 10 | |
| 12 | 11 | @Schema(description = "安灯配置编号", requiredMode = Schema.RequiredMode.REQUIRED, example = "1") |
| 13 | 12 | @NotNull(message = "安灯配置不能为空") | ... | ... |
yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/controller/admin/pro/andon/vo/record/MesProAndonRecordHandleReqVO.java deleted
| 1 | -package cn.iocoder.yudao.module.mes.controller.admin.pro.andon.vo.record; | |
| 2 | - | |
| 3 | -import io.swagger.v3.oas.annotations.media.Schema; | |
| 4 | -import jakarta.validation.constraints.NotNull; | |
| 5 | -import lombok.Data; | |
| 6 | - | |
| 7 | -import java.time.LocalDateTime; | |
| 8 | - | |
| 9 | -@Schema(description = "管理后台 - MES 安灯呼叫记录处置 Request VO") | |
| 10 | -@Data | |
| 11 | -public class MesProAndonRecordHandleReqVO { | |
| 12 | - | |
| 13 | - @Schema(description = "编号", requiredMode = Schema.RequiredMode.REQUIRED, example = "1024") | |
| 14 | - @NotNull(message = "编号不能为空") | |
| 15 | - private Long id; | |
| 16 | - | |
| 17 | - @Schema(description = "处置时间", requiredMode = Schema.RequiredMode.REQUIRED) | |
| 18 | - @NotNull(message = "处置时间不能为空") | |
| 19 | - private LocalDateTime handleTime; | |
| 20 | - | |
| 21 | - @Schema(description = "处置人编号", requiredMode = Schema.RequiredMode.REQUIRED, example = "100") | |
| 22 | - @NotNull(message = "处置人不能为空") | |
| 23 | - private Long handlerUserId; | |
| 24 | - | |
| 25 | - @Schema(description = "备注", example = "已修复") | |
| 26 | - private String remark; | |
| 27 | - | |
| 28 | -} |
yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/controller/admin/pro/andon/vo/record/MesProAndonRecordUpdateReqVO.java
0 → 100644
| 1 | +package cn.iocoder.yudao.module.mes.controller.admin.pro.andon.vo.record; | |
| 2 | + | |
| 3 | +import cn.iocoder.yudao.module.mes.enums.pro.MesProAndonStatusEnum; | |
| 4 | +import com.fasterxml.jackson.annotation.JsonIgnore; | |
| 5 | +import io.swagger.v3.oas.annotations.media.Schema; | |
| 6 | +import jakarta.validation.constraints.AssertTrue; | |
| 7 | +import jakarta.validation.constraints.NotNull; | |
| 8 | +import lombok.Data; | |
| 9 | + | |
| 10 | +import java.time.LocalDateTime; | |
| 11 | + | |
| 12 | +@Schema(description = "管理后台 - MES 安灯呼叫记录更新 Request VO") | |
| 13 | +@Data | |
| 14 | +public class MesProAndonRecordUpdateReqVO { | |
| 15 | + | |
| 16 | + @Schema(description = "编号", requiredMode = Schema.RequiredMode.REQUIRED, example = "1024") | |
| 17 | + @NotNull(message = "编号不能为空") | |
| 18 | + private Long id; | |
| 19 | + | |
| 20 | + @Schema(description = "处置时间") | |
| 21 | + private LocalDateTime handleTime; | |
| 22 | + | |
| 23 | + @Schema(description = "处置人编号", example = "100") | |
| 24 | + private Long handlerUserId; | |
| 25 | + | |
| 26 | + @Schema(description = "备注", example = "已修复") | |
| 27 | + private String remark; | |
| 28 | + | |
| 29 | + @Schema(description = "处置状态", example = "1") | |
| 30 | + @NotNull(message = "处置状态不能为空") | |
| 31 | + private Integer status; | |
| 32 | + | |
| 33 | + @AssertTrue(message = "标记已处置时,处置时间不能为空") | |
| 34 | + @JsonIgnore | |
| 35 | + public boolean isHandleTimeValid() { | |
| 36 | + if (!MesProAndonStatusEnum.HANDLED.getStatus().equals(status)) { | |
| 37 | + return true; | |
| 38 | + } | |
| 39 | + return handleTime != null; | |
| 40 | + } | |
| 41 | + | |
| 42 | + @AssertTrue(message = "标记已处置时,处置人不能为空") | |
| 43 | + @JsonIgnore | |
| 44 | + public boolean isHandlerUserIdValid() { | |
| 45 | + if (!MesProAndonStatusEnum.HANDLED.getStatus().equals(status)) { | |
| 46 | + return true; | |
| 47 | + } | |
| 48 | + return handlerUserId != null; | |
| 49 | + } | |
| 50 | + | |
| 51 | +} | ... | ... |
yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/enums/ErrorCodeConstants.java
| ... | ... | @@ -233,6 +233,8 @@ public interface ErrorCodeConstants { |
| 233 | 233 | // ========== MES 生产管理-安灯呼叫记录(1-040-505-000) ========== |
| 234 | 234 | ErrorCode PRO_ANDON_RECORD_NOT_EXISTS = new ErrorCode(1_040_505_000, "安灯呼叫记录不存在"); |
| 235 | 235 | ErrorCode PRO_ANDON_RECORD_ALREADY_HANDLED = new ErrorCode(1_040_505_001, "安灯记录已处置,不允许重复处置"); |
| 236 | + ErrorCode PRO_ANDON_RECORD_HANDLE_TIME_REQUIRED = new ErrorCode(1_040_505_002, "标记已处置时,处置时间不能为空"); | |
| 237 | + ErrorCode PRO_ANDON_RECORD_HANDLER_USER_REQUIRED = new ErrorCode(1_040_505_003, "标记已处置时,处置人不能为空"); | |
| 236 | 238 | |
| 237 | 239 | // ========== MES 生产管理-生产报工(1-040-506-000) ========== |
| 238 | 240 | ErrorCode PRO_FEEDBACK_NOT_EXISTS = new ErrorCode(1_040_506_000, "生产报工不存在"); | ... | ... |
yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/service/pro/andon/MesProAndonRecordService.java
| 1 | 1 | package cn.iocoder.yudao.module.mes.service.pro.andon; |
| 2 | 2 | |
| 3 | 3 | import cn.iocoder.yudao.framework.common.pojo.PageResult; |
| 4 | -import cn.iocoder.yudao.module.mes.controller.admin.pro.andon.vo.record.MesProAndonRecordHandleReqVO; | |
| 4 | +import cn.iocoder.yudao.module.mes.controller.admin.pro.andon.vo.record.MesProAndonRecordUpdateReqVO; | |
| 5 | 5 | import cn.iocoder.yudao.module.mes.controller.admin.pro.andon.vo.record.MesProAndonRecordPageReqVO; |
| 6 | -import cn.iocoder.yudao.module.mes.controller.admin.pro.andon.vo.record.MesProAndonRecordSaveReqVO; | |
| 6 | +import cn.iocoder.yudao.module.mes.controller.admin.pro.andon.vo.record.MesProAndonRecordCreateReqVO; | |
| 7 | 7 | import cn.iocoder.yudao.module.mes.dal.dataobject.pro.andon.MesProAndonRecordDO; |
| 8 | 8 | import jakarta.validation.Valid; |
| 9 | 9 | |
| ... | ... | @@ -20,7 +20,7 @@ public interface MesProAndonRecordService { |
| 20 | 20 | * @param createReqVO 创建信息 |
| 21 | 21 | * @return 编号 |
| 22 | 22 | */ |
| 23 | - Long createAndonRecord(@Valid MesProAndonRecordSaveReqVO createReqVO); | |
| 23 | + Long createAndonRecord(@Valid MesProAndonRecordCreateReqVO createReqVO); | |
| 24 | 24 | |
| 25 | 25 | /** |
| 26 | 26 | * 删除安灯呼叫记录 |
| ... | ... | @@ -30,11 +30,11 @@ public interface MesProAndonRecordService { |
| 30 | 30 | void deleteAndonRecord(Long id); |
| 31 | 31 | |
| 32 | 32 | /** |
| 33 | - * 处置安灯呼叫记录 | |
| 33 | + * 更新安灯呼叫记录(保存处置信息 / 标记已处置) | |
| 34 | 34 | * |
| 35 | - * @param handleReqVO 处置信息 | |
| 35 | + * @param updateReqVO 更新信息 | |
| 36 | 36 | */ |
| 37 | - void handleAndonRecord(@Valid MesProAndonRecordHandleReqVO handleReqVO); | |
| 37 | + void updateAndonRecord(@Valid MesProAndonRecordUpdateReqVO updateReqVO); | |
| 38 | 38 | |
| 39 | 39 | /** |
| 40 | 40 | * 获得安灯呼叫记录 | ... | ... |
yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/service/pro/andon/MesProAndonRecordServiceImpl.java
| ... | ... | @@ -3,9 +3,9 @@ package cn.iocoder.yudao.module.mes.service.pro.andon; |
| 3 | 3 | import cn.hutool.core.util.ObjUtil; |
| 4 | 4 | import cn.iocoder.yudao.framework.common.pojo.PageResult; |
| 5 | 5 | import cn.iocoder.yudao.framework.common.util.object.BeanUtils; |
| 6 | -import cn.iocoder.yudao.module.mes.controller.admin.pro.andon.vo.record.MesProAndonRecordHandleReqVO; | |
| 6 | +import cn.iocoder.yudao.module.mes.controller.admin.pro.andon.vo.record.MesProAndonRecordUpdateReqVO; | |
| 7 | 7 | import cn.iocoder.yudao.module.mes.controller.admin.pro.andon.vo.record.MesProAndonRecordPageReqVO; |
| 8 | -import cn.iocoder.yudao.module.mes.controller.admin.pro.andon.vo.record.MesProAndonRecordSaveReqVO; | |
| 8 | +import cn.iocoder.yudao.module.mes.controller.admin.pro.andon.vo.record.MesProAndonRecordCreateReqVO; | |
| 9 | 9 | import cn.iocoder.yudao.module.mes.dal.dataobject.pro.andon.MesProAndonConfigDO; |
| 10 | 10 | import cn.iocoder.yudao.module.mes.dal.dataobject.pro.andon.MesProAndonRecordDO; |
| 11 | 11 | import cn.iocoder.yudao.module.mes.dal.mysql.pro.andon.MesProAndonRecordMapper; |
| ... | ... | @@ -45,7 +45,7 @@ public class MesProAndonRecordServiceImpl implements MesProAndonRecordService { |
| 45 | 45 | private MesProAndonConfigService andonConfigService; |
| 46 | 46 | |
| 47 | 47 | @Override |
| 48 | - public Long createAndonRecord(MesProAndonRecordSaveReqVO createReqVO) { | |
| 48 | + public Long createAndonRecord(MesProAndonRecordCreateReqVO createReqVO) { | |
| 49 | 49 | // 1. 校验关联数据存在 |
| 50 | 50 | MesProAndonConfigDO config = andonConfigService.validateAndonConfigExists(createReqVO.getConfigId()); |
| 51 | 51 | workstationService.validateWorkstationExists(createReqVO.getWorkstationId()); |
| ... | ... | @@ -56,9 +56,9 @@ public class MesProAndonRecordServiceImpl implements MesProAndonRecordService { |
| 56 | 56 | processService.validateProcessExists(createReqVO.getProcessId()); |
| 57 | 57 | } |
| 58 | 58 | |
| 59 | - // 2. 插入 | |
| 59 | + // 2. 插入记录 | |
| 60 | 60 | MesProAndonRecordDO record = BeanUtils.toBean(createReqVO, MesProAndonRecordDO.class); |
| 61 | - record.setReason(config.getReason()).setLevel(config.getLevel()); | |
| 61 | + record.setReason(config.getReason()).setLevel(config.getLevel()); // 快照配置中的原因和级别 | |
| 62 | 62 | record.setStatus(MesProAndonStatusEnum.ACTIVE.getStatus()); |
| 63 | 63 | andonRecordMapper.insert(record); |
| 64 | 64 | return record.getId(); |
| ... | ... | @@ -66,23 +66,23 @@ public class MesProAndonRecordServiceImpl implements MesProAndonRecordService { |
| 66 | 66 | |
| 67 | 67 | @Override |
| 68 | 68 | public void deleteAndonRecord(Long id) { |
| 69 | - // 1. 校验存在 + 未处置 | |
| 69 | + // 1. 校验存在,且未处置 | |
| 70 | 70 | validateAndonRecordNotHandled(id); |
| 71 | 71 | // 2. 删除 |
| 72 | 72 | andonRecordMapper.deleteById(id); |
| 73 | 73 | } |
| 74 | 74 | |
| 75 | 75 | @Override |
| 76 | - public void handleAndonRecord(MesProAndonRecordHandleReqVO handleReqVO) { | |
| 77 | - // 1. 校验存在 + 未处置 | |
| 78 | - validateAndonRecordNotHandled(handleReqVO.getId()); | |
| 79 | - | |
| 80 | - // 2. 更新为已处置 | |
| 81 | - andonRecordMapper.updateById(new MesProAndonRecordDO().setId(handleReqVO.getId()) | |
| 82 | - .setStatus(MesProAndonStatusEnum.HANDLED.getStatus()) | |
| 83 | - .setHandleTime(handleReqVO.getHandleTime()) | |
| 84 | - .setHandlerUserId(handleReqVO.getHandlerUserId()) | |
| 85 | - .setRemark(handleReqVO.getRemark())); | |
| 76 | + public void updateAndonRecord(MesProAndonRecordUpdateReqVO updateReqVO) { | |
| 77 | + // 1. 校验存在,且未处置 | |
| 78 | + validateAndonRecordNotHandled(updateReqVO.getId()); | |
| 79 | + | |
| 80 | + // 2. 更新 | |
| 81 | + andonRecordMapper.updateById(new MesProAndonRecordDO().setId(updateReqVO.getId()) | |
| 82 | + .setStatus(updateReqVO.getStatus()) | |
| 83 | + .setHandleTime(updateReqVO.getHandleTime()) | |
| 84 | + .setHandlerUserId(updateReqVO.getHandlerUserId()) | |
| 85 | + .setRemark(updateReqVO.getRemark())); | |
| 86 | 86 | } |
| 87 | 87 | |
| 88 | 88 | /** | ... | ... |