# 制度模块说明文档 ## 概述 制度模块是一个完整的企业制度管理系统,包含制度规范仓库、制度草案、个人制度提案等功能,支持投票、发布等完整的制度管理流程。 ## 功能模块 ### 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. **报表系统**: 集成报表系统,支持更丰富的统计报表