diff --git a/yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/controller/admin/dv/checkrecord/MesDvCheckRecordLineController.java b/yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/controller/admin/dv/checkrecord/MesDvCheckRecordLineController.java index e23d5be..95e61d2 100644 --- a/yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/controller/admin/dv/checkrecord/MesDvCheckRecordLineController.java +++ b/yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/controller/admin/dv/checkrecord/MesDvCheckRecordLineController.java @@ -96,10 +96,8 @@ public class MesDvCheckRecordLineController { // 2. 拼接 VO return BeanUtils.toBean(list, MesDvCheckRecordLineRespVO.class, vo -> MapUtils.findAndThen(subjectMap, vo.getSubjectId(), subject -> vo - .setSubjectCode(subject.getCode()) - .setSubjectName(subject.getName()) - .setSubjectContent(subject.getContent()) - .setSubjectStandard(subject.getStandard()))); + .setSubjectCode(subject.getCode()).setSubjectName(subject.getName()) + .setSubjectType(subject.getType()).setSubjectContent(subject.getContent()).setSubjectStandard(subject.getStandard()))); } } 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 4dd7b99..27a90ab 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 @@ -33,6 +33,10 @@ public class MesDvCheckRecordLineRespVO { @ExcelProperty("项目名称") private String subjectName; + @Schema(description = "项目类型", example = "1") + @ExcelProperty("项目类型") + private Integer subjectType; + @Schema(description = "检查内容", example = "检查润滑油是否充足") @ExcelProperty("检查内容") private String subjectContent; diff --git a/yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/service/dv/checkrecord/MesDvCheckRecordLineService.java b/yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/service/dv/checkrecord/MesDvCheckRecordLineService.java index 5f679db..6a09c7c 100644 --- a/yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/service/dv/checkrecord/MesDvCheckRecordLineService.java +++ b/yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/service/dv/checkrecord/MesDvCheckRecordLineService.java @@ -45,6 +45,13 @@ public interface MesDvCheckRecordLineService { void deleteByRecordId(Long recordId); /** + * 批量创建点检记录明细 + * + * @param lines 明细列表 + */ + void createCheckRecordLineList(List lines); + + /** * 校验点检记录明细存在 * * @param id 编号 diff --git a/yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/service/dv/checkrecord/MesDvCheckRecordLineServiceImpl.java b/yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/service/dv/checkrecord/MesDvCheckRecordLineServiceImpl.java index 127320f..25f29e1 100644 --- a/yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/service/dv/checkrecord/MesDvCheckRecordLineServiceImpl.java +++ b/yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/service/dv/checkrecord/MesDvCheckRecordLineServiceImpl.java @@ -34,8 +34,8 @@ public class MesDvCheckRecordLineServiceImpl implements MesDvCheckRecordLineServ @Override public Long createCheckRecordLine(MesDvCheckRecordLineSaveReqVO createReqVO) { - // 1. 校验点检记录存在 - checkRecordService.validateCheckRecordExists(createReqVO.getRecordId()); + // 1. 校验点检记录存在且为草稿状态 + checkRecordService.validateCheckRecordDraft(createReqVO.getRecordId()); // 2. 插入 MesDvCheckRecordLineDO line = BeanUtils.toBean(createReqVO, MesDvCheckRecordLineDO.class); @@ -47,8 +47,8 @@ public class MesDvCheckRecordLineServiceImpl implements MesDvCheckRecordLineServ public void updateCheckRecordLine(MesDvCheckRecordLineSaveReqVO updateReqVO) { // 1.1 校验行存在 validateCheckRecordLineExists(updateReqVO.getId()); - // 1.2 校验点检记录存在 - checkRecordService.validateCheckRecordExists(updateReqVO.getRecordId()); + // 1.2 校验点检记录存在且为草稿状态 + checkRecordService.validateCheckRecordDraft(updateReqVO.getRecordId()); // 2. 更新 MesDvCheckRecordLineDO updateObj = BeanUtils.toBean(updateReqVO, MesDvCheckRecordLineDO.class); @@ -57,9 +57,16 @@ public class MesDvCheckRecordLineServiceImpl implements MesDvCheckRecordLineServ @Override public void deleteCheckRecordLine(Long id) { - // 校验存在 - validateCheckRecordLineExists(id); - // 删除 + // 1. 校验存在 + // TODO @AI:复用 validateCheckRecordLineExists 方法; + MesDvCheckRecordLineDO line = checkRecordLineMapper.selectById(id); + if (line == null) { + throw exception(DV_CHECK_RECORD_LINE_NOT_EXISTS); + } + + // 2. 校验父记录为草稿状态 + checkRecordService.validateCheckRecordDraft(line.getRecordId()); + // 3. 删除 checkRecordLineMapper.deleteById(id); } @@ -69,6 +76,11 @@ public class MesDvCheckRecordLineServiceImpl implements MesDvCheckRecordLineServ } @Override + public void createCheckRecordLineList(List lines) { + checkRecordLineMapper.insertBatch(lines); + } + + @Override public void validateCheckRecordLineExists(Long id) { if (checkRecordLineMapper.selectById(id) == null) { throw exception(DV_CHECK_RECORD_LINE_NOT_EXISTS); 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 27198b9..1a9778e 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 @@ -51,6 +51,13 @@ public interface MesDvCheckRecordService { void validateCheckRecordExists(Long id); /** + * 校验点检记录为草稿状态 + * + * @param id 编号 + */ + void validateCheckRecordDraft(Long id); + + /** * 获得指定设备的点检记录数量 * * @param machineryId 设备编号 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 f19d525..22be2b8 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 @@ -11,12 +11,13 @@ import cn.iocoder.yudao.module.mes.dal.dataobject.dv.checkrecord.MesDvCheckRecor 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; import cn.iocoder.yudao.module.mes.service.dv.checkplan.MesDvCheckPlanSubjectService; import cn.iocoder.yudao.module.mes.service.dv.machinery.MesDvMachineryService; +import cn.iocoder.yudao.module.system.api.user.AdminUserApi; import jakarta.annotation.Resource; +import org.springframework.context.annotation.Lazy; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; import org.springframework.validation.annotation.Validated; @@ -39,19 +40,22 @@ public class MesDvCheckRecordServiceImpl implements MesDvCheckRecordService { @Resource private MesDvCheckRecordMapper checkRecordMapper; @Resource - private MesDvCheckRecordLineMapper checkRecordLineMapper; + @Lazy + private MesDvCheckRecordLineService checkRecordLineService; @Resource private MesDvMachineryService machineryService; @Resource private MesDvCheckPlanService checkPlanService; @Resource private MesDvCheckPlanSubjectService checkPlanSubjectService; + @Resource + private AdminUserApi adminUserApi; @Override @Transactional(rollbackFor = Exception.class) public Long createCheckRecord(MesDvCheckRecordSaveReqVO createReqVO) { // 1. 校验关联数据 - validateCheckRecordRelation(createReqVO); + validateCheckRecordSave(createReqVO); // 2. 插入主记录,状态默认为草稿 MesDvCheckRecordDO checkRecord = BeanUtils.toBean(createReqVO, MesDvCheckRecordDO.class) @@ -69,16 +73,17 @@ public class MesDvCheckRecordServiceImpl implements MesDvCheckRecordService { @Transactional(rollbackFor = Exception.class) public void updateCheckRecord(MesDvCheckRecordSaveReqVO updateReqVO) { // 1.1 校验存在 + 状态为草稿 - MesDvCheckRecordDO existRecord = validateCheckRecordDraft(updateReqVO.getId()); + validateCheckRecordDraft(updateReqVO.getId()); // 1.2 校验关联数据 - validateCheckRecordRelation(updateReqVO); + validateCheckRecordSave(updateReqVO); // 2. 如果计划变更,删除旧明细并重新生成 + MesDvCheckRecordDO existRecord = checkRecordMapper.selectById(updateReqVO.getId()); Long oldPlanId = existRecord.getPlanId(); Long newPlanId = updateReqVO.getPlanId(); - boolean planChanged = !java.util.Objects.equals(oldPlanId, newPlanId); + boolean planChanged = ObjUtil.notEqual(oldPlanId, newPlanId); if (planChanged) { - checkRecordLineMapper.deleteByRecordId(updateReqVO.getId()); + checkRecordLineService.deleteByRecordId(updateReqVO.getId()); if (newPlanId != null) { generateCheckRecordLines(updateReqVO.getId(), newPlanId); } @@ -94,7 +99,7 @@ public class MesDvCheckRecordServiceImpl implements MesDvCheckRecordService { // 1.1 校验状态为草稿 validateCheckRecordDraft(id); // 1.2 校验至少有一条明细 - List lines = checkRecordLineMapper.selectListByRecordId(id); + List lines = checkRecordLineService.getCheckRecordLineListByRecordId(id); if (CollUtil.isEmpty(lines)) { throw exception(DV_CHECK_RECORD_NO_LINE); } @@ -114,7 +119,7 @@ public class MesDvCheckRecordServiceImpl implements MesDvCheckRecordService { // 2.1 删除主记录 checkRecordMapper.deleteById(id); // 2.2 级联删除明细 - checkRecordLineMapper.deleteByRecordId(id); + checkRecordLineService.deleteByRecordId(id); } @Override @@ -139,12 +144,10 @@ public class MesDvCheckRecordServiceImpl implements MesDvCheckRecordService { return checkRecordMapper.selectPage(pageReqVO); } - // ==================== 私有方法 ==================== + // ==================== 校验方法 ==================== - /** - * 校验点检记录为草稿状态 - */ - private MesDvCheckRecordDO validateCheckRecordDraft(Long id) { + @Override + public void validateCheckRecordDraft(Long id) { MesDvCheckRecordDO record = checkRecordMapper.selectById(id); if (record == null) { throw exception(DV_CHECK_RECORD_NOT_EXISTS); @@ -152,16 +155,19 @@ public class MesDvCheckRecordServiceImpl implements MesDvCheckRecordService { if (ObjUtil.notEqual(MesDvCheckRecordStatusEnum.DRAFT.getStatus(), record.getStatus())) { throw exception(DV_CHECK_RECORD_NOT_DRAFT); } - return record; } - private void validateCheckRecordRelation(MesDvCheckRecordSaveReqVO reqVO) { + private void validateCheckRecordSave(MesDvCheckRecordSaveReqVO reqVO) { // 校验设备是否存在 machineryService.validateMachineryExists(reqVO.getMachineryId()); // 校验点检计划是否存在 if (reqVO.getPlanId() != null) { checkPlanService.validateCheckPlanExists(reqVO.getPlanId()); } + // 校验点检人是否存在 + if (reqVO.getUserId() != null) { + adminUserApi.validateUser(reqVO.getUserId()); + } } /** @@ -178,7 +184,7 @@ public class MesDvCheckRecordServiceImpl implements MesDvCheckRecordService { .setRecordId(recordId).setSubjectId(planSubject.getSubjectId()) .setCheckStatus(MesDvCheckResultEnum.NORMAL.getResult())); } - checkRecordLineMapper.insertBatch(lines); + checkRecordLineService.createCheckRecordLineList(lines); } }