| | |
| | | using GZ.DB.Repository.OIDATABASE; |
| | | using GZ.DB.IRepository.OIDATABASE; |
| | | using GZ.DB.Entity.OIDATABASE; |
| | | using static System.Windows.Forms.VisualStyles.VisualStyleElement; |
| | | using NLog.Fluent; |
| | | namespace GZ.Projects.AuxAllWCS |
| | | { |
| | | public class Settings |
| | |
| | | internal static bool CreateTask(string no, string from, string to, string taskType, int pri, List<string> cntrs, string workMode = "AGV", int cntrCount = 1, int startLayer = 1, int endLayer = 1) |
| | | { |
| | | |
| | | LogHelper.Debug($"è¾é线RGV空æä»»å¡ from:{from}>to {to}å¼å§å建>"); |
| | | LogHelper.Info($"åå»ºä»»å¡ from:{from}>to {to}å¼å§å建>"); |
| | | var cntrInfo = string.Join(",", cntrs); |
| | | ILocRepository locc = new LocRepository(); |
| | | var fromLoc = locc.FindEntity(x => x.S_LOC_CODE == from); |
| | |
| | | |
| | | var s = Settings.deviceInfos.Find(x => x.location.Contains(from)) != null; |
| | | var e = Settings.deviceInfos.Find(x => x.location.Contains(to)) != null; |
| | | string t = "F01"; |
| | | if (s && !e) t = "A002"; |
| | | if (!s && e) t = "A003"; |
| | | if (s && e) t = "A004"; |
| | | string t = ""; |
| | | if (workMode == "AGV") |
| | | { |
| | | t = "F01"; |
| | | if (s && !e) t = "A002"; |
| | | if (!s && e) t = "A003"; |
| | | if (s && e) t = "A004"; |
| | | } |
| | | try |
| | | { |
| | | |
| | |
| | | locc.Update(endLoc); |
| | | } |
| | | |
| | | LogHelper.Debug($"è¾é线RGV空æä»»å¡ from:{from}>to {to} å建{wmsTask.S_TASK_NO}æå"); |
| | | LogHelper.Info($"åå»ºä»»å¡ from:{from}>to {to} å建{wmsTask.S_TASK_NO}æå"); |
| | | return true; |
| | | } |
| | | catch (Exception ex) |
| | |
| | | S_DEPART_NAME = "", |
| | | S_START_LOC = model.startBit, |
| | | S_END_LOC = model.endBit, |
| | | S_TYPE = model.reqCode, |
| | | S_TYPE = model.taskType, |
| | | S_SRC_NO = "",// |
| | | N_PRIORITY = -88, |
| | | S_WORK_MODE = "agv", |
| | |
| | | //if (VERXs.Any()) |
| | | foreach (var task in tasks) |
| | | { |
| | | LogHelper.Info($"è§£éMESä»»å¡ ->{task.S_TASK_NO} "); |
| | | var sx = VERXs?.Find(x => x.location.Contains(task.S_END_LOC)); |
| | | LogHelper.Info($"è§£éMESä»»å¡ ->{task.S_TASK_NO} {(sx == null ? "é" : "æ¯")}æ»è£
æºå¨äººä»»å¡"); |
| | | if (sx == null) |
| | | { |
| | | LogHelper.Info($"è§£éMESä»»å¡ ->{task.S_TASK_NO} ç´æ¥çæå¯¹åºä»»å¡"); |
| | | //ç´æ¥çæå¯¹åºä»»å¡ã |
| | | 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()); |
| | | 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() ?? new List<string>()); |
| | | |
| | | LogHelper.Info($"è§£éMESä»»å¡ ->{task.S_TASK_NO} ç´æ¥çæå¯¹åºä»»å¡ ç»æï¼{res}"); |
| | | if (res) |
| | | { |
| | | LogHelper.Info($"è§£éMESä»»å¡ ->{task.S_TASK_NO} ä¿®æ¹æ è¯"); |
| | | //task.N_PRIORITY = 0; |
| | | taskservice.dbcontext.Set<TaskEntity>().Attach(task); |
| | | taskservice.dbcontext.Entry(task).Property(x => x.N_PRIORITY).CurrentValue = 0; |
| | |
| | | LocRepository locRepository = new LocRepository(); |
| | | //çæè·³è·ä»»å¡ã -- æçè´§ä½è¡¨ã |
| | | var t1s = taskservice.FindList(x => x.S_SRC_NO == task.S_TASK_NO); |
| | | |
| | | LogHelper.Info($"è§£éMESä»»å¡ ->{task.S_TASK_NO} æ¥æ¾æ¯å¦æå·²çæä»»å¡ï¼{t1s != null}"); |
| | | if (t1s.Any()) |
| | | { |
| | | var t1 = t1s.OrderBy(x => x.T_CREATE).LastOrDefault(); |
| | |
| | | // sord = "desc", |
| | | // rows = 1 |
| | | // }).FirstOrDefault(); |
| | | TaskEntity ec = null; |
| | | var dev = Conn.é»è®¤Redis.GetValue(sx.deviceName + "." + (sindex == 0 ? "D1224" : "D1225")); |
| | | if (dev?.Trim() == "1") |
| | | ec = taskservice.FindList(x => x.S_END_LOC == task.S_END_LOC && x.S_B_STATE == "宿", new Common.Data.Pagination |
| | | { |
| | | page = 1, |
| | | sidx = "T_CREATE", |
| | | sord = "desc", |
| | | rows = 1 |
| | | }).FirstOrDefault(); |
| | | if (t1.S_START_LOC == task.S_START_LOC && ec != null)//!= task.S_END_LOC) |
| | | //TaskEntity ec = null; |
| | | //var dev = Conn.é»è®¤Redis.GetValue(sx.deviceName + "." + (sindex == 0 ? "D1224" : "D1225")); |
| | | //if (dev?.Trim() == "1") |
| | | // ec = taskservice.FindList(x => x.S_END_LOC == task.S_END_LOC && x.S_B_STATE == "宿", new Common.Data.Pagination |
| | | // { |
| | | // page = 1, |
| | | // sidx = "T_CREATE", |
| | | // sord = "desc", |
| | | // rows = 1 |
| | | // }).FirstOrDefault(); |
| | | bool canReq = true; |
| | | var tf = Conn.é»è®¤Redis.GetValue(sx.deviceName + ".D1202"); |
| | | var V = sx.location.ToList().FindIndex(x => x == task.S_END_LOC) == 0; |
| | | var tf2 = int.Parse(string.IsNullOrEmpty(tf) ? "0" : tf); |
| | | canReq = TcpServer.GetBitdata(tf2, (V ? 2 : 3)) == 1; |
| | | //if (canReq) |
| | | // ec = taskservice.FindList(x => x.S_END_LOC == task.S_END_LOC && x.S_B_STATE == "宿", new Common.Data.Pagination |
| | | // { |
| | | // page = 1, |
| | | // sidx = "T_CREATE", |
| | | // sord = "desc", |
| | | // rows = 1 |
| | | // }).FirstOrDefault(); |
| | | if (t1.S_START_LOC == task.S_START_LOC && canReq)//!= task.S_END_LOC) |
| | | { |
| | | //ç¬¬äºæ®µã |
| | | LocEntity endLoc = null; |
| | | var di = sx; |
| | | if (di != null) |
| | | { |
| | | foreach (var ssloc in di.deviceNo) |
| | | //foreach (var ssloc in di.deviceNo) |
| | | { |
| | | var ssloc = di.deviceNo[1]; |
| | | var endloc = locRepository.FindEntity(x => x.S_LOC_CODE == ssloc); |
| | | if (endloc != null && endloc.N_CURRENT_NUM == 0 && endloc.S_LOCK_STATE == "æ ") |
| | | if (endloc != null && endloc.N_CURRENT_NUM == 0 && endloc.S_LOCK_STATE.Trim() == "æ ") |
| | | { |
| | | endLoc = endloc; |
| | | break; |
| | | //break; |
| | | } |
| | | } |
| | | if (endLoc != null) |
| | | { |
| | | var res = TaskProcess.CreateTask(task.S_TASK_NO, task.S_END_LOC, endLoc.S_LOC_CODE, task.S_TYPE + "ä¸ç©º", 7, ec.S_CNTRS.Split(',').ToList()); |
| | | var res = TaskProcess.CreateTask(task.S_TASK_NO, task.S_END_LOC, endLoc.S_LOC_CODE, task.S_TYPE + "ä¸ç©º", 7, "NONE".Split(',').ToList()); |
| | | if (res) |
| | | { |
| | | task.N_PRIORITY = 0; taskservice.Update(task); |
| | |
| | | } |
| | | else |
| | | { |
| | | if (t1.S_START_LOC != task.S_START_LOC) |
| | | { |
| | | t1 = taskservice.FindEntity(x => x.S_SRC_NO == task.S_TASK_NO && x.S_START_LOC == task.S_START_LOC && x.S_B_STATE == "宿"); |
| | | } |
| | | 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()); |
| | | if (res) |
| | | { |
| | |
| | | } |
| | | else |
| | | { |
| | | LogHelper.Info($"è§£éMESä»»å¡ ->{task.S_TASK_NO} çéçæç¬¬ä¸æ®µ ä»»å¡ã"); |
| | | //çæç¬¬ä¸æ®µã |
| | | LocEntity endLoc = null; |
| | | var di = sx; |
| | | if (di != null) |
| | | { |
| | | foreach (var ssloc in di.deviceNo) |
| | | //foreach (var ssloc in di.deviceNo) |
| | | { |
| | | var ssloc = di.deviceNo[0]; |
| | | var endloc = locRepository.FindEntity(x => x.S_LOC_CODE == ssloc); |
| | | if (endloc != null && endloc.N_CURRENT_NUM == 0 && endloc.S_LOCK_STATE == "æ ") |
| | | if (endloc != null && endloc.N_CURRENT_NUM == 0 && endloc.S_LOCK_STATE.Trim() == "æ ") |
| | | { |
| | | endLoc = endloc; |
| | | break; |
| | | //break; |
| | | } |
| | | } |
| | | if (endLoc != null) |
| | | { |
| | | var res = TaskProcess.CreateTask("", task.S_START_LOC, endLoc.S_LOC_CODE, task.S_TYPE + "满转", 8, task.S_CNTRS.Split(',').ToList()); |
| | | LogHelper.Info($"è§£éMESä»»å¡ ->{task.S_TASK_NO} åå»ºç¬¬ä¸æ®µ ä»»å¡ã"); |
| | | var res = TaskProcess.CreateTask(task.S_TASK_NO, task.S_START_LOC, endLoc.S_LOC_CODE, task.S_TYPE + "满转", 8, task.S_CNTRS.Split(',').ToList()); |
| | | |
| | | LogHelper.Info($"è§£éMESä»»å¡ ->{task.S_TASK_NO} åå»ºç¬¬ä¸æ®µ ä»»å¡ãç»æï¼{res}"); |
| | | if (res) |
| | | { |
| | | task.N_PRIORITY = 0; taskservice.Update(task); |