核心功能模块.md 11 KB

核心功能模块

本文档引用的文件

  • ProjectController.cs
  • WorkflowEngineController.cs
  • AppealController.cs
  • ReportController.cs
  • PerformanceItemController.cs
  • AssignPoint.razor.cs
  • ConfirmProjectPoint.razor.cs
  • WorkflowDefine.razor.cs
  • WorkflowDetail.razor.cs
  • AppealRecords.razor.cs
  • ShensuReview.razor.cs
  • StaffStaticsReport.razor.cs
  • AppealTrend.razor.cs
  • appsettings.json
  • appsettings.json

目录

  1. 绩效管理
  2. 工作流引擎
  3. 申诉处理
  4. 报表统计
  5. 模块集成与典型场景
  6. 扩展开发指导

绩效管理

绩效管理模块负责项目创建、分配和计算的核心业务流程。该模块通过ProjectController和前端AssignPoint.razor组件实现,支持用户提交工作内容、分配点数和审核绩效。

用户在AssignPoint.razor页面选择项目并填写工作内容,包括工作日期、内容描述、实际绩效和耗时等。提交时,前端调用ProjectControllerSaveProjectWorkContent接口,该接口在事务中保存工作内容记录,并验证用户是否已为同一项目和月份提交过内容,防止重复提交。

当用户提交审核时,SubmitToReview接口被调用,将工作内容状态更新为“待审核”,并指定审核人。审核人通过GetWaitingReviewProject接口获取待审核项目列表,并在ConfirmProjectPoint.razor页面进行审核。审核操作通过ReviewProjectWorkContent接口完成,该接口不仅更新审核状态,还会根据审核结果计算最终绩效点数,并触发绩效项的创建或更新。

绩效计算逻辑在PerformanceItemController中实现,通过CalItemJX方法根据案件系数(S/A/B/C/D)和基础点数计算最终绩效。系统还支持通过UpdateFieldValue接口动态更新绩效记录的字段值,如代理反馈备注、案件系数等,并自动重新计算绩效。

Section sources

  • ProjectController.cs
  • AssignPoint.razor.cs
  • ConfirmProjectPoint.razor.cs
  • PerformanceItemController.cs

工作流引擎

工作流引擎是系统的核心驱动组件,负责定义、执行和监控业务流程。它通过WorkflowEngineController提供REST API,并由WorkflowDefine.razorWorkflowDetail.razor前端组件提供可视化配置界面。

工作流由WorkflowStep(步骤)、Action(操作)和TrasferCondition(转移条件)四个核心实体构成。WorkflowDefine.razor页面允许管理员创建和管理流程模板,而WorkflowDetail.razor提供了一个图形化编辑器,支持拖拽式设计流程图。

graph TD
A[开始] --> B[初始化操作]
B --> C[步骤1]
C --> D{条件判断}
D --> |是| E[步骤2]
D --> |否| F[步骤3]
E --> G[结束]
F --> G
H[操作1] --> C
I[操作2] --> E
J[操作3] --> F

Diagram sources

  • WorkflowEngineController.cs
  • WorkflowDefine.razor.cs
  • WorkflowDetail.razor.cs

当一个操作被执行时,DoAction方法被调用,系统会验证操作定义、输入值的合法性,并保存相关数据。工作流的执行状态和实例数据存储在workflowInstance命名空间下的实体中。系统还支持将工作流导出为SVG或JPG图像,便于分享和存档。

Section sources

  • WorkflowEngineController.cs
  • WorkflowDetail.razor.cs

申诉处理

申诉处理模块实现了从提交、审核到反馈的完整闭环。用户可以通过AppealRecords.razor页面提交申诉,系统支持多种申诉类型,每种类型可定义不同的输入字段和审核流程。

提交申诉时,CreateAppeal接口被调用,创建AppealRecord记录并保存用户填写的InputFieldValue。系统会根据申诉类型动态加载相应的输入字段,并通过反射机制实例化IDoAppealObject接口的实现类来处理特定业务逻辑。提交成功后,系统会通过Quartz调度作业发送邮件通知指定的审核人。

审核人通过ReviewerAppeal接口处理申诉。审核时,系统会检查申诉记录的状态和权限,保存审核意见,并根据配置的MapObjectField将审核结果映射回原始业务对象(如绩效项)。SaveValueToMapObject方法负责处理复杂的对象映射逻辑,支持嵌套属性和条件保存。

