/api/SpiAoi(示例完整地址:http://192.168.1.251:10054/api/SpiAoi)application/json; charset=utf-8status:整数,0=成功,1=失败message:字符串,结果说明或错误原因data:对象,业务数据载体TotalCount:整数,仅分页接口返回,总记录数以下字段说明参考了 SPIAOI.txt 中的数据库定义与注释,调用方请严格按约束提供数据。
testDate:字符串,必填。测试日期,格式为 yyyy-MM-dd,与设备上传日期保持一致。testTime:字符串,必填。测试时间,格式为 HH:mm:ss,与设备上传时间保持一致。testResult:字符串,必填,长度≤12。测试结果原始字符串,例如 0:0:1;0(通过)、0;0;0:1(失败)、Fail(异常)。不做解析,原样入库。surface:字符串,必填。检测面,取值 T 表示顶面(Top),B 表示底面(Bottom)。totalPoints:整数,可空,≥0。计划检测点数。actualDefects:整数,可空,≥0。实际不良点数(统计结果)。equipmentModel:字符串,可空。设备型号(如 SPI/AOI 机台型号)。workOrder:字符串,可空。生产工单或批次号。productModel:字符串,可空。机种/产品型号。boardBarcode:字符串,必填,长度≤128。板件条码,全局唯一;重复将被拒绝。smtGroup:字符串,可空。SMT 组别。lineName:字符串,可空。线别名称。返回专用(查询接口会返回以下字段):
- id:数值,数据库主键 ID,由序列生成。
- createdAt:字符串,创建时间
- updatedAt:字符串,更新时间
设备与产线:
- 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:OK 板数(检测为 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、方法、请求与处理结果),用于审计追踪。
POST /api/SpiAoi/UploadboardBarcode 已存在则失败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 便于定位问题;保留请求与响应作为追踪依据