| | |
| | | } |
| | | // 3. 组装工单 |
| | | MesProWorkOrderSaveReqVO workOrderReq = new MesProWorkOrderSaveReqVO(); |
| | | workOrderReq.setCode(autoCodeRecordService.generateAutoCode( |
| | | MesMdAutoCodeRuleCodeEnum.PRO_WORK_ORDER_CODE.getCode())); |
| | | workOrderReq.setCode(generateWorkOrderCode()); |
| | | workOrderReq.setName(plan.getName()); |
| | | workOrderReq.setType(convertPlanTypeToWorkOrderType(plan.getPlanType())); |
| | | workOrderReq.setOrderSourceType(MesProWorkOrderSourceTypeEnum.MAINTENANCE_PLAN.getType()); |
| | |
| | | + String.format("%03d", (int) (Math.random() * 1000)); |
| | | } |
| | | |
| | | /** |
| | | * 生成工单编码 |
| | | * |
| | | * 优先使用编码规则;若环境中未配置 PRO_WORK_ORDER_CODE 规则,则降级为时间戳编码,避免生成工单被阻断 |
| | | */ |
| | | private String generateWorkOrderCode() { |
| | | try { |
| | | return autoCodeRecordService.generateAutoCode( |
| | | MesMdAutoCodeRuleCodeEnum.PRO_WORK_ORDER_CODE.getCode()); |
| | | } catch (Exception e) { |
| | | log.warn("[generateWorkOrderCode] 编码规则 {} 不存在,使用时间戳生成", |
| | | MesMdAutoCodeRuleCodeEnum.PRO_WORK_ORDER_CODE.getCode(), e); |
| | | return "WO" + DateUtil.format(java.time.LocalDateTime.now(), "yyyyMMddHHmmssSSS"); |
| | | } |
| | | } |
| | | |
| | | private MesProMaintenancePlanDO validatePlanExists(Long id) { |
| | | MesProMaintenancePlanDO plan = planMapper.selectById(id); |
| | | if (plan == null) { |