修复合同到期时间与终止恢复规则
- 合同动作中文化并将到期时间设为必填\n- 隐藏修订记录无业务意义的删除时间\n- 禁止已终止合同直接启用,统一三端状态规则\n- 补充回归测试、模拟数据回填和中文文档
This commit is contained in:
@@ -181,7 +181,7 @@
|
||||
| 合同气瓶 | `/gasorder_contract_product` | 仅追加 | 绑定气瓶、按理由解绑 |
|
||||
| 合同修订 | `/gasorder_contract_revision` | 只读 | 查询启用、续签和终止形成的版本记录 |
|
||||
|
||||
合同关联用户和气站,可选关联配送点,记录合同编号、条款、附件、默认配送费及有效期。合同生命周期为草稿、生效、过期、终止。只有符合当前状态的专用动作可执行,启用、续签、终止和解绑均记录原因及操作者。
|
||||
合同关联用户和气站,可选关联配送点,记录合同编号、条款、附件、默认配送费及有效期。合同生命周期为草稿、生效、过期、终止。启用仅适用于草稿合同;已终止合同不得直接启用,需要恢复履约时必须通过续签填写新的生效时间、到期时间和原因。只有符合当前状态的专用动作可执行,启用、续签、终止和解绑均记录原因及操作者。
|
||||
|
||||
合同气瓶必须属于合同用户、处于可用状态且未报废;订单只能使用有效合同中仍绑定的气瓶。
|
||||
|
||||
@@ -301,7 +301,7 @@
|
||||
4. 所有表保留自增 `id` 主键;主资源通过 UUID V7 `identity` 对外访问,前端不依赖内部 ID。
|
||||
5. 气站必须先审核再启停,驳回原因和审核人可追溯。
|
||||
6. 智能气阀归属和生命周期变更合法,并自动记录归属历史。
|
||||
7. 合同启用、续签、终止和气瓶解绑只能在合法状态执行,并生成修订或操作记录。
|
||||
7. 合同启用、续签、终止和气瓶解绑只能在合法状态执行,并生成修订或操作记录;创建、草稿编辑和续签必须提交晚于生效时间的到期时间。
|
||||
8. 配送订单只能沿规定状态机流转;分配、异常、恢复、取消和完成均生成过程记录。
|
||||
9. 钱包充值幂等、余额与流水在同一事务更新;提现只能按审核状态机处理。
|
||||
10. 只读与仅追加资源不存在通用更新、状态修改或删除路由。
|
||||
|
||||
@@ -97,9 +97,12 @@
|
||||
### 4.5 合同管理
|
||||
|
||||
- 配送合同支持创建、草稿编辑、启用、续签和终止。
|
||||
- 启用仅适用于草稿合同;已终止合同不得直接启用,只能通过续签填写新的生效时间、到期时间和原因后恢复履约。
|
||||
- 配送合同创建、草稿编辑和续签必须填写到期时间,且到期时间必须晚于生效时间;历史缺失值应提示补录,不得推测回填。
|
||||
- 合同只能选择当前气站用户及当前气站配送点。
|
||||
- 合同气瓶支持绑定和受控解绑。
|
||||
- 合同修订记录只读,不允许修改或删除。
|
||||
- 合同修订记录不展示公共软删除时间等无业务意义的基础设施字段。
|
||||
- 合同状态只能通过专用动作接口推进,不能通用编辑 `contract_status`。
|
||||
|
||||
### 4.6 燃气配送订单
|
||||
|
||||
@@ -107,6 +107,7 @@ Global:
|
||||
|
||||
- 配送点可完整管理当前配送点用户的配送合同。
|
||||
- 支持创建、草稿编辑、启用、续签和终止。
|
||||
- 启用仅适用于草稿合同;已终止合同不得直接启用,只能通过续签填写新的生效时间、到期时间和原因后恢复履约。
|
||||
- 支持绑定和受控解绑当前用户已有气瓶。
|
||||
- 合同修订记录只读。
|
||||
- 服务端强制合同所属气站和配送点为当前范围。
|
||||
|
||||
39
docs/操作日志_合同到期时间与动作中文化_20260813.md
Normal file
39
docs/操作日志_合同到期时间与动作中文化_20260813.md
Normal file
@@ -0,0 +1,39 @@
|
||||
# 操作日志:合同到期时间与动作中文化
|
||||
|
||||
操作时间:2026-08-13
|
||||
操作类型:修改、扩展
|
||||
影响模块:配送合同创建、草稿编辑、续签、详情与模拟数据
|
||||
|
||||
## 操作前状态
|
||||
|
||||
合同修订记录直接显示英文动作 `terminate`。合同到期时间允许为空,详情页将历史空值显示为 `-`;部分开发联调合同也未写入到期时间。
|
||||
|
||||
## 具体操作
|
||||
|
||||
- 在统一展示层增加合同动作中文映射,将 `terminate` 显示为“终止合同”。
|
||||
- 将合同创建、草稿编辑和续签的到期时间调整为前后端必填,并校验其晚于生效时间。
|
||||
- 历史空到期时间显示为“待补录”,不使用推测日期替代真实业务数据。
|
||||
- 新生成的联调合同写入一年后的到期时间,并对身份和合同编号均匹配的旧联调合同执行幂等回填。
|
||||
|
||||
## 操作后状态
|
||||
|
||||
新提交合同不能缺少到期时间;历史真实合同缺失值会明确提示补录;开发联调合同再次执行种子后可显示确定的到期时间;后端稳定动作枚举保持不变。
|
||||
|
||||
## 代码变更
|
||||
|
||||
- `frontend/platform_admin/src/api/resource-display.ts`:增加动作中文映射和历史到期时间提示。
|
||||
- `frontend/platform_admin/src/api/resources.ts`:合同表单与续签动作要求到期时间必填。
|
||||
- `backend/api/internal/logic/platform/gasorder/gasorder.go`:增加服务端必填与时间顺序校验。
|
||||
- `backend/api/internal/seed/mock.go`:补齐并定向回填联调合同到期时间。
|
||||
- `frontend/platform_admin/scripts/check-resource-pages.mjs`:增加静态回归断言。
|
||||
|
||||
## 验证结果
|
||||
|
||||
- `go test ./internal/logic/platform/gasorder ./internal/seed`:通过。
|
||||
- `npm run resource-pages:check`:通过,覆盖详情 46 类、新建 25 类、编辑 23 类。
|
||||
- `npm run type:check`:通过。
|
||||
- `npm run build`:通过,Vite 成功构建 2620 个模块。
|
||||
|
||||
## 风险评估
|
||||
|
||||
接口从允许省略到期时间调整为必填,旧客户端若继续省略该字段将收到参数错误;历史真实数据不自动推测回填,需业务人员在草稿编辑或续签时补录。
|
||||
39
docs/操作日志_合同终止恢复与修订字段优化_20260813.md
Normal file
39
docs/操作日志_合同终止恢复与修订字段优化_20260813.md
Normal file
@@ -0,0 +1,39 @@
|
||||
# 操作日志:合同终止恢复与修订字段优化
|
||||
|
||||
操作时间:2026-08-13
|
||||
操作类型:修改
|
||||
影响模块:合同生命周期、合同详情修订记录、平台/气站/配送点管理端
|
||||
|
||||
## 操作前状态
|
||||
|
||||
合同详情的只读修订记录展示公共软删除字段“删除时间”。平台前端和后端允许已终止合同直接启用,各管理端的启用按钮状态配置也不一致。
|
||||
|
||||
## 具体操作
|
||||
|
||||
- 聚合详情表过滤 `deleted_at` 和 `DeletedAt`,保留数据库公共软删除能力但不向只读修订记录展示。
|
||||
- 后端启用动作仅接受草稿状态,已终止合同必须通过续签恢复。
|
||||
- 平台、气站和配送点管理端统一仅在草稿状态显示“启用合同”。
|
||||
- 增加终止合同不可直接启用的状态规则测试,并同步合同需求文档。
|
||||
|
||||
## 操作后状态
|
||||
|
||||
修订记录不再出现无业务意义的删除时间。已终止合同不能直接启用;恢复履约需要通过续签提交新的生效时间、到期时间和原因。
|
||||
|
||||
## 代码变更
|
||||
|
||||
- `backend/api/internal/logic/platform/gasorder/gasorder.go`:收紧合同启用状态。
|
||||
- `backend/api/internal/logic/platform/gasorder/gasorder_test.go`:增加状态规则测试。
|
||||
- `frontend/platform_admin/src/views/resource/ResourceDetailContent.vue`:隐藏聚合记录软删除字段。
|
||||
- 三个管理端的 `src/api/resources.ts`:统一合同启用按钮状态。
|
||||
- `frontend/platform_admin/scripts/check-resource-pages.mjs`:增加静态回归断言。
|
||||
|
||||
## 验证结果
|
||||
|
||||
- `go test ./internal/logic/platform/gasorder ./internal/logic/gas ./internal/logic/delivery`:通过。
|
||||
- 平台总后台 `npm run resource-pages:check`、`npm run type:check`、`npm run build`:通过。
|
||||
- 气站管理端 `npm run type:check`、`npm run build`:通过。
|
||||
- 配送点管理端 `npm run type:check`、`npm run build`:通过。
|
||||
|
||||
## 风险评估
|
||||
|
||||
调用方若尝试对已终止合同执行启用将收到状态错误;应改用续签接口。数据库字段和公开接口路径保持不变。
|
||||
Reference in New Issue
Block a user