package cn.iocoder.yudao.module.mes.service.dv.repair; 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.repair.vo.line.MesDvRepairLinePageReqVO; import cn.iocoder.yudao.module.mes.controller.admin.dv.repair.vo.line.MesDvRepairLineSaveReqVO; import cn.iocoder.yudao.module.mes.dal.dataobject.dv.repair.MesDvRepairLineDO; import cn.iocoder.yudao.module.mes.dal.mysql.dv.repair.MesDvRepairLineMapper; 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 static cn.iocoder.yudao.framework.common.exception.util.ServiceExceptionUtil.exception; import static cn.iocoder.yudao.module.mes.enums.ErrorCodeConstants.*; /** * MES 维修工单行 Service 实现类 * * @author 芋道源码 */ @Service @Validated public class MesDvRepairLineServiceImpl implements MesDvRepairLineService { @Resource private MesDvRepairLineMapper repairLineMapper; @Resource @Lazy private MesDvRepairServiceImpl repairService; @Resource private MesDvSubjectService subjectService; @Override public Long createRepairLine(MesDvRepairLineSaveReqVO createReqVO) { // 1.1 校验关联数据 validateRepairLineRelation(createReqVO); // 1.2 校验维修工单为草稿状态 repairService.validateRepairPrepare(createReqVO.getRepairId()); // 2. 插入 MesDvRepairLineDO repairLine = BeanUtils.toBean(createReqVO, MesDvRepairLineDO.class); repairLineMapper.insert(repairLine); return repairLine.getId(); } @Override public void updateRepairLine(MesDvRepairLineSaveReqVO updateReqVO) { // 1.1 校验存在 validateRepairLineExists(updateReqVO.getId()); // 1.2 校验关联数据 validateRepairLineRelation(updateReqVO); // 1.3 校验维修工单为草稿状态 repairService.validateRepairPrepare(updateReqVO.getRepairId()); // 2. 更新 MesDvRepairLineDO updateObj = BeanUtils.toBean(updateReqVO, MesDvRepairLineDO.class); repairLineMapper.updateById(updateObj); } @Override public void deleteRepairLine(Long id) { // 1.1 校验存在 MesDvRepairLineDO line = repairLineMapper.selectById(id); if (line == null) { throw exception(DV_REPAIR_LINE_NOT_EXISTS); } // 1.2 校验维修工单为草稿状态 repairService.validateRepairPrepare(line.getRepairId()); // 2. 删除 repairLineMapper.deleteById(id); } private void validateRepairLineRelation(MesDvRepairLineSaveReqVO reqVO) { // 校验维修工单是否存在 repairService.validateRepairExists(reqVO.getRepairId()); // 校验点检保养项目是否存在(可选) if (reqVO.getSubjectId() != null) { subjectService.validateSubjectExistsAndEnable(reqVO.getSubjectId()); } } private void validateRepairLineExists(Long id) { if (repairLineMapper.selectById(id) == null) { throw exception(DV_REPAIR_LINE_NOT_EXISTS); } } @Override public MesDvRepairLineDO getRepairLine(Long id) { return repairLineMapper.selectById(id); } @Override public PageResult getRepairLinePage(MesDvRepairLinePageReqVO pageReqVO) { return repairLineMapper.selectPage(pageReqVO); } @Override public void deleteByRepairId(Long repairId) { repairLineMapper.deleteByRepairId(repairId); } }