290 Commits

Author SHA1 Message Date
mzl92 d4deb8855e feat: 审批历史支持PI号筛选,并修复原搜索框后端未实现的问题
- 新增 pi_no 参数:模糊匹配备货单 pi_no -> 单id -> 审批实例biz_id
  (whereHas,todo/history 场景通用)
- 顺带修复:历史页一直发送的 keyword 参数后端从未处理(搜索框是摆设),
  现按 单号/PI号/客户名称 任一模糊匹配;与 pi_no 同传时取交集

Co-Authored-By: Claude <noreply@anthropic.com>
2026-09-02 10:10:31 +08:00
mzl92 2de6342058 fix: 备货单车辆附件图片过期打不开——url 改为响应期重签
原因:attachment[].url 存的是上传时生成的带签名OSS地址(默认1小时
有效),过期后 AccessDenied/Request has expired。
修复:OssService 新增 resignAttachmentUrls(),从存量 url(完整签名URL/
未签名URL/纯对象键三种格式)提取对象键重新签名(7天);
detail(prepareVehicleListData)与 show(crm/admin 两控制器 showFormat
的 items)三处响应时统一重签。存储不动,前端无需改。

Co-Authored-By: Claude <noreply@anthropic.com>
2026-08-26 11:51:40 +08:00
mzl92 2e2188d6e5 feat: 备货单 detail 接口车辆列表补充返回 attachment
prepareVehicleListData 组装每辆车时带上 attachment(模型 array cast
取出即 [{url, original_name}]);同款车按 unique_id 合并的行,
各车附件按 url+文件名并集去重后拼接。show 接口本就带,不动。

Co-Authored-By: Claude <noreply@anthropic.com>
2026-08-26 11:43:01 +08:00
mzl92 6fa80336a6 feat: 询盘导入改为公平分配——按近10天窗口实际分到数排序(三脚本共用)
新增 InquiryFairAssigner:统计 crm_customer(合塑谷歌/导入/未删/近10天)
中名单内每人的已有条数,按 少者优先 -> 最久未分到优先 -> 名单顺序 排序,
三个导入命令分配前统一调用并打印排序结果(含各人窗口内条数)。
解决:日询盘量少于人数时固定只分给名单前几人的问题;
名单增删(离职/暂停回归)自适应,跨脚本/跨天共享,无额外状态。

Co-Authored-By: Claude <noreply@anthropic.com>
2026-08-20 15:40:45 +08:00
mzl92 06b0647fc4 feat: 备货单车辆明细支持 attachment 附件字段
按前端对接文档,stock_order_items 每辆车支持附件 [{url,original_name}]:
- 模型 StockOrderItems:fillable 增加 attachment,新增 $casts=['attachment'=>'array']
  (写自动 json_encode 落库、读自动 decode 回显)
- processVehicleItems:create 前归一化 attachment 为数组(store/update 共用此路径)
- generateVehicleUniqueId:排除 attachment,避免附件影响车辆去重/数量

show/detail 经模型 items 关系 + cast 自动回显 attachment;字段已由前端在库表就绪。

Co-Authored-By: Claude <noreply@anthropic.com>
2026-08-06 15:01:03 +08:00
mzl92 61c34db99e feat: 新增询盘批量分配命令(骨架+Excel解析+code匹配+dry-run)
- InquiryDigestMail: 汇总邮件 HTML 模板
- InquiryBulkAssignCommand: assign 轮询、parseExcel、matchCustomers(code+排除软删除)、dry-run 报告、--self-test

写库/发邮件逻辑见后续提交。

