跳转到内容

行政管理系统

本子应用用于企业行政管理事务的一体化管理,覆盖通知公告发布与阅读回执、企业文档库、合同台账、用印审批、会议管理、规章制度发布与版本管理、证照台账七类行政业务。

  1. 通知公告:公告拟稿、直属上级与总经理并行会签、即时与定时发布、置顶与焦点新闻、栏目与分类浏览、阅读回执
  2. 企业文档:多级文件夹树、文件上传下载、文件夹人员范围权限与继承、查看下载记录
  3. 合同管理:合同台账(我方主体、经办部门、经办人、负责人、金额与生效失效)、合同变更、关联用印
  4. 用印审批:用印申请与按印章类型分流的审批、印章保管人用印与归还登记、印章种类与保管人维护
  5. 会议管理:会议预约登记、参会人员通知与确认、签到与纪要、会议日历
  6. 规章制度:制度起草、审批与定时发布、版本管理与历史版本废止、阅读回执
  7. 证照管理:个人证照与企业证照台账、有效期自动置期与到期预警
  8. 基础设置:通知栏目、通知分类、合同分类、我方主体、制度分类、人员证照类型、公司证照类型
  9. 暂不实现:统计分析(公告发布量与阅读率、用印、会议、文档查看下载等统计页面,功能暂未开发)
  10. 暂不实现:企业文档在线预览与协同编辑
  11. 暂不实现:会议室资源台账与占用冲突检测
  12. 暂不实现:合同电子签章
  • 按印章类型分流的并行审批:用印申请提交后按所选印章的印章类型(公章 / 法人章 / 财务章 / 其它章)进入对应的审批子流程,各子流程的审批层级与用印执行人不同,全部子流程通过后汇总为「已通过」
  • 发布范围与阅读回执:公告与制度均以「发布范围」解析到具体员工,发布时逐人生成阅读回执,阅读率由回执的已读条数计算
  • 文件夹权限继承:企业文档的文件夹可分别维护「普通用户」与「管理员」人员范围,勾选「继承父级权限」后自动同步父级范围,父级变更时级联更新
  • 编号自动生成:合同、规章制度编号依字段序列表自动生成,文件夹全路径随新建、重命名自动维护
  • 定时任务:公告定时发布与置顶到期、制度定时发布与废止、印章状态更新、会议前提醒、会议状态推进

解决方案: EIM 应用域: 行政管理 - OA 应用名称: 行政管理系统 - OA 估算定价: 4800 元/年

名词释义
通知公告由行政部门拟稿、经直属上级与总经理并行会签后向指定范围发布的公文信息
通告栏目公告的一级归口分类,决定公告在「按栏目查看」中的归属与展示风格
通告分类公告的二级业务分类,与栏目正交,用于「按分类查看」
阅读回执公告或制度发布后,为发布范围内每位员工生成的一条已读状态记录
发布范围公告或制度的目标接收人群,可按人员、部门、机构组合解析到具体员工
企业文档企业内部共享的文件库,以文件夹树组织,按文件夹维护可见与维护权限
合同变更对已登记合同的内容调整记录,以富文本描述变更内容
我方主体以本公司或其下属机构名义签订合同时的签约主体信息
用印申请员工因盖章、外借带出或电子签名需要而发起的申请单据
印章种类企业实际持有的印章台账,记录印章类型、状态、存放位置与保管人
印章保管人负责执行用印并保管实物印章的员工,由印章种类台账的保管人字段确定
用印方式盖章、外借带出、电子签名三种用印执行形式
印章使用记录每次用印执行后按印章逐枚生成的台账记录
会议台账会议预约、参会确认、签到与纪要的统一列表
参会确认参会人员对被预约会议的出席反馈,确认后可记录签到时间
规章制度企业内部发布的制度文件,含分类、密级、版本号与历史版本
历史版本同一制度被修订后被替代的旧版本记录,新版本生效时旧版本置为已废止
密级制度文件的保密等级,含公开、限制、秘密、机密、绝密五级
证照员工个人持有的执业或岗位类证书,以及企业持有的资质类证书
持有类型证照的归属类型,含员工、部门、公司,决定其归入个人证照或企业证照
treeView-beta
行政管理/
    通知公告
        公告列表__最新公告__按栏目查看__按分类查看__所有公告 ##公告浏览、详情阅读与阅读回执
        公告台账 ##拟稿、会签、发布、置顶与归档
    企业文档
        文档管理 ##文件夹树、文件上传下载与文件夹人员范围权限
    合同管理
        合同信息 ##合同台账、变更记录与用印关联
    用印审批
        用印台账 ##用印申请、分流审批与用印归还登记
        印章种类 ##印章台账、类型、状态与保管人
    会议管理
        会议台账 ##会议预约、参会确认、签到与纪要
        会议日历 ##月视图会议展示
    规章制度
        制度发布 ##制度起草、审批发布、版本与阅读回执
    证照管理
        个人证照 ##人员证书台账与到期预警
        企业证照 ##企业资质台账与到期预警
    基础设置
        通知栏目 ##通告栏目与展示风格维护
        通知分类 ##通告分类与展示风格维护
        合同分类 ##树形合同分类维护
        我方主体 ##公司签约主体信息维护
        制度分类 ##制度分类字典维护
        人员证照类型 ##人员证书类型树形字典
        公司证照类型 ##企业证书类型字典

公告发布流程

swimlane-beta
    subgraph 拟稿人
        A[拟稿并上传附件]
    end
    subgraph 拟稿人直属上级
        B{会签}
    end
    subgraph 总经理
        C{会签}
    end
    subgraph 系统
        A --> B
        A --> C
        B -.-> |驳回| R[退回拟稿人]
        C -.-> |驳回| R
        B -- 通过 --> D[两级会签均通过]
        C -- 通过 --> D
        D --> E{是否定时发布?}
        E -- 是 --> F[置为定时发布中]
        F --> G[到点自动发布]
        E -- 否 --> G
        G --> H[解析发布范围生成阅读回执]
        H --> I[通知发布范围人员]
    end

    classDef branch fill:#E5F6DA,stroke:#569230,color:#111;
    class R branch;

用印申请流程:申请人提交后按印章类型分流至对应子流程,全部子流程通过后由印章保管人执行用印并登记归还;流程图见「6. 审批流程」第 2 条。

用印审批节点(以公章为例):本人直属上级、总经理两级审批通过后由公章保管人执行用印;流程图见「6. 审批流程」第 3 条。

