Files
baiyue-firstleg/file/delivery-documents-handoff-20260909.md
T

3.5 KiB
Raw Blame History

派送资料 File 交付及打印 BOL 核查

范围:测试工作区当前 test 分支;File/Print。未执行部署、真实 HTTP 或数据库操作。

能力矩阵

能力 状态与证据
三类上传 按序 LOADING_PHOTO→DELIVERY_LOADING_PHOTO(装车照片)、BOL→DELIVERY_BOL(BOL文件(含签名))、RECEIPT→DELIVERY_RECEIPT(签收文件(POD签收/快递签收));任意格式,非空且每文件≤52428800字节
所有权与元数据 复用 InternalBusinessFileService:tenantId=真实客户>0、businessId=deliveryOrderId内部Long十进制字符串、businessType和fileId精确过滤;同时只读ACTIVE且未删除对象
上传时间 Metadata增加真实持久化createdAt,LocalDateTime无偏移;已有其他通用业务文件OpenAPI同步字段
下载 内部服务令牌必需,复合归属查询成功后读取真实对象;attachment、UTF-8文件名、no-store
替换与删除 新上传产生独立对象并保留旧内容;当前/历史引用、原子保存、版本和可见性归Lastleg。File未新增物理删除入口
类别计数 Lastleg每类0至20文件,totalCategoryCount=3,计数按已绑定非空类别x/3,不按文件数计数、不要求全部必传;无新增完成门禁、签名识别或电子签名;File不复制绑定或状态
数据库 现有business_type VARCHAR(32)、business_id VARCHAR(64)、created_at足够,无结构变更或SQL执行

打印 BOL 现状

判定:Print通用渲染能力已实现,派送BOL业务打印链路未实现/待业务契约确认,未作环境验收。

  • print/src/main/java/com/baiyue/print/controller/InternalPdfController.java 提供内部 inbound-marks、freight-a4-documents 两个入口,校验内部令牌,返回真实PDF、页数、Content-Disposition和no-store。
  • print/src/main/java/com/baiyue/print/dto/FreightA4PdfDtos.java 仅定义海运托运书和提单确认件A4模板;没有派送BOL专用模板。
  • print/src/test/java/com/baiyue/print/service/FreightA4PdfServiceGenerationTest.java 实际生成字节并用PDFBox解析页数、尺寸与业务字段。
  • 本轮定向检索 lastleg-service/src/main/java/com/baiyue/lastleg/delivery/{controller,service} 未发现调用Print的派送BOL生成链;当前BOL号和三类资料绑定不能视为生成打印能力。已上传BOL的鉴权下载也不等于生成派送BOL。
  • 派送专属打印权限、状态门禁、字段映射、模板是否复用和输出入口尚不能由现有File/Print证明,本次未新增打印方案。其余五个按钮由Admin/后端16核查。

验证

  • 2026-09-09 11:21(UTC+8),mvn -pl file -am test:BUILD SUCCESS,File 195项,0失败/错误/跳过。DeliveryBusinessFileTest 14项覆盖三类各自不可变上传、真实时间、50MiB边界和完整查询隔离,以及五个已移除类型的拒绝;DeliveryFileContractTest 1项锁定顺序、名称、映射及运行枚举一致性。仅本轮三类结果作为当前验收证据。
  • mvn -pl print -am -Dtest=FreightA4PdfServiceGenerationTest,InternalPdfControllerTest -Dsurefire.failIfNoSpecifiedTests=false test:10项通过,含PDFBox真实解析。没有把它作为派送业务打印已实现的证据。
  • AGENTS索引合同未通过:现有柜费分摊金额守恒、整组操作契约两项索引缺失;不属于本次File变更。
  • Lastleg绑定/替换删除后的用户可见性需由后端16专项测试及后续获准环境验收确认。