From 2ce991aa161aa955d14821e0338c7b138db745fd Mon Sep 17 00:00:00 2001
From: 云 <2163098428@qq.com>
Date: 星期四, 17 九月 2026 13:26:04 +0800
Subject: [PATCH] feat(mes): 实现质检化工报告功能支持分组检验项公式文本平行测量

---
 docs/qc_chemical_report_integration.md |  106 +++++++++++++++++++++++++++++++++++++++++++++++++++++
 1 files changed, 106 insertions(+), 0 deletions(-)

diff --git a/docs/qc_chemical_report_integration.md b/docs/qc_chemical_report_integration.md
new file mode 100644
index 0000000..c0ca1d2
--- /dev/null
+++ b/docs/qc_chemical_report_integration.md
@@ -0,0 +1,106 @@
+# MES 璐ㄦ鍗囩骇锛氬寲宸ユ楠屾姤鍛婏紙鍒嗙粍妫�楠岄」 + 鍏紡鏂囨湰 + 骞宠娴嬮噺 + 鎵撳嵃锛�
+
+> 鏀拺绾歌川"姝d竵閱囨楠岃褰�"锛圙B/T 6027锛夌被鎶ュ憡锛氳鍒嗙粍鐭╅樀銆佸叕寮忔枃鏈睍绀恒�佸钩琛屾祴閲忔壒娆″垪銆佽〃澶撮噰鏍蜂俊鎭�佸垎鏋愯��/澶嶆牳浜�/瀹℃牳浜虹瀛楀尯銆佸墠绔祻瑙堝櫒鎵撳嵃銆侷QC/IPQC/OQC/RQC 鍥涚被妫�楠屽崟閫氱敤銆�
+
+## 娑夊強椤甸潰锛堝潎宸插疄鏂斤級
+
+| 椤甸潰 | 鍙樻洿 |
+|------|------|
+| 璐ㄦ鎸囨爣缁存姢 `views/mes/qc/indicator` | 琛ㄥ崟鏂板 鏉$洰绫诲瀷/鎵�灞炲垎缁�/鍏紡鏂囨湰/鍗曚綅鏂囨湰/鎺掑簭鍙凤紱鍒楄〃鏂板 鏉$洰绫诲瀷/鎵�灞炲垎缁�/鍗曚綅 鍒楋紱缁撴灉鍊肩被鍨嬩粎褰曞叆椤规樉绀哄繀濉� |
+| 璐ㄦ鏂规-鎸囨爣椤� `views/mes/qc/template` | 鏂规琛ㄥ崟鏂板"榛樿鎵ц鏍囧噯"锛涙寚鏍囬」鍒楄〃鏂板"鎺掑簭鍙�""鍙備笌鍒ゅ畾"寮�鍏冲垪锛堝彲鍒楄〃鐩存敼锛� |
+| 鍥涚被妫�楠屽崟琛ㄥ崟 `views/mes/qc/{iqc,ipqc,oqc,rqc}` | 鏂板 閲囨牱鍦扮偣/璇佷功缂栧彿/鎵ц鏍囧噯/澶嶆牳浜�/瀹℃牳浜猴紱閫夋嫨璐ㄦ鏂规鏃舵墽琛屾爣鍑嗚嚜鍔ㄥ甫鍏ユ柟妗堥粯璁ゅ�硷紱鍒楄〃鎿嶄綔鍒楁柊澧�"鎵撳嵃鎶ュ憡" |
+| 妫�楠岀粨鏋滃綍鍏� `views/mes/qc/indicatorresult/components/form.vue` | 鎸夊垎缁勬爲娓叉煋锛堢粍鏍囬琛� + 鍏紡鏂囨湰锛夛紱姣忎釜褰曞叆椤规敮鎸佸鍒�"娴嬮噺鎵规"骞宠鍒� |
+| 鎵撳嵃缁勪欢锛堟柊寤猴級 `views/mes/qc/components/qc-report-print.vue` | Teleport + @media print 娴忚鍣ㄦ墦鍗版姤鍛婄増寮� |
+
+## 鏁版嵁搴撳彉鏇达紙宸叉墽琛岃嚦 ruoyi-vue-pro锛涚粨鏋勫凡鍚屾 `docs/sql/config_export_all_20260904.sql` 闃舵涓�锛�
+
+| 琛� | 鏂板鍒� |
+|----|--------|
+| `mes_qc_indicator` | `parent_id`(0=椤剁骇)銆乣item_type`(1褰曞叆/2鍒嗙粍)銆乣formula_text`銆乣unit_text`銆乣sort_order` |
+| `mes_qc_template_indicator` | `sort_order`銆乣judge_flag`(榛樿1鍙備笌鍒ゅ畾) |
+| `mes_qc_indicator_result_detail` | `measure_no`(娴嬮噺鎵规鍙凤紝榛樿1) |
+| `mes_qc_iqc` / `ipqc` / `oqc` / `rqc` | `sampling_location`銆乣certificate_no`銆乣execute_standard`銆乣audit_user_id`銆乣approve_user_id` |
+| `mes_qc_template` | `default_execute_standard` |
+
+鎸囨爣灞傜骇瑙勫垯锛氫粎涓ょ骇锛堝垎缁勯」蹇呴』椤剁骇锛涘綍鍏ラ」鍙寕涓�涓垎缁勶級锛涘悓灞傜骇涓嬫娴嬮」鍚嶇О鍞竴锛堜笉鍚屽垎缁勪笅鍏佽鍚屽悕鍙傛暟琛岋紝濡�"姘村垎""閰稿惈閲�"缁勪笅鍚勬湁涓�涓�"璇曟牱璐ㄩ噺 m"锛夈��
+
+绉嶅瓙鏁版嵁锛歚sql/mysql/mes_qc_indicator_seed.sql`锛堟涓侀唶鎶ュ憡鏍蜂緥鏍戯紝缂栫爜鍓嶇紑 `SEED-BT-`锛屽箓绛夊彲閲嶈窇锛夈��
+
+## API
+
+| 鏂规硶 | 璺緞 | 璇存槑 |
+|------|------|------|
+| GET | /mes/qc/indicator/list | 鎸囨爣骞抽摵鍒楄〃锛堝墠绔嵁姝ゆ淳鐢熸爲锛汻espVO 鏂板 parentId/itemType/formulaText/unitText/sortOrder/parentName锛� |
+| POST/PUT | /mes/qc/indicator/create銆�/update | SaveReqVO 鍚笂杩� 5 鏂板瓧娈碉紱鍒犻櫎鏈夊瓙椤圭殑鎸囨爣灏嗚鎷︽埅 |
+| PUT | /mes/qc/template/indicator/update | 鏀寔 sortOrder/judgeFlag |
+| GET | /mes/qc/indicator-result/get-detail-list | Item 鏍戝舰鍖栵細+parentId/itemType/formulaText/unitText/sortOrder/children锛涘崟鍊� value/remark 鏀逛负 `measures: [{resultId, measureNo, value, remark}]` |
+| POST | /mes/qc/indicator-result/create銆�/update | 鏄庣粏椤� +`measureNo`锛堢┖榛樿1锛夛紱鍒嗙粍椤逛笉鎻愪氦鏄庣粏 |
+| GET | /mes/qc/indicator-result/report | **鏂板**锛氭墦鍗版姤鍛婅仛鍚堟暟鎹紝鍙傛暟 `qcId`銆乣qcType`銆乣resultId`(鍙��)锛涙潈闄� `mes:qc-iqc:query` |
+
+**/report 鍝嶅簲绀轰緥锛堣妭閫夛級锛�**
+
+```json
+{
+  "qcType": 1,
+  "docCode": "IQC20260830001",
+  "itemName": "姝d竵閱�",
+  "samplingLocation": "缃愬尯",
+  "certificateNo": "V0028",
+  "executeStandard": "GB/T6027",
+  "samplingTime": "2026-08-30T01:00:00",
+  "batchQuantity": 30,
+  "checkResult": 1,
+  "inspectorName": "鏂拌壋",
+  "auditName": "娴蜂附",
+  "approveName": "鐜嬩簲",
+  "measureNos": [1, 2],
+  "items": [
+    {
+      "indicatorId": 21, "indicatorName": "閰稿惈閲�", "itemType": 2,
+      "formulaText": "w3 = c 脳 V 脳 0.06005 / m 脳 100%",
+      "children": [
+        { "indicatorName": "璇曟牱璐ㄩ噺 m /g", "itemType": 1,
+          "measures": [
+            { "measureNo": 1, "value": "10.023" },
+            { "measureNo": 2, "value": "10.115" }
+          ] }
+      ]
+    }
+  ]
+}
+```
+
+## 鏁版嵁甯﹀叆璇存槑
+
+1. 鏂规 `defaultExecuteStandard` 鈫� 鏂板缓鍥涚被妫�楠屽崟閫夋柟妗堝悗鑷姩濉叆 `executeStandard`锛堢敤鎴峰凡鎵嬪~鍒欎笉瑕嗙洊锛涗粎褰撹姹傚�间负绌烘椂鍚庣浠庢柟妗堝洖濉級銆�
+2. 鏂规鎸囨爣 `sortOrder`/`judgeFlag` 鈫� 鐢熸垚妫�楠岃/缁撴灉鏍戞椂鎺掑簭涓庡垽瀹氭彁绀轰緷鎹紱`judgeFlag=false`锛堝垎缁�/涓棿鍙傛暟琛岋級涓嶅弬涓庡悎鏍煎垽瀹氭彁绀恒��
+3. 鎸囨爣鏍戝舰缁撴瀯鐢卞瓧鍏稿眰 `parent_id` 娲剧敓锛屾楠岃琛ㄤ笉鍔犲眰绾у瓧娈碉紱鑰佹墎骞虫寚鏍囷紙parentId=0锛夊畬鍏ㄥ吋瀹广��
+
+## 鎵撳嵃鐗堝紡瀛楁鏄犲皠锛坬c-report-print.vue 鈫� 绾歌川鎶ュ憡锛�
+
+| 绾歌川鏍忎綅 | 鏁版嵁鏉ユ簮 |
+|----------|----------|
+| 璇佷功缂栧彿 / 閲囨牱鍦扮偣 / 鎵归噺 / 閲囨牱鏃堕棿 / 鎵ц鏍囧噯 | report 鍚屽悕瀛楁 |
+| 鍒嗙粍琛岋紙姘村垎/閰稿惈閲忊�︼級 | itemType=2 鑺傜偣锛氬悕绉拌 + 鍏紡鏂囨湰(formulaText) |
+| 鍙傛暟琛�/缁撴灉琛� | 鍒嗙粍 children 褰曞叆椤癸紝鎸� sortOrder 鎺掑簭 |
+| 骞宠娴嬮噺涓ゅ垪 | measureNos 鏁扮粍椹卞姩鍒楀ご锛屾瘡 measureNo 涓�鍒� |
+| 澶栬绛夊畾鎬ч」 | resultType=鏂囨湰/瀛楀吀 鐨勫綍鍏ラ」鐩存帴鏄剧ず value |
+| 鍒嗘瀽鑰�/澶嶆牳浜�/瀹℃牳浜� | inspectorName / auditName / approveName |
+
+## 涓氬姟瑙勫垯
+
+| 鍦烘櫙 | 瑙勫垯 |
+|------|------|
+| 鍒嗙粍椤瑰綍鍏� | 涓嶅綍鍊硷細缁撴灉鍊肩被鍨嬮殣钘忋�佹槑缁嗕笉鎻愪氦銆佸悗绔� validateDetailValues 瀵� GROUP 璺宠繃鏍煎紡鏍¢獙 |
+| 骞宠娴嬮噺 | 姣忓綍鍏ラ」鑷冲皯淇濈暀 1 涓祴閲忔壒娆★紱鏂板鎵规鑷姩鍙栦笅涓�涓簭鍙� |
+| 缁撴灉鍥炴樉 | 鍗曟壒娆¤�佹暟鎹� measureNo=1锛屽墠绔� measures 姝e父娓叉煋 |
+| 鍒ゅ畾娴佺▼ | 涓嶅彉锛歝heckResult 浠嶇敱瀹屾垚妫�楠屾椂浜哄伐濉啓锛岀郴缁熸棤鑷姩闃堝�煎垽瀹� |
+| 鍒犻櫎鎸囨爣 | 瀛樺湪瀛愰」鏃跺悗绔嫤鎴姤閿� |
+
+## 娉ㄦ剰浜嬮」
+
+- 鎵撳嵃涓烘祻瑙堝櫒 `window.print()`锛屽缓璁湪 Chrome 涓嬮瑙堬紱闅愯棌鎵撳嵃澶栧叾浠栧厓绱犵敱缁勪欢鍐� `@media print` 鎺у埗銆�
+- `/report` 鐨� `qcType`锛�1=IQC銆�2=IPQC銆�3=OQC銆�4=RQC锛屼笌 `MesQcTypeEnum` 涓�鑷淬��
+- 澶嶆牳浜�/瀹℃牳浜轰粎浣滀负璁板綍涓庢墦鍗扮瀛楀尯锛屼笉寮曞叆瀹℃壒娴佽浆銆�
+- 鏂囦欢闄勪欢绫绘寚鏍囷紙resultType=鏂囦欢锛夋部鐢ㄥ師鏈哄埗锛屾湭鍦ㄦ湰娆¤寖鍥淬��
+- 鍥炲綊鐐癸細鏃㈡湁鎵佸钩鎸囨爣鐨勮�佹楠屽崟锛堝綍鍏�/瀹屾垚/Excel 瀵煎嚭锛夎涓轰笉鍙橈紱`measure_no` 榛樿 1 瀵硅�佹暟鎹�忔槑銆�

--
Gitblit v1.9.3