| | |
| | | /** |
| | | * MES 维修工单 Service 实现类 |
| | | * |
| | | * @author 芋道源码 |
| | | * @author 超级管理员 |
| | | */ |
| | | @Service |
| | | @Validated |
| | |
| | | private MesDvRepairLineService repairLineService; |
| | | @Resource |
| | | private MesDvMachineryService machineryService; |
| | | @Resource |
| | | private cn.iocoder.yudao.module.mes.dal.mysql.dv.spare.MesDvSpareMovementMapper spareMovementMapper; |
| | | |
| | | @Override |
| | | public Long createRepair(MesDvRepairSaveReqVO createReqVO) { |
| | |
| | | } |
| | | |
| | | @Override |
| | | @Transactional(rollbackFor = Exception.class) |
| | | public void updateRepair(MesDvRepairSaveReqVO updateReqVO) { |
| | | // 1.1 校验存在,且状态为草稿 |
| | | validateRepairPrepare(updateReqVO.getId()); |
| | | MesDvRepairDO old = repairMapper.selectById(updateReqVO.getId()); |
| | | if (spareMovementMapper.selectCount( |
| | | cn.iocoder.yudao.module.mes.dal.dataobject.dv.spare.MesDvSpareMovementDO::getRepairId, old.getId()) > 0 |
| | | && (!java.util.Objects.equals(old.getMachineryId(), updateReqVO.getMachineryId()) |
| | | || !java.util.Objects.equals(old.getCode(), updateReqVO.getCode()))) { |
| | | throw exception(new cn.iocoder.yudao.framework.common.exception.ErrorCode(1_040_807_001, |
| | | "备件操作失败:{}"), "已有备件流水的维修单不能更换设备或编码"); |
| | | } |
| | | // 1.2 校验保存数据 |
| | | validateSaveData(updateReqVO); |
| | | |
| | |
| | | public void deleteRepair(Long id) { |
| | | // 校验存在,且状态为草稿 |
| | | validateRepairPrepare(id); |
| | | |
| | | if (spareMovementMapper.selectCount( |
| | | cn.iocoder.yudao.module.mes.dal.dataobject.dv.spare.MesDvSpareMovementDO::getRepairId, id) > 0) { |
| | | throw exception(new cn.iocoder.yudao.framework.common.exception.ErrorCode(1_040_807_001, |
| | | "备件操作失败:{}"), "已有备件流水的维修单不能删除,请保留维修追溯记录"); |
| | | } |
| | | |
| | | // 删除 |
| | | repairMapper.deleteById(id); |
| | |
| | | |
| | | @Override |
| | | public MesDvRepairDO validateRepairExists(Long id) { |
| | | MesDvRepairDO repair = repairMapper.selectById(id); |
| | | MesDvRepairDO repair = org.springframework.transaction.support.TransactionSynchronizationManager.isActualTransactionActive() |
| | | ? repairMapper.lockForSpare(id) : repairMapper.selectById(id); |
| | | if (repair == null) { |
| | | throw exception(DV_REPAIR_NOT_EXISTS); |
| | | } |
| | |
| | | } |
| | | |
| | | @Override |
| | | @Transactional(rollbackFor = Exception.class) |
| | | public void submitRepair(Long id, Long userId) { |
| | | // 1. 校验存在,且状态为草稿 |
| | | validateRepairPrepare(id); |
| | |
| | | } |
| | | |
| | | @Override |
| | | @Transactional(rollbackFor = Exception.class) |
| | | public void confirmRepair(cn.iocoder.yudao.module.mes.controller.admin.dv.repair.vo.MesDvRepairConfirmReqVO confirmReqVO) { |
| | | // 1. 校验存在,且状态为维修中 |
| | | MesDvRepairDO repair = validateRepairExists(confirmReqVO.getId()); |
| | |
| | | } |
| | | |
| | | @Override |
| | | @Transactional(rollbackFor = Exception.class) |
| | | public void finishRepair(Long id, Integer result, Long userId) { |
| | | // 1. 校验存在,且状态为待验收 |
| | | MesDvRepairDO repair = validateRepairExists(id); |