PayrollManagementSystem/tasks/plan.md
liuwenxin 22605f4106 docs(项目): 更新需求文档与开发记录
- 收录 2026-11-02 需求补齐计划、验收记录与业务口径时间线
- 新增授权使用、监控运维与产品提取操作说明
- 归档 T+ 前置计划与待确认事项,清理过期临时文档
- README 同步当前进度与权限改造说明

影响范围:仅文档,无代码变更
2026-11-03 11:21:46 +08:00

14 KiB
Raw Blame History

当前计划:完整权限管理与操作体验(2026-11-02)

按用户后续明确选择更新:角色管理配置权限,用户管理分配角色,取消个人覆盖与全局制作人绑定;管理员拥有全部功能权限,月份锁、实际经办人和审核节点保护保留;轻动效尊重减少动态效果。

  1. 权限目录与数据:复用 RBAC 表与授权版本锁;V22/V25 已应用,本轮隔离库升级 V26,本地 V26 由并行角色改造任务继续应用。
  2. 授权闭环:角色分模块配置、用户分配角色、只读继承预览、修改摘要与审计,移除重复授权入口。
  3. 后端接入:所有接口默认拒绝未登记权限,查询/写入/导出/元数据/后台任务均检查,保留工资业务约束。
  4. 前端接入:菜单/路由/按钮共用权限,提供详情与只读提示,撤权无需重新登录,避免无权限重定向循环。
  5. 验收交付:管理员、只读、区域角色、工资角色四类账号真实浏览器 6 项通过;完整单元 893 项、隔离专项 31+52 项、Ruff、类型/构建通过,使用说明同步。

旧计划及外部验收项保留如下;本轮不提交或推送、不启用生产或源自动采集、不生成真实工资。当前账号授权不再以绑定全局制作人为前置条件;客户环境授权仍须单独配置。


历史计划:同步运维自动化与真实样本验收(2026-10-30)

2026-11-02 规则来源更新:先读 docs/业务规则时间线与当前口径_2026-11-02.md。客户第 03 项已按第二版具体场景及聊天接受方案确认;旧“讨论后答复”已被后续内容补齐。内部实现与验证、实际资料及部署验收分别跟踪,不将泛化多原单分摊或任意日期覆盖列为当前客户前置条件。

依据本轮批准的 T1~T6 实施;下方正式工资及历史计划保留,当前状态以本节和开发记录为准。

  1. T1 已形成恢复库只读样本核对包,源单据、有效凭证、工号、候选期初与费用证据可追溯;2017 年初始化不直接当 2026 年切换余额。
  2. T2/T3 已实现每周九类原始采集、同周防重、手动协调、停机补最近一周、5/15 分钟最多两次明确断连重试、独立心跳和站内提示;生产自动化默认关闭。
  3. T4 已交付 Windows 计划托管包、预演、账号/ACL 校验、检查及停用;本机隔离进程验证通过,客户账号、实际注册、开机及三次恢复留待专用目标环境验收。
  4. T5 保持待资料:用户明确没有该样本人工指导成本;不替换为源成本或零成本,不重复索要同一资料。分类、费用、期初/历史及分管只核对本组,普通运维开发继续。
  5. T6 已完成 784 项单元、405 项完整隔离集成、V21 迁移往返及 16 项专项、Ruff、类型构建及合成接口真实浏览器验证。自动化开发、真实金额验收和生产启用分别记录。

当前迁移 head 为 21f2a3b4c5d6,新增 V20/V21,不重写已应用迁移;仅隔离库执行。操作说明:scripts/windows/README.md;详细证据:docs/同步运维自动化与样本核对开发记录_2026-10-30.md。

后续跟踪已确认更正场景的配对/排除校验、前端选择及完整流程验证,以及 2008 R2 实机、目标环境恢复链及生产安装启用。通用多原单自动分摊和任意日期覆盖不作为当前客户待答复任务;未来实际出现未覆盖场景时再核实。既有节点 5 实现记录不替代当前缺口验证,未完成事项不因历史测试通过而勾选完成。


前一阶段计划与证据(保留)

当前计划:正式工资闭环与项目收尾(2026-10-30)

本次分节点执行计划与状态

节点 1:基线与范围确认(已完成)

  • 接续既有 tasks/plan.md、tasks/todo.md 和 .ai/ 上下文,不覆盖未完成计划。
  • 核对当前代码、迁移、测试与部署脚本,区分仓库内可完成项和必须依赖客户/目标环境的验收项。

