fix(bpm): 部署未绘制流程图的模型时,错误提示误导为「流程模型不存在」

走查「新增流程模型」全流程时发现:创建模型后未绘制流程图直接点部署,
接口返回“流程模型不存在”(MODEL_NOT_EXISTS),但模型实际存在,
只是 bpmnXml 为空导致解析不出 BpmnModel。

这会让用户误以为模型被删了,去反复重建模型,实际只需要先画流程图。

修正:validateBpmnXml 中 bpmnModel 为 null 时,改用新增的
MODEL_DEPLOY_FAIL_BPMN_NOT_EXISTS(1_009_002_009),提示
“部署流程失败,原因:流程图还没有绘制,请点击【流程设计】按钮先设计流程图”。

其他校验分支(开始事件缺失、任务名为空等)本身提示正确,未改动。
已修改2个文件
5 ■■■■■ 文件已修改
yudao-module-bpm/src/main/java/cn/iocoder/yudao/module/bpm/enums/ErrorCodeConstants.java 1 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
yudao-module-bpm/src/main/java/cn/iocoder/yudao/module/bpm/service/definition/BpmModelServiceImpl.java 4 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
yudao-module-bpm/src/main/java/cn/iocoder/yudao/module/bpm/enums/ErrorCodeConstants.java
@@ -26,6 +26,7 @@
    ErrorCode MODEL_DEPLOY_FAIL_BPMN_USER_TASK_NAME_NOT_EXISTS = new ErrorCode(1_009_002_006, "部署流程失败,原因:BPMN 流程图中,用户任务({})的名字不存在");
    ErrorCode MODEL_UPDATE_FAIL_NOT_MANAGER = new ErrorCode(1_009_002_007, "操作流程失败,原因:你不是该流程({})的管理员");
    ErrorCode MODEL_DEPLOY_FAIL_FIRST_USER_TASK_CANDIDATE_STRATEGY_ERROR = new ErrorCode(1_009_002_008, "部署流程失败,原因:首个任务({})的审批人不能是【审批人自选】");
    ErrorCode MODEL_DEPLOY_FAIL_BPMN_NOT_EXISTS = new ErrorCode(1_009_002_009, "部署流程失败,原因:流程图还没有绘制,请点击【流程设计】按钮先设计流程图");
    // ========== 流程定义 1-009-003-000 ==========
    ErrorCode PROCESS_DEFINITION_KEY_NOT_MATCH = new ErrorCode(1_009_003_000, "流程定义的标识期望是({}),当前是({}),请修改 BPMN 流程图");
yudao-module-bpm/src/main/java/cn/iocoder/yudao/module/bpm/service/definition/BpmModelServiceImpl.java
@@ -242,7 +242,9 @@
    private void validateBpmnXml(byte[] bpmnBytes, Integer type) {
        BpmnModel bpmnModel = BpmnModelUtils.getBpmnModel(bpmnBytes);
        if (bpmnModel == null) {
            throw exception(MODEL_NOT_EXISTS);
            // 此处是流程图未绘制(bpmnXml 为空或无法解析),不是模型不存在,
            // 用 MODEL_NOT_EXISTS 会误导用户以为模型被删了
            throw exception(MODEL_DEPLOY_FAIL_BPMN_NOT_EXISTS);
        }
        // 1. 没有 StartEvent
        StartEvent startEvent = BpmnModelUtils.getStartEvent(bpmnModel);