feat(mes): 种子二维码标签国标四要素合规改造
依据《农作物种子标签二维码编码规则》与 GB 20464-2024,最小销售单元标签
必须包含品种名称、生产经营者名称、单元识别代码、追溯网址四项信息并按序排列。
标签生成:
- 修复标签中文渲染为方框:字体选择改为按字形探测(canDisplay),剔除纯拉丁字体 Arial
- 标签按国标顺序输出四要素,任一缺失即拒绝导出,不再静默跳过空字段
- 新增单元识别代码格式校验(不超过 20 个字符,数字或字母数字组合)
- 修复标签品种被批次品种覆盖的问题(原注释写"优先取袋码品种",实现相反)
数据源统一:
- 新增 mes.operator-name / importer-name / imported 配置项
- 生产经营者名称与追溯网址统一由后端下发,消除前端硬编码
- 新增免登录接口 /public/mes/trace/config,H5 溯源页改为接口获取
- 溯源查询响应新增 codeStatus / operatorName / traceUrl 字段
生命周期与防伪:
- 已作废袋码在溯源侧失效,返回 codeStatus=CANCELED 并提示防伪警示
- 已作废袋码被扫仍记录扫码事件(作废码被扫是重要防伪信号)
- 导出二维码标签排除已作废袋码,避免作废标签误印导致真品被误判为假货
- 非本地环境启动校验追溯网址,内网/占位符地址拒绝启动
其他:
- H5 溯源页展示加工批次与物流销售信息(国标要求追溯网址可查)
- 托盘码/批次码不再展示为「单元识别代码」,避免误导消费者
- 袋序号改为 Redis 原子分配,修复并发生成产生重复序号的竞态
- 修正单元识别代码的错误接口示例值(原示例 21 字符且含连字符,本身违反国标)
- 补充前端联调方案文档 docs/seed_qr_label_gb_compliance_integration.md
Co-Authored-By: Claude <noreply@anthropic.com>