节点 2:正式工资与 T+ 正式衔接(已完成)

  • 正式业务导入写入来源关联、输入版本和幂等保护,并衔接发货、回款与正式 PayrollInput。
  • 正式 FIFO 逐段分配、期初先冲、预收、起付比例、重算级联、固化分管/交接和经理本人排除已落地。
  • 月份首次生成锁、实际制作人限制、审批默认关闭、已生成工资走当月调整单已落地。

节点 3:运维交付能力(已完成)

  • 每周自动排队、有限重试、心跳、停止标记和异常概况已实现。
  • Windows 托管任务安装/管理/启动器及隔离运行验证已通过,默认禁用且不写入凭据。
  • 全量与增量备份脚本改为永久留存口径,恢复演练脚本覆盖全业务表并对查询失败判为失败。

节点 4:最终验证与证据(已完成)

  • 后端单元测试:786 passed。
  • 隔离数据库集成测试:406 passed,失败 0、跳过 0。
  • Ruff、前端 vue-tsc、Vite 生产构建和托管脚本隔离验证通过。
  • 保留 Starlette/httpx 既有弃用提醒和 Vite 大包体积提示,均不影响本次功能验收。

节点 5:更正场景收口(已完成)

  • 新增版本化 CORRECTION 事实,校验一正一负配对标识。
  • 更正发货保留源快照并在预演/正式导入中排除绩效;跨客户回款按原业务标识归入,并在原客户侧自动排除。
  • 补充前端事实录入、FIFO 单元测试和事实校验测试;客户确认的示例处理已落地。

节点 6:外部验收交接(待外部条件)

  • 真实样本补齐分类、指导成本、运费、期初/历史已处理金额和归属依据后,完成逐笔金额核对并扩大到整月。
  • 绑定目标环境实际工资制作人账号并验证生产权限;当前不使用测试账号代替生产授权。
  • 在 SQL Server 2008 R2 10.50.1600 目标环境完成连接、查询和兼容性实测。
  • 在客户目标环境完成周同步、服务托管、告警与全量/增量恢复演练。

节点 6 依赖客户资料、目标数据库和部署授权,不能用本地测试结果代替;其余仓库内开发任务已完成并进入交付等待。

用户已批准实施四阶段计划;以下原 Docker 预演计划及未完成项保留,最新业务约束以本节及客户新回执为准。

  1. 权限与隔离:实际账号绑定制作人;测试库名称、显式标记和真实引擎目标同时校验;月结草稿首次成功生成即锁定该月分配,生成失败不锁,审批不解锁。
  2. 正式导入:复用源快照、稳定源身份、队列及预览指纹;新增 BUSINESS_PREVIEW/BUSINESS_APPLY。重复导入跳过,新增单据追加输入版本,旧金额/日期变化保留冲突。
  3. 正式核算:共享 FIFO 内核、期初先冲、预收待发货、60%起付与 R×R;正式台账逐段计提/应付差额独立记录;从指定月起可级联重算尚未生成工资的后续月份,已生成工资走当月调整。
  4. 归属与输出:每次发货对应业务员与当时分管经理,离职承接未发部分;经理本人业务排除。月结、报表与导出使用固化依据,调整单结构化关联原台账及分管。

新回执对计划的修订

来源:docs/客户补充回执核对_2026-10-30.md 与原回执副本。

  • 第01项已明确:同一 T+ 发货客户名头下的合同合并为一笔业务平账。正式导入按账套内客户身份聚合,保留发货层的人员/分管/交接;不再要求每合同单独平账。
  • 第02项已明确:固定取发货月份指导成本,录入完成后封存,后续跨月回款不变价。
  • 第03项已确认一正一负更正单排除绩效、跨客户回款归入原业务;多原单金额分配与通用日期更正仍只阻塞相关特殊分支。
  • 第04项为“不涉及”:不新增保证金、代收款计提。
  • 第05项最新截图已明确:保留审核能力但默认关闭;关闭时工资生成即完成且不留审批痕迹,开启时使用原财务/领导流程。

验收与交付

新增 V18/V19 迁移、输入版本、FIFO明细与生成锁;迁移只能在隔离库验证,正式目标环境执行另按授权边界。已实现不等于已验收:完整单元、隔离集成、类型/构建及浏览器检查的最终结果统一记在开发记录。真实样本尚缺实际资料,不填默认成本、余额或虚假验收结果。

后续保留:多原单更正、SQL Server2008R2兼容、自动周同步、服务托管、告警、目标环境全量/增量恢复演练。备份文件不再按旧30天默认自动清理;本轮未运行清理或恢复脚本,不启用生产连接,不提交/推送。


上一阶段计划与原验收记录(保留)

下一阶段开发计划:Docker 基础导入与核算预演

