586 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
b0d7096241 供应商对账:厂家端退货表表头与退货明细完全一致 (#374)
厂家端退货表列头与退货明细一致(补齐月份/条形码/商品名称等),类型/操作在最后。
2026-10-17 10:53:13 +08:00
c69796b0d3 供应商对账:退货明细按导入顺序展示 (#373)
退货扣减确认取消金额排序,按导入顺序分页展示。
2026-10-17 10:24:25 +08:00
a8ffb6fc23 供应商对账:退货扣减确认展示全部退货行 (#372)
退货行按扣减金额从高到低分页展示(每页 15 行 + 页码),不再只显示前 15 行。
2026-10-17 10:05:08 +08:00
feea2ed8b6 供应商对账:厂家上传的对账数据改为每页 15 行 + 页码翻页 (#370)
上传的对账数据表改为每页 15 行短表,底部总行数+页码(含上一页/下一页),翻页保留所选厂家。
2026-10-17 09:47:59 +08:00
2848c81a5e 供应商对账:退货明细改为「退货扣减确认」面板 (#369)
退货扣减确认:顶部汇总、逐行确认/异议、全部确认(不覆盖异议)、金额空按预估金额扣减,展示金额最高 15 行。
2026-10-17 09:40:54 +08:00
8aa7676853 供应商对账:查看比对改为独立明细视图 (#368)
财务端点「查看比对」进入只显示该厂家明细的视图(汇总+行级差异),带返回列表按钮并保留筛选。
2026-10-17 09:23:52 +08:00
3b4db0e273 供应商对账:单价/金额留空自动补齐 (#367)
单价留空按金额÷数量补齐、金额留空按数量×单价补齐、都空按 0(数量必填),未定价行厂家可直接上传。
2026-10-17 09:16:51 +08:00
2ffb49ca92 供应商对账:条码匹配去掉厂家编号/版本后缀,表头不符提示缺列 (#366)
比对键先去掉厂家编号+版本后缀再匹配(实测雪翔家居文件),页面显示厂家原始条码;表头校验失败列出缺少/多出的列名。
2026-10-17 09:07:16 +08:00
2a80f380e6 供应商对账:财务端数据在月份后新增「对账人」筛选 (#365)
对账人筛选取自终版货款对账的对账人列,按月过滤后生成选项;选择后供应商列表与比对明细同步过滤。
2026-10-17 08:57:14 +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
7742163632 应付款终版导入:分块读取工作簿,避免大文件把进程撑爆导致 500 (#359)
按 2000 行分块读取(大文件不再整表载入内存),读满 1 万行立即提示拆分文件;php.ini 补 log_errors/error_log,致命错误可查。
2026-10-16 23:15:33 +08:00
8429ad0642 应付款终版货款对账:采购单号后新增「日期」列 (#358)
「月份」后依次为入库单号、采购单号、日期;导入模板/表格/导入/编辑/导出同一套字段,只作用于终版目录。
2026-10-16 22:34:01 +08:00
0a54775b3b 配件补发扣款:快递比例配置、Excel导入和归属选择 (#357) 2026-10-16 22:27:46 +08:00
b26ab9f85d 快递应付:首发信息拆列及明细字段筛选 (#356) 2026-10-16 22:17:52 +08:00
688ae30747 应付款终版退货对账:wms配货单号调整到标题后 (#355)
「标题」在前、「wms配货单号」在后(与基础页面一致),导入模板与页面/导出同步;其他页签不受影响。
2026-10-16 22:17:05 +08:00
b4eaa1e102 快递应付:新增配件补发扣款匹配界面 (#353) 2026-10-16 21:36:03 +08:00
e6f4b61761 应付款终版退货对账:创建人调整到对账人前 (#352)
「标记多标签」后补创建人、「对账人」保持末列,导入模板与页面/导出同步;其他页签不受影响。
2026-10-16 21:35:39 +08:00
3e1d211d1b 应付款终版退货对账:新增「wms配货单号/创建人」列并去掉「快递名称」 (#352)
「备注」后插入 wms配货单号,末尾补创建人,删除快递名称列;导入模板/表格/导入/编辑/导出同一套字段,只作用于终版目录。
2026-10-16 21:23:25 +08:00
7fbcd061af 应付款终版货款对账:新增「入库单号/采购单号/对账人」列 (#351)
「月份」后补入库单号、采购单号,末尾「未发出」后补对账人;导入模板/表格/导入/编辑/导出同一套字段,只作用于终版目录。
2026-10-16 20:58:42 +08:00
da2a26c485 应付款终版货款对账:导入模板与表格新增「未发出」列 (#350)
终版目录的货款对账页在现有字段后追加「未发出」(导入模板/表格/导入/编辑/导出同一套字段);基础目录的「未发出」是按来源数据计算的标记,保持不变。
2026-10-16 20:12:23 +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
f3df42f46b fix(存量报价): 修复批量保存被安全检查误拦截 (#347) 2026-10-16 16:28:18 +08:00
9a25db91cc feat(报价管理): 存量报价整本批量录入及签署原图归档 (#346)
保留各家工作表报价原文、公式、独立执行日期及签署原件;审核后按执行日期管理版本。33项测试、336项断言通过。生产业务迁移已获明确授权,服务器私有备份已完成并逐条校验。
2026-10-16 14:56:44 +08:00
d1b14fc10d feat: 合作合同乙方签约地支持编辑 (#343) 2026-10-15 18:13:24 +08:00
564eb1ef08 fix: 协议签署业务操作授权与按钮权限一致 (#342) 2026-10-15 17:38:17 +08:00
288184c8dc feat: 快递资料合同甲乙方与协议签署联动 (#341)
新增合同主体(乙方)与签订公司(甲方)只读展示和导出;协议签署自动带出唯一乙方,缺失或冲突留空核对。19项直接相关测试与实际浏览器联动验证通过。无权限、金额、数据库结构或配置改动。
2026-10-15 17:00:21 +08:00
f41a8fa6ba 钉钉登录:单独授权人员仅访问三个快递报价页面 (#339)
按精确企业身份开放受限登录,保留在职校验和普通角色;统一限制菜单、页面、导出与预览。59 项相关测试通过,无数据库迁移。
2026-10-15 15:21:05 +08:00
cccd321195 快递应付:清空运费对账页面并停用错误数据源 (#338) 2026-10-15 14:08:05 +08:00
1131d073ce 快递入驻:指定钉钉初复审人员,复审任一人通过 (#337) 2026-10-15 13:52:30 +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
9c63f36944 fix(发货数据): 无快递单号的自动发货仓旧包裹也按被取代清除
- 10.11/10.12 剩余约 476 个省份空白包裹:凌晨同步时按自动发货仓入库、当时订单还没有快递单号;之后订单有了发货明细,
  改由发货明细来源键吐出,旧包裹因无单号未被识别为被取代而残留(重复且省份空白)。
- 窗口内未再出现的旧包裹,若为自动发货仓来源且该订单本次已有发货明细,或无单号但同一交易单号本次已由其它包裹吐出,视为被取代删除。

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_014nvGZkg27YMEdhRy6EiUwf
2026-10-14 15:34:47 +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
f6497f5afc fix(发货数据): 重跑时清除被取代的兜底包裹,保留包裹也刷新省市区/快递/仓库
- 凌晨同步时发货明细常未到齐,包裹先按自动发货仓/出库单兜底入库(无省份、无商品);之后发货明细到齐换成发货明细来源键,
  旧兜底包裹因"上游未再出现"被保留,造成重复和空白省份(10 月重跑 2,226 个)。现在:旧包裹的快递单号已由本次其它包裹吐出时
  视为被取代并删除;无对应的仍保留待核对。
- 商品金额无法安全匹配(或新商品明细缺失)而保留的旧包裹(10 月 28,201 个),此前整包不更新;现在商品与金额不动,
  省市区、快递名称、仓库、店铺、平台、交易单号、付款时间按本次上游刷新。

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_014nvGZkg27YMEdhRy6EiUwf
2026-10-14 08:54:45 +08:00
ea80148dfc 店铺违规预警:级别/责任人/处理截止/超时/推送状态 + 处理状态四档 + 群推送接口 + 预览统计页 (#332) 2026-10-13 19:54:01 +08:00
45a28aa76c 快递报价:工作区 iframe 内不再重复显示已打开页面标签栏
- 已打开页面标签栏只在最外层窗口渲染,iframe 子页面不再出现同一条标签栏,
  避免点标签时在 iframe 内部再套一层快递报价工作区(页面上出现两份同样的页签+标签行)
- 快递报价工作区注入的样式同时隐藏 .open-tabs,兜住浏览器缓存的旧子页面
2026-10-13 15:51:04 +08:00
a884da7057 侧边栏菜单搜索 + 已打开页面标签栏
1)侧边栏菜单上方新增搜索框:按关键字过滤菜单项(如输「快递应付」直接定位),
   无匹配时给出提示,Esc 清空。
2)页面顶部新增「已打开页面」标签栏:点开过的业务页面并排固定在页面上方,
   点标签直接切回(回到最近一次带筛选的地址);同一张页面按路径去重;
   标签按账号存在浏览器本地(localStorage),没退出登录就一直保留;
   支持单个关闭和「清空(保留当前页)」,最多并排 15 个,超出横向滚动。
   钉钉单页入口模式下不显示这个标签栏。
2026-10-13 14:57:22 +08:00
cdcb1c6662 应付云仓车费:明细行点击高亮 (#331) 2026-10-13 14:29:57 +08:00
d3049686b4 应付云仓车费:移除「全部表单字段/付款明细/审批任务」三列 (#330) 2026-10-13 14:12:47 +08:00
8905192b78 应付云仓车费:附件支持点击下载 (#329) 2026-10-13 13:58:31 +08:00
26b83bd8e7 钉钉入口单页模式扩到整个「财务经营风险管控」目录
上一版只对店铺违规信息预警单页;在钉钉里点该目录的另一个页签(流程统计)又会
冒出整排菜单。改成:只要属于 financial-risk-control 目录、且来自钉钉容器
(或显式 ?focus=1),就隐藏全局菜单,只保留该目录自己的页签。
2026-10-13 13:53:49 +08:00
7a5f04287c 钉钉工作台入口:店铺违规信息预警整页展示(隐藏全局菜单)
钉钉工作台里点进来的这个入口,现在只显示这一张页面:不再渲染全局侧边栏,
内容区占满宽度,其余页面和网页端登录完全不受影响。

判断依据:当前页面是 financial-risk-control/store-violation-alert,且请求来自
钉钉容器(UA 含 DingTalk)或显式带 ?focus=1;路由参数取不到时按路径段兜底。
2026-10-13 13:28:59 +08:00