hr-system/.tmp_s1.txt

119 lines
9.9 KiB
Plaintext
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.

### 4.3 薪酬月度核算流程(批次2)
```
发薪活动创建(核算组选人) → 算薪名单自动生成(比对上月入离职/调薪差异提醒)
→ 数据接入(手动导入/兼岗核对) → 算税算薪(公式引擎+本地累计预扣法, 分段计算)
→ 薪资校验(规则命中异常名单) → 修正 → 薪资锁定
→ 发薪审批(内嵌明细在线预览) → 工资条发放(一对一, 状态追踪)
→ 员工确认/签名留档 → 薪资结果导出/薪酬报表
```
### 4.4 招聘主流程(批次3)
```
招聘需求创建(HR/用人经理) → 需求审批 → 职位发布(职位审批, 关联HC, 负责人设置)
→ 渠道(本地猎企/内推/官网投递) → 简历入库(人才库, 筛选规则命中)
→ 初筛 → 面试(多轮, 评价; 线下面试记录) → offer(字段/审批/规则; 确认后进待入职)
→ 自动化规则(进下一阶段/人才库/淘汰/锁定) → 候选人入职(联动批次1入职流程)
→ 招聘报表/目标统计
```
### 4.5 审批通用流程(hr-flow 引擎)
```
发起(表单引用花名册字段) → 流程匹配(多条件) → 节点审批(串行, any/all 通过规则, 字段权限, 抄送)
→ 通过/驳回/撤销 → 通过回调 hook 回写业务(花名册/薪资档案/合同/招聘状态) → 全程留痕(操作日志)
```
---
## 5. 数据需求
### 5.1 核心实体模型(批次1已在设计中落 43 张表,批次2/3 为规划)
| 域 | 核心实体 | 表前缀 | 说明 |
|---|---|---|---|
| 组织 | org_unit(组织+变更/字段)、org_job/position/sequence/grade_level/grade_rank、org_contract_company、org_blacklist | org_ | 已设计 18 表(database-design.md §4.1) |
| 花名册 | roster_employee(主表)、roster_field_def/value(EAV 自定义字段)、roster_field_group、roster_empno_rule、roster_timeline、roster_type_rule、org_concurrent_post(兼岗) | roster_ | 已设计 7 表;员工主数据唯一事实源 |
| 流程 | flow_form_def、flow_def、flow_node_def、flow_role、flow_instance、flow_task、flow_op_log | flow_ | 已设计 7 表 |
| 合同 | contract_type、contract_template、contract_info、contract_remind_rule | contract_ | 已设计 4 表 |
| 系统 | sys_role/sys_user_role、sys_data_scope、sys_audit_log、sys_message、sys_remind_rule、sys_announcement、sys_policy、sys_care_config | sys_ | 已设计 7 表 |
| 薪酬(批次2,规划) | 薪资档案/薪资包/薪资标准/定调薪记录/薪资方案/算薪规则/发薪活动/算薪结果(分段)/个税主体与计算记录/社保方案与档案/工资条/成本中心与拆分/预算 | sal_ | 约 25~30 表,设计阶段细化 |
| 招聘(批次3,规划) | 职位/招聘需求/人才库/简历(+自定义字段EAV)/标签/流程阶段与候选人流转/面试评价/offer/渠道与猎企/邮件模板/内推与奖励/面试登记 | rcrt_ | 约 30~35 表,设计阶段细化 |
### 5.2 数据规则
1. 员工主数据唯一事实源 = 花名册;入转调离审批通过后经唯一回写入口(roster_writeback)写入。
2. 全表统一主键/创建修改时间/操作人字段;删除以状态标记为主,物理删除仅 admin 且留审计。
3. 敏感字段(身份证/手机/薪资)字段级标记 + 角色脱敏。
4. 数据初始化:系统初始化内置 admin 账号、四类角色、基础审批流模板、组织/职位职级空体系、花名册基础字段集;支持从旧 staff-mgr 员工数据一次性迁移(见 database-design.md §6)。
## 6. 接口需求(一期边界)
1. **内部接口**:全部为 `.dspy` 端点(`/{module}/api/{name}.dspy`),session 鉴权 + rbac 路径级控制,查询强制叠加数据范围。批次1端点清单见 `docs/01-design/api-design.md`(约 30+16+其余端点)。
2. **模块间服务内调用**:hr-flow 完成回调 → hr-roster 回写;hr-org/hr-contract → hr-system 权限与日志。
3. **对外接口(一期全部预留桩位,二期实现)**:钉钉通讯录/智能人事同步、考勤/绩效/审批/宜搭数据同步、税局个税申报、电子签平台、招聘平台简历同步、身份证读卡硬件、视频面试服务、短信网关。预留方式:桩端点(如 `esign_stub.dspy`)+ 状态字段 + 接口规范文档。
4. **API 开放能力**:一期仅定义鉴权与端点规范,不交付第三方集成。
## 7. 非功能需求(可量化)
| # | 类别 | 需求 |
|---|---|---|
| NFR-1 | 性能 | 列表页查询 ≤500ms(100 人规模、1000 条以内数据集);报表聚合 ≤3s;批量导入 500 行 ≤30s |
| NFR-2 | 容量 | 账号规模 100 人;并发在线 ≥30;简历库 ≥2 万份、花名册 ≥2000 条(含离职) |
| NFR-3 | 可用性 | 单实例部署,月度可用率 ≥99%(工作时间);服务异常自动重启(systemd) |
| NFR-4 | 安全 | session 鉴权+rbac;未注册路径默认拒绝;全量写操作审计留痕;敏感字段脱敏;SQL 全部参数绑定;密码加盐哈希存储 |
| NFR-5 | 备份 | MariaDB 每日全量备份,保留 ≥30 天;附件随应用数据一并备份 |
| NFR-6 | 兼容性 | Chrome/Edge 最近 2 个大版本;员工自助页面移动端浏览器兼容(ResponsableBox 自适应) |
| NFR-7 | 可维护 | ocai 规范模块结构;配置化(表单/流程/字段 JSON 化,不写代码可配);每模块 load_xxx() 装配 |
| NFR-8 | 数据迁移 | 旧 staff-mgr 员工数据一次性迁移脚本,迁移核对报告(总数/抽样一致) |
## 8. 部署环境需求(已由任务明确)
| 项 | 测试环境 | 生产环境 |
|---|---|---|
| 主机 | hrstest@192.168.16.12:22(免密已验证) | hrs@192.168.16.10:22 |
| 应用端口 | 9182(Web + ahserver 统一入口) | 9182 |
| 数据库 | MariaDB 本地,账号 test/test123,库名 hrs | 同库配置(生产账号口令部署时另行安全配置) |
| 会话依赖 | Redis(本地) | Redis(本地,仅内网) |
| 域名/证书 | 无(IP 直连) | **待补**(见 §11 问题清单 Q1) |
| 备份 | 无要求 | 每日全量备份,保留 ≥30 天 |
| 监控告警 | — | 进程存活 + 端口探活 + 备份结果告警(基础项;详细方案待设计阶段明确) |
> 注:此前设计文档(architecture.md)中 dev/test 8080 / ahserver 9080 / prod 443 的端口口径,以本任务明确口径为准:**测试/生产应用端口统一 9182**。apps/hr-web.md 已同步更新。
## 9. 一期降级项说明(逐项)
| # | 原始功能(需求来源) | 一期降级方案 | 二期恢复方式 |
|---|---|---|---|
| D1 | 身份证硬件读卡(入职) | 手工录入身份证信息字段 | 读卡硬件接入后回填同一字段 |
| D2 | 视频面试(招聘) | 线下面试记录(时间/地点/参与人/结论字段) | 视频面试服务对接后扩展面试记录类型 |
| D3 | 钉钉同步(组织/人员/智能人事/离职资源交接) | 不同步;离职交接项保留占位字段 | 钉钉开放平台对接迭代 |
| D4 | 电子签(合同) | 模板生成合同文本供打印/下载;esign_stub.dspy + esign_status 字段预留 | 电子签平台对接 |
| D5 | 考勤/绩效/审批/宜搭数据一键同步(算薪) | 手动导入数据表格;数据接入接口与导入模板预留 | 钉钉对接迭代 |
| D6 | 税局在线申报/缴纳/专项附加自动获取 | 本地累计预扣法计算 + 申报缴纳记录手工管理 | 税局接口对接 |
| D7 | 第三方招聘渠道真实对接、浏览器插件简历解析 | 本地渠道台账 + 手工/文件导入简历 | 渠道 API 对接 |
| D8 | AI 自动解析生成算薪公式 | 基础公式编辑器(Excel 函数 + 薪资专用函数) | AI 解析增强 |
| D9 | 短信通知渠道 | 站内消息兜底(邮件渠道可配置) | 短信网关对接 |
| D10 | 官网公网发布 | 内网部署形态,配置项预留 | 域名/证书补齐后对外 |
## 10. 验收标准总纲
1. 29 项 feature 的验收标准(§3)全部通过为迭代验收基线;P0 必须 100%,P1/P2 按批次验收计划执行。
2. 每批次交付提供:功能验收记录(逐项)、性能抽测记录(NFR-1)、权限与脱敏抽测记录。
3. 数据迁移(staff-mgr)核对报告通过。
4. 部署验证:测试环境全链路冒烟通过后,方可进入生产部署。
## 11. 待明确问题清单(需向用户/PM 确认)
| # | 问题 | 影响 | 状态 |
|---|---|---|---|
| Q1 | 生产环境域名与 HTTPS 证书何时提供?一期是否接受 9182 端口 HTTP 直连交付? | 部署形态、官网对外 | 待明确 |
| Q2 | 生产 MariaDB 账号口令由谁提供/如何交接(任务参数中生产为「同库配置」)? | 部署安全 | 待明确 |
| Q3 | 旧 staff-mgr 员工数据迁移范围(仅在职?含历史?)与切换时间点? | 数据迁移 | 待明确 |
| Q4 | 薪酬历史数据是否需要初始化导入(影响累计预扣法跨期计算)? | 个税计算 | 待明确 |
| Q5 | 招聘官网一期是否必须内网可用,还是可推迟至批次3末期? | 批次3排期 | 待明确 |
| Q6 | 邮件 SMTP 服务(发件账号)由谁提供?未提供时是否接受仅站内消息? | 招聘邮件 | 待明确 |
| Q7 | 100 人账号中 manager/employee 之外的 admin/hr 数量规模(影响授权设计验证)? | 权限测试 | 待明确 |
| Q8 | 生产环境监控告警接收渠道(邮件/钉钉群 webhook)? | 运维 | 待明确 |
## 12. 文档索引
| 文档 | 路径 |
|---|---|
| 需求规格说明书(本文档) | docs/00-requirement/requirement-spec.md |
| 已批准功能清单(29 项基线) | docs/00-requirement/approved-features.md |
| 需求追溯矩阵(xlsx→feature→模块→批次) | docs/00-requirement/requirement-traceability.md |
| 需求来源(原始功能清单) | 工作空间 docs/需求来源_钉钉睿人事功能清单.md、xlsx_dump.txt |
| 应用定义 | apps/hr-web.md |
| 模块定义 | modules/hr-org.md、hr-roster.md、hr-flow.md、hr-contract.md、hr-report.md、hr-system.md、hr-salary.md、hr-recruit.md |
| 迭代1组织人事底座设计 | docs/01-design/*.md(F01~F15) |