Commit Graph
97 Commits
Author SHA1 Message Date
zlwuandCursor 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
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
zlwu dd1acdc787 提交 2026-08-23 18:42:27 +08:00
zlwu b74d483682 提交 2026-08-23 09:47:38 +08:00
zlwuandCursor fe15a130cb feat(pl): add Excel export for plan contract gaps and document reminders
Complete remaining logistics list export pages under the PL module wave.

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-08-21 18:19:07 +08:00
zlwuandCursor b1f734dbb0 feat(pl): add Excel export for freight unsettled plans and settlement tabs
Support filtered and selected export across freight settlement board panels.

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-08-21 18:17:10 +08:00
zlwuandCursor 89e8d6e65c feat(pl): add Excel export for recharge, urea and maintenance process lists
Support filtered and selected export on apply and disburse/process board pages.

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-08-21 18:07:54 +08:00
zlwuandCursor 441e1fdae1 feat(pl): add Excel export for vehicle maintenance apply list
Support filtered and selected rows via backend export and ListExportDropdown.

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-08-21 18:01:00 +08:00
zlwu d26fb23fcf 提交 2026-08-21 16:50:47 +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 09a57a7af9 feat(pl): show product and plan type columns on contract completion list
Align the合同完善 table with运输计划 by returning products/planType from contract-gaps and rendering them via PlPlanListProductCell.

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-08-20 13:12:14 +08:00
zlwuandCursor af93272bcd feat(pl): badge count for plan contract completion menu
Co-authored-by: Cursor <cursoragent@cursor.com>
2026-08-20 12:10:14 +08:00
zlwuandCursor b984c8c857 feat(pl): add PUT plan side contracts for contract completion
Co-authored-by: Cursor <cursoragent@cursor.com>
2026-08-20 12:09:42 +08:00
zlwuandCursor d1d7425eeb feat(pl): add GET transport/plan/contract-gaps endpoint
Co-authored-by: Cursor <cursoragent@cursor.com>
2026-08-20 12:00:59 +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 9da462fcba 提交 2026-08-20 11:17:41 +08:00
zlwu 1938a9b76a 提交 2026-08-19 22:20:42 +08:00
zlwu a52fe77e34 提交 2026-08-19 09:14:37 +08:00
zlwu c3bd2c00ae 提交 2026-08-17 20:32:18 +08:00
zlwuandCursor 9345cf4ad8 fix(duty): allow re-saving historical assigns without duty staff role
Co-authored-by: Cursor <cursoragent@cursor.com>
2026-08-17 18:29:20 +08:00
zlwuandCursor 0c4a4bf14a feat(duty): restrict assign and grab to duty staff role
Co-authored-by: Cursor <cursoragent@cursor.com>
2026-08-17 18:23:20 +08:00
zlwuandCursor 5b7a9f2f8f feat(bx): persist and return reimburse detail occurDate
Wire optional occur_date through create/update detail payloads and
API responses.

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-08-17 15:58:36 +08:00
zlwu 8558d9439e 提交 2026-08-17 15:25:28 +08:00
zlwuandCursor a73ee89f44 feat(crm): add settlement clause default text helper
Co-authored-by: Cursor <cursoragent@cursor.com>
2026-08-16 15:01:47 +08:00
zlwu 34e5fcf0be 提交 2026-08-16 14:58:19 +08:00
zlwuandCursor 49cad98c84 feat(duty): add schemas and duty_schedule service with capacity tests
Co-authored-by: Cursor <cursoragent@cursor.com>
2026-08-14 17:12:13 +08:00
zlwuandCursor 99e4d4c69a fix(bx): allow reimburse submit when invoice wallet balance is insufficient
Drop the hard balance check in debit_reimburse so occupancy can exceed uploaded invoices; balance may go negative until later top-ups.

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-08-12 20:57:54 +08:00
zlwu 38383b35d9 提交 2026-08-09 19:42:32 +08:00
zlwu f70dc26206 提交 2026-08-09 14:51:41 +08:00
zlwu 683f14828f 提交 2026-08-08 20:43:48 +08:00
zlwu f3693be913 提交 2026-08-06 09:58:20 +08:00
zlwu 5fe53c5481 提交 2026-08-04 14:02:01 +08:00
zlwu 272c68af4b 提交 2026-08-02 17:18:33 +08:00
zlwu eccefc6650 提交 2026-08-01 22:49:11 +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 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 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