Co-Authored-By: Claude <noreply@anthropic.com>
2026-07-17 14:56:36 +08:00
mzl92 b89ac48dd8 feat: 新增业务人员公共接口(role_id=2,全量返回)
- PublicApiController 新增 staffList():通过 user_roles 关联筛选业务人员
- 返回 id/name/sn/phone/email,支持 keyword 模糊匹配,不分页全量返回
- 路由组新增 /common/public/staff/list
- .gitignore 忽略 docs/*.sql(数据导出文件,不入库)

Co-Authored-By: Claude <noreply@anthropic.com>
2026-06-18 13:37:48 +08:00
mzl92 35d98c16e9 feat: 新增备货单公共 API 接口(PI 号/VIN 号列表)
- 新增 ApiKeyAuth 中间件(hash_equals 防时序攻击)
- 新增 PublicApiController(piList/vinList 两个只读接口)
- 仅返回已审批通过(approval_status=2)的数据,支持分页和模糊搜索
- LIKE 通配符已转义,异常信息不暴露内部细节
- 附对接文档 docs/public-stock-api.md

Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
2026-06-02 17:44:53 +08:00
18338781771 eee09316df 抓取车型信息 2026-02-04 17:35:08 +08:00
18338781771 b43335c0d9 邮件清洗查询状态过滤 2026-01-05 09:44:26 +08:00
18338781771 9f74934f37 邮件 2026-01-04 16:13:21 +08:00
18338781771 6178084612 邮件 2026-01-04 15:50:43 +08:00
18338781771 24e45f93db 邮件 2026-01-04 14:40:43 +08:00
18338781771 8382a47a8c 邮件处理 2026-01-04 13:32:15 +08:00
18338781771 2c00a35b6a 发布人 2026-01-04 13:26:00 +08:00
18338781771 259a7d2ae6 判断询盘 2026-01-04 11:46:04 +08:00
18338781771 279139e18f 1 2026-01-04 11:01:29 +08:00
18338781771 0bcd9bf029 多邮箱处理 2025-12-26 14:12:54 +08:00
18338781771 927f1d9c28 邮件分配 2025-12-26 14:04:42 +08:00
mzl92 ece685fbe5 ts 2025-12-25 16:09:50 +08:00
mzl92 8072388da2 ts 2025-12-25 16:07:33 +08:00
mzl92 f2b7d40b17 ts 2025-12-25 15:59:07 +08:00
mzl92 d81fdae406 备货单审批增加兜底检查 2025-12-23 14:44:43 +08:00
mzl92 861b8b216f 增加备货单修改兜底检查 2025-12-23 14:35:57 +08:00
mzl92 628429af66 Merge branch 'develop' 2025-12-10 20:18:46 +08:00
18338781771 4ff2c2493b 文件大小限制调整 2025-12-09 11:51:22 +08:00
18338781771 b391608d87 内勤备货单查询 2025-12-09 11:12:36 +08:00
18338781771 0ace4a7b0b 内勤备货单查询 2025-12-09 11:08:51 +08:00
18338781771 7258d9890e 内勤备货单查询 2025-12-09 10:54:58 +08:00
18338781771 8c3fbd4d9a 内勤备货单查询 2025-12-09 10:48:59 +08:00
18338781771 a33b109ddb 内勤备货单查询 2025-12-08 15:01:02 +08:00
18338781771 4bcc6c53f7 备货单与审批数据过滤 2025-12-08 13:42:20 +08:00
18338781771 32aa7170a5 备货单与审批数据过滤 2025-12-08 13:24:37 +08:00
18338781771 59994d1f5a 备货单与审批数据过滤 2025-12-08 13:22:37 +08:00
18338781771 a0a71161d3 备货单与审批数据过滤 2025-12-08 13:19:16 +08:00
18338781771 06a264ff21 登录后首页 2025-12-05 16:27:22 +08:00
18338781771 82673cdcfa 仪表盘路由 2025-12-05 10:34:34 +08:00
18338781771 b4b4f6cd5f 仪表盘路由 2025-12-05 10:28:36 +08:00
18338781771 143dde08ce 仪表板路由 2025-12-04 18:11:45 +08:00
18338781771 2ffd053723 仪表盘路由 2025-12-04 18:10:09 +08:00
18338781771 d238b47aa8 仪表盘路由 2025-12-04 18:08:26 +08:00
18338781771 5c3f8679ce 仪表盘路由规则 2025-12-04 17:54:40 +08:00
18338781771 3520f10572 直属上级与内勤 2025-12-04 15:06:34 +08:00
18338781771 1858d3e586 返回角色id 2025-12-04 14:34:38 +08:00
mzl92 e2f79598b2 调整邮件转发移除不参与分配人员 2025-12-02 18:02:12 +08:00
mzl92 80d458a8b0 修改邮件转发接收人规则 2025-12-02 01:58:54 +00:00
18338781771 fe78500ef0 转发 2025-12-01 18:15:53 +08:00
18338781771 bf74d9b917 询单转发 2025-12-01 17:48:44 +08:00
18338781771 05e39d2d65 询单转发 2025-11-29 17:50:08 +08:00
18338781771 af8577064d 记录寻盘 2025-11-29 16:13:53 +08:00