100 Commits

Author SHA1 Message Date
chenxi
f17a90c7a3 业绩明细:商品金额排除虚拟条码,新增「订单实付金额」列(方案3)
商品金额排除 X0000x 虚拟条码行;新增订单实付金额列(订单级实付,拆单取主单)。
2026-10-08 15:37:11 +08:00
09ae442b87 快递运费:补 deleted_at(模型基类带软删除,页面查询报 Unknown column)
建表迁移同步补 softDeletes,另加一个迁移修复已建好的表;两个迁移都带存在性判断,可重复执行。
2026-10-08 13:30:55 +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
8ffcd58118 种菜金额口径改为「或」:种菜明细表 ∪ 聚水潭种菜标签
之前两个条件是「与」(交集),导致聚水潭没打种菜标签的淘系订单全部为空。按业务确认改成或:订单号在「种菜明细表」或「聚水潭订单标签明细(是否种菜订单=是)」任意一边出现过,就取该订单的收入金额。同步更新页面描述与迁移注释。
2026-10-08 11:26:46 +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
c8a035a18f 业绩明细:新增优惠金额/冲减金额两列(取科目映射表财务备注=优惠收入/冲减收入,支持 --amounts-only 回填) 2026-10-07 17:08:46 +08:00
a9da8d4447 修复发货镜像字段校准与合并列表耗时 (#283) 2026-10-07 14:08:20 +08:00
e8b8b816f4 修复「是否种菜订单」映射读取为空:补 deleted_at 列并改用表查询
新建的 jst_order_label_planting_rules 缺 deleted_at,而模型基类带 SoftDeletes,查询报错被兜底成空映射,
页面全部显示「否」。补迁移 2026_10_07_130000(建表迁移同步补上)并把服务改为 DB 表查询。
2026-10-07 11:20:03 +08:00
d877735507 聚水潭订单标签明细:新增「是否种菜订单」列
下单时间后面新增「是否种菜订单」列,逐行按(公司 + 标签)匹配财务维护的映射表:命中为是、未命中为否。
- 新表 jst_order_label_planting_rules + 模型 + 缓存服务,导入命令 jst-order-labels:import-planting-rules(读「判断种菜单.xlsx」)
- 导出 CSV 同步新增该列,页面/导出同口径
- 本地构建通过;改动/新增 PHP 文件 php -l 通过
2026-10-07 11:14:04 +08:00
chenxi
0bb4df6512 业绩明细扩展到店铺收款账户账单全部平台页签
按页签配置来源表与列映射(得物用 bill_date、京东系列/抖音用 order_no+income、
京东与京喜按店铺名拆分、京东/抖音只取活动代);单号查询同时带原始号与核心号
以匹配拼多多的日期前缀单号;镜像表增加平台维度与平台列/筛选。
2026-10-07 10:41:00 +08:00
8419d4097c feat: 内部流转报表导入工作簿数据并支持查询导出
- 新增共享镜像表 business_internal_flow_records 与整份替换导入命令 internal-flow:import
- 按 Excel 表头展示抬头、标签、预计9月销量、开票、所需进项成本、收票、剩余缺口与开票比例
- 复用公司基础信息的字段查询、表头排序、筛选字段与导出 Excel 交互
- 新增导入与页面测试,覆盖合计行跳过、重导入替换、筛选排序与未导入空状态
2026-10-06 22:08:08 +08:00
e777e75176 店铺违规信息预警:统一表头映射,支持查询、导入导出与每日同步 2026-10-06 19:02:22 +08:00
78857a51d9 feat: 店铺维度报表按主体期间拆分并支持期初数据维护
- 改为按期初数据+系统主体+爬虫新主体生成主体期间,一行一期间,修复流程历史重复行
- 变更日当天归新主体、老主体失效显示变更日前一天;关店和其他非正常状态两列显示 -
- 期初数据首次打开固化为系统库设置,可在「规则信息 → 店铺维度报表逻辑配置」在线增删改
- 爬虫店铺主体按税号归一,首次抓到的新主体写入期间变更表并自动生成新期间
- 新增期间变更表迁移与 crawl_shop_company 镜像数据集
2026-10-06 18:42:12 +08:00
chenxi
e0f89288d2 业绩明细取数口径改为「一个店铺 + 一个订单号 + 一个商品金额」
- 账单侧:账单项目扩到 11 类(交易收款、1688 增值服务系列、交易分账_货款、其它交易收款、
  先采后付账单付款、百补超级版消费者实付款、店铺过户),按「店铺 + 订单号」聚合收入与收款笔数
- 订单侧:销售全量按「店铺 + 线上订单号」先聚合求和(goods_count>0 有效行),
  一单多品/多子订单在聚合阶段合并,商品金额只挂一次
- 匹配:单号清洗(去日期前缀/空格/横杠)后按核心号 + 店铺匹配;店铺以账单「线上真实店铺」
  优先,下划线归一为横杠;订单侧单号一致但店铺不同或同号多店铺时标注异常
- 输出列:发生时间 → 店铺名称 → 线上单号 → 收入金额 → 商品金额 → 差额(收入−商品金额)
  → 匹配状态 → 异常标注;镜像表改为该行口径
- 统计:账单收款笔数、账单订单数、已匹配、未匹配、一单多笔、账单收入合计、
  订单商品金额合计、差额合计(已匹配)
- 未匹配分类:空单号 / 格式不一致 / 订单无商品金额 / 订单表无此单,并可按异常标注筛选

8 月淘系支付宝:118,500 笔收款 → 111,427 行,已匹配 101,005、未匹配 10,422
(订单无商品金额 8,352 / 订单表无此单 2,046 / 空单号 24),一单多笔 6,758。
2026-10-06 14:43:49 +08:00
chenxi
08aaed9241 业绩明细新增「店铺收款匹配订单明细」页面及同步命令
- 以店铺收款账户账单(账单项目=交易收款)为基数,按线上单号关联经营分析副本库
  的发货明细与销售全量,补出发货仓库、商品编码、商品数量、商品金额
- 匹配键:账单 online_order_no = 发货明细 so_id = 销售全量 sourceno(淘宝/天猫主订单号);
  同一订单多笔收款按订单号汇总,商品金额取 goods_count>0 的有效行
- 新增镜像表 store_receipt_order_match_rows 与命令
  store-receipt:order-match:sync <YYYY-MM>(分批查询上游,订单号每批 1000 条)
- 页面:月份/店铺名称/线上单号/匹配状态筛选、匹配统计条、分页、CSV 导出
- 修正宽精度迁移在 sqlite 测试库上执行 MySQL 改写语句导致测试全线失败的问题
2026-10-06 13:42:30 +08:00
chenxi
1ab9a45d1d 金额/单价列精度提升到 8 位小数(展示仍两位),修复原始价格精度丢失导致的 1 分钱差异 2026-10-05 11:11:58 +08:00
fc6b83aee0 Merge branch 'feature/qiuxiang-jst-order-labels-page' 2026-09-30 16:40:37 +08:00
e5d6c76f27 账单流水数据新增聚水潭订单标签明细页
新增「账单流水数据 › 聚水潭订单标签明细」(紧邻种菜明细表):四列(线上订单号/店铺名称/下单时间/标签),按标签拆行(一个标签一行)、订单不去重、标签不汇总,无标签订单记为「(无标签)」。新增 jst_order_labels 表(含公司/时间/标签/店铺索引)、JstOrderLabel 模型、JstOrderLabelImporter(从镜像 ops_jst_orders 按区间拆行导入,--replace 只清同区间)与 jst-order-labels:import 命令、导出路由与用例。页面筛选:下单时间区间(点整块开日历、可单独清除)、店铺、标签、线上订单号。
2026-09-30 16:40:16 +08:00
chenxi
9ca01b5d65 进销存报表入库明细数据:新增镜像表与导入命令(原样导入不去重,仓库简称按仓库名唯一匹配) 2026-09-30 16:36:24 +08:00
304bb3dc8e 种菜明细表:ID 列放宽为 text 支持多行 ID
源表「ID」列存在一个单元格多行放多个 ID 的行(导入时报 Data too long for column external_id)。新增迁移把 external_id 放宽为 text,导入器按 500 字符保留原文,并补用例覆盖多行 ID。
2026-09-30 09:55:51 +08:00
28b9271b3c 账单流水数据新增种菜明细表页面与导入
新增「账单流水数据 › 种菜明细表」页面:汇总卡(笔数/财务打款金额/财务售价/扣款/京喜差价)+ 筛选(日期区间/店铺/负责人/类型/标签/关键词)+ 分页 + 按筛选全量导出,样式沿用 upstream-data 黑金令牌。新增 planting_details 表(20 列与源表一一对应,金额保留 4 位小数)、PlantingDetail 模型、PlantingDetailImporter(xlsx/xls/csv,兼容 Excel 序列号日期与千分位金额)与 planting-details:import 命令。补 PlantingDetailsPageTest 覆盖导入、序列号日期、页面渲染、筛选与导出。
2026-09-30 09:50:50 +08:00
chenxi
bc2df131e3 商品月加权平均单价:按取数逻辑计算7月/8月 2026-09-29 15:33:20 +08:00
chenxi
7b43d3e22c 商品月加权平均单价:建镜像表并导入7月期初基数 2026-09-29 15:21:47 +08:00
26556a9169 Add warehouse short names to inventory report
Restore warehouse name mapping ledger and inventory short-name column.
2026-09-28 16:33:38 +08:00
454919b0c7 Revert "Merge branch 'fix/chenxi-inventory-mapping-release-20260928'"
This reverts commit c328dcbe77e114d1111c22ca22870227ad280ab7, reversing
changes made to bfbfe935eab814027d7d2328accc18a60171a712.
2026-09-28 12:00:54 +08:00
chenxi
72777aa44e Merge remote-tracking branch 'origin/main' into fix/chenxi-inventory-mapping-release-20260928 2026-09-28 09:16:35 +08:00
chenxi
f562faca3c 完善进销存映射表与开发环境刷新配置 2026-09-28 09:16:02 +08:00
bfbfe935ea 新增淘系支付宝权威账单导入链路 2026-09-27 17:25:04 +08:00
chenxi
18fdb8a22f 支持进销存多月份权威快照 2026-09-26 22:45:37 +08:00
e7ca3026a6 feat: 导入淘系微信权威账单 (#260)
保留现有表头,新增受控幂等导入、页面查询和完整账单校验。
2026-09-24 10:29:59 +08:00
01de726227 快递附加费维护支持供应商、日志筛选与列宽调整 (#246) 2026-09-23 11:09:24 +08:00
chenxi
d36b46007f Merge remote-tracking branch 'origin/main' into fix/chenxi-login-redirect 2026-09-22 22:30:05 +08:00
af10f3c972 接入聚胜算得物完整账单 (#245)
保留得物、退货退款订单和扣减其他费用明细三类渠道;增加受控幂等导入、原子替换与页面权威表查询。
2026-09-22 19:07:11 +08:00
e5ad1b2390 接入聚水潭采购单到线上代发价格 (#244) 2026-09-22 18:50:23 +08:00
fd0041fdb5 Merge remote-tracking branch 'origin/main'
# Conflicts:
#	config/database.php
2026-09-22 15:01:14 +08:00
1c7647a3c2 接入拼多多完整账单并保留营销账户 (#238) 2026-09-22 14:55:44 +08:00
836848f431 完善供应商应付五项操作 2026-09-22 14:49:09 +08:00
d3b0fbc87b Merge remote-tracking branch 'origin/feature/limeng-shipping-data-filters'
# Conflicts:
#	app/Http/Controllers/Business/Pages.php
2026-09-22 14:47:20 +08:00
chenxi
d3f728d1b6 修复进销存九月期初结转 2026-09-21 18:20:15 +08:00
f40c102a7b 新增快递附加费操作日志 (#227)
## 实际改动
- 为快递附加费报价规则和附加费类型记录新增、更改、启用、停用日志。
- 日志按公司隔离,记录操作人、时间、对象及安全字段的变更前后值,页面展示最近 50 条。
- 报价/类型写入与日志记录使用同一事务;审计表未迁移时保留只读查看并阻止无日志写入。

## 修改范围
- 新增审计日志 Repository、Model 和迁移。
- 修改报价/类型 Repository、页面控制器、现有 VIP 黑金页面和对应 Feature 测试。
- 不修改路由、权限、菜单、上游数据源或生产配置。

## 协作检查
- 已获取最新 `main` 并检查远程任务分支。
- `origin/feature/limeng-shipping-data-filters` 同样修改 `Pages.php`,但其逻辑为独立的发货数据页面,与本任务方法、路由、Repository、表和视图无实际重叠。

## 验证
- `CourierSurchargePageTest`:9 个测试通过。
- `CourierPayableSummaryPagesTest`:14 个测试通过。
- 合计 23 个测试、336 个断言通过。
- 已验证现有报价可见、未迁移警告及写入禁用状态。

## 风险与授权
- 新增 1 张审计日志表,需要随生产发布执行迁移。
- 用户已明确要求主线部署,授权本次迁移与发布。
- 未提交 `.env`、密码、Token、私钥、真实财务数据、生产日志或构建产物。
- 回滚代码时保留审计表及历史记录,不执行破坏性删表。

## 合并前自审
- 已逐文件审核完整 diff,确认无越界修改、重复实现、敏感内容和未处理冲突。
- 使用 Squash merge 合并到最新 `main`,再按标准脚本部署。

Reviewed-on: http://git.1080p.hk/WuYongJie/CaiWuXiTong/pulls/227
2026-09-21 10:42:13 +08:00
cb5b7fb680 修复进销存八月期初数量 (#223) 2026-09-21 01:08:46 +08:00
caf2030bdf 修复进销存报表子仓维度 (#220) 2026-09-20 22:19:11 +08:00
1e3f014743 接入全仓库进销存报表 (#215) 2026-09-20 15:44:01 +08:00
3db5605375 接入胜算京东钱包至京东网银钱包账户 (#203) 2026-09-18 15:07:43 +08:00
232c0e6b23 接入胜算京东日账单至京东流水 (#201) 2026-09-18 14:27:39 +08:00
da4888ac9c 完善商品价格导入导出与编辑 (#197) 2026-09-16 18:20:25 +08:00
b038909cb0 feat: 发货数据页接入(caiwu 直连聚水潭/奇门)
- 聚水潭奇门客户端与发货同步器骨架:QimenClient(签名+POST)、ShippingDataSynchronizer(erp.sctrade.query 列表 + erp.sradesku.query 明细 + upsert + modified 水位)
- 发货明细扁平展示表 jst_oms_shipping(对齐工作平台发货数据 47 列/顺序,用于快递运费核算);原始表 jst_sctrade/_items/_skus/_receiver + jst_sync_state
- 快递应付新增「发货数据」页:Pages.contentForShippingData + 视图 + business_navigation 导航项(slug=shipping-data)
- ShippingOrderRepository 读展示表;artisan jushuitan:sync-shipping + 每10分钟增量调度(JST_SYNC_ENABLED 默认关)
- 落库连接 jushuitan_local(本地容器,env 可覆盖);演示 Seeder(6 条家具发货样例);.env.jushuitan.example

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_014nvGZkg27YMEdhRy6EiUwf
2026-09-16 10:57:12 +08:00
18c63d6abf fix: keep warehouse settlement schema compatible 2026-09-15 09:32:44 +08:00
41d80e4056 feat: add jushuitan cost price history 2026-09-15 09:21:09 +08:00
0b00f01566 feat: 三方仓仓储费一键核算+导出核算明细+每期存档
在「第三方仓储报价」页新增仓储费核算:选月份一键按当期生效报价核算
(入库管理费/出库费用/每日仓储费),结果存档并可导出汇总/每日/逐商品三表。

- 新增计算服务 ThirdPartyWarehouseStorageFeeCalculator(口径与报价页公式一致,
  重量取普通商品资料 ops_jst_sku.weight)
- 新增存档表 business_third_party_warehouse_storage_settlements + 模型
- 新增 maatwebsite/excel 三表导出 ThirdPartyWarehouseStorageSettlementExport
- 报价仓库新增 effectiveFor(按仓库+结算月取当期生效报价)
- Livewire 组件与报价页新增核算/导出/历史 UI
- 新增计算服务测试(附 2026-08 真实验收基准 1538.20/6099.60/8376.48/16014.28)

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01DVQ6NsLsbtxm5Ng7Eew3s9
2026-09-15 09:21:05 +08:00