Commit Graph
95 Commits
Author SHA1 Message Date
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
zlwuandCursor 22b92ea056 feat(pl): add notes column on transport address library
Persist address-level precautions for later fill into plan load/delivery notes.

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-09-02 11:58:17 +08:00
zlwuandCursor 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 1dfcc66d2c 提交 2026-09-02 08:20:52 +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
zlwuandCursor 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
zlwuandCursor 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
zlwuandCursor 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
zlwuandCursor 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
zlwuandCursor 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
zlwuandCursor 4a194aa25e feat(backend): add list export column filter and row-count guards
Shared helpers enforce empty/over-limit export rules and allow
clients to request visible columns by field key.

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-08-21 16:52:50 +08:00
zlwu d26fb23fcf 提交 2026-08-21 16:50:47 +08:00
zlwuandCursor f342208a8a feat(bx): raise my reimburses pageSize max to 500 for apply list pilot
Co-authored-by: Cursor <cursoragent@cursor.com>
2026-08-21 14:15:19 +08:00
zlwuandCursor 0e90b1d949 feat(pl): add transport history helpers and schemas
Co-authored-by: Cursor <cursoragent@cursor.com>
2026-08-21 11:18:34 +08:00
zlwu 44749ae716 提交 2026-08-21 09:35:11 +08:00
zlwuandCursor b9ff9c9d67 feat(duty): make duty time range a single-select dict like work plans
Add duty_time_range dictionary with day/night presets, parse typed ranges on ensure, and replace time pickers with allow-create select in the schedule dialog.

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-08-20 21:58:18 +08:00
zlwuandCursor cd0491e601 feat(duty): persist work plans and times; relax grab shift types
Map invalid HH:mm to DutyBizError, serialize workPlans/timeLabel from dict,
ensure dict items on save, and allow custom shift types on public grab.

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-08-20 21:14:36 +08:00
zlwuandCursor 4447a1e8e6 feat(duty): add time/work-plan helpers and dict ensure
Co-authored-by: Cursor <cursoragent@cursor.com>
2026-08-20 21:06:07 +08:00
zlwuandCursor 211156a94c feat(pl): add contract-gap SQL filter and response schemas
Co-authored-by: Cursor <cursoragent@cursor.com>
2026-08-20 11:56:40 +08:00
zlwuandCursor a79e8a3e12 feat(pl): add plan contract gap side computation helpers
Co-authored-by: Cursor <cursoragent@cursor.com>
2026-08-20 11:54:10 +08:00
zlwu 1938a9b76a 提交 2026-08-19 22:20:42 +08:00