PayrollManagementSystem/backend/tests/integration
liuwenxin 76ded6d5ec fix(m3): code-review P1——锁定不变量、入结回填与双轨漂移
- 月结锁定拦截补全:原仅新增回款一处,现覆盖回款编辑(原月+新月,防跨月
  搬数)/删除、发货新增(按发货日)/编辑(原月+新月)/删除、核算与重算
  (已审定月份金额只走调整单);拦截先于「被引用/已核算」判定
- 台账 settlement_id 回填落地:generate 在 replace_items 后回填纳入行、
  重生成前先解绑(clear_ledger_settlement_id)——不回填/不解绑会让
  「未入结」判据失效:重生成漏算整月或把已固化行反复计入
- 经理聚合行落库:原只进内存参与 items 汇总,台账表永远无 calc_type=2
  行、报表下钻落空;重生成先作废旧聚合行(deactivate_month_aggregates),
  _confirm_scope 限定计算类型避免聚合行混入单笔池
- 月结取参锚定所属月月末(_month_end):原用 date.today(),补生成历史
  月份时分成/月工资口径随生成日漂移;聚合行 receipt_date 同步为月末
- generate/submit 出参固化前置到 commit 之前(commit 后 SELECT 失败会把
  已生成的月结记成失败审计,与库中事实相反)
- V9 迁移:business_secondary_allocations 唯一键条件式补齐(幂等裸 SQL,
  临时库验证「无键→补」「有键→跳过」两分支),修复旧 V6 升级库拿不到
  V6 就地加入的约束;V8 迁移 revision 声明补类型注解(原格式漂移使
  schema 同步测试的 head 推断静默漏检 V8);init-dev 版本号推进至 V9
- V7 留存 SQL 约束/索引名单数改复数(与 alembic op.f 与 init-dev 对齐,
  消除 SHOW CREATE TABLE 双轨漂移)
- 测试:显式控制审批开关(不依赖 V8 翻转后的种子默认值);新增回归 8 例
  (回填落库/聚合不重复/月末取参/月末纯函数 5 例/锁定拦截回款与发货与
  核算);全量 773 passed

Co-Authored-By: Claude Code <noreply@anthropic.com>
2026-10-19 11:59:49 +08:00
..
__init__.py chore: 初始化项目结构与登录鉴权模块 2026-10-09 18:46:36 +08:00
conftest.py feat(migration): V8 业务答复口径落实——审批开关默认开启、撤试用期统一参数、经理基数开关、台账分摊唯一键 2026-10-19 11:09:05 +08:00
factories.py refactor(test): 集成工厂上提共用,submit_change 拆校验段,审计重试断言对齐全局兜底 2026-10-15 10:58:44 +08:00
test_approval_flow.py fix(m3): code-review P1——锁定不变量、入结回填与双轨漂移 2026-10-19 11:59:49 +08:00
test_audit_retry.py refactor(test): 集成工厂上提共用,submit_change 拆校验段,审计重试断言对齐全局兜底 2026-10-15 10:58:44 +08:00
test_auth_flow.py chore: 初始化项目结构与登录鉴权模块 2026-10-09 18:46:36 +08:00
test_business_roles.py test(system): 补交岗位角色与参数管理集成用例(M1 遗漏入库) 2026-10-13 09:26:08 +08:00
test_businesses.py fix(business): 行金额乘积显式两位固化,计提比例对负天数钳制 2026-10-14 18:58:30 +08:00
test_calc.py fix(m3): code-review P0 六项——算错钱与不可用 2026-10-19 11:25:21 +08:00
test_customers.py style(backend): ruff format 统一此前批次的排版残留 2026-10-14 18:46:43 +08:00
test_health.py chore: 初始化项目结构与登录鉴权模块 2026-10-09 18:46:36 +08:00
test_log_query.py feat(system): 完成后端系统管理(审计/角色/操作日志/日志查询) 2026-10-10 16:28:04 +08:00
test_no_generator.py fix(no_generator): 编号 MAX 检索改长度优先排序,破解位宽进位后字典序失效 2026-10-14 14:09:30 +08:00
test_param_management.py feat(api): 计提参数查看放开登录用户、修改仅管理员(#17/#6 答复) 2026-10-19 11:19:16 +08:00
test_personnel.py style(backend): ruff format 统一此前批次的排版残留 2026-10-14 18:46:43 +08:00
test_products.py fix(product): 删除引用保护/单价小数位校验,IntegrityError 全局兜底转 400 2026-10-14 18:48:32 +08:00
test_ratings.py fix(rating): 区间重叠判定改用锁定读取,防并发重叠双提交 2026-10-14 19:01:11 +08:00
test_receipts.py refactor(test): 集成工厂上提共用,submit_change 拆校验段,审计重试断言对齐全局兜底 2026-10-15 10:58:44 +08:00
test_role_management.py feat(system): 完成后端系统管理(审计/角色/操作日志/日志查询) 2026-10-10 16:28:04 +08:00
test_schema_sync.py feat(migration): V8 业务答复口径落实——审批开关默认开启、撤试用期统一参数、经理基数开关、台账分摊唯一键 2026-10-19 11:09:05 +08:00
test_secondary_allocation.py fix(m3): code-review P1——锁定不变量、入结回填与双轨漂移 2026-10-19 11:59:49 +08:00
test_settings.py feat(settings): 公司信息配置与 logo 管理(public 端点供登录页) 2026-10-15 18:22:12 +08:00
test_settlements.py fix(m3): code-review P1——锁定不变量、入结回填与双轨漂移 2026-10-19 11:59:49 +08:00
test_shipments.py refactor(test): 集成工厂上提共用,submit_change 拆校验段,审计重试断言对齐全局兜底 2026-10-15 10:58:44 +08:00
test_user_management.py feat(system): 完成后端系统管理(审计/角色/操作日志/日志查询) 2026-10-10 16:28:04 +08:00