88e030b7
王彪总
init project
|
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
|
# 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)
```json
{
|
88e030b7
王彪总
init project
|
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
|
"wtId": "工作类型ID",
"workCycle": "工作周期类型",
"startTime": "开始时间",
"endTime": "结束时间",
"staffs": [
{
"staffId": "处理人ID",
"staffName": "处理人姓名"
}
],
"contents": [
{
"content": "工作内容"
}
],
"copyStaffs": [
{
"staffId": "抄送人ID",
"staffName": "抄送人姓名"
}
]
}
```
### 查询下一步处理人 (QueryNextDealUserCmd)
```json
{
"startUserId": "创建人ID",
"taskId": "任务ID"
}
```
## 部署配置
### 依赖关系
```xml
<dependency>
<groupId>com.java110</groupId>
<artifactId>java110-service</artifactId>
</dependency>
```
### 启动配置
- 主类:`OaServiceApplicationStart`
- 扫描包:`com.java110.oa`, `com.java110.service`, `com.java110.core`
- 服务发现:启用
- Feign客户端:启用
## 核心特性
1. **命令驱动架构** - 所有业务逻辑通过命令接口实现
2. **工作流引擎** - 支持复杂的工作流审批流程
3. **周期性任务** - 支持按日、周、月的周期性任务调度
4. **多租户支持** - 基于社区ID的多租户隔离
5. **文件管理** - 完整的工作流附件管理
6. **抄送机制** - 灵活的工作抄送和通知机制
## 开发说明
该模块采用标准的Java110微服务架构,所有业务功能通过cmd包中的命令接口对外提供服务。开发新功能时应在对应的cmd子包中创建新的命令类,并遵循现有的代码规范和事务管理机制。
|