README.md
Service-OA 工作流管理系统
模块概述
Service-OA 是基于 Spring Boot + Spring Cloud 构建的微服务模块,专注于企业办公自动化(OA)工作流管理。该模块提供完整的工作流生命周期管理,包括工作池管理、任务分配、工作类型定义、周期性任务调度等功能。
技术架构
核心框架
- Spring Boot 2.x - 微服务基础框架
- Spring Cloud - 微服务治理
- Java 8 - 开发语言
- Maven - 项目构建工具
服务发现与通信
- @EnableDiscoveryClient - 服务注册与发现
- @EnableFeignClients - 声明式REST客户端
- RestTemplate - HTTP客户端(支持负载均衡)
核心注解
- @Java110CmdDiscovery - 命令接口自动发现(basePackages = "com.java110.oa.cmd")
- @Java110ListenerDiscovery - 事件监听器自动发现
模块结构
service-oa/
├── src/main/java/com/java110/oa/
│ ├── cmd/ # 命令接口核心包(主要提供接口)
│ │ ├── work/ # 工作池和工作任务管理
│ │ ├── workType/ # 工作类型管理
│ │ ├── workCycle/ # 工作周期管理
│ │ ├── workEvent/ # 工作事件管理
│ │ ├── oaWorkflow/ # OA工作流管理
│ │ └── workflowDataFile/ # 工作流数据文件管理
│ ├── api/ # API接口定义
│ ├── bmo/ # 业务模型对象
│ ├── dao/ # 数据访问层
│ ├── smo/ # 服务管理对象
│ └── OaServiceApplicationStart.java # 应用启动类
├── pom.xml
├── pom-boot.xml
└── pom-cloud.xml
核心功能模块
1. 工作池管理 (work包)
负责工作池的创建、查询、更新和删除,以及工作任务的管理。
2. 工作类型管理 (workType包)
定义和管理不同类型的工作模板和分类。
3. 工作周期管理 (workCycle包)
处理周期性任务的调度和执行规则。
4. 工作事件管理 (workEvent包)
管理工作流中的事件触发和处理。
5. OA工作流管理 (oaWorkflow包)
提供工作流引擎的核心功能,包括流程定义和任务流转。
6. 工作流数据文件管理 (workflowDataFile包)
管理工作流相关的附件和数据文件。
核心命令接口清单
work包 (21个接口)
工作池管理:
SaveWorkPoolCmd- 创建工作池UpdateWorkPoolCmd- 更新工作池DeleteWorkPoolCmd- 删除工作池ListWorkPoolCmd- 查询工作池列表ListAdminWorkPoolCmd- 管理员查询工作池
工作任务管理:
FinishWorkTaskCmd- 完成任务ListWorkTaskCmd- 查询任务列表ListAdminWorkTaskCmd- 管理员查询任务ListWorkTaskItemCmd- 查询任务项列表
工作抄送管理:
FinishWorkCopyCmd- 完成抄送ListWorkCopyCmd- 查询抄送列表ListAdminWorkCopyCmd- 管理员查询抄送
工作内容管理:
ListWorkPoolContentCmd- 查询工作内容ListWorkPoolFileCmd- 查询工作文件ListAdminWorkPoolFileCmd- 管理员查询工作文件
工作查询:
QueryStartWorkCmd- 查询发起的工作QueryTaskWorkCmd- 查询任务工作QueryCopyWorkCmd- 查询抄送工作
其他功能:
StartOrStopWorkPoolCmd- 启停工作池ListWorkDeductionCmd- 查询工作扣款
workType包 (5个接口)
SaveWorkTypeCmd- 创建工作类型UpdateWorkTypeCmd- 更新工作类型DeleteWorkTypeCmd- 删除工作类型ListWorkTypeCmd- 查询工作类型列表ListAdminWorkTypeCmd- 管理员查询工作类型
workCycle包 (5个接口)
SaveWorkCycleCmd- 创建工作周期UpdateWorkCycleCmd- 更新工作周期DeleteWorkCycleCmd- 删除工作周期ListWorkCycleCmd- 查询工作周期列表ListAdminWorkCycleCmd- 管理员查询工作周期
workEvent包 (5个接口)
SaveWorkEventCmd- 创建工作事件UpdateWorkEventCmd- 更新工作事件DeleteWorkEventCmd- 删除工作事件ListWorkEventCmd- 查询工作事件列表ListAdminWorkEventCmd- 管理员查询工作事件
oaWorkflow包 (3个接口)
QueryFirstAuditStaffCmd- 查询初审人员QueryNextDealUserCmd- 查询下一步处理人UpdateOaWorkflowFormData- 更新工作流表单数据
workflowDataFile包 (4个接口)
SaveWorkflowDataFileCmd- 保存工作流数据文件UpdateWorkflowDataFileCmd- 更新工作流数据文件DeleteWorkflowDataFileCmd- 删除工作流数据文件ListWorkflowDataFileCmd- 查询工作流数据文件列表
接口调用示例
创建工作池 (SaveWorkPoolCmd)
{
"communityId": "小区ID",
"wtId": "工作类型ID",
"workCycle": "工作周期类型",
"startTime": "开始时间",
"endTime": "结束时间",
"staffs": [
{
"staffId": "处理人ID",
"staffName": "处理人姓名"
}
],
"contents": [
{
"content": "工作内容"
}
],
"copyStaffs": [
{
"staffId": "抄送人ID",
"staffName": "抄送人姓名"
}
]
}
查询下一步处理人 (QueryNextDealUserCmd)
{
"startUserId": "创建人ID",
"taskId": "任务ID"
}
部署配置
依赖关系
<dependency>
<groupId>com.java110</groupId>
<artifactId>java110-service</artifactId>
</dependency>
启动配置
- 主类:
OaServiceApplicationStart - 扫描包:
com.java110.oa,com.java110.service,com.java110.core - 服务发现:启用
- Feign客户端:启用
核心特性
- 命令驱动架构 - 所有业务逻辑通过命令接口实现
- 工作流引擎 - 支持复杂的工作流审批流程
- 周期性任务 - 支持按日、周、月的周期性任务调度
- 多租户支持 - 基于社区ID的多租户隔离
- 文件管理 - 完整的工作流附件管理
- 抄送机制 - 灵活的工作抄送和通知机制
开发说明
该模块采用标准的Java110微服务架构,所有业务功能通过cmd包中的命令接口对外提供服务。开发新功能时应在对应的cmd子包中创建新的命令类,并遵循现有的代码规范和事务管理机制。