编辑 | blame | 历史 | 原始文档

质检报告「判定结论 / 质检专用章」补齐 - 前端联调方案

本次变更:打印报告版式补齐纸质报告必有的「判定结论」「质检专用章」两栏,并把平行测量列头由固定「测量N」改为按批次数自适应。前端浏览器打印与产品检验单 Word 导出两个出口同步生效。
关联文档:docs/qc_chemical_report_integration.md(化工检验报告整体版式)、docs/mes_oqc_check_result_frontend.md(OQC 检测结果字典切换)。

涉及页面

  • 检验报告打印组件 views/mes/qc/components/qc-report-print.vue
  • 四类检验单列表(调用方,无需改动):views/mes/qc/{iqc,ipqc,oqc,rqc}/index.vue
  • 产品检验单 Word 导出(后端生成,无前端页面)

变更摘要

出口 变更
前端浏览器打印 ① 新增「判定结论 / 质检专用章」一行(判定结论带出检验结果文案,盖章区留空)② 测量列头:仅一个测量批次时显示「测量值」,多批次时显示「测量1」「测量2」③ 表头信息栏中原有的「检测结论」已移除(与新「判定结论」同值,避免同页重复)
Word 导出 /mes/qc/indicator-result/export-product-word 「判定结论:」后自动写入检验结果文案;「质检专用章:」仍留空盖章

API

方法 路径 说明
GET /mes/qc/indicator-result/report 打印报告聚合数据,响应新增 checkResultText;其余请求参数与响应结构不变

响应字段新增:

字段 类型 说明
checkResultText String 检测结果文案,由后端按 qcType 选择字典解析。OQC 取 mes_oqc_check_result(1型/2型/废品),IQC/IPQC/RQC 取 mes_qc_check_result(校验通过/校验不通过)。checkResult 为空时该字段为 null

响应示例(节选):

{
  "code": 0,
  "data": {
    "qcType": 3,
    "docCode": "OQC20260106001",
    "itemName": "工业用正丁醇",
    "checkResult": 1,
    "checkResultText": "1型",
    "measureNos": [1],
    "items": []
  }
}

数据带入说明

  1. checkResult(检验单完成时由人工填写的检测结果)→ 后端解析为 checkResultText 随 /report 返回,前端打印时直接展示,**不再由前端按固定字典取标签**。
  2. measureNos 数组长度 → 决定测量列头文案:长度为 1 时列头为「测量值」,长度 ≥ 2 时列头为「测量1」「测量2」…,列的取值口径(每列对应一个测量批次)不变。
  3. 「质检专用章」无数据来源,仅为空白单元格,供打印后人工盖章。

字段展示规则

字段 展示位置 说明
checkResultText 打印版式底部「判定结论:」之后 无值时显示「-」(前端兜底逻辑不变)
— 打印版式底部「质检专用章:」 空单元格,预留约 90px 高度便于盖章
measureNos 检验项矩阵表头 单批次「测量值」,多批次「测量1」「测量2」

业务规则说明

场景 规则
OQC 检验单 判定结论显示产品等级(1型/2型/废品),与 mes_oqc_check_result 字典一致
IQC/IPQC/RQC 检验单 判定结论显示通用检测结果(校验通过/校验不通过)
检验单尚未判定 checkResult 为空 → 判定结论显示「-」
未做平行测量 测量列只有一列,列头为「测量值」
做了平行测量 按批次数展开多列,列头为「测量1」「测量2」
打印后盖章 判定结论、质检专用章不参与流程流转,仅作纸质留痕

前端入口(新增)

产品检验单 Word 导出此前只有后端接口、前端无入口,本次在四类检验单列表的**行操作列**补齐按钮。

页面 按钮 位置
views/mes/qc/iqc/index.vue 导出产品检验单 行操作列「打印报告」之后
views/mes/qc/ipqc/index.vue 导出产品检验单 行操作列「打印报告」之后
views/mes/qc/oqc/index.vue 导出产品检验单 行操作列「打印报告」之后
views/mes/qc/rqc/index.vue 导出产品检验单 行操作列「打印报告」之后
项 说明
图标 ant-design:file-word-outlined
权限 与各页「打印报告」一致,mes:qc-{iqc\|ipqc\|oqc\|rqc}:query
接口 GET /mes/qc/indicator-result/export-product-word,参数 qcId、qcType、resultId(可选,不传取该检验单最早一条检验结果)
下载文件名 产品检验单-{检验单编号}.docx
调用方式 requestClient.download 取 Blob → downloadFileFromBlobPart 落盘

注意事项

  • checkResultText 是**新增响应字段**,前端读取时需容错(老版本后端不返回该字段):组件当前实现为「取 checkResultText,为空时回退按 checkResult 取 mes_qc_check_result 标签」。
  • 打印版式表头信息栏已去掉「检测结论」一项;若页面其它位置仍需要展示检测结论,请从 /report 或列表接口的 checkResult 取字典标签展示,字典选择需按 qcType 区分(OQC 用 mes_oqc_check_result)。
  • Word 导出的「检验 / 复核 / 批准」已带出单据的检测人员、复核人、审核人姓名(分别为 inspectorName / auditName / approveName);未指定人员时该段留空手写。「质检专用章」仍为留空盖章。
  • 导出按钮与「打印报告」同为 query 权限级入口,无需新增菜单权限项。