Commit Graph
100 Commits
Author SHA1 Message Date
zlwuandCursor a552049de4 feat(web-admin): add vehicle photo on tripartite vehicle page
Also include cert attachment list cell already wired in this page WIP.

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-08-02 10:34:41 +08:00
zlwuandCursor e2f087e6b9 feat(web-admin): add photoUrls types and pl-photo helpers
Co-authored-by: Cursor <cursoragent@cursor.com>
2026-08-02 10:31:22 +08:00
zlwuandCursor 479851ba4c feat(pl): expose photoUrls on vehicle and personnel APIs
Co-authored-by: Cursor <cursoragent@cursor.com>
2026-08-02 10:30:14 +08:00
zlwuandCursor 56b94e1c5b feat(pl): map photo_urls on vehicle and personnel models
Co-authored-by: Cursor <cursoragent@cursor.com>
2026-08-02 10:25:46 +08:00
zlwuandCursor 2f580eca81 chore(db): add photo_urls to pl_vehicle and pl_personnel
Co-authored-by: Cursor <cursoragent@cursor.com>
2026-08-02 10:23:53 +08:00
zlwuandCursor 0d33c35c7b docs: add implementation plan for vehicle/personnel photo fields
Co-authored-by: Cursor <cursoragent@cursor.com>
2026-08-02 10:18:20 +08:00
zlwuandCursor 9af37c3f56 docs: add vehicle/personnel photo field design and UI demo
Capture the approved photo_urls approach (list thumbnail A, optional upload) for pl_vehicle and pl_personnel before implementation.

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-08-02 10:13:12 +08:00
zlwu a56b170976 提交 2026-08-02 09:28:47 +08:00
zlwu eccefc6650 提交 2026-08-01 22:49:11 +08:00
zlwu e59b2aa6cb 提交 2026-08-01 17:29:37 +08:00
zlwuandCursor 06956b742b feat(crm): add tenant-level contract approver setting with submit prefill
Mirror the quote approver setting so contract submit dialogs can prefill ordered approvers from a tenant config page while remaining editable.

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-08-01 13:37:23 +08:00
zlwuandCursor ce75576fb0 docs: mark quote approver setting design implemented
Co-authored-by: Cursor <cursoragent@cursor.com>
2026-08-01 13:09:13 +08:00
zlwuandCursor 98f33644f1 feat(web-admin): prefill quote submit approvers from tenant setting
Co-authored-by: Cursor <cursoragent@cursor.com>
2026-08-01 13:06:59 +08:00
zlwuandCursor 209f5cb7a8 feat(web-admin): add quote approver setting page and route
Co-authored-by: Cursor <cursoragent@cursor.com>
2026-08-01 13:05:55 +08:00
zlwuandCursor a1e26f044d feat(web-admin): add quote approver setting API client
Co-authored-by: Cursor <cursoragent@cursor.com>
2026-08-01 13:04:29 +08:00
zlwuandCursor 8646f33587 feat(crm): expose quote approver setting get/save APIs
Co-authored-by: Cursor <cursoragent@cursor.com>
2026-08-01 13:04:07 +08:00
zlwuandCursor ffbb5e36b3 feat(crm): implement quote approver setting model and upsert CRUD
Co-authored-by: Cursor <cursoragent@cursor.com>
2026-08-01 13:03:35 +08:00
zlwuandCursor 82e648de9f feat(crm): add quote approver setting table and menu SQL
Co-authored-by: Cursor <cursoragent@cursor.com>
2026-08-01 13:02:47 +08:00
zlwuandCursor 3aafae6a9d feat(crm): add quote approver setting id helpers and unit tests
Co-authored-by: Cursor <cursoragent@cursor.com>
2026-08-01 12:54:29 +08:00
zlwuandCursor 10c3c5470c chore: sync local PL/CRM/BX and migration work to new Gogs host
Bundle pending backend/web-admin feature updates, data-migration scripts,
and related docs so the V1.5 branch on the Tencent Cloud Gogs matches the
current workspace (excluding local secrets).

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-08-01 09:19:21 +08:00
zlwuandCursor 5a9abfdd5d fix(pl): keep multi-brand site feedback when plan product row is stale
Persist submitted brand qtys even if plan brand_mode lookup fails; resolve soft-deleted plan products for brand metadata instead of substituting another product; stop seeding all actual qty onto the first brand option.

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-07-31 07:06:41 +08:00
zlwuandCursor d1daedc17d docs: update brand qty demo copy for required-as-preference
Co-authored-by: Cursor <cursoragent@cursor.com>
2026-07-31 06:58:06 +08:00
zlwuandCursor e6a1c1db2b fix(web-admin): align site/driver public brand qty with preference semantics
Ensure required mode keeps full brand options and multi-select entry.

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-07-31 06:58:06 +08:00
zlwuandCursor c39c0e2760 fix(web-admin): driver feedback dialog multi-brand for required preference
Load full brand options and preselect preferred brand without locking.

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-07-31 06:58:06 +08:00
zlwuandCursor 07cadc9025 fix(web-admin): archive dialog loads all brands for required preference
Preselect preferred brand but allow multi-brand qty entry like any mode.

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-07-31 06:58:06 +08:00
zlwuandCursor b28cf4a335 fix(web-admin): allow multi-brand chips when plan brand is required
Treat required like any in BrandQtyChipsField so preference brand is not locked.

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-07-31 06:54:43 +08:00
zlwuandCursor 156e4b63e5 fix(pl): treat required brand as preference in brand qty validation
Allow multi-brand feedback/archive rows when plan brandMode is required; only enforce sum equals actual qty.

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-07-31 06:52:49 +08:00
zlwuandCursor b3efbe8781 docs: specify transport plan required brand as preference only
Document that feedback/archive brand qty entry uses any-mode multi-select with preferred-brand preselect, removing the single-brand hard lock.

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-07-31 06:50:21 +08:00
zlwuandCursor 6dcc279cc9 test(pl): verify feedback brand qty and refresh graphify
Co-authored-by: Cursor <cursoragent@cursor.com>
2026-07-31 05:40:05 +08:00
zlwuandCursor aea4caed5b feat(web-admin): align archive brand qty entry with chips UI
Co-authored-by: Cursor <cursoragent@cursor.com>
2026-07-31 05:37:00 +08:00
zlwuandCursor 5c323f32c2 feat(web-admin): show brand qty on transport tab and highlight supplement actions
Expose driver per-product feedback on transport read, display site/driver
brand summaries in the transport tab, move supplement buttons to section
headers with primary highlight, and wire brand chips into IO/driver edit.

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-07-31 05:35:42 +08:00
zlwuandCursor b7236329c2 feat(web-admin): driver feedback dialog brand qty entry
Co-authored-by: Cursor <cursoragent@cursor.com>
2026-07-31 05:31:22 +08:00
zlwuandCursor 2a215b2e1f feat(pl): driver public feedback by product and brand qty
Co-authored-by: Cursor <cursoragent@cursor.com>
2026-07-31 05:29:21 +08:00
zlwuandCursor 0667e8d77b fix(web-admin): bind branded site actual qty to chip sum on load
Co-authored-by: Cursor <cursoragent@cursor.com>
2026-07-31 05:25:03 +08:00
zlwuandCursor 6dde2cec07 feat(web-admin): site public page brand qty chips entry
Co-authored-by: Cursor <cursoragent@cursor.com>
2026-07-31 05:23:37 +08:00
zlwuandCursor 006ed6586c feat(pl): site io-order feedback accepts and stores brand qtys
Co-authored-by: Cursor <cursoragent@cursor.com>
2026-07-31 05:17:50 +08:00
zlwuandCursor b0346e688d feat(pl): add feedback brand qty persist helpers and tests
Co-authored-by: Cursor <cursoragent@cursor.com>
2026-07-31 05:14:54 +08:00
zlwuandCursor 79f87d39a7 feat(pl): add ORM models for feedback brand qty tables
Co-authored-by: Cursor <cursoragent@cursor.com>
2026-07-31 05:11:51 +08:00
zlwuandCursor 5538fa3152 fix(db): drop unrelated shanxia2.0.sql diffs from brand qty migrate
Co-authored-by: Cursor <cursoragent@cursor.com>
2026-07-31 05:10:07 +08:00
zlwuandCursor b658591818 chore(db): add feedback brand qty tables for site and driver
Co-authored-by: Cursor <cursoragent@cursor.com>
2026-07-31 05:07:53 +08:00
zlwuandCursor fb76940d15 docs: add implementation plan for feedback brand qty
Break down site/driver brand quantity feedback into DDL, APIs,
shared chips UI, view-tab layout, and archive alignment tasks.

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-07-31 05:02:46 +08:00
zlwuandCursor 4e6e06a603 docs: add transport feedback brand qty design and demo
Capture the approved design for site/driver brand quantity feedback,
independent storage from archive, and view-tab/button layout changes.

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-07-31 05:00:36 +08:00
zlwuandCursor dd4aa734ee chore: sync remaining local plan, form mapping and graphify cache
Co-authored-by: Cursor <cursoragent@cursor.com>
2026-07-28 10:05:03 +08:00
zlwuandCursor 44a57b86ca chore: update graphify after brand/alias inventory work
Co-authored-by: Cursor <cursoragent@cursor.com>
2026-07-28 09:38:07 +08:00
zlwuandCursor dd31fb53b6 chore(db): add optional script to split brand from product names
Co-authored-by: Cursor <cursoragent@cursor.com>
2026-07-28 09:36:32 +08:00
zlwuandCursor 7aa995a9d6 feat(pl): show archive brand breakdown on inbound/outbound orders
Co-authored-by: Cursor <cursoragent@cursor.com>
2026-07-28 09:36:15 +08:00
zlwuandCursor e7d7e731ba feat(web-admin): show brand on inventory ledger and transactions
Co-authored-by: Cursor <cursoragent@cursor.com>
2026-07-28 09:35:42 +08:00
zlwuandCursor 38b1613fee feat(web-admin): enter archive inbound/outbound qty by brand
Co-authored-by: Cursor <cursoragent@cursor.com>
2026-07-28 09:35:05 +08:00
zlwuandCursor cc2edfc61f feat(pl): post brand-level inventory on plan archive
Co-authored-by: Cursor <cursoragent@cursor.com>
2026-07-28 09:34:07 +08:00
zlwuandCursor 32533948e3 feat(pl): validate and persist archive quantities by brand
Co-authored-by: Cursor <cursoragent@cursor.com>
2026-07-28 09:32:36 +08:00
zlwuandCursor c35627d60a feat(pl): show brand constraint on plan product rows
Co-authored-by: Cursor <cursoragent@cursor.com>
2026-07-28 09:31:51 +08:00
zlwuandCursor cd33befa07 feat(web-admin): choose display name and brand constraint on quote/contract lines
Co-authored-by: Cursor <cursoragent@cursor.com>
2026-07-28 09:30:38 +08:00
zlwuandCursor ba98108659 feat(crm): snapshot brand mode on quote and contract lines
Co-authored-by: Cursor <cursoragent@cursor.com>
2026-07-28 09:23:50 +08:00
zlwuandCursor bcfadd23d9 feat(web-admin): edit product brands and aliases in product form
Co-authored-by: Cursor <cursoragent@cursor.com>
2026-07-28 09:22:29 +08:00
zlwuandCursor bfa0d50597 feat(crm): persist product brands and aliases on create/update
Co-authored-by: Cursor <cursoragent@cursor.com>
2026-07-28 09:21:31 +08:00
zlwuandCursor ea43150b8a feat(models): add product brand/alias and plan brand qty models
Co-authored-by: Cursor <cursoragent@cursor.com>
2026-07-28 09:18:32 +08:00
zlwuandCursor 265a4ff4f7 chore(db): add product brand/alias and brand-level inventory schema
Co-authored-by: Cursor <cursoragent@cursor.com>
2026-07-28 09:16:52 +08:00
zlwuandCursor a79dd9f61d docs(crm): add product brand and alias implementation plan.
Break the approved design into sequenced tasks from DDL through archive inventory posting and UI.

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-07-27 21:47:38 +08:00
zlwuandCursor d7e0edf2d5 docs(crm): add product brand and alias design spec.
Capture the agreed model: per-product brands, document-line brand constraints, archive-time brand quantities, and brand-level inventory.

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-07-27 21:42:53 +08:00
zlwuandCursor 768ef934f9 chore: update graphify after pl batch print merge
Co-authored-by: Cursor <cursoragent@cursor.com>
2026-07-27 21:17:00 +08:00
zlwuandCursor 246da286e2 feat(web-admin): enable multi-select batch slip print on plan list toolbar
Co-authored-by: Cursor <cursoragent@cursor.com>
2026-07-27 21:16:19 +08:00
zlwuandCursor 25978401e1 feat(web-admin): allow multi planIds in transport slip print dialogs
Co-authored-by: Cursor <cursoragent@cursor.com>
2026-07-27 21:15:41 +08:00
zlwuandCursor e930e583a9 feat(web-admin): support per-row planNo and multiline remarks on slip templates
Co-authored-by: Cursor <cursoragent@cursor.com>
2026-07-27 21:14:59 +08:00
zlwuandCursor bbcb2b8936 feat(web-admin): add batch print merge helpers for transport plans
Co-authored-by: Cursor <cursoragent@cursor.com>
2026-07-27 21:13:19 +08:00
zlwuandCursor 92736acced docs(pl): add batch print merge implementation plan
Co-authored-by: Cursor <cursoragent@cursor.com>
2026-07-27 20:45:00 +08:00
zlwuandCursor 8d76c6bec6 docs(pl): 运输计划多选合打打印设计与交互 Demo
Co-authored-by: Cursor <cursoragent@cursor.com>
2026-07-27 20:39:39 +08:00
zlwuandCursor ada592924a docs(pl): add create_date implementation plan
Co-authored-by: Cursor <cursoragent@cursor.com>
2026-07-27 16:30:35 +08:00
zlwuandCursor b5c49e3fc8 chore: update graphify after pl_plan create_date
Co-authored-by: Cursor <cursoragent@cursor.com>
2026-07-27 16:30:29 +08:00
zlwuandCursor a276f09350 feat(web-admin): add createDate and default pickup/delivery on plan forms
Co-authored-by: Cursor <cursoragent@cursor.com>
2026-07-27 16:29:35 +08:00
zlwuandCursor 349e031790 feat(pl): persist create_date on plan create APIs
Co-authored-by: Cursor <cursoragent@cursor.com>
2026-07-27 16:29:35 +08:00
zlwuandCursor bb7f05ffda feat(pl): add create_date to PlPlan model and schemas
Co-authored-by: Cursor <cursoragent@cursor.com>
2026-07-27 16:29:35 +08:00
zlwuandCursor 5ebaec2e2e chore(pl): add pl_plan.create_date migration and DDL snapshot
Co-authored-by: Cursor <cursoragent@cursor.com>
2026-07-27 16:27:32 +08:00
zlwuandCursor 60841264e0 docs(pl): 运输计划创建日期字段与取货/送达默认设计
Co-authored-by: Cursor <cursoragent@cursor.com>
2026-07-27 09:06:32 +08:00
zlwu bede140d12 提交 2026-07-26 21:06:09 +08:00
zlwuandCursor 70bdd820ce feat(pl): 按单据类型限制打印项并调整送(提)货单布局
按入库/出库/直销限制可打印单据;送(提)货单信息区改为一行布局,物料表增加单据编号列,并修正条款列宽与类型多选不换行。

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-07-26 21:05:11 +08:00
zlwuandCursor 55410191ec chore: 同步 PL 三方分册相关知识图谱
后端/前端 AST 图谱随证书门禁、粘贴识别与菜单分册改动更新。

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-07-25 12:57:44 +08:00
zlwuandCursor 6258821273 feat(web-admin): 三方车辆/人员粘贴识别弹窗与入口
共享识别预览弹窗,支持冲突三选一,并在三方车辆与三方驾押人员工具栏接入。

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-07-25 12:54:50 +08:00
zlwuandCursor c60ebfc082 feat(pl): 三方粘贴识别批量提交接口
新增 paste-recognize/commit,事务内处理车/人冲突策略与关联写入。

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-07-25 12:52:09 +08:00
zlwuandCursor b1e788e856 feat(web-admin): 三方车辆客户文本粘贴解析工具
为三方车辆/人员粘贴识别提供规则解析纯函数。

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-07-25 10:58:52 +08:00
zlwuandCursor fd62043f71 feat(web-admin): 承运商去审核 UI 并移除安排运输准入拦截
Co-authored-by: Cursor <cursoragent@cursor.com>
2026-07-25 10:58:24 +08:00
zlwuandCursor 4eed1183b5 fix(web-admin): 三方驾押人员查看态不显示证书缺失后缀
Co-authored-by: Cursor <cursoragent@cursor.com>
2026-07-25 10:57:23 +08:00
zlwuandCursor 5543f26dca feat(web-admin): 驾押人员页按归属分册并仅山峡强制证书
Co-authored-by: Cursor <cursoragent@cursor.com>
2026-07-25 10:57:04 +08:00
zlwuandCursor 3396e3d164 feat(web-admin): 全部车辆页改为三方车辆并关闭证书强制
Co-authored-by: Cursor <cursoragent@cursor.com>
2026-07-25 10:56:16 +08:00
zlwuandCursor 8ba55dd6f6 feat(pl): 基础信息库四菜单分册(三方/山峡)
Co-authored-by: Cursor <cursoragent@cursor.com>
2026-07-25 10:54:48 +08:00
zlwuandCursor d92bd7940e fix(pl): 取消承运商审核与资质协议准入门禁
Co-authored-by: Cursor <cursoragent@cursor.com>
2026-07-25 10:49:12 +08:00
zlwuandCursor b071687a71 fix(pl): 三方车辆与人员保存跳过必备证书校验
Co-authored-by: Cursor <cursoragent@cursor.com>
2026-07-25 10:45:26 +08:00
zlwuandCursor db4907ec28 docs(pl): 三方/山峡车辆人员分册与粘贴建档实现计划
按已批准设计拆为证书门禁、菜单路由、粘贴提交与承运商去准入等可执行任务。

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-07-25 10:41:25 +08:00
zlwuandCursor 47c1017923 docs(pl): 三方/山峡车辆人员分册与粘贴建档设计
固化四菜单分册、三方证书不强制、粘贴识别双入口与承运商去准入规则,供后续实现计划使用。

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-07-25 10:36:10 +08:00
zlwu 68d96f87ff 提交 2026-07-22 21:26:33 +08:00
zlwu aff71d296b 提交 2026-07-20 10:50:26 +08:00
zlwuandCursor 6d9354a194 chore: 更新 PL 相关知识图谱并修复 update-graph.sh 探测逻辑
使用本机 graphify CLI 强制重建 backend/web-admin 图谱;脚本改为优先走 PATH 中的 graphify。

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-07-19 17:22:31 +08:00
zlwuandCursor aa5fbe7780 docs(pl): 出入库现场状态可选设计、实现计划与 D5 旁注
记录显式 status 提交流程,并标注旧出入库设计中现场自动完成规则已被覆盖。

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-07-19 17:16:39 +08:00
zlwuandCursor dee85f182e feat(web-admin): 出入库现场页支持选择单据状态并作废只读
提交携带 status;作废需确认;作废后整页只读可查看。

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-07-19 17:14:23 +08:00
zlwuandCursor 1df9bbe22a feat(web-admin): 出入库现场回执 API 增加 status 字段
Co-authored-by: Cursor <cursoragent@cursor.com>
2026-07-19 17:14:22 +08:00
zlwuandCursor 664acff1f3 feat(pl): 现场回执提交显式写入出入库单状态
删除首次提交自动改为已完成的隐式逻辑,改为由客户端传入 status。

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-07-19 17:13:40 +08:00
zlwuandCursor 2474449448 feat(web-admin): 补齐出入库单页面入口与公共路由
登记库存管理入库/出库菜单路由,以及免登录现场链接静态路由与薄包装页。

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-07-19 16:47:32 +08:00
zlwuandCursor 3f23feba59 feat(web-admin): 计划查看出入库回传补齐取送货与产品列
查看 KV、只读子表与快捷编辑弹窗与入库/出库单编辑弹窗字段对齐。

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-07-19 16:47:03 +08:00
zlwuandCursor 4d88ceb65e feat(web-admin): 出入库列表与编辑弹窗展示取送货及完整产品列
列表增加取送货地址;编辑弹窗主信息与产品八列对齐设计。

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-07-19 16:47:02 +08:00
zlwuandCursor 8b2ebe28e6 feat(web-admin): 出入库现场链接页对齐 Demo 信息密度与样式
补回取送货与导航,产品区卡片展示包装规格,单位使用后端已转义标签。

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-07-19 16:47:01 +08:00
zlwuandCursor 8b7f6d99c8 feat(web-admin): 扩展出入库单与公共页 TypeScript 类型
为 enrichment 返回的取送货、产品编号、包装规格与单位标签补齐前端类型。

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-07-19 16:47:00 +08:00