| | |
| | | using Model.InterFaceModel; |
| | | using SqlSugar; |
| | | using Newtonsoft.Json; |
| | | using System; |
| | | using System.Collections.Generic; |
| | | using System.Text; |
| | | using ZXing; |
| | | using static Model.InterFaceModel.RCSModel; |
| | | using WMS.Entity.Context; |
| | | using WMS.Entity.SysEntity; |
| | | |
| | | namespace Utility.Tools |
| | | { |
| | | public static class RcsHelper |
| | | { |
| | | private static readonly SqlSugarScope Db = DataContext.Db; |
| | | /// <summary> |
| | | /// 下发任务 |
| | | /// </summary> |
| | |
| | | public static bool CreateTaskForAgv(TaskDetial taskDetial, string url, out string agvMsg, string priority = null) |
| | | { |
| | | bool result = false; |
| | | var tasktype = "F12"; |
| | | |
| | | //跨楼层任务tasktype值赋值…… |
| | | //tasktype = ""; |
| | | |
| | | List<targetRoute> pahtList = new List<targetRoute>(); |
| | | //起始位置 |
| | | targetRoute royte1 = new targetRoute(); |
| | | royte1.seq = 0; |
| | | royte1.type = "ZONE"; |
| | | royte1.type = "SITE"; |
| | | royte1.code = taskDetial.Startport; |
| | | |
| | | pahtList.Add(royte1); |
| | |
| | | //目标位置 |
| | | targetRoute royte2 = new targetRoute(); |
| | | royte2.seq = 0; |
| | | royte2.type = "ZONE"; |
| | | royte2.type = "SITE"; |
| | | royte2.code = taskDetial.Endport; |
| | | |
| | | pahtList.Add(royte2); |
| | | |
| | | AgvCreateTaskModel taskModel = new AgvCreateTaskModel(); |
| | | taskModel.taskType = "PF-LMR-COMMON"; |
| | | taskModel.taskType = tasktype; |
| | | taskModel.targetRoute = pahtList; |
| | | |
| | | //AGV任务下发时增加hearder:X-LR-REQUEST-ID,值为随机数 |
| | | long ran = DateTime.Now.Ticks; |
| | | Dictionary<string, string> key = new Dictionary<string, string>(); |
| | | key.Add("X-LR-REQUEST-ID", ran.ToString()); |
| | | |
| | | // 正式运行程序放开 |
| | | var jsonData = JsonConvert.SerializeObject(taskModel); |
| | | string response = HttpHelper.DoPost(url, jsonData, "下发给AGV转运命令", "AGV"); |
| | | string response = HttpHelper.DoPost(url, jsonData, "下发给AGV转运命令", "AGV", key); |
| | | //解析返回数据 |
| | | var agvModel = JsonConvert.DeserializeObject<OutCommanAgvDto>(response); |
| | | if (agvModel.Code == "0") |
| | |
| | | |
| | | return result; |
| | | } |
| | | /// <summary> |
| | | /// 下发AGV绑定载具和站点 |
| | | /// </summary> |
| | | /// <param name="palletNo">桶号L</param> |
| | | /// <param name="url">请求地址</param> |
| | | /// <param name="agvMsg">返回信息</param> |
| | | /// <param name="locateNo">返回信息</param> |
| | | /// <returns></returns> |
| | | public static bool BindPalletAndSite(string palletNo,string locateNo,string url,out string agvMsg) |
| | | { |
| | | |
| | | bool result = false; |
| | | carrierInfo carrierInfo = new carrierInfo(); |
| | | carrierInfo.carrierCode = palletNo; |
| | | carrierInfo.siteCode = locateNo; |
| | | |
| | | //AGV任务下发时增加hearder:X-LR-REQUEST-ID,值为随机数 |
| | | long ran = DateTime.Now.Ticks; |
| | | Dictionary<string, string> key = new Dictionary<string, string>(); |
| | | key.Add("X-LR-REQUEST-ID", ran.ToString()); |
| | | |
| | | // 正式运行程序放开 |
| | | var jsonData = JsonConvert.SerializeObject(carrierInfo); |
| | | string response = HttpHelper.DoPost(url, jsonData, "下发给AGV绑定载具命令", "AGV", key); |
| | | //解析返回数据 |
| | | var agvModel = JsonConvert.DeserializeObject<OutCommanAgvDto>(response); |
| | | if (agvModel.Code == "0") |
| | | { |
| | | result = true;//给下车下发任务成功 |
| | | |
| | | agvMsg = ""; |
| | | } |
| | | else |
| | | { |
| | | var logStr = $@".\log\AGV\下发给AGV绑定载具命令" + DateTime.Now.ToString("yyyyMMdd") + ".txt"; |
| | | LogFile.SaveLogToFile($"下发给AGV绑定载具命令异常:( {agvModel.Message} ),", logStr); |
| | | |
| | | agvMsg = agvModel.Message; |
| | | } |
| | | |
| | | return result; |
| | | } |
| | | |
| | | /// <summary> |
| | | /// 下发AGV解绑载具和站点 |
| | | /// </summary> |
| | | /// <param name="palletType">容器类型1:400L,2:800/1000L</param> |
| | | /// <param name="url">请求地址</param> |
| | | /// <param name="agvMsg">返回信息</param> |
| | | /// <param name="locateNo">返回信息</param> |
| | | /// <returns></returns> |
| | | public static bool UnBindPalletAndSite(string palletType, string locateNo,string url, out string agvMsg) |
| | | { |
| | | bool result = false; |
| | | carrierInfo carrierInfo = new carrierInfo(); |
| | | carrierInfo.carrierCode = palletType; |
| | | carrierInfo.siteCode = locateNo; |
| | | |
| | | //AGV任务下发时增加hearder:X-LR-REQUEST-ID,值为随机数 |
| | | long ran = DateTime.Now.Ticks; |
| | | Dictionary<string, string> key = new Dictionary<string, string>(); |
| | | key.Add("X-LR-REQUEST-ID", ran.ToString()); |
| | | |
| | | // 正式运行程序放开 |
| | | var jsonData = JsonConvert.SerializeObject(carrierInfo); |
| | | string response = HttpHelper.DoPost(url, jsonData, "下发给AGV绑定载具命令", "AGV", key); |
| | | //解析返回数据 |
| | | var agvModel = JsonConvert.DeserializeObject<OutCommanAgvDto>(response); |
| | | if (agvModel.Code == "0") |
| | | { |
| | | result = true;//给下车下发任务成功 |
| | | |
| | | agvMsg = ""; |
| | | } |
| | | else |
| | | { |
| | | var logStr = $@".\log\AGV\下发给AGV解绑载具命令" + DateTime.Now.ToString("yyyyMMdd") + ".txt"; |
| | | LogFile.SaveLogToFile($"下发给AGV解绑载具命令异常:( {agvModel.Message} ),", logStr); |
| | | |
| | | agvMsg = agvModel.Message; |
| | | } |
| | | |
| | | return result; |
| | | } |
| | | } |
| | | } |