69 Commits

Author SHA1 Message Date
acafcf1abb 修正安装费汇总:保留独立安装明细页并按客服审核时间归集 (#589) 2026-10-26 14:13:18 +08:00
d2e20bd441 将安装费金额并入业绩明细 (#587) 2026-10-26 13:47:02 +08:00
3cff23c595 新增财务系统化待办与完成截图
新增财务系统化待办与完成截图
2026-10-25 16:23:08 +08:00
a6f4ca8ccc feat: 接入供应商钉钉门户权限 2026-10-21 16:24:15 +08:00
5633ed2430 安全整合存量报价计费规则与独立成本价观测 (#410) 2026-10-20 19:08:47 +08:00
bd39a7fdda 存量报价支持多时期导入、快递分组及按日期查看 (#382) 2026-10-17 20:58:04 +08:00
3fedeef59a 修复存量报价审核生效、原件预览与配件补发可扣款清单 (#377) 2026-10-17 12:49:39 +08:00
2399d42d6d feat(存量报价): 支持按发货名称手填录入及无编号报价 2026-10-16 17:58:35 +08:00
9a25db91cc feat(报价管理): 存量报价整本批量录入及签署原图归档 (#346)
保留各家工作表报价原文、公式、独立执行日期及签署原件;审核后按执行日期管理版本。33项测试、336项断言通过。生产业务迁移已获明确授权,服务器私有备份已完成并逐条校验。
2026-10-16 14:56:44 +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
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
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
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
4eb09a1fcc 协议签署:待处理与已归档视图、归档原因及文件下载 (#291) 2026-10-11 09:55:46 +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
885961084e 流程统计:接入店铺申请流程(开店/变更/关店)共享镜像
数据源:jiansun.dbo.fys_shopInfo_flow(申请单明细,4572 行,含店铺/平台/负责人/利润中心/商标/变更原因/关店原因等)
+ 中台库 dbo.flow_flow(按 flowId 关联审批状态与当前审批人),两个数据集已登记并完成首次全量。

- 新增 ShopInfoFlowMirrorRepository:左连接两套镜像,支持单据编号/申请人/申请日期/当前审批人/
  ERP店铺名称/店铺运营负责人/利润中心/商标号等文本筛选,流程类型、审批状态、平台为可搜索多选。
- 审批状态文案取自 OA 前端字典:0暂存/1流程中/2拒绝/3完成/4撤回/5待签署/6已签署/7待审批;
  流程类型:8店铺开店/9店铺变更/10店铺关店/12主体注销自动流程。
- 页面按目录表渲染(查询条件、筛选字段、导出),列与外部店铺申请页对齐。
- TableRegistry 登记为只读上游页,镜像未就绪时页面给提示而不是报错。
2026-10-08 14:38:16 +08:00
7fe426211d 快递运费:列名改回「成品配件」(新表含成品运费/配件运费两类)
上一版把列名改成「成品运费」了,按业务要求改回「成品配件」;导入侧继续两种表头都认。
2026-10-08 14:06:22 +08:00
8c626c65de 快递运费:查询字段靠左,列名「成品配件」改「成品运费」
1) 查询栏里的空提交表单没隐藏,会占掉栅格第一格,把筛选字段整体挤到第二列;改成 hidden 后字段从最左边开始(所有用这套查询栏的页面一起受益)。
2) 快递运费页把「成品配件」列名改成「成品运费」;导入时两种表头都认(成品配件 / 成品运费)。
2026-10-08 13:55:56 +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
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
e5d6c76f27 账单流水数据新增聚水潭订单标签明细页
新增「账单流水数据 › 聚水潭订单标签明细」(紧邻种菜明细表):四列(线上订单号/店铺名称/下单时间/标签),按标签拆行(一个标签一行)、订单不去重、标签不汇总,无标签订单记为「(无标签)」。新增 jst_order_labels 表(含公司/时间/标签/店铺索引)、JstOrderLabel 模型、JstOrderLabelImporter(从镜像 ops_jst_orders 按区间拆行导入,--replace 只清同区间)与 jst-order-labels:import 命令、导出路由与用例。页面筛选:下单时间区间(点整块开日历、可单独清除)、店铺、标签、线上订单号。
2026-09-30 16:40:16 +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
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
f562faca3c 完善进销存映射表与开发环境刷新配置 2026-09-28 09:16:02 +08:00
c424ffffce fix: calculate withdrawal compliance from dated amounts
按余额减提现金额与预留标准计算达标状态,并接入提现金额日期化导入。
Co-authored-by: 92451 <924518135@qq.com>
Co-committed-by: 92451 <924518135@qq.com>
2026-09-24 19:34:09 +08:00
01de726227 快递附加费维护支持供应商、日志筛选与列宽调整 (#246) 2026-09-23 11:09:24 +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
3fbddfa14a 修复协议状态提示与历史文件下载 2026-09-17 11:59:08 +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
aa7f063a70 重构资金预测表工作台 (#183) 2026-09-14 14:28:20 +08:00
57d779eb2f 新增三方仓仓储报价录入 (#175) 2026-09-12 19:39:21 +08:00
c7ac541334 用户多分组及分组页面权限 (#122) 2026-09-08 14:30:48 +08:00
0584aa3742 feat: enforce closed DingTalk account access 2026-09-04 23:38:56 +08:00
ca131731f6 fix: keep agreement signing page readable for legacy payloads 2026-09-04 16:14:30 +08:00
6995ad31c5 feat: add DingTalk account login 2026-09-03 15:42:46 +08:00
7e64d24458 feat: complete courier e-sign workflow and PDF rendering 2026-09-03 13:54:00 +08:00
88526b9619 附加费类型字典自维护(含进仓费) (#98)
## 任务占用与边界
- 任务名称:附加费类型字典自维护
- 实际开发者:zhoushengchen
- 目标结果:在快递附加费报价维护页支持附加费类型的新增、启用/停用;新增报价仅可选择启用类型,历史报价保留原类型。
- 预计修改路径:附加费类型 Repository、Model、Controller、报价 Repository/Controller、页面、管理路由、类型表迁移和专项测试。
- 将写入的公共契约:business.courier-surcharge.types.store、business.courier-surcharge.types.status、business_courier_surcharge_types。
- 仅复用、不修改的公共契约:business.pages.show、business.courier-surcharge.store。
- 明确不修改的范围:上游数据库、业务镜像、七牛、生产配置和无关页面。

## 开工碰撞检查
- [x] 已检查最新 main 和所有远程任务分支
- [x] 已运行 scripts/codex-task-preflight.ps1
- [x] 未发现与其他远程任务的实际写入重叠

## 实际改动
- 新增附加费类型字典及公司范围隔离。
- 新增类型管理弹窗、创建接口、启用/停用接口。
- 报价表单和后端校验动态读取启用类型;筛选仍可查看全部类型。
- 默认初始化原有 11 种类型,并增加“进仓费”。
- 增加幂等增量迁移,补齐已执行建表迁移环境中的“进仓费”。

## 验证证据
- tests/Feature/Business/CourierSurchargePageTest.php:6 个用例、60 个断言通过。
- 相关 PHP 文件语法检查通过。
- business.courier-surcharge 路由共 5 条,路由检查通过。
- git diff --check 通过。
- 本地共享系统库现状:类型表已存在,当前公司有 11 个旧类型;增量迁移待执行。

## 风险检查
- 未提交 .env、密码、Token、私钥、真实财务数据、生产日志或构建产物。
- 前端遵循 DESIGN.md 的 VIP 黑金令牌。
- 数据库影响:仅新增类型表(若环境尚未建表)或幂等补充“进仓费”,不删除、不覆盖已有类型。
- 回滚:类型字典不做物理删除;迁移 down 保持空操作以保护业务引用。
- 已获得本次“合并 PR 并执行类型表迁移”的明确授权;迁移目标为本机当前连接的团队系统数据库,不涉及生产部署。

## 合并前复查
- [x] 已重新 fetch 远程引用并再次运行碰撞检查
- [x] 已逐文件审核 origin/main...任务分支完整 diff
- [ ] PR 创建后移除 WIP 并执行 Squash merge
- [ ] 合并后验证 main、执行迁移并验证页面

Reviewed-on: http://git.1080p.hk/WuYongJie/CaiWuXiTong/pulls/98
2026-09-02 18:22:17 +08:00
2a756edac7 快递附加费报价正式维护模块 (#97)
## 任务目标
将“快递附加费报价维护”从前端演示改为正式可持久化维护模块,新增、编辑、启停后刷新仍保留。

## 开工范围
- 将写入:`business_courier_surcharge_quotes` 数据表及迁移;`business.courier-surcharge.*` 保存、更新、状态接口;报价维护页的数据读取和维护交互;对应 Feature 测试。
- 预计路径:
  - `app/Business/CourierSurchargeQuoteRepository.php`
  - `app/Http/Controllers/Business/CourierSurchargeQuotes.php`
  - `app/Http/Controllers/Business/Pages.php`
  - `app/Models/Business/CourierSurchargeQuote.php`
  - `database/migrations/2026_09_02_000000_create_courier_surcharge_quotes_table.php`
  - `resources/views/business/pages/courier-payables/courier-surcharge.blade.php`
  - `routes/admin.php`
  - `tests/Feature/Business/CourierSurchargePageTest.php`
- 页面与路由:`courier-payables/courier-surcharge`;新增、编辑、启停使用 POST/PATCH 正式接口。
- 数据源与字段:当前公司报价规则表;快递名称、快递归属、对账人、可多选附加费类型、结算方式、计价标准、生效条件、生效日期、状态、备注。
- 权限与公共契约:复用现有 `business.page:courier-payables,courier-surcharge` 和 `business.pages.show`,不修改全局权限或共享组件。
- 明确不修改:上游数据库、业务镜像、生产配置、七牛、其他业务页面和部署脚本。

## 验证
- `docker exec -u www-data jiangling_app php artisan test tests/Feature/Business/CourierSurchargePageTest.php`
- 3 passed,41 assertions。
- PHP 语法检查及路由检查通过。
- 本地共享模式页面已实际刷新验收;由于迁移尚未在共享系统数据库执行,页面明确显示“数据表尚未就绪”并禁用维护操作。

## 风险与后续
- 新迁移尚未执行。共享系统数据库迁移属于管理员/发布授权范围,普通开发者不得直接执行;管理员完成迁移后页面即可启用正式维护。
- 不自动把旧的六条演示规则写入正式表,待产品决定是否由管理员录入或增加一次性初始化迁移。

Reviewed-on: http://git.1080p.hk/WuYongJie/CaiWuXiTong/pulls/97
2026-09-02 16:53:42 +08:00
e45b876108 feat: 重建店铺收款账户管理 2026-09-01 09:38:03 +08:00
c44d178799 统一多数据库接入、声明式镜像及接入配置修复 (#87) 2026-08-31 18:49:00 +08:00
chenxi
b6cefe776b feat: join installation item mirror and summaries 2026-08-31 17:59:39 +08:00
410e8bc04a 财务经营报表增加安装明细 (#83)
根据安装费工作表增加安装明细数据表、模型和通用页面映射。
2026-08-31 16:37:38 +08:00
2b723d88e6 feat: add cooperation contract signing template 2026-08-29 11:29:05 +08:00
4bd16dd9f8 feat: add courier signing subject management 2026-08-29 11:29:04 +08:00