| | |
| | | "Type": "ClassCode", |
| | | "Level": "Item", |
| | | "Statement": "public class Settings", |
| | | "EditCode": "\t\tpublic static bool FirstG {get;set;}=false;\r\n public static string HostToAgvServerUrl { get; set; }\r\n \r\n public static List<deviceInfo> deviceInfos { get; set; } = new List<deviceInfo>();\r\n public static string HKbaseUrl { get; set; }\r\n public static readonly HttpHelper apiHelper = new HttpHelper();\r\n \r\n public static string GetTimeStamp(DateTime? time = null)\r\n\t\t{\r\n\t\t TimeSpan ts = DateTime.UtcNow - (time ?? new DateTime(1970, 1, 1, 0, 0, 0, 0));\r\n\t\t return Convert.ToInt64(ts.TotalMilliseconds).ToString();\r\n\t\t}", |
| | | "Code": "public class Settings\r\n{\t\tpublic static bool FirstG {get;set;}=false;\r\n public static string HostToAgvServerUrl { get; set; }\r\n \r\n public static List<deviceInfo> deviceInfos { get; set; } = new List<deviceInfo>();\r\n public static string HKbaseUrl { get; set; }\r\n public static readonly HttpHelper apiHelper = new HttpHelper();\r\n \r\n public static string GetTimeStamp(DateTime? time = null)\r\n\t\t{\r\n\t\t TimeSpan ts = DateTime.UtcNow - (time ?? new DateTime(1970, 1, 1, 0, 0, 0, 0));\r\n\t\t return Convert.ToInt64(ts.TotalMilliseconds).ToString();\r\n\t\t}\r\n}", |
| | | "EditCode": "\t\tpublic static bool FirstG {get;set;}=false;\r\n public static string HostToAgvServerUrl { get; set; }\r\n \r\n public static List<deviceInfo> deviceInfos { get; set; } = new List<deviceInfo>();\r\n public static string HKbaseUrl { get; set; }\r\n public static string MESbaseUrl { get; set; }\r\n public static string WMSbaseUrl { get; set; }\r\n public static readonly HttpHelper apiHelper = new HttpHelper();\r\n \r\n public static string GetTimeStamp(DateTime? time = null)\r\n\t\t{\r\n\t\t TimeSpan ts = DateTime.UtcNow - (time ?? new DateTime(1970, 1, 1, 0, 0, 0, 0));\r\n\t\t return Convert.ToInt64(ts.TotalMilliseconds).ToString();\r\n\t\t}", |
| | | "Code": "public class Settings\r\n{\t\tpublic static bool FirstG {get;set;}=false;\r\n public static string HostToAgvServerUrl { get; set; }\r\n \r\n public static List<deviceInfo> deviceInfos { get; set; } = new List<deviceInfo>();\r\n public static string HKbaseUrl { get; set; }\r\n public static string MESbaseUrl { get; set; }\r\n public static string WMSbaseUrl { get; set; }\r\n public static readonly HttpHelper apiHelper = new HttpHelper();\r\n \r\n public static string GetTimeStamp(DateTime? time = null)\r\n\t\t{\r\n\t\t TimeSpan ts = DateTime.UtcNow - (time ?? new DateTime(1970, 1, 1, 0, 0, 0, 0));\r\n\t\t return Convert.ToInt64(ts.TotalMilliseconds).ToString();\r\n\t\t}\r\n}", |
| | | "CusMethod": { |
| | | "Name": "", |
| | | "Params": [], |
| | |
| | | "Type": "MethodCode", |
| | | "Level": "Item", |
| | | "Statement": "public void SettingInit()", |
| | | "EditCode": "try\r\n{\r\n var jsonFile = System.AppDomain.CurrentDomain.BaseDirectory + \"/Static/config.json\";\r\n using (System.IO.StreamReader file = System.IO.File.OpenText(jsonFile))\r\n {\r\n using (JsonTextReader reader = new JsonTextReader(file))\r\n {\r\n JObject o = (JObject)JToken.ReadFrom(reader);\r\n foreach (Newtonsoft.Json.Linq.JProperty keyValue in o.Properties())\r\n {\r\n Console.WriteLine(keyValue.Name);\r\n if (keyValue.Name == \"HostToAgvServerUrl\")\r\n {\r\n Settings.HostToAgvServerUrl = keyValue.Value.ToString();\r\n }\r\n if (keyValue.Name == \"deviceInfo\") {\r\n Settings.deviceInfos = JsonConvert.DeserializeObject<List<deviceInfo>>(keyValue.Value.ToString());\r\n }\r\n if (keyValue.Name == \"HKbaseUrl\") {\r\n Settings.HKbaseUrl = keyValue.Value.ToString();\r\n }\r\n }\r\n }\r\n }\r\n //if(!Settings.FirstG)\r\n \t//LogHelper.Info(\"加载配置文件信息 完成\");\r\n}\r\ncatch (Exception ex)\r\n{\r\n LogHelper.Error(\"加载配置文件失败!\" + ex.Message, ex);\r\n}", |
| | | "Code": "public void SettingInit()\r\n{try\r\n{\r\n var jsonFile = System.AppDomain.CurrentDomain.BaseDirectory + \"/Static/config.json\";\r\n using (System.IO.StreamReader file = System.IO.File.OpenText(jsonFile))\r\n {\r\n using (JsonTextReader reader = new JsonTextReader(file))\r\n {\r\n JObject o = (JObject)JToken.ReadFrom(reader);\r\n foreach (Newtonsoft.Json.Linq.JProperty keyValue in o.Properties())\r\n {\r\n Console.WriteLine(keyValue.Name);\r\n if (keyValue.Name == \"HostToAgvServerUrl\")\r\n {\r\n Settings.HostToAgvServerUrl = keyValue.Value.ToString();\r\n }\r\n if (keyValue.Name == \"deviceInfo\") {\r\n Settings.deviceInfos = JsonConvert.DeserializeObject<List<deviceInfo>>(keyValue.Value.ToString());\r\n }\r\n if (keyValue.Name == \"HKbaseUrl\") {\r\n Settings.HKbaseUrl = keyValue.Value.ToString();\r\n }\r\n }\r\n }\r\n }\r\n //if(!Settings.FirstG)\r\n \t//LogHelper.Info(\"加载配置文件信息 完成\");\r\n}\r\ncatch (Exception ex)\r\n{\r\n LogHelper.Error(\"加载配置文件失败!\" + ex.Message, ex);\r\n}\r\n}", |
| | | "EditCode": "try\r\n{\r\n var jsonFile = System.AppDomain.CurrentDomain.BaseDirectory + \"/Static/config.json\";\r\n using (System.IO.StreamReader file = System.IO.File.OpenText(jsonFile))\r\n {\r\n using (JsonTextReader reader = new JsonTextReader(file))\r\n {\r\n JObject o = (JObject)JToken.ReadFrom(reader);\r\n foreach (Newtonsoft.Json.Linq.JProperty keyValue in o.Properties())\r\n {\r\n Console.WriteLine(keyValue.Name);\r\n if (keyValue.Name == \"HostToAgvServerUrl\")\r\n {\r\n Settings.HostToAgvServerUrl = keyValue.Value.ToString();\r\n }\r\n if (keyValue.Name == \"deviceInfo\") {\r\n Settings.deviceInfos = JsonConvert.DeserializeObject<List<deviceInfo>>(keyValue.Value.ToString());\r\n }\r\n if (keyValue.Name == \"HKbaseUrl\") {\r\n Settings.HKbaseUrl = keyValue.Value.ToString();\r\n }\r\n if (keyValue.Name == \"MESbaseUrl\")\r\n {\r\n Settings.MESbaseUrl = keyValue.Value.ToString();\r\n }\r\n if (keyValue.Name == \"WMSbaseUrl\")\r\n {\r\n Settings.WMSbaseUrl = keyValue.Value.ToString();\r\n }\r\n }\r\n }\r\n }\r\n //if(!Settings.FirstG)\r\n \t//LogHelper.Info(\"加载配置文件信息 完成\");\r\n}\r\ncatch (Exception ex)\r\n{\r\n LogHelper.Error(\"加载配置文件失败!\" + ex.Message, ex);\r\n}", |
| | | "Code": "public void SettingInit()\r\n{try\r\n{\r\n var jsonFile = System.AppDomain.CurrentDomain.BaseDirectory + \"/Static/config.json\";\r\n using (System.IO.StreamReader file = System.IO.File.OpenText(jsonFile))\r\n {\r\n using (JsonTextReader reader = new JsonTextReader(file))\r\n {\r\n JObject o = (JObject)JToken.ReadFrom(reader);\r\n foreach (Newtonsoft.Json.Linq.JProperty keyValue in o.Properties())\r\n {\r\n Console.WriteLine(keyValue.Name);\r\n if (keyValue.Name == \"HostToAgvServerUrl\")\r\n {\r\n Settings.HostToAgvServerUrl = keyValue.Value.ToString();\r\n }\r\n if (keyValue.Name == \"deviceInfo\") {\r\n Settings.deviceInfos = JsonConvert.DeserializeObject<List<deviceInfo>>(keyValue.Value.ToString());\r\n }\r\n if (keyValue.Name == \"HKbaseUrl\") {\r\n Settings.HKbaseUrl = keyValue.Value.ToString();\r\n }\r\n if (keyValue.Name == \"MESbaseUrl\")\r\n {\r\n Settings.MESbaseUrl = keyValue.Value.ToString();\r\n }\r\n if (keyValue.Name == \"WMSbaseUrl\")\r\n {\r\n Settings.WMSbaseUrl = keyValue.Value.ToString();\r\n }\r\n }\r\n }\r\n }\r\n //if(!Settings.FirstG)\r\n \t//LogHelper.Info(\"加载配置文件信息 完成\");\r\n}\r\ncatch (Exception ex)\r\n{\r\n LogHelper.Error(\"加载配置文件失败!\" + ex.Message, ex);\r\n}\r\n}", |
| | | "CusMethod": { |
| | | "Name": "SettingInit", |
| | | "Params": [], |
| | |
| | | "Type": "ClassCode", |
| | | "Level": "Item", |
| | | "Statement": "public class HttpHelper", |
| | | "EditCode": "public string Post(string url, string postData, string contentType = \"application/json\", string sessionId = \"\") {\r\n Console.WriteLine(url);\r\n WebRequest request = WebRequest.Create(url);\r\n request.Method = \"POST\";\r\n byte[] byteArray = Encoding.UTF8.GetBytes(postData);\r\n request.ContentType = contentType;\r\n request.ContentLength = byteArray.Length;\r\n request.Timeout = 3000;\r\n if (sessionId != \"\") {\r\n request.Headers.Set(\"ASP.NET_SessionId\", sessionId);\r\n }\r\n StreamReader reader = null;\r\n Stream stream = null;\r\n WebResponse rsp = null;\r\n try {\r\n stream = request.GetRequestStream();\r\n stream.Write(byteArray, 0, byteArray.Length);\r\n stream.Close();\r\n rsp = request.GetResponse();\r\n stream = rsp.GetResponseStream();\r\n reader = new StreamReader(stream);\r\n return reader.ReadToEnd();\r\n }\r\n catch (Exception ex) {\r\n Console.WriteLine($\"{url} err={ex.Message}\");\r\n return \"\";\r\n }\r\n finally {\r\n // 释放资源\r\n if (reader != null) reader.Close();\r\n if (stream != null) stream.Close();\r\n if (rsp != null) rsp.Close();\r\n }\r\n\r\n}", |
| | | "Code": "public class HttpHelper\r\n{public string Post(string url, string postData, string contentType = \"application/json\", string sessionId = \"\") {\r\n Console.WriteLine(url);\r\n WebRequest request = WebRequest.Create(url);\r\n request.Method = \"POST\";\r\n byte[] byteArray = Encoding.UTF8.GetBytes(postData);\r\n request.ContentType = contentType;\r\n request.ContentLength = byteArray.Length;\r\n request.Timeout = 3000;\r\n if (sessionId != \"\") {\r\n request.Headers.Set(\"ASP.NET_SessionId\", sessionId);\r\n }\r\n StreamReader reader = null;\r\n Stream stream = null;\r\n WebResponse rsp = null;\r\n try {\r\n stream = request.GetRequestStream();\r\n stream.Write(byteArray, 0, byteArray.Length);\r\n stream.Close();\r\n rsp = request.GetResponse();\r\n stream = rsp.GetResponseStream();\r\n reader = new StreamReader(stream);\r\n return reader.ReadToEnd();\r\n }\r\n catch (Exception ex) {\r\n Console.WriteLine($\"{url} err={ex.Message}\");\r\n return \"\";\r\n }\r\n finally {\r\n // 释放资源\r\n if (reader != null) reader.Close();\r\n if (stream != null) stream.Close();\r\n if (rsp != null) rsp.Close();\r\n }\r\n\r\n}\r\n}", |
| | | "EditCode": "public string Post(string url, string postData, string contentType = \"application/json\", string sessionId = \"\") {\r\n Console.WriteLine(url);\r\n WebRequest request = WebRequest.Create(url);\r\n request.Method = \"POST\";\r\n byte[] byteArray = Encoding.UTF8.GetBytes(postData);\r\n request.ContentType = contentType;\r\n request.ContentLength = byteArray.Length;\r\n request.Timeout = 3000;\r\n if (sessionId != \"\") {\r\n request.Headers.Set(\"ASP.NET_SessionId\", sessionId);\r\n }\r\n \r\n //Authorization: UApGP6WW9FsBUqAlzxRGOw ==\r\n request.Headers.Set(\"Authorization\", \"UApGP6WW9FsBUqAlzxRGOw==\");\r\n StreamReader reader = null;\r\n Stream stream = null;\r\n WebResponse rsp = null;\r\n try {\r\n stream = request.GetRequestStream();\r\n stream.Write(byteArray, 0, byteArray.Length);\r\n stream.Close();\r\n rsp = request.GetResponse();\r\n stream = rsp.GetResponseStream();\r\n reader = new StreamReader(stream);\r\n return reader.ReadToEnd();\r\n }\r\n catch (Exception ex) {\r\n Console.WriteLine($\"{url} err={ex.Message}\");\r\n return \"\";\r\n }\r\n finally {\r\n // 释放资源\r\n if (reader != null) reader.Close();\r\n if (stream != null) stream.Close();\r\n if (rsp != null) rsp.Close();\r\n }\r\n\r\n}", |
| | | "Code": "public class HttpHelper\r\n{public string Post(string url, string postData, string contentType = \"application/json\", string sessionId = \"\") {\r\n Console.WriteLine(url);\r\n WebRequest request = WebRequest.Create(url);\r\n request.Method = \"POST\";\r\n byte[] byteArray = Encoding.UTF8.GetBytes(postData);\r\n request.ContentType = contentType;\r\n request.ContentLength = byteArray.Length;\r\n request.Timeout = 3000;\r\n if (sessionId != \"\") {\r\n request.Headers.Set(\"ASP.NET_SessionId\", sessionId);\r\n }\r\n \r\n //Authorization: UApGP6WW9FsBUqAlzxRGOw ==\r\n request.Headers.Set(\"Authorization\", \"UApGP6WW9FsBUqAlzxRGOw==\");\r\n StreamReader reader = null;\r\n Stream stream = null;\r\n WebResponse rsp = null;\r\n try {\r\n stream = request.GetRequestStream();\r\n stream.Write(byteArray, 0, byteArray.Length);\r\n stream.Close();\r\n rsp = request.GetResponse();\r\n stream = rsp.GetResponseStream();\r\n reader = new StreamReader(stream);\r\n return reader.ReadToEnd();\r\n }\r\n catch (Exception ex) {\r\n Console.WriteLine($\"{url} err={ex.Message}\");\r\n return \"\";\r\n }\r\n finally {\r\n // 释放资源\r\n if (reader != null) reader.Close();\r\n if (stream != null) stream.Close();\r\n if (rsp != null) rsp.Close();\r\n }\r\n\r\n}\r\n}", |
| | | "CusMethod": { |
| | | "Name": "", |
| | | "Params": [], |
| | |
| | | "InheritClass": "", |
| | | "Inherits": [] |
| | | } |
| | | }, |
| | | { |
| | | "ID": "20250531152402452", |
| | | "Name": "ToWMSMES", |
| | | "Desc": "", |
| | | "ParentID": "", |
| | | "Type": "ClassCode", |
| | | "Level": "Item", |
| | | "Statement": "public class ToWMSMES", |
| | | "EditCode": "//2 wms mes \r\n\r\n\r\n public class CreateTask\r\n {\r\n public string taskType { get; set; }\r\n public string startBit { get; set; }\r\n public string endBit { get; set; }\r\n public string reqCode { get; set; }\r\n public string cntrCode { get; set; }\r\n\r\n internal static ReturnMsg CreatemesTask(CreateTask model)\r\n {\r\n ITaskRepository taskservice = new TaskRepository();\r\n var task = taskservice.FindEntity(x => x.S_TASK_NO == model.reqCode);\r\n if (task == null)\r\n {\r\n //var i = TaskProcess.CreateTask(\"\", model.startBit, model.endBit, string.IsNullOrEmpty(model.taskType) ? \"Mes下发\" : model.taskType, 5, new List<string> { model.cntrCode });\r\n TaskEntity wmsTask = new TaskEntity()\r\n {\r\n S_ID = Guid.NewGuid().ToString(),\r\n S_STATE = \"编辑\",\r\n T_CREATE = DateTime.Now,\r\n T_MODIFY = DateTime.Now,\r\n\r\n S_TASK_NO = model.reqCode,\r\n S_START_LAREA = \"\",\r\n S_END_LAREA = \"\",\r\n S_DEPART_NAME = \"\",\r\n S_START_LOC = model.startBit,\r\n S_END_LOC = model.endBit,\r\n S_TYPE = model.reqCode,\r\n S_SRC_NO = \"\",//\r\n N_PRIORITY = -1,\r\n S_WORK_MODE = \"agv\",\r\n S_B_STATE = \"MES\",\r\n S_CNTRS = model.cntrCode,\r\n N_START_LAYER = 1,\r\n N_END_LAYER = 1,\r\n N_CNTR_COUNT = 1\r\n };\r\n ITaskRepository taskserice = new TaskRepository();\r\n var i = taskserice.Insert(wmsTask) > 0;\r\n return new ReturnMsg { resultCode = (i ? 0 : -1), resultMsg = i ? \"\" : \"任务生成失败。\" };\r\n }\r\n else\r\n {\r\n return new ReturnMsg { resultCode = -1, resultMsg = \"任务重复下发。\" };\r\n }\r\n }\r\n }\r\n public class ReturnMsg\r\n {\r\n public int resultCode { get; set; }\r\n public string resultMsg { get; set; }\r\n }\r\n \r\n \r\n public static void ResMesTask()\r\n {\r\n ///1.\r\n TaskRepository taskservice = new TaskRepository();\r\n var tasks = taskservice.FindList(x => x.S_B_STATE == \"MES\" && x.N_PRIORITY == -88);\r\n var VERXs = Settings.deviceInfos?.FindAll(x => x.deviceName.Contains(\"捷瞬抓臂\"));\r\n if (VERXs.Any())\r\n foreach (var task in tasks)\r\n {\r\n var sx = VERXs?.Find(x => x.location.Contains(task.S_END_LOC));\r\n if (sx == null)\r\n {\r\n //直接生成对应任务。\r\n var res = TaskProcess.CreateTask(task.S_TASK_NO, task.S_START_LOC, task.S_END_LOC, task.S_TYPE, 6, task.S_CNTRS.Split(',').ToList());\r\n if (res)\r\n {\r\n //task.N_PRIORITY = 0;\r\n taskservice.dbcontext.Set<TaskEntity>().Attach(task);\r\n taskservice.dbcontext.Entry(task).Property(x => x.N_PRIORITY).CurrentValue = 0;\r\n taskservice.dbcontext.Entry(task).Property(x => x.N_PRIORITY).IsModified = true;\r\n taskservice.dbcontext.SaveChanges();\r\n }\r\n }\r\n else\r\n {\r\n LocRepository locRepository = new LocRepository();\r\n //生成跳跃任务。 -- 托盘货位表。 \r\n var t1s = taskservice.FindList(x => x.S_SRC_NO == task.S_TASK_NO);\r\n if (t1s.Any())\r\n {\r\n var t1 = t1s.OrderBy(x => x.T_CREATE).LastOrDefault();\r\n if (t1.S_END_LOC == task.S_END_LOC)\r\n {\r\n task.N_PRIORITY = 0;\r\n task.S_B_STATE = \"MES_完成\";\r\n taskservice.Update(task);\r\n }\r\n if (t1.S_B_STATE == \"完成\")\r\n {\r\n //1.终点是否有托盘。 依据是终点的任务是 作为终点,还是起点。\r\n var ec = taskservice.FindList(x => (x.S_START_LOC == task.S_START_LOC || x.S_END_LOC == task.S_END_LOC) /*&& DateTime.Now.Subtract(x.T_CREATE).TotalHours < 5*/).OrderByDescending(x => x.T_CREATE).FirstOrDefault();//($\"select top 1 * from TN_TASK WHERE S_START_LOC='{task.S_END_LOC}' OR S_END_LOC='{task.S_END_LOC}' ORDER BY T_CREATE DESC\");\r\n\r\n if (ec != null && ec.S_END_LOC == task.S_END_LOC)\r\n {\r\n //上次是入库任务。 则出库。 否则进行二段。 \r\n LocEntity endLoc = null;\r\n var di = sx;\r\n if (di != null)\r\n {\r\n foreach (var ssloc in di.deviceNo)\r\n {\r\n var endloc = locRepository.FindEntity(x => x.S_LOC_CODE == ssloc);\r\n if (endloc != null && endloc.N_CURRENT_NUM == 0 && endloc.S_LOCK_STATE == \"无\")\r\n {\r\n endLoc = endloc;\r\n break;\r\n }\r\n }\r\n if (endLoc != null)\r\n {\r\n var res = TaskProcess.CreateTask(\"\", task.S_END_LOC, endLoc.S_LOC_CODE, task.S_TYPE + \"下空\", 7, t1.S_CNTRS.Split(',').ToList());\r\n if (res)\r\n {\r\n task.N_PRIORITY = 0; taskservice.Update(task);\r\n }\r\n }\r\n }\r\n }\r\n else\r\n {\r\n var res = TaskProcess.CreateTask(task.S_TASK_NO, t1.S_END_LOC, task.S_END_LOC, task.S_TYPE + \"补满\", 6, task.S_CNTRS.Split(',').ToList());\r\n if (res)\r\n {\r\n task.N_PRIORITY = 0; taskservice.Update(task);\r\n }\r\n }\r\n }\r\n }\r\n else\r\n {\r\n //生成第一段。\r\n LocEntity endLoc = null;\r\n var di = sx;\r\n if (di != null)\r\n {\r\n foreach (var ssloc in di.deviceNo)\r\n {\r\n var endloc = locRepository.FindEntity(x => x.S_LOC_CODE == ssloc);\r\n if (endloc != null && endloc.N_CURRENT_NUM == 0 && endloc.S_LOCK_STATE == \"无\")\r\n {\r\n endLoc = endloc;\r\n break;\r\n }\r\n }\r\n if (endLoc != null)\r\n {\r\n var res = TaskProcess.CreateTask(\"\", task.S_START_LOC, endLoc.S_LOC_CODE, task.S_TYPE + \"满转\", 8, task.S_CNTRS.Split(',').ToList());\r\n if (res)\r\n {\r\n task.N_PRIORITY = 0; taskservice.Update(task);\r\n }\r\n }\r\n }\r\n }\r\n\r\n }\r\n }\r\n //var VERX = Settings.deviceInfos?.FindAll(x => x.deviceName.Contains(\"捷瞬抓臂\"));\r\n //if ()\r\n ///2 看缓存区。 没满的。\r\n\r\n\r\n }\r\n \r\n ", |
| | | "Code": "public class ToWMSMES\r\n{//2 wms mes \r\n\r\n\r\n public class CreateTask\r\n {\r\n public string taskType { get; set; }\r\n public string startBit { get; set; }\r\n public string endBit { get; set; }\r\n public string reqCode { get; set; }\r\n public string cntrCode { get; set; }\r\n\r\n internal static ReturnMsg CreatemesTask(CreateTask model)\r\n {\r\n ITaskRepository taskservice = new TaskRepository();\r\n var task = taskservice.FindEntity(x => x.S_TASK_NO == model.reqCode);\r\n if (task == null)\r\n {\r\n //var i = TaskProcess.CreateTask(\"\", model.startBit, model.endBit, string.IsNullOrEmpty(model.taskType) ? \"Mes下发\" : model.taskType, 5, new List<string> { model.cntrCode });\r\n TaskEntity wmsTask = new TaskEntity()\r\n {\r\n S_ID = Guid.NewGuid().ToString(),\r\n S_STATE = \"编辑\",\r\n T_CREATE = DateTime.Now,\r\n T_MODIFY = DateTime.Now,\r\n\r\n S_TASK_NO = model.reqCode,\r\n S_START_LAREA = \"\",\r\n S_END_LAREA = \"\",\r\n S_DEPART_NAME = \"\",\r\n S_START_LOC = model.startBit,\r\n S_END_LOC = model.endBit,\r\n S_TYPE = model.reqCode,\r\n S_SRC_NO = \"\",//\r\n N_PRIORITY = -1,\r\n S_WORK_MODE = \"agv\",\r\n S_B_STATE = \"MES\",\r\n S_CNTRS = model.cntrCode,\r\n N_START_LAYER = 1,\r\n N_END_LAYER = 1,\r\n N_CNTR_COUNT = 1\r\n };\r\n ITaskRepository taskserice = new TaskRepository();\r\n var i = taskserice.Insert(wmsTask) > 0;\r\n return new ReturnMsg { resultCode = (i ? 0 : -1), resultMsg = i ? \"\" : \"任务生成失败。\" };\r\n }\r\n else\r\n {\r\n return new ReturnMsg { resultCode = -1, resultMsg = \"任务重复下发。\" };\r\n }\r\n }\r\n }\r\n public class ReturnMsg\r\n {\r\n public int resultCode { get; set; }\r\n public string resultMsg { get; set; }\r\n }\r\n \r\n \r\n public static void ResMesTask()\r\n {\r\n ///1.\r\n TaskRepository taskservice = new TaskRepository();\r\n var tasks = taskservice.FindList(x => x.S_B_STATE == \"MES\" && x.N_PRIORITY == -88);\r\n var VERXs = Settings.deviceInfos?.FindAll(x => x.deviceName.Contains(\"捷瞬抓臂\"));\r\n if (VERXs.Any())\r\n foreach (var task in tasks)\r\n {\r\n var sx = VERXs?.Find(x => x.location.Contains(task.S_END_LOC));\r\n if (sx == null)\r\n {\r\n //直接生成对应任务。\r\n var res = TaskProcess.CreateTask(task.S_TASK_NO, task.S_START_LOC, task.S_END_LOC, task.S_TYPE, 6, task.S_CNTRS.Split(',').ToList());\r\n if (res)\r\n {\r\n //task.N_PRIORITY = 0;\r\n taskservice.dbcontext.Set<TaskEntity>().Attach(task);\r\n taskservice.dbcontext.Entry(task).Property(x => x.N_PRIORITY).CurrentValue = 0;\r\n taskservice.dbcontext.Entry(task).Property(x => x.N_PRIORITY).IsModified = true;\r\n taskservice.dbcontext.SaveChanges();\r\n }\r\n }\r\n else\r\n {\r\n LocRepository locRepository = new LocRepository();\r\n //生成跳跃任务。 -- 托盘货位表。 \r\n var t1s = taskservice.FindList(x => x.S_SRC_NO == task.S_TASK_NO);\r\n if (t1s.Any())\r\n {\r\n var t1 = t1s.OrderBy(x => x.T_CREATE).LastOrDefault();\r\n if (t1.S_END_LOC == task.S_END_LOC)\r\n {\r\n task.N_PRIORITY = 0;\r\n task.S_B_STATE = \"MES_完成\";\r\n taskservice.Update(task);\r\n }\r\n if (t1.S_B_STATE == \"完成\")\r\n {\r\n //1.终点是否有托盘。 依据是终点的任务是 作为终点,还是起点。\r\n var ec = taskservice.FindList(x => (x.S_START_LOC == task.S_START_LOC || x.S_END_LOC == task.S_END_LOC) /*&& DateTime.Now.Subtract(x.T_CREATE).TotalHours < 5*/).OrderByDescending(x => x.T_CREATE).FirstOrDefault();//($\"select top 1 * from TN_TASK WHERE S_START_LOC='{task.S_END_LOC}' OR S_END_LOC='{task.S_END_LOC}' ORDER BY T_CREATE DESC\");\r\n\r\n if (ec != null && ec.S_END_LOC == task.S_END_LOC)\r\n {\r\n //上次是入库任务。 则出库。 否则进行二段。 \r\n LocEntity endLoc = null;\r\n var di = sx;\r\n if (di != null)\r\n {\r\n foreach (var ssloc in di.deviceNo)\r\n {\r\n var endloc = locRepository.FindEntity(x => x.S_LOC_CODE == ssloc);\r\n if (endloc != null && endloc.N_CURRENT_NUM == 0 && endloc.S_LOCK_STATE == \"无\")\r\n {\r\n endLoc = endloc;\r\n break;\r\n }\r\n }\r\n if (endLoc != null)\r\n {\r\n var res = TaskProcess.CreateTask(\"\", task.S_END_LOC, endLoc.S_LOC_CODE, task.S_TYPE + \"下空\", 7, t1.S_CNTRS.Split(',').ToList());\r\n if (res)\r\n {\r\n task.N_PRIORITY = 0; taskservice.Update(task);\r\n }\r\n }\r\n }\r\n }\r\n else\r\n {\r\n var res = TaskProcess.CreateTask(task.S_TASK_NO, t1.S_END_LOC, task.S_END_LOC, task.S_TYPE + \"补满\", 6, task.S_CNTRS.Split(',').ToList());\r\n if (res)\r\n {\r\n task.N_PRIORITY = 0; taskservice.Update(task);\r\n }\r\n }\r\n }\r\n }\r\n else\r\n {\r\n //生成第一段。\r\n LocEntity endLoc = null;\r\n var di = sx;\r\n if (di != null)\r\n {\r\n foreach (var ssloc in di.deviceNo)\r\n {\r\n var endloc = locRepository.FindEntity(x => x.S_LOC_CODE == ssloc);\r\n if (endloc != null && endloc.N_CURRENT_NUM == 0 && endloc.S_LOCK_STATE == \"无\")\r\n {\r\n endLoc = endloc;\r\n break;\r\n }\r\n }\r\n if (endLoc != null)\r\n {\r\n var res = TaskProcess.CreateTask(\"\", task.S_START_LOC, endLoc.S_LOC_CODE, task.S_TYPE + \"满转\", 8, task.S_CNTRS.Split(',').ToList());\r\n if (res)\r\n {\r\n task.N_PRIORITY = 0; taskservice.Update(task);\r\n }\r\n }\r\n }\r\n }\r\n\r\n }\r\n }\r\n //var VERX = Settings.deviceInfos?.FindAll(x => x.deviceName.Contains(\"捷瞬抓臂\"));\r\n //if ()\r\n ///2 看缓存区。 没满的。\r\n\r\n\r\n }\r\n \r\n \r\n}", |
| | | "CusMethod": { |
| | | "Name": "", |
| | | "Params": [], |
| | | "ReturnType": "" |
| | | }, |
| | | "CusClass": { |
| | | "Name": "ToWMSMES", |
| | | "InheritClass": "", |
| | | "Inherits": [] |
| | | } |
| | | } |
| | | ], |
| | | "CreationTime": "2025-02-26 15:31:23", |
| | | "LastWriteTime": "2025-04-18 10:41:31", |
| | | "LastWriteTime": "2025-05-31 17:56:35", |
| | | "HasSaved": true |
| | | } |