|
|
18c28c4f1a
|
feat: 快递资料接入合同甲乙方并联动协议签署
|
2026-10-15 16:56:08 +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 |
|
|
|
57f2dccfac
|
应付云仓车费:修复附件列为空 (#328)
|
2026-10-13 13:26:59 +08:00 |
|
|
|
d47a72c175
|
店铺违规预警:新增违规原因与处置方式两列(页面/统一表/导入导出) (#323)
|
2026-10-13 11:32:27 +08:00 |
|
|
|
53b0821384
|
快递应付:仓储运费更名为仓储费 (#320)
|
2026-10-13 10:59:30 +08:00 |
|
|
|
8b62ba0504
|
附加费结算:筛选字段可自选显示(筛选设置) (#321)
|
2026-10-13 10:59:29 +08:00 |
|
|
|
bbf8c1f16c
|
附加费结算:分页改为退货取件管理同款紧凑样式 (#319)
|
2026-10-13 10:41:33 +08:00 |
|
|
|
f663ddc51f
|
附加费结算:明细行点击高亮,方便核对时标记当前行 (#317)
|
2026-10-13 09:56:41 +08:00 |
|
|
|
7ecd5a59e6
|
fix(发货数据): 快递名称、仓库按发货数据视图取值,与工作平台一致
- 9 月核对剩余 256 条快递名称、44 条仓库不一致;抽样 14/14 工作平台显示的就是发货数据视图
(Jst_SendData_View_extension) 的 expressName / wareHoursName。视图有值时以视图为准,
视图没有该出库单时保留出库单/发货明细推断的值。
- 发货数据视图、出库单头按 300 个出库单一批查询(原 800),减少副本库超时导致整月重跑中断。
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_014nvGZkg27YMEdhRy6EiUwf
|
2026-10-13 09:53:02 +08:00 |
|
|
|
e61e3b50fb
|
店铺违规预警:补充生产每日同步定时任务(cron 遗漏) (#315)
|
2026-10-13 09:36:14 +08:00 |
|
|
|
c55c06026f
|
快递应付:报价维护只留报价页签 + 附加费结算定时同步(每日7天/每周90天) (#314)
|
2026-10-12 17:49:10 +08:00 |
|
|
|
e883d262f0
|
快递应付:修复三方仓进销存加载超时
|
2026-10-12 17:22:17 +08:00 |
|
|
|
26f945ba29
|
本地预览:测试断言同步到已启用的 OPcache 配置
deploy/php-local.ini 已改为 OPcache 开启 + 每次请求校验时间戳,测试仍断言 opcache.enable=0 导致失败;更新为 enable=1 并校验时间戳。
|
2026-10-12 17:12:10 +08:00 |
|
|
|
45b9feb8c4
|
快递应付:附加费结算增加独立页签入口
|
2026-10-12 16:59:51 +08:00 |
|
|
|
66d6146c19
|
快递运费:导入兼容「店铺」列名(财务系统提供成本5-6.xlsx 用)
列名别名扩展:店铺名称/店铺;csv 与 xlsx 两条路径的用例同步覆盖。
|
2026-10-12 14:55:01 +08:00 |
|
|
|
0da349e51b
|
快递应付:仓储核算移为独立仓储运费 (#311)
|
2026-10-12 14:46:52 +08:00 |
|
|
|
9f6a5f6fde
|
退货取件管理:整行点击异步加载详情,本地 opcache 提速
|
2026-10-12 13:47:01 +08:00 |
|
|
|
3e24bc5111
|
快递应付:左侧增加快递报价入口并打开四个页面 (#309)
|
2026-10-12 13:26:22 +08:00 |
|
|
|
10c22a655d
|
退货取件管理:详情精简置底、当前行高亮、内部滚动与快递公司多选
|
2026-10-12 13:14:53 +08:00 |
|
|
|
f7547bc9a1
|
feat(快递应付): 四个报价相关模块归入快递报价子目录 (#307)
|
2026-10-12 12:17:13 +08:00 |
|
|
|
f3143e6959
|
快递运费:修复 XlsxSheetReader 可选列漏传闭包导致 xlsx 导入报未定义变量
补 xlsx 路径导入测试(csv/xlsx 是两条代码路径,此前只测了 csv)
|
2026-10-12 12:07:09 +08:00 |
|
|
|
f805920fda
|
快递运费:新增「店铺名称 / 快递单号 / 条形码」列,并按「财务系统运费整理.xlsx」重新导入
- 迁移:courier_freight_rows 增加 express_no / barcode / shop_name(可空)
- 导入器支持可选列(快递单号 / 条形码 / 店铺名称),老文件缺这三列也能导;XlsxSheetReader 支持可选列表头
- 页面与导出新增三列;运费差 / 结算运费 / 其他附加费汇总 / 退件费 表头与取数逻辑不变
- 测试:新增新列导入、老文件兼容、页面展示用例
|
2026-10-12 11:56:00 +08:00 |
|
|
|
50cfbf1c14
|
feat(协议签署): 接入供应商代发、代销和生产合作合同模板 (#306)
|
2026-10-12 10:48:04 +08:00 |
|
|
|
d8dfb33437
|
fix(发货数据): 仓库按实际出库单发货仓、补入无需物流虚拟发货、作废单号识别换单
- 仓库一律按实际出库单 wms_co_id 映射(从快递公司一致的明细行学习仓库名,样本>=3 且占比>=90% 才回填),
修正发货明细写总仓而实际由工厂代发仓出库(如 710099981090 千优代发仓)的情况。
- 快递名称为"无需物流"(补差/信誉/运费等虚拟发货,如 X00006)的包裹仓库统一为"简尚-自动发货仓",与工作平台一致。
- 换单配对:快递明细单号只对应作废出库单时视为已换单,改用有效出库单的新单号(如 DPK366101313659 -> SF1549142274850)。
- 出库单兜底不再跳过"无需物流"的无单号出库单(信誉订单/补差价/运费专用等虚拟发货),按工作平台口径补入自动发货仓、快递单号为空;
9 月核对工作平台有、线上无的 565 条虚拟链接,抽查确认为此原因(出库单无单号被跳过)。
- 换单配对查询(logistic_id 无索引)副本库超时时跳过本页,不再中断整轮同步;结果返回 tracking_pairing_skipped_pages。
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_014nvGZkg27YMEdhry6eiuwf
|
2026-10-12 09:58:05 +08:00 |
|
|
|
1e689d254e
|
附加费结算:超长费/退回费/拦截费拉取、导入核验与模板导出
|
2026-10-12 09:33:24 +08:00 |
|
|
|
597104430e
|
协议签署:每条公司主体增加删除功能 (#304)
每条公司主体增加确认删除,保留历史快照,删除默认主体后选择剩余主体,全部删除回退当前公司。相关21项测试246条断言及隔离页面交互通过。
|
2026-10-11 14:26:31 +08:00 |
|
|
|
cbec6a8b62
|
供应商管理增加每天08:15完整同步 (#302)
|
2026-10-11 13:57:28 +08:00 |
|
|
|
ad7226081a
|
协议签署:供应商合作合同显示模板待提供
供应商合作合同使用待提供模板提示;授权委托书复用现有模板,快递合作合同正常。页面测试及浏览器切换和预览验证通过。
|
2026-10-11 13:47:19 +08:00 |
|
|
|
ad3961b82d
|
修正供应商易签宝账号并接入签署选择 (#300)
|
2026-10-11 13:39:03 +08:00 |
|
|
|
49c6e1ecd1
|
修复供应商管理资料镜像索引与存储分类 (#298)
|
2026-10-11 12:34:31 +08:00 |
|
|
|
665b8fafd2
|
接入供应商管理页面与共享镜像 (#297)
|
2026-10-11 12:11:15 +08:00 |
|
|
|
ad6d70a0a2
|
协议签署:增加合作方类型与供应商待接入展示
合作方类型与供应商待接入展示;53 项测试、825 条断言通过。
|
2026-10-11 11:55:11 +08:00 |
|
|
|
48553c001d
|
协议签署:每条任务支持自主删除
全部状态、两类任务支持确认软删除,保留文件及外部签署流程。相关72项测试通过,权限及公司隔离保持不变。
|
2026-10-11 11:24:30 +08:00 |
|
|
|
766a85b097
|
协议签署:待处理任务增加删除和确认
|
2026-10-11 10:37:28 +08:00 |
|