var soap = require("soap"); // 一、立库堆垛机 const srm = { common: {}, // 发送立库堆垛机取放货任务 sendSrmTask(srmId, taskId, sourcePlace, toPlace, pallet) { return new Promise((resolve, reject) => { const url = `/api/wcf/entry`; const params = { type: "srm", // 设备类型:tran=立库输送机,srm=立库堆垛机,rgv=RGV method: "sendSrmTask", // 方法名称 // 参数 params: { srmId: srmId, taskId: taskId, sourcePlace: sourcePlace, toPlace: toPlace, pallet: pallet } }; this.common.ajax(url, params, res => { resolve(res); }); }); }, // 发送立库堆垛机移动任务,参数:srmId 堆垛机编号、taskId 任务号,toPlace 移动目标点) // 返回值:1 发送成功、0、发送失败、2、其它问题 sendSrmMove(srmId, taskId, sourcePlace, toPlace) { return new Promise((resolve, reject) => { var args = { srmId: srmId, taskId: taskId, sourcePlace: sourcePlace, toPlace: toPlace }; soap.createClient(this.url, (err, client) => { if (err) { console.log(err); } if (!client.SendSrmMove) { reject(new Error("WebService SendSrmMove 未定义")); return; } client.SendSrmMove(args, (err, result) => { if (!err) { resolve(result); } }); }); }); }, // 发送立库堆垛机急停,参数:srmId 堆垛机编号 sendSrmEStop(srmId) { return new Promise((resolve, reject) => { var args = { srmId: srmId }; soap.createClient(this.url, (err, client) => { if (err) { console.log(err); } if (!client.SendSrmEStop) { reject(new Error("WebService SendSrmEStop 未定义")); return; } client.SendSrmEStop(args, (err, result) => { if (!err) { resolve(result); } }); }); }); }, // 发送立库堆垛机解警,参数:srmId 堆垛机编号 srmRlsAlert(srmId) { return new Promise((resolve, reject) => { var args = { srmId: srmId }; soap.createClient(this.url, (err, client) => { if (err) { console.log(err); } if (!client.SrmRlsAlert) { reject(new Error("WebService SrmRlsAlert 未定义")); return; } client.SrmRlsAlert(args, (err, result) => { if (!err) { resolve(result); } }); }); }); }, // 发送立库堆垛机任务删除,参数:srmId 堆垛机编号 sendSrmDelete(srmId) { return new Promise((resolve, reject) => { var args = { srmId: srmId }; soap.createClient(this.url, (err, client) => { if (err) { console.log(err); } if (!client.SendSrmDelete) { reject(new Error("WebService SendSrmDelete 未定义")); return; } client.SendSrmDelete(args, (err, result) => { if (!err) { resolve(result); } }); }); }); }, // 根据SrmEntity 数据结构获取当前设备号对应的设备信息 getSrmInfo(srmId) { srmId = Number(srmId); return new Promise((resolve, reject) => { const url = `/api/wcf/entry`; const params = { type: "srm", // 设备类型:tran=立库输送机,srm=立库堆垛机,rgv=RGV method: "getSrmInfo", // 方法名称 // 参数 params: { srmId: srmId } }; this.common.ajax(url, params, res => { resolve(res); }); }); }, // 根据设备号,查询任务是否完成 参数:srmId,堆垛机号 isTaskFinish(srmId) { return new Promise((resolve, reject) => { const url = `/api/wcf/entry`; const params = { type: "srm", // 设备类型:tran=立库输送机,srm=立库堆垛机,rgv=RGV method: "isTaskFinish", // 方法名称 // 参数 params: { srmId: srmId } }; this.common.ajax(url, params, res => { resolve(res); }); }); }, // 根据设备号,查询任务是否完成 参数:srmId,堆垛机号 sendSrmTaskFinishConfirm(srmId) { return new Promise((resolve, reject) => { const url = `/api/wcf/entry`; const params = { type: "srm", // 设备类型:tran=立库输送机,srm=立库堆垛机,rgv=RGV method: "sendSrmTaskFinishConfirm", // 方法名称 // 参数 params: { srmId: srmId } }; this.common.ajax(url, params, res => { resolve(res); }); }); }, // 根据设备号,获取设备是否准备就绪并可执行新任务 isReady(srmId) { return new Promise((resolve, reject) => { const url = `/api/wcf/entry`; const params = { type: "srm", // 设备类型:tran=立库输送机,srm=立库堆垛机,rgv=RGV method: "isReady", // 方法名称 // 参数 params: { srmId: srmId } }; this.common.ajax(url, params, res => { resolve(res); }); }); } }; // 二、立库输送机 const tran = { common: {}, // 根据TransEntity 数据结构获取当前设备号对应的设备信息 getSrmConveyorStationInfo(transPlaceId) { return new Promise((resolve, reject) => { const url = `/api/wcf/entry`; const params = { type: "tran", // 设备类型:tran=立库输送机,srm=立库堆垛机,rgv=RGV method: "getSrmConveyorStationInfo", // 方法名称 // 参数 params: { transPlaceId: transPlaceId } }; this.common.ajax(url, params, res => { resolve(res); }); }); }, // 发送重量确认 sendWeightOk(transId, isOk) { return new Promise((resolve, reject) => { var args = { transId: transId, isOk: isOk }; soap.createClient(this.url, (err, client) => { if (err) { console.log(err); } if (!client.SendWeightOk) { reject(new Error("WebService SendWeightOk 未定义")); return; } client.SendWeightOk(args, (err, result) => { if (!err) { resolve(result); } }); }); }); }, // 发送货物尺寸的理论数据 sendGoodsSize(transId, length, width, height) { return new Promise((resolve, reject) => { const url = `/api/wcf/entry`; const params = { type: "tran", // 设备类型:tran=立库输送机,srm=立库堆垛机,rgv=RGV method: "sendGoodsSize", // 方法名称 // 参数 params: { transId: transId, length: length, width: width, height: height } }; this.common.ajax(url, params, async res => { resolve(res); }); }); }, // 通知输送线进料 sendGoodsReady(startId, endId, taskId) { return new Promise((resolve, reject) => { const url = `/api/wcf/entry`; const params = { type: "tran", // 设备类型:tran=立库输送机,srm=立库堆垛机,rgv=RGV method: "sendGoodsReady", // 方法名称 // 参数 params: { startId: startId, endId: endId, taskId: taskId } }; this.common.ajax(url, params, async res => { resolve(res); }); }); }, // 根据设备号,查询货物重量 getGoodsWeight(transId) { return new Promise((resolve, reject) => { const url = `/api/wcf/entry`; const params = { type: "tran", // 设备类型:tran=立库输送机,srm=立库堆垛机,rgv=RGV method: "getGoodsWeight", // 方法名称 // 参数 params: { transId: transId } }; this.common.ajax(url, params, async res => { resolve(res); }); }); }, // 根据设备号,查询货物条码 GetGoodsBarcode(transId) { return new Promise((resolve, reject) => { var args = { transId: transId }; soap.createClient(this.url, (err, client) => { if (err) { console.log(err); } if (!client.GetGoodsBarcode) { reject(new Error("WebService GetGoodsBarcode 未定义")); return; } client.GetGoodsBarcode(args, (err, result) => { if (!err) { resolve(result); } }); }); }); }, // 根据设备号,查询货物外观是否合格 isPassed(transId) { return new Promise((resolve, reject) => { const url = `/api/wcf/entry`; const params = { type: "tran", // 设备类型:tran=立库输送机,srm=立库堆垛机,rgv=RGV method: "isPassed", // 方法名称 // 参数 params: { transId: transId } }; this.common.ajax(url, params, async res => { resolve(res); }); }); } }; // 三、RGV const rgv = { common: {}, isRgvReady(rgvId) { return new Promise((resolve, reject) => { const url = `/api/wcf/entry`; const params = { type: "rgv", // 设备类型:tran=立库输送机,srm=立库堆垛机,rgv=RGV method: "isRgvReady", // 方法名称 // 参数 params: { rgvId: rgvId } }; this.common.ajax(url, params, res => { resolve(res); }); }); }, // 发送RGV任务,参数:deviceId RGV编号、taskId 任务号、sourcePlce 起始位置编号、toPlace 目的位置编号,barcode 料车条码,taskType 指令码) // PS:指令码:1,取放货 2,移动 // 返回值:1 发送成功、0、发送失败、2、其它问题 sendRgvTask(deviceId, taskId, sourcePlace, toPlace, taskType) { return new Promise((resolve, reject) => { const url = `/api/wcf/entry`; const params = { type: "rgv", // 设备类型:tran=立库输送机,srm=立库堆垛机,rgv=RGV method: "sendRgvTask", // 方法名称 // 参数 params: { deviceId, taskId, sourcePlace, toPlace, taskType } }; this.common.ajax(url, params, res => { resolve(res); }); }); }, // 发送立库Rgv任务删除,参数:rgvId--Rgv编号,taskId--任务号) sendRgvDelete(srmId) { return new Promise((resolve, reject) => { var args = { srmId: srmId }; soap.createClient(this.url, (err, client) => { if (err) { console.log(err); } if (!client.SendRgvDelete) { reject(new Error("WebService SendRgvDelete 未定义")); return; } client.SendRgvDelete(args, (err, result) => { if (!err) { resolve(result); } }); }); }); }, // 发送立库Rgv解警,参数:rgvId--Rgv编号) sendRgvRlsAlert(srmId) { return new Promise((resolve, reject) => { var args = { srmId: srmId }; soap.createClient(this.url, (err, client) => { if (err) { console.log(err); } if (!client.SendRgvRlsAlert) { reject(new Error("WebService SendRgvRlsAlert 未定义")); return; } client.SendRgvRlsAlert(args, (err, result) => { if (!err) { resolve(result); } }); }); }); }, // 根据RgvEntity 数据结构获取当前设备号对应的设备信息 getRgvInfo(rgvId) { return new Promise((resolve, reject) => { const url = `/api/wcf/entry`; const params = { type: "rgv", // 设备类型:tran=立库输送机,srm=立库堆垛机,rgv=RGV method: "getRgvInfo", // 方法名称 // 参数 params: { rgvId: rgvId } }; this.common.ajax(url, params, async res => { resolve(res.data); }); }); }, // 当前入库口RGV是否可用:是否可用由WMS的设备管理中读取对应入库口的RGV的是否可用为“是”的 async getRgvEnable(rgvId) { return new Promise((resolve, reject) => { const url = "/api/wcs/getRgvInfo"; const params = { rgvId: rgvId }; this.common.ajax( url, params, async res => { this.log(res.msg); if (res.result) { resolve(res.data.enable === 1); } else { resolve(false); } }, true ); }); }, // 根据任务号获取任务是否完成 isTaskFinish(rgvId) { return new Promise((resolve, reject) => { const url = `/api/wcf/entry`; const params = { type: "rgv", // 设备类型:tran=立库输送机,srm=立库堆垛机,rgv=RGV method: "isTaskFinish", // 方法名称 // 参数 params: { rgvId } }; this.common.ajax(url, params, res => { resolve(res); }); }); }, // 发送Rgv任务完成确认,参数:rgvId--Rgv编号) sendRgvFinishConfirm(rgvId) { return new Promise((resolve, reject) => { const url = `/api/wcf/entry`; const params = { type: "rgv", // 设备类型:tran=立库输送机,srm=立库堆垛机,rgv=RGV method: "sendRgvFinishConfirm", // 方法名称 // 参数 params: { rgvId } }; this.common.ajax(url, params, res => { resolve(res); }); }); } }; export { srm, tran, rgv };