From 62362e2edeb116591a14083b3bedbea08cb92729 Mon Sep 17 00:00:00 2001 From: YunaiV Date: Fri, 20 Feb 2026 14:42:05 +0800 Subject: [PATCH] refactor(mes): 优化设备保养记录模块代码风格,提升校验方法复用性 --- yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/enums/DictTypeConstants.java | 4 ++++ yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/enums/dv/MesDvMaintenRecordStatusEnum.java | 37 +++++++++++++++++++++++++++++++++++++ yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/service/dv/machinery/MesDvMachineryService.java | 31 +++++++++++++++++++++++++++++++ yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/service/dv/machinery/MesDvMachineryServiceImpl.java | 16 +++++++++++++++- yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/service/dv/maintenrecord/MesDvMaintenRecordLineServiceImpl.java | 26 ++++++++++++++++++++------ yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/service/dv/maintenrecord/MesDvMaintenRecordServiceImpl.java | 27 +++++++++++++++++---------- yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/service/dv/subject/MesDvSubjectService.java | 31 +++++++++++++++++++++++++++++++ yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/service/dv/subject/MesDvSubjectServiceImpl.java | 16 +++++++++++++++- 8 files changed, 170 insertions(+), 18 deletions(-) create mode 100644 yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/enums/dv/MesDvMaintenRecordStatusEnum.java diff --git a/yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/enums/DictTypeConstants.java b/yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/enums/DictTypeConstants.java index 6209a38..6c67b09 100644 --- a/yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/enums/DictTypeConstants.java +++ b/yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/enums/DictTypeConstants.java @@ -30,5 +30,9 @@ public interface DictTypeConstants { String MES_QC_IQC_STATUS = "mes_qc_iqc_status"; // MES 检验单状态 String MES_QC_CHECK_RESULT = "mes_qc_check_result"; // MES 检测结果 String MES_QC_SOURCE_DOC_TYPE = "mes_qc_source_doc_type"; // MES 来源单据类型 + String MES_DV_CYCLE_TYPE = "mes_dv_cycle_type"; // MES 点检保养周期类型 + String MES_DV_CHECK_PLAN_STATUS = "mes_dv_check_plan_status"; // MES 点检保养方案状态 + String MES_MAINTEN_RECORD_STATUS = "mes_mainten_record_status"; // MES 保养记录状态 + String MES_MAINTEN_STATUS = "mes_mainten_status"; // MES 保养结果 } diff --git a/yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/enums/dv/MesDvMaintenRecordStatusEnum.java b/yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/enums/dv/MesDvMaintenRecordStatusEnum.java new file mode 100644 index 0000000..d772eea --- /dev/null +++ b/yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/enums/dv/MesDvMaintenRecordStatusEnum.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 MesDvMaintenRecordStatusEnum implements ArrayValuable { + + PREPARE(0, "草稿"), + SUBMITTED(1, "已提交"); + + public static final Integer[] ARRAYS = Arrays.stream(values()).map(MesDvMaintenRecordStatusEnum::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/service/dv/machinery/MesDvMachineryService.java b/yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/service/dv/machinery/MesDvMachineryService.java index 6d5c7bc..6d6a993 100644 --- a/yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/service/dv/machinery/MesDvMachineryService.java +++ b/yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/service/dv/machinery/MesDvMachineryService.java @@ -6,6 +6,12 @@ import cn.iocoder.yudao.module.mes.controller.admin.dv.machinery.vo.MesDvMachine import cn.iocoder.yudao.module.mes.dal.dataobject.dv.machinery.MesDvMachineryDO; 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.convertMap; + /** * MES 设备台账 Service 接口 * @@ -59,4 +65,29 @@ public interface MesDvMachineryService { */ Long getMachineryCountByMachineryTypeId(Long machineryTypeId); + /** + * 校验设备存在 + * + * @param id 编号 + */ + void validateMachineryExists(Long id); + + /** + * 获得设备列表 + * + * @param ids 编号数组 + * @return 设备列表 + */ + List getMachineryList(Collection ids); + + /** + * 获得设备 Map + * + * @param ids 编号数组 + * @return 设备 Map + */ + default Map getMachineryMap(Collection ids) { + return convertMap(getMachineryList(ids), MesDvMachineryDO::getId); + } + } diff --git a/yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/service/dv/machinery/MesDvMachineryServiceImpl.java b/yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/service/dv/machinery/MesDvMachineryServiceImpl.java index 09996e8..3581ce5 100644 --- a/yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/service/dv/machinery/MesDvMachineryServiceImpl.java +++ b/yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/service/dv/machinery/MesDvMachineryServiceImpl.java @@ -1,5 +1,6 @@ package cn.iocoder.yudao.module.mes.service.dv.machinery; +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; @@ -13,6 +14,10 @@ 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.*; @@ -77,7 +82,8 @@ public class MesDvMachineryServiceImpl implements MesDvMachineryService { machineryMapper.deleteById(id); } - private void validateMachineryExists(Long id) { + @Override + public void validateMachineryExists(Long id) { if (machineryMapper.selectById(id) == null) { throw exception(DV_MACHINERY_NOT_EXISTS); } @@ -111,4 +117,12 @@ public class MesDvMachineryServiceImpl implements MesDvMachineryService { return machineryMapper.selectCountByMachineryTypeId(machineryTypeId); } + @Override + public List getMachineryList(Collection ids) { + if (CollUtil.isEmpty(ids)) { + return Collections.emptyList(); + } + return machineryMapper.selectByIds(ids); + } + } diff --git a/yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/service/dv/maintenrecord/MesDvMaintenRecordLineServiceImpl.java b/yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/service/dv/maintenrecord/MesDvMaintenRecordLineServiceImpl.java index 12f24ef..8a91f73 100644 --- a/yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/service/dv/maintenrecord/MesDvMaintenRecordLineServiceImpl.java +++ b/yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/service/dv/maintenrecord/MesDvMaintenRecordLineServiceImpl.java @@ -6,16 +6,17 @@ import cn.iocoder.yudao.module.mes.controller.admin.dv.maintenrecord.vo.line.Mes import cn.iocoder.yudao.module.mes.controller.admin.dv.maintenrecord.vo.line.MesDvMaintenRecordLineSaveReqVO; import cn.iocoder.yudao.module.mes.dal.dataobject.dv.maintenrecord.MesDvMaintenRecordLineDO; import cn.iocoder.yudao.module.mes.dal.mysql.dv.maintenrecord.MesDvMaintenRecordLineMapper; +import cn.iocoder.yudao.module.mes.service.dv.subject.MesDvSubjectService; +import jakarta.annotation.Resource; +import org.springframework.context.annotation.Lazy; import org.springframework.stereotype.Service; import org.springframework.validation.annotation.Validated; -import jakarta.annotation.Resource; import static cn.iocoder.yudao.framework.common.exception.util.ServiceExceptionUtil.exception; -import static cn.iocoder.yudao.module.mes.enums.ErrorCodeConstants.MAINTEN_RECORD_LINE_NOT_EXISTS; +import static cn.iocoder.yudao.module.mes.enums.ErrorCodeConstants.*; -// TODO @AI:注释风格; /** - * 设备保养记录明细 Service 实现类 + * MES 设备保养记录明细 Service 实现类 * * @author 芋道源码 */ @@ -26,9 +27,18 @@ public class MesDvMaintenRecordLineServiceImpl implements MesDvMaintenRecordLine @Resource private MesDvMaintenRecordLineMapper maintenRecordLineMapper; + @Resource + @Lazy + private MesDvMaintenRecordService maintenRecordService; + @Resource + private MesDvSubjectService subjectService; + @Override public Long createMaintenRecordLine(MesDvMaintenRecordLineSaveReqVO createReqVO) { - // TODO @AI:必要的校验 + // 1. 校验关联数据 + validateMaintenRecordLineRelation(createReqVO); + + // 2. 插入 MesDvMaintenRecordLineDO maintenRecordLine = BeanUtils.toBean(createReqVO, MesDvMaintenRecordLineDO.class); maintenRecordLineMapper.insert(maintenRecordLine); return maintenRecordLine.getId(); @@ -36,8 +46,12 @@ public class MesDvMaintenRecordLineServiceImpl implements MesDvMaintenRecordLine @Override public void updateMaintenRecordLine(MesDvMaintenRecordLineSaveReqVO updateReqVO) { - // TODO @AI:必要的校验 + // 1.1 校验存在 validateMaintenRecordLineExists(updateReqVO.getId()); + // 1.2 校验关联数据 + validateMaintenRecordLineRelation(updateReqVO); + + // 2. 更新 MesDvMaintenRecordLineDO updateObj = BeanUtils.toBean(updateReqVO, MesDvMaintenRecordLineDO.class); maintenRecordLineMapper.updateById(updateObj); } diff --git a/yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/service/dv/maintenrecord/MesDvMaintenRecordServiceImpl.java b/yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/service/dv/maintenrecord/MesDvMaintenRecordServiceImpl.java index b3734a1..9d062c4 100644 --- a/yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/service/dv/maintenrecord/MesDvMaintenRecordServiceImpl.java +++ b/yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/service/dv/maintenrecord/MesDvMaintenRecordServiceImpl.java @@ -5,19 +5,20 @@ import cn.iocoder.yudao.framework.common.util.object.BeanUtils; import cn.iocoder.yudao.module.mes.controller.admin.dv.maintenrecord.vo.MesDvMaintenRecordPageReqVO; import cn.iocoder.yudao.module.mes.controller.admin.dv.maintenrecord.vo.MesDvMaintenRecordSaveReqVO; import cn.iocoder.yudao.module.mes.dal.dataobject.dv.maintenrecord.MesDvMaintenRecordDO; -import cn.iocoder.yudao.module.mes.dal.mysql.dv.maintenrecord.MesDvMaintenRecordMapper; import cn.iocoder.yudao.module.mes.dal.mysql.dv.maintenrecord.MesDvMaintenRecordLineMapper; +import cn.iocoder.yudao.module.mes.dal.mysql.dv.maintenrecord.MesDvMaintenRecordMapper; +import cn.iocoder.yudao.module.mes.service.dv.checkplan.MesDvCheckPlanService; +import cn.iocoder.yudao.module.mes.service.dv.machinery.MesDvMachineryService; +import jakarta.annotation.Resource; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; import org.springframework.validation.annotation.Validated; -import jakarta.annotation.Resource; import static cn.iocoder.yudao.framework.common.exception.util.ServiceExceptionUtil.exception; -import static cn.iocoder.yudao.module.mes.enums.ErrorCodeConstants.MAINTEN_RECORD_NOT_EXISTS; +import static cn.iocoder.yudao.module.mes.enums.ErrorCodeConstants.*; -// TODO @AI:注释风格; /** - * 设备保养记录 Service 实现类 + * MES 设备保养记录 Service 实现类 * * @author 芋道源码 */ @@ -27,14 +28,19 @@ public class MesDvMaintenRecordServiceImpl implements MesDvMaintenRecordService @Resource private MesDvMaintenRecordMapper maintenRecordMapper; - @Resource private MesDvMaintenRecordLineMapper maintenRecordLineMapper; + @Resource + private MesDvMachineryService machineryService; + @Resource + private MesDvCheckPlanService checkPlanService; @Override public Long createMaintenRecord(MesDvMaintenRecordSaveReqVO createReqVO) { - // TODO @AI:必要的校验 - // 插入 + // 1. 校验关联数据 + validateMaintenRecordRelation(createReqVO); + + // 2. 插入 MesDvMaintenRecordDO maintenRecord = BeanUtils.toBean(createReqVO, MesDvMaintenRecordDO.class); maintenRecordMapper.insert(maintenRecord); return maintenRecord.getId(); @@ -42,9 +48,10 @@ public class MesDvMaintenRecordServiceImpl implements MesDvMaintenRecordService @Override public void updateMaintenRecord(MesDvMaintenRecordSaveReqVO updateReqVO) { - // TODO @AI:必要的校验 - // 校验存在 + // 1.1 校验存在 validateMaintenRecordExists(updateReqVO.getId()); + // 1.2 校验关联数据 + validateMaintenRecordRelation(updateReqVO); // 更新 MesDvMaintenRecordDO updateObj = BeanUtils.toBean(updateReqVO, MesDvMaintenRecordDO.class); diff --git a/yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/service/dv/subject/MesDvSubjectService.java b/yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/service/dv/subject/MesDvSubjectService.java index f022315..b8655f3 100644 --- a/yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/service/dv/subject/MesDvSubjectService.java +++ b/yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/service/dv/subject/MesDvSubjectService.java @@ -6,6 +6,12 @@ import cn.iocoder.yudao.module.mes.controller.admin.dv.subject.vo.MesDvSubjectSa import cn.iocoder.yudao.module.mes.dal.dataobject.dv.subject.MesDvSubjectDO; 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.convertMap; + /** * MES 点检保养项目 Service 接口 * @@ -51,4 +57,29 @@ public interface MesDvSubjectService { */ PageResult getSubjectPage(MesDvSubjectPageReqVO pageReqVO); + /** + * 校验点检保养项目存在 + * + * @param id 编号 + */ + void validateSubjectExists(Long id); + + /** + * 获得点检保养项目列表 + * + * @param ids 编号数组 + * @return 点检保养项目列表 + */ + List getSubjectList(Collection ids); + + /** + * 获得点检保养项目 Map + * + * @param ids 编号数组 + * @return 点检保养项目 Map + */ + default Map getSubjectMap(Collection ids) { + return convertMap(getSubjectList(ids), MesDvSubjectDO::getId); + } + } diff --git a/yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/service/dv/subject/MesDvSubjectServiceImpl.java b/yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/service/dv/subject/MesDvSubjectServiceImpl.java index 94ef38e..e39311a 100644 --- a/yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/service/dv/subject/MesDvSubjectServiceImpl.java +++ b/yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/service/dv/subject/MesDvSubjectServiceImpl.java @@ -1,5 +1,6 @@ package cn.iocoder.yudao.module.mes.service.dv.subject; +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; @@ -11,6 +12,10 @@ import jakarta.annotation.Resource; 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.*; @@ -57,7 +62,8 @@ public class MesDvSubjectServiceImpl implements MesDvSubjectService { subjectMapper.deleteById(id); } - private void validateSubjectExists(Long id) { + @Override + public void validateSubjectExists(Long id) { if (subjectMapper.selectById(id) == null) { throw exception(DV_SUBJECT_NOT_EXISTS); } @@ -86,4 +92,12 @@ public class MesDvSubjectServiceImpl implements MesDvSubjectService { return subjectMapper.selectPage(pageReqVO); } + @Override + public List getSubjectList(Collection ids) { + if (CollUtil.isEmpty(ids)) { + return Collections.emptyList(); + } + return subjectMapper.selectByIds(ids); + } + } -- libgit2 0.21.4