PayrollManagementSystem/backend/app/services
liuwenxin 111ac5425a feat(customer): 客户列表展示等级徽标并统一等级不落库口径
评级计算器并入客户管理后,列表只有分数看不出档位,本批补上等级徽标:
- 抽出 utils/rating.ts 的 resolveGrade(按 sort_order 升序取首个
  min_score ≤ 总分的等级,单边判定避免区间边界歧义),列表页与弹窗共用
- 等级映射按需拉取并缓存在内存,等级配置改动后回调父页重拉,避免
  「同一分数在弹窗是 B、在列表是 C」的两处口径分歧
- 徽标色调按等级名首字母映射,自定义等级名落回中性灰(等级名可配置,
  不能靠写死枚举判语义色)
- 悬浮提示给出等级区间与评级时间

同时订正三处与实现不符的注释:rate_customer 实际只写 rating_score 与
rating_time,等级由分数按当前映射实时推导,三处却写成「后端判定并固化等级
名快照」,v13 迁移 docstring 还引用了并不存在的 v14(d5b8f2a46c71)。
纯注释改动,无逻辑变更。

Co-Authored-By: Claude Code <noreply@anthropic.com>
2026-10-23 16:18:47 +08:00
..
__init__.py chore: 初始化项目结构与登录鉴权模块 2026-10-09 18:46:36 +08:00
approval_service.py fix(approval): 版本号唯一键兜底 + 取号改当前读防并发重复 2026-10-22 13:31:01 +08:00
audit_service.py feat(system): 完成后端系统管理(审计/角色/操作日志/日志查询) 2026-10-10 16:28:04 +08:00
auth_service.py refactor(backend): 仓储层散参数收敛为查询 DTO 2026-10-22 19:43:20 +08:00
business_role_service.py refactor(backend): 仓储层散参数收敛为查询 DTO 2026-10-22 19:43:20 +08:00
business_service.py refactor(backend): 仓储层散参数收敛为查询 DTO 2026-10-22 19:43:20 +08:00
calc_service.py feat(calc): 二次分摊拆行与 #12 单笔侧开关——按方案比例拆给参与人、余额归负责人 2026-10-19 13:15:59 +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 feat(customer): 客户列表展示等级徽标并统一等级不落库口径 2026-10-23 16:18:47 +08:00
dashboard_service.py feat(dashboard): 最近动态改服务端分页 2026-10-23 16:15:09 +08:00
formula.py feat(formula): 首日计提比例取整 10‰(#14 答复——图示口径覆盖公式) 2026-10-19 11:40:07 +08:00
log_service.py refactor(backend): 仓储层散参数收敛为查询 DTO 2026-10-22 19:43:20 +08:00
login_limiter.py chore: 初始化项目结构与登录鉴权模块 2026-10-09 18:46:36 +08:00
manager_share.py fix(report): 报表统计修复批次——对账口径、导出审计与月份校验 2026-10-20 09:44:43 +08:00
no_generator.py fix(no_generator): 编号 MAX 检索改长度优先排序,破解位宽进位后字典序失效 2026-10-14 14:09:30 +08:00
param_registry.py refactor(backend): 仓储层散参数收敛为查询 DTO 2026-10-22 19:43:20 +08:00
param_service.py refactor(backend): 仓储层散参数收敛为查询 DTO 2026-10-22 19:43:20 +08:00
personnel_service.py refactor(backend): 仓储层散参数收敛为查询 DTO 2026-10-22 19:43:20 +08:00
product_service.py refactor(backend): 仓储层散参数收敛为查询 DTO 2026-10-22 19:43:20 +08:00
rating_service.py style(backend): formatter 收口两处漏网文件(纯格式无行为变化) 2026-10-15 17:25:24 +08:00
receipt_service.py refactor(backend): 仓储层散参数收敛为查询 DTO 2026-10-22 19:43:20 +08:00
report_export.py refactor(backend): 仓储层散参数收敛为查询 DTO 2026-10-22 19:43:20 +08:00
report_service.py refactor(backend): 仓储层散参数收敛为查询 DTO 2026-10-22 19:43:20 +08:00
role_service.py refactor(backend): 仓储层散参数收敛为查询 DTO 2026-10-22 19:43:20 +08:00
settlement_service.py fix(approval): 版本号唯一键兜底 + 取号改当前读防并发重复 2026-10-22 13:31:01 +08:00
shipment_service.py refactor(backend): 仓储层散参数收敛为查询 DTO 2026-10-22 19:43:20 +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 refactor(backend): 仓储层散参数收敛为查询 DTO 2026-10-22 19:43:20 +08:00