160 Commits

Author SHA1 Message Date
3e222e0035 业绩明细:实收对不上账单时也退回按应付/已付核对(覆盖拆单主单实收为空、子单有值的情况) 2026-10-15 15:38:07 +08:00
72b3f43da5 业绩明细:实收缺失时退回按应付/已付核对;同步命令新增 --dry-run 开关 2026-10-15 13:21:36 +08:00
4e38a1cf11 业绩明细:双口径兜底阈值放宽到 0.5 分(1 分尾差也按卖家实收核对归零) 2026-10-15 10:43:37 +08:00
c0aab60862 业绩明细:订单侧双口径核对(买家实付/卖家实收)+ 差额待核实 + 列名与筛选改名
- 同步:账单能对上卖家实收时按实收核对(差额归零、订单实付/实收列显示实收值),并写入标识「订单实付按卖家实收核对」
- 页面:新增兜底备注「差额待核实」(可筛选);该标识在「匹配原因」列展示并纳入筛选与联动计数
- 列名:「订单实付金额」→「订单实付/实收金额」;「未匹配原因」→「匹配原因」
- 新增 scripts/docker-fix-start.ps1(Docker 因僵尸 socket 起不来时一键清理并启动)
2026-10-14 17:54:56 +08:00
1684902863 业绩明细取数:「买家实付」字段未同步改价/退款时,采用能与账单对平的「已付」金额(仅负向纠偏) 2026-10-14 13:47:25 +08:00
e26c1e467e 业绩明细取数:合并发货行不再当作单笔金额(实付与商品优先取本单非合并行) 2026-10-14 09:56:10 +08:00
b4f8416794 店铺违规预警:已超时口径限定需提醒范围,字典导入命令兼容大维度文件 (#334) 2026-10-13 20:13:53 +08:00
0c04860d69 店铺违规预警:修复重算命令严格模式报错,新增违规字典导入命令 (#333) 2026-10-13 20:04:02 +08:00
ea80148dfc 店铺违规预警:级别/责任人/处理截止/超时/推送状态 + 处理状态四档 + 群推送接口 + 预览统计页 (#332) 2026-10-13 19:54:01 +08:00
8a67c7d768 业绩明细:1688采销专用收款单独成档(未匹配原因新增两档)
- 同步逻辑:「支付宝-1688采销专用」账户的未匹配行写「账单无单号(采销收款)」「1688采销收款(非销售单)」,不再混进「订单表无此单」
- 页面筛选:未匹配原因下拉补上两档
- 字段结构说明同步更新
2026-10-13 17:46:18 +08:00
d47a72c175 店铺违规预警:新增违规原因与处置方式两列(页面/统一表/导入导出) (#323) 2026-10-13 11:32:27 +08:00
63f9e2a418 店铺违规预警:同步 SQL 在源端转换 date 列,修复 FreeTDS 区域日期解析失败 (#316) 2026-10-13 09:40:53 +08:00
a90736592a 业绩明细同步:订单实付命中即算订单存在,修复部分订单被误判「订单表无此单」
部分订单(退款流程 / 拆单 / 商品明细未同步)在订单侧只有订单头与实付、没有商品明细行,原匹配逻辑仅按商品明细判断订单存在性导致误判。改为实付命中同样计入订单存在性;商品金额仍只由商品明细构建(无明细时保持为空)。实跑修复 8 月 1791 行(得物 57 / 京喜 497 / 抖音 46 / 京东 153 / 拼多多 1038)。
2026-10-12 17:12:10 +08:00
1e689d254e 附加费结算:超长费/退回费/拦截费拉取、导入核验与模板导出 2026-10-12 09:33:24 +08:00
cbec6a8b62 供应商管理增加每天08:15完整同步 (#302) 2026-10-11 13:57:28 +08:00
665b8fafd2 接入供应商管理页面与共享镜像 (#297) 2026-10-11 12:11:15 +08:00
22133450a6 业绩明细:种菜金额口径加上货号 X00006(与标签明细页同一规则)
- 种菜订单集合 = 种菜明细表 ∪ 标签明细里「是否种菜订单=是」;后者改为命中种菜标签映射或货号含信誉订单虚拟条码 X00006
- 种菜明细表部分不再依赖标签映射是否为空
2026-10-10 17:20:05 +08:00
29f801bd92 聚水潭订单标签明细:修复货号回填进度打印引用未定义变量导致中断的问题 2026-10-10 16:18:27 +08:00
0a89a24f28 聚水潭订单标签明细:修复货号回填把纯数字订单号绑成整数导致的 MariaDB 1292 报错
订单号改用值对列表传递、全程按字符串绑定,避免 PHP 数组键自动转 int 后与字符列 order_no 比较被强转数字
2026-10-10 16:11:52 +08:00
53cd0c3ce6 聚水潭订单标签明细:新增「货号」列,货号 X00006 的订单判为种菜订单
- 新增 jst_order_labels.item_code 迁移;导入时从商品明细镜像按 o_id 写入货号(被替换/取消的明细不计入)
- 「是否种菜订单」增加规则:货号含 X00006(信誉订单虚拟条码)直接判「是」
- 页面与导出新增货号列;新增 jst-order-labels:sync-item-codes 回填命令
- 测试:新增货号/种菜判定/回填命令用例,并修正导出表头过时断言
2026-10-10 16:06:02 +08:00
158c5e1b23 业绩明细:差额/匹配状态/备注改为与订单实付金额核对;科目映射表筛选改按财务备注
- 业绩明细「差额 / 匹配状态 / 差额异常备注」的比对基准由「订单商品金额」换成「订单实付金额」:
  差额=(收入金额+优惠金额+冲减金额)− 订单实付金额;匹配状态以订单侧能否取到订单实付为准;
  备注文案改为 订单实付未匹配(账单无单号/单号格式异常/订单表无此单/订单无实付金额/无收款账单)、
  订单实付取数为0(种菜)、订单实付取数为0、订单实付未减冲减、订单实付未减优惠、订单实付未减优惠和冲减
- 商品金额列保留展示、不再作为核对基准;退款金额仍单独列示、不参与差额
- 两个口径共用同一条取数链(同店同号 → 店铺名不一致 → 同号多条 → 空店铺兜底),
  差额口径做成开关:config/performance_details.php 的 difference_basis 填 product 即可切回旧口径
- 统计卡「金额构成」补「订单实付金额合计」,与差额公式对齐
- 科目映射表筛选:第二个筛选项由「账单项目」改为「财务备注」(候选按平台收窄、可搜索、多选);
  账单项目仍可用左上角关键词搜索
2026-10-10 15:14:06 +08:00
107c883eb2 业绩明细:新增「退款金额」列,按总账备注=退款取数
- 新增列「退款金额」:店铺收款账户账单里总账备注=退款的金额(收入侧 − 支出侧),
  与优惠金额/冲减金额同一口径,单独列示、不参与差额计算;统计卡、导出字段、
  字段结构说明同步补充
- 同步命令支持账单表的 expense 列(京东账单/京喜账单/京东网银钱包/抖音用 expense,
  淘系/拼多多/得物用 expense_amount),此前只认 expense_amount,
  导致这些平台支出侧的退款、扣回金额被当成 0
- 重建后自检改为「本月账单确有优惠/冲减/退款行、但三列一行都没写」才报错,
  并把退款金额纳入判定,避免无数据月份误报
- 新增迁移:store_receipt_order_match_rows.refund_amount
2026-10-10 13:41:03 +08:00
25cf3f8f0f 业绩明细:同步取财务备注时带上业务备注与商品名称
- 之前只按「平台+账单项目」匹配,退款行与正常行走同一条规则(得物卖家承担优惠券/折扣活动/联合营销费被算进冲减收入)
- 现在按行传入业务备注(custom_remark/business_type/order_type/channel 等)与商品名称,与店铺收款账户账单页同一套口径;账单查询同步补取这些列
- 配合科目映射表给得物这三个账单项目新增「退款」规则后:退款行→退款,正常扣款行→冲减收入
2026-10-10 10:30:06 +08:00
chenxi
fe8c271fcf 商品成本:新增财务经营报表「商品成本」页面与同步命令
以业绩明细的账单行为基数,按「店铺 + 线上订单号」展开订单原始数据的商品行:
- 发货仓库取订单 wms_co_id 对应的聚水潭仓库名称,仓库简称查仓库映射表
- 商品单价按「仓库简称 + 商品编码」取商品月加权平均单价里的加权平均价
- 商品成本 = 商品数量 × 商品单价(四舍五入两位小数)
- 拆单子单重复列出的同一批商品只算一次;同一单分多仓发货按子单实际仓库分行
- 排除虚拟条码(X0000x)与数量金额都为 0 的占位行;默认隐藏仓库映射表里标「-不看」的仓
页面提供月份、平台、店铺、线上单号、商品编码、仓库简称筛选与汇总、CSV 导出。
2026-10-09 17:36:14 +08:00
ed89882661 业绩明细:重建后自检优惠/冲减列,映射有项目但两列为空时直接报错,避免静默丢列 2026-10-09 13:56:07 +08:00
chenxi
cb26d5da17 业绩明细:商品金额改为只取主单,拆单子单不再重复累加
聚水潭拆单子单会把主单的商品行再列一遍,子单的平台子订单号与主单不同时
原「子订单号 + 条码」去重键拦不住,同一批商品被计两次。
现在商品金额只取主单(link_o_id 为空/0),整单没有任何主单行时退化为取全部行,
与订单实付「主单优先、无主单退化」保持同一套规则。
2026-10-09 12:14:26 +08:00
chenxi
a334f65962 业绩明细:订单实付金额排除虚拟条码后的实付
订单实付=订单级实付 − 虚拟条码(X0000x)明细行实付,下限 0,
与商品金额保持同一口径;纯信誉/虚拟订单的实付归零。
同时更新页面口径说明。

影响:京东账单 2026-08 实付 5673.8 万 → 424.9 万(虚拟条码占 5248.9 万)。
2026-10-08 18:31:20 +08:00
0cca2aac70 业绩明细全量重跑:命令内自行放宽 memory_limit,免去手工传 -d memory_limit 参数 2026-10-08 17:41:05 +08:00
8207dc0d95 业绩明细:订单金额/优惠金额/冲减金额统一按「收入-支出」取数,只回填金额时同步刷新差额列 2026-10-08 17:07:11 +08:00
09077c3661 导出进度改为真实百分比(按发生时间流式取数),并修日期框在宽屏下被裁掉 2026-10-08 16:39:42 +08:00
03b728a0fc Merge remote-tracking branch 'origin/main' into fix/yueyang-offset-signed-amount
# Conflicts:
#	app/Console/Commands/SyncStoreReceiptOrderMatches.php
2026-10-08 16:24:38 +08:00
chenxi
f17a90c7a3 业绩明细:商品金额排除虚拟条码,新增「订单实付金额」列(方案3)
商品金额排除 X0000x 虚拟条码行;新增订单实付金额列(订单级实付,拆单取主单)。
2026-10-08 15:37:11 +08:00
6255179bf5 导出任务取消:点击后立即置为「已取消」,后台下一个检查点停止并删除半成品文件 2026-10-08 15:34:01 +08:00
ad65f0cc75 导出任务:新增「取消」(后台检测取消标记后停止并删半成品文件) 2026-10-08 15:31:10 +08:00
4d5b9bf440 导出任务:按自增顺序取数提速、时间统一北京时间、运行中显示「取数中」 2026-10-08 15:22:06 +08:00
30f69f2af9 店铺收款账户账单:导出改成后台任务 + 导出进度列表(状态/下载),不再依赖页面停留 2026-10-08 14:49:11 +08:00
chenxi
3dd90dc52c 修复业绩明细商品金额重复计算(订单侧按子订单去重)
订单侧聚合改为先按「子订单号 + 条码」去重再求和,避免拆单/子单重复计入商品金额。
2026-10-08 14:33:48 +08:00
chenxi
946d794e12 修复业绩明细补行插入列数不一致
补行的列集合与主行对齐(补 planting_amount),避免批量插入时列数不匹配导致同步失败。
2026-10-08 14:24:20 +08:00
chenxi
c02ecb8b44 Merge remote-tracking branch 'origin/main' 2026-10-08 14:05:19 +08:00
chenxi
085ea33ff4 业绩明细订单侧切换为「订单原始数据」口径(方案B)
订单侧来源改为企微客户订单 + 聚水潭订单(与「订单数据 → 原始数据」同一来源),
按「店铺 + 线上订单号」对商品金额求和;取数改用临时表 + STRAIGHT_JOIN 避免大表全扫。
2026-10-08 14:05:08 +08:00
401dfb089a 店铺账号密码:上游新增字段自动跟随(镜像补列 + 页面自动多出这一列)
新增 business-mirror:follow-upstream-columns:先把数据字典刷新到最新,再把上游
视图里新增、当前数据集还没同步的字段追加进镜像定义并立刻建列,下一次常规同步
就会带回数据。只做新增,不删除/不改写已有字段;字段名带 password/secret/token/
cipher/credential 等敏感关键字的一律跳过。已登记到发布 cron(每天 06:40)。

页面侧:config/upstream_mirrors.php 的 auto_follow_columns 用「页面 => 数据集」
登记,FollowedUpstreamColumns 服务把 followed_columns 变成表格列;这类列只展示、
不生成查询条件(后端还没有对应筛选口径)。

数据集自带的数据变动仍然由每分钟的 business-mirror:sync-tables 增量同步。
2026-10-08 13:19:53 +08:00
1c90b64c29 快递运费:新增导入命令与页面数据表
财务经营报表 › 快递运费 之前是空页面。现在:
- 新增 courier_freight_rows 表(来源 / 成品配件 / 交易单号 / 提供成本运费);
- 新增 courier-freight:import 命令(xlsx / csv,按表头名匹配,支持 --replace);
- 把聚水潭导出用的 xlsx 流式读取器改成通用名 XlsxSheetReader(本次文件 57.8 万行、解压后 115MB,必须流式读);
- 页面按来源 / 成品配件 / 交易单号查询,列设置与分页复用通用目录表。
2026-10-08 13:20:01 +08:00
09907d63f8 业绩明细:冲减金额按行金额取数(收入侧-支出侧,负数表示净扣减);修复补行列数缺 planting_amount 导致同步中断 2026-10-08 13:15:07 +08:00
2cf181f1bf 业绩明细:异常标注三类整理 + 优惠/冲减补行 + 匹配状态/异常标注多选联动筛选 2026-10-08 11:46:42 +08:00
8ffcd58118 种菜金额口径改为「或」:种菜明细表 ∪ 聚水潭种菜标签
之前两个条件是「与」(交集),导致聚水潭没打种菜标签的淘系订单全部为空。按业务确认改成或:订单号在「种菜明细表」或「聚水潭订单标签明细(是否种菜订单=是)」任意一边出现过,就取该订单的收入金额。同步更新页面描述与迁移注释。
2026-10-08 11:26:46 +08:00
88adb33c45 种菜金额回填改为一次覆盖全平台
--planting-only 不再要求指定 --platform:种菜订单号与平台无关,按整月刷一遍即可。
2026-10-08 11:03:05 +08:00
7b09d0de05 业绩明细:冲减金额后面新增「种菜金额」列
口径:订单号同时出现在「种菜明细表」和「聚水潭订单标签明细(是否种菜订单=是,即标签命中种菜映射)」里时,该订单的收入金额就是种菜金额,其余留空。两边的订单号都按账单侧同一套「核心单号」清洗(去日期前缀/空格/横杠)后比较;金额取该行已有的收入金额,只是展示,不参与差额计算(它本身就是收入金额的一部分)。

- 新增迁移:store_receipt_order_match_rows 增加 planting_amount 列(在 offset_amount 后面)。
- 同步命令:正式同步时写入该列;--amounts-only 一并回填;新增 --planting-only 只刷这一列(不读账单,适合给已同步好的账期补数);新增 --company 选项。
- 页面:列顺序 收入金额 / 优惠金额 / 冲减金额 / 种菜金额 / 商品金额…,顶部统计加「种菜金额合计」,导出同步带上该列。
- 补 NavigationTest 的列断言。
2026-10-08 10:59:21 +08:00
ef62cac0d9 种菜明细表:新增按月从聚水潭种菜报销工单同步的命令(带自动排重)
每个月都要手工整理「中心明细表」,改成一条命令:planting-details:sync-work-orders --month=YYYY-MM。

- 口径用 1~8 月已入库的 7 万多行反推验证过:只取「工单类型=种菜报销、状态=已完成」的工单,明细表「日期」= 工单完成日 - 1 天(历史命中 100%),所以某月数据 = 完成时间落在该月次日到下月次日的工单。
- 字段映射(聚水潭只返回 fieldId,不给字段名,这批 id 是拿历史数据逐列对撞出来的):财务售价/财务运费/财务佣金/京喜差价/扣款/财务空包费/财务打款金额 分别对应工单的 任务付款/任务快递费/任务佣金/京喜差价/任务扣款/任务空包费/最终报销金额;负责人、账户、类型、标签、创建人、平台商品ID 也各有对应字段。
- 自动排重:写入前先删掉「本月 + 本次订单号」的已有行,重复执行不会翻倍;--force-clear 才整月覆盖,--dry-run 只看不写。
- 所属利润中心没有工单来源,用表里已有的 店铺→利润中心 映射回填,命中不了的店铺在命令输出里逐个提示。
- 补测试:字段映射 + 日期口径 + 去重 + 利润中心回填 + force-clear。
2026-10-08 09:35:34 +08:00
636187a9d8 业绩明细:差额口径改为(收入金额+优惠金额+冲减金额)−商品金额 2026-10-07 18:32:10 +08:00
c8a035a18f 业绩明细:新增优惠金额/冲减金额两列(取科目映射表财务备注=优惠收入/冲减收入,支持 --amounts-only 回填) 2026-10-07 17:08:46 +08:00