Files
platforms/docs/操作日志_气站合同附件上传_20260818.md
2026-08-18 21:52:00 +08:00

3.1 KiB
Raw Blame History

操作日志:气站合同附件上传

操作时间2026-08-18 21:43:42 操作类型:扩展 影响模块:气站管理端 5175、气站 API 合同附件路由、气站需求文档

操作前状态

  • 5175 配送合同表单把 file_uri 渲染为“附件地址”文本输入框。
  • 气站前端已存在从 5173 复制的附件控件和状态逻辑,但标准记录页未接线,附件客户端默认地址仍误指向平台主管 /heqi/platform/v1
  • 后端只有平台主管附件专用路由;气站合同创建和更新虽复用平台业务逻辑,但没有气站鉴权域的上传、清理与预览入口。

具体操作

  1. 将气站合同字段声明为 contract-file,在标准记录页接入选择、拖拽、预览、替换、移除、失败清理和未保存提示。
  2. 将气站附件客户端默认 API 前缀修正为 /heqi/gas/v1
  3. 在气站 API 新增上传、临时清理和预览路由;上传与清理验证当前气站账号,预览额外校验合同归属。
  4. 新增气站附件路由回归测试,并同步气站需求和项目维护文档。

操作后状态

  • 5175 合同新建和草稿编辑页显示单 PDF 上传控件,不再允许手填内部附件地址。
  • 合同详情页可通过鉴权 Blob 预览附件;旧地址不可用时提示重新上传。
  • 气站 JWT 只访问气站域附件接口,跨气站合同在下载前被归属校验拦截。
  • 5173 平台总后台、合同数据库结构和公共合同接口保持兼容。

代码变更

  • backend/api/internal/logic/gas/gasorder.go:新增 UploadGasorderContractAttachmentCleanupGasorderContractAttachmentServeGasorderContractAttachment
  • backend/api/internal/routers/gas_business.go:新增 3 条合同附件路由。
  • backend/api/internal/routers/gas_test.go:新增 TestGasContractAttachmentRoutes
  • frontend/gas_admin/src/api/contract-attachment.ts:改用气站 API 前缀。
  • frontend/gas_admin/src/api/resources.ts:合同附件改为专用文件字段。
  • frontend/gas_admin/src/views/resource/ResourceRecordPage.vue:接入完整附件页面流程。

验证结果

  • go test ./...:通过。
  • go vet ./...:通过。
  • go build ./cmd/main/main.go:通过。
  • pnpm type:check:通过。
  • pnpm contract:check通过20 个资源。
  • pnpm build:通过。
  • pnpm lint:命令成功,报告 190 条仓库既有警告;本次改动未产生 lint 错误。
  • 浏览器只读检查5175 服务和登录页正常、控制台无错误;因自动化会话没有气站登录态,未提交账号或读取受保护合同。

风险评估

  • 风险:上传和绑定仍复用平台主管包中的既有实现,操作人名称在气站账号场景可能为空,但操作人 identity、合同 identity、动作和结果仍会记录。
  • 缓解:气站路由受独立 JWT 中间件保护,入口验证有效气站账号,下载执行合同归属校验;签名收据继续绑定操作人 identity 并限制有效期。
  • 后续人工边界验收:合法 PDF、非 PDF、空文件、超过 10 MiB、重复保存、编辑替换、移除、跨气站合同和旧地址不可用。