Commit Graph
406 Commits
Author SHA1 Message Date
zlwuandCursor 1850c7c3df docs: add duty shift dict and time implementation plan
Break the confirmed design into SQL, backend, admin UI, and public H5 tasks with TDD steps.

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-08-20 20:44:39 +08:00
zlwuandCursor 361e923396 docs: add duty shift dict, work plan, and time range design
Capture confirmed approach for customizable shift types and work plans via sys_dict, slot time fields with morning/evening defaults, migration, and public H5 sync.

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-08-20 20:36:33 +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 8e42fe1640 docs: mark plan contract completion design as implemented
Implementation of the independent completion page, APIs, badge, and menu is in place pending local SQL apply and UI验收.

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-08-20 12:16:57 +08:00
zlwuandCursor 368cb5567a feat(pl): add plan contract completion page with inline expand
List only plans missing contracts and allow per-side multi-select save in an expand row, reusing PlPlanContractMultiSelect without contract CRUD.

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-08-20 12:16:38 +08:00
zlwuandCursor 62bdf48b63 feat(pl): frontend API for plan contract gaps
Co-authored-by: Cursor <cursoragent@cursor.com>
2026-08-20 12:11:54 +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
zlwuandCursor 900fb20d50 docs: add implementation plan for plan contract completion
Break down backend gap APIs, menu badge, SQL menu, and the inline-expand web-admin page into sequenced tasks with verification steps.

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-08-20 11:52:25 +08:00
zlwuandCursor f9f32a8b68 docs: add transport plan contract completion design and UI demo
Capture the agreed independent page (inline expand, per-side save, menu badge) for completing missing supplier/demander contracts after they became optional on create/edit.

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-08-20 11:49:34 +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 a9c1062fbe feat(web-admin): use duty staff options in schedule dialog
Co-authored-by: Cursor <cursoragent@cursor.com>
2026-08-17 18:25:57 +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 42ec16b0cf docs: add implementation plan for duty staff role filter.
Co-authored-by: Cursor <cursoragent@cursor.com>
2026-08-17 18:18:02 +08:00
zlwuandCursor 2942d176bd docs: add duty staff role filter design for schedule selection.
Co-authored-by: Cursor <cursoragent@cursor.com>
2026-08-17 18:15:58 +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 43d53cb9dd feat(bx-mobile): display occur date on reimburse detail views
Always show the field and use an em dash when the date is empty.

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-08-17 16:03:53 +08:00
zlwuandCursor 49e4e604ca feat(bx-mobile): add optional occur date on reimburse apply form
Mirror web-admin detail lines with a clearable YYYY-MM-DD input.

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-08-17 16:03:17 +08:00
zlwuandCursor 42f2d2b80e feat(web-admin): show occur date on reimburse detail readonly tables
Keep the column always visible with an em dash when empty.

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-08-17 16:00:54 +08:00
zlwuandCursor 8f032488a4 feat(web-admin): add optional occur date on reimburse apply details
Allow picking YYYY-MM-DD per detail line and show it in the view dialog.

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-08-17 16:00:01 +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
zlwuandCursor f73fb572d1 docs: add implementation plan for reimburse detail occur date
Break the approved design into backend, web-admin, and bx-mobile
tasks with concrete steps and verification.

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-08-17 15:48:02 +08:00
zlwuandCursor 071281150d docs: add design for optional reimburse detail occur date
Capture the agreed plan to add nullable occur_date (YYYY-MM-DD) on
bx_reimburse_detail across backend, web-admin, and bx-mobile.

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-08-17 15:45:27 +08:00
zlwu 8558d9439e 提交 2026-08-17 15:25:28 +08:00
zlwu 6b2147aa46 提交 2026-08-17 09:22:31 +08:00
zlwuandCursor 42ad896456 fix(crm): sync quote list stats row widths to table headers
Keep the interactive summary cells aligned when columns resize.

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-08-16 16:02:38 +08:00
zlwuandCursor 072790989f feat(crm): add interactive column stats row on quote list
Let users pick sum/avg/max/min per column on the current page,
with localStorage persistence for the quote management list.

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-08-16 16:00:54 +08:00
zlwuandCursor 6ce7554557 feat(crm): add quote list column stats helpers
Pure aggregation, display formatting, and localStorage helpers
for the quote list configurable summary row.

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-08-16 15:51:48 +08:00
zlwuandCursor be55f23c21 docs: add quote list column stats implementation plan
Break the approved design into TDD-friendly tasks for the
quote management list interactive summary row.

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-08-16 15:49:16 +08:00
zlwuandCursor a84f4fe903 docs: add quote list column stats design
Capture agreed UX and current-page aggregation rules for the
quote management list before implementation.

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-08-16 15:48:05 +08:00
zlwuandCursor 144e50f42d refactor(crm): use shared settlement clause in contract print views
Wire ContractDetailDialog and detail page to settlementClause helpers so new settlement methods resolve fifth-clause text correctly.

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-08-16 15:05:56 +08:00
zlwuandCursor 477719c9a7 feat(crm): add frontend settlement clause helpers
Co-authored-by: Cursor <cursoragent@cursor.com>
2026-08-16 15:03:44 +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