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
zlwu
b74d483682
提交
2026-08-23 09:47:38 +08:00
zlwu and Cursor
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
zlwu and Cursor
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
zlwu and Cursor
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
zlwu and Cursor
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
zlwu and Cursor
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
zlwu and Cursor
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
zlwu and Cursor
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
zlwu and Cursor
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
zlwu and Cursor
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
zlwu and Cursor
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
zlwu and Cursor
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
zlwu and Cursor
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
zlwu and Cursor
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
zlwu and Cursor
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
zlwu and Cursor
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
zlwu and Cursor
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
zlwu and Cursor
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
zlwu and Cursor
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
zlwu and Cursor
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
zlwu and Cursor
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
zlwu and Cursor
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
zlwu and Cursor
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
zlwu and Cursor
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
zlwu and Cursor
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