Commit Graph
254 Commits
Author SHA1 Message Date
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
zlwu 9fcb9270e6 提交 2026-08-21 13:45:35 +08:00
zlwuandCursor 88da74d72a chore: refresh graphify after driver transport history
Update backend/frontend knowledge graphs for the new history API and H5 pages.

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-08-21 11:31:15 +08:00
zlwuandCursor c51345eec5 feat(pl): add public driver transport history API
Co-authored-by: Cursor <cursoragent@cursor.com>
2026-08-21 11:25:04 +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 80545263a0 feat(duty): extend slot model and schemas for work plans and time
Co-authored-by: Cursor <cursoragent@cursor.com>
2026-08-20 20:55:20 +08:00
zlwuandCursor b71c1144bf chore(duty): add SQL migration for shift dict and slot time fields
Co-authored-by: Cursor <cursoragent@cursor.com>
2026-08-20 20:51:03 +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 58fbafa2ac feat(pl): add plan-contract menu SQL and web-admin route
Co-authored-by: Cursor <cursoragent@cursor.com>
2026-08-20 12:11:17 +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 a8b5b69a1f feat(duty): add users/options endpoint filtered by duty staff role
Co-authored-by: Cursor <cursoragent@cursor.com>
2026-08-17 18:25:11 +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 a20d31de38 chore(db): add duty staff role for schedule eligibility
Co-authored-by: Cursor <cursoragent@cursor.com>
2026-08-17 18:19:40 +08:00
zlwuandCursor dea4159636 chore: update graphify after reimburse occur_date changes
Co-authored-by: Cursor <cursoragent@cursor.com>
2026-08-17 16:06:22 +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
zlwuandCursor 3b8a0eb7d8 feat(bx): add parse_optional_date for nullable occur dates
Empty values map to None so optional detail dates do not default to today.

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-08-17 15:57:15 +08:00
zlwuandCursor 0b402b18ed feat(bx): add occur_date column on reimburse detail
Store optional expense occurrence date (DATE, nullable) for each
reimburse line item.

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-08-17 15:53:53 +08:00
zlwu 8558d9439e 提交 2026-08-17 15:25:28 +08:00
zlwu 6b2147aa46 提交 2026-08-17 09:22:31 +08:00
zlwuandCursor e1eeca0001 feat(crm): use settlement clause helper in save_template
Co-authored-by: Cursor <cursoragent@cursor.com>
2026-08-16 15:03:05 +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
zlwuandCursor 38a9f6f724 feat(crm): add settlement method dict options migration
Co-authored-by: Cursor <cursoragent@cursor.com>
2026-08-16 14:59:57 +08:00
zlwu 34e5fcf0be 提交 2026-08-16 14:58:19 +08:00
zlwuandCursor 4c23ff9f61 fix(duty): show duty schedule on portal home launcher
Register /duty frontend route module, add portal top-module order, and fix sys_menu as L1 directory with schedule leaf plus role grants.

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-08-15 16:04:33 +08:00
zlwuandCursor a1321c145c chore(duty): sync knowledge graph after duty schedule feature
Co-authored-by: Cursor <cursoragent@cursor.com>
2026-08-14 17:15:22 +08:00
zlwuandCursor ba17a83df5 fix(duty): drop unused import in duty admin API
Co-authored-by: Cursor <cursoragent@cursor.com>
2026-08-14 17:14:59 +08:00
zlwuandCursor 36fc7f286c feat(duty): register admin and public duty APIs with encrypt exclude
Co-authored-by: Cursor <cursoragent@cursor.com>
2026-08-14 17:12:40 +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 f5ad2d7217 feat(duty): add SQLAlchemy models for duty schedule
Co-authored-by: Cursor <cursoragent@cursor.com>
2026-08-14 17:10:36 +08:00
zlwuandCursor 2502db7a02 fix(duty): add unique keys for duty_day date and slot shift_type
Co-authored-by: Cursor <cursoragent@cursor.com>
2026-08-14 17:08:22 +08:00
zlwuandCursor 931fd24671 chore(duty): add duty_day/slot/assignment tables and menu SQL
Co-authored-by: Cursor <cursoragent@cursor.com>
2026-08-14 17:06:25 +08:00
zlwu 3f21007c18 提交 2026-08-12 21:40:55 +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 5fcdb03da1 提交 2026-08-11 07:54:28 +08:00
zlwu a5210a6a9e 提交 2026-08-09 21:07:28 +08:00
zlwu 38383b35d9 提交 2026-08-09 19:42:32 +08:00