From 1a92948effc5d28692c847e40d820284e6b1701c Mon Sep 17 00:00:00 2001
From: tjx <t2856754968@163.com>
Date: 星期一, 13 十月 2025 13:11:41 +0800
Subject: [PATCH] SpiAoi_API.md的接口文档说明
---
MESApplication/Docs/SpiAoi_API.md | 167 +++++++++++++++++++++++++++++++++++++++++++++++++++++++
1 files changed, 167 insertions(+), 0 deletions(-)
diff --git a/MESApplication/Docs/SpiAoi_API.md b/MESApplication/Docs/SpiAoi_API.md
new file mode 100644
index 0000000..86ecb6e
--- /dev/null
+++ b/MESApplication/Docs/SpiAoi_API.md
@@ -0,0 +1,167 @@
+# SPI/AOI 鎺ュ彛鏂囨。
+
+## 鍩烘湰淇℃伅
+- 鍩虹璺緞锛歚/api/SpiAoi`锛堢ず渚嬪畬鏁村湴鍧�锛歚http://192.168.1.251:10054/api/SpiAoi`锛�
+- 璇锋眰涓庡搷搴旀牸寮忥細`application/json; charset=utf-8`
+
+## 缁熶竴杩斿洖妯″瀷锛圧esponseResult锛�
+- `status`锛氭暣鏁帮紝0=鎴愬姛锛�1=澶辫触
+- `message`锛氬瓧绗︿覆锛岀粨鏋滆鏄庢垨閿欒鍘熷洜
+- `data`锛氬璞★紝涓氬姟鏁版嵁杞戒綋
+- `TotalCount`锛氭暣鏁帮紝浠呭垎椤垫帴鍙h繑鍥烇紝鎬昏褰曟暟
+
+## 鏁版嵁妯″瀷涓庣害鏉燂紙閫愬瓧娈垫敞閲婏級
+浠ヤ笅瀛楁璇存槑鍙傝�冧簡 SPIAOI.txt 涓殑鏁版嵁搴撳畾涔変笌娉ㄩ噴锛岃皟鐢ㄦ柟璇蜂弗鏍兼寜绾︽潫鎻愪緵鏁版嵁銆�
+
+### Header锛堜富琛ㄦ憳瑕侊紝涓婁紶鏃跺繀濉級
+- `testDate`锛氬瓧绗︿覆锛屽繀濉�傛祴璇曟棩鏈燂紝鏍煎紡涓� `yyyy-MM-dd`锛屼笌璁惧涓婁紶鏃ユ湡淇濇寔涓�鑷淬��
+- `testTime`锛氬瓧绗︿覆锛屽繀濉�傛祴璇曟椂闂达紝鏍煎紡涓� `HH:mm:ss`锛屼笌璁惧涓婁紶鏃堕棿淇濇寔涓�鑷淬��
+- `testResult`锛氬瓧绗︿覆锛屽繀濉紝闀垮害鈮�12銆傛祴璇曠粨鏋滃師濮嬪瓧绗︿覆锛屼緥濡� `0:0:1;0`锛堥�氳繃锛夈�乣0;0;0:1`锛堝け璐ワ級銆乣Fail`锛堝紓甯革級銆備笉鍋氳В鏋愶紝鍘熸牱鍏ュ簱銆�
+- `surface`锛氬瓧绗︿覆锛屽繀濉�傛娴嬮潰锛屽彇鍊� `T` 琛ㄧず椤堕潰锛圱op锛夛紝`B` 琛ㄧず搴曢潰锛圔ottom锛夈��
+- `totalPoints`锛氭暣鏁帮紝鍙┖锛屸墺0銆傝鍒掓娴嬬偣鏁般��
+- `actualDefects`锛氭暣鏁帮紝鍙┖锛屸墺0銆傚疄闄呬笉鑹偣鏁帮紙缁熻缁撴灉锛夈��
+- `equipmentModel`锛氬瓧绗︿覆锛屽彲绌恒�傝澶囧瀷鍙凤紙濡� SPI/AOI 鏈哄彴鍨嬪彿锛夈��
+- `workOrder`锛氬瓧绗︿覆锛屽彲绌恒�傜敓浜у伐鍗曟垨鎵规鍙枫��
+- `productModel`锛氬瓧绗︿覆锛屽彲绌恒�傛満绉�/浜у搧鍨嬪彿銆�
+- `boardBarcode`锛氬瓧绗︿覆锛屽繀濉紝闀垮害鈮�128銆傛澘浠舵潯鐮侊紝鍏ㄥ眬鍞竴锛涢噸澶嶅皢琚嫆缁濄��
+- `smtGroup`锛氬瓧绗︿覆锛屽彲绌恒�係MT 缁勫埆銆�
+- `lineName`锛氬瓧绗︿覆锛屽彲绌恒�傜嚎鍒悕绉般��
+
+杩斿洖涓撶敤锛堟煡璇㈡帴鍙d細杩斿洖浠ヤ笅瀛楁锛夛細
+- `id`锛氭暟鍊硷紝鏁版嵁搴撲富閿� ID锛岀敱搴忓垪鐢熸垚銆�
+- `createdAt`锛氬瓧绗︿覆锛屽垱寤烘椂闂�
+- `updatedAt`锛氬瓧绗︿覆锛屾洿鏂版椂闂�
+
+### Detail锛堝瓙琛ㄧ己闄蜂笌浜х嚎鎸囨爣锛屼笂浼犳椂鑷冲皯 1 鏉★級
+璁惧涓庝骇绾匡細
+- `machineName`锛氬瓧绗︿覆锛屽彲绌恒�傛娴嬫満鍙板悕绉般��
+- `lineDisplayName`锛氬瓧绗︿覆锛屽彲绌恒�備骇绾挎樉绀哄悕绉般��
+
+缂洪櫡璁℃暟锛堝潎涓烘暣鏁帮紝蹇呴』 鈮�0锛夛細
+- `offsetCount`锛氬亸浣嶆暟閲忥紙鍣ㄤ欢璐磋鍋忕Щ锛夈��
+- `missingCount`锛氱己浠舵暟閲忥紙鍣ㄤ欢缂哄け锛夈��
+- `reverseCount`锛氬弽鍚戞暟閲忥紙鍣ㄤ欢鏋佹��/鏂瑰悜鍙嶈锛夈��
+- `liftedCount`锛氱繕璧锋暟閲忥紙鍣ㄤ欢涓�绔垨鏁翠綋缈樿捣锛夈��
+- `floatHighCount`锛氭诞楂樻暟閲忥紙鍣ㄤ欢楂樺害瓒呭樊锛夈��
+- `tombstoneCount`锛氱珛纰戞暟閲忥紙鐗囧紡鍣ㄤ欢涓�绔珫璧凤級銆�
+- `flipCount`锛氱炕杞暟閲忥紙鍣ㄤ欢缈婚潰/缈昏韩锛夈��
+- `wrongPartCount`锛氶敊浠舵暟閲忥紙鍨嬪彿/瑙勬牸閿欒锛夈��
+- `leadLiftCount`锛氱繕鑴氭暟閲忥紙寮曡剼鏈创浼忥級銆�
+- `coldJointCount`锛氳櫄鐒婃暟閲忥紙鍐风剨/鍋囩剨锛夈��
+- `noSolderCount`锛氱┖鐒婃暟閲忥紙鐒婃枡缂哄け锛夈��
+- `insufficientSolderCount`锛氬皯閿℃暟閲忥紙鐒婃枡涓嶈冻锛夈��
+- `excessSolderCount`锛氬閿℃暟閲忥紙鐒婃枡杩囬噺锛夈��
+- `bridgeCount`锛氳繛閿℃暟閲忥紙鐒婇敗妗ヨ繛锛夈��
+- `copperExposureCount`锛氭紡閾滄暟閲忥紙鐒婄洏/绾胯矾閾滅當澶栭湶锛夈��
+- `spikeCount`锛氭媺灏栨暟閲忥紙閿℃枡鎷夊皷锛夈��
+- `foreignMatterCount`锛氬紓鐗╂暟閲忥紙姹℃煋/棰楃矑锛夈��
+- `glueOverflowCount`锛氭孩鑳舵暟閲忥紙鑳舵按澶栨孩锛夈��
+- `pinOffsetCount`锛氬紩鑴氬亸浣嶆暟閲忥紙寮曡剼鏈涓級銆�
+
+浜х嚎缁熻锛堥櫎姣旂巼澶栦负鏁存暟锛屽繀椤� 鈮�0锛夛細
+- `inputBoards`锛氭姇鍏ユ澘鏁帮紙杩涘叆妫�娴嬬殑鏉挎暟閲忥級銆�
+- `okBoards`锛歄K 鏉挎暟锛堟娴嬩负 OK 鐨勬澘鏁伴噺锛夈��
+- `passBoards`锛氶�氳繃鏉挎暟锛堟渶缁堝垽瀹氶�氳繃鐨勬澘鏁伴噺锛夈��
+- `passRate`锛氬皬鏁帮紝鍗曚綅鐧惧垎姣斻�傚悎鏍肩巼锛屼緥濡� `98.00` 琛ㄧず 98%銆�
+- `defectBoards`锛氫笉鑹澘鏁帮紙鏈�缁堝垽瀹氫笉鑹殑鏉挎暟閲忥級銆�
+- `defectRate`锛氬皬鏁帮紝鍗曚綅鐧惧垎姣斻�備笉鑹巼銆�
+- `defectPpm`锛氭暣鏁帮紝鍗曚綅 PPM銆備笉鑹暟锛堢櫨涓囧垎鐜囷級銆�
+- `defectPoints`锛氫笉鑹偣鏁帮紙缂洪櫡鐐瑰悎璁★級銆�
+- `measuredPoints`锛氬疄娴嬬偣鏁帮紙瀹為檯瀹屾垚妫�娴嬬殑鐐规暟锛夈��
+- `pendingPoints`锛氬緟娴嬬偣鏁帮紙鏈畬鎴愭娴嬬殑鐐规暟锛夈��
+
+涓氬姟鏍¢獙鎻愮ず锛堟彁绀轰笉闃绘柇锛夛細
+- `passBoards` 涓嶅簲澶т簬 `inputBoards`銆�
+- 寤鸿 `defectBoards = inputBoards - passBoards`锛屽亸宸粎鎻愮ず銆�
+- 褰� `inputBoards > 0` 涓旀彁渚� `passRate` 鏃讹紝寤鸿涓庤绠楀�� `passBoards/inputBoards*100` 鍋忓樊 鈮� 1.0銆�
+
+绯荤粺璁板綍锛氭瘡娆¤皟鐢ㄤ細鍦ㄦ秷鎭腑蹇冭褰曚竴鏉℃祦姘达紙璁板綍鐩爣琛ㄥ悕涓� `MES_SPI_AOI_HEADER`銆佹帴鍙� URL銆佹柟娉曘�佽姹備笌澶勭悊缁撴灉锛夛紝鐢ㄤ簬瀹¤杩借釜銆�
+
+---
+
+## 鎺ュ彛鍒楄〃
+
+### 1. 涓婁紶 SPI/AOI 鏁版嵁
+- 璺緞涓庢柟娉曪細`POST /api/SpiAoi/Upload`
+- 鐢ㄩ�旓細鏂板涓�绗斾富琛ㄤ笌澶氱瑪瀛愯〃鏁版嵁锛涜嫢 `boardBarcode` 宸插瓨鍦ㄥ垯澶辫触
+- 璇锋眰绀轰緥锛�
+```json
+{
+ "header": {
+ "testDate": "2025-10-10",
+ "testTime": "14:33:21",
+ "testResult": "0;0;0:1",
+ "surface": "T",
+ "totalPoints": 500,
+ "actualDefects": 3,
+ "equipmentModel": "SPI-9000",
+ "workOrder": "WO20251010-01",
+ "productModel": "MODEL-ABC",
+ "boardBarcode": "BC123456789",
+ "smtGroup": "A1",
+ "lineName": "SMT-01"
+ },
+ "details": [
+ {
+ "machineName": "AOI-01",
+ "lineDisplayName": "SMT-01",
+ "offsetCount": 1,
+ "missingCount": 0,
+ "reverseCount": 0,
+ "liftedCount": 0,
+ "floatHighCount": 0,
+ "tombstoneCount": 0,
+ "flipCount": 0,
+ "wrongPartCount": 0,
+ "leadLiftCount": 0,
+ "coldJointCount": 0,
+ "noSolderCount": 0,
+ "insufficientSolderCount": 1,
+ "excessSolderCount": 0,
+ "bridgeCount": 1,
+ "copperExposureCount": 0,
+ "spikeCount": 0,
+ "foreignMatterCount": 0,
+ "glueOverflowCount": 0,
+ "pinOffsetCount": 0,
+ "inputBoards": 100,
+ "okBoards": 98,
+ "passBoards": 98,
+ "passRate": 98.00,
+ "defectBoards": 2,
+ "defectRate": 2.00,
+ "defectPpm": 20000,
+ "defectPoints": 3,
+ "measuredPoints": 500,
+ "pendingPoints": 0
+ }
+ ]
+}
+```
+- 鎴愬姛鍝嶅簲绀轰緥锛�
+```json
+{
+ "status": 0,
+ "message": "OK",
+ "data": {
+ "headerId": 12001,
+ "detailCount": 1,
+ "message": "SPI/AOI妫�娴嬫暟鎹笂浼犳垚鍔�"
+ },
+ "TotalCount": 0
+}
+```
+- 澶辫触鍝嶅簲绀轰緥锛堟潯鐮侀噸澶嶏級锛�
+```json
+{
+ "status": 1,
+ "message": "涓婁紶SPI/AOI妫�娴嬫暟鎹け璐�: 鏉$爜 BC123456789 宸插瓨鍦紝涓嶅厑璁搁噸澶嶄笂浼�",
+ "data": "涓婁紶SPI/AOI妫�娴嬫暟鎹け璐�: 鏉$爜 BC123456789 宸插瓨鍦紝涓嶅厑璁搁噸澶嶄笂浼�",
+ "TotalCount": 0
+}
+```
+
+
+## 璋冪敤寤鸿
+- 涓ユ牸鎸夊瓧娈电害鏉熺粍缁囨暟鎹紱鏁板�煎瓧娈典娇鐢ㄦ暣鏁版垨灏忔暟鐨勬纭被鍨�
+- 鍙戠敓閿欒鏃惰鍙� `message` 渚夸簬瀹氫綅闂锛涗繚鐣欒姹備笌鍝嶅簲浣滀负杩借釜渚濇嵁
--
Gitblit v1.9.3