# ccbpm2bpmn **Repository Path**: qooqle/ccbpm2bpmn ## Basic Information - **Project Name**: ccbpm2bpmn - **Description**: CCBPM到BPMN转换 - **Primary Language**: Unknown - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2025-07-20 - **Last Updated**: 2025-07-21 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # 工作流转BPMN 2.0工具 一个基于Java 1.8和Spring Boot的Web工具,用于将CCBPM和驰骋BPM格式转换为标准BPMN 2.0格式。 ## 功能特性 - 🚀 **现代化Web界面** - 使用Bootstrap 5和Font Awesome图标 - 📁 **多格式支持** - 支持CCBPM和驰骋BPM两种格式 - 📁 **文件上传** - 支持拖拽上传工作流文件 - ✏️ **文本输入** - 直接输入XML内容进行转换 - 🔄 **实时转换** - 即时将工作流格式转换为BPMN 2.0 - 💾 **文件下载** - 一键下载转换后的BPMN文件 - 📱 **响应式设计** - 支持桌面和移动设备 ## 技术栈 - **后端**: Java 1.8, Spring Boot 2.7.18 - **前端**: Bootstrap 5, Font Awesome, JavaScript - **模板引擎**: Thymeleaf - **构建工具**: Maven ## 快速开始 ### 环境要求 - Java 1.8 或更高版本 - Maven 3.6 或更高版本 ### 安装和运行 1. **克隆项目** ```bash git clone cd ccbpm2bpmn ``` 2. **编译项目** ```bash mvn clean compile ``` 3. **运行应用** ```bash mvn spring-boot:run ``` 4. **访问应用** 打开浏览器访问: http://localhost:8080 ### 使用Docker运行 1. **构建Docker镜像** ```bash mvn clean package docker build -t ccbpm2bpmn . ``` 2. **运行容器** ```bash docker run -p 8080:8080 ccbpm2bpmn ``` ## 使用说明 ### CCBPM转换 1. 点击"CCBPM转换"标签页 2. 选择"文件上传"或"文本输入"方式 3. 上传CCBPM文件或输入XML内容 4. 点击"开始转换"按钮 5. 查看转换结果,可点击"下载BPMN"保存文件 ### 驰骋BPM转换 1. 点击"驰骋BPM转换"标签页 2. 选择"文件上传"或"文本输入"方式 3. 上传驰骋BPM文件或输入XML内容 4. 点击"开始转换"按钮 5. 查看转换结果,可点击"下载BPMN"保存文件 ## 支持的工作流格式 ### CCBPM格式 CCBPM是一种简化的业务流程建模格式,支持以下元素: #### 节点类型 - **start**: 开始节点 - **task**: 任务节点(支持assignee属性) - **gateway**: 网关节点(支持exclusive/parallel/inclusive类型) - **end**: 结束节点 #### 连线 - **flow**: 流程连线(支持condition条件表达式) #### 示例CCBPM文件 ```xml ``` ### 驰骋BPM格式 驰骋BPM是一种国产工作流引擎的格式,支持以下元素: #### 节点类型 - **StartNode**: 开始节点 - **TaskNode**: 任务节点(支持Executor属性) - **ConditionNode**: 条件网关节点 - **ForkNode**: 并行网关节点 - **EndNode**: 结束节点 #### 连线 - **Line**: 流程连线(支持Condition条件表达式) #### 示例驰骋BPM文件 ```xml 示例流程 ``` ## 转换规则 ### CCBPM到BPMN 2.0的映射 | CCBPM元素 | BPMN 2.0元素 | 说明 | |-----------|---------------|------| | start | startEvent | 开始事件 | | task | userTask | 用户任务 | | gateway (exclusive) | exclusiveGateway | 排他网关 | | gateway (parallel) | parallelGateway | 并行网关 | | gateway (inclusive) | inclusiveGateway | 包容网关 | | end | endEvent | 结束事件 | | flow | sequenceFlow | 顺序流 | ### 驰骋BPM到BPMN 2.0的映射 | 驰骋BPM元素 | BPMN 2.0元素 | 说明 | |-------------|---------------|------| | StartNode | startEvent | 开始事件 | | TaskNode | userTask | 用户任务 | | ConditionNode | exclusiveGateway | 排他网关 | | ForkNode | parallelGateway | 并行网关 | | EndNode | endEvent | 结束事件 | | Line | sequenceFlow | 顺序流 | ### 属性转换 - **ID映射**: 自动添加前缀(如StartEvent_、Task_等) - **名称映射**: 直接映射Name属性 - **分配者映射**: assignee/Executor转换为humanPerformer元素 - **条件映射**: condition/Condition转换为conditionExpression元素 ## 项目结构 ``` ccbpm2bpmn/ ├── src/ │ ├── main/ │ │ ├── java/com/ccbpm/ │ │ │ ├── Ccbpm2BpmnApplication.java # 主启动类 │ │ │ ├── controller/ │ │ │ │ └── ConverterController.java # Web控制器 │ │ │ └── service/ │ │ │ └── CcbpmConverterService.java # 转换服务 │ │ └── resources/ │ │ ├── templates/ │ │ │ └── index.html # 主页面模板 │ │ ├── static/ │ │ │ └── sample.ccbpm # 示例文件 │ │ └── application.yml # 配置文件 │ └── test/ # 测试代码 ├── pom.xml # Maven配置 └── README.md # 项目说明 ``` ## 开发指南 ### 添加新的转换规则 1. 在`CcbpmConverterService`中添加新的转换方法 2. 在`convertProcessDefinition`方法中调用新的转换方法 3. 更新`getBpmnElementId`方法以支持新的元素类型 ### 扩展功能 - 支持更多CCBPM元素类型 - 添加BPMN图形布局信息 - 支持子流程转换 - 添加转换验证和错误处理 ## 许可证 MIT License ## 贡献 欢迎提交Issue和Pull Request来改进这个项目!