3.3 KiB
3.3 KiB
操作日志:配送订单合同调度约束
操作时间:2026-08-15
操作类型:修改、扩展
影响模块:平台总后台、配送订单分配、配送点候选、配送人员候选
操作前状态
分配弹窗独立预加载全平台配送点和启用在岗配送人员,没有读取订单合同的履约气站或配送点,也没有按所选配送点重新加载人员。跨组织组合会在提交后被后端统一转换为“请求参数不正确”;后端未校验合同固定配送点和配送人员有效资质。
具体操作
- 分配弹窗读取订单履约气站和当前配送点;已有配送点时自动带出并锁定。
- 合同未指定配送点时,配送点候选限定为订单气站直属启用配送点。
- 配送点变化时清空旧配送人员,并按气站、配送点、配送角色、启用、在岗和有效资质重新加载。
- 配送点及工作人员列表增加可选的精确候选筛选参数,不改变无参数管理列表行为。
- 后端分配事务增加合同固定点、同点改派、配送点状态、人员组织、岗位状态和有效资质校验。
- 将预定义业务冲突转换为具体中文错误,数据库错误继续使用通用脱敏错误。
- 增加后端单元测试和前端静态联动检查。
代码变更
frontend/platform_admin/src/views/resource/ResourceActionDialog.vue:分配动作初始化、配送点锁定和人员级联。frontend/platform_admin/src/api/resources.ts:配送点启用筛选和人员有效资质策略。frontend/platform_admin/src/api/resource-staff-relation.ts:有效资质查询参数。frontend/platform_admin/scripts/check-gasorder-assignment-linkage.mjs:合同调度前端回归检查。backend/api/internal/logic/platform/gasorder/gasorder.go:分配事务的合同与人员准入校验。backend/api/internal/logic/platform/gasorder/gasorder_test.go:分配边界测试。backend/api/internal/logic/platform/delivery/delivery.go:配送点状态候选筛选。backend/api/internal/logic/platform/staff/staff.go:有效资质候选筛选。docs/05-平台总后台需求.md:同步分配与改派业务基线。
操作后状态
订单只能在合同确定的履约范围内分配。合同有配送点时固定该点;合同无配送点时首次选择限于合同气站,后续改派锁定已选配送点。配送人员必须属于该点、启用、在岗且资质有效。
验证结果
- 后端
gasorder、staff、delivery专项测试通过。 - 后端 API 全量测试、
go vet和主程序构建通过。 - 前端 TypeScript 类型检查通过。
- 前端工作人员关系策略检查通过。
- 前端配送订单分配联动检查通过。
- 前端资源契约检查和生产构建通过。
- 前端全仓 lint 未通过,失败来自既有模板文件的 2 个错误和 178 个警告;本次变更文件单独检查没有新增错误。
风险评估
- 本次未修改数据库结构、分配接口路径或请求字段,既有客户端保持兼容。
- 候选列表新增的筛选参数均为可选参数;普通管理列表不携带时维持原行为。
- 历史已分配订单沿用当前配送点并禁止跨点改派,可避免旧数据被静默迁移。
- 若历史人员没有有效资质,将不再进入候选;需先在工作人员资质页面补充或启用有效记录。