sequenceDiagram
participant 用户 as 用户
participant 前端 as 前端页面
participant API as AppealController
participant 邮件服务 as 邮件服务
用户->>前端 : 填写申诉表单
前端->>API : 调用CreateAppeal
API->>API : 验证数据并创建申诉记录
API->>API : 保存输入字段值
API->>邮件服务 : 调用QuartzUtil.AddMailJob
邮件服务-->>审核人 : 发送审核通知邮件
审核人->>API : 调用ReviewerAppeal
API->>API : 保存审核意见并更新状态
API-->>前端 : 返回成功响应
前端-->>用户 : 显示提交成功

Diagram sources

  • AppealController.cs
  • AppealRecords.razor.cs
  • ShensuReview.razor.cs

Section sources

  • AppealController.cs
  • AppealRecords.razor.cs

报表统计

报表统计模块提供数据分析和可视化功能,支持多维度的绩效和申诉趋势分析。后端ReportController提供统一的AppealReportStaticsReport接口,前端StaffStaticsReport.razorAppealTrend.razor组件负责数据展示。

AppealReport接口支持按申诉人、申诉类型、部门等维度进行统计,并可指定时间范围。StaticsReport接口则专注于绩效统计,支持按人员、部门进行月度或年度统计。数据以ChartDatas对象返回,包含图表标题、数据系列和坐标轴标签。

前端使用Blazor.ECharts库将数据渲染为交互式图表。StaffStaticsReport.razor组件支持切换不同的统计类型(如人员每月绩效、部门每年绩效),并提供工具栏用于数据视图切换(柱状图、折线图)和图片导出。

flowchart TD
A[用户选择统计类型] --> B[前端调用ReportService]
B --> C[后端ReportController处理]
C --> D[查询数据库并分组聚合]
D --> E[构建ChartDatas对象]
E --> F[返回JSON数据]
F --> G[前端解析数据]
G --> H[使用ECharts渲染图表]
H --> I[用户查看可视化报表]

Diagram sources

  • ReportController.cs
  • StaffStaticsReport.razor.cs
  • AppealTrend.razor.cs

Section sources

  • ReportController.cs
  • StaffStaticsReport.razor.cs

模块集成与典型场景

各核心模块通过API和事件机制紧密集成。工作流引擎驱动着绩效审核和申诉处理流程。例如,当一个绩效审核任务被创建时,它实际上是一个工作流实例的启动,后续的审核、反馈步骤都由工作流引擎控制流转。

一个典型的“专案绩效审核”场景序列如下:

  1. 用户在AssignPoint.razor页面提交专案工作内容。
  2. 系统调用ProjectController.SubmitToReview,创建工作流实例并发送邮件通知。
  3. 审核人在ConfirmProjectPoint.razor页面处理任务,调用ReviewProjectWorkContent
  4. 该接口计算绩效点数,并通过PerformanceItemController更新绩效项。
  5. 如果用户对结果有异议,可在AppealRecords.razor页面提交申诉。
  6. 申诉流程启动,最终审核结果通过SaveValueToMapObject同步回绩效项。

系统的配置通过appsettings.json文件集中管理,包括数据库连接、邮件服务器、定时任务调度表达式和API端点等。前后端通过JWT进行身份验证,权限控制信息也定义在配置文件中。

Section sources

  • ProjectController.cs
  • AppealController.cs
  • appsettings.json
  • appsettings.json

扩展开发指导

为开发者提供以下扩展新功能模块的指导原则:

  1. 遵循分层架构:新功能应遵循MVC模式,控制器(Controller)处理HTTP请求,服务(Service)封装业务逻辑,实体(Entity)映射数据库表。
  2. API设计规范:使用ApiSaveResponse作为标准响应对象,包含SuccessErrorMessage字段。接口路径遵循api/[Controller]/[action]约定。
  3. 事务管理:对于涉及多个数据操作的业务,必须使用DbContext.Database.BeginTransaction()确保数据一致性。
  4. 安全与权限:在控制器上使用[Authorize]特性,并在appsettings.json中配置资源访问权限。
  5. 前端集成:新页面应基于Blazor框架开发,使用Ant Design组件库保持UI一致性,并通过IAuthService进行权限校验。
  6. 工作流集成:若新功能需要流程审批,应通过WorkflowEngineController创建和管理流程,利用其强大的条件转移和动态表单能力。

Section sources

  • ProjectController.cs
  • WorkflowEngineController.cs
  • appsettings.json