liu
2 天以前 b08a6f05c20cbdb29ffc4d447aedb5ccdc2f607f
yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/service/qc/outsourcetest/MesQcOutsourceTestServiceImpl.java
@@ -8,6 +8,7 @@
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;
@@ -56,11 +57,15 @@
    @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) {
@@ -80,8 +85,9 @@
    @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())
@@ -134,6 +140,12 @@
        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));