wuzilong and Cursor
98292cb914
fix(backend): consume webview tickets atomically and fail closed on Redis errors.
...
Co-authored-by: Cursor <cursoragent@cursor.com >
2026-09-14 16:07:45 +08:00
wuzilong and Cursor
62161e2905
feat(backend): add one-time Redis tickets for miniprogram webview login.
...
Co-authored-by: Cursor <cursoragent@cursor.com >
2026-09-14 16:03:18 +08:00
wuzilong and Cursor
9d06e1830e
feat(bx): add advance apply withdraw API
...
Co-authored-by: Cursor <cursoragent@cursor.com >
2026-09-14 09:59:02 +08:00
wuzilong
8c96de2c0c
提交
2026-09-13 13:08:52 +08:00
wuzilong and Cursor
1303fae1e0
feat(pl): add driver-plan service for personnel-scoped history
...
Resolve plans by linked driver/escort personnel and reuse public
driver page/feedback helpers for login-state miniprogram APIs.
Co-authored-by: Cursor <cursoragent@cursor.com >
2026-09-13 11:44:24 +08:00
wuzilong and Cursor
ca3062b0e2
feat(pl): optional escort selection on transport arrange
...
Co-authored-by: Cursor <cursoragent@cursor.com >
2026-09-13 10:48:23 +08:00
wuzilong and Cursor
26b096ae38
feat(pl): bind sys user on personnel and snapshot selectedEscortId
...
Co-authored-by: Cursor <cursoragent@cursor.com >
2026-09-13 10:37:11 +08:00
wuzilong and Cursor
10183dabc2
feat(backend): expose pound QR items on driver transport page
...
Enrich inventory links with business type/partner and attach
poundQrcodeItems for the public driver footer button.
Co-authored-by: Cursor <cursoragent@cursor.com >
2026-09-13 09:29:03 +08:00
wuzilong and Cursor
87ed40512c
feat(backend): add public pound-qr endpoint by inventory id
...
Expose a read-only payload for the shared weighbridge QR card without auth.
Co-authored-by: Cursor <cursoragent@cursor.com >
2026-09-13 09:24:09 +08:00
wuzilong and Cursor
204b5f48c8
feat(pl): wire deliveryTimeFrom/To through plan list and export
...
Contract-gap list/export share the same stop-date EXISTS filter.
Co-authored-by: Cursor <cursoragent@cursor.com >
2026-09-12 21:23:31 +08:00
wuzilong and Cursor
0e3df1f39d
feat(pl): expose deliveryTimes on plan list and contract-gap schemas
...
Populate from delivery stops during attach/gap row build.
Co-authored-by: Cursor <cursoragent@cursor.com >
2026-09-12 21:20:55 +08:00
wuzilong and Cursor
9c5a1cfb8e
feat(pl): aggregate unique delivery dates from stop rows
...
Provide YYYY-MM-DD dedupe helper for plan list deliveryTimes.
Co-authored-by: Cursor <cursoragent@cursor.com >
2026-09-12 21:08:54 +08:00
wuzilong and Cursor
efe8aed409
feat(pl): filter plans by delivery-stop date range
...
Add EXISTS on pl_plan_delivery.delivery_time for list column filters.
Co-authored-by: Cursor <cursoragent@cursor.com >
2026-09-12 21:07:23 +08:00
wuzilong and Cursor
27d69f1af9
fix(pl): hide non-ETC vehicle recharge rows in list and get APIs
...
Force etc on reads so historical fuel data stays in DB but out of this module.
Co-authored-by: Cursor <cursoragent@cursor.com >
2026-09-12 08:45:36 +08:00
wuzilong
8e87c7d576
提交
2026-09-11 21:19:52 +08:00
wuzilong and Cursor
ded6aeaa85
feat(pl): require contract package spec on plan stop save
...
Co-authored-by: Cursor <cursoragent@cursor.com >
2026-09-10 18:01:33 +08:00
wuzilong and Cursor
ff96f2ec25
feat(pl): arrange-qty and overflow checks use product+package key
...
Co-authored-by: Cursor <cursoragent@cursor.com >
2026-09-10 18:00:10 +08:00
wuzilong and Cursor
2fc14b1291
feat(pl): key contract plan qty by product and package spec
...
Co-authored-by: Cursor <cursoragent@cursor.com >
2026-09-10 17:52:57 +08:00
wuzilong
05559def40
提交
2026-09-09 13:03:02 +08:00
wuzilong and Cursor
45a6fc5cc5
feat(pl): add datetime column dual-caret sort on scoped transport lists.
...
Co-authored-by: Cursor <cursoragent@cursor.com >
2026-09-08 22:50:35 +08:00
wuzilong and Cursor
100b0880f0
feat(db): add datetime column dual-caret sort on inventory and weighing lists.
...
Co-authored-by: Cursor <cursoragent@cursor.com >
2026-09-08 22:36:55 +08:00
wuzilong and Cursor
9ead177dc3
feat(bx): add datetime list sort helpers and get_paged order_by.
...
Co-authored-by: Cursor <cursoragent@cursor.com >
2026-09-08 22:14:30 +08:00
wuzilong and Cursor
e6af68a2c3
feat(crm): add whitelist datetime list sort helper.
...
Co-authored-by: Cursor <cursoragent@cursor.com >
2026-09-08 21:37:35 +08:00
zlwu
7f05162fd1
提交
2026-09-06 20:44:56 +08:00
zlwu and Cursor
503b388a3f
feat(pl): remount dibang monthly plan when partner or product changes
...
Co-authored-by: Cursor <cursoragent@cursor.com >
2026-09-06 19:52:20 +08:00
zlwu and Cursor
180b5cdaa7
chore(pl): remove unused inventory editable guard after force sync
...
Co-authored-by: Cursor <cursoragent@cursor.com >
2026-09-06 19:45:39 +08:00
zlwu and Cursor
4dde13e7d7
fix(pl): sync dibang inventory and weighing fields after rearrange
...
Co-authored-by: Cursor <cursoragent@cursor.com >
2026-09-06 19:43:32 +08:00
zlwu and Cursor
3bb905bc20
feat(crm): add customer list column filter builder.
...
Co-authored-by: Cursor <cursoragent@cursor.com >
2026-09-06 08:17:06 +08:00
zlwu and Cursor
e7054dc244
feat(bx): add shared reimburse list column filter builder.
...
Co-authored-by: Cursor <cursoragent@cursor.com >
2026-09-06 07:41:23 +08:00
zlwu and Cursor
68564c61f0
feat(pl): upsert dibang links by stop instead of revoke-and-rebuild.
...
Keep inventory ids across rearrange/plan edits; block cancel when weighing exists.
Co-authored-by: Cursor <cursoragent@cursor.com >
2026-09-05 18:40:29 +08:00
zlwu and Cursor
2e5b05f477
fix(pl): reject unknown plan product ids on upsert with 422.
...
Co-authored-by: Cursor <cursoragent@cursor.com >
2026-09-05 18:30:15 +08:00
zlwu and Cursor
857067ec80
feat(pl): upsert plan product rows by id on update.
...
Co-authored-by: Cursor <cursoragent@cursor.com >
2026-09-05 18:24:43 +08:00
zlwu and Cursor
6a7dfbcd38
feat(pl): upsert plan deliveries by stable id on save.
...
Co-authored-by: Cursor <cursoragent@cursor.com >
2026-09-05 18:18:06 +08:00
zlwu and Cursor
ce70265c92
feat(backend): add plan archive price mask helpers
...
Co-authored-by: Cursor <cursoragent@cursor.com >
2026-09-03 16:25:17 +08:00
zlwu and Cursor
f28e82c1b3
feat(backend): add draft save helpers for plan follow status drafting
...
Introduce min-field validation and follow_status resolution for saveMode draft/formal.
Co-authored-by: Cursor <cursoragent@cursor.com >
2026-09-02 11:39:04 +08:00
zlwu
0e8f244bc3
提交
2026-09-01 13:51:32 +08:00
zlwu
69fa5b1fa8
提交
2026-08-31 08:28:36 +08:00
zlwu
19c5aaa8f5
提交
2026-08-30 18:33:13 +08:00
zlwu and Cursor
81b1cb9b1d
feat(pl): show available contract qty before plan qty in stop products
...
Add contract-product-arrange-qty API and form UI with green available qty,
red plan qty over-hint, and click-through dialog for usage and plan list.
Co-authored-by: Cursor <cursoragent@cursor.com >
2026-08-30 17:41:36 +08:00
zlwu and Cursor
3011cb9dae
feat(pl): hard-block over-limit contract qty on arrange and remind after success
...
Validate arranged+this plan qty against fixed contract product quantities on
transport arrange; return post-success remaining/framework cumulative reminders.
Co-authored-by: Cursor <cursoragent@cursor.com >
2026-08-30 16:47:21 +08:00
zlwu and Cursor
1959394223
feat(pl): enforce single contract on stop-contracts and legacy side paths
...
Co-authored-by: Cursor <cursoragent@cursor.com >
2026-08-30 10:55:00 +08:00
zlwu and Cursor
a6d900ee1f
fix(pl): harden load-contract product checks and tests
...
Co-authored-by: Cursor <cursoragent@cursor.com >
2026-08-30 10:53:10 +08:00
zlwu and Cursor
fbcd27b213
feat(pl): require load products to belong to selected contract
...
Co-authored-by: Cursor <cursoragent@cursor.com >
2026-08-30 10:49:36 +08:00
zlwu and Cursor
eb1bfc5732
feat(pl): enforce at most one contract per plan stop
...
Co-authored-by: Cursor <cursoragent@cursor.com >
2026-08-30 10:46:41 +08:00
zlwu
63a1209620
提交
2026-08-30 09:30:02 +08:00
zlwu
16986f443e
提交
2026-08-27 19:38:12 +08:00
zlwu
ebf006eeff
提交
2026-08-27 19:38:01 +08:00
zlwu
4611dbc2b2
提交
2026-08-27 14:23:18 +08:00
zlwu and Cursor
e56d227fe8
feat(pl): add customer stop pref service and unit tests
...
Co-authored-by: Cursor <cursoragent@cursor.com >
2026-08-26 17:10:37 +08:00
zlwu
dd1acdc787
提交
2026-08-23 18:42:27 +08:00