# workflowsample **Repository Path**: tm2002/workflowsample ## Basic Information - **Project Name**: workflowsample - **Description**: No description available - **Primary Language**: C# - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2025-07-06 - **Last Updated**: 2025-07-06 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # 设备维修工作流系统 这是一个基于.NET和Elsa工作流引擎的设备维修管理系统,前端使用Angular,工作流管理界面通过iframe嵌入。 ## 项目结构 ``` workflow/ ├── DeviceRepairWorkflow.Api/ # .NET Web API后端 │ ├── Controllers/ # API控制器 │ ├── Data/ # 数据访问层 │ ├── Models/ # 数据模型 │ ├── Workflows/ # Elsa工作流定义 │ └── Program.cs # 应用程序入口 ├── device-repair-frontend/ # Angular前端 │ ├── src/app/components/ # Angular组件 │ ├── src/app/models/ # TypeScript模型 │ ├── src/app/services/ # Angular服务 │ └── src/environments/ # 环境配置 └── README.md # 项目说明 ``` ## 功能特性 ### 后端功能 - ✅ 设备管理 CRUD API - ✅ 维修请求管理 API - ✅ Elsa工作流引擎集成 - ✅ 设备维修工作流定义 - ✅ 工作流实例管理 - ✅ SQLite数据库存储 - ✅ CORS配置支持前端调用 ### 前端功能 - ✅ 设备列表查看 - ✅ 维修请求管理 - ✅ 创建维修请求表单 - ✅ 工作流管理界面(iframe嵌入) - ✅ 响应式设计 - ✅ Bootstrap UI组件 ### 工作流功能 - ✅ 维修请求提交 - ✅ 审批流程 - ✅ 技术员分配 - ✅ 维修进度跟踪 - ✅ 质量检查 - ✅ 完成确认 ## 技术栈 ### 后端 - .NET 8.0 - Elsa Workflows 3.0.4 - Entity Framework Core - SQLite数据库 - ASP.NET Core Web API ### 前端 - Angular 18 - TypeScript - Bootstrap 5 - ng-bootstrap - RxJS ## 快速开始 ### 前置要求 - .NET 8.0 SDK - Node.js 18+ - npm 或 yarn ### 运行后端 1. 进入后端目录: ```bash cd DeviceRepairWorkflow.Api ``` 2. 恢复NuGet包: ```bash dotnet restore ``` 3. 运行应用: ```bash dotnet run ``` 后端将在 `https://localhost:5001` 启动。 ### 运行前端 1. 进入前端目录: ```bash cd device-repair-frontend ``` 2. 安装依赖: ```bash npm install ``` 3. 启动开发服务器: ```bash npm start ``` 前端将在 `http://localhost:4200` 启动。 ## API端点 ### 设备管理 - `GET /api/devices` - 获取所有设备 - `GET /api/devices/{id}` - 获取指定设备 - `POST /api/devices` - 创建设备 - `PUT /api/devices/{id}` - 更新设备 - `DELETE /api/devices/{id}` - 删除设备 ### 维修请求管理 - `GET /api/repairrequests` - 获取所有维修请求 - `GET /api/repairrequests/{id}` - 获取指定维修请求 - `POST /api/repairrequests` - 创建维修请求 - `PUT /api/repairrequests/{id}` - 更新维修请求 - `POST /api/repairrequests/{id}/approve` - 审批通过 - `POST /api/repairrequests/{id}/reject` - 拒绝请求 - `DELETE /api/repairrequests/{id}` - 删除维修请求 ### Elsa工作流 - `/elsa/studio` - 工作流设计器界面 - `/elsa/api/*` - 工作流API端点 ## 工作流设计 系统包含一个预定义的设备维修工作流: 1. **接收维修请求** - 用户提交维修请求 2. **等待审批** - 管理员审批请求 3. **分配技术员** - 自动或手动分配维修人员 4. **执行维修** - 技术员进行设备维修 5. **质量检查** - 验证维修质量 6. **完成确认** - 标记维修完成 ## 数据模型 ### Device(设备) - Id: 设备ID - Name: 设备名称 - SerialNumber: 序列号 - Model: 型号 - Location: 位置 - Status: 状态(正常/需要维护/维修中/停用) - CreatedAt: 创建时间 - LastMaintenanceDate: 最后维护时间 ### RepairRequest(维修请求) - Id: 请求ID - DeviceId: 设备ID - Title: 标题 - Description: 问题描述 - Priority: 优先级(低/中/高/紧急) - Status: 状态(待审批/已审批/进行中/等待配件/测试中/已完成/已拒绝/已取消) - RequestedBy: 申请人 - AssignedTo: 分配给 - WorkflowInstanceId: 工作流实例ID - EstimatedCost: 预估费用 - ActualCost: 实际费用 ## 开发说明 ### 添加新的工作流活动 1. 在 `DeviceRepairWorkflow.Api/Activities/` 目录下创建新的活动类 2. 继承 `Activity` 基类并实现相关方法 3. 在 `Program.cs` 中注册活动 ### 修改工作流定义 1. 编辑 `DeviceRepairWorkflow.Api/Workflows/DeviceRepairWorkflow.cs` 2. 使用Elsa的流畅API定义工作流步骤 3. 重启应用以加载新的工作流定义 ### 扩展前端功能 1. 在 `device-repair-frontend/src/app/components/` 下创建新组件 2. 在 `app-routing.module.ts` 中添加路由 3. 在相应的服务中添加API调用方法 ## 部署 ### 生产环境配置 1. 更新 `device-repair-frontend/src/environments/environment.production.ts` 中的API URL 2. 构建前端:`npm run build` 3. 配置.NET应用的生产环境设置 4. 使用适当的数据库(如SQL Server、PostgreSQL等)替换SQLite ## 许可证 MIT License ## 贡献 欢迎提交Issue和Pull Request来改进这个项目。