Commit Graph
121 Commits
Author SHA1 Message Date
wuzilongandCursor 81e52477de feat(pl): build archive export zip with relative hyperlinks.
Pack archive xlsx plus attachment files under 附件/, with HYPERLINK columns on each plan's first row.

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-09-23 12:46:15 +08:00
wuzilongandCursor 7af4d7ac7e feat(pl): collect hazard certs for archive zip export.
Co-authored-by: Cursor <cursoragent@cursor.com>
2026-09-23 12:42:44 +08:00
wuzilongandCursor d68a0ef0bd fix(pl): fix FakePlan id for planId export field.
Co-authored-by: Cursor <cursoragent@cursor.com>
2026-09-23 12:42:05 +08:00
wuzilongandCursor e9ffa5d042 feat(pl): add archive zip naming helpers and planId on export rows.
Co-authored-by: Cursor <cursoragent@cursor.com>
2026-09-23 12:40:04 +08:00
wuzilong c270d14057 提交 2026-09-23 12:03:07 +08:00
wuzilongandCursor 98e31c88b2 feat(api): confirm web QR login from mini program phone auth.
Co-authored-by: Cursor <cursoragent@cursor.com>
2026-09-18 20:17:14 +08:00
wuzilongandCursor ec0045d5bf feat(api): add web wx-qr create and status endpoints.
Co-authored-by: Cursor <cursoragent@cursor.com>
2026-09-18 20:16:15 +08:00
wuzilongandCursor 22634330d5 feat(wechat): generate unlimited mini program codes for web QR login.
Co-authored-by: Cursor <cursoragent@cursor.com>
2026-09-18 20:15:15 +08:00
wuzilongandCursor 1e7c8bde3b test(auth): force in-memory backend for wx-qr session unit tests.
Co-authored-by: Cursor <cursoragent@cursor.com>
2026-09-18 20:14:35 +08:00
wuzilongandCursor 56a3311c45 feat(auth): add wx-qr session state machine for web login.
Co-authored-by: Cursor <cursoragent@cursor.com>
2026-09-18 19:55:00 +08:00
wuzilong 1ba1f38321 提交 2026-09-18 12:01:13 +08:00
wuzilongandCursor 7ccd1f553e feat(backend): resolve wechat login user by phone and bind openid.
Co-authored-by: Cursor <cursoragent@cursor.com>
2026-09-18 11:12:03 +08:00
wuzilongandCursor 3d003e8d37 feat(backend): add wechat mini auth helpers and user phone lookups.
Co-authored-by: Cursor <cursoragent@cursor.com>
2026-09-18 11:09:04 +08:00
wuzilong 86694f739f 提交 2026-09-17 09:10:10 +08:00
wuzilongandCursor 5eb7b0b193 feat(backend): exchange miniprogram webview tickets for JWT sessions.
Co-authored-by: Cursor <cursoragent@cursor.com>
2026-09-14 16:11:36 +08:00
wuzilongandCursor 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
wuzilongandCursor 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
wuzilongandCursor 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
wuzilongandCursor 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
wuzilongandCursor ca3062b0e2 feat(pl): optional escort selection on transport arrange
Co-authored-by: Cursor <cursoragent@cursor.com>
2026-09-13 10:48:23 +08:00
wuzilongandCursor 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
wuzilongandCursor 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
wuzilongandCursor 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
wuzilongandCursor 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
wuzilongandCursor 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
wuzilongandCursor 542ecc63e7 fix(pl): allow only etc recharge type in vehicle recharge schemas
Reject fuel writes so the shared module can be narrowed to ETC-only.

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-09-12 08:43:49 +08:00
wuzilong 8e87c7d576 提交 2026-09-11 21:19:52 +08:00
wuzilong 83192719b0 提交 2026-09-11 09:41:09 +08:00
wuzilongandCursor 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
wuzilongandCursor 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
wuzilongandCursor 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
wuzilongandCursor 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
wuzilongandCursor 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
wuzilongandCursor 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
wuzilongandCursor 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
zlwuandCursor ca4a5b9fec fix(pl): sync stop dibang on arrange even when all unchecked.
Ensure cancel/block paths run when every generateDibang option is false.

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-09-06 20:16:56 +08:00
zlwuandCursor 4c978296ff chore(pl): guard arrange path against dibang revoke rebuild
Co-authored-by: Cursor <cursoragent@cursor.com>
2026-09-06 19:57:18 +08:00
zlwuandCursor 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
zlwuandCursor cd64463c0a test(pl): expect dibang plate sync even after weighing
Co-authored-by: Cursor <cursoragent@cursor.com>
2026-09-06 19:37:34 +08:00
zlwuandCursor 3bb905bc20 feat(crm): add customer list column filter builder.
Co-authored-by: Cursor <cursoragent@cursor.com>
2026-09-06 08:17:06 +08:00
zlwuandCursor 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
zlwuandCursor 4e3c2a9ffb fix(pl): keep driver/site tokens stable on rearrange.
Co-authored-by: Cursor <cursoragent@cursor.com>
2026-09-05 18:41:32 +08:00
zlwuandCursor 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
zlwuandCursor 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
zlwuandCursor 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
zlwuandCursor 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
zlwuandCursor ce70265c92 feat(backend): add plan archive price mask helpers
Co-authored-by: Cursor <cursoragent@cursor.com>
2026-09-03 16:25:17 +08:00