hr-system/docs/01-design/iteration1-task-breakdown.md

9.0 KiB
Raw Blame History

迭代1总体设计 —— 技术可行性与开发任务拆解hr-web

  • 版本v1.0迭代1-总体设计配套文档)
  • 状态评审通过主agent评审基线冻结
  • 基线:docs/01-design/architecture.md(架构)+ database-design.md43 表)+ api-design.md(端点清单)+ ui-design.md(页面结构)
  • 需求基线:docs/00-requirement/requirement-spec.mdSRS v2+ iteration1-function-detail.mdF01~F1581 条验收项)

1. 技术可行性说明

1.1 技术栈成熟度ocai 规范)

能力诉求 ocai 设施 成熟度结论
声明式 CRUD 页面 json/*.json + xls2ui 自动生成 DataViewer/Form/Tree 成熟产线既有模式迭代1约 20 个 CRUD 页面零手写
组织树/架构图 Tree widget + org_unit parent_id 自引用 + as_of 历史查询 可行;历史架构靠 org_unit_change 时间轴回放/有效期区间过滤
自定义字段(花名册/组织) EAV 双表 + field_def 元数据驱动表单渲染 可行;列表页采用"主表分页+值表批量拼装"规避 EAV 性能问题
审批引擎 flow_def/node_def JSON 配置 + flow_instance/task 状态机 可行迭代1仅串行节点 + any/all 通过规则,不做并行分支(满足 F10 验收)
审批通过自动回写 biz_type+biz_id 关联 + ServerEnv 注册回调 hook 可行;模块宿主无关原则下经 load_xxx() 注册函数互调
批量导入导出 ahserver 后台任务 + openpyxl + files/ 结果文件 可行100 人量级同步/准同步处理即可
数据范围权限 rbac 路径级 + sys_data_scope组织/字段双维度)查询叠加 可行;复用 rbac-permission-initialization-pattern
脱敏/审计 roster_field_def.sensitive + sys_audit_log 前后 JSON 可行;替代 staff-mgr 硬编码 MaskUtil
图表报表 bricks Chart widgetsbricks-chart-widgets 技能) 可行;聚合 SQL 只读查询
提醒推送 cron 扫描 remind_scan + sys_message 站内消息 可行;短信/邮件通道预留 send_channel 字段

1.2 规模与性能

100 人账号、单实例部署nginx + ahserver + MySQL + Redis。最大表量级花名册 100 行、字段值 ≤100×100=1 万行、审计日志年级 ≤10 万行。全部查询在索引覆盖下远低于 500ms 指标;组织树/主数据全量加载无分页压力。导入导出 100 人 × 50 字段 openpyxl 秒级完成。

1.3 主要风险与对策

风险 等级 对策
EAV 自定义字段在列表页的筛选/排序复杂度 迭代1筛选支持"主表字段 + 至多 3 个自定义字段等值匹配",排序仅主表字段;超出部分作为已知限制写入 UAT 说明
审批引擎配置化过度导致返工 迭代1锁定"串行节点、any/all、字段权限、抄送"能力边界;并行/条件分支留 flow_node_def JSON 扩展位
staff-mgr 旧数据语义差异status/加密算法) 迁移脚本内置映射表 + 核对报告 + UAT 双库比对(见 database-design.md §7
6 模块并行开发契约漂移 本文 T01 先行冻结表定义 models JSON 与 api-design 端点签名,变更走设计评审
提醒场景字段依赖(健康证/社保等花名册字段未建) init/data.json 预置 REMIND_SCENE 对应字段定义remind_scan 按 field_def 取数

1.4 已裁决口径(对 baseline-decision 遗留问题)

  • Q1 双口径:统一 ocai本设计全套
  • Q6 删除语义迭代1员工/组织不做物理删除与逻辑删除标记,统一走停用/离职流程database-design.md §1.3、api-design.md §4
  • 其余 Q2~Q5/Q7 以本设计为评审结论自定义字段排序限主表字段1.3、审批引擎能力边界1.3、迁移幂等策略db §7

2. 开发任务拆解T01~T24契约先行

依赖关系T01~T02 为契约冻结阶段,全量先行;其后按模块并行。工作量单位:人日(估算,供 PM 排期)。

阶段0 契约与脚手架

编号 任务 内容/产出 依赖 估时
T01 数据契约冻结 6 模块仓库建仓hr_org/hr_roster/hr_flow/hr_contract/hr_reporthr-system 复用既有空仓43 张 models/*.json 全量提交json2ddl 生成 DDL 验证 4
T02 应用脚手架 hr-web 应用仓app/hr_web.py、conf/config.json 含 processors/indexes/session、build.sh、.envappbase/rbac 加载验证;登录走通 T01 2

阶段1 主数据与底座(可并行)

编号 任务 内容/产出 依赖 估时
T03 hr-org 组织管理 org_unit CRUD/树/停用/移动、org_field_def 自定义字段、org_unit_change 时间轴、org_tree/org_import 端点、org_tree.ui/org_chart.uiF01 T01,T02 5
T04 hr-org 职位职级 org_job/position/sequence/grade_level/grade_rank CRUD + 导入导出 + options 端点F02 T03 3
T05 hr-roster 字段体系 roster_field_group/field_def/type_rule/empno_rule 配置页与端点、工号生成器F03 搭建类验收 1/2/3/6 T01,T02 4
T06 hr-roster 花名册主体 roster_employee CRUD、EAV 值表读写、roster_list/employee_detail/timeline、脱敏与字段可见F03 验收 4/5/7 T05,T03,T04 6
T07 hr-roster 导入导出 roster_import新增/修改、模板生成、roster_export字段/顺序/as_ofF03 验收 8 T06 3
T08 hr-system 权限底座 角色/管理员/数据范围sys_data_scope 双维度、get_data_scope 注册、各模块查询叠加F11 T02 4
T09 hr-system 审计底座 write_audit_log + sys_audit_log 查询/详情对比页F12 T02 2

阶段2 审批引擎(关键路径)

编号 任务 内容/产出 依赖 估时
T10 hr-flow 引擎核心 flow_form_def/flow_def/flow_node_def/flow_role 配置、flow_start 状态机、task 生成与流转、flow_match、回调 hook 机制F10 验收 1/2/3 T02,T08 6
T11 hr-flow 审批界面 todo/done/mine/received 列表、inst_detail 动态表单渲染、approve/reject/forward/withdraw、打印F10 验收 5/6 T10 4
T12 hr-flow 查询导出 inst_query/inst_export、审批角色数据范围生效验证F10 验收 3/5 T10,T08 2

阶段3 入转调离与合同(依赖 T10 回调,可部分并行)

编号 任务 内容/产出 依赖 估时
T13 入职管理 entry_approval/entry_manual批量/登记表邀请与提交/黑名单校验与高亮/入职通知/复职关联F04 全 7 项) T10,T06 5
T14 转正管理 regular_apply自助/代发)/regular_manual/回写花名册/转正提醒接入F05 全 4 项) T10,T06,T16 3
T15 调动管理 transfer_apply含批量明细/transfer_cancel/回写档案与花名册/调动查询F06 全 4 项) T10,T06 4
T16 提醒引擎 sys_remind_rule/care_config/remind_scan转正/合同/生日/周年等场景)+ sys_messageF15 提醒类验收) T02 3
T17 离职管理 leave_apply/leave_manual/交接项/办理离职/离职证明生成下载/一键黑名单/信息存储F07 全 7 项,钉钉交接留扩展点) T10,T06 5
T18 兼岗管理 concurrent_apply/兼岗记录维护/审批通过同步花名册F08 全 3 项) T10,T06 2
T19 合同台账 contract_type/template/info CRUD + 批量导入 + 合同审批(新签/续签/变更/终止)+ 到期提醒规则 + esign_stub 预留F09 全 6 项) T10,T06,T16 4

阶段4 报表、工作台、员工服务与收尾

编号 任务 内容/产出 依赖 估时
T20 人事报表 roster/entry/regular/transfer/leave 五类分析端点 + report_board.ui 图表F13 全 6 项,数据范围受控) T06,T13~T17 4
T21 工作台 workbench_employee/manager/admin 聚合端点与三页面F14 全 5 项,绩效/考勤占位预留) T10,T11,T16 3
T22 员工服务 公告/政策发布与查询(查阅范围/下载权限、关怀文案配置F15 服务类验收 1~3 T16 2
T23 staff-mgr 迁移 migrate_staff_mgr.py映射/解密重加密/幂等/核对报告、UAT 双库比对、切换演练 T06,T09 3
T24 集成联调与验收 F01~F15 共 81 条验收项端到端回归;性能验证(列表 ≤500msload_path 全路径注册核查部署脚本验证dev/test 全部 4

合计估算:约 84 人日(不含 PM 排期缓冲。关键路径T01→T02→T10→T11→T13/T15/T17→T20/T21→T24。

3. 交付与验收定义

  • 每个 T 任务交付模块仓代码models/json/wwwroot/init/scripts/skill/SKILL.md+ 对应功能验收项自测记录。
  • 契约变更(表结构/端点签名)必须回改 docs/01-design 四份文档并评审。
  • T24 通过标准81 条验收项全部通过或经 PM 确认降级项(扫码入职、身份证读取、钉钉交接、电子签为既定范围外/降级项)。