日期:2026-10-29。按本轮用户批准计划实施。此前计划原文保留在 历史计划,已有未提交内容一并保存。

本轮目标

恢复原 Docker 数据环境,先完成有依据的基础数据导入,再提供可追溯、可重跑的核算预演。预演不进入正式工资、月结、审批和发放。SQL Server 2008 R2 10.50.1600 兼容验收后置;虚拟机安装和屏幕控制不在关键路径。

已确认的开发约束

  • 发货、到账日期取销货单、收款单的单据日期;销售和指导成本均含税,销售额剔除运费。
  • 绩效成本使用人工月度指导价,T+ 成本只留源快照,不导入绩效成本。
  • 回款采用明确分组内的 FIFO,不再强制合同关联;组范围、期初及历史已发款未明确时分别待补。
  • 人员按18人回执核对,工号保留前导零;不自动指定直属经理,不按姓名合并。
  • 仅导入客户性质往来单位,客户和产品核算分类允许人工维护,不做单位换算。
  • 经理本人业务排除;交接与经理分管保存独立事实,不覆盖当前人员关系推算历史。
  • 特殊抵顶继续线下;不创建清理任务,不新增生产账号或权限。
  • 全量读取、主键分页、哈希去重继续复用,时间增量关闭。源账号无写权限。

实施顺序与验收

阶段 已实施内容 验收信号与仍缺条件
P1 环境及基线 原三容器恢复、九类源数据读取、当前指针、只读权限核验 当前源933203行;新增103359个历史版本来自补读单位、客户属性及凭证关联字段。2026-10-30原生ODBC连接、九类抽样和原worker重读已验证通过
P2 规则与字段 日期、含税、客户性质、单位、人员名单核对;业务答复与字段证据分列 已核实收款到总账凭证的关联;13107张已有有效凭证、75张无关联不纳入本次预演,不以审核状态代替生成
P3 基础导入 预览、执行、唯一源关联、人工字段保护、指纹失效、异常重试 实际17人导入,工号101124待核实;产品分类、客户属性不足的行保留待补
P4 FIFO与预演 期初先冲、预收、逐段分配、冻结重跑、交接、经理排除、页面与CSV 功能验证与客户验收分开;真实指导价、分组和历史资料不足,不能宣称整月工资对账通过

最小数据与接口

V16/V17新增五张工作区表,head为 07b8c9d0e1f2。复用现有 /api/v1/system/tplus 和worker,新增事实及历史、源编号选择、工作区任务、分页明细和报告。正式核算表与预演表分开保存;原快照重跑不读取后来的成本、分类和参数。

业务并行事项

  1. 平账范围:同客户统一还是按项目分开。
  2. 指导价:单位或总成本、发货月或回款月、历史处理。
  3. 历史承接:2026-02-28分组应收、已核算及已发款、8月参数。
  4. 交接及经理分管:时间、业务范围、双方人员与发货归属。
  5. 其他更正及特殊款:日期更正、保证金与其他职责;B04已于2026-10-30明确月度工资生成前可改、仅制作人可改、差额归调整单生成当月,不再追问。
  6. 逐笔复核:先以一个资料完整的平账组核对,再扩到整月。

未决条件只阻塞相关分支;已明确的日期、含税、指导成本与工号不重复询问。客户表见 docs/核算预演补充确认清单_2026-10-29.xlsx。

首轮结束标准

真实数据可导入,逐笔过程可核对,缺口能定位。完成定点、受影响模块、隔离迁移/集成回归、前端类型/构建和浏览器检查后交付。客户逐笔验收、原生驱动、2008R2兼容与生产部署分别记录,不混为完成。

验证细节见 docs/T+基础导入与核算预演开发记录_2026-10-29.md;任务状态见 tasks/todo.md。本轮不提交或推送,保留既有修改。

2026-10-30首轮样本与新回复

  • 用户已授权按推荐选样本:辽阳精诚物业管理有限公司,2026-03,销货SA-2026-03-0034与收款SK-2026-03-0016各1125元;一个产品、一位业务员,关联凭证0035。
  • 已登记候选平账组pilot-9395-202603并运行待补预演;未确认开关保持关闭,未填默认指导成本、分类或期初余额。
  • B04新答复记录见docs/二次分配修改规则确认_2026-10-30.md;更正示例另按 CORRECTION 事实实现,不自动扩大至任意日期更正。正式工资入口按该规则的实现与验收已列节点 2、节点 5。
  • 真实字段核查纠正:SA_SaleDelivery.isCancel为结清状态枚举(428未结清、180已结清),不是作废布尔值;预演改按voucherState生效与实际红冲标志判断。