Commit Graph
934 Commits
Author SHA1 Message Date
yml2213 8b0666caec Merge remote-tracking branch 'gitea-aliyun/main' 2026-11-02 07:54:57 +08:00
yml2213 eb5c18b5b5 refactor(finance): 清理 legacy_platform 的展示与死查询
- 未归一组统计默认渠道补上 third_party_voucher,移除已无数据的 legacy_platform
- 前端移除历史归档/历史平台的类型与标签
- 保留后端口径的 legacy_platform→archived 筛选别名,旧链接不报错
2026-11-01 17:32:18 +08:00
yml2213 d80150ff04 docs(db): 修正 113 迁移中已过时的注释
- 删除“生产停在 111 / 由 114 删列 / 交给回填脚本”等合并前描述
- 改为单条迁移内完成回填、删列、事实改名与索引
- 更新卡券规则生成、异常原因、接单平台判定等注释
2026-11-01 16:38:11 +08:00
yml2213 769bc69bcf refactor(db): 财务渠道迁移合并为单条 113
生产当前在 112,原 113–118 六条迁移合并为 113_finance_channel_cutover:
- 渠道/状态三列 + 从 fulfillment_mode 回填
- 删除旧列及旧索引
- 销售事实列改名 channel
- 财务管道增量索引(原 117/118)
- 移除不再使用的 refund_adjustment 约束(历史退款不入财务)

