znpt-backend/doc/regulation_module_readme.md

5.4 KiB
Raw Blame History

制度模块说明文档

概述

制度模块是一个完整的企业制度管理系统,包含制度规范仓库、制度草案、个人制度提案等功能,支持讨论、投票、发布等完整的制度管理流程。

功能模块

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
  • discussion_group_id: 讨论组ID
  • discussion_status: 讨论状态
  • support_count: 支持人数
  • oppose_count: 反对人数

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. 服务调用示例

// 发布制度
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. 报表系统: 集成报表系统,支持更丰富的统计报表