| | |
| | | import cn.iocoder.yudao.module.mes.controller.admin.qc.outsourcetest.vo.MesQcOutsourceTestSaveReqVO; |
| | | import cn.iocoder.yudao.module.mes.dal.dataobject.qc.outsourcetest.MesQcOutsourceTestDO; |
| | | import cn.iocoder.yudao.module.mes.dal.mysql.qc.outsourcetest.MesQcOutsourceTestMapper; |
| | | import cn.iocoder.yudao.module.mes.service.md.item.MesMdItemService; |
| | | import cn.iocoder.yudao.module.system.api.storage.StorageAttachmentApi; |
| | | import jakarta.annotation.Resource; |
| | | import lombok.extern.slf4j.Slf4j; |
| | |
| | | @Resource |
| | | private MesQcOutsourceTestMapper testMapper; |
| | | @Resource |
| | | private MesMdItemService itemService; |
| | | @Resource |
| | | private StorageAttachmentApi storageAttachmentApi; |
| | | |
| | | @Override |
| | | @Transactional(rollbackFor = Exception.class) |
| | | public Long createTest(MesQcOutsourceTestSaveReqVO createReqVO) { |
| | | // 0. 校验检测对象(物料)存在 |
| | | validateItemIfPresent(createReqVO.getItemId()); |
| | | // 1. 生成单号 |
| | | String code = generateCode(); |
| | | if (testMapper.selectByCode(code) != null) { |
| | |
| | | @Override |
| | | @Transactional(rollbackFor = Exception.class) |
| | | public void updateTest(MesQcOutsourceTestSaveReqVO updateReqVO) { |
| | | // 1. 校验存在 + 草稿 |
| | | // 1. 校验存在 + 草稿 + 检测对象(物料)存在 |
| | | MesQcOutsourceTestDO oldTest = validateTestCanModify(updateReqVO.getId()); |
| | | validateItemIfPresent(updateReqVO.getItemId()); |
| | | // 2. 更新 |
| | | MesQcOutsourceTestDO updateObj = BeanUtils.toBean(updateReqVO, MesQcOutsourceTestDO.class, req -> req |
| | | .setCode(oldTest.getCode()) |
| | |
| | | testMapper.updateById(new MesQcOutsourceTestDO().setId(id).setStatus(STATUS_FINISHED)); |
| | | } |
| | | |
| | | private void validateItemIfPresent(Long itemId) { |
| | | if (itemId != null) { |
| | | itemService.validateItemExists(itemId); |
| | | } |
| | | } |
| | | |
| | | private String generateCode() { |
| | | return "WT" + DateUtil.format(java.time.LocalDateTime.now(), "yyyyMMddHHmmss") |
| | | + String.format("%03d", (int) (Math.random() * 1000)); |