yml2213
|
bae9a5ae5e
|
重构:硬切履约状态唯一真源
|
2026-11-08 19:44:27 +08:00 |
|
yml2213
|
fc928c6b18
|
feat(worker-platform): 支持客户退款冲正并关闭订单
|
2026-11-05 17:15:41 +08:00 |
|
yml2213
|
64e04cc667
|
fix(finance): 历史归档订单退款跳过期间校验
归档订单退款不进入财务口径,不应被历史月份/退款月份的关账状态阻断;
非归档订单退款仍严格校验期间。
|
2026-11-01 16:24:18 +08:00 |
|
yml2213
|
5d7904f6ee
|
fix(finance): 历史订单退款不再进入新财务口径
- 断代前 archived 订单的退款只保留业务记录,不再生成冲减事实/总账
- 退款后的事实与费用重算只针对非归档订单
- 移除 refund_adjustment 渠道值的前端筛选与标签
- 迁移 116 的列约束保留,不再写入该值
|
2026-11-01 16:22:49 +08:00 |
|
yml2213
|
20287916b1
|
fix(finance): 退款所属期间关账时阻断退款
- 手工退款按实际退款日期校验期间
- 平台退款按当前退款月份校验期间
- 避免退款成功但冲减行被关账跳过的静默丢失
|
2026-11-01 15:21:53 +08:00 |
|
yml2213
|
624c0ef4af
|
feat(finance): 历史订单退款按退款日入账
- 迁移 116 新增 refund_adjustment 渠道值,并允许该类行净收入为负
- 销售事实按退款日聚合 archived 订单的已确认退款,写冲减行
- 退款后同时回填原销售日与退款日的事实与总账
- 退款同时重算相关订单项的费用快照(比例费按净收入)
- 前端渠道筛选与标签支持「历史退款冲减」
|
2026-11-01 14:46:11 +08:00 |
|
yml2213
|
65b7f4f9dc
|
refactor(finance)!: 强制渠道模型,移除旧履约方式与同步链路
- 删除 fulfillment_mode 相关的旧同步/回填链路与定时任务
- 删除 cost_finance_sync、成本快照同步、人工商品归一等遗留服务
- 迁移 113 直接删除 order_items.fulfillment_mode 及其索引约束
- 断代脚本自带归档步骤,不再依赖独立回填脚本
- 退款/事实/总账统一走渠道版销售事实
|
2026-10-31 19:52:03 +08:00 |
|
yml2213
|
a6ccb2e2d8
|
perf(finance): 统一把 Intl.DateTimeFormat 提到模块级,消除逐行构造开销
承接 14b595b0。以下 7 处仍在函数体内 `new Intl.DateTimeFormat(...)`,
单次构造约 0.5ms,按行/按条调用时会线性放大:
- utils/finance-date-range.ts formatShanghaiDate
- utils/http.ts (已在上一个提交修复)
- scheduler/cost-finance-sync-job.ts today
- finance/sales-facts-service.ts formatDateOnly
- finance/order-refund-service.ts toChinaDate
- admin/admin-finance-service.ts chinaDateParts
- admin/admin-dashboard-service.ts resolveChinaTodayRange
- scripts/sync-cost-finance.ts formatShanghaiDate
均为同选项的纯 hoist,输出逐字节不变:formatShanghaiDate 用 9 例跨时区/
毫秒/闰日语料与旧实现比对一致;其余为相同 en-CA/en-US + Asia/Shanghai
选项的等价替换,formatToParts 的取值改为单次遍历、去掉 fromEntries/reduce。
|
2026-10-30 21:23:31 +08:00 |
|
yml2213
|
9d5af359fa
|
feat(finance): 完成财务控制、L1 钱包硬化与迁移收敛
- P0/P1:影子总账追加调整、关账/退款/资金/积分幂等、成本版本追溯、对账订单项维度
- 迁移收敛:原 103–114 合并为 103_finance_foundation、104_finance_controls、105_work_order_consignment
- 数据:L1 钱包 BIGINT/CHECK/奖励幂等;重复奖励审计口径修正与人工核对清单
- 报表:销售毛利缺失成本收入提示,旧收支页明确现金流口径
- 文档:同步迁移基线、合并评估、代码复核与上线说明
|
2026-10-27 16:08:16 +08:00 |
|
yml2213
|
6b0078f680
|
fix(finance): 收口快手退款路由并修复销售事实变更后的总账同步
- 平台退款路由从通用订单路径改为
POST /api/v1/admin/kuaishou-industry/orders/:orderId/refunds/approve-and-record,
服务改名 approveAndRecordKuaishouRefund,明确仅快手 91
- 总账同步改为未关账期间按日整体重建销售凭证,解决收入回填/退款重算后
旧凭证金额不更新的问题;删除与重建放在同一事务,已关账期间保持不动
- 文档明确 revenue:backfill 是存量订单退款的前置条件:
revenue_amount_fen=0 会导致退款登记按钮置灰
- 本地生产副本已执行 revenue:backfill:375,447 行全部回填,
order 375483 可退金额恢复为 237.00 元
验证:backend check 844(840 pass / 4 skip);frontend check 172 + build;
集成测试通过(代录、总账平衡、关账阻断、对账)。
|
2026-10-26 13:48:53 +08:00 |
|
yml2213
|
62763ddf0c
|
feat(finance): 支持代录指定客服账户,并上线影子总账/对账/关账/快手平台退款
- 人工确认履约:管理员/财务/运营可传 fundAccountId / creditOwnerAdminUserId
指定客服备用金/积分账户;客服仍强制本人账户
- 新增迁移 112:finance_accounts / journal_entries / journal_lines /
periods / reconciliations / reconciliation_items,种子 11 个科目
- 影子总账:销售事实按日生成收入/退款/成本凭证,支持手工凭证、试算平衡;
不接管钱包余额;总账同步接入定时任务与退款重算
- 期间关账/反关账:关账先补凭证并校验试算平衡,closed 期间禁止新增凭证
- 平台对账:JSON 账单导入,按 provider + platform_order_id 匹配订单/退款,
标记 matched/amount_mismatch/missing_order/missing_refund/duplicate
- 平台退款:快手行业(91)同意退款 API 接入,成功后落 source=platform;
抖音/拼多多返回 501,保留手工退款
- 新增后台「财务 → 总账与对账」页面(总账/期间/对账三个 Tab)
- 集成测试扩展到代录、总账平衡、关账阻断、手工凭证、对账匹配
验证:backend check 844(840 pass / 4 skip);frontend check 172 + build;
迁移 112 在 scratch 库全量执行并重跑幂等;本地生产副本已升级到 112,
销售事实同步 56 条凭证,借贷合计 1,885,351,864 = 1,885,351,864。
|
2026-10-26 13:32:47 +08:00 |
|
yml2213
|
faf56e567e
|
feat(finance): P2 手动退款登记与成本异常闭环
- 迁移 112:order_refunds(订单项级退款,整单拆多条共享 batch_no,source/external_ref 预留平台 API)+ cost_exceptions.resolution_note
- 新服务 order-refund-service:整单/指定商品退款、可退金额校验、撤销、全额退完同步 pay_status
- 销售事实改为按有效退款记录冲减;无记录时仍兼容 pay_status=refunded 的历史全额退款
- 订单详情新增退款登记与退款记录表,商品明细显示收入/已退/可退
- 全额退款自动关闭该订单项成本异常并写处理备注;成本异常处理改为带备注弹窗
- 财务事件 UNION 接入退款记录,文档同步 P2 状态与 API
|
2026-10-24 17:18:51 +08:00 |
|