## 设备控制系统(WCS)开放式接口文档 > 江苏菲达宝开电气股份有限公司 > > 主版本号:2.0 > > 版本号:2.0.1 > > 时间:2025年6月6日 ### 注意事项: 1、所有接口请勿并发调用,高频调用可能会被系统拉黑 2、WCS调用上位系统时若返回值不重要或者仅上报作用时只要调用成功(HTTP响应码为 2XX)即表示调用成功,若上位系统存在异常需要重新调用请不要返回 2XX响应码 3、WCS部分请求若请求失败在一定时间内会重新调用, 若失败次数过多或时间过长则不再调用,请确保存在内部处理方式,不能完全依赖WCS接口 4、系统对于重复的数据会默认返回成功,如重复发送的任务都会返回成功 ### 统一约定 接口形式:webapi 数据格式:application/json ### 接口统一返回 | 键名 | 名称 | 数据类型 | 长度 | 是否必填 | 备注 | | ---------- | -------- | -------- | ---- | -------- | ------------------------------------------------------------ | | code | 返回码 | int32 | 4 | 是 | 操作成功返回 200,其他为异常代码
操作成功或者操作已经成功均视为成功,需要返回成功代码 | | message | 说明信息 | string | 255 | 是 | | | returnData | 返回数据 | object | | 否 | 在需要返回数据的时候带出数据 | ### 任务交互 #### 1、*WCS向上位系统申请仓储任务 > 客户端:`WCS` > > 服务端:`上位系统` > > 调用方式:POST > > 接口地址:上位系统提供 **使用说明:**WCS在需要申请任务时向上位系统请求,上位系统返回任务数据,只要返回结果为成功则视为成功,若不带出任务需要上位系统后续及时发送(发送接口为:上位系统向WCS发送任务)。 **请求参数:** | 键 | 键名称 | 数据类型 | 长度 | 是否必填 | 备注 | | --------- | -------- | -------- | ---- | -------- | -------------------------- | | requestId | 请求编号 | string | 64 | Y | 同样的请求编号视为同一请求 | | vehicleNo | 载具编号 | string | 64 | Y | | | location | 位置 | string | 64 | Y | | | size | 尺寸 | int32 | | N | | | length | 长 | int32 | | N | 计量单位以现场为准 | | width | 宽 | int32 | | N | 计量单位以现场为准 | | height | 高 | int32 | | N | 计量单位以现场为准 | | weight | 重量 | int32 | | N | 计量单位以现场为准 | ```json { "requestId":"1122333", "vehicleNo":"TP0001", "location":"R1", "size":1, "length":200, "width":150, "height":30, "weight":20000 } ``` **响应参数:**(returnData) | 键 | 键名称 | 数据类型 | 长度 | 是否必填 | 备注 | | ----------- | ------------ | -------- | ---- | -------- | ------------------------------------------------------------ | | taskId | 任务号 | string | 64 | Y | | | taskGroup | 任务组 | string | 64 | N | | | taskType | 任务类型 | int32 | | Y | 枚举类型:
0 - 自动;
1 - 入库;
2 - 出库;
3 - 输送搬运;
9 - 移库;
自动任务请咨询我们后使用 | | vehicleNo | 载具编号 | string | 64 | Y | WCS系统以此处返回的生成任务,不以请求的载具号 | | origin | 起点 | string | 32 | Y | | | destination | 终点 | string | 32 | Y | | | priority | 优先级 | int32 | | N | 范围:0-9
默认优先级(不传时):5
数字越大优先级越高 | | size | 尺寸 | int32 | | N | 默认:0 | | weight | 重量 | int32 | | N | 默认:0 | | sysName | 上位系统名称 | string | 32 | N | 固定值,请联系我们获取,任意传将无法收到任务回告 | ```json { "code":200, "message":"SUCCESS", "returnData":{ "taskId":"123441123", "taskGroup":null, "taskType":0, "vehicle":"TP123", "origin":"R2", "destination":"A1-02-03-1", "priority":3, "size":1, "weight":344, "sysName":"WMS" } } ``` #### 2、上位系统向WCS推送仓储任务 > 客户端:`上位系统` > > 服务端:`wcs` > > 调用方式:POST > > 接口地址:/api/pub/task/addStockTask **使用说明:**上位系统调用此接口向WCS推送任务数据,任务号必须唯一,若任务号在WCS系统中已经存在则WCS会返回成功。 **请求参数:** | 键 | 键名称 | 数据类型 | 长度 | 是否必填 | 备注 | | ----------- | ------------ | -------- | ---- | -------- | ------------------------------------------------------------ | | taskId | 任务号 | string | 64 | Y | 任务唯一识别号 | | taskGroup | 任务组 | string | 64 | N | | | taskType | 任务类型 | int32 | | Y | 枚举类型:
0 - 自动;
1 - 入库;
2 - 出库;
3 - 输送搬运;
9 - 移库;
自动任务请咨询我们后使用 | | vehicleNo | 载具编号 | string | 64 | Y | WCS系统以此处返回的生成任务,不以请求的载具号 | | origin | 起点 | string | 32 | Y | | | destination | 终点 | string | 32 | Y | | | priority | 优先级 | int32 | | N | 范围:0-9
默认优先级(不传时):5
数字越大优先级越高 | | size | 尺寸 | int32 | | N | 默认:0 | | weight | 重量 | int32 | | N | 默认:0 | | sysName | 上位系统名称 | string | 32 | Y | 固定值,请联系我们获取,任意传将无法收到任务回告 | ```json { "taskId":"123441123", "taskGroup":null, "taskType":0, "vehicle":"TP123", "origin":"R2", "destination":"A1-02-03-1", "priority":3, "size":1, "weight":344, "sysName":"WMS" } ``` **响应参数:**统一响应 #### 3、*WCS上报仓储任务状态 > 客户端:`WCS` > > 服务端:`上位系统` > > 调用方式:POST > > 接口地址:上位系统提供 **使用说明:**WCS在任务的节点上报上位系统任务状态(只有最终任务状态会失败重试,如任务完成,任务取消等)。 **请求参数:** | 键 | 键名称 | 数据类型 | 长度 | 是否必填 | 备注 | | ----------- | -------- | -------- | ---- | -------- | ------------------------------------------------------------ | | taskId | 任务号 | string | 64 | Y | 上位系统下发的任务号 | | taskType | 任务类型 | int32 | | Y | 枚举类型:
0 - 自动;
1 - 入库;
2 - 出库;
3 - 输送搬运;
9 - 移库; | | taskStatus | 任务状态 | int32 | | Y | 枚举类型:
1 - 任务开始
2 - 任务完成
3 - 任务异常
4 - 任务取消
5 - 目的位置有货
6 - 起点无货 | | destination | 任务终点 | string | 64 | N | | | vehicleNo | 载具号 | string | 64 | Y | | | message | 信息 | string | 255 | N | | ```json { "taskId":"123777888", "taskType":1, "taskStatus":3, "destination":"A1-01-3", "vehicle":"TP0002", "message":"任务被设备取消" } ``` **响应参数:**统一响应 #### 4、上位系统查询仓储任务详情 > 客户端:`上位系统` > > 服务端:`wcs` > > 调用方式:GET > > 接口地址:/api/pub/task/queryStockTaskDetail **使用说明:**上位系统可调用此接口查询仓库任务信息,注意超出仓库保存时长的数据将无法查询 **请求参数:**url参数 | 键 | 键名称 | 数据类型 | 长度 | 是否必填 | 备注 | | ------ | ------ | -------- | ---- | -------- | -------------------- | | taskId | 任务号 | string | 64 | Y | 上位系统下发的任务号 | ```url http://{ip}:{port}?taskId={taskId} ``` **响应参数:**(returnData) | 键 | 键名称 | 数据类型 | 长度 | 是否必填 | 备注 | | ------------ | ------------ | -------- | ---- | -------- | ------------------------------------------------------------ | | taskId | 任务号 | string | 64 | Y | WCS系统任务号 | | taskGroup | 任务组 | string | 64 | Y | | | upperTaskId | 上位任务号 | string | 64 | Y | 请求的任务号 | | taskType | 任务类型 | int32 | | Y | 枚举类型:
0 - 自动;
1 - 入库;
2 - 出库;
3 - 输送搬运;
9 - 移库; | | origin | 起点 | string | 64 | N | | | destination | 终点 | string | 64 | N | | | taskStatus | 任务状态 | int32 | | Y | 枚举类型:
0 - 待执行;
1 - 排队中;
2 - 执行中;
3 - 已完成;
4 - 已取消;
5 - 任务异常;
6 - 任务超时; | | canCancel | 是否允许取消 | int32 | | Y | | | priority | 优先级 | int32 | | Y | | | vehicleNo | 载具号 | string | 64 | Y | | | vehicleSize | 载具尺寸 | int32 | | N | | | weight | 重量 | decimal | | N | | | startTime | 开始时间 | date | | Y | | | completeTime | 完成时间 | date | | N | 任务完成时间 | | endTime | 结束时间 | date | | N | 任务结束时间,包括完成或者取消 | | taskMsg | 任务信息 | string | 255 | N | | #### 5、上位系统要求取消仓储任务 > 客户端:`上位系统` > > 服务端:`wcs` > > 调用方式:DELETE > > 接口地址:/api/pub/task/cancelStockTask **使用说明:**上位系统可以在需要时取消已经下发的任务,WCS系统会综合判定是否允许取消 **请求参数:**url参数 | 键 | 键名称 | 数据类型 | 长度 | 是否必填 | 备注 | | ------ | ------ | -------- | ---- | -------- | -------------------- | | taskId | 任务号 | string | 64 | Y | 上位系统下发的任务号 | ```url http://{ip}:{port}?taskId={taskId} ``` **响应参数:**统一响应 #### 6、上位系统向WCS推送简单输送任务 > 客户端:`上位系统` > > 服务端:`wcs` > > 调用方式:POST > > 接口地址:/api/pub/task/addConveyTask **使用说明:** 简单输送任务一般表示为箱式线输送,即仅在关键点控制流向的任务,其余由设备自动输送 **请求参数:** | 键 | 键名称 | 数据类型 | 长度 | 是否必填 | 备注 | | --------- | ------------ | -------- | ---- | -------- | ------------------------------------------------------------ | | taskId | 任务号 | string | 64 | Y | 任务唯一识别号 | | taskGroup | 任务组 | string | 64 | N | | | taskType | 任务类型 | int32 | | Y | 枚举类型:
1 - 捡选任务;
2 - 复核任务;
3 - 发货任务;
9 - 补货任务; | | vehicleNo | 载具编号 | string | 64 | Y | | | orderId | 订单号 | string | 32 | N | | | location | 终点 | string | 32 | Y | | | size | 尺寸 | string | 32 | N | | | weight | 重量 | int32 | | N | 默认:0 | | length | 长 | int32 | | N | 默认:0 | | width | 宽 | int32 | | N | 默认:0 | | height | 高 | int32 | | N | 默认:0 | | sysName | 上位系统名称 | string | 32 | Y | 固定值,请联系我们获取,任意传将无法收到任务回告 | ```json { "taskId":"123", "taskGroup":"334455", "taskType":1, "vehicleNo":"T0003", "orderId":"009901", "location":"A01", "size":"-", "weight":200, "length":100, "weight":150, "height":120, "sysName":"WMS" } ``` **响应参数:**统一响应 #### 7、*WCS上报简单输送任务状态 > 客户端:`WCS` > > 服务端:`上位系统` > > 调用方式:POST > > 接口地址:上位系统提供 **使用说明:** WCS在简单输送任务关键节点时上报上位系统状态,如任务完成,任务超时,任务取消等 **请求参数:** | 键 | 键名称 | 数据类型 | 长度 | 是否必填 | 备注 | | -------------- | -------- | -------- | ---- | -------- | ------------------------------------------------------------ | | taskId | 任务号 | string | 64 | Y | 上位系统下发的任务号 | | taskType | 任务类型 | int32 | | Y | 枚举类型:
1 - 捡选任务;
2 - 复核任务;
3 - 发货任务;
4 - 补货任务; | | taskStatus | 任务状态 | int32 | | Y | 枚举类型:
1 - 箱子到达某一点位
2 - 箱子到达目的地
3 - 任务异常
4 - 任务取消 | | arriveLocation | 到达位置 | string | 64 | N | | | vehicleNo | 载具号 | string | 64 | Y | | | message | 信息 | string | 255 | N | | **响应参数:**统一响应 #### 8、上位系统给WCS推送电子标签任务 > 客户端:`上位系统` > > 服务端:`wcs` > > 调用方式:POST > > 接口地址:/api/pub/task/addEtagTask **使用说明:**WCS不会合并同货位的任务数量,如需合并捡选请合并后发送给WCS **请求参数:** | 键 | 键名称 | 数据类型 | 长度 | 是否必填 | 备注 | | ---------- | ------------ | -------- | ---- | -------- | ------------------------------------------------------------ | | taskGroup | 任务组 | string | 64 | N | | | taskType | 任务类型 | int | | Y | 枚举类型:
1 - 捡货
2 - 上架
3 - 盘点
4 - 清点
5 - 其他 | | vehicleNo | 载具号 | string | 64 | Y | | | lightModel | 点亮类型 | int | | N | 枚举类型:
1 - 立即点亮
2 - 等待触发
根据流程确定,请与我们交流方案,不传或传空视为立即点亮 | | sysName | 上位系统名称 | string | 32 | Y | 固定值,请联系我们获取,否则将无法收到任务回告 | | taskList | 任务数据 | list | | Y | | taskList:若任务中存在一个有问题,则所有任务都会判定失败 | 键 | 键名称 | 数据类型 | 长度 | 是否必填 | 备注 | | --------- | -------- | -------- | ---- | -------- | ------------------ | | taskId | 任务号 | string | 64 | Y | 唯一标识 | | orderId | 订单号 | string | 64 | N | 备选字段 | | location | 点位 | string | 64 | Y | 需要点亮的点位 | | goodsId | 物料编号 | string | 64 | N | 中文标签时可能需要 | | goodsName | 物料名称 | string | 64 | N | 中文标签时可能需要 | | lightNum | 点亮数量 | int | | Y | 点亮的数量 | **请求示例:** ```json { "taskGroup":"2223336678", "taskType":1, "vehicleNo":"11220099", "lightModel":1, "sysName":"WMS", "taskList":[ { "taskId":"12434543", "orderId":"889088", "location":"A02-99-12", "goodsId":"449802", "goodsName":"饮用水", "lightNum":13 } ] } ``` **响应参数:**统一响应 #### 9、*WCS上报电子标签任务完成 > 客户端:`WCS` > > 服务端:`上位系统` > > 调用方式:POST > > 接口地址:上位系统提供 **请求参数:** | 键 | 键名称 | 数据类型 | 长度 | 是否必填 | 备注 | | ------------- | ---------- | -------- | ---- | -------- | ---------------- | | taskId | 任务号 | string | 64 | Y | 上位发来的任务号 | | confirmNum | 确认的数量 | int | | Y | | | confirmPerson | 确认人 | string | | N | | **响应参数:**统一响应