gaoluyang
4 天以前 d39e4f7d839167c16425086dfa2f8747bccfdff9
yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/service/pro/workorder/MesProWorkOrderServiceImpl.java
@@ -13,6 +13,7 @@
import cn.iocoder.yudao.module.mes.enums.wm.BarcodeBizTypeEnum;
import cn.iocoder.yudao.module.mes.service.md.item.MesMdItemBatchConfigService;
import cn.iocoder.yudao.module.mes.service.md.item.MesMdItemService;
import cn.iocoder.yudao.module.mes.service.common.bpm.MesBpmProcessService;
import cn.iocoder.yudao.module.mes.controller.admin.pro.workorder.vo.MesProWorkOrderProgressRespVO;
import cn.iocoder.yudao.module.mes.dal.dataobject.md.workstation.MesMdWorkstationDO;
import cn.iocoder.yudao.module.mes.dal.dataobject.pro.process.MesProProcessDO;
@@ -41,11 +42,16 @@
/**
 * MES 生产工单 Service 实现类
 *
 * @author 芋道源码
 * @author 超级管理员
 */
@Service
@Validated
public class MesProWorkOrderServiceImpl implements MesProWorkOrderService {
    @Resource
    private MesBpmProcessService mesBpmProcessService;
    private static final String BPM_PROCESS_DEFINITION_CATEGORY_CODE = "mes_pro_feedback_audit";
    @Resource
    private MesProWorkOrderMapper workOrderMapper;
@@ -68,6 +74,8 @@
    private MesMdWorkstationService workstationService;
    @Resource
    private CrmCustomerApi customerApi;
    @Resource
    private MesProWorkOrderTechnicalFileService technicalFileService;
    @Override
    @Transactional(rollbackFor = Exception.class)
@@ -83,6 +91,7 @@
        MesProWorkOrderDO workOrder = BeanUtils.toBean(createReqVO, MesProWorkOrderDO.class);
        workOrder.setStatus(MesProWorkOrderStatusEnum.PREPARE.getStatus());
        workOrderMapper.insert(workOrder);
        technicalFileService.snapshot(workOrder.getId(), workOrder.getProductId());
        // 3. 自动生成 BOM:根据产品 BOM 生成工单 BOM
        workOrderBomService.generateWorkOrderBom(workOrder.getId(), createReqVO, false);
@@ -116,7 +125,10 @@
        // 3. 更新
        MesProWorkOrderDO updateObj = BeanUtils.toBean(updateReqVO, MesProWorkOrderDO.class);
        // 工单盘号沿用创建时的来源快照,避免与计划和已生成的下游记录不一致。
        updateObj.setReelNo(null);
        workOrderMapper.updateById(updateObj);
        if (productChanged) technicalFileService.replace(updateReqVO.getId(), updateReqVO.getProductId());
    }
    @Override
@@ -150,6 +162,13 @@
    }
    @Override
    public List<Map<String, Object>> getWorkOrderApproveProcessDefinitionList() {
        return mesBpmProcessService.getApproveProcessDefinitionList(BPM_PROCESS_DEFINITION_CATEGORY_CODE);
    }
    @Override
    public MesProWorkOrderDO getWorkOrder(Long id) {
        return workOrderMapper.selectById(id);
    }
@@ -161,9 +180,12 @@
    @Override
    public PageResult<MesProWorkOrderDO> getWorkOrderPage(MesProWorkOrderPageReqVO pageReqVO) {
        // 获取用户有权限的客户 ID 列表
        List<Long> permittedClientIds = customerApi.getPermittedCustomerIds();
        return workOrderMapper.selectPage(pageReqVO, permittedClientIds);
        return workOrderMapper.selectPage(pageReqVO, (List<Long>) null);
    }
    @Override
    public PageResult<MesProWorkOrderDO> getWorkOrderSchedulePage(MesProWorkOrderPageReqVO pageReqVO) {
        return workOrderMapper.selectSchedulePage(pageReqVO, (List<Long>) null);
    }
    @Override