liuwenxin
eb4e06d1e8
docs(计划): 记录待核对原因汇总
...
记录业务接入终态中的未生效单据、来源值异常和目标冲突数量,明确未进入工资输入。
2026-11-06 14:18:32 +08:00
liuwenxin
ce0961a498
docs(计划): 记录业务接入最终终态
...
记录重试任务的最终处理量、待核对数量、业务总数和零工资输入结果。
2026-11-06 14:10:26 +08:00
liuwenxin
28d01dcd75
docs(计划): 记录 Docker 运行时根因
...
记录 Docker backend 异常退出、MySQL 连接中断和业务接入暂停原因,区分环境故障与应用数据问题。
2026-11-06 12:35:53 +08:00
liuwenxin
560b6878d6
docs(计划): 记录业务接入基础设施中断
...
记录重试任务的进度、Docker Desktop 再次停止和未写工资边界,保留后续恢复依据。
2026-11-06 12:27:41 +08:00
liuwenxin
d6cac0a914
docs(计划): 记录业务接入恢复进度
...
记录 Docker 恢复、业务接入任务续跑和当前新增、待核对数量,明确未写工资边界。
2026-11-06 11:52:16 +08:00
liuwenxin
65873bc894
docs(计划): 记录业务自动接入实测结果
...
记录采集完成、只读预览、业务自动接入启动以及真实业务列表增长结果。
2026-11-06 11:37:08 +08:00
liuwenxin
a8adf064d2
docs(计划): 记录真实 T+ 服务恢复验收
...
记录当前库 V33 迁移、读取服务恢复、真实登录页面同步进度和未写工资边界。
2026-11-06 10:32:08 +08:00
liuwenxin
b21dff12f4
fix(T+托管): 限制健康检查重定向范围
...
supervisor 的健康探测只允许访问本机地址,避免本机端点重定向到外部网络。\n增加重定向处理器和回归测试,保留现有依赖健康及错误脱敏行为。\n\n影响范围:T+ supervisor 健康检查与运行控制单元测试。\n\nCo-Authored-By: Claude Code <noreply@anthropic.com >
2026-11-06 09:42:07 +08:00
liuwenxin
fc4428abb5
docs(计划): 记录 T+ 保护修复验收
...
记录指导成本、月份锁、读取服务页面和权限保护修复后的 89 项隔离定向测试结果。
2026-11-05 19:34:39 +08:00
liuwenxin
b8920c0d28
fix(T+): 补齐指导成本与读取服务保护
...
补充业务详情指导成本入口、来源版本和历史封存保护,接入月份锁并完善权限复核。
同步接入读取服务运行状态到页面,补充前端控制、回归测试和服务端只读连接授权校验。
定向隔离测试:89 项通过,1 条既有 Starlette 弃用警告。
2026-11-05 19:32:20 +08:00
liuwenxin
68e70fd6e2
fix(权限): 修复业务接入预览权限映射
...
业务接入预览属于只读预演,不应要求执行导入权限。\n将预览接口映射到 tplus:preview,并增加路由权限回归,避免只读角色被错误拒绝。\n\n影响范围:T+ 工作台业务接入预览接口与权限策略。\n\nCo-Authored-By: Claude Code <noreply@anthropic.com >
2026-11-05 19:31:01 +08:00
liuwenxin
515b83b660
docs(计划): 记录真实浏览器冒烟结果
...
记录最新前端登录页在真实浏览器中的 200 响应、表单渲染和验证码入口检查,未提交登录或业务写入。
2026-11-05 19:19:21 +08:00
liuwenxin
4a888e9974
docs(计划): 记录最新 T+ 运行验收
...
记录当前提交在新端口的只读健康检查、接口发现和前端加载结果,明确验证码和真实写入尚未执行。
2026-11-05 19:13:34 +08:00
liuwenxin
73dbf08d4b
fix(T+): 补齐读取服务数据库迁移
...
补充运行控制表及复数表名迁移,确保提交后的 Alembic 链与已验证的 V33 数据库结构一致。
2026-11-05 18:48:54 +08:00
liuwenxin
1e53792ad6
feat(T+): 完成数据贯通与自动接入闭环
...
打通 T+ 快照、业务、发货、回款和核算准备链路,保留来源差异并提供待补状态。
新增业务自动接入任务、跨平台读取服务托管、权限复核、来源关联和前端核对页面。
补充迁移、隔离集成测试、浏览器模拟验收及角色授权边界修复。
2026-11-05 18:47:13 +08:00
liuwenxin
3efe72c344
docs(审查): 记录体检修复与备份恢复验证结果
...
记录审查问题、修复范围、验收证据及仍待目标环境验证的边界。
2026-11-03 17:18:53 +08:00
liuwenxin
ae12403c0b
fix(备份): 修复快照位点与轮转期间的增量遗漏
...
统一跨平台备份入口,校验快照位点、完整性及增量链后隔离恢复。
末个 binlog 按读取位点归档,避免轮转后并发事务被续接跳过。
修复 Windows 安装器的编码、默认路径和花括号路径参数。
2026-11-03 17:18:52 +08:00
liuwenxin
b552f1e567
fix(部署): 将模板迁移 SQL 打包到后端镜像
...
V28 迁移运行时需要读取 db/migration,补齐镜像复制与构建白名单。
同时保留后端镜像使用的周期检查入口。
2026-11-03 17:18:49 +08:00
liuwenxin
6bac9586bf
fix(托管): 轮转角色日志并验证失败退出码
...
每个角色固定保留当前与上次的输出日志,避免周期任务持续新增文件。
扩展 PowerShell 5 隔离检查,覆盖连续运行与日志轮转。
2026-11-03 17:18:48 +08:00
liuwenxin
bf404c3b68
fix(前端): 更新图表与请求依赖并同步锁文件
...
更新 ECharts、axios 及传递依赖,修复体检发现的依赖问题。
前端类型检查、生产构建及生产依赖安全审计通过。
2026-11-03 17:18:46 +08:00
liuwenxin
2ac4c71106
fix(迁移): 恢复计提模板建表脚本及内置种子
...
清除误写入 SQL 文件的缓存内容与 NUL 字节。
恢复与 V28 对齐的表结构及五个内置模板。
2026-11-03 17:18:45 +08:00
liuwenxin
2c003fc4a7
style(迁移): 修正迁移脚本的 Ruff 检查问题
...
将等价字典构造改为字面量并标记未使用字段,保持迁移 SQL 语义。
2026-11-03 17:18:44 +08:00
liuwenxin
5e5304eece
fix(连接): 默认校验 T+ 证书并限制开发端口
...
T+ 连接默认校验服务器证书,隔离开发回退须显式配置。
MySQL 与 Redis 的开发端口仅绑定本机回环地址。
2026-11-03 17:18:43 +08:00
liuwenxin
908851a704
fix(测试): 清理本次创建的隔离资源并保留失败码
...
记录数据库与账号的创建结果,只清理本次成功创建的对象。
支持显式保留资源,拒绝误删复用库或重名对象,补充退出码回归。
2026-11-03 17:18:41 +08:00
liuwenxin
c684a44753
fix(设置): 恢复上传提交失败前的公司标志文件
...
数据库提交失败时恢复被覆盖的文件,或移除本次新文件。
文件恢复失败保留原始异常,并补充三种扩展名场景的回归测试。
2026-11-03 17:18:39 +08:00
liuwenxin
67adecbf1b
fix(认证): 原子更新登录限流并统一凭据校验耗时
...
将失败计数与过期时间放入同一 Redis 事务,避免永久锁定。
不存在的账号执行同成本哈希校验,登录测试强制读取环境口令。
2026-11-03 17:18:36 +08:00
liuwenxin
22605f4106
docs(项目): 更新需求文档与开发记录
...
- 收录 2026-11-02 需求补齐计划、验收记录与业务口径时间线
- 新增授权使用、监控运维与产品提取操作说明
- 归档 T+ 前置计划与待确认事项,清理过期临时文档
- README 同步当前进度与权限改造说明
影响范围:仅文档,无代码变更
2026-11-03 11:21:46 +08:00
liuwenxin
a2f9a58de5
feat(前端): 配套授权、监控与同步进度页面
...
- 角色授权:权限矩阵抽屉与角色创建,按模块分组勾选
- 系统监控:总览、趋势、接口与事件页,15 秒自动刷新,
请求可中断、窗口切换暂停,详情抽屉支持导出
- T+ 同步:同步进度条组件与工作台状态拆分
- 工资:试用期面板、产品提取弹窗与无权限占位页
- 路由权限:按权限码控制菜单与页面可达性
影响范围:前端全部页面
验证:随本次后端联调本地人工核对,e2e 脚本入库待跑
2026-11-03 11:21:19 +08:00
liuwenxin
1461a8d113
feat(后端): 添加授权体系、系统监控与试用期计提
...
按 2026-11-02 需求补齐计划交付后端能力:
- 角色授权:权限目录化,接口统一准入校验,未登记默认拒绝;
管理员判断改为按数据库角色重新判定,防止权限码持有者绕过
- 系统监控:单进程采集资源、请求与异常指标,分钟级聚合,
阈值配置化;敏感配置增加 repr 保护,Redis 密码 URL 转义
- 试用期计提:按回款日判定并写入快照,年度结清与调整单联动;
人员模型补试用期、离职日期与工资版本历史字段
- 计提模板:公式骨架受控,页面维护名称与参数绑定
- T+ 采集:自动化配置表与进度查询
内置角色禁停用保护对齐模块注释;核算规则版本提为常量并
补充批量核算失败堆栈日志。
影响范围:后端全部模块、数据库迁移 V22-V28
验证:uv run ruff check 通过;922 个单元测试全部通过;
集成测试因本机 MySQL 数据卷被其他容器锁定暂未运行
2026-11-03 11:20:55 +08:00
liuwenxin
02fb06e0af
fix(前端): 修复续算金额文案和长弹窗越界
...
跨月续算时将历史匹配回款与指导成本标为计算依据,避免页面误称为本次金额,并明确本期应付为续算差额。\n\n统一弹窗顶部间距与最大高度计算,保留正文滚动和底部操作区;新增隔离浏览器回归覆盖首次计提、续算状态及多种视口。\n\n验证:pnpm build;node frontend/e2e/ledger-dialog-regression.mjs。
2026-11-02 14:24:08 +08:00
liuwenxin
71b7846a79
refactor(后端): 将工资与工作区业务逻辑下沉服务层
...
将月份状态、资料输出、调整单编排及工作区查询、
CSV 生成移至现有服务层,路由仅绑定参数并返回响应。
保持接口路径、参数、响应模型和权限依赖一致,
补充九项内存库行为回归并同步测试记录。
2026-11-02 09:42:55 +08:00
liuwenxin
019817d6dc
fix(工资核算): 排除起付比例中的历史发货
...
旧应收已经由期初余额承接,启用前发货再次进入分母,
会使新业务足额回款仍未达到起付门槛。
将销售额日期范围与 FIFO 的启用边界保持一致,
补充普通历史日期及二月末的两项回归用例。
2026-11-02 09:42:55 +08:00
liuwenxin
108bf87225
feat(核算)!: 添加 T+ 正式核算与采集托管
...
补齐源快照、资料预演、正式导入及工资核算的依赖链路。
新增版本化输入、逐段 FIFO、生成锁和结构化当月调整,
并提供默认关闭的周期采集、有限重试及 Windows 托管。
原始客户资料、私有配置及首页改动不纳入本次提交。
BREAKING CHANGE: 升级前需应用新增迁移,并通过
PAYROLL_MAKER_USER_ID 绑定实际工资制作人,否则业务只读。
旧单批次核算默认关闭;历史兼容需显式启用
PAYROLL_ALLOW_LEGACY_CALCULATION。生产启用和真实金额待验收。
2026-11-02 09:42:53 +08:00
liuwenxin 和 Claude Code
1b074576fe
fix(后端): 区分 T+ 连接文件的缺失与字段错误
...
原先 OSError、ValueError、ValidationError 统一归并为「不可用
或字段不正确」,文件不存在和字段写错无法区分,排障困难。
拆分为两条消息分别指示故障类别,仍不回显文件内容与路径。
Co-Authored-By: Claude Code <noreply@anthropic.com >
2026-10-30 09:58:47 +08:00
liuwenxin 和 Claude Code
013d6e7a74
docs(测试): 标注 T+ 前端 e2e 待补
...
按模块测试约定,T+ 页面验收节点应统一编写 Playwright 用例
并记录运行结果;当前仅有 type-check 验证,显式标注避免遗忘。
Co-Authored-By: Claude Code <noreply@anthropic.com >
2026-10-30 09:58:27 +08:00
liuwenxin 和 Claude Code
0ca1734523
refactor(前端): 清理 T+ 页面展示细节
...
详情对话框:异常明细补充后端已支持的范围筛选,执行时间行
在批次未开始时隐藏(原先显示「— → —」);核验结果提示与
页首警告统一 show-icon;删除已声明未消费的 receipt_line_kinds
类型字段(方向信息已在 receipt_kinds 名称内)。
Co-Authored-By: Claude Code <noreply@anthropic.com >
2026-10-30 09:58:08 +08:00
liuwenxin 和 Claude Code
b0c599e513
fix(脚本): 收紧 T+ 运维脚本校验与恢复行为
...
login 脚本原先在结尾无条件 SET READ_ONLY:库名误指向其他
可写库时会把它锁成只读。改为开头校验库存在(不存在即中止)
并记录初始 Updateability,结尾仅当初始为 READ_ONLY 时恢复。
inventory 脚本的库名校验统一为 restore 脚本的字符白名单。
Co-Authored-By: Claude Code <noreply@anthropic.com >
2026-10-30 09:57:30 +08:00
liuwenxin 和 Claude Code
2fda2d118b
refactor(脚本): 复用应用连接校验与 URL 转义
...
verify_staging 原先 setattr 改写全局 Settings 单例,绕过
_ConnectionFile 严格校验与 sa 账号拒绝;profile_source 手工
拼接 ODBC 连接串且仅转义密码,database/user 含分号时可注入
连接属性。两者统一改为 model_copy 副本 + resolve_tplus_settings
完整校验 + SQLAlchemy URL 自建引擎,与 check_compatibility
同一路径,顺带消除 pyodbc connect 上下文的提交语义隐患。
真实源库连接的功能验证待本机 T+ 环境执行。
Co-Authored-By: Claude Code <noreply@anthropic.com >
2026-10-30 09:57:07 +08:00
liuwenxin 和 Claude Code
37eb51513f
fix(前端): 兼容非安全上下文的任务请求键生成
...
crypto.randomUUID 仅在 HTTPS 或 localhost 下存在,客户内网
以 http://<内网IP> 访问时该 API 为 undefined,而新建任务
对话框在页面挂载即调用,会直接 TypeError 导致整页白屏。
新增 newRequestKey 工具:优先 randomUUID,不可用时降级为
getRandomValues 拼 v4 格式(非安全上下文仍可用)。
Co-Authored-By: Claude Code <noreply@anthropic.com >
2026-10-30 09:56:41 +08:00
liuwenxin 和 Claude Code
ee801652e3
fix(运维): 限制 T+ 开发库端口仅本机访问
...
SQL Server 容器还原的是客户真实账套且带 sa 账号,1433 端口
原先绑定全部网卡会暴露到局域网。改为 127.0.0.1 回环地址,
与 MySQL 开发库的绑定先例保持一致,宿主机访问不受影响。
Co-Authored-By: Claude Code <noreply@anthropic.com >
2026-10-30 09:56:13 +08:00
liuwenxin
8a171a572c
docs(tplus): 完成交付设计并统一客户确认表与同版本基准
2026-10-28 16:31:55 +08:00
liuwenxin
651341b36c
fix(tplus): 统一兼容检查连接策略并默认启用加密
2026-10-28 16:01:38 +08:00
liuwenxin
0d63359acb
docs(tplus): 导入设计补充字典交叉验证的字段核验备注
2026-10-28 14:41:50 +08:00
liuwenxin
ea41dadb64
docs(tplus): 修正验收手册只读表述并补 B5 预留参数
2026-10-28 13:11:15 +08:00
liuwenxin
8242aae454
docs(tplus): 新增 2008 R2 验收手册与数据导入设计稿
2026-10-28 11:52:39 +08:00
liuwenxin
87a0884953
docs(tplus): 更新客户口径文档与开发计划
2026-10-28 11:43:13 +08:00
liuwenxin
ea989ce9ad
feat(tplus): 新增 T+ 同步管理页面与菜单入口
2026-10-28 11:42:51 +08:00
liuwenxin
4fe5916c2c
feat(tplus): 新增 T+ 只读同步服务与同步管理
2026-10-28 11:42:15 +08:00
liuwenxin
78bef43c06
feat(tplus): 新增同步暂存与任务管理迁移和环境配置
2026-10-28 11:41:38 +08:00
liuwenxin 和 Claude Code
823d9f02ec
docs: 补充文案约定与侧栏层级说明
...
- backend/README 新增「面向业务人员的文案」约定:param_registry 的
description 是唯一显示源、枚举值在页面上必须翻译、报错要给下一步、
init-dev.sql 种子必须与 registry 同源、模板层禁止出现开发者语汇
- frontend/README 增补侧栏层级口径、最近动态独立分页端点,以及分页的
两个坑(v-loading 不要罩到分页条上、翻页失败必须退回实际显示页)
- backend/tests/README 记录本轮运行结果
Co-Authored-By: Claude Code <noreply@anthropic.com >
2026-10-23 16:23:14 +08:00
liuwenxin 和 Claude Code
678db0499d
fix(frontend): 分页失败回滚到实际显示页
...
records 只在请求成功时更新,而分页器高亮绑的是 pageNum,失败不回滚就会
出现「高亮第 1 页、列表是第 2 页的数据」的永久错位,用户来回点才恢复。
- 用 shownPageNum / shownPageSize 记录实际显示的页,失败时 restoreShownPage
退回该页
- 回滚本身也要防竞态:只有本次请求仍是最新请求(seq === requestSeq)才回滚,
否则连点时旧请求失败会把用户刚点出的新页码覆盖掉,表现为页码自己跳回去
- 页码与条数在 await 之前取快照,避免等待期间被别的点击改动后记错「显示的页」
对外接口不变(load / search / onPageChange / onSizeChange / reloadAfterDelete),
现有调用方无需改动。
Co-Authored-By: Claude Code <noreply@anthropic.com >
2026-10-23 16:22:19 +08:00
liuwenxin 和 Claude Code
a00fca942d
refactor(frontend): 侧栏层级与表单页版式调整
...
侧栏层级口径改版(视觉稿 v4.2):组标题与菜单项同字号 13px,层级改由
「折叠箭头 + 组间留白 + 子项缩进」表达,不靠字号/字重压过父级。
- 去掉组标题的靛蓝竖标与激活项左侧 2px 竖条(竖条只能落在侧栏内边缘、
与白底悬空,是重复的第二个信号),激活只留白底浮起 + 靛蓝字
- 子项缩进 30px 收到 22px,图标父子统一 16px
- AppMenu 的 .app-menu 提供横向 10px 留白,BasicLayout 的 .app-aside__menu
只写上下内距——两处都用 padding 简写会同权重靠注入顺序决胜,横向留白
会被整条抹掉、条目贴到侧栏边缘
公司信息页字段自适应分列:卡片够宽时两字段并排,窄时折回单列;说明文字
紧贴控件下方,不再顶到卡片最右缘(宽屏下与输入框隔上千像素,视线关联断掉)。
设计稿同步升 v4.2。
Co-Authored-By: Claude Code <noreply@anthropic.com >
2026-10-23 16:21:19 +08:00
liuwenxin 和 Claude Code
61965e0b60
feat(ui): 面向客户的文案中文化
...
系统由财务与营销人员日常使用,不是给开发者看的。本批把会渲染到页面上的
文本统一改成业务语言:
- param_registry 的 22 条参数说明重写为「管什么、钱怎么变、何时该调它」,
去掉英文枚举名、需求编号、内部阶段号与精度约束
- 前端补 formatByCode:变更记录、版本历史、快照对比只给裸 value_text,
需回目录按编码补 value_type 与 unit 才能翻译枚举,否则这些位置仍显示
INCLUDE/FULL/1;编辑弹窗 BOOL 改为开启/关闭下拉
- 后端错误文案:模板报错用中文模板名并给出下一步,产品类别不再甩
municipal_water / rail_transit
- 台账与预览落库的计提说明口语化(rate_note / strategy_note / 聚合行 note),
去掉「基数开关=1」「#12 参数化」「9.8 方案公式」
分数原文 11/1125 与「聚合:20%+5%」不动——那是金额口径的可复核原文,
不是说明文案。init-dev.sql 种子 description 与 registry 同源。
Co-Authored-By: Claude Code <noreply@anthropic.com >
2026-10-23 16:20:05 +08:00
liuwenxin 和 Claude Code
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
liuwenxin 和 Claude Code
61fe5cca98
feat(dashboard): 最近动态改服务端分页
...
工作台「最近动态」原为聚合端点内嵌、固定截断前 20 条,操作日志变长后
既撑大响应又只能看到头部。改为独立分页端点:
- GET /api/v1/dashboard/activities,支持 pageNum/pageSize/module 筛选
- 模块筛选项与列表同源返回(全量模块名,不随翻页变化),前端不必再取一次全量
- 聚合端点去掉内嵌 activities,避免同一份数据两处查询
前端改用 usePagedList + 统一 AppPagination(每页 10/20/50),模块筛选由
本地过滤改为服务端筛选。集成测试 13 例(含翻页不重不漏 / 模块筛选 / 越权 403)。
Co-Authored-By: Claude Code <noreply@anthropic.com >
2026-10-23 16:15:09 +08:00
liuwenxin
32b7940067
feat(customer): 客户评级并入客户管理并落库
...
- customers 表新增 rating_score/rating_time(V13 迁移 + V10 SQL + init-dev 同步)
- 新端点 PUT /customers/{id}/rating:评分是档案属性,只存总分与评级时间(五项明细不落库)
- 列表排序 order_by=rating_score,未评分客户升序/降序都垫底,id desc 兜底稳定分页
- 前端 RatingCalculatorDialog 并入客户管理(评分列 + 评级计算按钮),删除独立页与路由
- 测试:评级保存/越界/排序垫底 3 例,test_customers.py 18 passed;schema 同步 216 passed
2026-10-23 10:59:33 +08:00
liuwenxin 和 Claude Code
b9781f7d3f
docs(design): 视觉稿升 v4.1 并新增表单页章节
...
承接 10-23 浏览器实测验收,把三处实测偏差与新增的表单页口径写回设计稿(代码为视觉权威,稿为描述):
- §03 新增「表格 · 行高」卡:单元格行高定 1.5(组件库默认 23px 会把单行数据行撑到 51px)
- §05 工作台:卡片内空态改为在剩余高度内垂直居中
- §09 月结:生命周期条四段圆点改为按阶段着色(草稿中性 / 待审批琥珀 / 已审定靛蓝 / 已驳回砖红,与选中态解耦),并补条右侧操作提示
- §10 新增「表单页(公司信息)」:两列版式(左 1fr + 右 480px 实景预览,≤1200px 折单列)、控件与说明同行(≥1600px 说明靠卡片右缘右对齐)、实景预览按真实登录页 1:1 复刻、独立的「生效范围」卡
- 封面与文件头注释同步 v4.1 变更说明
Co-Authored-By: Claude Code <noreply@anthropic.com >
2026-10-23 10:24:41 +08:00
liuwenxin
8e8bcaa5fb
feat(frontend): 视觉规范 v4 全站落地与实测修复
...
token 补齐与 EP 形体基准、全站版式工具类(.page-head/.card 系/.filter-bar/.ys-pill 等)、布局与登录页、工作台 Bento 与图表主题、打印稿纸、全部业务页统一到全局类;StatusTag 改 pill、AppPagination 加 background。
浏览器实测修复:表格行高收到 1.5;月结生命周期条圆点按阶段着色并加操作提示;工作台空态垂直居中;状态/结果列宽按胶囊内容给足(96/108/120),消除 Element Plus 省略号伪『小点』。设计稿反向同步圆点着色与流程条提示。
2026-10-23 09:58:48 +08:00
liuwenxin 和 Claude Code
1f65913002
docs: 更新视觉方向预览页与部署组件需求说明
...
- 设计/视觉方向预览.html 同步当前视觉体系(品牌色、语义三色、菜单
图标),作为前端视觉落地的对照稿
- 部署组件需求说明.docx 精简冗余章节
Co-Authored-By: Claude Code <noreply@anthropic.com >
2026-10-22 19:47:19 +08:00
liuwenxin 和 Claude Code
e61800dcdc
feat(frontend): 菜单图标与视觉设计系统落地
...
- 引入 @element-plus/icons-vue 官方图标库,菜单项按模块配图标,消除
纯文字导航的辨识成本(新增依赖已评估:Element Plus 官方同源维护)
- AppMenu/BasicLayout/router 同步:图标渲染、菜单结构与路由 meta 对齐
- index.css 视觉系统化:品牌色、语义三色(ok/warn/danger 及其 wash 层次)、
形体与材质(圆角、缓动、阴影、等宽字体)统一为 CSS 变量,并覆盖
Element Plus 主色
- 登录页、业务页、结算页、工作台、审批页等视图随新变量适配
验证:pnpm type-check 与 pnpm build 均通过;后端接口契约未变。
Co-Authored-By: Claude Code <noreply@anthropic.com >
2026-10-22 19:45:54 +08:00
liuwenxin 和 Claude Code
f88857e026
style(backend): ruff format 统一迁移脚本格式
...
存量迁移脚本未纳入格式化,与项目代码风格不一致(引号不统一、行宽未
收敛)。仅格式调整,无逻辑变更,不影响任何库的升级路径。
Co-Authored-By: Claude Code <noreply@anthropic.com >
2026-10-22 19:44:29 +08:00
liuwenxin 和 Claude Code
5ece9f6dab
refactor(backend): 仓储层散参数收敛为查询 DTO
...
仓储层的 list_*/count_* 此前以 keyword/status/offset/limit 四五个散参数
传参,调用点重复铺开、易漏传且不可扩展;按项目「参数 >4 封装 DTO」的
约定统一收敛为各模块的 Query 对象(如 RoleQuery、BusinessQuery),
服务层与测试调用同步调整,行为不变。
- repositories 层查询方法签名改为 (session, query),分页与筛选条件
由 Query 承载,_apply_filters 同步收口
- schemas 层补齐各模块 Query 模型(approval/business_role/report 等)
- services 层调用点同步改为传 Query
- tests 随之调整;新增用例:待办角色流转(财务通过后领导出现待办)、
参数预览顺序稳定
验证:全量 pytest 900 passed(11:08);单元 526 passed;ruff check 绿。
Co-Authored-By: Claude Code <noreply@anthropic.com >
2026-10-22 19:43:20 +08:00
liuwenxin
c48d24ab6d
merge: 合并 V12 审批版本号唯一键与 T+ 清单 v1.7 至 main
...
- V12:审批单 (order_type, ref_id, version_no) 唯一键 + 取号改锁读
- 审批详情展示快照采集时间
- T+ 对接清单升至 v1.7,清理过期版本文件;补充部署硬件需求
- 全量回归 897 passed
2026-10-22 13:42:25 +08:00
liuwenxin
d0726487e9
merge: 合并 main 至 docs/tplus-field-mapping(V12 审批版本号批次收口前同步)
2026-10-22 13:32:30 +08:00
liuwenxin 和 Claude Code
a84fe9b316
chore: 忽略嵌套目录下的 e2e 失败截图与临时文档目录
...
- `frontend/e2e/*.png` 改为 `frontend/e2e/**/*.png`:e2e 脚本按相对路径
写 failure.png,在不同 CWD 下会落到 frontend/e2e/e2e/
- 忽略 .tmpdocx/(AI 生成文档的脚本与预览截图)
Co-Authored-By: Claude Code <noreply@anthropic.com >
2026-10-22 13:31:57 +08:00
liuwenxin 和 Claude Code
94e2957359
docs: T+ 清单升至 v1.7 并清理过期版本文件
...
- 新增 docs/T+对接数据需求清单_v1.7_2026-10-20.xlsx(v1.6 可读性改造
的进一步结构重构:结论总览首屏、业务列前置、技术列后置分区)
- 保留 v1.6 供对照;删除已被替代的 T+ 清单 2026-10-15/v1.4/v1.5、
待澄清问题清单 2026-10-15(两份)、待确认事项排序表 2026-10-16
(两份)与 2026-10-13 阶段报告(均有 10-19/10-20 后继文档)
- 新增部署硬件需求(txt 源文与 docx 说明)
Co-Authored-By: Claude Code <noreply@anthropic.com >
2026-10-22 13:31:57 +08:00
liuwenxin 和 Claude Code
ebc9595de2
feat(approval): 审批详情展示内容采集时间
...
- 快照单显示「内容采集时间(送审版本)」;live 单显示「打开详情时实时
读取(非送审版本)」,让复核者明确看到的是哪个时点的内容
- live 分支不展示 new Date() 生成的时刻:渲染函数里的时间非响应式,
且 toISOString 为 UTC 会差 8 小时
Co-Authored-By: Claude Code <noreply@anthropic.com >
2026-10-22 13:31:19 +08:00
liuwenxin 和 Claude Code
9964281c14
fix(approval): 版本号唯一键兜底 + 取号改当前读防并发重复
...
- V12 迁移:先重排存量重复 (order_type, ref_id) 分组的 version_no
(V11 把存量一律置 1,而 V11 前重提是新建行),再加
uk_approval_orders_order_type_ref_version;只重排真有重复的分组,
避免改动前端已展示过的历史版本号
- _next_version 改锁读(select version_no ... FOR UPDATE,最大值在
Python 侧算):请求级鉴权的普通 SELECT 已把 REPEATABLE READ 快照
锚定在请求开始时刻,原 MAX 快照读在并发下会算出同一版本号;
聚合 + FOR UPDATE 为 MySQL 明确禁止,故不锁聚合结果
- 编辑与月结提交路径把 1062 收敛为 400「提交冲突(版本号生成重复),
请重试」,其余完整性错误原样上抛;submit_order 内不 catch/rollback
- 驳回清空方案的过时注释改为 V11 起的 append-only 语义(置历史不删行)
- init-dev.sql 同步唯一键与 alembic_version 7f4f7b918bc4,导出 V12 SQL
- 测试:集成 +5(锁读 SQL 形态、两会话快照回归、唯一键 1062、冲突 400、
正常递增)+ 单元 +1;工作台假审批单改用不同 ref_id 适配唯一键
- 全量回归 897 passed;ruff 与前端 type-check 绿
Co-Authored-By: Claude Code <noreply@anthropic.com >
2026-10-22 13:31:01 +08:00
liuwenxin 和 Claude Code
694d21d1fd
test(e2e): 二次分配流程断言改为取实际方案并补审批内容校验
...
审批详情的送审内容断言不再硬编码参与人姓名(下拉取人员列表前两项,
未必是脚本刚建的 t_e2e 员):改为经业务详情接口取回实际保存的方案,
逐参与人断言姓名与比例出现在审批抽屉中。顺带修掉原脚本清理环节的
隐性缺陷——开关开启时业务有在途审批单,界面删除被拦截而脚本无断言,
数据从未真正清理;现脚本内显式关闭审批开关并保证结束还原为 1。
Co-Authored-By: Claude Code <noreply@anthropic.com >
2026-10-21 14:25:39 +08:00
liuwenxin 和 Claude Code
4c32a556de
feat(approval): 审批单内容快照与二次分配方案版本化
...
补齐 code-review 遗留 2 项:审批单此前只固化 ref_id/refer_no 指针,复核者看到
的是业务当前内容;二次分配方案在编辑替换与驳回清空时一律物理删除,方案事实
无处回溯。
- 审批单加 version_no 与 snapshot_json(信封 schema_version/order_type/
captured_at/data);二次分配、月结、调整单三类提交均固化送审内容,开关关闭
的自动通过路径同样写快照;详情按 snapshot/live/missing 三态回显,历史单
只读回退当前内容并显式告警,不回填历史快照
- 二次分配方案行改 append-only 版本化(version_no/is_active,唯一键扩为
business+version+personnel):编辑替换与驳回清空只置历史,核算与详情默认
只取生效行,业务详情新增 allocation_history
- 送审内容未变不重提、方案未变不新增版本:判据统一为送审内容,两个
version_no 语义解耦(方案版本=内容第几版,审批单版本=第几次送审)
- 审批单列表、工作台待办、审批超时预警三处 defer 快照列,避免整列拉取
- 月结提交取行加 for_update,防并发提交算出重复的审批单版本号
- 修复审批类型筛选上界 le=2(调整单无法筛选)、快照金额把空值写成 0.00
- V11 迁移三件套同步(Alembic / db/migration / init-dev.sql)
测试:单元 +16(方案内容比较 10、审批入参 6)、集成 +12;全量 891 passed。
Co-Authored-By: Claude Code <noreply@anthropic.com >
2026-10-20 18:30:51 +08:00
liuwenxin
4c10475228
merge: 合并 T+ 字段映射草案与清单 v1.5 至 main
2026-10-20 10:57:09 +08:00
liuwenxin 和 Claude Code
2e0c64849b
docs(tplus): 收敛 IT 待确认事项并更新催办清单
...
原 18 项收敛为 13 项 IT 待确认 + 1 组业务裁决,每项附字典候选字段与来源;同步更新待确认汇总第三节与文档待办。字段级证据见映射草案 v0.1。
Co-Authored-By: Claude Code <noreply@anthropic.com >
2026-10-20 10:56:07 +08:00
liuwenxin 和 Claude Code
33b9b00bb0
docs(tplus): 新增 T+12.3 六类字段映射草案与需求清单 v1.5
...
全量解析 T+12.3 数据字典(1,457 页 / 931 表 / 21,019 字段,0 失败),按 v1.4 的 75 项逐项回填 T+ 候选字段、类型、枚举与系统目标列;必须项候选覆盖率 91.4%。v1.5 补齐 IT 收敛表(13 项 + 1 组业务裁决)与不覆盖字段 12 条,并修复 v1.4 单 sheet 与 21 项/#20 笔误。
Co-Authored-By: Claude Code <noreply@anthropic.com >
2026-10-20 10:55:57 +08:00
liuwenxin
d03ddadd1a
merge: 合并 M4 阶段报告至 main
2026-10-20 10:19:22 +08:00
liuwenxin 和 Claude Code
c319a6a428
docs: M4 阶段报告(2026-10-20)
...
汇总报表统计与工作台交付范围、关键口径、测试证据与遗留事项。
Co-Authored-By: Claude Code <noreply@anthropic.com >
2026-10-20 10:19:15 +08:00
liuwenxin
36114745db
merge: 合并 M4 工作台与报表修复至 main
2026-10-20 10:18:40 +08:00
liuwenxin 和 Claude Code
b86eaf2b00
docs: 记录 2026-10-20 全量回归与 e2e 实跑结果
...
全量 862 passed(11:32);e2e role_home 4/4、report_flow 12/12(按业务编号下钻断言)、calc_settlement 8/8;审批开关已还原、无测试账号残留。
Co-Authored-By: Claude Code <noreply@anthropic.com >
2026-10-20 10:10:32 +08:00
liuwenxin 和 Claude Code
71df9a16ed
docs: 修复催办清单行首井号被误判为标题
...
Co-Authored-By: Claude Code <noreply@anthropic.com >
2026-10-20 10:05:28 +08:00
liuwenxin 和 Claude Code
980628bb8f
test(e2e): 回款统计改按本次业务编号下钻断言
...
历史 e2e 数据会累计到同一回款区间桶,断言桶聚合值在重复运行时必然失败;改为展开目标桶后按本次业务编号定位下钻行并校验金额,脚本可无副作用重跑。
Co-Authored-By: Claude Code <noreply@anthropic.com >
2026-10-20 10:04:42 +08:00
liuwenxin 和 Claude Code
c8131588bf
chore: 忽略 T+12.3 数据字典参考资料
...
- docs/**/*.rar、docs/T_12.3数据字典/ 与 __MACOSX/ 不入版本库
Co-Authored-By: Claude Code <noreply@anthropic.com >
2026-10-20 09:47:41 +08:00
liuwenxin 和 Claude Code
b6d84033ce
docs(plan): 回填里程碑完成状态与开放问题结论
...
- 开发计划:M3/M4 ⑤⑧/⑦⑨ 标记完成,依赖图与里程碑状态同步
- 开放问题表补 2026-10-20 结论映射;补充需求已随 SRS V2.1 回填
- 待确认事项汇总与催办清单同步当前状态
Co-Authored-By: Claude Code <noreply@anthropic.com >
2026-10-20 09:47:41 +08:00
liuwenxin 和 Claude Code
698df6d31a
docs: 同步报表与工作台口径及测试记录
...
- backend/README:全公司 5% 每位有聚合行经理各计一次并与月结对拍、
待办按角色过滤、预警排除终止业务与 total 计数、趋势范围查询
- backend/tests/README:新增修复回归与 e2e 全链路运行记录、缺陷表
- frontend/README:普通用户落地页规则、预警徽标、e2e 实跑结果
Co-Authored-By: Claude Code <noreply@anthropic.com >
2026-10-20 09:47:03 +08:00
liuwenxin 和 Claude Code
39a3fa7796
fix(dashboard): 修复普通用户落地页与待办角色过滤
...
- 新增 router/access.ts 统一准入与落地页(工作台→业务数据→回款),
守卫/登录回跳/菜单/面包屑复用;普通用户不再被无限重定向
- 待办按角色映射在途审批节点(财务/领导/admin),admin 不代办但可查全部
- 预警排除已终止业务;WarningBlock.total 为全量命中数;回款趋势改日期范围
- 工作台加载请求序号防竞态;KPI 口径说明补经理分成/调整单
- 新增 role_home_flow e2e,更新 system_management 普通用户断言
Co-Authored-By: Claude Code <noreply@anthropic.com >
2026-10-20 09:45:03 +08:00
liuwenxin 和 Claude Code
ebb3a92f25
fix(report): 报表统计修复批次——对账口径、导出审计与月份校验
...
- 部门汇总全公司 5% 按每位有台账聚合行的营销经理各计一次,
团队应发小计取聚合额 + 调整净额;与月结 total_payable 对拍
(有调整单时 + adjust_net_total),分列舍入差单列
- 人员归属按行类型拆分(普通/经理个人户/仅调整单),调整单全量并入,
团队与未分配不重复;按经理筛选只汇总展示团队
- 导出改单 sheet 分块签字稿,审计覆盖取数与超限;筛选页眉 ID→名称
- 月份校验抽 core/month,报表/月结/调整单非法月份统一 400;
岗位只读选项供财务/领导筛选
- 前端修复:部门下钻带入筛选、回款多桶独立状态、打印截断判定、
summary 请求序号保护
Co-Authored-By: Claude Code <noreply@anthropic.com >
2026-10-20 09:44:43 +08:00
liuwenxin 和 Claude Code
294d99a0d3
feat(dashboard): 工作台前端四区块与 ECharts 图表
...
- /dashboard 由 Bento 占位升级:KPI 四卡(本月绩效/应付/核算人数/团队数+月结状态)、近 6 个月绩效折线与回款柱状、待办/预警列表与跳转、最近动态时间线(按模块筛选)、常用操作
- ECharts 5.6 按需引入(core + Bar/Line/Grid/Tooltip + SVGRenderer);textStyle.fontFamily 显式设为思源黑体栈(Windows 默认雅黑,字体商用合规红线)
- 路由 allowedRoles admin/finance/leader,与后端 require_roles 双层
- 新增依赖 echarts@5.6.0
Co-Authored-By: Claude Code <noreply@anthropic.com >
2026-10-19 18:45:17 +08:00
liuwenxin 和 Claude Code
6ff202d637
feat(dashboard): 工作台四区块实时聚合与风险预警参数
...
- 后端 /api/v1/dashboard 单端点返回四区块:经营总览(绩效/应付/人数/团队数/月结状态/近 6 个月趋势)、待办(待审批 + 回款未指定批次 + 同步显式降级)、风险预警(回款逾期/审批超时,阈值参数化)、最近动态(操作日志)
- dashboard_service 实时派生(不落表、不引调度器);参数快照一次解析;总览只做 SQL 聚合,不复用报表的重查询
- V10 迁移新增预警参数三项(warning.enabled / warning.receipt.overdue.days=90 / warning.approval.timeout.days=3),参数注册表 19→22,init-dev 与 V10 SQL 双轨同步
- 测试:test_dashboard 5 例(权限文案/总览对账+非法月份 400/待办三类/预警命中与参数关闭/动态来源);全量 852 passed
- 依赖闭包并入:core/month.py 月份校验、api/v1/base/business_roles.py(router 已挂载的岗位只读端点)、test_month_validation
- 修复:alembic --sql 在 Windows 按控制台 GBK 输出,V10 SQL 以 UTF-8 重新导出(README 已记)
Co-Authored-By: Claude Code <noreply@anthropic.com >
2026-10-19 18:44:15 +08:00
liuwenxin 和 Claude Code
b7cfdfa50a
docs: 需求规格说明书升 V2.1(2026-10-19)
...
回填 2026-10-16 业务方 24 项澄清答复(12 确认默认 / 4 项与默认不同已落实 / 仍开放三态)、
AC-12 口径修正、二次分摊拆行与月末取参实现口径;FR 42 条 / AC 12 条结构校验通过,
作废口径仅出现在修订对照与作废声明语境。
Co-Authored-By: Claude Code <noreply@anthropic.com >
2026-10-19 16:34:05 +08:00
liuwenxin 和 Claude Code
04a1a0d307
feat(report): 报表四页与打印视图
...
- 个人绩效明细/部门绩效汇总/业务统计/回款统计四页,路由组「报表统计」order19-22(allowedRoles admin/finance/leader)
- 明细分页页脚全筛选合计;部门汇总成员内联与跨页下钻;业务统计展开回款/台账;回款统计 8 档区间(档位由后端下发)与桶下钻
- 打印视图独立顶层路由(不挂 BasicLayout):公司页眉走 public 端点、循环翻页取全量(2000 行截断提示)、@media print A4 横版每页表头、签字栏
- AppPagination 只派发 page-change/size-change,四页按事件绑定并补初始加载(@change/v-model 不生效的同类缺陷)
- e2e report_flow.py:四页筛选与导出下载、打印视图 window.print 桩断言
Co-Authored-By: Claude Code <noreply@anthropic.com >
2026-10-19 16:33:37 +08:00
liuwenxin 和 Claude Code
2a1939d2e7
feat(report): 报表统计四表查询与 Excel 签字导出
...
- 四表接口 /api/v1/reports/*:个人明细(全筛选 summary)、部门汇总(团队基数与月结聚合同源、12.5%/5% 分列、零行经理、冻结对照)、业务统计(排除聚合行)、回款统计(8 档区间恒在、回款金额按 receipt_id 去重防分摊拆行翻倍)
- Excel 导出:公司页眉/财务复核栏/领导签字栏/日期/版本、Decimal 原值 + number_format、文本防公式注入、2 万行超限 400、导出行为入操作日志
- manager_share 共享模块:月结聚合与报表部门汇总同源取参与分桶(薄委托保留测试入口)
- 区间元数据落 core/report_meta(repository 需要类型,避免反向依赖 service 层)
- 准入 require_roles(admin/finance/leader),支持自定义 403 文案
Co-Authored-By: Claude Code <noreply@anthropic.com >
2026-10-19 16:33:31 +08:00
liuwenxin 和 Claude Code
cfd2a196f2
style(frontend): 表格操作列统一样式与确认框视觉收敛
...
- 新增 table-actions.css:操作列 flex 居中、间距交给 gap、破坏性动作前
加分组竖线、链接按钮悬停加深并加下划线(默认浅靛蓝在表格底色上对比度
不足);包装 span 改 flex,消除行内盒基线导致的约 1.7px 垂直错位
- 11 个列表页操作列套用统一容器与分隔线,列宽按动作自然宽度调整并居中
- 确认框不再传 type:warning(Element Plus 的实心黄圆图标与正文并排成
两列,标题行反被留空),图标改由全局样式画在标题行左侧,正文与标题
文字左对齐;图标为 CSS 伪元素,不进无障碍树
验证:pnpm type-check 绿
Co-Authored-By: Claude Code <noreply@anthropic.com >
2026-10-19 16:33:06 +08:00
liuwenxin 和 Claude Code
cc4c51359c
fix(frontend): M3 台账/月结/审批三页数据加载与分页——e2e 首跑抓出
...
calc_settlement_flow e2e 首跑即暴露三处真实缺陷(三页自 2026-10-17 交付
起一直「暂无数据」且翻页失效,此前无 e2e 覆盖):
- api/{calc,settlements,approvals}.ts 误用默认导出 `request`(axios 实例,
返回 AxiosResponse 未解包),usePagedList 拿到的 data.list 恒 undefined
→ 三页永远「暂无数据」;改为具名导入 `{ request }`(统一信封解包版)
- 三页均无 onMounted 初始加载 → 进页不取数;补 `onMounted(() => void load())`
- 三页 AppPagination 用 `v-model:page-num` + `@change`(组件无该事件、
也未实现 update:*)→ 翻页失效;统一为 `:page-num/:page-size` +
`@page-change/@size-change`
- 并入并行会话的操作列 align="center" 样式与 M4 报表页 README 段落
验证:e2e calc_settlement_flow 8 步全过(API 预置→台账筛选→重算对话框
按回款 ID→版本三态筛选→月结生成→提交锁定→详情抽屉);type-check 绿
Co-Authored-By: Claude Code <noreply@anthropic.com >
2026-10-19 16:24:18 +08:00
liuwenxin 和 Claude Code
036834a1d0
style(backend): 验证码配色切换至 v3 中性色体系
...
字符/干扰/噪点/底色改用 --ys-ink / --ys-ink-2 / --ys-ink-3 / --ys-paper
对应色值,与 2026-10-12 后的前端视觉方向一致;识别难度参数未变,
tests/unit/test_captcha.py 12 项通过。
Co-Authored-By: Claude Code <noreply@anthropic.com >
2026-10-19 15:55:02 +08:00
liuwenxin 和 Claude Code
8903a194c9
style(frontend): 字体商用合规——移除微软雅黑,统一思源黑体开源栈
...
- index.css 两处字体栈移除 Microsoft YaHei:品牌字与正文统一思源黑体(OFL)
+ HarmonyOS Sans 开源序列,Helvetica/Arial 仅作西文回退
- README 视觉章节对齐 v3 靛蓝体系:配色表/质感来源/落地方式/签名元素/构图
更新,旧「宋体品牌字」「两档金」表述修正并写明商用字体禁用约定
- 设计预览页字体栈与品牌字候选卡同步,echarts chartFont 去雅黑
Co-Authored-By: Claude Code <noreply@anthropic.com >
2026-10-19 15:54:59 +08:00
liuwenxin 和 Claude Code
a2bd3960e1
feat(report): M4 报表基础设施——元数据、查询模型与只读聚合仓储
...
- report_meta:回款天数区间桶(含可空/负值兜底桶)、客户类型标签、导出上限
- schemas/report:明细/汇总查询入参与分页响应,金额比例全程 Decimal
- report_repository:报表专用只读聚合,显式排除台账聚合行、口径与月结区分
- constants:新增报表统计模块与导出动作常量
Co-Authored-By: Claude Code <noreply@anthropic.com >
2026-10-19 13:53:34 +08:00
liuwenxin 和 Claude Code
fb398c3835
test(e2e): 绩效核算与月度结算端到端用例——台账重算与月结审批链路
...
覆盖台账页按回款 ID 重算、版本筛选三态、月结生成/提交审批/明细回显,
用随机远未来月份造数,重复运行互不碰撞。
Co-Authored-By: Claude Code <noreply@anthropic.com >
2026-10-19 13:50:13 +08:00
liuwenxin 和 Claude Code
c5f219423b
docs: 2026-10-19 业务答复与需求留档——T+ 清单 v1.4、排序表、催办清单与 M4 计划
...
- T+ 对接数据需求清单 v1.4 与业务方答复回执
- 待确认事项排序表两版、待答复催办清单
- 剩余开发计划回填 3.3.1 答复落定状态
- 新增 M4 报表统计实施计划
Co-Authored-By: Claude Code <noreply@anthropic.com >
2026-10-19 13:49:42 +08:00
liuwenxin 和 Claude Code
a536608b53
docs(tests): 2026-10-19 业务答复落实批次记录与分摊尾差缺陷表更新
...
Co-Authored-By: Claude Code <noreply@anthropic.com >
2026-10-19 13:29:37 +08:00
liuwenxin 和 Claude Code
ccfd20651b
feat(calc): 二次分摊拆行与 #12 单笔侧开关——按方案比例拆给参与人、余额归负责人
...
- _personal_rate 的 TPL_MANAGER_SHARE 分支读 manager.personal.included:1=按业务员递减公式计提,0=单笔落 0(现状)
- _load_allocations 装载生效方案并防御拦截(合计超 100%、参与人含负责人)
- _persist_ledger 拆行落库:参与人=份额×比例(q2)、负责人=q2 全额−已分累计(行合计守恒防分漂);快照带 alloc_plan/alloc_role/alloc_ratio
- _prepare_mode 重算改 list_active_by_receipt 作废全部拆分行;uk 三列版支持同回款按人多行
- business_service 保存侧同口径校验(超 100% 400、负责人自分 400、hint 文案定稿)
- 集成用例 +5(拆行守恒/叠加进度登记/重算全作废/双拦截)+保存侧 3 条
Co-Authored-By: Claude Code <noreply@anthropic.com >
2026-10-19 13:15:59 +08:00
liuwenxin 和 Claude Code
48c0a86279
docs: 推送状态补正——feat/m3-increments 已推送至远端 e48cfb7
...
Co-Authored-By: Claude Code <noreply@anthropic.com >
2026-10-19 13:13:23 +08:00
liuwenxin 和 Claude Code
e48cfb752d
docs: 待确认事项汇总更新至 2026-10-19(答复落实/code-review/远端恢复)
...
- 立即待办:远端 Git 服务已恢复(ls-remote 实测连通);标注远端已到
35fe37f、本地领先 8 提交
- 业务方澄清:#12 经理个人户基数 → 已落实为参数 manager.personal.included
(默认 0=不计入);#5/#7 审批开关默认开启、#14 首日整 10‰(A 口径)、
#16 试用期参数撤销、#17 参数查看放开、#19 增量备份 → 均已落实(2026-10-19)
- 里程碑:M3 剩余改为已完成主体 + 余项(二次分摊待 #1–#3、答复回填批次
收口);杂项收口标注 calc_receipt 与 settlement_service 拆分进度
- T+ 小节:清单已升 v1.4(2026-10-19),本节口径待收编
- 新增修复批次口径记录:月结聚合/月工资按月月末取参(单笔行按回款日)
Co-Authored-By: Claude Code <noreply@anthropic.com >
2026-10-19 13:01:50 +08:00