PayrollManagementSystem/backend/app/repositories
liuwenxin 91fc6f6293 fix(product): 删除引用保护/单价小数位校验,IntegrityError 全局兜底转 400
- delete_product 补 count_refs 引用检查(业务明细+发货明细 RESTRICT
  外键)与并发窗口 IntegrityError→400 兜底(customer 先例同构),
  docstring 与两个 api 层过时注释同步更新
- 产品 schema 复用 schemas/business._check_amount:sale_price 走
  (PRICE_MAX, scale=4)、stock_quantity 走 AMOUNT_MAX——此前私写
  _parse_non_negative 不查小数位与容量,5 位小数被 Numeric(14,4)
  静默截断(舍入即算错钱);新增 6 个秒级 schema 单测锁定口径
- 全局注册 IntegrityError handler:漏补引用保护的删除类操作收敛为
  400 通用文案(e2e 撞见一个补一个的模式无法保证全覆盖),完整
  异常记日志;rating/customer 的「非 1062 按 500」注释同步更正

Co-Authored-By: Claude Code <noreply@anthropic.com>
2026-10-14 18:48:32 +08:00
..
__init__.py chore: 初始化项目结构与登录鉴权模块 2026-10-09 18:46:36 +08:00
business_repository.py fix(business): 编辑/流转/归属加锁与终态编辑门槛,has_docs 单点收口 2026-10-14 17:30:21 +08:00
business_role_repository.py feat(system): 业务岗位角色管理接口与保护规则 2026-10-12 16:39:08 +08:00
customer_repository.py style(backend): ruff format 统一此前批次的排版残留 2026-10-14 18:46:43 +08:00
login_log_repository.py feat(system): 完成后端系统管理(审计/角色/操作日志/日志查询) 2026-10-10 16:28:04 +08:00
operation_log_repository.py fix(system): code-review 15 项修复(预览基数/维度校验/脱敏穿透/并发版本号等) 2026-10-13 02:28:20 +08:00
param_repository.py feat(system): 计提参数版本管理、变更留痕与计算预览接口 2026-10-12 20:24:17 +08:00
personnel_repository.py fix(business): 删除保护补齐与单价小数位口径修复(e2e 发现) 2026-10-13 17:06:46 +08:00
product_repository.py fix(product): 删除引用保护/单价小数位校验,IntegrityError 全局兜底转 400 2026-10-14 18:48:32 +08:00
query_utils.py feat(system): 完成后端系统管理(审计/角色/操作日志/日志查询) 2026-10-10 16:28:04 +08:00
rating_repository.py feat(business): 客户评级等级映射配置接口(区间重叠判定/名称唯一) 2026-10-13 12:01:47 +08:00
receipt_repository.py style(backend): ruff format 统一此前批次的排版残留 2026-10-14 18:46:43 +08:00
role_repository.py feat(system): 完成后端系统管理(审计/角色/操作日志/日志查询) 2026-10-10 16:28:04 +08:00
shipment_repository.py style(backend): ruff format 统一此前批次的排版残留 2026-10-14 18:46:43 +08:00
user_repository.py feat(system): 完成后端系统管理(审计/角色/操作日志/日志查询) 2026-10-10 16:28:04 +08:00