Commit 582c84b648d0316dd176d07edf375afc60a86292
1 parent
d7b33f00
✨ feat(mes): 更新保养记录相关字段及新增功能
调整保养记录请求对象,新增保养计划编号、设备编号和保养人编号字段。更新查询逻辑以支持新字段,并新增获取保养记录明细列表和根据记录编号删除明细的功能。优化表单组件以支持详情模式。
Showing
6 changed files
with
53 additions
and
34 deletions
yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/controller/admin/dv/maintenrecord/vo/MesDvMaintenRecordPageReqVO.java
| ... | ... | @@ -17,17 +17,14 @@ import static cn.iocoder.yudao.framework.common.util.date.DateUtils.FORMAT_YEAR_ |
| 17 | 17 | @ToString(callSuper = true) |
| 18 | 18 | public class MesDvMaintenRecordPageReqVO extends PageParam { |
| 19 | 19 | |
| 20 | - @Schema(description = "计划名称", example = "计划1") | |
| 21 | - private String planName; | |
| 20 | + @Schema(description = "保养计划编号", example = "1") | |
| 21 | + private Long planId; | |
| 22 | 22 | |
| 23 | - @Schema(description = "设备编码", example = "M1") | |
| 24 | - private String machineryCode; | |
| 23 | + @Schema(description = "设备编号", example = "1") | |
| 24 | + private Long machineryId; | |
| 25 | 25 | |
| 26 | - @Schema(description = "设备名称", example = "设备1") | |
| 27 | - private String machineryName; | |
| 28 | - | |
| 29 | - @Schema(description = "保养人名称", example = "张三") | |
| 30 | - private String nickname; | |
| 26 | + @Schema(description = "保养人编号", example = "1") | |
| 27 | + private Long userId; | |
| 31 | 28 | |
| 32 | 29 | @Schema(description = "保养时间") |
| 33 | 30 | @DateTimeFormat(pattern = FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND) | ... | ... |
yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/dal/mysql/dv/maintenrecord/MesDvMaintenRecordMapper.java
| ... | ... | @@ -17,19 +17,9 @@ public interface MesDvMaintenRecordMapper extends BaseMapperX<MesDvMaintenRecord |
| 17 | 17 | |
| 18 | 18 | default PageResult<MesDvMaintenRecordDO> selectPage(MesDvMaintenRecordPageReqVO reqVO) { |
| 19 | 19 | return selectPage(reqVO, new LambdaQueryWrapperX<MesDvMaintenRecordDO>() |
| 20 | - // TODO @AI:对齐分析下,哪里有问题! | |
| 21 | -// .apply(StrUtil.isNotBlank(reqVO.getPlanName()), | |
| 22 | -// "plan_id IN (SELECT id FROM mes_dv_check_plan WHERE name LIKE CONCAT('%', {0}, '%') AND deleted = 0)", | |
| 23 | -// reqVO.getPlanName()) | |
| 24 | -// .apply(StrUtil.isNotBlank(reqVO.getMachineryCode()), | |
| 25 | -// "machinery_id IN (SELECT id FROM mes_dv_machinery WHERE code LIKE CONCAT('%', {0}, '%') AND deleted = 0)", | |
| 26 | -// reqVO.getMachineryCode()) | |
| 27 | -// .apply(StrUtil.isNotBlank(reqVO.getMachineryName()), | |
| 28 | -// "machinery_id IN (SELECT id FROM mes_dv_machinery WHERE name LIKE CONCAT('%', {0}, '%') AND deleted = 0)", | |
| 29 | -// reqVO.getMachineryName()) | |
| 30 | -// .apply(StrUtil.isNotBlank(reqVO.getNickname()), | |
| 31 | -// "user_id IN (SELECT id FROM system_users WHERE nickname LIKE CONCAT('%', {0}, '%') AND deleted = 0)", | |
| 32 | -// reqVO.getNickname()) | |
| 20 | + .eqIfPresent(MesDvMaintenRecordDO::getPlanId, reqVO.getPlanId()) | |
| 21 | + .eqIfPresent(MesDvMaintenRecordDO::getMachineryId, reqVO.getMachineryId()) | |
| 22 | + .eqIfPresent(MesDvMaintenRecordDO::getUserId, reqVO.getUserId()) | |
| 33 | 23 | .betweenIfPresent(MesDvMaintenRecordDO::getMaintenTime, reqVO.getMaintenTime()) |
| 34 | 24 | .orderByDesc(MesDvMaintenRecordDO::getId)); |
| 35 | 25 | } | ... | ... |
yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/service/dv/maintenrecord/MesDvMaintenRecordLineService.java
| ... | ... | @@ -6,6 +6,7 @@ import cn.iocoder.yudao.module.mes.controller.admin.dv.maintenrecord.vo.line.Mes |
| 6 | 6 | import cn.iocoder.yudao.module.mes.dal.dataobject.dv.maintenrecord.MesDvMaintenRecordLineDO; |
| 7 | 7 | |
| 8 | 8 | import jakarta.validation.Valid; |
| 9 | +import java.util.List; | |
| 9 | 10 | |
| 10 | 11 | /** |
| 11 | 12 | * 设备保养记录明细 Service 接口 |
| ... | ... | @@ -52,4 +53,19 @@ public interface MesDvMaintenRecordLineService { |
| 52 | 53 | */ |
| 53 | 54 | PageResult<MesDvMaintenRecordLineDO> getMaintenRecordLinePage(MesDvMaintenRecordLinePageReqVO pageReqVO); |
| 54 | 55 | |
| 56 | + /** | |
| 57 | + * 获得指定保养记录的明细列表 | |
| 58 | + * | |
| 59 | + * @param recordId 保养记录编号 | |
| 60 | + * @return 明细列表 | |
| 61 | + */ | |
| 62 | + List<MesDvMaintenRecordLineDO> getMaintenRecordLineListByRecordId(Long recordId); | |
| 63 | + | |
| 64 | + /** | |
| 65 | + * 根据保养记录编号删除所有明细 | |
| 66 | + * | |
| 67 | + * @param recordId 保养记录编号 | |
| 68 | + */ | |
| 69 | + void deleteMaintenRecordLineByRecordId(Long recordId); | |
| 70 | + | |
| 55 | 71 | } |
| 56 | 72 | \ No newline at end of file | ... | ... |
yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/service/dv/maintenrecord/MesDvMaintenRecordLineServiceImpl.java
| ... | ... | @@ -12,6 +12,8 @@ import org.springframework.context.annotation.Lazy; |
| 12 | 12 | import org.springframework.stereotype.Service; |
| 13 | 13 | import org.springframework.validation.annotation.Validated; |
| 14 | 14 | |
| 15 | +import java.util.List; | |
| 16 | + | |
| 15 | 17 | import static cn.iocoder.yudao.framework.common.exception.util.ServiceExceptionUtil.exception; |
| 16 | 18 | import static cn.iocoder.yudao.module.mes.enums.ErrorCodeConstants.*; |
| 17 | 19 | |
| ... | ... | @@ -29,7 +31,7 @@ public class MesDvMaintenRecordLineServiceImpl implements MesDvMaintenRecordLine |
| 29 | 31 | |
| 30 | 32 | @Resource |
| 31 | 33 | @Lazy |
| 32 | - private MesDvMaintenRecordServiceImpl maintenRecordService; | |
| 34 | + private MesDvMaintenRecordService maintenRecordService; | |
| 33 | 35 | @Resource |
| 34 | 36 | private MesDvSubjectService subjectService; |
| 35 | 37 | |
| ... | ... | @@ -76,7 +78,7 @@ public class MesDvMaintenRecordLineServiceImpl implements MesDvMaintenRecordLine |
| 76 | 78 | |
| 77 | 79 | private MesDvMaintenRecordLineDO validateMaintenRecordLineExists(Long id) { |
| 78 | 80 | MesDvMaintenRecordLineDO maintenRecordLine = maintenRecordLineMapper.selectById(id); |
| 79 | - if (maintenRecordLineMapper.selectById(id) == null) { | |
| 81 | + if (maintenRecordLine == null) { | |
| 80 | 82 | throw exception(MAINTEN_RECORD_LINE_NOT_EXISTS); |
| 81 | 83 | } |
| 82 | 84 | return maintenRecordLine; |
| ... | ... | @@ -92,4 +94,14 @@ public class MesDvMaintenRecordLineServiceImpl implements MesDvMaintenRecordLine |
| 92 | 94 | return maintenRecordLineMapper.selectPage(pageReqVO); |
| 93 | 95 | } |
| 94 | 96 | |
| 97 | + @Override | |
| 98 | + public List<MesDvMaintenRecordLineDO> getMaintenRecordLineListByRecordId(Long recordId) { | |
| 99 | + return maintenRecordLineMapper.selectListByRecordId(recordId); | |
| 100 | + } | |
| 101 | + | |
| 102 | + @Override | |
| 103 | + public void deleteMaintenRecordLineByRecordId(Long recordId) { | |
| 104 | + maintenRecordLineMapper.deleteByRecordId(recordId); | |
| 105 | + } | |
| 106 | + | |
| 95 | 107 | } | ... | ... |
yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/service/dv/maintenrecord/MesDvMaintenRecordService.java
| ... | ... | @@ -51,6 +51,14 @@ public interface MesDvMaintenRecordService { |
| 51 | 51 | void validateMaintenRecordExists(Long id); |
| 52 | 52 | |
| 53 | 53 | /** |
| 54 | + * 校验设备保养记录是否为草稿状态 | |
| 55 | + * | |
| 56 | + * @param id 编号 | |
| 57 | + * @return 保养记录 | |
| 58 | + */ | |
| 59 | + MesDvMaintenRecordDO validateMaintenRecordDraft(Long id); | |
| 60 | + | |
| 61 | + /** | |
| 54 | 62 | * 获得指定设备的保养记录数量 |
| 55 | 63 | * |
| 56 | 64 | * @param machineryId 设备编号 | ... | ... |
yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/service/dv/maintenrecord/MesDvMaintenRecordServiceImpl.java
| ... | ... | @@ -8,12 +8,12 @@ import cn.iocoder.yudao.module.mes.controller.admin.dv.maintenrecord.vo.MesDvMai |
| 8 | 8 | import cn.iocoder.yudao.module.mes.controller.admin.dv.maintenrecord.vo.MesDvMaintenRecordSaveReqVO; |
| 9 | 9 | import cn.iocoder.yudao.module.mes.dal.dataobject.dv.maintenrecord.MesDvMaintenRecordDO; |
| 10 | 10 | import cn.iocoder.yudao.module.mes.dal.dataobject.dv.maintenrecord.MesDvMaintenRecordLineDO; |
| 11 | -import cn.iocoder.yudao.module.mes.dal.mysql.dv.maintenrecord.MesDvMaintenRecordLineMapper; | |
| 12 | 11 | import cn.iocoder.yudao.module.mes.dal.mysql.dv.maintenrecord.MesDvMaintenRecordMapper; |
| 13 | 12 | import cn.iocoder.yudao.module.mes.enums.dv.MesDvMaintenRecordStatusEnum; |
| 14 | 13 | import cn.iocoder.yudao.module.mes.service.dv.checkplan.MesDvCheckPlanService; |
| 15 | 14 | import cn.iocoder.yudao.module.mes.service.dv.machinery.MesDvMachineryService; |
| 16 | 15 | import jakarta.annotation.Resource; |
| 16 | +import org.springframework.context.annotation.Lazy; | |
| 17 | 17 | import org.springframework.stereotype.Service; |
| 18 | 18 | import org.springframework.transaction.annotation.Transactional; |
| 19 | 19 | import org.springframework.validation.annotation.Validated; |
| ... | ... | @@ -35,7 +35,8 @@ public class MesDvMaintenRecordServiceImpl implements MesDvMaintenRecordService |
| 35 | 35 | @Resource |
| 36 | 36 | private MesDvMaintenRecordMapper maintenRecordMapper; |
| 37 | 37 | @Resource |
| 38 | - private MesDvMaintenRecordLineMapper maintenRecordLineMapper; | |
| 38 | + @Lazy | |
| 39 | + private MesDvMaintenRecordLineService maintenRecordLineService; | |
| 39 | 40 | @Resource |
| 40 | 41 | private MesDvMachineryService machineryService; |
| 41 | 42 | @Resource |
| ... | ... | @@ -70,7 +71,7 @@ public class MesDvMaintenRecordServiceImpl implements MesDvMaintenRecordService |
| 70 | 71 | // 1.1 校验状态为草稿 |
| 71 | 72 | validateMaintenRecordDraft(id); |
| 72 | 73 | // 1.2 校验至少有一条明细 |
| 73 | - List<MesDvMaintenRecordLineDO> lines = maintenRecordLineMapper.selectListByRecordId(id); | |
| 74 | + List<MesDvMaintenRecordLineDO> lines = maintenRecordLineService.getMaintenRecordLineListByRecordId(id); | |
| 74 | 75 | if (CollUtil.isEmpty(lines)) { |
| 75 | 76 | throw exception(MAINTEN_RECORD_NO_LINE); |
| 76 | 77 | } |
| ... | ... | @@ -91,7 +92,7 @@ public class MesDvMaintenRecordServiceImpl implements MesDvMaintenRecordService |
| 91 | 92 | // 删除 |
| 92 | 93 | maintenRecordMapper.deleteById(id); |
| 93 | 94 | // 级联删除子表 |
| 94 | - maintenRecordLineMapper.deleteByRecordId(id); | |
| 95 | + maintenRecordLineService.deleteMaintenRecordLineByRecordId(id); | |
| 95 | 96 | } |
| 96 | 97 | |
| 97 | 98 | private void validateMaintenRecordRelation(MesDvMaintenRecordSaveReqVO reqVO) { |
| ... | ... | @@ -115,12 +116,7 @@ public class MesDvMaintenRecordServiceImpl implements MesDvMaintenRecordService |
| 115 | 116 | return maintenRecordMapper.selectCountByMachineryId(machineryId); |
| 116 | 117 | } |
| 117 | 118 | |
| 118 | - /** | |
| 119 | - * 校验设备保养记录是否为草稿状态 | |
| 120 | - * | |
| 121 | - * @param id 编号 | |
| 122 | - * @return 保养记录 | |
| 123 | - */ | |
| 119 | + @Override | |
| 124 | 120 | public MesDvMaintenRecordDO validateMaintenRecordDraft(Long id) { |
| 125 | 121 | MesDvMaintenRecordDO record = maintenRecordMapper.selectById(id); |
| 126 | 122 | if (record == null) { | ... | ... |