From 4c4885e2d93334410c07c760a670ffebdc50a76d Mon Sep 17 00:00:00 2001 From: YunaiV Date: Fri, 20 Feb 2026 18:42:03 +0800 Subject: [PATCH] feat(mes): 更新点检结果字段类型为整数,重构相关枚举和状态描述 --- yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/controller/admin/dv/checkrecord/MesDvCheckRecordController.java | 2 +- yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/controller/admin/dv/checkrecord/vo/MesDvCheckRecordRespVO.java | 3 --- yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/controller/admin/dv/checkrecord/vo/MesDvCheckRecordSaveReqVO.java | 3 --- yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/controller/admin/dv/checkrecord/vo/line/MesDvCheckRecordLineRespVO.java | 4 ++-- yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/controller/admin/dv/checkrecord/vo/line/MesDvCheckRecordLineSaveReqVO.java | 4 ++-- yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/dal/dataobject/dv/checkrecord/MesDvCheckRecordDO.java | 11 ++--------- yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/dal/dataobject/dv/checkrecord/MesDvCheckRecordLineDO.java | 9 +++++---- yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/enums/ErrorCodeConstants.java | 2 +- yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/enums/dv/MesDvCheckResultEnum.java | 37 +++++++++++++++++++++++++++++++++++++ yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/service/dv/checkrecord/MesDvCheckRecordService.java | 2 +- yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/service/dv/checkrecord/MesDvCheckRecordServiceImpl.java | 50 ++++++++++++++++++++++---------------------------- 11 files changed, 73 insertions(+), 54 deletions(-) create mode 100644 yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/enums/dv/MesDvCheckResultEnum.java diff --git a/yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/controller/admin/dv/checkrecord/MesDvCheckRecordController.java b/yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/controller/admin/dv/checkrecord/MesDvCheckRecordController.java index 462c56a..42f455d 100644 --- a/yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/controller/admin/dv/checkrecord/MesDvCheckRecordController.java +++ b/yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/controller/admin/dv/checkrecord/MesDvCheckRecordController.java @@ -72,7 +72,7 @@ public class MesDvCheckRecordController { } @PutMapping("/submit") - @Operation(summary = "提交设备点检记录(待点检→已完成)") + @Operation(summary = "提交设备点检记录(草稿→已完成)") @Parameter(name = "id", description = "编号", required = true) @PreAuthorize("@ss.hasPermission('mes:dv-check-record:update')") public CommonResult submitCheckRecord(@RequestParam("id") Long id) { diff --git a/yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/controller/admin/dv/checkrecord/vo/MesDvCheckRecordRespVO.java b/yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/controller/admin/dv/checkrecord/vo/MesDvCheckRecordRespVO.java index a37f976..7c76c4d 100644 --- a/yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/controller/admin/dv/checkrecord/vo/MesDvCheckRecordRespVO.java +++ b/yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/controller/admin/dv/checkrecord/vo/MesDvCheckRecordRespVO.java @@ -26,9 +26,6 @@ public class MesDvCheckRecordRespVO { @ExcelProperty("计划名称") private String planName; - @Schema(description = "计划类型", example = "1") - private Integer planType; - @Schema(description = "设备编号", requiredMode = Schema.RequiredMode.REQUIRED, example = "1") private Long machineryId; diff --git a/yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/controller/admin/dv/checkrecord/vo/MesDvCheckRecordSaveReqVO.java b/yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/controller/admin/dv/checkrecord/vo/MesDvCheckRecordSaveReqVO.java index 95c2291..29d9088 100644 --- a/yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/controller/admin/dv/checkrecord/vo/MesDvCheckRecordSaveReqVO.java +++ b/yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/controller/admin/dv/checkrecord/vo/MesDvCheckRecordSaveReqVO.java @@ -16,9 +16,6 @@ public class MesDvCheckRecordSaveReqVO { @Schema(description = "点检计划编号", example = "1") private Long planId; - @Schema(description = "计划类型", example = "1") - private Integer planType; - @Schema(description = "设备编号", requiredMode = Schema.RequiredMode.REQUIRED, example = "1") @NotNull(message = "设备不能为空") private Long machineryId; diff --git a/yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/controller/admin/dv/checkrecord/vo/line/MesDvCheckRecordLineRespVO.java b/yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/controller/admin/dv/checkrecord/vo/line/MesDvCheckRecordLineRespVO.java index 7de282f..4dd7b99 100644 --- a/yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/controller/admin/dv/checkrecord/vo/line/MesDvCheckRecordLineRespVO.java +++ b/yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/controller/admin/dv/checkrecord/vo/line/MesDvCheckRecordLineRespVO.java @@ -41,10 +41,10 @@ public class MesDvCheckRecordLineRespVO { @ExcelProperty("检查标准") private String subjectStandard; - @Schema(description = "点检结果(Y=正常,N=异常)", requiredMode = Schema.RequiredMode.REQUIRED, example = "Y") + @Schema(description = "点检结果", requiredMode = Schema.RequiredMode.REQUIRED, example = "1") @ExcelProperty(value = "点检结果", converter = DictConvert.class) @DictFormat(DictTypeConstants.MES_DV_CHECK_RESULT) - private String checkStatus; + private Integer checkStatus; @Schema(description = "异常描述", example = "设备异响") @ExcelProperty("异常描述") diff --git a/yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/controller/admin/dv/checkrecord/vo/line/MesDvCheckRecordLineSaveReqVO.java b/yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/controller/admin/dv/checkrecord/vo/line/MesDvCheckRecordLineSaveReqVO.java index 45f3bbc..9ece085 100644 --- a/yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/controller/admin/dv/checkrecord/vo/line/MesDvCheckRecordLineSaveReqVO.java +++ b/yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/controller/admin/dv/checkrecord/vo/line/MesDvCheckRecordLineSaveReqVO.java @@ -20,9 +20,9 @@ public class MesDvCheckRecordLineSaveReqVO { @NotNull(message = "点检项目不能为空") private Long subjectId; - @Schema(description = "点检结果(Y=正常,N=异常)", requiredMode = Schema.RequiredMode.REQUIRED, example = "Y") + @Schema(description = "点检结果", requiredMode = Schema.RequiredMode.REQUIRED, example = "1") @NotNull(message = "点检结果不能为空") - private String checkStatus; + private Integer checkStatus; @Schema(description = "异常描述", example = "设备异响") private String checkResult; diff --git a/yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/dal/dataobject/dv/checkrecord/MesDvCheckRecordDO.java b/yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/dal/dataobject/dv/checkrecord/MesDvCheckRecordDO.java index aac9c46..8e66d5b 100644 --- a/yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/dal/dataobject/dv/checkrecord/MesDvCheckRecordDO.java +++ b/yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/dal/dataobject/dv/checkrecord/MesDvCheckRecordDO.java @@ -3,6 +3,7 @@ package cn.iocoder.yudao.module.mes.dal.dataobject.dv.checkrecord; import cn.iocoder.yudao.framework.mybatis.core.dataobject.BaseDO; import cn.iocoder.yudao.module.mes.dal.dataobject.dv.checkplan.MesDvCheckPlanDO; import cn.iocoder.yudao.module.mes.dal.dataobject.dv.machinery.MesDvMachineryDO; +import cn.iocoder.yudao.module.mes.enums.dv.MesDvCheckRecordStatusEnum; import com.baomidou.mybatisplus.annotation.KeySequence; import com.baomidou.mybatisplus.annotation.TableId; import com.baomidou.mybatisplus.annotation.TableName; @@ -36,13 +37,6 @@ public class MesDvCheckRecordDO extends BaseDO { * 关联 {@link MesDvCheckPlanDO#getId()} */ private Long planId; - // TODO @AI:这个字段可以移除; - /** - * 计划类型 - * - * 字典类型 mes_dv_check_plan_type(与计划保持冗余,避免 JOIN) - */ - private Integer planType; /** * 设备编号 * @@ -59,11 +53,10 @@ public class MesDvCheckRecordDO extends BaseDO { * 关联 AdminUserDO#getId() */ private Long userId; - // TODO @AI:枚举、字典; /** * 状态 * - * 字典类型 mes_dv_check_record_status(10=待点检,20=已完成) + * 枚举 {@link MesDvCheckRecordStatusEnum} */ private Integer status; /** diff --git a/yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/dal/dataobject/dv/checkrecord/MesDvCheckRecordLineDO.java b/yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/dal/dataobject/dv/checkrecord/MesDvCheckRecordLineDO.java index 6393e59..732c60f 100644 --- a/yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/dal/dataobject/dv/checkrecord/MesDvCheckRecordLineDO.java +++ b/yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/dal/dataobject/dv/checkrecord/MesDvCheckRecordLineDO.java @@ -2,6 +2,7 @@ package cn.iocoder.yudao.module.mes.dal.dataobject.dv.checkrecord; import cn.iocoder.yudao.framework.mybatis.core.dataobject.BaseDO; import cn.iocoder.yudao.module.mes.dal.dataobject.dv.subject.MesDvSubjectDO; +import cn.iocoder.yudao.module.mes.enums.dv.MesDvCheckResultEnum; import com.baomidou.mybatisplus.annotation.KeySequence; import com.baomidou.mybatisplus.annotation.TableId; import com.baomidou.mybatisplus.annotation.TableName; @@ -39,16 +40,16 @@ public class MesDvCheckRecordLineDO extends BaseDO { * 关联 {@link MesDvSubjectDO#getId()} */ private Long subjectId; - // TODO @AI:应该使用 int; /** * 点检结果 * - * 字典类型 mes_dv_check_result(Y=正常,N=异常) + * 枚举 {@link MesDvCheckResultEnum} */ - private String checkStatus; - // TODO @AI:需要标注下,checkStatus 才有使用; + private Integer checkStatus; /** * 异常描述 + * + * 仅 {@link #checkStatus} 为异常时使用 */ private String checkResult; /** 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 ecb8d83..3e5cb90 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 @@ -147,7 +147,7 @@ public interface ErrorCodeConstants { // ========== MES 设备管理-点检记录(1-040-306-000) ========== ErrorCode DV_CHECK_RECORD_NOT_EXISTS = new ErrorCode(1_040_306_000, "设备点检记录不存在"); - ErrorCode DV_CHECK_RECORD_NOT_PREPARE = new ErrorCode(1_040_306_001, "设备点检记录已完成,不允许修改或删除"); + ErrorCode DV_CHECK_RECORD_NOT_DRAFT = new ErrorCode(1_040_306_001, "设备点检记录已完成,不允许修改或删除"); ErrorCode DV_CHECK_RECORD_NO_LINE = new ErrorCode(1_040_306_002, "提交点检记录时,至少需要一条点检项目"); // ========== MES 设备管理-点检记录明细(1-040-306-100) ========== ErrorCode DV_CHECK_RECORD_LINE_NOT_EXISTS = new ErrorCode(1_040_306_100, "设备点检记录明细不存在"); diff --git a/yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/enums/dv/MesDvCheckResultEnum.java b/yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/enums/dv/MesDvCheckResultEnum.java new file mode 100644 index 0000000..6d1cd1e --- /dev/null +++ b/yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/enums/dv/MesDvCheckResultEnum.java @@ -0,0 +1,37 @@ +package cn.iocoder.yudao.module.mes.enums.dv; + +import cn.iocoder.yudao.framework.common.core.ArrayValuable; +import lombok.AllArgsConstructor; +import lombok.Getter; + +import java.util.Arrays; + +/** + * MES 设备点检结果枚举 + * + * @author 芋道源码 + */ +@Getter +@AllArgsConstructor +public enum MesDvCheckResultEnum implements ArrayValuable { + + NORMAL(1, "正常"), + ABNORMAL(2, "异常"); + + public static final Integer[] ARRAYS = Arrays.stream(values()).map(MesDvCheckResultEnum::getResult).toArray(Integer[]::new); + + /** + * 结果值 + */ + private final Integer result; + /** + * 结果名 + */ + private final String name; + + @Override + public Integer[] array() { + return ARRAYS; + } + +} diff --git a/yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/service/dv/checkrecord/MesDvCheckRecordService.java b/yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/service/dv/checkrecord/MesDvCheckRecordService.java index 0b0e0c7..d043429 100644 --- a/yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/service/dv/checkrecord/MesDvCheckRecordService.java +++ b/yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/service/dv/checkrecord/MesDvCheckRecordService.java @@ -30,7 +30,7 @@ public interface MesDvCheckRecordService { void updateCheckRecord(@Valid MesDvCheckRecordSaveReqVO updateReqVO); /** - * 提交点检记录(状态从待点检变为已完成) + * 提交点检记录(状态从草稿变为已完成) * * @param id 编号 */ diff --git a/yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/service/dv/checkrecord/MesDvCheckRecordServiceImpl.java b/yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/service/dv/checkrecord/MesDvCheckRecordServiceImpl.java index 4a693c3..04b53f1 100644 --- a/yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/service/dv/checkrecord/MesDvCheckRecordServiceImpl.java +++ b/yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/service/dv/checkrecord/MesDvCheckRecordServiceImpl.java @@ -1,6 +1,7 @@ package cn.iocoder.yudao.module.mes.service.dv.checkrecord; import cn.hutool.core.collection.CollUtil; +import cn.hutool.core.util.ObjUtil; 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.dv.checkrecord.vo.MesDvCheckRecordPageReqVO; @@ -8,6 +9,8 @@ import cn.iocoder.yudao.module.mes.controller.admin.dv.checkrecord.vo.MesDvCheck import cn.iocoder.yudao.module.mes.dal.dataobject.dv.checkplan.MesDvCheckPlanSubjectDO; import cn.iocoder.yudao.module.mes.dal.dataobject.dv.checkrecord.MesDvCheckRecordDO; import cn.iocoder.yudao.module.mes.dal.dataobject.dv.checkrecord.MesDvCheckRecordLineDO; +import cn.iocoder.yudao.module.mes.enums.dv.MesDvCheckRecordStatusEnum; +import cn.iocoder.yudao.module.mes.enums.dv.MesDvCheckResultEnum; import cn.iocoder.yudao.module.mes.dal.mysql.dv.checkrecord.MesDvCheckRecordLineMapper; import cn.iocoder.yudao.module.mes.dal.mysql.dv.checkrecord.MesDvCheckRecordMapper; import cn.iocoder.yudao.module.mes.service.dv.checkplan.MesDvCheckPlanService; @@ -18,6 +21,7 @@ import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; import org.springframework.validation.annotation.Validated; +import java.util.ArrayList; import java.util.List; import static cn.iocoder.yudao.framework.common.exception.util.ServiceExceptionUtil.exception; @@ -32,16 +36,6 @@ import static cn.iocoder.yudao.module.mes.enums.ErrorCodeConstants.*; @Validated public class MesDvCheckRecordServiceImpl implements MesDvCheckRecordService { - // TODO @AI:枚举类; - /** - * 待点检状态 - */ - private static final int STATUS_PREPARE = 10; - /** - * 已完成状态 - */ - private static final int STATUS_FINISHED = 20; - @Resource private MesDvCheckRecordMapper checkRecordMapper; @Resource @@ -59,9 +53,9 @@ public class MesDvCheckRecordServiceImpl implements MesDvCheckRecordService { // 1. 校验关联数据 validateCheckRecordRelation(createReqVO); - // 2. 插入主记录,状态默认为待点检 + // 2. 插入主记录,状态默认为草稿 MesDvCheckRecordDO checkRecord = BeanUtils.toBean(createReqVO, MesDvCheckRecordDO.class) - .setStatus(STATUS_PREPARE); + .setStatus(MesDvCheckRecordStatusEnum.DRAFT.getStatus()); checkRecordMapper.insert(checkRecord); // 3. 如果指定了点检计划,自动生成明细行 @@ -74,8 +68,8 @@ public class MesDvCheckRecordServiceImpl implements MesDvCheckRecordService { @Override @Transactional(rollbackFor = Exception.class) public void updateCheckRecord(MesDvCheckRecordSaveReqVO updateReqVO) { - // 1.1 校验存在 + 状态为待点检 - MesDvCheckRecordDO existRecord = validateCheckRecordPrepare(updateReqVO.getId()); + // 1.1 校验存在 + 状态为草稿 + MesDvCheckRecordDO existRecord = validateCheckRecordDraft(updateReqVO.getId()); // 1.2 校验关联数据 validateCheckRecordRelation(updateReqVO); @@ -97,8 +91,8 @@ public class MesDvCheckRecordServiceImpl implements MesDvCheckRecordService { @Override public void submitCheckRecord(Long id) { - // 1.1 校验状态为待点检 - validateCheckRecordPrepare(id); + // 1.1 校验状态为草稿 + validateCheckRecordDraft(id); // 1.2 校验至少有一条明细 List lines = checkRecordLineMapper.selectListByRecordId(id); if (CollUtil.isEmpty(lines)) { @@ -107,15 +101,15 @@ public class MesDvCheckRecordServiceImpl implements MesDvCheckRecordService { // 2. 状态改为已完成 MesDvCheckRecordDO updateObj = new MesDvCheckRecordDO() - .setId(id).setStatus(STATUS_FINISHED); + .setId(id).setStatus(MesDvCheckRecordStatusEnum.FINISHED.getStatus()); checkRecordMapper.updateById(updateObj); } @Override @Transactional(rollbackFor = Exception.class) public void deleteCheckRecord(Long id) { - // 1. 校验状态为待点检(已完成不可删除) - validateCheckRecordPrepare(id); + // 1. 校验状态为草稿(已完成不可删除) + validateCheckRecordDraft(id); // 2.1 删除主记录 checkRecordMapper.deleteById(id); @@ -143,16 +137,15 @@ public class MesDvCheckRecordServiceImpl implements MesDvCheckRecordService { // ==================== 私有方法 ==================== /** - * 校验点检记录为待点检状态 + * 校验点检记录为草稿状态 */ - private MesDvCheckRecordDO validateCheckRecordPrepare(Long id) { + private MesDvCheckRecordDO validateCheckRecordDraft(Long id) { MesDvCheckRecordDO record = checkRecordMapper.selectById(id); if (record == null) { throw exception(DV_CHECK_RECORD_NOT_EXISTS); } - // TODO @AI:ObjUtil notEquals - if (!STATUS_PREPARE.equals(record.getStatus())) { - throw exception(DV_CHECK_RECORD_NOT_PREPARE); + if (ObjUtil.notEqual(MesDvCheckRecordStatusEnum.DRAFT.getStatus(), record.getStatus())) { + throw exception(DV_CHECK_RECORD_NOT_DRAFT); } return record; } @@ -174,12 +167,13 @@ public class MesDvCheckRecordServiceImpl implements MesDvCheckRecordService { if (CollUtil.isEmpty(planSubjects)) { return; } - // TODO @AI:批量插入; + List lines = new ArrayList<>(planSubjects.size()); for (MesDvCheckPlanSubjectDO planSubject : planSubjects) { - MesDvCheckRecordLineDO line = new MesDvCheckRecordLineDO() - .setRecordId(recordId).setSubjectId(planSubject.getSubjectId()).setCheckStatus("Y"); - checkRecordLineMapper.insert(line); + lines.add(new MesDvCheckRecordLineDO() + .setRecordId(recordId).setSubjectId(planSubject.getSubjectId()) + .setCheckStatus(MesDvCheckResultEnum.NORMAL.getResult())); } + checkRecordLineMapper.insertBatch(lines); } } -- libgit2 0.21.4