488 Commits

Author SHA1 Message Date
41f6946a2b 货款对账:差异支持按厂家钉钉机器人推送 (#378) 2026-10-17 12:54:30 +08:00
3fedeef59a 修复存量报价审核生效、原件预览与配件补发可扣款清单 (#377) 2026-10-17 12:49:39 +08:00
a0a6e9285a 供应商对账:新增厂家账号门户与独立退货视图 (#376) 2026-10-17 12:01:30 +08:00
18d03fe092 供应商对账:厂家退货支持查询导出并精简字段 (#375) 2026-10-17 11:13:18 +08:00
2848c81a5e 供应商对账:退货明细改为「退货扣减确认」面板 (#369)
退货扣减确认:顶部汇总、逐行确认/异议、全部确认(不覆盖异议)、金额空按预估金额扣减,展示金额最高 15 行。
2026-10-17 09:40:54 +08:00
87eaf48c2c 供应商对账:应付款项下新增对账页面(财务端数据 / 厂家端数据) (#364)
新增供应商对账目录:财务端实时上传情况与行级差异(条码+单价匹配,四类口径),厂家端严格按模板上传(表头不一致/必填缺失/非数字/串厂一律失败);复用终版存储与流式读取。
2026-10-17 08:49:17 +08:00
82c79dadc3 feat: 店铺维度报表销量改取业绩明细的订单实付/实收金额 (#363) 2026-10-17 00:19:09 +08:00
656c655c91 应付款终版导入:支持 20 万行(流式读取 + 分片导入 + 进度显示) (#361)
新增流式 xlsx/csv 读取器与分片导入:上传建行缓存,按片处理(2 万行/25 秒预算),批量 upsert + 批量审计事件,前端进度条自动续跑;上限 20 万行,上传 50MB。
2026-10-16 23:54:03 +08:00
0a54775b3b 配件补发扣款:快递比例配置、Excel导入和归属选择 (#357) 2026-10-16 22:27:46 +08:00
b4eaa1e102 快递应付:新增配件补发扣款匹配界面 (#353) 2026-10-16 21:36:03 +08:00
37c11f4e8e fix: 提现管理店铺余额保留最近5天 (#349)
Co-authored-by: 92451 <924518135@qq.com>
Co-committed-by: 92451 <924518135@qq.com>
2026-10-16 19:00:49 +08:00
2399d42d6d feat(存量报价): 支持按发货名称手填录入及无编号报价 2026-10-16 17:58:35 +08:00
chenxi
5b89692318 商品成本:收入为 0 的账单行不取数、单价加线上代发价格兜底
- 账单侧只取收入金额有数据且不为 0 的业绩明细账单行(收入为 0 的是补出来的优惠/冲减/无收款账单行)
- 商品单价按「仓库简称 + 商品编码」取月加权平均价,匹配不到时退回「线上代发价格」
  (采购单管理的采购单价优先,其次钉钉线上代发的代发订单金额 ÷ 发货数量),并记录 price_source
- 新增数量与单价口径校验:定制配件行把配件件数写进商品数量,乘成品单价会放大几百倍,
  成本单价高于该行明细单价 3 倍时成本留空、标注「数量与单价口径不一致」,不计入合计
- 页面与导出列改为业务口径的 9 列(发生时间/店铺名称/线上单号/发货仓库/仓库简称/商品编码/商品数量/商品单价/商品成本),
  汇总卡片新增「线上代发价格兜底」「数量与单价口径不一致」两项
2026-10-16 17:34:06 +08:00
c4a39ec265 科目映射表:存储改共享数据库(ec_account_mapping_rules / ec_account_mapping_events,本地与生产同一份,改完两边同时生效);旧文件保留为只读备份镜像;账单明细改读共享库;新增 account-mapping:import-files 导入命令 2026-10-16 17:19:37 +08:00
c50244544d 业绩明细备注:京喜「直营补贴款」两条规则扩到 10 家店(出类拔萃 + 胜思创博家具/久伴吾家具/悦家/蓄势待发/日进斗金/上彩/美栖家/荣屹/亿家达京喜自营,均已逐店在结算单核实) 2026-10-16 17:18:42 +08:00
f3df42f46b fix(存量报价): 修复批量保存被安全检查误拦截 (#347) 2026-10-16 16:28:18 +08:00
706b07b4ad 业绩明细:淘系支付宝/微信新增「订单实付含已退款部分」核实(差额/收款缺口/整单全退对上聚水潭已确认退款,与抖音同口径,EXISTS+HAVING 提速);店铺名优先展示线上真实店铺(修复「支付宝-公司」壳名);字段说明同步 2026-10-16 16:18:23 +08:00
9a25db91cc feat(报价管理): 存量报价整本批量录入及签署原图归档 (#346)
保留各家工作表报价原文、公式、独立执行日期及签署原件;审核后按执行日期管理版本。33项测试、336项断言通过。生产业务迁移已获明确授权,服务器私有备份已完成并逐条校验。
2026-10-16 14:56:44 +08:00
6c76a373a3 业绩明细:合单发货取数优先取原单行(merge_so_id 为空),修复 878 行误取合并汇总金额(7/8月实付合计修正 -11.17 万);商品金额/实付/实收/应付统一三档优先级;字段结构说明同步新取数与口径兜底/待核实顺序 2026-10-16 12:00:42 +08:00
e064492a95 业绩明细备注:撤销「订单实付未减退款」(价保扣款类回归通用档「订单实付未减冲减」,该档 = 订单实付=收入+优惠 → 差额=冲减金额) 2026-10-16 10:02:57 +08:00
422497cfcc 业绩明细:C 方案——三条通用等式档(未减冲减/优惠/优惠和冲减)在口径标识行让位给口径兜底;差额待核实档排除口径标识行 2026-10-16 09:44:21 +08:00
d1b14fc10d feat: 合作合同乙方签约地支持编辑 (#343) 2026-10-15 18:13:24 +08:00
5c20defc79 业绩明细:修正有效差额 SQL(排除「差额待核实」兜底档,口径兜底行才真正按 0 计入合计/筛选) 2026-10-15 17:56:03 +08:00
01abeb4124 业绩明细备注:京东价保扣款负差额(差额=账单「价保扣款」合计)新增标注「订单实付未减退款」(含索菲亚智能店 3587456013325741 等 20 单) 2026-10-15 17:58:11 +08:00
173ca7c2ec 业绩明细:差额判定改为「原因优先 → 实收/应付口径兜底 → 待核实」;口径命中不再抹差额、页面与合计/筛选/联动同一套判定 2026-10-15 17:51:01 +08:00
564eb1ef08 fix: 协议签署业务操作授权与按钮权限一致 (#342) 2026-10-15 17:38:17 +08:00
1706131d9c 业绩明细备注:索菲亚功能店并入「商家承担优惠」备注组(8 单已用营销对账逐单核实);索菲亚智能店负差为价保扣款、不属本类未纳入 2026-10-15 17:35:21 +08:00
f4a0014690 业绩明细备注:京东五店负差额按单拆分——含国补(聚水潭应付−账单收入>0)标注「订单实付包含商家承担优惠和以旧换新国补」,其余标注「订单实付包含商家承担优惠」 2026-10-15 17:19:26 +08:00
288184c8dc feat: 快递资料合同甲乙方与协议签署联动 (#341)
新增合同主体(乙方)与签订公司(甲方)只读展示和导出;协议签署自动带出唯一乙方,缺失或冲突留空核对。19项直接相关测试与实际浏览器联动验证通过。无权限、金额、数据库结构或配置改动。
2026-10-15 17:00:21 +08:00
60163f6c32 业绩明细备注:京东索菲亚书房/亿家达全屋/朴美家居店负差额标注「订单实付包含商家承担优惠和以旧换新国补」(营销对账逐单核实) 2026-10-15 16:54:07 +08:00
6518995e45 业绩明细备注:京东索菲亚客厅/办公店负差额标注「订单实付包含商家承担优惠和以旧换新国补」 2026-10-15 15:40:54 +08:00
3e222e0035 业绩明细:实收对不上账单时也退回按应付/已付核对(覆盖拆单主单实收为空、子单有值的情况) 2026-10-15 15:38:07 +08:00
f41a8fa6ba 钉钉登录:单独授权人员仅访问三个快递报价页面 (#339)
按精确企业身份开放受限登录,保留在职校验和普通角色;统一限制菜单、页面、导出与预览。59 项相关测试通过,无数据库迁移。
2026-10-15 15:21:05 +08:00
1214fc365e 业绩明细:「订单实付按应付/已付核对」标注在页面展示并纳入筛选与联动计数(此前只在库里有、页面不显示) 2026-10-15 14:59:44 +08:00
a4952dfa42 Revert "业绩明细:新增备注「订单退款未参与差额」;字段结构说明同步(差额待核实/匹配原因/三档新备注)"
This reverts commit 0d215fe20c22e2e2ba3dbe82411d760aa0d7bac2.
2026-10-15 14:27:47 +08:00
0d215fe20c 业绩明细:新增备注「订单退款未参与差额」;字段结构说明同步(差额待核实/匹配原因/三档新备注) 2026-10-15 14:23:10 +08:00
cccd321195 快递应付:清空运费对账页面并停用错误数据源 (#338) 2026-10-15 14:08:05 +08:00
1131d073ce 快递入驻:指定钉钉初复审人员,复审任一人通过 (#337) 2026-10-15 13:52:30 +08:00
72b3f43da5 业绩明细:实收缺失时退回按应付/已付核对;同步命令新增 --dry-run 开关 2026-10-15 13:21:36 +08:00
c314209705 业绩明细备注:京喜出类拔萃店负差额标注直营补贴款(待开票结算/订单退款已冲回) 2026-10-15 12:04:41 +08:00
4e38a1cf11 业绩明细:双口径兜底阈值放宽到 0.5 分(1 分尾差也按卖家实收核对归零) 2026-10-15 10:43:37 +08:00
fd4b155979 feat(快递资料): 归档合同管理与到期提醒 (#336) 2026-10-15 10:22:35 +08:00
8d7f6da49f feat(协议签署): 按需生成证件推送单并独立签署归档 (#335) 2026-10-15 08:19:32 +08:00
8ba7ac8327 feat(快递入驻/快递资料): 生成二维码时必填快递资料并对齐到快递资料;去掉「发起报价变更」按钮;自定义3 改名扣款方式
- 生成入驻二维码新增 11 个必填项(快递方看不到,放在入驻流程下方单独一块):快递类型、快递合作方式、快递属性、扣款方式、单号类型、快递邮箱、
  是否需要核对物流点、快递发货方式、是否已有工作平台账号、快递网点代码、网点所在地区;入驻列表、入驻详情可查看和修改
- 快递资料:扣款方式对齐到「扣款方式」列(工作平台没填时用入驻的),其余字段接在入驻信息列里;网点代码/地区进网点明细;导出同步
- 不再依赖钉钉「新建快递」流程字段,ERP 开通改为手动补录 ERP账户ID
- 快递资料「自定义3」列、筛选、编辑和导出表头改名为「扣款方式」(字段仍是 undefined3)
- 报价管理工具栏、报价历史页去掉「发起报价变更」:它默认拿第一份报价走老的改格子流程,对入驻快递会绕开后台变价;
  变价统一从报价列表每一行的「变价」进入;老报价编辑页新增 …/changes/new 入口,避免套餐限制中间件把 GET …/create 跳到用户页
- 新增迁移 2026_10_14_300000:business_courier_onboardings 加 11 个可空字段

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_019gzfsnV3fJ89CoUy1D9V9g
2026-10-14 18:31:25 +08:00
c0aab60862 业绩明细:订单侧双口径核对(买家实付/卖家实收)+ 差额待核实 + 列名与筛选改名
- 同步:账单能对上卖家实收时按实收核对(差额归零、订单实付/实收列显示实收值),并写入标识「订单实付按卖家实收核对」
- 页面:新增兜底备注「差额待核实」(可筛选);该标识在「匹配原因」列展示并纳入筛选与联动计数
- 列名:「订单实付金额」→「订单实付/实收金额」;「未匹配原因」→「匹配原因」
- 新增 scripts/docker-fix-start.ps1(Docker 因僵尸 socket 起不来时一键清理并启动)
2026-10-14 17:54:56 +08:00
71652c5a64 feat(快递入驻): 快递扫码填写入驻资料 + 两级审核 + 首版报价 + 签署开通
快递应付 → 快递报价 下新增「快递入驻」页:生成入驻二维码发给快递方,
对方免登录在手机上填写主体、联系人、e签宝签署人、结算账户、报价并上传资质,
内部对接人初审、管理员财务复审后生成首版报价,并自动生成报价确认单 PDF
推送到快递填写的 e签宝账号,签署归档后开通。

- 新增三张表 business_courier_onboardings / _files / _events(纯新增,不改旧表)
- 免登录填报页 /onboarding/courier/{token}:40 位随机 token,可暂存、提交、退回后补件,
  链接有效期可延长、可作废;银行账号加密存储;附件存 uploads 盘
- 新增 COURIER_ONBOARDING_PUBLIC_URL 配置二维码里的站点地址(留空用当前访问地址)
- 内置纯 PHP 二维码生成(App\Support\QrCode,SVG 输出,无新增依赖)
- 生成二维码时必须定好系统快递名称(唯一,快递方不可见);财务复审沿用该名称,快递所填报价写成报价管理的 CourierQuoteVersion,
  复用 CourierQuoteSignatureService 生成报价确认单并推送 e签宝(失败可重推/同步状态);初审人默认不能复审(COURIER_ONBOARDING_ALLOW_SAME_REVIEWER=true 可在测试环境放开)
- 支持公司 / 个人两种入驻:个人填姓名+身份证号(加密)、传身份证和银行卡,报价确认单按个人身份在 e签宝签署
- 扫码先选入驻方式;证件改为 营业执照 / 法人身份证正反面 / 银行卡正反面 各一张(个人营业执照选填),手机端上传前自动压缩,超限回到填报页提示
- 报价支持 4 种计费方式(面单+费率 / 首重+续重 / 按重量段一口价 / 小重量一口价+超出另算,费率可分段)+「其他」上传报价表;附加规则:计泡、起算重量、取整、每票加收(CourierQuoteStructure)
- 不再要求上传盖章报价单,至少填写一行在线报价
- 开通:报价确认单签署归档、或匹配到已签署协议、或填写线下签署说明
- 生成二维码前必填「快递公司代码」(自动大写、不可重复),入驻信息按代码对齐快递资料
- 公司入驻对公(营业执照主体)+ 对私(法定代表人)两个打款账户必填并自动核对;个人入驻对私必填、对公选填
- 变价:报价管理里后台改价 → 审核 → 自动推送快递 e签宝 → 回签;回签单导出 xlsx/zip;误发版本可作废
- 短期(临时)变价:变价单/报价版本加选填「结束日期」(end_date);按日期取价,期间用临时价,到期次日自动恢复原长期报价,
  不用重签;报价管理显示 生效中(临时)/ 暂停中 / 已到期,确认单写明执行期间和到期后恢复的版本,审核提醒期间重叠
- 快递资料分四类:快递资料 / 网点 / 打款信息 / 操作日志,支持查询、导出、重置、编辑;
  财务系统入驻的快递直接作为快递资料行,合同起止取协议签署里已签署的合作合同;
  点开一行在下方看该快递的网点 / 打款信息(完整账号)/ 操作日志
- 编辑存财务系统覆盖值(business_courier_profiles,不回写工作平台),改动记操作日志(business_courier_profile_events)
- 打款信息新增 / 变更(business_courier_payment_accounts,账号加密)保存后跳到协议签署,自动预填收款账户证明 / 收款账户变更,
  按签署状态显示 待推送协议 / 签署中 / 已生效;入口在快递资料明细和「打款信息」页签(表格每个账户可直接「变更」)
- ERP 开通:入驻开通后标「待 ERP 开通」,可手动补录(钉钉「新建快递」流程同步待接入)
- 新增 CourierOnboardingWorkflowTest(8 个用例),更新快递报价目录顺序断言

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_019gzfsnV3fJ89CoUy1D9V9g
2026-10-14 13:47:00 +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