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

SPI 接口文档

基本信息

  • 基础路径:/api/SpiAoi(示例完整地址:http://192.168.1.251:10054/api/SpiAoi
  • 请求与响应格式:application/json; charset=utf-8

统一返回模型(ResponseResult)

  • status:整数,0 表示成功,1 表示失败
  • message:字符串,返回说明或错误信息
  • data:对象,业务数据载体
  • TotalCount:整数,仅分页接口使用,表示总记录数

Spi数据说明

  • 设备 / 产线:machineNamelineDisplayName
  • 缺陷统计(int):offsetCountmissingCountreverseCountliftedCountfloatHighCounttombstoneCountflipCountwrongPartCountleadLiftCountcoldJointCountnoSolderCountinsufficientSolderCountexcessSolderCountbridgeCountcopperExposureCountspikeCountforeignMatterCountglueOverflowCountpinOffsetCount
  • 生产统计:inputBoardsokBoardspassBoardsdefectBoardsdefectPointsmeasuredPointspendingPoints
  • 比例字段(decimal?):passRatedefectRate
  • 其它:defectPpm (int?)headerId (decimal?)

日志记录:每次调用会写入消息中心(MES_SPI_AOI_HEADER / MES_SPI_AOI_DETAIL),保存请求体、结果等信息备用。


接口列表

以下两个接口覆盖单笔与批量入库场景,均使用 POST。

1. UploadSpiDetails — 上传 SPI明细(单笔)

  • 路径:POST /api/SpiAoi/UploadSpiDetails
  • 描述:插入一条明细记录,需指定 headerId(或由数据库触发器自动维护)。
  • 请求示例
    json { "headerId": 12001, "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": { "detailCount": 1, "message": "SPI detail upload succeeded" }, "TotalCount": 0 }

2. UploadSpiDetailsBatch — 批量上传 SPI明细

  • 路径:POST /api/SpiAoi/UploadSpiDetailsBatch
  • 描述:批量写入多条明细,使用同一数据库事务保证原子性。
  • 请求示例
    json [ { "headerId": 12001, "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": { "detailCount": 5, "message": "SPI detail batch upload succeeded" }, "TotalCount": 0 }

调用建议

  • 严格按照字段类型与长度构造数据;数值类字段建议使用整型或保留合适小数位。
  • 出现错误时先查看 message,再结合消息中心记录和服务端日志定位问题。
  • 建议在批量调用前自行去重条码或关键字段,减少回滚概率。