规章制度发布流程:起草人提交后经本人直属上级、总经理两级审批,通过后即时或定时发布,发布生效时原版本自动置为「已废止」;流程图见「6. 审批流程」第 7 条。

会议管理流程

flowchart LR;
    A(会议预约登记) --> B{是否通知人员}
    B -->|是| C[通知参会人员]
    B -->|否| D
    C --> D[生成参会记录]
    D --> E{参会人确认}
    E -->|确认| F[记录签到时间]
    E -->|未确认| G[保持未确认]
    F --> H[会议结束填写纪要]
    G --> H
    H -.-> I(会议台账归档)

    classDef key fill:#fef9c3,stroke:#ca8a04,color:#111
    classDef branch fill:#E5F6DA,stroke:#569230,color:#111;
    class A,H key;
    class I branch;

企业文档管理流程

flowchart LR;
    A(新建文件夹) --> B[设置普通用户与管理员范围]
    B --> C{是否继承父级权限}
    C -->|是| D[同步父级人员范围]
    C -->|否| E[自定义人员范围]
    D --> F[上传文件]
    E --> F
    F --> G{查看或下载}
    G --> H[累加次数并生成操作记录]

    classDef key fill:#fef9c3,stroke:#ca8a04,color:#111
    classDef branch fill:#E5F6DA,stroke:#569230,color:#111;
    class F key;

需求编号 RQ-OA-{MMNN}:{MM} 为模块序号(按「功能设计」菜单树顺序,两位补零),{NN} 为模块内需求序号(两位补零)。编号一经分配即锁定,不复用、不回收。

