| | |
| | | /2025å¹´6æ12æ¥/AuxAllWCS/Build/Project/代ç /éæäºè.cs |
| | | /2025å¹´6æ12æ¥/AuxAllWCS/Build/Project/代ç /èªå®ä¹ç±».cs |
| | | /2025å¹´6æ12æ¥/AuxAllWCS/Project.rar |
| | | /2025å¹´6æ12æ¥/AuxAllWCS/AuxAllWCS.json |
| | | /2025å¹´6æ12æ¥/AuxAllWCS/AuxAllWCS.rar |
| | |
| | | <RootNamespace>GZ.Projects.AuxAllWCS</RootNamespace> |
| | | <AssemblyName>AuxAllWCS</AssemblyName> |
| | | <TargetFrameworkVersion>4.6.1</TargetFrameworkVersion> |
| | | <ProjectGuid>{C950A000-450B-4228-ACC3-1A66CF2409B5}</ProjectGuid> |
| | | <ProjectGuid>{23F7056F-6FB9-4196-A438-F5BC8675472A}</ProjectGuid> |
| | | </PropertyGroup> |
| | | <PropertyGroup Condition="'$(Configuration)|$(Platform)' == 'Debug|AnyCPU'"> |
| | | <PlatformTarget>AnyCPU</PlatformTarget> |
| | |
| | | using System.Security.Cryptography; |
| | | using System.Windows.Markup; |
| | | using static GZ.Projects.AuxAllWCS.EasyPLC; |
| | | using static System.Runtime.CompilerServices.RuntimeHelpers; |
| | | using ServiceStack.Configuration; |
| | | using ServiceStack; |
| | | |
| | | namespace GZ.Projects.AuxAllWCS |
| | | { |
| | |
| | | foreach (var ssx in new string[] { "1003", "1005", "1011", "1013" }) |
| | | { |
| | | var RArrive = (System.UInt16)System.Convert.ChangeType(Conn.é»è®¤Redis.GetValue($"FNK1003051113.RArrive{ssx}"), typeof(System.UInt16)); |
| | | var RArriveLast = (System.UInt16)System.Convert.ChangeType(Conn.é»è®¤Redis.GetValue($"FNK1003051113.RArrive{ssx}_LAST"), typeof(System.UInt16)); |
| | | //var RArriveLast = (System.UInt16)System.Convert.ChangeType(Conn.é»è®¤Redis.GetValue($"FNK1003051113.RArrive{ssx}_LAST"), typeof(System.UInt16)); |
| | | var wArriveOver = (System.UInt16)System.Convert.ChangeType(Conn.é»è®¤Redis.GetValue($"FNK1003051113.wArrive{ssx}Over"), typeof(System.UInt16)); |
| | | var rReleaseOver = (System.UInt16)System.Convert.ChangeType(Conn.é»è®¤Redis.GetValue($"FNK1003051113.rRelease{ssx}Over"), typeof(System.UInt16)); |
| | | var WRelease = (System.UInt16)System.Convert.ChangeType(Conn.é»è®¤Redis.GetValue($"FNK1003051113.WRelease{ssx}"), typeof(System.UInt16)); |
| | | LogHelper.Info($@" 空å°ä½ RArrive{ssx}>{RArrive} && 空å°ä½å¤ç.RArrive{ssx}_LAST >{RArriveLast} æºæ¢°ææ¶å°æ§å°ä½.wArrive{ssx}Over>{wArriveOver} |
| | | éåºå®æ.rRelease{ssx}Over>{rReleaseOver} æ¾è´§å®æ.WRelease{ssx}>{WRelease}"); |
| | | if (RArrive == 1 && RArriveLast == 0) |
| | | var RtrayCode = (System.String)System.Convert.ChangeType(Conn.é»è®¤Redis.GetValue($"SSX1003051113.R{ssx}Barcode"), typeof(System.String)); |
| | | var rdisTcode = RedisHelper.Get<string>($"Arrive{ssx}BarcodeLast", out string msg); |
| | | // åäºç©ºæ¡å°ä½çæçå·è®°å½ï¼ 妿䏿¬¡ä¿¡å·æ¥äºï¼æçå·ä¸ä¸è´å°±åï¼ä¸è´å°±ä¸åï¼é²æ¢å ç¹æ®åå 被æ¸
é¤éæ°è§¦åï¼å¯¼è´åééå¤çé®é¢ã |
| | | LogHelper.Info($@" æçå·ï¼{RtrayCode} redisæçå·ï¼{rdisTcode} 空å°ä½ RArrive{ssx}>{RArrive} æºæ¢°ææ¶å°æ§å°ä½.wArrive{ssx}Over>{wArriveOver} éåºå®æ.rRelease{ssx}Over>{rReleaseOver} æ¾è´§å®æ.WRelease{ssx}>{WRelease}"); |
| | | if (RArrive == 1 && WRelease == 0 /*&& RArriveLast == 0*/ && !string.IsNullOrEmpty(RtrayCode) && RtrayCode != rdisTcode) |
| | | { |
| | | if (ssx == "1005" && tag.SF䏿ä½.WRelease1005 == 0) |
| | | switch (ssx) |
| | | { |
| | | LogHelper.Info($"ssx == 1005 && tag.SF䏿ä½.WRelease1005:{tag.SF䏿ä½.WRelease1005} åf1 2215=1ï¼RArrive1005_LAST=1"); |
| | | tag.FNK1.D2215 = 1; |
| | | //tag.SF䏿ä½.RArrive1005_LAST = 1; |
| | | RedisHelper.Add($"FNK1003051113.RArrive1005_LAST", "1", out string msg); |
| | | |
| | | //tag.SF䏿ä½.WRelease1005 = 0; |
| | | //tag.SF䏿ä½.WSafe0305 = 0; |
| | | case "1003": |
| | | { |
| | | LogHelper.Info($"ssx == 1003 && tag.SF䏿ä½.WRelease1003:{tag.SF䏿ä½.WRelease1003} åf1 2210=1ï¼Arrive{ssx}BarcodeLast={RtrayCode}"); |
| | | tag.FNK1.D2210 = 1; |
| | | } |
| | | break; |
| | | case "1005": |
| | | { |
| | | LogHelper.Info($"ssx == 1005 && tag.SF䏿ä½.WRelease1005:{tag.SF䏿ä½.WRelease1005} åf1 2215=1ï¼Arrive{ssx}BarcodeLast={RtrayCode}"); |
| | | tag.FNK1.D2215 = 1; |
| | | } |
| | | break; |
| | | case "1011": |
| | | { |
| | | LogHelper.Info($"ssx == 1011 && tag.SF䏿ä½.WRelease1011:{tag.SF䏿ä½.WRelease1011} åf2 2210=1ï¼Arrive{ssx}BarcodeLast={RtrayCode}"); |
| | | tag.FNK2.D2210 = 1; |
| | | } |
| | | break; |
| | | case "1013": |
| | | { |
| | | LogHelper.Info($"ssx == 1013 && tag.SF䏿ä½.WRelease1013:{tag.SF䏿ä½.WRelease1013} åf2 2215=1ï¼Arrive{ssx}BarcodeLast={RtrayCode}"); |
| | | tag.FNK2.D2215 = 1; |
| | | } |
| | | break; |
| | | } |
| | | else if (ssx == "1003" && tag.SF䏿ä½.WRelease1003 == 0) |
| | | { |
| | | LogHelper.Info($"ssx == 1003 && tag.SF䏿ä½.WRelease1003:{tag.SF䏿ä½.WRelease1003} åf1 2210=1ï¼RArrive1003_LAST=1"); |
| | | tag.FNK1.D2210 = 1; |
| | | //tag.SF䏿ä½.RArrive1003_LAST = 1; |
| | | |
| | | RedisHelper.Add($"FNK1003051113.RArrive1003_LAST", "1", out string msg); |
| | | |
| | | //tag.SF䏿ä½.WRelease1003 = 0; |
| | | //tag.SF䏿ä½.WSafe0305 = 0; |
| | | } |
| | | else if (ssx == "1013" && tag.SF䏿ä½.WRelease1013 == 0) |
| | | { |
| | | LogHelper.Info($"ssx == 1013 && tag.SF䏿ä½.WRelease1013:{tag.SF䏿ä½.WRelease1013} åf2 2215=1ï¼RArrive1013_LAST=1"); |
| | | tag.FNK2.D2215 = 1; |
| | | //tag.SF䏿ä½.RArrive1013_LAST = 1; |
| | | RedisHelper.Add($"FNK1003051113.RArrive1013_LAST", "1", out string msg); |
| | | |
| | | //tag.SF䏿ä½.WRelease1013 = 0; |
| | | //tag.SF䏿ä½.WSafe1113 = 0; |
| | | } |
| | | else if (ssx == "1011" && tag.SF䏿ä½.WRelease1011 == 0) |
| | | { |
| | | LogHelper.Info($"ssx == 1011 && tag.SF䏿ä½.WRelease1011:{tag.SF䏿ä½.WRelease1011} åf2 2210=1ï¼RArrive1011_LAST=1"); |
| | | tag.FNK2.D2210 = 1; |
| | | //tag.SF䏿ä½.RArrive1011_LAST = 1; |
| | | RedisHelper.Add($"FNK1003051113.RArrive1011_LAST", "1", out string msg); |
| | | |
| | | //tag.SF䏿ä½.WRelease1011 = 0; |
| | | //tag.SF䏿ä½.WSafe1113 = 0; |
| | | } |
| | | RedisHelper.Add($"Arrive{ssx}BarcodeLast", RtrayCode, out msg); |
| | | } |
| | | else if (RArrive == 0) |
| | | { |
| | | if (RArriveLast == 1) |
| | | { |
| | | LogHelper.Info($"éç½® FNK1003051113.RArrive{ssx}_LAST=0"); |
| | | RedisHelper.Add($"FNK1003051113.RArrive{ssx}_LAST", "0", out string msg); |
| | | } |
| | | //if (RArriveLast == 1) |
| | | //{ |
| | | // LogHelper.Info($"éç½® FNK1003051113.RArrive{ssx}_LAST=0"); |
| | | // RedisHelper.Add($"FNK1003051113.RArrive{ssx}_LAST", "0", out string msg); |
| | | //} |
| | | if (wArriveOver == 1) |
| | | { |
| | | LogHelper.Info($"éç½® FNK1003051113.wArrive{ssx}Over=0"); |
| | |
| | | tag.SF䏿ä½.WRelease1005 = 1; |
| | | tag.SF䏿ä½.WSafe0305 = 1; |
| | | System.Threading.Thread.Sleep(1000); |
| | | RedisHelper.Add($"FNK1003051113.RArrive1005_LAST", "0", out msg); |
| | | LogHelper.Info($" FN1 .D2217=1,2217_LAST=0 å 2218=1ï¼D2217_LAST=1ï¼WRelease1005=1 RArrive1005_LAST=0"); |
| | | //RedisHelper.Add($"FNK1003051113.RArrive1005_LAST", "0", out msg); |
| | | RedisHelper.Add($"Arrive1005BarcodeLast", "0", out msg); |
| | | LogHelper.Info($" FN1 .D2217=1,2217_LAST=0 å 2218=1ï¼D2217_LAST=1ï¼WRelease1005=1 Arrive1005BarcodeLast=0"); |
| | | } |
| | | else if (tag.FNK1.D2217 == 0 && tag.FNK1.D2217_LAST == 1) |
| | | { |
| | |
| | | tag.SF䏿ä½.WRelease1003 = 1; |
| | | tag.SF䏿ä½.WSafe0305 = 1; |
| | | System.Threading.Thread.Sleep(1000); |
| | | RedisHelper.Add($"FNK1003051113.RArrive1003_LAST", "0", out msg); |
| | | LogHelper.Info($" FN1 .D2212=1,2212_LAST=0 å D2213=1ï¼D2212_LAST=1ï¼WRelease1003=1 RArrive1003_LAST=0"); |
| | | //RedisHelper.Add($"FNK1003051113.RArrive1003_LAST", "0", out msg); |
| | | RedisHelper.Add($"Arrive1003BarcodeLast", "0", out msg); |
| | | LogHelper.Info($" FN1 .D2212=1,2212_LAST=0 å D2213=1ï¼D2212_LAST=1ï¼WRelease1003=1 Arrive1003BarcodeLast=0"); |
| | | } |
| | | //else if (tag.FNK1.D2211 == 1) |
| | | // tag.FNK1.D2210 = 0; |
| | |
| | | tag.SF䏿ä½.WRelease1013 = 1; |
| | | tag.SF䏿ä½.WSafe1113 = 1; |
| | | System.Threading.Thread.Sleep(1000); |
| | | RedisHelper.Add($"FNK1003051113.RArrive1013_LAST", "0", out msg); |
| | | LogHelper.Info($" FN2 .D2217=1,2217_LAST=0 å 2218=1ï¼D2217_LAST=1ï¼WRelease1013=1 RArrive1013_LAST=0"); |
| | | //RedisHelper.Add($"FNK1003051113.RArrive1013_LAST", "0", out msg); |
| | | RedisHelper.Add($"Arrive1013BarcodeLast", "0", out msg); |
| | | LogHelper.Info($" FN2 .D2217=1,2217_LAST=0 å 2218=1ï¼D2217_LAST=1ï¼WRelease1013=1 Arrive1013BarcodeLast=0"); |
| | | } |
| | | else if (tag.FNK2.D2217 == 0 && tag.FNK2.D2217_LAST == 1) |
| | | { |
| | |
| | | tag.SF䏿ä½.WRelease1011 = 1; |
| | | tag.SF䏿ä½.WSafe1113 = 1; |
| | | System.Threading.Thread.Sleep(1000); |
| | | RedisHelper.Add($"FNK1003051113.RArrive1011_LAST", "0", out msg); |
| | | LogHelper.Info($" FN2 .D2212=1,2212_LAST=0 å 2213=1ï¼D2212_LAST=1ï¼WRelease1011=1 RArrive1011_LAST=0"); |
| | | //RedisHelper.Add($"FNK1003051113.RArrive1011_LAST", "0", out msg); |
| | | RedisHelper.Add($"Arrive1011BarcodeLast", "0", out msg); |
| | | LogHelper.Info($" FN2 .D2212=1,2212_LAST=0 å 2213=1ï¼D2212_LAST=1ï¼WRelease1011=1 Arrive1011BarcodeLast=0"); |
| | | } |
| | | else if (tag.FNK2.D2212 == 0 && tag.FNK2.D2212_LAST == 1) |
| | | { |
| | |
| | | LogHelper.Info($" påé£ç§2ä¸çº¿ 读D2211=1 åD2210 =0 åæºæ¢°ææ¶å°ç©ºå°1011 wArrive1011Over=1"); |
| | | } |
| | | } |
| | | |
| | | |
| | | |
| | | public void Thread1019Down(Tag tag) |
| | |
| | | Console.WriteLine($"SA2030 ä»»å¡ç¶æï¼{tag.SA2030.RtaskState}- 空é²{tag.SA2030.R5空é²} - barcode:{tag.SA2030.Ræçç }"); |
| | | } |
| | | |
| | | public void ResolveMesTask() |
| | | { |
| | | TaskRepository taskservice = new TaskRepository(); |
| | | var tasks = taskservice.FindList(x => (x.S_B_STATE == "MES" || x.S_B_STATE == "People") && x.N_PRIORITY == -88); |
| | | var VERXs = Settings.deviceInfos?.FindAll(x => x.deviceType == 2); |
| | | //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() ?? 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; |
| | | taskservice.dbcontext.Entry(task).Property(x => x.N_PRIORITY).IsModified = true; |
| | | taskservice.dbcontext.SaveChanges(); |
| | | } |
| | | } |
| | | else |
| | | { |
| | | var sindex = sx.location.ToList().IndexOf(task.S_END_LOC); |
| | | 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(); |
| | | if (t1.S_END_LOC == task.S_END_LOC) |
| | | { |
| | | task.N_PRIORITY = 0; |
| | | task.S_B_STATE = "MES_宿"; |
| | | taskservice.Update(task); |
| | | continue; |
| | | } |
| | | if (t1.S_B_STATE == "宿") |
| | | { |
| | | //1.ç»ç¹æ¯å¦ææçã 便®æ¯ç»ç¹ç任塿¯ ä½ä¸ºç»ç¹ï¼è¿æ¯èµ·ç¹ã |
| | | //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"); |
| | | //var ec = taskservice.FindList(x => x.S_START_LOC == task.S_START_LOC && x.S_END_LOC == task.S_START_LOC, new Common.Data.Pagination |
| | | // { |
| | | // page = 1, |
| | | // sidx = "T_CREATE", |
| | | // 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(); |
| | | 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) |
| | | { |
| | | 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.Trim() == "æ ") |
| | | { |
| | | endLoc = endloc; |
| | | //break; |
| | | } |
| | | } |
| | | if (endLoc != null) |
| | | { |
| | | 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) |
| | | { |
| | | task.N_PRIORITY = 0; taskservice.Update(task); |
| | | } |
| | | } |
| | | } |
| | | } |
| | | else |
| | | { |
| | | LogHelper.Info($"è§£éMESä»»å¡ ->{task.S_TASK_NO} çéçæç¬¬ä¸æ®µ ä»»å¡ã"); |
| | | //çæç¬¬ä¸æ®µã |
| | | LocEntity endLoc = null; |
| | | var di = sx; |
| | | if (di != null) |
| | | { |
| | | //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.Trim() == "æ ") |
| | | { |
| | | endLoc = endloc; |
| | | //break; |
| | | } |
| | | } |
| | | if (endLoc != null) |
| | | { |
| | | 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); |
| | | } |
| | | } |
| | | } |
| | | } |
| | | |
| | | } |
| | | } |
| | | } |
| | | |
| | | |
| | | public HkReturnResult OperateHKTaskStatus(HaiKangOrderInfo model) |
| | | { |
| | | // æ¥è¯¢ä»»å¡ï¼æ ¹æ®ä»»å¡å· |
| | | //var wcsTask = WCSHelper.GetTask(model.taskCode); |
| | | ITaskRepository MainMissionService = new TaskRepository(); |
| | | var wcsTask = MainMissionService.FindEntity(x => model.taskCode == x.S_TASK_NO); |
| | | if (wcsTask != null) |
| | | { |
| | | if (!string.IsNullOrWhiteSpace(model.method)) |
| | | { |
| | | ILocRepository locrep = new LocRepository(); |
| | | var startloc = locrep.FindEntity(x => x.S_LOC_CODE == wcsTask.S_START_LOC); |
| | | var endLoc = locrep.FindEntity(x => x.S_LOC_CODE == wcsTask.S_END_LOC); |
| | | |
| | | List<string> cntrs = wcsTask.S_CNTRS.Split(',').ToList(); |
| | | bool bobe = false; |
| | | //model.method = model.method?.ToLower(); |
| | | switch (model.method) |
| | | { |
| | | case "start": |
| | | LogHelper.Info($"海康车任å¡ç¶æåæ´ä¸ºæ§è¡ï¼ä»»å¡å·ä¸ºï¼{model.taskCode}", "agvæåäº¤äºæ¥å¿"); |
| | | if (wcsTask.S_B_STATE.Trim() == "å·²æ¨é") |
| | | { |
| | | wcsTask.S_B_STATE = "æ§è¡ä¸"; |
| | | wcsTask.T_START_TIME = DateTime.Now; |
| | | MainMissionService.Update(wcsTask); |
| | | bobe = true; |
| | | } |
| | | break; |
| | | case "outBin": |
| | | case "outbin": |
| | | model.method = model.method?.ToLower(); |
| | | LogHelper.Info($"海康车任å¡ç¶æåæ´ä¸ºåè´§å®æï¼ä»»å¡å·ä¸ºï¼{model.taskCode}", "agvæåäº¤äºæ¥å¿"); |
| | | wcsTask.S_B_STATE = "åè´§å®æ"; |
| | | |
| | | startloc.N_CURRENT_NUM = 0; |
| | | startloc.S_LOCK_STATE = "æ "; |
| | | startloc.T_MODIFY = DateTime.Now; |
| | | //ILocContainerRepository locContainerRepository = new LocContainerRepository(); |
| | | ////var cnr = locContainerRepository.FindList(x => cntrs.Contains(x.S_CNTR_CODE.Trim()) && x.S_LOC_CODE == wcsTask.S_START_LOC); |
| | | //locContainerRepository.Delete(x => cntrs.Contains(x.S_CNTR_CODE.Trim()) && x.S_LOC_CODE == wcsTask.S_START_LOC); |
| | | MainMissionService.Update(wcsTask); |
| | | locrep.Update(startloc); |
| | | |
| | | bobe = true; |
| | | var device = Settings.deviceInfos.Find(x => x.location.Contains(wcsTask.S_START_LOC)); |
| | | if (device != null) |
| | | { |
| | | if (device.deviceType == 1) |
| | | { |
| | | if (device.deviceName.Contains("ç»´å¸å°æè")) |
| | | { //å¸è´§è¿è¡æ¸
空ï¼è§¦åæ«ç |
| | | var inde = device.location.ToList().FindIndex(x => x == wcsTask.S_START_LOC) == 0; |
| | | string V = inde ? "R05" : "R06"; |
| | | Conn.é»è®¤Redis.SetValue(device.deviceName + "." + V, "true", device.deviceName + "Queue", false); |
| | | |
| | | TcpServer.TrayIps.Remove(device.deviceNo[inde ? 0 : 1]); |
| | | } |
| | | } |
| | | else if (device.deviceType == 2) |
| | | { |
| | | //Task.Run(() => |
| | | //{ |
| | | // var inde = device.location.ToList().FindIndex(x => x == wcsTask.S_START_LOC) == 0; |
| | | // string V = inde ? "D1224" : "D1225"; |
| | | // Conn.é»è®¤Redis.SetValue(device.deviceName + "." + V, "0", device.deviceName + "Queue"); |
| | | //}); |
| | | } |
| | | } |
| | | //LocationHelper.UnLockLoc(wcsTask.S_START_LOC); |
| | | break; |
| | | case "end": |
| | | LogHelper.Info($"海康车任å¡ç¶æåæ´ä¸ºå®æï¼ä»»å¡å·ä¸ºï¼{model.taskCode}", "agvæåäº¤äºæ¥å¿"); |
| | | wcsTask.S_B_STATE = "宿"; |
| | | wcsTask.T_END_TIME = DateTime.Now; |
| | | |
| | | bobe = true; |
| | | //ILocContainerRepository locContainerRepository2 = new LocContainerRepository(); |
| | | //List<LocContainerEntity> llls = new List<LocContainerEntity>(); |
| | | //foreach (var c in cntrs) |
| | | //{ |
| | | // var action = new LocContainerEntity() |
| | | // { |
| | | // S_ID = Guid.NewGuid().ToString(), |
| | | // S_STATE = "ç¼è¾", |
| | | // T_CREATE = DateTime.Now, |
| | | // T_MODIFY = DateTime.Now, |
| | | |
| | | // S_LOC_CODE = endLoc.S_LOC_CODE, |
| | | // S_CNTR_CODE = c, |
| | | // S_TYPE = "", |
| | | // }; |
| | | // llls.Add(action); |
| | | //} |
| | | |
| | | endLoc.S_LOCK_STATE = "æ "; |
| | | endLoc.N_CURRENT_NUM = 1; |
| | | endLoc.T_MODIFY = DateTime.Now; |
| | | MainMissionService.Update(wcsTask); |
| | | if (Settings.deviceInfos.Find(x => x.deviceType == 2 && (/*x.location.Contains(wcsTask.S_END_LOC)||*/x.deviceNo.Contains(wcsTask.S_END_LOC))) != null) |
| | | locrep.Update(endLoc); |
| | | //locContainerRepository2.Insert(llls); |
| | | |
| | | var device2 = Settings.deviceInfos.Find(x => x.location.Contains(wcsTask.S_END_LOC)); |
| | | if (device2 != null) |
| | | { |
| | | if (device2.deviceType == 1) |
| | | { |
| | | if (device2.deviceName.Contains("ç»´å¸å°æè")) |
| | | { |
| | | //string V = device2.location.ToList().FindIndex(x => x == wcsTask.S_START_LOC) == 0 ? "R10" : "R11"; |
| | | //Conn.é»è®¤Redis.SetValue(device2.deviceName + "." + V, "true", device2.deviceName + "Queue"); |
| | | //å¸è´§ååæçåèµ°ã ç¶åè§¦åæ«ç è¿è¡æ ¡éªã |
| | | var inde = device2.location.ToList().FindIndex(x => x == wcsTask.S_END_LOC) == 0; |
| | | //string V = inde ? "R05" : "R06"; |
| | | //Conn.é»è®¤Redis.SetValue(device2.deviceName + "." + V, "true", device2.deviceName + "Queue"); |
| | | string V2 = inde ? "R10_LAST" : "R11_LAST"; |
| | | //Conn.é»è®¤Redis.SetValue(device2.deviceName + "." + V2, "true", device2.deviceName + "Queue"); |
| | | |
| | | GZ.Modular.Redis.RedisHelper.Add(device2.deviceName + "." + V2, "true", out string msg1); |
| | | TcpServer.TrayIps.Remove(device2.deviceNo[inde ? 0 : 1]); |
| | | } |
| | | } |
| | | else if (device2.deviceType == 2) |
| | | { |
| | | if (device2.deviceName.Contains("Jsæ·é¡º")) |
| | | { |
| | | Task.Run(() => |
| | | { |
| | | var inde = device2.location.ToList().FindIndex(x => x == wcsTask.S_END_LOC) == 0; |
| | | string V = inde ? "D1224" : "D1225"; |
| | | Conn.é»è®¤Redis.SetValue(device2.deviceName + "." + V, "1", device2.deviceName + "Queue"); |
| | | }); |
| | | |
| | | var str = Settings.apiHelper.Post(Settings.WMSbaseUrl + "mom-basic/dataTransmission/json/service/202", JsonConvert.SerializeObject(new |
| | | { |
| | | sceneType = 3, |
| | | cntrCode = cntrs.FirstOrDefault() |
| | | })); |
| | | //if (device2.deviceName.Contains("1")) |
| | | //{ |
| | | // if (inde) tag.Js1.D1224 = 1; |
| | | // else tag.Js1.D1225 = 1; |
| | | //}else |
| | | //{ |
| | | // if (inde) tag.Js2.D1224 = 1; |
| | | // else tag.Js2.D1225 = 1; |
| | | //} |
| | | } |
| | | var ssloc = device2.deviceNo[1]; |
| | | var endloc = locrep.FindEntity(x => x.S_LOC_CODE == ssloc); |
| | | LogHelper.Info($"æ·é¡ºå¸è´§åï¼ æ¥çç¼åä½ {ssloc}-{endloc?.N_CURRENT_NUM}>0? åç³è¯·mesæ¬èµ°ã"); |
| | | if (endloc != null && endloc.N_CURRENT_NUM == 1) |
| | | { |
| | | var str = Settings.apiHelper.Post(Settings.WMSbaseUrl + "mom-basic/dataTransmission/json/service/200", JsonConvert.SerializeObject(new |
| | | { |
| | | requestType = 3, |
| | | startBit = ssloc |
| | | })); |
| | | LogHelper.Info($"{ssloc}ç³è¯·mesä»»å¡ç»æ{str}"); |
| | | } |
| | | } |
| | | } |
| | | |
| | | //LocationMethod.JudgeLocation(wcsTask); |
| | | break; |
| | | case "cancel": |
| | | LogHelper.Info($"海康车任å¡ç¶æåæ´ä¸ºåæ¶ï¼ä»»å¡å·ä¸ºï¼{model.taskCode}", "agvæåäº¤äºæ¥å¿"); |
| | | wcsTask.S_B_STATE = "åæ¶"; |
| | | //startloc.S_LOCK_STATE = "æ "; |
| | | //endLoc.S_LOCK_STATE = "æ "; |
| | | MainMissionService.Update(wcsTask); |
| | | TaskActRepository taskActRepository = new TaskActRepository(); |
| | | var tare = taskActRepository.FindList(x => x.S_TASK_NO == wcsTask.S_TASK_NO); |
| | | if (tare.Any()) |
| | | { |
| | | if (tare.Find(x => x.S_ACTION_CODE == "outbin") == null) |
| | | { |
| | | startloc.S_LOCK_STATE = "æ "; |
| | | endLoc.S_LOCK_STATE = "æ "; |
| | | locrep.Update(startloc); |
| | | locrep.Update(endLoc); |
| | | } |
| | | else if (tare.Find(x => x.S_ACTION_CODE == "end") == null) |
| | | { |
| | | endLoc.S_LOCK_STATE = "æ "; |
| | | locrep.Update(endLoc); |
| | | } |
| | | } |
| | | |
| | | //locrep.Update(startloc); |
| | | //locrep.Update(endLoc); |
| | | //TaskProcess.OperateStatus(wcsTask, 7); |
| | | //WCSHelper.Fail(wcsTask); |
| | | break; |
| | | case "apply": |
| | | // å¤æè¯¥ä»»å¡çæ¥é©³ä½æ¯å¦æå
¶ä»å
¥åºæåºåºä»»å¡ï¼å¦ææï¼åå¨çä½çå¾
ï¼å¦ææ²¡æï¼åå
¥ |
| | | //TaskisOk(wcsTask); |
| | | break; |
| | | } |
| | | |
| | | if (!string.IsNullOrEmpty(wcsTask.S_SRC_NO)) |
| | | { |
| | | var mestask = MainMissionService.FindEntity(x => x.S_TASK_NO == wcsTask.S_SRC_NO); |
| | | if (mestask != null && bobe) |
| | | { |
| | | if (model.method != "end") |
| | | { |
| | | if (mestask.S_START_LOC == wcsTask.S_START_LOC && mestask.S_B_STATE == "MES") |
| | | Settings.apiHelper.Post(Settings.WMSbaseUrl + "mom-basic/dataTransmission/json/service/201", JsonConvert.SerializeObject(new |
| | | { |
| | | reqCode = wcsTask.S_SRC_NO, |
| | | model.method |
| | | })); |
| | | } |
| | | else |
| | | { |
| | | if (mestask.S_END_LOC != wcsTask.S_END_LOC) |
| | | { |
| | | LogHelper.Info($"{wcsTask.S_SRC_NO}-{wcsTask.S_TASK_NO} ä¸é¶æ®µå®æï¼éç½®è¿è¡äºé¶æ®µã"); |
| | | mestask.N_PRIORITY = -88; |
| | | MainMissionService.Update(mestask); |
| | | } |
| | | else if (mestask.S_B_STATE == "MES") |
| | | { |
| | | var str = Settings.apiHelper.Post(Settings.WMSbaseUrl + "mom-basic/dataTransmission/json/service/201", JsonConvert.SerializeObject(new |
| | | { |
| | | reqCode = wcsTask.S_SRC_NO, |
| | | model.method |
| | | })); |
| | | } |
| | | } |
| | | |
| | | } |
| | | else if (mestask != null && model.method == "cancel") |
| | | { |
| | | if (mestask.S_B_STATE == "MES") |
| | | Settings.apiHelper.Post(Settings.WMSbaseUrl + "mom-basic/dataTransmission/json/service/201", JsonConvert.SerializeObject(new |
| | | { |
| | | reqCode = wcsTask.S_SRC_NO, |
| | | model.method |
| | | })); |
| | | LogHelper.Info($"{wcsTask.S_SRC_NO}-{wcsTask.S_TASK_NO} ä¸é¶æ®µåæ¶ï¼éç½®ç¹ï¼çº¿ç¨å¤çã"); |
| | | mestask.N_PRIORITY = -1; |
| | | mestask.S_B_STATE = "MES_åæ¶"; |
| | | MainMissionService.Update(mestask); |
| | | } |
| | | } |
| | | TaskProcess.AddActionRecord(model.taskCode, model.method, model.eqpCode, model.data, wcsTask.S_START_LOC, wcsTask.S_END_LOC); |
| | | //è°ç¨ç¬¬ä¸æ¹æ¥å£ï¼å¦ææï¼TaskProcess.ReportStatus |
| | | } |
| | | else |
| | | { |
| | | // ææ¶è®¾å®ä¸º0 |
| | | wcsTask.S_B_STATE = "䏿¥ç¶æç©º"; |
| | | //å®å
¨è¯·æ±ç |
| | | //TaskProcess.OperateReq(model.taskCode, wcsTask.N_B_STATE, model.eqpCode, model.data); |
| | | } |
| | | } |
| | | else |
| | | { |
| | | LogHelper.Info($"å½åä»»å¡å·ä»»å¡ä¸åå¨{model.taskCode} agvæåäº¤äºæ¥å¿"); |
| | | return new HkReturnResult { reqCode = model.reqCode, code = 1, message = "è¿ä¸æ¯æä»¬çä»»å¡ã" }; |
| | | } |
| | | return new HkReturnResult { reqCode = model.reqCode, code = 0 }; |
| | | } |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | } |
| | | |
| | |
| | | HaiKangOrderInfo model = (HaiKangOrderInfo)param1; |
| | | if (string.IsNullOrEmpty(model.taskCode)) |
| | | return; |
| | | // æ¥è¯¢ä»»å¡ï¼æ ¹æ®ä»»å¡å· |
| | | //var wcsTask = WCSHelper.GetTask(model.taskCode); |
| | | ITaskRepository MainMissionService = new TaskRepository(); |
| | | var wcsTask = MainMissionService.FindEntity(x => model.taskCode == x.S_TASK_NO); |
| | | if (wcsTask != null) |
| | | { |
| | | if (!string.IsNullOrWhiteSpace(model.method)) |
| | | { |
| | | ILocRepository locrep = new LocRepository(); |
| | | var startloc = locrep.FindEntity(x => x.S_LOC_CODE == wcsTask.S_START_LOC); |
| | | var endLoc = locrep.FindEntity(x => x.S_LOC_CODE == wcsTask.S_END_LOC); |
| | | |
| | | List<string> cntrs = wcsTask.S_CNTRS.Split(',').ToList(); |
| | | bool bobe = false; |
| | | //model.method = model.method?.ToLower(); |
| | | switch (model.method) |
| | | { |
| | | case "start": |
| | | LogHelper.Info($"海康车任å¡ç¶æåæ´ä¸ºæ§è¡ï¼ä»»å¡å·ä¸ºï¼{model.taskCode}", "agvæåäº¤äºæ¥å¿"); |
| | | if (wcsTask.S_B_STATE.Trim() == "å·²æ¨é") |
| | | { |
| | | wcsTask.S_B_STATE = "æ§è¡ä¸"; |
| | | wcsTask.T_START_TIME = DateTime.Now; |
| | | MainMissionService.Update(wcsTask); |
| | | bobe = true; |
| | | } |
| | | break; |
| | | case "outBin": |
| | | case "outbin": |
| | | model.method = model.method?.ToLower(); |
| | | LogHelper.Info($"海康车任å¡ç¶æåæ´ä¸ºåè´§å®æï¼ä»»å¡å·ä¸ºï¼{model.taskCode}", "agvæåäº¤äºæ¥å¿"); |
| | | wcsTask.S_B_STATE = "åè´§å®æ"; |
| | | |
| | | startloc.N_CURRENT_NUM = 0; |
| | | startloc.S_LOCK_STATE = "æ "; |
| | | startloc.T_MODIFY = DateTime.Now; |
| | | //ILocContainerRepository locContainerRepository = new LocContainerRepository(); |
| | | ////var cnr = locContainerRepository.FindList(x => cntrs.Contains(x.S_CNTR_CODE.Trim()) && x.S_LOC_CODE == wcsTask.S_START_LOC); |
| | | //locContainerRepository.Delete(x => cntrs.Contains(x.S_CNTR_CODE.Trim()) && x.S_LOC_CODE == wcsTask.S_START_LOC); |
| | | MainMissionService.Update(wcsTask); |
| | | locrep.Update(startloc); |
| | | |
| | | bobe = true; |
| | | var device = Settings.deviceInfos.Find(x => x.location.Contains(wcsTask.S_START_LOC)); |
| | | if (device != null) |
| | | { |
| | | if (device.deviceType == 1) |
| | | { |
| | | if (device.deviceName.Contains("ç»´å¸å°æè")) |
| | | { //å¸è´§è¿è¡æ¸
空ï¼è§¦åæ«ç |
| | | var inde = device.location.ToList().FindIndex(x => x == wcsTask.S_START_LOC) == 0; |
| | | string V = inde ? "R05" : "R06"; |
| | | Conn.é»è®¤Redis.SetValue(device.deviceName + "." + V, "true", device.deviceName + "Queue", false); |
| | | |
| | | TcpServer.TrayIps.Remove(device.deviceNo[inde ? 0 : 1]); |
| | | } |
| | | } |
| | | else if (device.deviceType == 2) |
| | | { |
| | | //Task.Run(() => |
| | | //{ |
| | | // var inde = device.location.ToList().FindIndex(x => x == wcsTask.S_START_LOC) == 0; |
| | | // string V = inde ? "D1224" : "D1225"; |
| | | // Conn.é»è®¤Redis.SetValue(device.deviceName + "." + V, "0", device.deviceName + "Queue"); |
| | | //}); |
| | | } |
| | | } |
| | | //LocationHelper.UnLockLoc(wcsTask.S_START_LOC); |
| | | break; |
| | | case "end": |
| | | LogHelper.Info($"海康车任å¡ç¶æåæ´ä¸ºå®æï¼ä»»å¡å·ä¸ºï¼{model.taskCode}", "agvæåäº¤äºæ¥å¿"); |
| | | wcsTask.S_B_STATE = "宿"; |
| | | wcsTask.T_END_TIME = DateTime.Now; |
| | | |
| | | bobe = true; |
| | | //ILocContainerRepository locContainerRepository2 = new LocContainerRepository(); |
| | | //List<LocContainerEntity> llls = new List<LocContainerEntity>(); |
| | | //foreach (var c in cntrs) |
| | | //{ |
| | | // var action = new LocContainerEntity() |
| | | // { |
| | | // S_ID = Guid.NewGuid().ToString(), |
| | | // S_STATE = "ç¼è¾", |
| | | // T_CREATE = DateTime.Now, |
| | | // T_MODIFY = DateTime.Now, |
| | | |
| | | // S_LOC_CODE = endLoc.S_LOC_CODE, |
| | | // S_CNTR_CODE = c, |
| | | // S_TYPE = "", |
| | | // }; |
| | | // llls.Add(action); |
| | | //} |
| | | |
| | | endLoc.S_LOCK_STATE = "æ "; |
| | | endLoc.N_CURRENT_NUM = 1; |
| | | endLoc.T_MODIFY = DateTime.Now; |
| | | MainMissionService.Update(wcsTask); |
| | | if (Settings.deviceInfos.Find(x => x.deviceType == 2 && (/*x.location.Contains(wcsTask.S_END_LOC)||*/x.deviceNo.Contains(wcsTask.S_END_LOC))) != null) |
| | | locrep.Update(endLoc); |
| | | //locContainerRepository2.Insert(llls); |
| | | |
| | | var device2 = Settings.deviceInfos.Find(x => x.location.Contains(wcsTask.S_END_LOC)); |
| | | if (device2 != null) |
| | | { |
| | | if (device2.deviceType == 1) |
| | | { |
| | | if (device2.deviceName.Contains("ç»´å¸å°æè")) |
| | | { |
| | | //string V = device2.location.ToList().FindIndex(x => x == wcsTask.S_START_LOC) == 0 ? "R10" : "R11"; |
| | | //Conn.é»è®¤Redis.SetValue(device2.deviceName + "." + V, "true", device2.deviceName + "Queue"); |
| | | //å¸è´§ååæçåèµ°ã ç¶åè§¦åæ«ç è¿è¡æ ¡éªã |
| | | var inde = device2.location.ToList().FindIndex(x => x == wcsTask.S_END_LOC) == 0; |
| | | //string V = inde ? "R05" : "R06"; |
| | | //Conn.é»è®¤Redis.SetValue(device2.deviceName + "." + V, "true", device2.deviceName + "Queue"); |
| | | string V2 = inde ? "R10_LAST" : "R11_LAST"; |
| | | //Conn.é»è®¤Redis.SetValue(device2.deviceName + "." + V2, "true", device2.deviceName + "Queue"); |
| | | |
| | | GZ.Modular.Redis.RedisHelper.Add(device2.deviceName + "." + V2, "true", out string msg1); |
| | | TcpServer.TrayIps.Remove(device2.deviceNo[inde ? 0 : 1]); |
| | | } |
| | | } |
| | | else if (device2.deviceType == 2) |
| | | { |
| | | if (device2.deviceName.Contains("Jsæ·é¡º")) |
| | | { |
| | | Task.Run(() => |
| | | { |
| | | var inde = device2.location.ToList().FindIndex(x => x == wcsTask.S_END_LOC) == 0; |
| | | string V = inde ? "D1224" : "D1225"; |
| | | Conn.é»è®¤Redis.SetValue(device2.deviceName + "." + V, "1", device2.deviceName + "Queue"); |
| | | }); |
| | | |
| | | var str = Settings.apiHelper.Post(Settings.WMSbaseUrl + "mom-basic/dataTransmission/json/service/202", JsonConvert.SerializeObject(new |
| | | { |
| | | sceneType = 3, |
| | | cntrCode = cntrs.FirstOrDefault() |
| | | })); |
| | | //if (device2.deviceName.Contains("1")) |
| | | //{ |
| | | // if (inde) tag.Js1.D1224 = 1; |
| | | // else tag.Js1.D1225 = 1; |
| | | //}else |
| | | //{ |
| | | // if (inde) tag.Js2.D1224 = 1; |
| | | // else tag.Js2.D1225 = 1; |
| | | //} |
| | | } |
| | | var ssloc = device2.deviceNo[1]; |
| | | var endloc = locrep.FindEntity(x => x.S_LOC_CODE == ssloc); |
| | | LogHelper.Info($"æ·é¡ºå¸è´§åï¼ æ¥çç¼åä½ {ssloc}-{endloc?.N_CURRENT_NUM}>0? åç³è¯·mesæ¬èµ°ã"); |
| | | if (endloc != null && endloc.N_CURRENT_NUM == 1) |
| | | { |
| | | var str = Settings.apiHelper.Post(Settings.WMSbaseUrl + "mom-basic/dataTransmission/json/service/200", JsonConvert.SerializeObject(new |
| | | { |
| | | requestType = 3, |
| | | startBit = ssloc |
| | | })); |
| | | LogHelper.Info($"{ssloc}ç³è¯·mesä»»å¡ç»æ{str}"); |
| | | } |
| | | } |
| | | } |
| | | |
| | | //LocationMethod.JudgeLocation(wcsTask); |
| | | break; |
| | | case "cancel": |
| | | LogHelper.Info($"海康车任å¡ç¶æåæ´ä¸ºåæ¶ï¼ä»»å¡å·ä¸ºï¼{model.taskCode}", "agvæåäº¤äºæ¥å¿"); |
| | | wcsTask.S_B_STATE = "åæ¶"; |
| | | //startloc.S_LOCK_STATE = "æ "; |
| | | //endLoc.S_LOCK_STATE = "æ "; |
| | | MainMissionService.Update(wcsTask); |
| | | TaskActRepository taskActRepository = new TaskActRepository(); |
| | | var tare = taskActRepository.FindList(x => x.S_TASK_NO == wcsTask.S_TASK_NO); |
| | | if (tare.Any()) |
| | | { |
| | | if (tare.Find(x => x.S_ACTION_CODE == "outbin") == null) |
| | | { |
| | | startloc.S_LOCK_STATE = "æ "; |
| | | endLoc.S_LOCK_STATE = "æ "; |
| | | locrep.Update(startloc); |
| | | locrep.Update(endLoc); |
| | | } |
| | | else if (tare.Find(x => x.S_ACTION_CODE == "end") == null) |
| | | { |
| | | endLoc.S_LOCK_STATE = "æ "; |
| | | locrep.Update(endLoc); |
| | | } |
| | | } |
| | | |
| | | //locrep.Update(startloc); |
| | | //locrep.Update(endLoc); |
| | | //TaskProcess.OperateStatus(wcsTask, 7); |
| | | //WCSHelper.Fail(wcsTask); |
| | | break; |
| | | case "apply": |
| | | // å¤æè¯¥ä»»å¡çæ¥é©³ä½æ¯å¦æå
¶ä»å
¥åºæåºåºä»»å¡ï¼å¦ææï¼åå¨çä½çå¾
ï¼å¦ææ²¡æï¼åå
¥ |
| | | TaskisOk(wcsTask); |
| | | break; |
| | | } |
| | | |
| | | if (!string.IsNullOrEmpty(wcsTask.S_SRC_NO)) |
| | | { |
| | | var mestask = MainMissionService.FindEntity(x => x.S_TASK_NO == wcsTask.S_SRC_NO); |
| | | if (mestask != null && bobe) |
| | | { |
| | | if (model.method != "end") |
| | | { |
| | | if (mestask.S_START_LOC == wcsTask.S_START_LOC && mestask.S_B_STATE == "MES") |
| | | Settings.apiHelper.Post(Settings.WMSbaseUrl + "mom-basic/dataTransmission/json/service/201", JsonConvert.SerializeObject(new |
| | | { |
| | | reqCode = wcsTask.S_SRC_NO, |
| | | model.method |
| | | })); |
| | | } |
| | | else |
| | | { |
| | | if (mestask.S_END_LOC != wcsTask.S_END_LOC) |
| | | { |
| | | LogHelper.Info($"{wcsTask.S_SRC_NO}-{wcsTask.S_TASK_NO} ä¸é¶æ®µå®æï¼éç½®è¿è¡äºé¶æ®µã"); |
| | | mestask.N_PRIORITY = -88; |
| | | MainMissionService.Update(mestask); |
| | | } |
| | | else if (mestask.S_B_STATE == "MES") |
| | | { |
| | | var str = Settings.apiHelper.Post(Settings.WMSbaseUrl + "mom-basic/dataTransmission/json/service/201", JsonConvert.SerializeObject(new |
| | | { |
| | | reqCode = wcsTask.S_SRC_NO, |
| | | model.method |
| | | })); |
| | | } |
| | | } |
| | | |
| | | } |
| | | else if (mestask != null && model.method == "cancel") |
| | | { |
| | | if (mestask.S_B_STATE == "MES") |
| | | Settings.apiHelper.Post(Settings.WMSbaseUrl + "mom-basic/dataTransmission/json/service/201", JsonConvert.SerializeObject(new |
| | | { |
| | | reqCode = wcsTask.S_SRC_NO, |
| | | model.method |
| | | })); |
| | | LogHelper.Info($"{wcsTask.S_SRC_NO}-{wcsTask.S_TASK_NO} ä¸é¶æ®µåæ¶ï¼éç½®ç¹ï¼çº¿ç¨å¤çã"); |
| | | mestask.N_PRIORITY = -1; |
| | | mestask.S_B_STATE = "MES_åæ¶"; |
| | | MainMissionService.Update(mestask); |
| | | } |
| | | } |
| | | TaskProcess.AddActionRecord(model.taskCode, model.method, model.eqpCode, model.data, wcsTask.S_START_LOC, wcsTask.S_END_LOC); |
| | | //è°ç¨ç¬¬ä¸æ¹æ¥å£ï¼å¦ææï¼TaskProcess.ReportStatus |
| | | } |
| | | else |
| | | { |
| | | // ææ¶è®¾å®ä¸º0 |
| | | wcsTask.S_B_STATE = "䏿¥ç¶æç©º"; |
| | | //å®å
¨è¯·æ±ç |
| | | //TaskProcess.OperateReq(model.taskCode, wcsTask.N_B_STATE, model.eqpCode, model.data); |
| | | } |
| | | } |
| | | else |
| | | { |
| | | LogHelper.Info($"å½åä»»å¡å·ä»»å¡ä¸åå¨{model.taskCode} agvæåäº¤äºæ¥å¿"); |
| | | } |
| | | var hkr = AutoThread.InvokeMethod(AutoThread.Instance, "OperateHKTaskStatus", new object[] { model }); |
| | | //return JsonConvert.SerializeObject(hkr); |
| | | #endregion [èªå®ä¹æä»¤][20250324165239206][OperateHKTaskStatus] |
| | | } |
| | | public GZ.DB.Entity.OIDATABASE.TaskEntity Begin(GZ.DB.Entity.OIDATABASE.TaskEntity task) |
| | |
| | | |
| | | //var tsret = JsonConvert.DeserializeObject<Messss>(a); |
| | | Action myDelegate = () => SettingInit(); |
| | | /*var ts = */ |
| | | AutoThread.InvokeMethod(AutoThread.Instance, "ThreadSettingInit", new object[] { tag, myDelegate }); |
| | | //if (ts.GetType() == typeof(HkReturnResult)) |
| | | // Console.WriteLine(ts); |
| | | #endregion [èæ¬][20250323111613779][ä¸å¡é»è¾.åå§åé
ç½®] |
| | | } |
| | | catch (Exception ex) |
| | |
| | | } |
| | | public static void ResMesTask() |
| | | { |
| | | AutoThread.InvokeMethod(AutoThread.Instance, "ResolveMesTask"); |
| | | ///1. |
| | | TaskRepository taskservice = new TaskRepository(); |
| | | var tasks = taskservice.FindList(x => (x.S_B_STATE == "MES" || x.S_B_STATE == "People") && x.N_PRIORITY == -88); |
| | | var VERXs = Settings.deviceInfos?.FindAll(x => x.deviceType == 2); |
| | | //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() ?? 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; |
| | | taskservice.dbcontext.Entry(task).Property(x => x.N_PRIORITY).IsModified = true; |
| | | taskservice.dbcontext.SaveChanges(); |
| | | } |
| | | } |
| | | else |
| | | { |
| | | var sindex = sx.location.ToList().IndexOf(task.S_END_LOC); |
| | | 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(); |
| | | if (t1.S_END_LOC == task.S_END_LOC) |
| | | { |
| | | task.N_PRIORITY = 0; |
| | | task.S_B_STATE = "MES_宿"; |
| | | taskservice.Update(task); |
| | | continue; |
| | | } |
| | | if (t1.S_B_STATE == "宿") |
| | | { |
| | | //1.ç»ç¹æ¯å¦ææçã 便®æ¯ç»ç¹ç任塿¯ ä½ä¸ºç»ç¹ï¼è¿æ¯èµ·ç¹ã |
| | | //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"); |
| | | //var ec = taskservice.FindList(x => x.S_START_LOC == task.S_START_LOC && x.S_END_LOC == task.S_START_LOC, new Common.Data.Pagination |
| | | // { |
| | | // page = 1, |
| | | // sidx = "T_CREATE", |
| | | // 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(); |
| | | 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) |
| | | { |
| | | 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.Trim() == "æ ") |
| | | { |
| | | endLoc = endloc; |
| | | //break; |
| | | } |
| | | } |
| | | if (endLoc != null) |
| | | { |
| | | 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) |
| | | { |
| | | task.N_PRIORITY = 0; taskservice.Update(task); |
| | | } |
| | | } |
| | | } |
| | | } |
| | | else |
| | | { |
| | | LogHelper.Info($"è§£éMESä»»å¡ ->{task.S_TASK_NO} çéçæç¬¬ä¸æ®µ ä»»å¡ã"); |
| | | //çæç¬¬ä¸æ®µã |
| | | LocEntity endLoc = null; |
| | | var di = sx; |
| | | if (di != null) |
| | | { |
| | | //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.Trim() == "æ ") |
| | | { |
| | | endLoc = endloc; |
| | | //break; |
| | | } |
| | | } |
| | | if (endLoc != null) |
| | | { |
| | | 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); |
| | | } |
| | | } |
| | | } |
| | | } |
| | | |
| | | } |
| | | } |
| | | //var VERX = Settings.deviceInfos?.FindAll(x => x.deviceName.Contains("æ·ç¬æè")); |
| | | //if () |
| | | ///2 çç¼ååºã 没满çã |
| | | |
| | | |
| | | } |
| | | |
| | | |
| | |
| | | } |
| | | ], |
| | | "CreationTime": "2025-02-26 15:31:23", |
| | | "LastWriteTime": "2025-06-28 17:31:04" |
| | | "LastWriteTime": "2025-06-30 08:15:13" |
| | | } |
| | |
| | | public TagSRdu1026 SRdu1026 { get { return _SRdu1026; } set { _SRdu1026=value; RaisePropertyChanged("SRdu1026"); } } |
| | | private TagRGV _RGV = new TagRGV(); |
| | | public TagRGV RGV { get { return _RGV; } set { _RGV=value; RaisePropertyChanged("RGV"); } } |
| | | private TagSFT䏿壿ç _SFT䏿壿ç = new TagSFT䏿壿ç(); |
| | | public TagSFT䏿壿ç SFT䏿壿ç { get { return _SFT䏿壿ç; } set { _SFT䏿壿ç=value; RaisePropertyChanged("SFT䏿壿ç"); } } |
| | | #endregion |
| | | |
| | | #region å
é¨ç±» |
| | |
| | | RaisePropertyChanged("WSafe1113"); |
| | | } |
| | | } |
| | | private System.UInt16 _rRelease1013Over; |
| | | public System.UInt16 rRelease1013Over |
| | | { |
| | | get |
| | | { |
| | | return _rRelease1013Over; |
| | | } |
| | | set |
| | | { |
| | | _rRelease1013Over = value; |
| | | RaisePropertyChanged("rRelease1013Over"); |
| | | } |
| | | } |
| | | private System.UInt16 _rRelease1003Over; |
| | | public System.UInt16 rRelease1003Over |
| | | { |
| | | get |
| | | { |
| | | return _rRelease1003Over; |
| | | } |
| | | set |
| | | { |
| | | _rRelease1003Over = value; |
| | | RaisePropertyChanged("rRelease1003Over"); |
| | | } |
| | | } |
| | | private System.UInt16 _rRelease1005Over; |
| | | public System.UInt16 rRelease1005Over |
| | | { |
| | | get |
| | | { |
| | | return _rRelease1005Over; |
| | | } |
| | | set |
| | | { |
| | | _rRelease1005Over = value; |
| | | RaisePropertyChanged("rRelease1005Over"); |
| | | } |
| | | } |
| | | private System.UInt16 _rRelease1011Over; |
| | | public System.UInt16 rRelease1011Over |
| | | { |
| | | get |
| | | { |
| | | return _rRelease1011Over; |
| | | } |
| | | set |
| | | { |
| | | _rRelease1011Over = value; |
| | | RaisePropertyChanged("rRelease1011Over"); |
| | | } |
| | | } |
| | | private System.UInt16 _wArrive1003Over; |
| | | public System.UInt16 wArrive1003Over |
| | | { |
| | | get |
| | | { |
| | | return _wArrive1003Over; |
| | | } |
| | | set |
| | | { |
| | | _wArrive1003Over = value; |
| | | RaisePropertyChanged("wArrive1003Over"); |
| | | } |
| | | } |
| | | private System.UInt16 _wArrive1005Over; |
| | | public System.UInt16 wArrive1005Over |
| | | { |
| | | get |
| | | { |
| | | return _wArrive1005Over; |
| | | } |
| | | set |
| | | { |
| | | _wArrive1005Over = value; |
| | | RaisePropertyChanged("wArrive1005Over"); |
| | | } |
| | | } |
| | | private System.UInt16 _wArrive1011Over; |
| | | public System.UInt16 wArrive1011Over |
| | | { |
| | | get |
| | | { |
| | | return _wArrive1011Over; |
| | | } |
| | | set |
| | | { |
| | | _wArrive1011Over = value; |
| | | RaisePropertyChanged("wArrive1011Over"); |
| | | } |
| | | } |
| | | private System.UInt16 _wArrive1013Over; |
| | | public System.UInt16 wArrive1013Over |
| | | { |
| | | get |
| | | { |
| | | return _wArrive1013Over; |
| | | } |
| | | set |
| | | { |
| | | _wArrive1013Over = value; |
| | | RaisePropertyChanged("wArrive1013Over"); |
| | | } |
| | | } |
| | | #endregion |
| | | |
| | | #region åéç» |
| | |
| | | RaisePropertyChanged("Ræå¨1èªå¨2"); |
| | | } |
| | | } |
| | | private System.UInt16 _w2status; |
| | | public System.UInt16 w2status |
| | | { |
| | | get |
| | | { |
| | | return _w2status; |
| | | } |
| | | set |
| | | { |
| | | _w2status = value; |
| | | RaisePropertyChanged("w2status"); |
| | | } |
| | | } |
| | | private System.UInt16 _w1status; |
| | | public System.UInt16 w1status |
| | | { |
| | | get |
| | | { |
| | | return _w1status; |
| | | } |
| | | set |
| | | { |
| | | _w1status = value; |
| | | RaisePropertyChanged("w1status"); |
| | | } |
| | | } |
| | | #endregion |
| | | |
| | | #region åéç» |
| | | #endregion |
| | | |
| | | #region å
é¨ç±» |
| | | |
| | | #endregion |
| | | |
| | | #region 屿§åæ´ |
| | | public event System.ComponentModel.PropertyChangedEventHandler PropertyChanged; |
| | | public void RaisePropertyChanged(string propertyName) |
| | | { |
| | | System.ComponentModel.PropertyChangedEventHandler handler = PropertyChanged; |
| | | if (handler != null) |
| | | { |
| | | handler(this, new System.ComponentModel.PropertyChangedEventArgs(propertyName)); |
| | | } |
| | | } |
| | | #endregion |
| | | } |
| | | |
| | | public class TagSFT䏿壿ç : System.ComponentModel.INotifyPropertyChanged |
| | | { |
| | | #region åé |
| | | private System.String _R1003Barcode; |
| | | public System.String R1003Barcode |
| | | { |
| | | get |
| | | { |
| | | return _R1003Barcode; |
| | | } |
| | | set |
| | | { |
| | | _R1003Barcode = value; |
| | | RaisePropertyChanged("R1003Barcode"); |
| | | } |
| | | } |
| | | private System.String _R1005Barcode; |
| | | public System.String R1005Barcode |
| | | { |
| | | get |
| | | { |
| | | return _R1005Barcode; |
| | | } |
| | | set |
| | | { |
| | | _R1005Barcode = value; |
| | | RaisePropertyChanged("R1005Barcode"); |
| | | } |
| | | } |
| | | private System.String _R1011Barcode; |
| | | public System.String R1011Barcode |
| | | { |
| | | get |
| | | { |
| | | return _R1011Barcode; |
| | | } |
| | | set |
| | | { |
| | | _R1011Barcode = value; |
| | | RaisePropertyChanged("R1011Barcode"); |
| | | } |
| | | } |
| | | private System.String _R1013Barcode; |
| | | public System.String R1013Barcode |
| | | { |
| | | get |
| | | { |
| | | return _R1013Barcode; |
| | | } |
| | | set |
| | | { |
| | | _R1013Barcode = value; |
| | | RaisePropertyChanged("R1013Barcode"); |
| | | } |
| | | } |
| | | #endregion |
| | | |
| | | #region åéç» |
| | |
| | | public static void ResMesTask() |
| | | { |
| | | ///1. |
| | | TaskRepository taskservice = new TaskRepository(); |
| | | var tasks = taskservice.FindList(x => (x.S_B_STATE == "MES" || x.S_B_STATE == "People") && x.N_PRIORITY == -88); |
| | | var VERXs = Settings.deviceInfos?.FindAll(x => x.deviceType == 2); |
| | | //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() ?? 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; |
| | | taskservice.dbcontext.Entry(task).Property(x => x.N_PRIORITY).IsModified = true; |
| | | taskservice.dbcontext.SaveChanges(); |
| | | } |
| | | } |
| | | else |
| | | { |
| | | var sindex = sx.location.ToList().IndexOf(task.S_END_LOC); |
| | | 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(); |
| | | if (t1.S_END_LOC == task.S_END_LOC) |
| | | { |
| | | task.N_PRIORITY = 0; |
| | | task.S_B_STATE = "MES_宿"; |
| | | taskservice.Update(task); |
| | | continue; |
| | | } |
| | | if (t1.S_B_STATE == "宿") |
| | | { |
| | | //1.ç»ç¹æ¯å¦ææçã 便®æ¯ç»ç¹ç任塿¯ ä½ä¸ºç»ç¹ï¼è¿æ¯èµ·ç¹ã |
| | | //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"); |
| | | //var ec = taskservice.FindList(x => x.S_START_LOC == task.S_START_LOC && x.S_END_LOC == task.S_START_LOC, new Common.Data.Pagination |
| | | // { |
| | | // page = 1, |
| | | // sidx = "T_CREATE", |
| | | // 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) |
| | | { |
| | | //ç¬¬äºæ®µã |
| | | LocEntity endLoc = null; |
| | | var di = sx; |
| | | if (di != null) |
| | | { |
| | | foreach (var ssloc in di.deviceNo) |
| | | { |
| | | var endloc = locRepository.FindEntity(x => x.S_LOC_CODE == ssloc); |
| | | if (endloc != null && endloc.N_CURRENT_NUM == 0 && endloc.S_LOCK_STATE == "æ ") |
| | | { |
| | | endLoc = endloc; |
| | | 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()); |
| | | if (res) |
| | | { |
| | | task.N_PRIORITY = 0; taskservice.Update(task); |
| | | } |
| | | } |
| | | } |
| | | } |
| | | else |
| | | { |
| | | 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) |
| | | { |
| | | task.N_PRIORITY = 0; taskservice.Update(task); |
| | | } |
| | | } |
| | | } |
| | | } |
| | | else |
| | | { |
| | | LogHelper.Info($"è§£éMESä»»å¡ ->{task.S_TASK_NO} çéçæç¬¬ä¸æ®µ ä»»å¡ã"); |
| | | //çæç¬¬ä¸æ®µã |
| | | LocEntity endLoc = null; |
| | | var di = sx; |
| | | if (di != null) |
| | | { |
| | | foreach (var ssloc in di.deviceNo) |
| | | { |
| | | var endloc = locRepository.FindEntity(x => x.S_LOC_CODE == ssloc); |
| | | if (endloc != null && endloc.N_CURRENT_NUM == 0 && endloc.S_LOCK_STATE == "æ ") |
| | | { |
| | | endLoc = endloc; |
| | | break; |
| | | } |
| | | } |
| | | if (endLoc != null) |
| | | { |
| | | LogHelper.Info($"è§£éMESä»»å¡ ->{task.S_TASK_NO} åå»ºç¬¬ä¸æ®µ ä»»å¡ã"); |
| | | 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} åå»ºç¬¬ä¸æ®µ ä»»å¡ãç»æï¼{res}"); |
| | | if (res) |
| | | { |
| | | task.N_PRIORITY = 0; taskservice.Update(task); |
| | | } |
| | | } |
| | | } |
| | | } |
| | | |
| | | } |
| | | } |
| | | |
| | | AutoThread.InvokeMethod(AutoThread.Instance, "ResolveMesTask"); |
| | | //var VERX = Settings.deviceInfos?.FindAll(x => x.deviceName.Contains("æ·ç¬æè")); |
| | | //if () |
| | | ///2 çç¼ååºã 没满çã |
| | |
| | | "Type": "MethodCode", |
| | | "Level": "Item", |
| | | "Statement": "public void OperateHKTaskStatus(System.Object param1)", |
| | | "EditCode": "HaiKangOrderInfo model = (HaiKangOrderInfo)param1;\r\n if (string.IsNullOrEmpty(model.taskCode))\r\n return;\r\n // æ¥è¯¢ä»»å¡ï¼æ ¹æ®ä»»å¡å·\r\n //var wcsTask = WCSHelper.GetTask(model.taskCode);\r\n ITaskRepository MainMissionService = new TaskRepository();\r\n var wcsTask = MainMissionService.FindEntity(x => model.taskCode == x.S_TASK_NO);\r\n if (wcsTask != null)\r\n {\r\n if (!string.IsNullOrWhiteSpace(model.method))\r\n {\r\n ILocRepository locrep = new LocRepository();\r\n var startloc = locrep.FindEntity(x => x.S_LOC_CODE == wcsTask.S_START_LOC);\r\n var endLoc = locrep.FindEntity(x => x.S_LOC_CODE == wcsTask.S_END_LOC);\r\n\r\n List<string> cntrs = wcsTask.S_CNTRS.Split(',').ToList();\r\n bool bobe = false;\r\n switch (model.method)\r\n {\r\n case \"start\":\r\n LogHelper.Info($\"海康车任å¡ç¶æåæ´ä¸ºæ§è¡ï¼ä»»å¡å·ä¸ºï¼{model.taskCode}\", \"agvæåäº¤äºæ¥å¿\");\r\n if (wcsTask.S_B_STATE.Trim() == \"å·²æ¨é\")\r\n {\r\n wcsTask.S_B_STATE = \"æ§è¡ä¸\";\r\n wcsTask.T_START_TIME = DateTime.Now;\r\n MainMissionService.Update(wcsTask);\r\n bobe = true;\r\n }\r\n break;\r\n case \"outbin\":\r\n LogHelper.Info($\"海康车任å¡ç¶æåæ´ä¸ºåè´§å®æï¼ä»»å¡å·ä¸ºï¼{model.taskCode}\", \"agvæåäº¤äºæ¥å¿\");\r\n wcsTask.S_B_STATE = \"åè´§å®æ\";\r\n\r\n startloc.N_CURRENT_NUM = 0;\r\n startloc.S_LOCK_STATE = \"æ \";\r\n startloc.T_MODIFY = DateTime.Now;\r\n //ILocContainerRepository locContainerRepository = new LocContainerRepository();\r\n ////var cnr = locContainerRepository.FindList(x => cntrs.Contains(x.S_CNTR_CODE.Trim()) && x.S_LOC_CODE == wcsTask.S_START_LOC);\r\n //locContainerRepository.Delete(x => cntrs.Contains(x.S_CNTR_CODE.Trim()) && x.S_LOC_CODE == wcsTask.S_START_LOC);\r\n MainMissionService.Update(wcsTask);\r\n locrep.Update(startloc);\r\n\r\n bobe = true;\r\n var device = Settings.deviceInfos.Find(x => x.location.Contains(wcsTask.S_START_LOC));\r\n if (device != null)\r\n {\r\n if (device.deviceType == 1)\r\n {\r\n if (device.deviceName.Contains(\"ç»´å¸å°æè\"))\r\n { //å¸è´§è¿è¡æ¸
空ï¼è§¦åæ«ç \r\n var inde = device.location.ToList().FindIndex(x => x == wcsTask.S_START_LOC) == 0;\r\n string V = inde ? \"R05\" : \"R06\";\r\n Conn.é»è®¤Redis.SetValue(device.deviceName + \".\" + V, \"true\", device.deviceName + \"Queue\",false);\r\n \r\n TcpServer.TrayIps.Remove(device.deviceNo[inde ? 0 : 1]);\r\n }\r\n }\r\n else if(device.deviceType == 2){\r\n\t\t\t\t\t\t\t\t\tvar inde = device.location.ToList().FindIndex(x => x == wcsTask.S_START_LOC) == 0;\r\n\t\t\t\t\t\t\t\t\t string V = inde? \"D1224\" : \"D1225\";\r\n\t\t\t\t\t\t\t\t\t Conn.é»è®¤Redis.SetValue(device.deviceName + \".\" + V, \"0\", device.deviceName + \"Queue\");\r\n }\r\n }\r\n //LocationHelper.UnLockLoc(wcsTask.S_START_LOC);\r\n break;\r\n case \"end\":\r\n LogHelper.Info($\"海康车任å¡ç¶æåæ´ä¸ºå®æï¼ä»»å¡å·ä¸ºï¼{model.taskCode}\", \"agvæåäº¤äºæ¥å¿\");\r\n wcsTask.S_B_STATE = \"宿\";\r\n wcsTask.T_END_TIME = DateTime.Now;\r\n\r\n bobe = true;\r\n //ILocContainerRepository locContainerRepository2 = new LocContainerRepository();\r\n //List<LocContainerEntity> llls = new List<LocContainerEntity>();\r\n //foreach (var c in cntrs)\r\n //{\r\n // var action = new LocContainerEntity()\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_LOC_CODE = endLoc.S_LOC_CODE,\r\n // S_CNTR_CODE = c,\r\n // S_TYPE = \"\",\r\n // };\r\n // llls.Add(action);\r\n //}\r\n\r\n endLoc.S_LOCK_STATE = \"æ \";\r\n endLoc.N_CURRENT_NUM = 1;\r\n endLoc.T_MODIFY = DateTime.Now;\r\n MainMissionService.Update(wcsTask);\r\n if(Settings.deviceInfos.Find(x=>x.deviceType==2 && (/*x.location.Contains(wcsTask.S_END_LOC)||*/x.deviceNo.Contains(wcsTask.S_END_LOC)))!=null)\r\n locrep.Update(endLoc);\r\n //locContainerRepository2.Insert(llls);\r\n\r\n var device2 = Settings.deviceInfos.Find(x => x.location.Contains(wcsTask.S_END_LOC));\r\n if (device2 != null)\r\n {\r\n if (device2.deviceType == 1)\r\n {\r\n if (device2.deviceName.Contains(\"ç»´å¸å°æè\"))\r\n {\r\n //string V = device2.location.ToList().FindIndex(x => x == wcsTask.S_START_LOC) == 0 ? \"R10\" : \"R11\";\r\n //Conn.é»è®¤Redis.SetValue(device2.deviceName + \".\" + V, \"true\", device2.deviceName + \"Queue\");\r\n //å¸è´§ååæçåèµ°ã ç¶åè§¦åæ«ç è¿è¡æ ¡éªã \r\n var inde = device2.location.ToList().FindIndex(x => x == wcsTask.S_END_LOC) == 0;\r\n //string V = inde ? \"R05\" : \"R06\";\r\n //Conn.é»è®¤Redis.SetValue(device2.deviceName + \".\" + V, \"true\", device2.deviceName + \"Queue\");\r\n string V2 = inde ? \"R10_LAST\" : \"R11_LAST\";\r\n //Conn.é»è®¤Redis.SetValue(device2.deviceName + \".\" + V2, \"true\", device2.deviceName + \"Queue\");\r\n \r\n GZ.Modular.Redis.RedisHelper.Add(device2.deviceName + \".\" + V2, \"true\", out string msg1);\r\n TcpServer.TrayIps.Remove(device2.deviceNo[inde ? 0 : 1]);\r\n }\r\n }\r\n else if (device2.deviceType == 2)\r\n if (device2.deviceName.Contains(\"Jsæ·é¡º\"))\r\n {\r\n var inde = device2.location.ToList().FindIndex(x => x == wcsTask.S_END_LOC) == 0;\r\n string V = inde? \"D1224\" : \"D1225\";\r\n Conn.é»è®¤Redis.SetValue(device2.deviceName + \".\" + V, \"1\", device2.deviceName + \"Queue\");\r\n\r\n var str = Settings.apiHelper.Post(Settings.WMSbaseUrl + \"mom-basic/dataTransmission/json/service/202\", JsonConvert.SerializeObject(new\r\n {\r\n sceneType = 3,\r\n cntrCode = cntrs.FirstOrDefault()\r\n }));\r\n //if (device2.deviceName.Contains(\"1\"))\r\n //{\r\n // if (inde) tag.Js1.D1224 = 1;\r\n // else tag.Js1.D1225 = 1;\r\n //}else\r\n //{\r\n // if (inde) tag.Js2.D1224 = 1;\r\n // else tag.Js2.D1225 = 1;\r\n //}\r\n }\r\n }\r\n\r\n //LocationMethod.JudgeLocation(wcsTask);\r\n break;\r\n case \"cancel\":\r\n LogHelper.Info($\"海康车任å¡ç¶æåæ´ä¸ºåæ¶ï¼ä»»å¡å·ä¸ºï¼{model.taskCode}\", \"agvæåäº¤äºæ¥å¿\");\r\n wcsTask.S_B_STATE = \"åæ¶\";\r\n //startloc.S_LOCK_STATE = \"æ \";\r\n //endLoc.S_LOCK_STATE = \"æ \";\r\n MainMissionService.Update(wcsTask);\r\n TaskActRepository taskActRepository = new TaskActRepository();\r\n var tare = taskActRepository.FindList(x => x.S_TASK_NO == wcsTask.S_TASK_NO);\r\n if (tare.Any())\r\n {\r\n if(tare.Find(x=>x.S_ACTION_CODE==\"outbin\")==null)\r\n {\r\n startloc.S_LOCK_STATE = \"æ \";\r\n endLoc.S_LOCK_STATE = \"æ \";\r\n locrep.Update(startloc);\r\n locrep.Update(endLoc);\r\n }else if (tare.Find(x => x.S_ACTION_CODE == \"end\") == null)\r\n {\r\n endLoc.S_LOCK_STATE = \"æ \";\r\n locrep.Update(endLoc);\r\n }\r\n }\r\n\r\n //locrep.Update(startloc);\r\n //locrep.Update(endLoc);\r\n //TaskProcess.OperateStatus(wcsTask, 7);\r\n //WCSHelper.Fail(wcsTask);\r\n break;\r\n case \"apply\":\r\n // å¤æè¯¥ä»»å¡çæ¥é©³ä½æ¯å¦æå
¶ä»å
¥åºæåºåºä»»å¡ï¼å¦ææï¼åå¨çä½çå¾
ï¼å¦ææ²¡æï¼åå
¥\r\n TaskisOk(wcsTask);\r\n break;\r\n }\r\n\r\n if (!string.IsNullOrEmpty(wcsTask.S_SRC_NO))\r\n {\r\n var mestask = MainMissionService.FindEntity(x => x.S_TASK_NO == wcsTask.S_SRC_NO);\r\n if (mestask!=null&&bobe)\r\n {\r\n if ( model.method != \"end\")\r\n {\r\n \tif (mestask.S_START_LOC == wcsTask.S_START_LOC&&mestask.S_B_STATE == \"MES\")\r\n\t Settings.apiHelper.Post(Settings.WMSbaseUrl + \"mom-basic/dataTransmission/json/service/201\", JsonConvert.SerializeObject(new\r\n\t {\r\n\t reqCode = wcsTask.S_SRC_NO,\r\n\t model.method\r\n\t }));\r\n }\r\n else\r\n {\r\n if (mestask.S_END_LOC != wcsTask.S_END_LOC)\r\n {\r\n LogHelper.Info($\"{wcsTask.S_SRC_NO}-{wcsTask.S_TASK_NO} ä¸é¶æ®µå®æï¼éç½®è¿è¡äºé¶æ®µã\");\r\n mestask.N_PRIORITY = -88;\r\n MainMissionService.Update(mestask);\r\n }\r\n else if(mestask.S_B_STATE == \"MES\")\r\n {\r\n var str = Settings.apiHelper.Post(Settings.WMSbaseUrl + \"mom-basic/dataTransmission/json/service/201\", JsonConvert.SerializeObject(new\r\n {\r\n reqCode = wcsTask.S_SRC_NO,\r\n model.method\r\n }));\r\n }\r\n }\r\n\r\n }else if(mestask!=null && model.method== \"cancel\")\r\n {\r\n \t if(mestask.S_B_STATE == \"MES\")\r\n\t Settings.apiHelper.Post(Settings.WMSbaseUrl + \"mom-basic/dataTransmission/json/service/201\", JsonConvert.SerializeObject(new\r\n\t {\r\n\t reqCode = wcsTask.S_SRC_NO,\r\n\t model.method\r\n\t })); \r\n LogHelper.Info($\"{wcsTask.S_SRC_NO}-{wcsTask.S_TASK_NO} ä¸é¶æ®µåæ¶ï¼éç½®ç¹ï¼çº¿ç¨å¤çã\");\r\n mestask.N_PRIORITY = -1;\r\n mestask.S_B_STATE = \"MES_åæ¶\";\r\n MainMissionService.Update(mestask);\r\n }\r\n }\r\n TaskProcess.AddActionRecord(model.taskCode, model.method, model.eqpCode, model.data,wcsTask.S_START_LOC,wcsTask.S_END_LOC);\r\n //è°ç¨ç¬¬ä¸æ¹æ¥å£ï¼å¦ææï¼TaskProcess.ReportStatus\r\n }\r\n else\r\n {\r\n // ææ¶è®¾å®ä¸º0\r\n wcsTask.S_B_STATE = \"䏿¥ç¶æç©º\";\r\n //å®å
¨è¯·æ±ç\r\n //TaskProcess.OperateReq(model.taskCode, wcsTask.N_B_STATE, model.eqpCode, model.data);\r\n }\r\n }\r\n else\r\n {\r\n LogHelper.Info($\"å½åä»»å¡å·ä»»å¡ä¸åå¨{model.taskCode}\", \"agvæåäº¤äºæ¥å¿\");\r\n }", |
| | | "Code": "public void OperateHKTaskStatus(System.Object param1)\r\n{HaiKangOrderInfo model = (HaiKangOrderInfo)param1;\r\n if (string.IsNullOrEmpty(model.taskCode))\r\n return;\r\n // æ¥è¯¢ä»»å¡ï¼æ ¹æ®ä»»å¡å·\r\n //var wcsTask = WCSHelper.GetTask(model.taskCode);\r\n ITaskRepository MainMissionService = new TaskRepository();\r\n var wcsTask = MainMissionService.FindEntity(x => model.taskCode == x.S_TASK_NO);\r\n if (wcsTask != null)\r\n {\r\n if (!string.IsNullOrWhiteSpace(model.method))\r\n {\r\n ILocRepository locrep = new LocRepository();\r\n var startloc = locrep.FindEntity(x => x.S_LOC_CODE == wcsTask.S_START_LOC);\r\n var endLoc = locrep.FindEntity(x => x.S_LOC_CODE == wcsTask.S_END_LOC);\r\n\r\n List<string> cntrs = wcsTask.S_CNTRS.Split(',').ToList();\r\n bool bobe = false;\r\n switch (model.method)\r\n {\r\n case \"start\":\r\n LogHelper.Info($\"海康车任å¡ç¶æåæ´ä¸ºæ§è¡ï¼ä»»å¡å·ä¸ºï¼{model.taskCode}\", \"agvæåäº¤äºæ¥å¿\");\r\n if (wcsTask.S_B_STATE.Trim() == \"å·²æ¨é\")\r\n {\r\n wcsTask.S_B_STATE = \"æ§è¡ä¸\";\r\n wcsTask.T_START_TIME = DateTime.Now;\r\n MainMissionService.Update(wcsTask);\r\n bobe = true;\r\n }\r\n break;\r\n case \"outbin\":\r\n LogHelper.Info($\"海康车任å¡ç¶æåæ´ä¸ºåè´§å®æï¼ä»»å¡å·ä¸ºï¼{model.taskCode}\", \"agvæåäº¤äºæ¥å¿\");\r\n wcsTask.S_B_STATE = \"åè´§å®æ\";\r\n\r\n startloc.N_CURRENT_NUM = 0;\r\n startloc.S_LOCK_STATE = \"æ \";\r\n startloc.T_MODIFY = DateTime.Now;\r\n //ILocContainerRepository locContainerRepository = new LocContainerRepository();\r\n ////var cnr = locContainerRepository.FindList(x => cntrs.Contains(x.S_CNTR_CODE.Trim()) && x.S_LOC_CODE == wcsTask.S_START_LOC);\r\n //locContainerRepository.Delete(x => cntrs.Contains(x.S_CNTR_CODE.Trim()) && x.S_LOC_CODE == wcsTask.S_START_LOC);\r\n MainMissionService.Update(wcsTask);\r\n locrep.Update(startloc);\r\n\r\n bobe = true;\r\n var device = Settings.deviceInfos.Find(x => x.location.Contains(wcsTask.S_START_LOC));\r\n if (device != null)\r\n {\r\n if (device.deviceType == 1)\r\n {\r\n if (device.deviceName.Contains(\"ç»´å¸å°æè\"))\r\n { //å¸è´§è¿è¡æ¸
空ï¼è§¦åæ«ç \r\n var inde = device.location.ToList().FindIndex(x => x == wcsTask.S_START_LOC) == 0;\r\n string V = inde ? \"R05\" : \"R06\";\r\n Conn.é»è®¤Redis.SetValue(device.deviceName + \".\" + V, \"true\", device.deviceName + \"Queue\",false);\r\n \r\n TcpServer.TrayIps.Remove(device.deviceNo[inde ? 0 : 1]);\r\n }\r\n }\r\n else if(device.deviceType == 2){\r\n\t\t\t\t\t\t\t\t\tvar inde = device.location.ToList().FindIndex(x => x == wcsTask.S_START_LOC) == 0;\r\n\t\t\t\t\t\t\t\t\t string V = inde? \"D1224\" : \"D1225\";\r\n\t\t\t\t\t\t\t\t\t Conn.é»è®¤Redis.SetValue(device.deviceName + \".\" + V, \"0\", device.deviceName + \"Queue\");\r\n }\r\n }\r\n //LocationHelper.UnLockLoc(wcsTask.S_START_LOC);\r\n break;\r\n case \"end\":\r\n LogHelper.Info($\"海康车任å¡ç¶æåæ´ä¸ºå®æï¼ä»»å¡å·ä¸ºï¼{model.taskCode}\", \"agvæåäº¤äºæ¥å¿\");\r\n wcsTask.S_B_STATE = \"宿\";\r\n wcsTask.T_END_TIME = DateTime.Now;\r\n\r\n bobe = true;\r\n //ILocContainerRepository locContainerRepository2 = new LocContainerRepository();\r\n //List<LocContainerEntity> llls = new List<LocContainerEntity>();\r\n //foreach (var c in cntrs)\r\n //{\r\n // var action = new LocContainerEntity()\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_LOC_CODE = endLoc.S_LOC_CODE,\r\n // S_CNTR_CODE = c,\r\n // S_TYPE = \"\",\r\n // };\r\n // llls.Add(action);\r\n //}\r\n\r\n endLoc.S_LOCK_STATE = \"æ \";\r\n endLoc.N_CURRENT_NUM = 1;\r\n endLoc.T_MODIFY = DateTime.Now;\r\n MainMissionService.Update(wcsTask);\r\n if(Settings.deviceInfos.Find(x=>x.deviceType==2 && (/*x.location.Contains(wcsTask.S_END_LOC)||*/x.deviceNo.Contains(wcsTask.S_END_LOC)))!=null)\r\n locrep.Update(endLoc);\r\n //locContainerRepository2.Insert(llls);\r\n\r\n var device2 = Settings.deviceInfos.Find(x => x.location.Contains(wcsTask.S_END_LOC));\r\n if (device2 != null)\r\n {\r\n if (device2.deviceType == 1)\r\n {\r\n if (device2.deviceName.Contains(\"ç»´å¸å°æè\"))\r\n {\r\n //string V = device2.location.ToList().FindIndex(x => x == wcsTask.S_START_LOC) == 0 ? \"R10\" : \"R11\";\r\n //Conn.é»è®¤Redis.SetValue(device2.deviceName + \".\" + V, \"true\", device2.deviceName + \"Queue\");\r\n //å¸è´§ååæçåèµ°ã ç¶åè§¦åæ«ç è¿è¡æ ¡éªã \r\n var inde = device2.location.ToList().FindIndex(x => x == wcsTask.S_END_LOC) == 0;\r\n //string V = inde ? \"R05\" : \"R06\";\r\n //Conn.é»è®¤Redis.SetValue(device2.deviceName + \".\" + V, \"true\", device2.deviceName + \"Queue\");\r\n string V2 = inde ? \"R10_LAST\" : \"R11_LAST\";\r\n //Conn.é»è®¤Redis.SetValue(device2.deviceName + \".\" + V2, \"true\", device2.deviceName + \"Queue\");\r\n \r\n GZ.Modular.Redis.RedisHelper.Add(device2.deviceName + \".\" + V2, \"true\", out string msg1);\r\n TcpServer.TrayIps.Remove(device2.deviceNo[inde ? 0 : 1]);\r\n }\r\n }\r\n else if (device2.deviceType == 2)\r\n if (device2.deviceName.Contains(\"Jsæ·é¡º\"))\r\n {\r\n var inde = device2.location.ToList().FindIndex(x => x == wcsTask.S_END_LOC) == 0;\r\n string V = inde? \"D1224\" : \"D1225\";\r\n Conn.é»è®¤Redis.SetValue(device2.deviceName + \".\" + V, \"1\", device2.deviceName + \"Queue\");\r\n\r\n var str = Settings.apiHelper.Post(Settings.WMSbaseUrl + \"mom-basic/dataTransmission/json/service/202\", JsonConvert.SerializeObject(new\r\n {\r\n sceneType = 3,\r\n cntrCode = cntrs.FirstOrDefault()\r\n }));\r\n //if (device2.deviceName.Contains(\"1\"))\r\n //{\r\n // if (inde) tag.Js1.D1224 = 1;\r\n // else tag.Js1.D1225 = 1;\r\n //}else\r\n //{\r\n // if (inde) tag.Js2.D1224 = 1;\r\n // else tag.Js2.D1225 = 1;\r\n //}\r\n }\r\n }\r\n\r\n //LocationMethod.JudgeLocation(wcsTask);\r\n break;\r\n case \"cancel\":\r\n LogHelper.Info($\"海康车任å¡ç¶æåæ´ä¸ºåæ¶ï¼ä»»å¡å·ä¸ºï¼{model.taskCode}\", \"agvæåäº¤äºæ¥å¿\");\r\n wcsTask.S_B_STATE = \"åæ¶\";\r\n //startloc.S_LOCK_STATE = \"æ \";\r\n //endLoc.S_LOCK_STATE = \"æ \";\r\n MainMissionService.Update(wcsTask);\r\n TaskActRepository taskActRepository = new TaskActRepository();\r\n var tare = taskActRepository.FindList(x => x.S_TASK_NO == wcsTask.S_TASK_NO);\r\n if (tare.Any())\r\n {\r\n if(tare.Find(x=>x.S_ACTION_CODE==\"outbin\")==null)\r\n {\r\n startloc.S_LOCK_STATE = \"æ \";\r\n endLoc.S_LOCK_STATE = \"æ \";\r\n locrep.Update(startloc);\r\n locrep.Update(endLoc);\r\n }else if (tare.Find(x => x.S_ACTION_CODE == \"end\") == null)\r\n {\r\n endLoc.S_LOCK_STATE = \"æ \";\r\n locrep.Update(endLoc);\r\n }\r\n }\r\n\r\n //locrep.Update(startloc);\r\n //locrep.Update(endLoc);\r\n //TaskProcess.OperateStatus(wcsTask, 7);\r\n //WCSHelper.Fail(wcsTask);\r\n break;\r\n case \"apply\":\r\n // å¤æè¯¥ä»»å¡çæ¥é©³ä½æ¯å¦æå
¶ä»å
¥åºæåºåºä»»å¡ï¼å¦ææï¼åå¨çä½çå¾
ï¼å¦ææ²¡æï¼åå
¥\r\n TaskisOk(wcsTask);\r\n break;\r\n }\r\n\r\n if (!string.IsNullOrEmpty(wcsTask.S_SRC_NO))\r\n {\r\n var mestask = MainMissionService.FindEntity(x => x.S_TASK_NO == wcsTask.S_SRC_NO);\r\n if (mestask!=null&&bobe)\r\n {\r\n if ( model.method != \"end\")\r\n {\r\n \tif (mestask.S_START_LOC == wcsTask.S_START_LOC&&mestask.S_B_STATE == \"MES\")\r\n\t Settings.apiHelper.Post(Settings.WMSbaseUrl + \"mom-basic/dataTransmission/json/service/201\", JsonConvert.SerializeObject(new\r\n\t {\r\n\t reqCode = wcsTask.S_SRC_NO,\r\n\t model.method\r\n\t }));\r\n }\r\n else\r\n {\r\n if (mestask.S_END_LOC != wcsTask.S_END_LOC)\r\n {\r\n LogHelper.Info($\"{wcsTask.S_SRC_NO}-{wcsTask.S_TASK_NO} ä¸é¶æ®µå®æï¼éç½®è¿è¡äºé¶æ®µã\");\r\n mestask.N_PRIORITY = -88;\r\n MainMissionService.Update(mestask);\r\n }\r\n else if(mestask.S_B_STATE == \"MES\")\r\n {\r\n var str = Settings.apiHelper.Post(Settings.WMSbaseUrl + \"mom-basic/dataTransmission/json/service/201\", JsonConvert.SerializeObject(new\r\n {\r\n reqCode = wcsTask.S_SRC_NO,\r\n model.method\r\n }));\r\n }\r\n }\r\n\r\n }else if(mestask!=null && model.method== \"cancel\")\r\n {\r\n \t if(mestask.S_B_STATE == \"MES\")\r\n\t Settings.apiHelper.Post(Settings.WMSbaseUrl + \"mom-basic/dataTransmission/json/service/201\", JsonConvert.SerializeObject(new\r\n\t {\r\n\t reqCode = wcsTask.S_SRC_NO,\r\n\t model.method\r\n\t })); \r\n LogHelper.Info($\"{wcsTask.S_SRC_NO}-{wcsTask.S_TASK_NO} ä¸é¶æ®µåæ¶ï¼éç½®ç¹ï¼çº¿ç¨å¤çã\");\r\n mestask.N_PRIORITY = -1;\r\n mestask.S_B_STATE = \"MES_åæ¶\";\r\n MainMissionService.Update(mestask);\r\n }\r\n }\r\n TaskProcess.AddActionRecord(model.taskCode, model.method, model.eqpCode, model.data,wcsTask.S_START_LOC,wcsTask.S_END_LOC);\r\n //è°ç¨ç¬¬ä¸æ¹æ¥å£ï¼å¦ææï¼TaskProcess.ReportStatus\r\n }\r\n else\r\n {\r\n // ææ¶è®¾å®ä¸º0\r\n wcsTask.S_B_STATE = \"䏿¥ç¶æç©º\";\r\n //å®å
¨è¯·æ±ç\r\n //TaskProcess.OperateReq(model.taskCode, wcsTask.N_B_STATE, model.eqpCode, model.data);\r\n }\r\n }\r\n else\r\n {\r\n LogHelper.Info($\"å½åä»»å¡å·ä»»å¡ä¸åå¨{model.taskCode}\", \"agvæåäº¤äºæ¥å¿\");\r\n }\r\n}", |
| | | "EditCode": "\r\n HaiKangOrderInfo model = (HaiKangOrderInfo)param1;\r\n if (string.IsNullOrEmpty(model.taskCode))\r\n return;\r\n var hkr = AutoThread.InvokeMethod(AutoThread.Instance, \"OperateHKTaskStatus\", new object[] { model });", |
| | | "Code": "public void OperateHKTaskStatus(System.Object param1)\r\n{\r\n HaiKangOrderInfo model = (HaiKangOrderInfo)param1;\r\n if (string.IsNullOrEmpty(model.taskCode))\r\n return;\r\n var hkr = AutoThread.InvokeMethod(AutoThread.Instance, \"OperateHKTaskStatus\", new object[] { model });\r\n}", |
| | | "CusMethod": { |
| | | "Name": "OperateHKTaskStatus", |
| | | "Params": [ |
| | |
| | | "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.taskType,\r\n S_SRC_NO = \"\",//\r\n N_PRIORITY = -88,\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 internal static ReturnMsg CreatePointTask(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 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 = -88,\r\n S_WORK_MODE = \"agv\",\r\n S_B_STATE = \"People\",\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 static void ResMesTask()\r\n {\r\n ///1.\r\n TaskRepository taskservice = new TaskRepository();\r\nvar tasks = taskservice.FindList(x => (x.S_B_STATE == \"MES\" || x.S_B_STATE == \"People\") && x.N_PRIORITY == -88);\r\nvar VERXs = Settings.deviceInfos?.FindAll(x => x.deviceType == 2);\r\n//if (VERXs.Any())\r\nforeach (var task in tasks)\r\n{\r\n LogHelper.Info($\"è§£éMESä»»å¡ ->{task.S_TASK_NO} \");\r\n var sx = VERXs?.Find(x => x.location.Contains(task.S_END_LOC));\r\n LogHelper.Info($\"è§£éMESä»»å¡ ->{task.S_TASK_NO} {(sx == null ? \"é\" : \"æ¯\")}æ»è£
æºå¨äººä»»å¡\");\r\n if (sx == null)\r\n {\r\n LogHelper.Info($\"è§£éMESä»»å¡ ->{task.S_TASK_NO} ç´æ¥çæå¯¹åºä»»å¡\");\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() ?? new List<string>());\r\n\r\n LogHelper.Info($\"è§£éMESä»»å¡ ->{task.S_TASK_NO} ç´æ¥çæå¯¹åºä»»å¡ ç»æï¼{res}\");\r\n if (res)\r\n {\r\n LogHelper.Info($\"è§£éMESä»»å¡ ->{task.S_TASK_NO} ä¿®æ¹æ è¯\");\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 var sindex = sx.location.ToList().IndexOf(task.S_END_LOC);\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\r\n LogHelper.Info($\"è§£éMESä»»å¡ ->{task.S_TASK_NO} æ¥æ¾æ¯å¦æå·²çæä»»å¡ï¼{t1s != null}\");\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 continue;\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 //var ec = taskservice.FindList(x => x.S_START_LOC == task.S_START_LOC && x.S_END_LOC == task.S_START_LOC, new Common.Data.Pagination\r\n // {\r\n // page = 1,\r\n // sidx = \"T_CREATE\",\r\n // sord = \"desc\",\r\n // rows = 1\r\n // }).FirstOrDefault();\r\n TaskEntity ec = null;\r\n var dev = Conn.é»è®¤Redis.GetValue(sx.deviceName + \".\" + (sindex == 0 ? \"D1224\" : \"D1225\"));\r\n if (dev?.Trim() == \"1\")\r\n ec = taskservice.FindList(x => x.S_END_LOC == task.S_END_LOC && x.S_B_STATE == \"宿\", new Common.Data.Pagination\r\n {\r\n page = 1,\r\n sidx = \"T_CREATE\",\r\n sord = \"desc\",\r\n rows = 1\r\n }).FirstOrDefault();\r\n if (t1.S_START_LOC == task.S_START_LOC && ec != null)//!= 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_TASK_NO, task.S_END_LOC, endLoc.S_LOC_CODE, task.S_TYPE + \"ä¸ç©º\", 7, ec.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 LogHelper.Info($\"è§£éMESä»»å¡ ->{task.S_TASK_NO} çéçæç¬¬ä¸æ®µ ä»»å¡ã\");\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 LogHelper.Info($\"è§£éMESä»»å¡ ->{task.S_TASK_NO} åå»ºç¬¬ä¸æ®µ ä»»å¡ã\");\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\r\n LogHelper.Info($\"è§£éMESä»»å¡ ->{task.S_TASK_NO} åå»ºç¬¬ä¸æ®µ ä»»å¡ãç»æï¼{res}\");\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.taskType,\r\n S_SRC_NO = \"\",//\r\n N_PRIORITY = -88,\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 internal static ReturnMsg CreatePointTask(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 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 = -88,\r\n S_WORK_MODE = \"agv\",\r\n S_B_STATE = \"People\",\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 static void ResMesTask()\r\n {\r\n ///1.\r\n TaskRepository taskservice = new TaskRepository();\r\nvar tasks = taskservice.FindList(x => (x.S_B_STATE == \"MES\" || x.S_B_STATE == \"People\") && x.N_PRIORITY == -88);\r\nvar VERXs = Settings.deviceInfos?.FindAll(x => x.deviceType == 2);\r\n//if (VERXs.Any())\r\nforeach (var task in tasks)\r\n{\r\n LogHelper.Info($\"è§£éMESä»»å¡ ->{task.S_TASK_NO} \");\r\n var sx = VERXs?.Find(x => x.location.Contains(task.S_END_LOC));\r\n LogHelper.Info($\"è§£éMESä»»å¡ ->{task.S_TASK_NO} {(sx == null ? \"é\" : \"æ¯\")}æ»è£
æºå¨äººä»»å¡\");\r\n if (sx == null)\r\n {\r\n LogHelper.Info($\"è§£éMESä»»å¡ ->{task.S_TASK_NO} ç´æ¥çæå¯¹åºä»»å¡\");\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() ?? new List<string>());\r\n\r\n LogHelper.Info($\"è§£éMESä»»å¡ ->{task.S_TASK_NO} ç´æ¥çæå¯¹åºä»»å¡ ç»æï¼{res}\");\r\n if (res)\r\n {\r\n LogHelper.Info($\"è§£éMESä»»å¡ ->{task.S_TASK_NO} ä¿®æ¹æ è¯\");\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 var sindex = sx.location.ToList().IndexOf(task.S_END_LOC);\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\r\n LogHelper.Info($\"è§£éMESä»»å¡ ->{task.S_TASK_NO} æ¥æ¾æ¯å¦æå·²çæä»»å¡ï¼{t1s != null}\");\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 continue;\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 //var ec = taskservice.FindList(x => x.S_START_LOC == task.S_START_LOC && x.S_END_LOC == task.S_START_LOC, new Common.Data.Pagination\r\n // {\r\n // page = 1,\r\n // sidx = \"T_CREATE\",\r\n // sord = \"desc\",\r\n // rows = 1\r\n // }).FirstOrDefault();\r\n TaskEntity ec = null;\r\n var dev = Conn.é»è®¤Redis.GetValue(sx.deviceName + \".\" + (sindex == 0 ? \"D1224\" : \"D1225\"));\r\n if (dev?.Trim() == \"1\")\r\n ec = taskservice.FindList(x => x.S_END_LOC == task.S_END_LOC && x.S_B_STATE == \"宿\", new Common.Data.Pagination\r\n {\r\n page = 1,\r\n sidx = \"T_CREATE\",\r\n sord = \"desc\",\r\n rows = 1\r\n }).FirstOrDefault();\r\n if (t1.S_START_LOC == task.S_START_LOC && ec != null)//!= 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_TASK_NO, task.S_END_LOC, endLoc.S_LOC_CODE, task.S_TYPE + \"ä¸ç©º\", 7, ec.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 LogHelper.Info($\"è§£éMESä»»å¡ ->{task.S_TASK_NO} çéçæç¬¬ä¸æ®µ ä»»å¡ã\");\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 LogHelper.Info($\"è§£éMESä»»å¡ ->{task.S_TASK_NO} åå»ºç¬¬ä¸æ®µ ä»»å¡ã\");\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\r\n LogHelper.Info($\"è§£éMESä»»å¡ ->{task.S_TASK_NO} åå»ºç¬¬ä¸æ®µ ä»»å¡ãç»æï¼{res}\");\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}", |
| | | "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.taskType,\r\n S_SRC_NO = \"\",//\r\n N_PRIORITY = -88,\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 internal static ReturnMsg CreatePointTask(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 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 = -88,\r\n S_WORK_MODE = \"agv\",\r\n S_B_STATE = \"People\",\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 static void ResMesTask()\r\n {\r\n ///1.\r\n \r\n AutoThread.InvokeMethod(AutoThread.Instance, \"ResolveMesTask\");\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.taskType,\r\n S_SRC_NO = \"\",//\r\n N_PRIORITY = -88,\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 internal static ReturnMsg CreatePointTask(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 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 = -88,\r\n S_WORK_MODE = \"agv\",\r\n S_B_STATE = \"People\",\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 static void ResMesTask()\r\n {\r\n ///1.\r\n \r\n AutoThread.InvokeMethod(AutoThread.Instance, \"ResolveMesTask\");\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": [], |
| | |
| | | } |
| | | ], |
| | | "CreationTime": "2025-02-26 15:31:23", |
| | | "LastWriteTime": "2025-06-25 10:42:44", |
| | | "LastWriteTime": "2025-06-30 11:27:51", |
| | | "HasSaved": true |
| | | } |
| | |
| | | } |
| | | ], |
| | | "Children": [] |
| | | }, |
| | | { |
| | | "ID": "20250630081416486", |
| | | "Name": "SFT䏿壿ç", |
| | | "Desc": "", |
| | | "ParentID": "20250226153123812", |
| | | "ParentFullName": "Tag", |
| | | "FullName": "Tag.SFT䏿壿ç", |
| | | "Vars": [ |
| | | { |
| | | "ID": "20250630081447155", |
| | | "Name": "R1003Barcode", |
| | | "Desc": "", |
| | | "Type": "System.String", |
| | | "ShortType": "", |
| | | "MinVal": "", |
| | | "MaxVal": "", |
| | | "DefaultVal": "", |
| | | "MapDevice": "SSX1003051113", |
| | | "MapParam": "R1003Barcode", |
| | | "Map": "SSX1003051113.R1003Barcode", |
| | | "Queue": "SSX1003051113Queue", |
| | | "Converter": "", |
| | | "GroupID": "20250630081416486", |
| | | "GroupFullName": "Tag.SFT䏿壿ç", |
| | | "FullName": "Tag.SFT䏿壿ç.R1003Barcode" |
| | | }, |
| | | { |
| | | "ID": "20250630081447140", |
| | | "Name": "R1005Barcode", |
| | | "Desc": "", |
| | | "Type": "System.String", |
| | | "ShortType": "", |
| | | "MinVal": "", |
| | | "MaxVal": "", |
| | | "DefaultVal": "", |
| | | "MapDevice": "SSX1003051113", |
| | | "MapParam": "R1005Barcode", |
| | | "Map": "SSX1003051113.R1005Barcode", |
| | | "Queue": "SSX1003051113Queue", |
| | | "Converter": "", |
| | | "GroupID": "20250630081416486", |
| | | "GroupFullName": "Tag.SFT䏿壿ç", |
| | | "FullName": "Tag.SFT䏿壿ç.R1005Barcode" |
| | | }, |
| | | { |
| | | "ID": "20250630081447124", |
| | | "Name": "R1011Barcode", |
| | | "Desc": "", |
| | | "Type": "System.String", |
| | | "ShortType": "", |
| | | "MinVal": "", |
| | | "MaxVal": "", |
| | | "DefaultVal": "", |
| | | "MapDevice": "SSX1003051113", |
| | | "MapParam": "R1011Barcode", |
| | | "Map": "SSX1003051113.R1011Barcode", |
| | | "Queue": "SSX1003051113Queue", |
| | | "Converter": "", |
| | | "GroupID": "20250630081416486", |
| | | "GroupFullName": "Tag.SFT䏿壿ç", |
| | | "FullName": "Tag.SFT䏿壿ç.R1011Barcode" |
| | | }, |
| | | { |
| | | "ID": "20250630081447109", |
| | | "Name": "R1013Barcode", |
| | | "Desc": "", |
| | | "Type": "System.String", |
| | | "ShortType": "", |
| | | "MinVal": "", |
| | | "MaxVal": "", |
| | | "DefaultVal": "", |
| | | "MapDevice": "SSX1003051113", |
| | | "MapParam": "R1013Barcode", |
| | | "Map": "SSX1003051113.R1013Barcode", |
| | | "Queue": "SSX1003051113Queue", |
| | | "Converter": "", |
| | | "GroupID": "20250630081416486", |
| | | "GroupFullName": "Tag.SFT䏿壿ç", |
| | | "FullName": "Tag.SFT䏿壿ç.R1013Barcode" |
| | | } |
| | | ], |
| | | "Children": [] |
| | | } |
| | | ] |
| | | }, |
| | | "CreationTime": "2025-02-26 15:31:23", |
| | | "LastWriteTime": "2025-06-28 17:30:37", |
| | | "LastWriteTime": "2025-06-30 08:14:50", |
| | | "Sample": { |
| | | "ID": "", |
| | | "Name": "Tag", |