Files
platforms/docs/操作日志_合同启用失败原因明确化_20260812.md
czl231 9937e3a508 完善合同气瓶绑定约束与候选过滤
- 明确合同状态、气瓶归属、停用、报废和重复绑定失败原因
- 根据当前合同过滤可绑定气瓶,排除无效及重复候选项
- 从合同列表进入绑定页时锁定预填合同,防止切换上下文
- 切换通用新建页合同后清空旧气瓶并重新加载候选项
- 增加前后端回归检查并同步中文操作日志
2026-08-13 00:10:42 +08:00

43 lines
2.4 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-12
操作类型:修改
影响模块:配送合同生命周期接口
## 操作前状态
合同启用的附件、有效期、气瓶绑定及状态校验失败后接口统一返回“Invalid Argument”前端只能提示“请求参数不正确请检查填写内容”业务人员无法定位处理方式。
## 具体操作
- 将合同状态不允许启用、附件无效、未到生效时间、合同已到期、未绑定有效气瓶拆分为明确中文原因。
- 终止非生效合同也返回明确状态原因。
- 仅透传预定义业务错误;数据库及其他内部异常继续使用通用参数错误,避免泄露内部信息。
- 增加业务错误白名单和中文消息回归测试。
- 明确区分绑定气瓶时的合同状态、气瓶停用、气瓶报废、用户归属不一致和重复绑定原因。
- 后端同步限制仅草稿合同允许绑定,与列表按钮可见规则保持一致。
- 合同气瓶表单按当前合同过滤候选项,仅展示合同用户所属、已启用、未报废且未在该合同重复绑定的气瓶。
- 切换合同时清空原气瓶并重新加载候选项;后端业务校验继续作为安全兜底。
## 行为变化
- 变更前:所有启用前置条件失败均提示“请求参数不正确,请检查填写内容”。
- 变更后:页面直接显示具体失败项及处理建议,例如“合同尚未绑定有效气瓶,请先绑定气瓶后再启用”。
- 绑定失败时会提示具体处理原因,例如“所选气瓶不属于该合同用户,请选择合同用户所属的气瓶”。
## 代码变更
- `backend/api/internal/logic/platform/gasorder/gasorder.go`:细分合同生命周期业务错误并安全透传。
- `backend/api/internal/logic/platform/gasorder/contract_change_error_test.go`:新增错误分类及提示文案测试。
## 验证结果
- `go test ./internal/logic/platform/gasorder/...`:通过。
- `go test ./...`:通过;首次受沙箱 Go 构建缓存权限影响失败,授权后重新执行全部通过。
## 风险评估
- 不修改接口路径、请求字段、成功响应和合同状态流转规则,保持向下兼容。
- 业务失败响应的 `message` 由通用英文变为具体中文,前端现有客户端会直接展示。
- 内部数据库错误不会透传,安全边界保持不变。