Files
platforms/docs/操作日志_配送订单合同调度约束_20260815.md
2026-08-15 19:19:15 +08:00

55 lines
3.3 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# 操作日志:配送订单合同调度约束
操作时间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 个警告;本次变更文件单独检查没有新增错误。
## 风险评估
- 本次未修改数据库结构、分配接口路径或请求字段,既有客户端保持兼容。
- 候选列表新增的筛选参数均为可选参数;普通管理列表不携带时维持原行为。
- 历史已分配订单沿用当前配送点并禁止跨点改派,可避免旧数据被静默迁移。
- 若历史人员没有有效资质,将不再进入候选;需先在工作人员资质页面补充或启用有效记录。