42 万行副本实测 49 秒完成;生产只需执行一条迁移,不再需要中间回填脚本。
2026-11-01 16:34:12 +08:00
yml2213 64e04cc667 fix(finance): 历史归档订单退款跳过期间校验
归档订单退款不进入财务口径,不应被历史月份/退款月份的关账状态阻断;
非归档订单退款仍严格校验期间。
2026-11-01 16:24:18 +08:00
yml2213 8391912bda perf(finance): 管道增量索引与异常批量入队
生产副本 42 万单压测发现:
- carrier_missing 查询在 26 万条上 15s 超时 → 改 anti-join,异常去重改批量
- 缺成本异常逐条 3 条 SQL,12 万人工单会跑几十分钟 → 按 scope 批量入队
- 新增 117/118 部分索引,成本快照/人工挂配置/载体检查走 id 顺序扫描
- 人工挂配置查询改为按配置 SKU 数组过滤,避免全量人工单排序
2026-11-01 16:22:52 +08:00
yml2213 5d7904f6ee fix(finance): 历史订单退款不再进入新财务口径
- 断代前 archived 订单的退款只保留业务记录,不再生成冲减事实/总账
- 退款后的事实与费用重算只针对非归档订单
- 移除 refund_adjustment 渠道值的前端筛选与标签
- 迁移 116 的列约束保留,不再写入该值
2026-11-01 16:22:49 +08:00
zhaoxing 5879568ad0 fix(worker): 用户付款金额仅待完善可修改并补后端校验 2026-11-01 16:22:45 +08:00
zhaoxing d135a34e35 fix(worker): 用户付款金额未变化时不再写审计日志 2026-11-01 16:15:47 +08:00
zhaoxing c46d9083a8 Merge branch 'main' into dev 2026-11-01 15:53:27 +08:00
zhaoxing 2ce8f601df fix(worker): 不满额拼单母单显示待抢单,满额后才按份额状态推进 2026-11-01 15:43:20 +08:00
yml2213 a692723c73 docs+test: 补充成本缺失、退款期间与追溯限制说明 2026-11-01 15:21:55 +08:00
yml2213 20287916b1 fix(finance): 退款所属期间关账时阻断退款
- 手工退款按实际退款日期校验期间
- 平台退款按当前退款月份校验期间
- 避免退款成功但冲减行被关账跳过的静默丢失
2026-11-01 15:21:53 +08:00
yml2213 fd6d2d561b feat(pipeline): 渠道判定后立即归一商品并算成本
- 新增按订单项定向归一,避免新判定订单等冷通道
- 判定/指定渠道后立即归一 → 算成本 → 按业务日回填事实与总账
- 提取 refreshFactsForDates 供管道与渠道服务复用
2026-11-01 15:21:53 +08:00
yml2213 9e154cb16d fix(cost): 派生费用可随退款重算,成本版本与基线禁止追溯
- 平台费/支付费允许 estimated→estimated 按净收入重算;采购与打手报酬保持固化
- 创建成本版本时拒绝早于当前时间的 effectiveFrom
- 已有快照后禁止导入价格基线;基线生效时间改为当前
- 删除基线导入中前移现有版本生效时间的逻辑
2026-11-01 15:21:50 +08:00
yml2213 045ac98479 fix(finance): 成本缺失按渠道期望成本项判定
- 采购/打手报酬/卡券采购各自校验对应成本项快照
- 人工渠道校验 manual_case 快照
- 未分类订单仍按「任意快照」兜底
- 平台费等通用费用不再把缺失成本掩盖成完整
2026-11-01 15:21:50 +08:00
zhaoxing 4fd533c678 fix(worker): 拼单单人撤单后空出份额回大厅并重算母单状态 2026-11-01 15:12:11 +08:00
yml2213 ceb786f32e fix(cost-center): 禁止追溯改价,改价只能当前或未来生效
- 后端统一校验:retroactive 请求直接拒绝,effectiveFrom 早于当前时间拒绝
- 去掉「追溯至历史订单」入口,改价只影响之后的新订单
- 历史订单成本与成交价由快照固化,不再受改价影响
2026-11-01 14:53:25 +08:00
yml2213 fed459c7aa fix(cost): 历史订单成本固化,只有预估→实际允许升级
- 已有快照不再因成本版本变更而替换,历史订单成交价与成本保持固定
- 仅接单平台「预估 → 实际」履约结算允许 supersede
- 补配价格只影响没有快照的订单;文档同步口径
2026-11-01 14:53:11 +08:00
yml2213 fca836eb4b feat(cost-center): 卡券商品创建即生成渠道规则,补齐成本项预设
- 新建 tpv: 商品时自动写 third_party_voucher 规则,避免新卡券 SKU 停在待分类
- 成本项预设新增「第三方卡券采购成本」
2026-11-01 14:46:14 +08:00
yml2213 624c0ef4af feat(finance): 历史订单退款按退款日入账
- 迁移 116 新增 refund_adjustment 渠道值,并允许该类行净收入为负
- 销售事实按退款日聚合 archived 订单的已确认退款,写冲减行
- 退款后同时回填原销售日与退款日的事实与总账
- 退款同时重算相关订单项的费用快照(比例费按净收入)
- 前端渠道筛选与标签支持「历史退款冲减」
2026-11-01 14:46:11 +08:00
yml2213 cf0d600c7d fix(cost): 快照新单优先、费用口径与回填健壮性
- 成本快照拆热/冷双通道:新单走热通道分钟级入账,历史项冷通道轮询重算
- 通用成本只允许平台费/支付费自动全量,售后损失/其他必须按商品配置
- 比例费用按扣除已确认退款后的净收入计算
- 已入账 actual 快照不再被后续预估覆盖
- 受影响日期超过 31 天时按整段重算,不再静默丢弃;关账跳过会提示
- 通用费用解析不到时计数告警;已入队的成本缺失不再重复 upsert
- 快照替换与写入放入同一事务,避免事实任务读到空窗
2026-11-01 14:46:08 +08:00
zhaoxing c1dd2ee632 feat(work-order): 后台支持修改用户付款金额并留痕 2026-11-01 14:14:23 +08:00
yml2213 34832139b0 fix(db): 渠道迁移顺延为 113–115,避让远程 112 补资料链接
远程 main 新增 112_work_order_material_link,本地原 112–114 顺延为 113–115:
- 113_fulfillment_channel_split
- 114_drop_legacy_fulfillment_mode
- 115_rename_facts_channel
同步更新文档与代码里的迁移编号引用。
2026-11-01 14:02:52 +08:00
yml2213 6c3e360392 merge: 合并远程 main(补资料链接与工单验收修复) 2026-11-01 13:58:45 +08:00
zhaoxing 92c70d472f fix(db): 恢复 109 售后追缴迁移并为补资料链接迁移顺延 112 2026-11-01 12:52:39 +08:00
zhaoxing da16e8cf75 Merge branch 'dev' 2026-11-01 12:30:02 +08:00
zhaoxing 94a1436453 fix(worker): 多份额验收优先唯一待提交份额并补充 shareId 防呆 2026-11-01 12:27:55 +08:00
zhaoxing 26beaca0c9 fix(db): 顺延售后追缴迁移至 112 并补回 109 补资料链接迁移 2026-11-01 12:27:37 +08:00
zhaoxing 8fb28b98c7 fix(work-order): 收紧补资料链接过期校验 2026-11-01 11:12:08 +08:00
zhaoxing 15956e704f feat(work-order): 新增一次性补资料链接 2026-11-01 10:46:31 +08:00
yml2213 7fab610159 feat(cost-center): 卡券规则批量生成与异常标签补齐
- 新增「批量生成渠道规则」,为 tpv: 商品一次性补 third_party_voucher 规则
- 异常原因补「缺少履约载体」,渠道标签补卡券/待分类/归档/未分类
2026-10-31 20:41:50 +08:00
yml2213 a62f6e1ec8 fix(pipeline): 变更按业务日回填,异常自动收口,载体管道加游标
- 渠道判定/成本快照返回受影响业务日,任务按日重算事实与总账
- 人工配置或载体补齐后,manual_config_missing / carrier_missing 自动关闭
- carrier_dispatch 使用水位游标,避免每轮从 id=0 重扫
2026-10-31 20:41:43 +08:00
yml2213 42d5874411 fix(cost): 快照变更即重算,0 元占位视为缺失,通用成本入账
- 预估→实际、补配价格时 supersede 旧快照再写新行,不再一次写死
- 全局 0 元版本不产生快照,转入 cost_missing
- 比例成本按 rate_bps 计算,费率为 0 视为未配置
- 平台费/支付费/售后等通用成本模型按渠道+通用各写一条快照
2026-10-31 20:41:38 +08:00
yml2213 6cd6401eca refactor(finance)!: 事实维度与接口字段统一改名 channel
- migration 114 将 sales_daily_facts.fulfillment_mode 重命名为 channel
- DTO/查询参数/前端类型从 fulfillmentMode 统一为 channel
- 成本中心类型 FulfillmentMode 更名为 FulfillmentChannel,并补齐卡券/待分类/归档取值
- 销售事实响应分组改为 byChannel
2026-10-31 20:26:15 +08:00
yml2213 657e49f324 perf(pipeline): 已入队的异常不再重复 upsert,未映射只算已定渠道
- 载体/人工配置/人工成本三类扫描跳过已有未解决异常的订单项
- 成本中心「未映射订单项」只统计 assigned,待分类单归履约队列
2026-10-31 20:26:10 +08:00
yml2213 3f13b8a5f7 chore(cost-center): 下线会与管道冲突的旧商品入口
- 移除自动发货商品同步、SKU 回填、按工单回填、人工商品归一等旧接口与按钮
- 商品目录只保留「从接单模板初始化」与手工新建
- 自动发货面板移除已失效的「重算成本快照」入口
2026-10-31 20:17:39 +08:00
yml2213 d979ef50d6 perf(pipeline): 订单项管道改用水位游标并只扫缺失
- 新增 watermark-store:统一读写游标/日水位/失败原因
- 渠道判定、商品归一、成本快照从上次游标继续,到表尾后回绕重试
- 成本快照只处理没有有效快照的订单项,避免每 5 分钟全量重扫
2026-10-31 20:17:33 +08:00
yml2213 ce775ca102 feat(cost-center): 第三方卡券渠道完整接入成本模型
- 商品来源筛选补 tpv: 前缀,卡券商品列表不再为空
- 成本模型新增 third_party_voucher_cost,覆盖预览/成本项/概览作用域
- 前后端成本模型枚举与下拉同步
2026-10-31 20:17:28 +08:00
yml2213 9ca1d52419 fix(finance): 人工确认后按业务日重算事实与总账
确认履约写入 manual_case 快照后,立即按该订单业务日期重算销售事实并同步总账,
避免较早订单的成本只等 3 天窗口而永远入不了报表。
2026-10-31 20:17:28 +08:00
yml2213 8e3b8e0a32 fix(finance): 销售事实只统计已支付订单并扣减退款
- 事实范围增加 pay_status IN ('paid','refunded')
- 关联 order_refunds 已确认退款,净收入/毛利按扣除退款计算
- 补回归断言,防止再次出现退款不减收入
2026-10-31 20:17:23 +08:00
yml2213 0a77524331 refactor(finance): 总账人工渠道判定改用渠道/状态列 2026-10-31 19:52:40 +08:00
yml2213 f4e0c47744 feat(cost-center): 第三方卡券渠道归一与采购价配置
- 归一新增 tpv:<SKU> 直达,卡券单无需手工映射
- 成本配置/总览/异常支持 third_party_voucher 与 archived 维度
- 新增卡券采购价面板,写入 sys_third_party_voucher_cost
- 修正 man: 商品改价误用不存在的 sys_manual_cost
2026-10-31 19:52:32 +08:00
yml2213 0ce3c8fa97 feat(fulfillment): 渠道联动与管道兜底
- 人工配置保存/删除同步渠道规则,人工确认写 channel/status
- 按 SKU 指定渠道默认同时落规则
- 管道补充:载体缺失、人工成本未记录、事实与总账按水位追赶
2026-10-31 19:52:22 +08:00
yml2213 4272515956 feat(orders): 订单读取与筛选只认渠道/状态三列
- 展示与筛选全部改读 fulfillment_channel/status,不再回退旧列
- 支持 third_party_voucher 与 archived,legacy_platform 映射为归档
- 前端类型、筛选项与标签同步
2026-10-31 19:52:13 +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 808949f3b8 feat(scheduler): 财务管道自动注册、水位记录与后台状态页
- 老配置读取时自动补齐六个管道任务,升级后无需手工添加
- 每个管道运行后写水位与 last_success_at,失败写 last_error
- 新增 GET /admin/fulfillment/pipeline/status 与单步重跑
- 后台「履约渠道 → 管道状态」展示启停、水位、最近执行与错误
- 定时任务管理接口不再丢弃管道自己的 config 字段
2026-10-31 19:13:38 +08:00
yml2213 2ba2656d58 feat(finance): 商品归一按接单模板/人工配置直接命中,减少手工映射
- 接单平台:用工单的 product_rule_id → tpl:<rule_key> 直接归一,不再依赖渠道映射
- 人工渠道:直接使用人工 SKU 配置里指定的商品
- 成本中心「未映射订单项」排除断代归档行,避免断代后仍显示历史未映射量
2026-10-31 19:05:02 +08:00
yml2213 855f2efcff feat(admin): 履约渠道接口与断代运维脚本
- 新增 /admin/fulfillment 待分类、指定渠道、规则 CRUD、问题队列、管道触发
- backfill-fulfillment-channel:438k 行分批回填,幂等可续跑
- finance-cutover-v2:默认 dry-run,--execute 才清理派生数据,禁止重复执行
- rebuild-after-cutover:按断代日重跑三条管道并生成期初分录
2026-10-31 18:12:25 +08:00
yml2213 75a3801236 feat(scheduler): 六个财务管道作业,模板改价即同步成本版本
- channel_assign / carrier_dispatch / product_normalize / cost_snapshot / sales_facts / ledger_post
- 每个作业只写自己那一层,失败互不影响,可单独启停
- 接单模板保存后自动同步规则级成本版本,失败不阻塞模板保存
2026-10-31 18:12:19 +08:00