Commit 3cb4adf50678d060f0570845398a8242d8accfec

Authored by YunaiV
1 parent 620f432f

✨ feat(mes): 新增设备和点检项目启用状态校验

在设备管理和点检项目的相关服务中,新增了对设备和点检项目是否启用的校验逻辑。此变更确保在进行相关操作时,只有启用的设备和项目才能被使用,从而提高系统的稳定性和数据的准确性。
Showing 21 changed files with 76 additions and 15 deletions
yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/enums/ErrorCodeConstants.java
... ... @@ -158,6 +158,7 @@ public interface ErrorCodeConstants {
158 158 // ========== MES 设备管理-设备台账(1-040-301-000) ==========
159 159 ErrorCode DV_MACHINERY_NOT_EXISTS = new ErrorCode(1_040_301_000, "设备不存在");
160 160 ErrorCode DV_MACHINERY_CODE_DUPLICATE = new ErrorCode(1_040_301_001, "设备编码已存在");
  161 + ErrorCode DV_MACHINERY_IS_DISABLE = new ErrorCode(1_040_301_007, "设备已禁用");
161 162 ErrorCode DV_MACHINERY_IMPORT_LIST_IS_EMPTY = new ErrorCode(1_040_301_002, "导入设备数据不能为空");
162 163 ErrorCode DV_MACHINERY_HAS_CHECK_PLAN = new ErrorCode(1_040_301_003, "设备已关联点检计划,无法删除");
163 164 ErrorCode DV_MACHINERY_HAS_CHECK_RECORD = new ErrorCode(1_040_301_004, "设备已关联点检记录,无法删除");
... ... @@ -168,6 +169,7 @@ public interface ErrorCodeConstants {
168 169 ErrorCode DV_SUBJECT_NOT_EXISTS = new ErrorCode(1_040_304_000, "点检保养项目不存在");
169 170 ErrorCode DV_SUBJECT_CODE_DUPLICATE = new ErrorCode(1_040_304_001, "项目编码已存在");
170 171 ErrorCode DV_SUBJECT_USED_BY_CHECK_PLAN = new ErrorCode(1_040_304_002, "点检保养项目已被点检保养方案使用,无法删除");
  172 + ErrorCode DV_SUBJECT_IS_DISABLE = new ErrorCode(1_040_304_003, "点检保养项目已禁用");
171 173  
172 174 // ========== MES 设备管理-点检计划(1-040-302-000) ==========
173 175 ErrorCode DV_CHECK_PLAN_NOT_EXISTS = new ErrorCode(1_040_302_000, "点检计划不存在");
... ... @@ -224,6 +226,7 @@ public interface ErrorCodeConstants {
224 226 ErrorCode PRO_PROCESS_CODE_EXISTS = new ErrorCode(1_040_500_001, "工序编码已存在");
225 227 ErrorCode PRO_PROCESS_NAME_EXISTS = new ErrorCode(1_040_500_002, "工序名称已存在");
226 228 ErrorCode PRO_PROCESS_USED_BY_ROUTE = new ErrorCode(1_040_500_003, "工序已被工艺路线引用,无法删除");
  229 + ErrorCode PRO_PROCESS_IS_DISABLE = new ErrorCode(1_040_500_004, "工序已禁用");
227 230 // ========== MES 生产管理-工序内容(1-040-500-100) ==========
228 231 ErrorCode PRO_PROCESS_CONTENT_NOT_EXISTS = new ErrorCode(1_040_500_100, "工序内容不存在");
229 232  
... ...
yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/service/dv/checkplan/MesDvCheckPlanMachineryServiceImpl.java
... ... @@ -42,7 +42,7 @@ public class MesDvCheckPlanMachineryServiceImpl implements MesDvCheckPlanMachine
42 42 // 1.1 校验方案草稿状态
43 43 MesDvCheckPlanDO currentPlan = checkPlanService.validateCheckPlanPrepare(createReqVO.getPlanId());
44 44 // 1.2 校验设备存在
45   - machineryService.validateMachineryExists(createReqVO.getMachineryId());
  45 + machineryService.validateMachineryExistsAndEnable(createReqVO.getMachineryId());
46 46 // 1.3 校验同一方案下设备不重复
47 47 if (checkPlanMachineryMapper.selectByPlanIdAndMachineryId(createReqVO.getPlanId(), createReqVO.getMachineryId()) != null) {
48 48 throw exception(DV_CHECK_PLAN_MACHINERY_DUPLICATE);
... ...
yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/service/dv/checkplan/MesDvCheckPlanSubjectServiceImpl.java
... ... @@ -37,7 +37,7 @@ public class MesDvCheckPlanSubjectServiceImpl implements MesDvCheckPlanSubjectSe
37 37 // 1.1 校验方案草稿状态
38 38 checkPlanService.validateCheckPlanPrepare(createReqVO.getPlanId());
39 39 // 1.2 校验项目存在
40   - subjectService.validateSubjectExists(createReqVO.getSubjectId());
  40 + subjectService.validateSubjectExistsAndEnable(createReqVO.getSubjectId());
41 41 // 1.3 校验同一方案下项目不重复
42 42 if (checkPlanSubjectMapper.selectByPlanIdAndSubjectId(createReqVO.getPlanId(), createReqVO.getSubjectId()) != null) {
43 43 throw exception(DV_CHECK_PLAN_SUBJECT_DUPLICATE);
... ...
yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/service/dv/checkrecord/MesDvCheckRecordServiceImpl.java
... ... @@ -161,7 +161,7 @@ public class MesDvCheckRecordServiceImpl implements MesDvCheckRecordService {
161 161  
162 162 private void validateCheckRecordSave(MesDvCheckRecordSaveReqVO reqVO) {
163 163 // 校验设备是否存在
164   - machineryService.validateMachineryExists(reqVO.getMachineryId());
  164 + machineryService.validateMachineryExistsAndEnable(reqVO.getMachineryId());
165 165 // 校验点检计划是否存在
166 166 if (reqVO.getPlanId() != null) {
167 167 checkPlanService.validateCheckPlanExistsAndType(reqVO.getPlanId(), MesDvCheckPlanTypeEnum.CHECK.getType());
... ...
yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/service/dv/machinery/MesDvMachineryService.java
... ... @@ -75,6 +75,13 @@ public interface MesDvMachineryService {
75 75 void validateMachineryExists(Long id);
76 76  
77 77 /**
  78 + * 校验设备存在且启用
  79 + *
  80 + * @param id 编号
  81 + */
  82 + void validateMachineryExistsAndEnable(Long id);
  83 +
  84 + /**
78 85 * 获得设备列表
79 86 *
80 87 * @return 设备列表
... ...
yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/service/dv/machinery/MesDvMachineryServiceImpl.java
... ... @@ -3,6 +3,7 @@ package cn.iocoder.yudao.module.mes.service.dv.machinery;
3 3 import cn.hutool.core.collection.CollUtil;
4 4 import cn.hutool.core.util.ObjUtil;
5 5 import cn.hutool.core.util.StrUtil;
  6 +import cn.iocoder.yudao.framework.common.enums.CommonStatusEnum;
6 7 import cn.iocoder.yudao.framework.common.pojo.PageResult;
7 8 import cn.iocoder.yudao.framework.common.util.object.BeanUtils;
8 9 import cn.iocoder.yudao.module.mes.controller.admin.dv.machinery.vo.MesDvMachineryImportExcelVO;
... ... @@ -136,6 +137,17 @@ public class MesDvMachineryServiceImpl implements MesDvMachineryService {
136 137 }
137 138 }
138 139  
  140 + @Override
  141 + public void validateMachineryExistsAndEnable(Long id) {
  142 + MesDvMachineryDO machinery = machineryMapper.selectById(id);
  143 + if (machinery == null) {
  144 + throw exception(DV_MACHINERY_NOT_EXISTS);
  145 + }
  146 + if (ObjUtil.notEqual(CommonStatusEnum.ENABLE.getStatus(), machinery.getStatus())) {
  147 + throw exception(DV_MACHINERY_IS_DISABLE);
  148 + }
  149 + }
  150 +
139 151 private void validateMachineryCodeUnique(Long id, String code) {
140 152 if (code == null) {
141 153 return;
... ...
yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/service/dv/maintenrecord/MesDvMaintenRecordLineServiceImpl.java
... ... @@ -73,7 +73,7 @@ public class MesDvMaintenRecordLineServiceImpl implements MesDvMaintenRecordLine
73 73 // 校验保养记录为草稿状态
74 74 maintenRecordService.validateMaintenRecordDraft(reqVO.getRecordId());
75 75 // 校验保养项目是否存在
76   - subjectService.validateSubjectExists(reqVO.getSubjectId());
  76 + subjectService.validateSubjectExistsAndEnable(reqVO.getSubjectId());
77 77 }
78 78  
79 79 private MesDvMaintenRecordLineDO validateMaintenRecordLineExists(Long id) {
... ...
yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/service/dv/maintenrecord/MesDvMaintenRecordServiceImpl.java
... ... @@ -98,7 +98,7 @@ public class MesDvMaintenRecordServiceImpl implements MesDvMaintenRecordService
98 98  
99 99 private void validateMaintenRecordRelation(MesDvMaintenRecordSaveReqVO reqVO) {
100 100 // 校验设备是否存在
101   - machineryService.validateMachineryExists(reqVO.getMachineryId());
  101 + machineryService.validateMachineryExistsAndEnable(reqVO.getMachineryId());
102 102 // 校验保养计划是否存在
103 103 if (reqVO.getPlanId() != null) {
104 104 checkPlanService.validateCheckPlanExistsAndType(reqVO.getPlanId(), MesDvCheckPlanTypeEnum.MAINTENANCE.getType());
... ...
yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/service/dv/repair/MesDvRepairLineServiceImpl.java
... ... @@ -79,7 +79,7 @@ public class MesDvRepairLineServiceImpl implements MesDvRepairLineService {
79 79 repairService.validateRepairExists(reqVO.getRepairId());
80 80 // 校验点检保养项目是否存在(可选)
81 81 if (reqVO.getSubjectId() != null) {
82   - subjectService.validateSubjectExists(reqVO.getSubjectId());
  82 + subjectService.validateSubjectExistsAndEnable(reqVO.getSubjectId());
83 83 }
84 84 }
85 85  
... ...
yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/service/dv/repair/MesDvRepairServiceImpl.java
... ... @@ -79,7 +79,7 @@ public class MesDvRepairServiceImpl implements MesDvRepairService {
79 79 // 校验编码唯一
80 80 validateCodeUnique(reqVO.getId(), reqVO.getCode());
81 81 // 校验设备存在
82   - machineryService.validateMachineryExists(reqVO.getMachineryId());
  82 + machineryService.validateMachineryExistsAndEnable(reqVO.getMachineryId());
83 83 }
84 84  
85 85 private void validateCodeUnique(Long id, String code) {
... ...
yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/service/dv/subject/MesDvSubjectService.java
... ... @@ -65,6 +65,13 @@ public interface MesDvSubjectService {
65 65 void validateSubjectExists(Long id);
66 66  
67 67 /**
  68 + * 校验点检保养项目存在且启用
  69 + *
  70 + * @param id 编号
  71 + */
  72 + void validateSubjectExistsAndEnable(Long id);
  73 +
  74 + /**
68 75 * 获得点检保养项目列表
69 76 *
70 77 * @return 项目列表
... ...
yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/service/dv/subject/MesDvSubjectServiceImpl.java
... ... @@ -2,6 +2,7 @@ package cn.iocoder.yudao.module.mes.service.dv.subject;
2 2  
3 3 import cn.hutool.core.collection.CollUtil;
4 4 import cn.hutool.core.util.ObjUtil;
  5 +import cn.iocoder.yudao.framework.common.enums.CommonStatusEnum;
5 6 import cn.iocoder.yudao.framework.common.pojo.PageResult;
6 7 import cn.iocoder.yudao.framework.common.util.object.BeanUtils;
7 8 import cn.iocoder.yudao.module.mes.controller.admin.dv.subject.vo.MesDvSubjectPageReqVO;
... ... @@ -80,6 +81,17 @@ public class MesDvSubjectServiceImpl implements MesDvSubjectService {
80 81 }
81 82 }
82 83  
  84 + @Override
  85 + public void validateSubjectExistsAndEnable(Long id) {
  86 + MesDvSubjectDO subject = subjectMapper.selectById(id);
  87 + if (subject == null) {
  88 + throw exception(DV_SUBJECT_NOT_EXISTS);
  89 + }
  90 + if (ObjUtil.notEqual(CommonStatusEnum.ENABLE.getStatus(), subject.getStatus())) {
  91 + throw exception(DV_SUBJECT_IS_DISABLE);
  92 + }
  93 + }
  94 +
83 95 private void validateSubjectCodeUnique(Long id, String code) {
84 96 if (code == null) {
85 97 return;
... ...
yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/service/md/item/MesMdProductSipServiceImpl.java
... ... @@ -59,7 +59,7 @@ public class MesMdProductSipServiceImpl implements MesMdProductSipService {
59 59 validateSortUnique(reqVO.getItemId(), reqVO.getSort(), excludeId);
60 60 // 校验工序存在
61 61 if (reqVO.getProcessId() != null) {
62   - processService.validateProcessExists(reqVO.getProcessId());
  62 + processService.validateProcessExistsAndEnable(reqVO.getProcessId());
63 63 }
64 64 }
65 65  
... ...
yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/service/md/item/MesMdProductSopServiceImpl.java
... ... @@ -59,7 +59,7 @@ public class MesMdProductSopServiceImpl implements MesMdProductSopService {
59 59 validateSortUnique(reqVO.getItemId(), reqVO.getSort(), excludeId);
60 60 // 校验工序存在
61 61 if (reqVO.getProcessId() != null) {
62   - processService.validateProcessExists(reqVO.getProcessId());
  62 + processService.validateProcessExistsAndEnable(reqVO.getProcessId());
63 63 }
64 64 }
65 65  
... ...
yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/service/md/workstation/MesMdWorkstationMachineServiceImpl.java
... ... @@ -47,7 +47,7 @@ public class MesMdWorkstationMachineServiceImpl implements MesMdWorkstationMachi
47 47  
48 48 private void validateWorkstationMachineSaveData(MesMdWorkstationMachineSaveReqVO reqVO) {
49 49 // 校验设备是否存在
50   - machineryService.validateMachineryExists(reqVO.getMachineryId());
  50 + machineryService.validateMachineryExistsAndEnable(reqVO.getMachineryId());
51 51 // 校验该设备是否已分配到其他工作站(一台设备只能分配到一个工作站)
52 52 MesMdWorkstationMachineDO existing = workstationMachineMapper.selectByMachineryId(reqVO.getMachineryId());
53 53 if (existing != null) {
... ...
yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/service/md/workstation/MesMdWorkstationServiceImpl.java
... ... @@ -98,7 +98,7 @@ public class MesMdWorkstationServiceImpl implements MesMdWorkstationService {
98 98 // 校验车间存在
99 99 validateWorkshopExists(reqVO.getWorkshopId());
100 100 // 校验工序存在
101   - processService.validateProcessExists(reqVO.getProcessId());
  101 + processService.validateProcessExistsAndEnable(reqVO.getProcessId());
102 102 // 处理仓库层级(未指定仓库时自动设置虚拟线边库)
103 103 handleWarehouseHierarchy(reqVO);
104 104 }
... ...
yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/service/pro/andon/MesProAndonRecordServiceImpl.java
... ... @@ -53,7 +53,7 @@ public class MesProAndonRecordServiceImpl implements MesProAndonRecordService {
53 53 workOrderService.validateWorkOrderConfirmed(createReqVO.getWorkOrderId());
54 54 }
55 55 if (createReqVO.getProcessId() != null) {
56   - processService.validateProcessExists(createReqVO.getProcessId());
  56 + processService.validateProcessExistsAndEnable(createReqVO.getProcessId());
57 57 }
58 58  
59 59 // 2. 插入记录
... ...
yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/service/pro/card/MesProCardProcessServiceImpl.java
... ... @@ -89,7 +89,7 @@ public class MesProCardProcessServiceImpl implements MesProCardProcessService {
89 89 cardService.validateCardExists(reqVO.getCardId());
90 90 // 校验工序存在
91 91 if (reqVO.getProcessId() != null) {
92   - processService.validateProcessExists(reqVO.getProcessId());
  92 + processService.validateProcessExistsAndEnable(reqVO.getProcessId());
93 93 }
94 94 }
95 95  
... ...
yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/service/pro/process/MesProProcessService.java
... ... @@ -82,6 +82,13 @@ public interface MesProProcessService {
82 82 void validateProcessExists(Long id);
83 83  
84 84 /**
  85 + * 校验工序存在且启用
  86 + *
  87 + * @param id 编号
  88 + */
  89 + void validateProcessExistsAndEnable(Long id);
  90 +
  91 + /**
85 92 * 获得工序 Map
86 93 *
87 94 * @param ids 编号列表
... ...
yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/service/pro/process/MesProProcessServiceImpl.java
1 1 package cn.iocoder.yudao.module.mes.service.pro.process;
2 2  
3 3 import cn.hutool.core.collection.CollUtil;
  4 +import cn.hutool.core.util.ObjUtil;
  5 +import cn.iocoder.yudao.framework.common.enums.CommonStatusEnum;
4 6 import cn.iocoder.yudao.framework.common.pojo.PageResult;
5 7 import cn.iocoder.yudao.framework.common.util.object.BeanUtils;
6 8 import cn.iocoder.yudao.module.mes.controller.admin.pro.process.vo.MesProProcessPageReqVO;
... ... @@ -86,6 +88,17 @@ public class MesProProcessServiceImpl implements MesProProcessService {
86 88 }
87 89 }
88 90  
  91 + @Override
  92 + public void validateProcessExistsAndEnable(Long id) {
  93 + MesProProcessDO process = processMapper.selectById(id);
  94 + if (process == null) {
  95 + throw exception(PRO_PROCESS_NOT_EXISTS);
  96 + }
  97 + if (ObjUtil.notEqual(CommonStatusEnum.ENABLE.getStatus(), process.getStatus())) {
  98 + throw exception(PRO_PROCESS_IS_DISABLE);
  99 + }
  100 + }
  101 +
89 102 private void validateProcessCodeUnique(Long id, String code) {
90 103 MesProProcessDO process = processMapper.selectByCode(code);
91 104 if (process == null) {
... ...
yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/service/pro/task/MesProTaskServiceImpl.java
... ... @@ -69,7 +69,7 @@ public class MesProTaskServiceImpl implements MesProTaskService {
69 69 MesProWorkOrderDO workOrder = workOrderService.validateWorkOrderExists(createReqVO.getWorkOrderId());
70 70 workstationService.validateWorkstationExists(createReqVO.getWorkstationId());
71 71 routeService.validateRouteExists(createReqVO.getRouteId());
72   - processService.validateProcessExists(createReqVO.getProcessId());
  72 + processService.validateProcessExistsAndEnable(createReqVO.getProcessId());
73 73 MesMdItemDO item = itemService.validateItemExists(createReqVO.getItemId());
74 74  
75 75 // 2.1 构建任务 DO:自动填充客户信息
... ... @@ -100,7 +100,7 @@ public class MesProTaskServiceImpl implements MesProTaskService {
100 100 routeService.validateRouteExists(updateReqVO.getRouteId());
101 101 }
102 102 if (updateReqVO.getProcessId() != null) {
103   - processService.validateProcessExists(updateReqVO.getProcessId());
  103 + processService.validateProcessExistsAndEnable(updateReqVO.getProcessId());
104 104 }
105 105 MesMdItemDO item;
106 106 if (updateReqVO.getItemId() != null) {
... ...