Pull Scan业务描述
当3PL根据联想VMI系统的pull料指令,将物料打包发运后,对于物权从3PL转移到制造WIP的物料,3PL通过By MO或者By Pull发货汇总的形式将预收货信息发给VMI系统。当物料到达联想WIP后,联想制造团队使用PDA进行扫描收货。VMI系统收到PDA扫描信号后,将S4库存转移到线边。
1.1 版本记录
本文档记录发货汇总和扫描相关的内容,海晨和联晟发送发货汇总,PDA或者AGV进行扫描过账
版本 | 时间 | 内容 | 变更人 |
---|---|---|---|
v1.0 | 2022-06-06 | 将发货汇总扫描收货相关接口独立出来,第一版 | lingcq1 |
v1.1 | 2022-06-22 | 增加海康带校验的实时扫描接口,增加label样式, 增加扫描接口的primary key | lingcq1 |
1.2 公共参数
参数位置 | 参数名称 | 描述 | 示例 |
---|---|---|---|
body | palletId | LESHINE: LES00+时间戳(10位)+1位随机数 ; HIC: 9S9VV+时间戳(10位)+1位随机数 | |
body | planId | LESHINE: N/A HIC:S开头是MO维度的数据,其他是PULL维度数据 | |
body | shipToId | 逻辑工厂L220 | |
body | workshopCode | 业务标识, 南方厂BOX: LSSC; 南方厂SMT: LSSC-SMT, 不填则默认为LSSC |
1.3 By MO 发货汇总接口
使用场景: 实时接口, 3号暂存不上kitting架的部分,by MO进行汇总过账
使用者: HIC
Method:POST
ContentType: application/json
请求说明
参数位置 | 参数名称 | 参数类型 | 描述 | unique key | necessary | 示例 |
---|---|---|---|---|---|---|
body | palletId | string | 唯一标识,一旦成功进入VMI后,不能重复使用。联晟: LES00+时间戳(10位)+1位随机数 ; HIC: 9S9VV+时间戳(10位)+1位随机数 | Y | Y | --- |
body | planId | string | S22222, N/A | Y | ||
body | sourceSystem | string | HIC | Y | ||
body | targetSystem | string | VMI | Y | ||
body | systemTime | string | Y | |||
body | shipToId | string | L220 | Y | ||
body | workshopCode | string | LSSC 或者LSSC-SMT, 不填则默认为LSSC | Y | ||
body | dataType | string | 默认值: MO_DELIVERY | Y | ||
body | loadinglistNo | string | 装单号 | |||
body | shipTotalQty | string | 发货总数量 | |||
body | shipPlanTime | string | 业务计划出库过账时间 | |||
body | deliveryNo | string | 出库单号 | Y | Y | |
body | deliveryLineNo | string | 出库单行号 | Y | Y | |
body | productionOrdId | string | production order | Y | Y | |
body | itemId | string | Y | Y | ||
body | sourceType | string | Y | |||
body | sourceStorageLocation | string | Y | |||
body | sourceBin | string | Y | |||
body | destType | string | Y | |||
body | destStorageLocation | string | Y | |||
body | destBin | string | Y | |||
body | quantity | NUMBER | mo, item的总数 | Y | ||
body | palletQty | NUMBER | pallet上mo, item的数量 | Y | ||
接口请求示例
json
{
"palletId":"P1",
"planId":"Sdddd",
"sourceSystem":"HIC/LESHINE",
"targetSystem":"VMI",
"systemTime":"2022-02-21 09:41:15",
"shipToId":"L220",
"workshopCode": "LSSC", //如果是南方厂BOX,填LSSC, 如果是MST, 填LSSC-SMT
"dataType":"MO_DELIVERY",
"loadinglistNo":"HICLL2202210001", //装单号
"shipTotalQty":168, //发货总数量
"shipPlanTime":"2022-02-21 09:41:15", //业务计划出库过账时间
"data":[
{
"deliveryNo":"HICDEV2202210001", //出库单号
"deliveryLineNo":"000010", //出库单行号
"productionOrdId":"sss",
"itemId":"P104329",
"sourceStorageLocation":"PL123316",
"sourceBin":"PL123316",
"sourceType":"PL123316",
"destStorageLocation": "MW02",
"destType": "W02",
"destBin": "KIT",
"quantity": 2, //mo, item的总数, 满足总数以后汇总过账
"palletQty": 1 //pallet quantiy
}
]
}
返回说明
参数位置 | 参数名称 | 是否必填/不为空 | 参数类型 | 参数格式 | 描述 | 示例 |
---|---|---|---|---|---|---|
body | result.palletId | Y | string | 对应的拍号 | ||
body | result.loadinglistNo | Y | string | 新增装单号 |
接口返回示例
json
//校验成功code=0,非0都是失败
{
"code":"0",
"msg":"success",
"result":{
"loadinglistNo":"HICLL2202210001", //装单号
"palletId":"P1"
}
}
//code=-1, 校验异常,需要重新校验
{
"code":"-1",
"msg":"程序异常",
"result":{
"loadinglistNo":"HICLL2202210001", //装单号
"palletId":"P1"
}
}
//校验失败code=-2,数据有问题
{
"code":"-2",
"msg":"productionOrdId itemId quantity invalid/pallet already processed",
"result":{
"loadinglistNo":"HICLL2202210001", //装单号
"palletId":"P1"
}
}
1.4 By Pull 发货汇总接口
使用场景: 3号gr kanban, 外箱发货非保机箱, 包材
使用者: HIC & LESHINE
Method:POST
ContentType: application/json
请求说明
参数位置 | 参数名称 | 参数类型 | 描述 | unique key | necessary | 示例 |
---|---|---|---|---|---|---|
body | palletId | string | 唯一标识,一旦成功进入VMI后,不能重复使用。联晟: LES00+时间戳(10位)+1位随机数 ; HIC: 9S9VV+时间戳(10位)+1位随机数 | Y | Y | |
body | planId | string | S22222, N/A | Y | ||
body | sourceSystem | string | HIC, LESHINE | Y | ||
body | targetSystem | string | VMI | Y | ||
body | systemTime | string | Y | |||
body | shipToId | string | L220 | Y | ||
body | workshopCode | string | LSSC 或者LSSC-SMT, 不填则默认LSSC | Y | ||
body | dataType | string | 默认值:PULL_DELIVERY | |||
body | loadinglistNo | string | 装单号 | |||
body | shipTotalQty | string | 发货总数量 | |||
body | shipPlanTime | string | 业务计划出库过账时间 | |||
body | pullId | string | Y | Y | ||
body | pullLineId | string | Y | Y | ||
body | itemId | string | ||||
body | palletQty | number | pull在这一pallet的quantity | |||
body | quantity | NUMBER | pull的总quantity, 允许超发 | |||
接口请求示例
json
{
"palletId":"P1",
"planId":"Sdddd",
"sourceSystem":"HIC/LESHINE",
"targetSystem":"VMI",
"systemTime":"2022-02-21 09:41:15",
"shipToId":"L220",
"workshopCode": "LSSC", //如果是南方厂BOX,填LSSC, 如果是MST, 填LSSC-SMT
"dataType": "PULL_DELIVERY",
"loadinglistNo":"HICLL2202210001", //装单号
"shipTotalQty":168, //发货总数量
"shipPlanTime":"2022-02-21 09:41:15", //业务计划出库过账时间
"data":[
{
"pullId": "4500375969",
"pullLineId": "1000037984",
"itemId": "000000A36941",
"quantity": 1,
"palletQty": 1
}
]
}
接口返回参数
参数位置 | 参数名称 | 是否必填/不为空 | 参数类型 | 参数格式 | 描述 | 示例 |
---|---|---|---|---|---|---|
body | result.palletId | Y | string | 对应的拍号 | ||
body | result.loadinglistNo | Y | string | 装单号 |
接口返回示例
json
//校验成功code=0,非0都是失败
{
"code":"0",
"msg":"success",
"result":{
"loadinglistNo":"HICLL2202210001", //装单号
"palletId":"P1"
}
}
//code=-1校验异常,需要重新校验
{
"code":"-1",
"msg":"程序异常",
"result":{
"loadinglistNo":"HICLL2202210001", //装单号
"palletId":"P1"
}
}
//校验失败code=-2, 数据有问题
{
"code":"-2",
"msg":"productionOrdId itemId quantity invalid/pallet already processed",
"result":{
"loadinglistNo":"HICLL2202210001", //装单号
"palletId":"P1"
}
}
1.5 扫描收货接口
1.5.1 扫描收货接口FOR PDA
Description: 实时接口, FOR PAD(除去非保机箱),收到数据则落库,落库成功则返回。
Method:POST
使用者: PDA
ContentType: application/json
请求说明
参数位置 | 参数名称 | necessary | 参数类型 | 描述 | primary key |
---|---|---|---|---|---|
body | palletId | Y | string | 对应的拍号 | Y |
body | planId | Y | string | ||
body | productionLine | Y | string | 产线 | |
body | sourceSystem | Y | string | PDA或者是HIK | |
body | targetSystem | Y | string | VMI | |
body | shipToId | Y | string | 工厂 | |
body | workshopCode | Y | string | 默认是LSSC, 如果是SMT, 则为LSSC-SMT | |
body | systemTime | Y | string | 设备时间或者扫描时间 | |
body | deviceId | Y | string | 设备标识 | |
body | userId | Y | string | 扫描操作员 | |
body | item | Y | string | 物料号 | Y |
body | quantity | Y | string | 该物料在这一拍上的总数 | |
接口请求示例
{
"palletId":"9S9VL16545869971",
"planId":"S-OPT-L6-1-1-2022060700003",
"productionLine":"S-OPT-L6",
"sourceSystem":"HIK/PDA", // 请对应的填写,VMI系统需要确认数据来源
"targetSystem":"VMI",
"shipToId":"L220",
"workshopCode":"LSSC",
"systemTime":"2022-03-03 12:00:11",
"deviceId":"26A853C7E84BF3C38A5099186A780A487",
"userId":"ABC",
"data":[
{
"itemId":"P104329",
"quantity":10
},
{
"itemId":"P104328",
"quantity":100
}
]
}
接口返回参数
参数位置 | 参数名称 | 是否必填/不为空 | 参数类型 | 参数格式 | 描述 | 示例 |
---|---|---|---|---|---|---|
body | code | Y | string | 0标识接收成功,非0标识接收失败 | ||
body | msg | Y | string | 成功或者失败的描述 |
接口返回示例
json
//接收成功code=0 msg中有具体的接收信息
{
"code":"0",
"msg":"success"
}
//程序异常code!=0,网络异常或者程序异常
{
"code":"-1",
"msg":"程序异常"
}
1.5.2 扫描带校验收货接口FOR HIK
Description: 实时接口, FOR HIK, 非保机箱部分,收到数据跟发货汇总进行对比,比对成功落库,比对失败则实时返回失败原因,HIK不能将这个pallet入库。
使用者:HIK(AGV)
请求说明:见1.5.1
请求示例:见1.5.1
接口返回参数: 见1.5.1
接口返回示例
json
//接收成功code=0 msg中有具体的接收信息
{
"code":"0",
"msg":"success"
}
//程序异常code!=0,网络异常,程序异常, 校验失败(包括重复,格式不正确,跟发货汇总对不上 )
{
"code":"-1",
"msg":"Exception/pallet重复提交/与发货汇总比对失败"
}
1.6 label格式
label字段 | 联晟 | HIC | 备注 |
---|---|---|---|
Pallet id | LES00+时间戳(10位)+1位随机数 | 9S9VV+时间戳(10位)+1位随机数 | 长度16位,VV,VL仓库位置 |
Plan id | N/A | kanban,非保机箱放pull id, 其他物料是KITTING的切片计划(S开头的Plan id) | VMI****通过N/A值判断是联晟数据,其余都是HIC数据:S开头是MO维度的数据,其他是PULL维度数据 |
Line id | 物理合并线体S-NB(包材)或者逻辑线体S-NB-L6-01(光盘说明书) | 物理线体S-NB-L6(直送) 或者是逻辑线体S-NB-L6-01(3号暂存-1号) | |
Plant id | L220 | L220 | |
P/N | SP10G08418 | SBB1A11341 | |
QTY | 100 | QTY | |
BOX ID | BOX ID:1. 100等数字开头是VENDOR来料箱标签(供应商提供); 2. 6S6VV(16位)是HIC自己生成 标签带BOX ID, 二维码不要带BOX ID | 制造不需要box id,二维码不要带BOX ID,label是否带待定。每个part需要汇总数量成1行。1****个pallet 不超过10个part。 |
label格式要求 | 6个字段用分号隔开, PN数量中间用逗号隔开 | |
---|---|---|
label sample | Les2022053001A010000000000001;N/A;S-NB-L6;L220;PNA,100;PNB,200;PNC,300; | |
PDA需要格式如上,然后需要转换成VMI需要的格式,所有字母和标点符号都是英文格式 |