质检报告「判定结论 / 质检专用章」补齐 - 前端联调方案
本次变更:打印报告版式补齐纸质报告必有的「判定结论」「质检专用章」两栏,并把平行测量列头由固定「测量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": []
}
}
数据带入说明
checkResult(检验单完成时由人工填写的检测结果)→ 后端解析为 checkResultText 随 /report 返回,前端打印时直接展示,**不再由前端按固定字典取标签**。
measureNos 数组长度 → 决定测量列头文案:长度为 1 时列头为「测量值」,长度 ≥ 2 时列头为「测量1」「测量2」…,列的取值口径(每列对应一个测量批次)不变。
- 「质检专用章」无数据来源,仅为空白单元格,供打印后人工盖章。
字段展示规则
| 字段 |
展示位置 |
说明 |
| 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 权限级入口,无需新增菜单权限项。