修复合同到期时间与终止恢复规则

- 合同动作中文化并将到期时间设为必填\n- 隐藏修订记录无业务意义的删除时间\n- 禁止已终止合同直接启用,统一三端状态规则\n- 补充回归测试、模拟数据回填和中文文档
This commit is contained in:
czl231
2026-08-13 00:54:27 +08:00
parent 9937e3a508
commit a7ac692110
14 changed files with 151 additions and 19 deletions

View 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 个模块。
## 风险评估
接口从允许省略到期时间调整为必填,旧客户端若继续省略该字段将收到参数错误;历史真实数据不自动推测回填,需业务人员在草稿编辑或续签时补录。