PayrollManagementSystem/backend/app/services
liuwenxin 45c268b146 fix(m3): code-review P2——金额校验、参数解析与运维脚本容错
- 调整单金额恒正:schema 正则拦格式(非负两位小数、≤12 位整数防
  NUMERIC(14,2) 溢出)+ 服务层 Decimal>0 语义校验——负数会反转补发/
  扣减语义,'abc' 原样入库会以 500 暴露
- 分界天数参数解析:int(parse_fraction(...)) 替代 int(参数原文)——
  '360.0' 是 INT 参数的合法入库值(Fraction 分母为 1),直接 int(str)
  抛 ValueError 会让整月核算 500
- logo 旧文件清理容错:OSError 只记 warning——裸抛会把成功的 logo 更新
  记成失败审计并 500(库中 logo_path 却已是新值,审计与事实相反)
- health_check.sh:Redis 探活改容器内环境变量展开(密码不进宿主进程
  命令行,模式同 backup_full.sh);compose redis 补 REDIS_PASSWORD
- restore_drill.sh:行数核对扩到全部 32 张业务表(原 16 张漏 V7 四表、
  二次分配等核心表,备份漏表演练全绿);查询失败回显 '?' 一律判 ✗
  (原 '?'=='?' 判一致,表缺失时误报「备份可恢复」)
- 并入 88 会话的 #12 实现:manager.personal.included 开关消费
  (_build_manager_aggregates 参数化,测试见 828b573)
- 测试:调整单金额恒正 5 稿、INT 参数小数原文核算 200 回归;单测 469

Co-Authored-By: Claude Code <noreply@anthropic.com>
2026-10-19 12:10:29 +08:00
..
__init__.py chore: 初始化项目结构与登录鉴权模块 2026-10-09 18:46:36 +08:00
approval_service.py fix(m3): code-review P0 六项——算错钱与不可用 2026-10-19 11:25:21 +08:00
audit_service.py feat(system): 完成后端系统管理(审计/角色/操作日志/日志查询) 2026-10-10 16:28:04 +08:00
auth_service.py chore: 初始化项目结构与登录鉴权模块 2026-10-09 18:46:36 +08:00
business_role_service.py feat(system): 业务岗位角色管理接口与保护规则 2026-10-12 16:39:08 +08:00
business_service.py fix(m3): code-review 15 项修复(13 项落地,2 项依赖分摊语义记待办) 2026-10-16 14:23:53 +08:00
calc_service.py fix(m3): code-review P2——金额校验、参数解析与运维脚本容错 2026-10-19 12:10:29 +08:00
calc_templates.py feat(system): 计提公式模板注册表与精确分数计算函数 2026-10-12 16:22:32 +08:00
captcha_service.py chore: 初始化项目结构与登录鉴权模块 2026-10-09 18:46:36 +08:00
customer_service.py refactor(repos): 归属留痕共享数据访问,人员在职校验收口单点 2026-10-15 09:49:53 +08:00
formula.py feat(formula): 首日计提比例取整 10‰(#14 答复——图示口径覆盖公式) 2026-10-19 11:40:07 +08:00
log_service.py feat(system): 完成后端系统管理(审计/角色/操作日志/日志查询) 2026-10-10 16:28:04 +08:00
login_limiter.py chore: 初始化项目结构与登录鉴权模块 2026-10-09 18:46:36 +08:00
no_generator.py fix(no_generator): 编号 MAX 检索改长度优先排序,破解位宽进位后字典序失效 2026-10-14 14:09:30 +08:00
param_registry.py feat(migration): V8 业务答复口径落实——审批开关默认开启、撤试用期统一参数、经理基数开关、台账分摊唯一键 2026-10-19 11:09:05 +08:00
param_service.py feat(migration): V7 核算台账/月结/调整单四表与核算纯函数 2026-10-16 16:32:32 +08:00
personnel_service.py refactor(repos): 归属留痕共享数据访问,人员在职校验收口单点 2026-10-15 09:49:53 +08:00
product_service.py fix(product): 删除引用保护/单价小数位校验,IntegrityError 全局兜底转 400 2026-10-14 18:48:32 +08:00
rating_service.py style(backend): formatter 收口两处漏网文件(纯格式无行为变化) 2026-10-15 17:25:24 +08:00
receipt_service.py fix(m3): code-review P1——锁定不变量、入结回填与双轨漂移 2026-10-19 11:59:49 +08:00
role_service.py feat(migration): V6 系统设置/二次分配/审批表与角色参数种子 2026-10-15 17:25:23 +08:00
settlement_service.py fix(m3): code-review P2——金额校验、参数解析与运维脚本容错 2026-10-19 12:10:29 +08:00
shipment_service.py fix(m3): code-review P1——锁定不变量、入结回填与双轨漂移 2026-10-19 11:59:49 +08:00
system_setting_service.py fix(m3): code-review P2——金额校验、参数解析与运维脚本容错 2026-10-19 12:10:29 +08:00
token_blacklist.py chore: 初始化项目结构与登录鉴权模块 2026-10-09 18:46:36 +08:00
user_service.py feat(system): 完成后端系统管理(审计/角色/操作日志/日志查询) 2026-10-10 16:28:04 +08:00