liyong
8 天以前 1ab2b329a40decba8ff7eefbeb158ff259aceb6d
yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/service/wm/sn/MesWmSnServiceImpl.java
@@ -1,5 +1,6 @@
package cn.iocoder.yudao.module.mes.service.wm.sn;
import cn.hutool.core.collection.CollUtil;
import cn.hutool.core.util.IdUtil;
import cn.iocoder.yudao.framework.common.pojo.PageResult;
import cn.iocoder.yudao.module.mes.controller.admin.wm.sn.vo.MesWmSnGenerateReqVO;
@@ -8,9 +9,11 @@
import cn.iocoder.yudao.module.mes.dal.dataobject.wm.sn.MesWmSnDO;
import cn.iocoder.yudao.module.mes.dal.mysql.wm.sn.MesWmSnMapper;
import cn.iocoder.yudao.module.mes.enums.md.autocode.MesMdAutoCodeRuleCodeEnum;
import cn.iocoder.yudao.module.mes.enums.wm.BarcodeBizTypeEnum;
import cn.iocoder.yudao.module.mes.service.md.autocode.MesMdAutoCodeRecordService;
import cn.iocoder.yudao.module.mes.service.md.item.MesMdItemService;
import cn.iocoder.yudao.module.mes.service.mdm.MesMdmItemService;
import cn.iocoder.yudao.module.mes.service.pro.workorder.MesProWorkOrderService;
import cn.iocoder.yudao.module.mes.service.wm.barcode.MesWmBarcodeService;
import jakarta.annotation.Resource;
import lombok.extern.slf4j.Slf4j;
import org.springframework.stereotype.Service;
@@ -19,6 +22,8 @@
import java.util.ArrayList;
import java.util.List;
import static cn.iocoder.yudao.framework.common.util.collection.CollectionUtils.convertList;
/**
 * MES SN 码 Service 实现类
@@ -36,15 +41,17 @@
    @Resource
    private MesMdAutoCodeRecordService autoCodeRecordService;
    @Resource
    private MesMdItemService itemService;
    private MesMdmItemService mdmItemService;
    @Resource
    private MesProWorkOrderService workOrderService;
    @Resource
    private MesWmBarcodeService barcodeService;
    @Override
    @Transactional(rollbackFor = Exception.class)
    public void generateSnCodes(MesWmSnGenerateReqVO reqVO) {
        // 校验物料是否存在
        itemService.validateItemExists(reqVO.getItemId());
        mdmItemService.validateItemExists(reqVO.getItemId());
        // 校验工单是否存在
        if (reqVO.getWorkOrderId() != null) {
            workOrderService.validateWorkOrderExists(reqVO.getWorkOrderId());
@@ -62,6 +69,9 @@
        }
        // 批量插入
        snMapper.insertBatch(sns);
        // 自动生成条码
        sns.forEach(sn -> barcodeService.autoGenerateBarcode(BarcodeBizTypeEnum.SN.getValue(),
                sn.getId(), sn.getCode(), sn.getCode()));
    }
    @Override
@@ -77,7 +87,16 @@
    @Override
    @Transactional(rollbackFor = Exception.class)
    public void deleteSnByUuid(String uuid) {
        List<MesWmSnDO> sns = snMapper.selectListByUuid(uuid);
        if (CollUtil.isEmpty(sns)) {
            return;
        }
        // 删除 SN 码关联的条码记录
        barcodeService.deleteBarcodeByBizTypeAndBizIds(BarcodeBizTypeEnum.SN.getValue(),
                convertList(sns, MesWmSnDO::getId));
        // 删除 SN 码
        snMapper.deleteByUuid(uuid);
    }
}
}