编号需求描述优先级验收标准关联对象
RQ-OA-0101公告拟稿需填写标题、栏目、分类、正文、简介、发布单位、拟稿人、优先级,标题与栏目为必填P0标题或栏目为空时「提交」不可用并提示缺失项名称tabOAAnnouncements.title、tabOAAnnouncements.column
RQ-OA-0102拟稿仅保存不提交时发布状态为「草稿中」,提交审批后置为「审批中」,审批通过置为「已发布」,驳回置「草稿中」P0新建公告仅保存后 publishStatus=0;提交后为 1;审批通过后为 3;驳回后回到 0tabOAAnnouncements.publishStatus
RQ-OA-0103公告支持定时发布,设定发布时间晚于当前时间且审批通过时由定时任务到点自动发布P0审批通过且 publishTime 在未来时 publishStatus 置为 2(定时发布中),到点自动置为 3(已发布)并生成阅读回执tabOAAnnouncements.publishTime、tabOAAnnouncements.publishStatus
RQ-OA-0104公告可置顶并设置置顶过期时间,置顶过期后自动取消置顶P1isPinned=true 且 expireTime 已过时,列表恢复普通排序且置顶标识消失tabOAAnnouncements.isPinned、tabOAAnnouncements.expireTime
RQ-OA-0105公告可标记为焦点新闻,「最新公告」页面以轮播位展示焦点新闻P1isCarousel=true 的公告出现在「最新公告」轮播区;取消勾选后该轮播项消失tabOAAnnouncements.isCarousel
RQ-OA-0106公告发布时按发布范围解析到具体员工,为每人生成一条阅读回执,默认未读P0发布范围解析出 N 人时生成 N 条 isRead=false 的回执记录,且回执员工不重复tabOAReadReceipts.isRead、tabOAReadReceipts.employees
RQ-OA-0107员工首次打开公告详情后回执置为已读并记录阅读时间,重复打开不覆盖首次时间P0首次打开后 isRead=true 且 readAt 写入当前时间;再次打开 readAt 保持不变tabOAReadReceipts.isRead、tabOAReadReceipts.readAt
RQ-OA-0108「公告列表」提供最新公告、按栏目查看、按分类查看、所有公告四个视图,按栏目与按分类视图仅展示启用状态的栏目与分类P1将某栏目 status 置为关闭后,按栏目查看不再展示该栏目及其公告tabOAAnnouncementColumn.status、tabOAAnnouncementCategory.status
RQ-OA-0109公告发布状态为「已归档」时不可编辑与删除,仅可查看与下载附件P2publishStatus=4 时编辑与删除入口不可见,附件下载可用tabOAAnnouncements.publishStatus
RQ-OA-0110公告附件承载正文附件与红头文件两类文件,一个公告仅一个附件类目P1上传 2 个不同格式文件后均保存于同一附件字段,并可分别下载tabOAAnnouncements.files
编号需求描述优先级验收标准关联对象
RQ-OA-0201文件夹支持多级树形结构,新建子文件夹时自动维护全路径与层级P0在 /A 下新建文件夹 B 后,B.fullPath 为「/A/B」且 B.level 为父级 level+1tabOADMSFolder.fullPath、tabOADMSFolder.level
RQ-OA-0202同一父级下文件夹名称不得重复,重名时服务端拒绝保存P0同一父级已存在同名文件夹时新建或重命名被拒绝并提示名称重复tabOADMSFolder.name
RQ-OA-0203文件夹可分别设置「普通用户」与「管理员」人员范围,普通用户仅有查看下载权限,管理员具备新增、重命名、删除、移动权限P0用户不在该文件夹普通用户与管理员范围内时,该文件夹在目录树中不可见tabOADMSFolder.members、tabOADMSFolder.admins
RQ-OA-0204文件夹可勾选「继承父级权限」,勾选后本文件夹人员范围与父级保持一致,父级变更时级联同步P0勾选继承并保存后本文件夹普通用户与管理员范围等于父级范围;父级范围变更后本文件夹随之更新tabOADMSFolder.inheritPermissions
RQ-OA-0205文件夹名称变更时同步更新自身及全部下级文件夹的全路径P0重命名含两级子文件夹的父文件夹后,父及两级子文件夹的 fullPath 前缀全部同步更新tabOADMSFolder.fullPath
RQ-OA-0206文件上传需指定所属文件夹,并累计记录查看总数与下载总数P1某文件被查看 3 次、下载 2 次后 viewCount=3、downloadCount=2tabOADMSFiles.viewCount、tabOADMSFiles.downloadCount
RQ-OA-0207每次查看与下载生成一条操作记录,记录操作人、操作类型与时间P1同一用户先查看后下载同一文件后生成 2 条记录,actionType 分别为查看与下载tabOADMSViewDownload.actionType
RQ-OA-0208文件支持设置标签并按标签检索P2为文件设置标签「2026年度」后按该标签检索,返回结果仅含设置该标签的文件tabOADMSFiles.tags
RQ-OA-0209无文件夹管理权限的用户对该文件夹及其文件的新增、重命名、删除、移动请求被服务端拒绝P0普通用户对无管理权限的文件夹执行重命名,服务端返回无权限且数据未变更tabOADMSFolder.admins
编号需求描述优先级验收标准关联对象
RQ-OA-0301合同登记需填写标题、分类、类型、我方主体、经办部门、经办人、负责人、合同金额、签订日期、生效日期、失效日期、外部编号P0经办人、我方主体、经办部门、负责人、签订日期任一为空时保存被拒绝并提示缺失项名称tabOAContracts.handler、tabOAContracts.ourEntity、tabOAContracts.handlingDepartment、tabOAContracts.responsiblePerson、tabOAContracts.signedDate
RQ-OA-0302合同内部编号按「合同分类编码-签订日期(yyyyMMdd)-四位流水」自动生成且全局唯一P0分类编码 HX、签订日期 2026-10-10 时首个编号为 HX-20261010-0001,同日同类第二份为 HX-20261010-0002tabOAContracts.number、tabOAContractCategory.code
RQ-OA-0303合同状态按洽谈、审批/签字、实施、决算、清欠/售后、完成、终止单向流转,终止后不可再推进P0状态为「终止」时状态选择项仅保留「终止」,其余状态不可选tabOAContracts.status
RQ-OA-0304失效日期早于生效日期时保存被拒绝P1expiryDate < effectiveDate 时保存失败并提示日期区间非法tabOAContracts.expiryDate、tabOAContracts.effectiveDate
RQ-OA-0305合同可关联多条合同变更记录,变更内容以富文本记录,按创建时间倒序展示P1为同一合同新增 2 条变更后,合同详情「合同变更」页签展示 2 条且按创建时间倒序tabOAContractAmendment.contract
RQ-OA-0306合同可发起用印申请,一条合同可关联多条用印记录并在合同详情反查P1从合同详情发起用印申请后,申请单的合同字段指向该合同,合同详情可查看该用印记录tabOASealApplications.contract
RQ-OA-0307合同附件承载合同正本与补充协议,一份合同仅一个附件类目P1上传正本与补充协议各 1 份后均保存于同一附件字段并可分别下载tabOAContracts.files
RQ-OA-0308合同分类支持树形维护,每个分类归属一个合同类型,合同类型为必填P1新增二级分类未选合同类型时保存被拒绝并提示合同类型必填tabOAContractCategory.contractType
RQ-OA-0309合同列表支持按分类、类型、状态、经办部门、签订日期区间组合筛选P1筛选条件为「状态=实施」且「签订日期在 2026 年内」时,返回结果同时满足两个条件且条数与筛选前交集一致tabOAContracts.status、tabOAContracts.signedDate、tabOAContracts.handlingDepartment
RQ-OA-0410我方主体记录名称、简称、机构代码、营业范围并关联组织机构,启用后可在合同登记中选择P2新建我方主体并启用后,合同登记的我方主体下拉中可选择到该项tabOAContractSubject.name、tabOAContractSubject.organization
编号需求描述优先级验收标准关联对象
RQ-OA-0401用印申请需填写申请人、申请人所属部门、用印事由、印章、用印方式、用印份数、用印时间、预计归还时间,用印事由、印章、用印方式为必填P0用印事由、印章、用印方式任一为空时「提交」不可用并提示缺失项名称tabOASealApplications.reason、tabOASealApplications.stamps、tabOASealApplications.sealingMethod
RQ-OA-0402用印申请按所选印章的印章类型进入对应审批子流程,各子流程相互独立P0选择印章类型为「公章」的印章提交后,实例仅流转至公章申请子流程,不产生其他三个子流程实例tabOASealApplications.stamps、tabOAStamps.sealType
RQ-OA-0403用印审批通过后由印章保管人执行「用印」确认,未执行用印确认时不可登记实际归还时间P0审批已通过但未执行用印确认时「登记归还」不可用;执行用印确认后可填写 actualReturnTimetabOASealApplications.actualReturnTime
RQ-OA-0404用印申请审批状态按草稿、已提交、处理中、已通过、已否决流转,新建默认「草稿」P0新建保存后 approvalStatus=0(草稿),提交后为 2(已提交),审批中为 3,通过为 4,否决为 -1tabOASealApplications.approvalStatus
RQ-OA-0405印章被使用后按所选印章逐枚生成印章使用记录,记录印章与对应申请P0一次用印申请选择 2 枚印章并通过审批后生成 2 条印章使用记录,分别指向两枚印章tabOASealUsageRecord.stamps、tabOASealUsageRecord.applications
RQ-OA-0406印章种类记录名称、印章类型、状态、存放位置、保管人、启用日期、停用日期、是否长期有效P0未勾选「是否长期有效」且停用日期为空时保存被拒绝并提示停用日期必填tabOAStamps.isPermanent、tabOAStamps.expiryDate
RQ-OA-0407印章状态为启用、停用、作废、遗失,非「启用」状态的印章不可被新用印申请选择P0将印章状态置为「停用」后,用印申请的印章下拉中不出现该印章tabOAStamps.status
RQ-OA-0408印章停用日期到期且未标记长期有效时,定时任务自动将状态置为「停用」P1expiryDate 已过且 isPermanent=false 且 status=0 时,定时任务将其 status 置为 1(停用)tabOAStamps.status、tabOAStamps.expiryDate
RQ-OA-0409印章保管人变更后,新提交用印申请的用印执行节点自动指向新保管人P1修改印章保管人后新提交一份用印申请,其用印执行节点审批人变更为新保管人tabOAStamps.guardian
RQ-OA-0410用印申请可填写执行说明并以附件承载待用印文件,一份申请仅一个附件类目P1上传 3 个待用印文件后均保存于同一附件字段,申请人、审批人与印章保管人均可下载tabOASealApplications.files
编号需求描述优先级验收标准关联对象
RQ-OA-0501会议预约需填写主题、地点、内容、预约人、参会人员、开始时间、结束时间、是否通知人员,主题与开始时间为必填P0主题或开始时间为空时保存被拒绝并提示缺失项名称tabOAMeeting.title、tabOAMeeting.startTime
RQ-OA-0502结束时间早于开始时间时保存被拒绝P1endTime < startTime 时保存失败并提示时间区间非法tabOAMeeting.endTime、tabOAMeeting.startTime
RQ-OA-0503会议保存后按参会人员范围解析到具体员工,为每人生成一条会议记录,默认未确认参会P0参会人员范围解析出 N 人时生成 N 条 isAttendanceConfirmed=false 的会议记录,员工不重复tabOAMeetingEmployee.isAttendanceConfirmed
RQ-OA-0504参会人员确认参会后记录确认状态并可记录签到时间P0参会人点击「确认参会」后 isAttendanceConfirmed=true,签到后 checkinTime 写入当前时间tabOAMeetingEmployee.isAttendanceConfirmed、tabOAMeetingEmployee.checkinTime
RQ-OA-0505编辑会议新增参会人员时仅为新增人员补建会议记录,不重复创建或删除既有人员记录P0原 3 人参会、编辑后共 5 人时仅新增 2 条会议记录,原 3 条记录及其确认状态保持不变tabOAMeetingEmployee
RQ-OA-0506会议取消时状态置为「已取消」,删除全部参会记录并通知参会人员P0对状态为「未开始」的会议执行取消后 status=3,该会议下的会议记录被清空,参会人员收到通知tabOAMeeting.status
RQ-OA-0507会议状态按未开始、进行中、已结束、已取消流转,开始时间到达自动置「进行中」,结束时间到达自动置「已结束」P1startTime 已到且 endTime 未到时 status 由 0 自动变为 1;endTime 已过后自动变为 2tabOAMeeting.status
RQ-OA-0508会议纪要支持富文本记录,会议文件承载议程与纪要附件,一场会议仅一个附件类目P1填写纪要并上传 2 个附件后,纪要内容与附件在会议详情均可查看下载tabOAMeeting.content、tabOAMeeting.meetingFiles
RQ-OA-0509「会议日历」以月视图展示当月会议,色块颜色与会议状态一致,点击可进入会议详情P1切换至会议日历月视图后当月每场会议渲染一个色块,色块颜色与 status 对应且点击后打开对应会议详情tabOAMeeting.status、tabOAMeeting.startTime
RQ-OA-0510「是否通知人员」勾选后会议登记时向参会人员发送通知,未勾选时不发送P0isNotifyUser=true 保存会议后参会人员收到通知;isNotifyUser=false 保存后无任何通知tabOAMeeting.isNotifyUser
编号需求描述优先级验收标准关联对象
RQ-OA-0601制度起草需填写标题、分类、密级、版本号、起草人、发布单位、正文、说明、是否长期有效,标题、分类、版本号为必填P0标题、分类、版本号任一为空时保存被拒绝并提示缺失项名称tabOARegulations.title、tabOARegulations.category、tabOARegulations.version
RQ-OA-0602同一制度下版本号唯一,重复版本号保存被拒绝P0同一制度已存在版本号 V1.1 时再次保存 V1.1 被拒绝并提示版本号重复tabOARegulations.version
RQ-OA-0603制度编号按「分类编码-年份-四位流水」自动生成P0分类为「人事制度(RS)」、年份 2026 时首个编号为 RS-2026-0001,同年同类第二份为 RS-2026-0002tabOARegulations.code、tabOARegulations.category
RQ-OA-0604制度状态按草稿、审批中、待生效、已生效、已废止流转,新建默认「草稿」P0新建制度保存后 regStatus=0(草稿),提交后为 1(审批中),审批通过且定时发布时为 2(待生效)tabOARegulations.regStatus
RQ-OA-0605制度可设置定时发布,生效日期到达且审批已通过时自动置为「已生效」并向发布范围人员发送通知P0生效日期晚于当前时间且审批已通过时状态为「待生效」,到点自动变为「已生效」并触发通知tabOARegulations.effectiveDate、tabOARegulations.regStatus
RQ-OA-0606制度修订生成新版本记录并指向原制度,新版本生效时原版本状态自动置为「已废止」P0V1.1 修订为 V1.2 并发布生效后,V1.2 的 regulations 指向 V1.1,V1.1 的 regStatus 变为 4(已废止)tabOARegulations.regulations、tabOARegulations.regStatus
RQ-OA-0607制度发布时按发布范围解析到具体员工生成阅读回执,员工阅读后回执置为已读并记录阅读时间P0发布范围解析出 N 人时生成 N 条 isRead=false 的回执,阅读后置 true 且 readAt 写入当前时间不被覆盖tabOARegReadReceipts.isRead、tabOARegReadReceipts.readAt
RQ-OA-0608制度累计阅读次数按该制度阅读回执的已读条数汇总P1某制度回执已读 8 条时 totalReadCount=8,新增一条已读回执后变为 9tabOARegulations.totalReadCount、tabOARegReadReceipts.isRead
RQ-OA-0609密级为「机密」或「绝密」的制度,发布范围不得包含管理人员以外的人员P0密级为「绝密」且发布范围包含作业人员时发布被拒绝并提示密级与发布范围冲突tabOARegulations.confidentiality、tabOARegulations.publishScope
RQ-OA-0610废止日期到达且未标记长期有效时,定时任务自动将制度状态置为「已废止」P1expiryDate 已过且 isPermanent=false 时定时任务将 regStatus 置为 4(已废止)tabOARegulations.expiryDate、tabOARegulations.regStatus
RQ-OA-0611制度附件承载制度正文与红头文件,一份制度仅一个附件类目P2上传正文与红头文件各 1 份后均保存于同一附件字段并可分别下载tabOARegulations.files
编号需求描述优先级验收标准关联对象
RQ-OA-0701证照按持有类型分流,持有类型为「员工」的记录仅出现在个人证照列表,为「公司」「部门」的记录仅出现在企业证照列表P0新增持有类型为「员工」的证照后,仅个人证照列表出现该记录;改为「公司」后仅企业证照列表出现tabPersonCertificate.holderType
RQ-OA-0702个人证照需填写证书名称、证书编号、人员证书类型、持证员工、发证单位、发证日期、复审日期、有效期,证书名称与持证员工为必填P0证书名称或持证员工为空时保存被拒绝并提示缺失项名称tabPersonCertificate.name、tabPersonCertificate.employees
RQ-OA-0703企业证照需填写证书名称、证书编号、企业证书类型、持证组织、有效期,证书编号在企业证照范围内唯一P0录入已存在的证书编号时保存被拒绝并提示编号重复tabPersonCertificate.number、tabPersonCertificate.category
RQ-OA-0704证书状态含有效、注册中、过期、暂扣、吊销五种;有效期已过且状态为「有效」时由定时任务自动置为「过期」P0certExpireDate 已过且 status=01(有效)时定时任务将 status 置为 21(过期)tabPersonCertificate.certExpireDate、tabPersonCertificate.status
RQ-OA-0705证照有效期到期前 90d、30d、7d 分别触发到期预警,提醒持证人与行政专员P0距 certExpireDate 剩余 30 天时触发一次 30d 预警,持证人与行政专员各收到一条提醒,同一节点不重复触发tabPersonCertificate.certExpireDate
RQ-OA-0706证书「是否长期有效」勾选后有效期不可填写并清空已填值P1勾选 isPermanent 后有效期输入框禁用且保存后 certExpireDate 为空值tabPersonCertificate.isPermanent、tabPersonCertificate.certExpireDate
RQ-OA-0707复审日期早于发证日期时保存被拒绝P1dateReview < dateLssuance 时保存失败并提示有效期与复审日期区间非法tabPersonCertificate.dateReview、tabPersonCertificate.dateLssuance
RQ-OA-0708个人证照支持按模板批量导入与导出,导入时逐行校验必填项P2导入含 1 条缺失持证员工的 10 行模板后,9 行导入成功、1 行失败并返回失败行号与原因tabPersonCertificate.employees、tabPersonCertificate.name
RQ-OA-0709证照附件承载证书扫描件,一条证照仅一个附件类目P2上传 2 张扫描件后均保存于同一附件字段并可分别下载tabPersonCertificate.files
编号需求描述优先级验收标准关联对象
RQ-OA-0801通告栏目维护名称、展示风格、启用状态与备注,栏目启用状态决定其在公告拟稿与「按栏目查看」中的可选性P0将栏目 status 置为关闭后,公告拟稿的栏目下拉不出现该栏目,按栏目查看不展示该栏目tabOAAnnouncementColumn.status、tabOAAnnouncementColumn.displayStyle
RQ-OA-0802通告分类维护名称、展示风格与启用状态,展示风格可选项为列表、网格、时间线、图文P1将分类展示风格设为「网格」后,按分类查看该分类时以网格布局渲染tabOAAnnouncementCategory.displayStyle
RQ-OA-0803合同分类维护树形结构,含名称、编码、合同类型、是否启用与备注,编码在同级内唯一P0同级新增重复编码时保存被拒绝并提示编码重复tabOAContractCategory.code、tabOAContractCategory.contractType
RQ-OA-0804我方主体维护名称、简称、机构代码、营业范围并关联组织机构,机构列只可选取本公司组织机构P1机构代码填报非本公司组织机构代码时保存被拒绝并提示机构代码不匹配tabOAContractSubject.code、tabOAContractSubject.organization
RQ-OA-0805制度分类以数据字典维护,默认含人事制度、行政制度、财务制度,支持扩展P1在制度分类字典中新增分类项后,制度起草的分类下拉出现该新增项tabOARegulations.category
RQ-OA-0806证书类型以单一树形字典「证书类型(CertificateType)」维护,一级为注册执业证书、职称证书、施工现场「八大员」岗位证、安全类专项证书、特种作业操作证、其他六类,各级下挂子项P1录入人员证照时可两级选择,例如选择「特种作业操作证/高压电工证」后保存值等于二级项编码tabPersonCertificate.type
RQ-OA-0807公司证照类型字典默认含营业执照、企业荣誉、管理体系认证、其他,其中「其他」为兜底项P1录入企业证照时类型下拉包含上述四项,选择「其他」可正常保存tabPersonCertificate.category
RQ-OA-0808基础设置各项仅行政专员及以上角色可维护,普通员工不可见入口且接口拒绝P0普通员工账号访问通告栏目维护时菜单不可见且接口返回无权限tabOAAnnouncementColumn
erDiagram
    direction LR
    subgraph **行政管理**
        subgraph **通知公告**
            AC[tabOAAnnouncementColumn通告栏目] {
                long id "ID"
                string name "名称"
                kv displayStyle "展示风格"
                bool status "启用"
                string note "备注"

                date createdAt "创建日期"
                ref createdBy "创建人"
                date updatedAt "最后修改日期"
                ref updatedBy "最后修改人"
            }
            AG[tabOAAnnouncementCategory通告分类] {
                long id "ID"
                string name "名称"
                kv displayStyle "展示风格"
                string displaySettings "风格详情"
                bool status "启用"
                string note "备注"

                date createdAt "创建日期"
                ref createdBy "创建人"
                date updatedAt "最后修改日期"
                ref updatedBy "最后修改人"
            }
            A[tabOAAnnouncements通知公告] {
                long id "ID"
                string title "标题"
                md content "公告正文"
                md introduction "简介"
                ref column "栏目"
                ref category "分类"
                ref publishUnit "发布单位"
                ref drafter "拟稿人"
                ref reviewer "会签人(本人直属上级)"
                ref approver "会签人(总经理)"
                refs publishScope "发布范围"
                kv priority "优先级"
                kv publishStatus "发布状态"
                kv approvalStatus "审批状态"
                bool isCarousel "焦点新闻"
                bool isPinned "是否置顶"
                date publishTime "发布时间"
                date expireTime "置顶过期时间"
                string url "原文链接"
                file files "附件"
                refs readReceipts "通告阅读回执"

                date createdAt "创建日期"
                ref createdBy "创建人"
                date updatedAt "最后修改日期"
                ref updatedBy "最后修改人"

                ref createdOrg "所属机构"
                ref createdDept "所属部门"
            }
            AR[tabOAReadReceipts通告阅读回执] {
                long id "ID"
                ref announcements "通知公告"
                ref employees "员工"
                bool isRead "是否已读"
                date readAt "阅读时间"

                date createdAt "创建日期"
                ref createdBy "创建人"

                ref createdOrg "所属机构"
                ref createdDept "所属部门"
            }
        end
        subgraph **企业文档**
            F[tabOADMSFolder文件夹] {
                long id "ID"
                string name "文件夹名称"
                ref parent "上级文件夹"
                string fullPath "全路径"
                int level "层级"
                refs members "普通用户"
                refs admins "管理员"
                bool inheritPermissions "继承父级权限"
                refs files "文件"

                date createdAt "创建日期"
                ref createdBy "创建人"
                date updatedAt "最后修改日期"
                ref updatedBy "最后修改人"
            }
            DF[tabOADMSFiles文件] {
                long id "ID"
                string title "标题"
                ref folder "所属文件夹"
                string tags "标签"
                int viewCount "查看总数"
                int downloadCount "下载总数"
                file files "文件"
                refs viewDownload "查看下载"

                date createdAt "创建日期"
                ref createdBy "创建人"
                date updatedAt "最后修改日期"
                ref updatedBy "最后修改人"
            }
            VD[tabOADMSViewDownload文档查看下载] {
                long id "ID"
                ref file "文件"
                string actionType "操作类型"

                date createdAt "创建日期"
                ref createdBy "创建人"
            }
        end
        subgraph **合同管理**
            CC[tabOAContractCategory合同分类] {
                long id "ID"
                string name "名称"
                string code "编码"
                kv contractType "合同类型"
                ref parent "上级分类"
                bool isDone "是否启用"
                string note "备注"

                date createdAt "创建日期"
                ref createdBy "创建人"
                date updatedAt "最后修改日期"
                ref updatedBy "最后修改人"
            }
            CS[tabOAContractSubject我方主体] {
                long id "ID"
                string name "名称"
                string shortName "简称"
                string code "机构代码"
                string scope "营业范围"
                string note "备注"
                ref organization "组织机构"
                refs contract "合同"

                date createdAt "创建日期"
                ref createdBy "创建人"
                date updatedAt "最后修改日期"
                ref updatedBy "最后修改人"
            }
            C[tabOAContracts合同] {
                long id "ID"
                string number "内部编号"
                string title "标题"
                md description "描述"
                ref category "分类"
                kv type "类型"
                ref ourEntity "我方主体"
                ref handlingDepartment "经办部门"
                ref handler "经办人"
                ref responsiblePerson "负责人"
                decimal contractAmount "合同金额"
                string externalNumber "外部编号"
                date signedDate "签订日期"
                date effectiveDate "生效日期"
                date expiryDate "失效日期"
                kv status "状态"
                kv approvalStatus "审批状态"
                file files "附件"
                refs sealApplications "用印申请"
                refs contractAmendment "合同变更"

                date createdAt "创建日期"
                ref createdBy "创建人"
                date updatedAt "最后修改日期"
                ref updatedBy "最后修改人"

                ref createdOrg "所属机构"
                ref createdDept "所属部门"
            }
            CA[tabOAContractAmendment合同变更] {
                long id "ID"
                ref contract "合同"
                md content "变更内容"
                kv approvalStatus "审批状态"

                date createdAt "创建日期"
                ref createdBy "创建人"
                date updatedAt "最后修改日期"
                ref updatedBy "最后修改人"

                ref createdOrg "所属机构"
                ref createdDept "所属部门"
            }
        end
        subgraph **用印审批**
            S[tabOAStamps印章种类] {
                long id "ID"
                string name "名称"
                kv sealType "印章类型"
                kv status "状态"
                md remark "用途"
                string location "存放位置"
                ref guardian "保管人"
                bool isPermanent "是否长期有效"
                date effectiveDate "启用日期"
                date expiryDate "停用日期"
                file files "附件"

                date createdAt "创建日期"
                ref createdBy "创建人"
                date updatedAt "最后修改日期"
                ref updatedBy "最后修改人"

                ref createdOrg "所属机构"
                ref createdDept "所属部门"
            }
            SA[tabOASealApplications用印申请] {
                long id "ID"
                ref applicant "申请人"
                ref department "申请人所属部门"
                md reason "用印事由"
                refs stamps "印章"
                kv sealingMethod "用印方式"
                int sealCount "用印份数"
                date executionTime "用印时间"
                date expectedReturnTime "预计归还时间"
                date actualReturnTime "实际归还时间"
                ref contract "合同"
                md remark "执行说明"
                kv approvalStatus "审批状态"
                file files "附件"
                refs sealUsageRecord "印章使用记录"

                date createdAt "创建日期"
                ref createdBy "创建人"
                date updatedAt "最后修改日期"
                ref updatedBy "最后修改人"

                ref createdOrg "所属机构"
                ref createdDept "所属部门"
            }
            SU[tabOASealUsageRecord印章使用记录] {
                long id "ID"
                ref stamps "印章"
                ref applications "印章台账"
                kv approvalStatus "审批状态"

                date createdAt "创建日期"
                ref createdBy "创建人"
            }
        end
        subgraph **会议与制度**
            M[tabOAMeeting会议] {
                long id "ID"
                string title "主题"
                string location "地点"
                md description "内容"
                md content "纪要内容"
                ref reserver "预约人"
                refs attendees "参会人员"
                bool isNotifyUser "是否通知人员"
                date startTime "开始时间"
                date endTime "结束时间"
                kv status "状态"
                kv approvalStatus "审批状态"
                file meetingFiles "附件:会议文件"
                refs meetingEmployee "会议记录"

                date createdAt "创建日期"
                ref createdBy "创建人"
                date updatedAt "最后修改日期"
                ref updatedBy "最后修改人"
            }
            ME[tabOAMeetingEmployee会议记录] {
                long id "ID"
                ref meeting "会议"
                ref employees "员工"
                bool isAttendanceConfirmed "是否确认参会"
                date checkinTime "签到时间"
            }
            R[tabOARegulations规章制度] {
                long id "ID"
                string code "编号"
                string title "标题"
                kv category "分类"
                kv confidentiality "密级"
                string version "版本号"
                md content "内容"
                md mark "说明"
                string department "发布单位"
                ref drafter "起草人"
                refs publishScope "发布范围"
                int totalReadCount "总阅读次数"
                kv regStatus "当前状态"
                kv approvalStatus "审批状态"
                bool isPermanent "是否长期有效"
                date publishedAt "发布时间"
                date effectiveDate "生效日期"
                date expiryDate "废止日期"
                ref regulations "历史版本"
                file files "附件"
                refs readReceipts "制度阅读回执"

                date createdAt "创建日期"
                ref createdBy "创建人"
                date updatedAt "最后修改日期"
                ref updatedBy "最后修改人"

                ref createdOrg "所属机构"
                ref createdDept "所属部门"
            }
            RR[tabOARegReadReceipts制度阅读回执] {
                long id "ID"
                ref regulations "规章制度"
                ref employee "员工"
                bool isRead "是否已阅读"
                date readAt "阅读时间"

                date createdAt "创建日期"
                ref createdBy "创建人"
            }
        end
        subgraph **证照管理**
            PC[tabPersonCertificate证书信息] {
                long id "ID"
                string name "证书名称"
                string number "证书编号"
                kv type "人员证书类型"
                kv category "企业证书类型"
                kv status "证书状态"
                kv holderType "持有类型"
                ref employees "员工"
                ref holderOrganization "持证组织"
                string licenseUnit "发证单位"
                date dateLssuance "发证日期"
                date dateReview "复审日期"
                date certExpireDate "有效期"
                bool isPermanent "是否长期有效"
                md remark "说明"
                file files "附件"

                date createdAt "创建日期"
                ref createdBy "创建人"
                date updatedAt "最后修改日期"
                ref updatedBy "最后修改人"

                ref createdOrg "所属机构"
                ref createdDept "所属部门"
            }
        end
    end
    E[employees员工] {
        long id "ID"
        string name "姓名"
    }
    O[organizations组织机构] {
        long id "ID"
        string name "名称"
    }
    AC ||--o{ A : ""
    AG ||--o{ A : ""
    A ||--o{ AR : ""
    F ||--o{ F : ""
    F ||--o{ DF : ""
    DF ||--o{ VD : ""
    CC ||--o{ C : ""
    CS ||--o{ C : ""
    C ||--o{ CA : ""
    C ||--o{ SA : ""
    S }o--o{ SA : ""
    SA ||--o{ SU : ""
    S ||--o{ SU : ""
    M ||--o{ ME : ""
    R ||--o{ RR : ""
    R ||--o{ R : "历史版本"
    E ||..o{ A : "拟稿人/会签人"
    O ||..o{ A : "发布单位"
    E ||..o{ C : "经办人/负责人"
    E ||..o{ SA : "申请人"
    E ||..o{ M : "预约人"
    E ||..o{ PC : "持证员工"
  • 行政专员为角色(OA),由脚手架维护
  • 普通员工为角色(Member),由脚手架维护
  • 总经理为角色(GM),由脚手架维护
  • 公司法人(corporation)、财务负责人(financeManager)、董事长/书记(chairman)为角色,由脚手架维护
  • 印章保管人不单独定义角色,由「印章种类.保管人」字段动态确定,随印章种类台账维护
功能行政专员普通员工总经理公司法人财务负责人
公告列表✓查看、阅读查看查看查看
公告台账添加、编辑、删除、发布、归档添加(限本人拟稿)、编辑(限本人草稿)———
公告审批拟稿、会签拟稿、提交审批会签——
文档管理(普通用户范围)✓查看、下载、上传查看、下载查看、下载查看、下载
文档管理(管理权限)添加、编辑、删除、移动文件夹限所在文件夹限所在文件夹限所在文件夹限所在文件夹
合同信息添加、编辑、删除、查看(限所在机构)查看(限所在机构)查看查看查看
用印台账添加、编辑、代提交、查看添加、编辑、提交(限本人)、查看审批、查看审批(法人章)、查看审批(财务章)、查看
印章种类添加、编辑、查看查看查看查看查看
会议台账添加、编辑、删除、查看添加、编辑(限本人预约)、确认参会、查看确认参会、查看确认参会、查看确认参会、查看
会议日历✓✓✓✓✓
制度发布添加、编辑、发布、废止查看、阅读审批、查看查看查看
个人证照✓查看(限本人)查看(限本人)查看(限本人)查看(限本人)
企业证照添加、编辑、删除、查看查看查看查看查看
基础设置添加、编辑、删除、查看————
  1. 通知公告发布流程:拟稿人提交后,本人直属上级与总经理并行会签,两人均通过后即时或定时发布;任一人驳回即退回拟稿人,发布状态回到「草稿中」
swimlane-beta
    subgraph 拟稿人
        A[填写公告并提交]
    end
    subgraph 本人直属上级
        B{会签}
    end
    subgraph 总经理
        C{会签}
    end
    subgraph 系统
        A --> B
        A --> C
        B -.-> |驳回| R[退回拟稿人]
        C -.-> |驳回| R
        B -- 通过 --> D[两级会签均通过]
        C -- 通过 --> D
        D --> E[置为已发布或定时发布中]
        E --> F[生成阅读回执并通知]
    end

    classDef branch fill:#E5F6DA,stroke:#569230,color:#111;
    class R branch;
  1. 用印申请流程:按所选印章的印章类型并行分发至对应子流程,全部子流程通过后由印章保管人执行用印
flowchart LR;
    A[用印申请提交] --> B{印章类型判断}
    B -->|财务章| C1[财务章申请流程]
    B -->|法人章| C2[法人章申请流程]
    B -->|公章| C3[公章申请流程]
    B -->|其它章| C4[其它章申请流程]
    C1 -->|通过| D[置为已通过并通知]
    C2 -->|通过| D
    C3 -->|通过| D
    C4 -->|通过| D
    D --> E[印章保管人执行用印]
    E --> F[生成印章使用记录]

    classDef key fill:#fef9c3,stroke:#ca8a04,color:#111
    classDef branch fill:#E5F6DA,stroke:#569230,color:#111;
    class B,E key;
    class F branch;
  1. 公章申请子流程:本人直属上级审批通过后由总经理审批,通过后流转至公章保管人执行用印;任一级否决置为「已否决」并通知申请人
swimlane-beta
    subgraph 申请人
        A[提交用印申请]
    end
    subgraph 本人直属上级
        B{审批}
    end
    subgraph 总经理
        C{审批}
    end
    subgraph 公章保管人
        D[执行用印]
    end
    subgraph 系统
        A --> B
        B -.-> |否决| X[置为已否决并通知申请人]
        B -- 通过 --> E[置为审批中]
        E --> C
        C -.-> |否决| X
        C -- 通过 --> D
        D --> Y[置为已通过]
        Y --> Z[发送站内信与企业微信通知]
    end

    classDef branch fill:#E5F6DA,stroke:#569230,color:#111;
    class X branch;
  1. 法人章申请子流程:本人直属上级审批通过后由公司法人审批,通过后流转至法人章保管人执行用印
  2. 财务章申请子流程:本人直属上级审批通过后由财务章保管人的直属上级审批,通过后流转至财务章保管人执行用印
  3. 其它章申请子流程:本人直属上级审批通过后由总经理审批,通过后流转至其它章保管人执行用印
  4. 规章制度发布流程:起草人提交后经本人直属上级、总经理两级审批,通过后即时或定时发布;发布生效时原版本自动置为「已废止」并向发布范围生成阅读回执
swimlane-beta
    subgraph 起草人
        A[起草制度并提交]
    end
    subgraph 本人直属上级
        B{一级审批}
    end
    subgraph 总经理
        C{二级审批}
    end
    subgraph 系统
        A --> B
        B -.-> |否决| X[置为草稿并保留审批意见]
        B -- 通过 --> C
        C -.-> |否决| X
        C -- 通过 --> D{是否定时发布?}
        D -- 是 --> E[置为待生效]
        E --> F[到点置为已生效]
        D -- 否 --> F
        F --> G[历史版本置为已废止]
        G --> H[生成阅读回执并通知发布范围]
    end

    classDef branch fill:#E5F6DA,stroke:#569230,color:#111;
    class X branch;
  1. 合同、合同变更、会议、证照、企业文档:> 无
    • 说明:上述表保留 approvalStatus 字段但空置,不启用线上审批。合同经确认为线下审批,系统仅做台账登记与附件管理;如需启用请另行提出。
  1. 通用约定:
    1. 区分两类动作:提醒 = 发送至指定个人的系统消息;通知 = 发送至群聊的消息
  2. 事件触发(实时):
    1. 用印申请提交时,提醒该印章的保管人:用印申请待审批
    2. 用印申请审批通过时,提醒申请人:用印申请已通过,请到保管人处用印
    3. 用印申请被否决时,提醒申请人:用印申请已否决及否决意见
    4. 印章保管人执行用印后,提醒申请人:用印已完成,请确认归还
    5. 会议登记且「是否通知人员」勾选时,提醒参会人员:会议主题、时间与地点
    6. 会议取消时,提醒全部参会人员:会议已取消
    7. 会议开始前提醒时,通知行政群:即将开始的会议清单
    8. 公告提交会签时,提醒会签人(本人直属上级与总经理):公告待会签
    9. 公告会签被驳回时,提醒拟稿人:驳回意见
    10. 公告发布时,提醒发布范围内人员:公告标题与链接
    11. 制度发布生效时,提醒发布范围内人员:制度标题、版本号与阅读链接
    12. 制度审批被否决时,提醒起草人:否决意见
  3. 到期预警(按提前量触发):
    1. 会议开始前 1h、15min,提醒预约人与参会人员
    2. 个人证照有效期到期前 90d、30d、7d,提醒持证员工与行政专员
    3. 企业证照有效期到期前 90d、30d,提醒行政专员
    4. 合同失效日期前 30d、7d,提醒经办人与负责人
    5. 印章停用日期前 30d,提醒印章保管人与行政专员
    6. 制度废止日期到达时,提醒制度起草人:制度已废止
    7. 公告置顶过期时间到达时,提醒拟稿人:置顶已到期
  4. 周期报表(定时发送):
    1. 每周一 9:00,发送通知到行政群:上周公告发布量、阅读率与用印统计
    2. 每月 1 日 9:00,发送通知到行政群:本月到期的证照、合同与印章清单
  • 合同:tabOAContracts.number : {category.code}-{signedDate(yyyyMMdd)}-{seq}(四位流水,不随年月重置)
  • 规章制度:tabOARegulations.code : {category}-{effectiveDate(yyyy)}-{seq}(四位流水,不随年份重置)
  • 文件夹:tabOADMSFolder.fullPath : {parent.fullPath}/{name}(随重命名级联更新)
  • 通知公告:tabOAAnnouncements.files : 行政管理/通知公告/{publishTime(yyyy)}/{column.name}
  • 企业文档:tabOADMSFiles.files : 行政管理/企业文档/{folder.fullPath}
  • 合同:tabOAContracts.files : 行政管理/合同管理/{signedDate(yyyy)}/{ourEntity.name}
  • 用印申请:tabOASealApplications.files : 行政管理/用印审批/{executionTime(yyyyMM)}
  • 印章种类:tabOAStamps.files : 行政管理/用印审批/印章/{name}
  • 会议:tabOAMeeting.meetingFiles : 行政管理/会议管理/{startTime(yyyyMM)}
  • 规章制度:tabOARegulations.files : 行政管理/规章制度/{category}/{version}
  • 证照:tabPersonCertificate.files : 行政管理/证照管理/{holderType}
  • 应用:
    • 强依赖:有巢脚手架(v0.5.2.20260825)
    • 弱依赖:人员信息(员工、组织机构)
  • 插件:
  • 阅读回执插件:公告与制度的「发布范围解析 → 逐人生成回执 → 阅读置期与阅读率统计」机制同构,可提炼为通用插件,供其他需要「确认已读」的场景(培训、安全交底、通知签收)复用
  • 企业文档库插件:文件夹树(全路径自动维护、重命名级联校验、人员范围权限与继承)与文件上传下载、查看下载记录,可复用于制度库、合同库、项目资料库等文件归档场景

发布状态 #PublishStatus | 分类:行政管理/OA

优先级 #Priority | 分类:行政管理/OA

展示风格 #DisplayStyle | 分类:行政管理/OA

合同状态 #ContractStatus | 分类:行政管理/OA

合同类型 #ContractType | 分类:系统/System

印章类型 #SealType | 分类:行政管理/OA

印章状态 #StampStatus | 分类:行政管理/OA

用印方式 #SealingMethod | 分类:行政管理/OA

会议状态 #Meeting | 分类:行政管理/OA

制度状态 #RegulationStatus | 分类:行政管理/OA

制度分类 #RegulationCategory | 分类:行政管理/OA

密级 #Confidentiality | 分类:行政管理/OA

证书类型 | 沿用线上既有树形字典 CertificateType(汇总清单无对应项;线上 35 项、6 个一级分组:注册执业证书 / 职称证书 / 施工现场「八大员」岗位证 / 安全类专项证书 / 特种作业操作证 / 其他)

证书状态 #CertificateStatus | 分类:人力资源管理/HR

证书持有类型 #HolderType | 分类:行政管理/OA

公司证书类型 #CertificateCategory | 分类:行政管理/OA

审批状态 #ApprovalStatus | 分类:系统/System