znpt-backend/doc/regulation_module_readme.md

221 lines
5.3 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# 制度模块说明文档
## 概述
制度模块是一个完整的企业制度管理系统,包含制度规范仓库、制度草案、个人制度提案等功能,支持投票、发布等完整的制度管理流程。
## 功能模块
### 1. 制度规范仓库 (RegulationEntity)
**功能描述:** 存储正式发布的制度,支持全员知晓承诺的确认
**主要功能:**
- 制度发布管理
- 制度版本控制
- 制度状态管理(草案、已发布、已归档)
- 制度生效时间管理
- 制度适用范围管理
**核心字段:**
- `regulation_id`: 制度ID
- `title`: 制度标题
- `content`: 制度内容
- `status`: 制度状态
- `publisher_id`: 发布人ID
- `publish_time`: 发布时间
- `effective_time`: 生效时间
- `expire_time`: 失效时间
### 2. 制度草案 (RegulationDraftEntity)
**功能描述:** 制度草案管理,包含投票、发布过程
**主要功能:**
- 草案创建和编辑
- 审核流程管理
- 投票系统
- 投票结果统计
- 草案状态跟踪
**核心字段:**
- `draft_id`: 草案ID
- `status`: 草案状态(草稿、审核中、已通过、已拒绝)
- `vote_status`: 投票状态
- `approve_votes`: 赞成票数
- `reject_votes`: 反对票数
- `pass_threshold`: 通过阈值
### 3. 制度提案 (RegulationProposalEntity)
**功能描述:** 个人制度提案,支持审核和转为草案
**主要功能:**
- 提案提交
- 提案审核
- 提案转为草案
**核心字段:**
- `proposal_id`: 提案ID
- `proposer_id`: 提案人ID
- `status`: 提案状态
- `reviewer_id`: 审核人ID
- `converted_draft_id`: 转为草案ID
### 4. 制度投票 (RegulationVoteEntity)
**功能描述:** 投票系统,支持对草案和提案进行投票
**主要功能:**
- 投票记录管理
- 投票选项(赞成、反对、弃权)
- 投票统计
- 防重复投票
**核心字段:**
- `vote_id`: 投票ID
- `related_id`: 关联ID草案或提案
- `related_type`: 关联类型
- `vote_option`: 投票选项
- `voter_id`: 投票人ID
### 5. 制度确认 (RegulationConfirmationEntity)
**功能描述:** 全员知晓承诺的确认系统
**主要功能:**
- 确认任务创建
- 确认状态管理
- 确认统计
- 阅读时长记录
**核心字段:**
- `confirmation_id`: 确认ID
- `regulation_id`: 制度ID
- `confirmer_id`: 确认人ID
- `status`: 确认状态
- `read_duration`: 阅读时长
## 业务流程
### 制度发布流程
1. **提案阶段**
- 个人提交制度提案
- 进行小组讨论
- 讨论结果统计
2. **草案阶段**
- 提案转为草案
- 草案审核
- 投票表决
- 投票结果统计
3. **发布阶段**
- 通过投票的草案转为正式制度
- 制度发布
- 全员确认
### 投票流程
1. **开始投票**
- 设置投票时间
- 设置通过阈值
- 通知相关人员
2. **投票进行**
- 用户参与投票
- 实时统计投票结果
- 防重复投票
3. **投票结束**
- 统计最终结果
- 判断是否通过
- 更新相关状态
### 确认流程
1. **创建确认任务**
- 批量创建确认任务
- 通知相关人员
2. **确认进行**
- 用户阅读制度
- 确认知晓
- 记录阅读时长
3. **确认统计**
- 统计确认情况
- 生成确认报告
## 技术实现
### 数据库设计
- 采用MyBatis Plus框架
- 支持软删除
- 包含审计字段(创建人、创建时间、更新人、更新时间)
- 合理的索引设计
### 服务层设计
- 采用Service接口 + 实现类的设计模式
- 支持事务管理
- 统一的异常处理
- 统一的返回结果格式
### 核心特性
- **防重复操作**: 投票和确认都支持防重复机制
- **状态管理**: 完整的状态流转管理
- **统计功能**: 支持各种统计和报表功能
- **扩展性**: 模块化设计,易于扩展
## 使用说明
### 1. 数据库初始化
执行 `doc/regulation_tables.sql` 创建相关数据表。
### 2. 服务调用示例
```java
// 发布制度
RegulationEntity regulation = new RegulationEntity();
regulation.setTitle("员工手册");
regulation.setContent("员工手册内容...");
regulationService.publishRegulation(regulation);
// 创建草案
RegulationDraftEntity draft = new RegulationDraftEntity();
draft.setTitle("新制度草案");
draftService.createDraft(draft);
// 提交提案
RegulationProposalEntity proposal = new RegulationProposalEntity();
proposal.setTitle("制度改进提案");
proposalService.submitProposal(proposal);
// 投票
RegulationVoteEntity vote = new RegulationVoteEntity();
vote.setVoteOption("APPROVE");
voteService.vote(vote);
// 确认制度
RegulationConfirmationEntity confirmation = new RegulationConfirmationEntity();
confirmationService.confirmRegulation(confirmation);
```
## 注意事项
1. **数据一致性**: 所有操作都支持事务管理,确保数据一致性
2. **权限控制**: 需要配合权限系统使用,控制用户操作权限
3. **性能优化**: 大数据量时需要考虑分页和索引优化
4. **日志记录**: 重要操作需要记录操作日志
## 扩展建议
1. **消息通知**: 集成消息系统,支持邮件、短信通知
2. **工作流**: 集成工作流引擎,支持更复杂的审批流程
3. **文档管理**: 集成文档管理系统,支持附件上传
4. **报表系统**: 集成报表系统,支持更丰富的统计报表