From 5cb28a17ca74fc0fbb07e25af0c3554951e4c2d9 Mon Sep 17 00:00:00 2001 From: czw <selecti@yeah.net> Date: 星期三, 25 六月 2025 10:46:16 +0800 Subject: [PATCH] 1 --- 2025年6月12日/AuxAllWCS/Scripts/Custom.json | 14 2025年6月12日/AuxAllWCS/Build/Project/代码/自定义类.cs | 32 ++ 2025年6月12日/AuxAllWCS/Build/Project/AuxAllWCS.csproj | 37 ---- 2025年6月12日/AuxAllWCS/Build/Project/代码/ViewModel.cs | 2 2025年6月12日/AuxAllWCS/RunTime/Code/自定义类.cs | 368 +++++++++++++++++++++------------------- 2025年6月12日/AuxAllWCS/Build/Project/代码/界面事件.cs | 22 ++ 2025年6月12日/AuxAllWCS/Devices/PlcConfig | 6 2025年6月12日/AuxAllWCS/AuxAllWCS.json | 2 2025年6月12日/AuxAllWCS/Net/Conn.json | 8 2025年6月12日/AuxAllWCS/Scripts/Script.json | 6 2025年6月12日/AuxAllWCS/Devices/设备通信.json | 2 11 files changed, 257 insertions(+), 242 deletions(-) diff --git "a/2025\345\271\2646\346\234\21012\346\227\245/AuxAllWCS/AuxAllWCS.json" "b/2025\345\271\2646\346\234\21012\346\227\245/AuxAllWCS/AuxAllWCS.json" index d389ab9..d136690 100644 --- "a/2025\345\271\2646\346\234\21012\346\227\245/AuxAllWCS/AuxAllWCS.json" +++ "b/2025\345\271\2646\346\234\21012\346\227\245/AuxAllWCS/AuxAllWCS.json" @@ -9,5 +9,5 @@ "DevelopVersion": "1.0.2.0", "Encode": "Ij/zvOgkqNT5SmHrFKCAVQ==", "CreationTime": "0001-01-01 00:00:00", - "LastWriteTime": "2025-06-23 09:22:04" + "LastWriteTime": "2025-06-25 10:43:43" } \ No newline at end of file diff --git "a/2025\345\271\2646\346\234\21012\346\227\245/AuxAllWCS/Build/Project/AuxAllWCS.csproj" "b/2025\345\271\2646\346\234\21012\346\227\245/AuxAllWCS/Build/Project/AuxAllWCS.csproj" index 07704c4..01af573 100644 --- "a/2025\345\271\2646\346\234\21012\346\227\245/AuxAllWCS/Build/Project/AuxAllWCS.csproj" +++ "b/2025\345\271\2646\346\234\21012\346\227\245/AuxAllWCS/Build/Project/AuxAllWCS.csproj" @@ -6,7 +6,7 @@ <RootNamespace>GZ.Projects.AuxAllWCS</RootNamespace> <AssemblyName>AuxAllWCS</AssemblyName> <TargetFrameworkVersion>4.6.1</TargetFrameworkVersion> - <ProjectGuid>{89297187-7C92-4DF5-A2EC-DEE82376770A}</ProjectGuid> + <ProjectGuid>{8ec00415-f135-4f69-84fd-926694fa46f1}</ProjectGuid> </PropertyGroup> <PropertyGroup Condition="'$(Configuration)|$(Platform)' == 'Debug|AnyCPU'"> <PlatformTarget>AnyCPU</PlatformTarget> @@ -213,41 +213,6 @@ </ItemGroup> <ItemGroup> <None Include="App.config" /> - <None Include="Static\config.json"> - <CopyToOutputDirectory>Always</CopyToOutputDirectory> - </None> - <None Include="Static\js\app.829e775c.js.map"> - <CopyToOutputDirectory>Always</CopyToOutputDirectory> - </None> - <None Include="Static\js\chunk-vendors.3e768dfe.js.map"> - <CopyToOutputDirectory>Always</CopyToOutputDirectory> - </None> - </ItemGroup> - <ItemGroup> - <Content Include="Static\css\a.css"> - <CopyToOutputDirectory>Always</CopyToOutputDirectory> - </Content> - <Content Include="Static\css\app.d545ec97.css"> - <CopyToOutputDirectory>Always</CopyToOutputDirectory> - </Content> - <Content Include="Static\favicon.ico"> - <CopyToOutputDirectory>Always</CopyToOutputDirectory> - </Content> - <Content Include="Static\index.html"> - <CopyToOutputDirectory>Always</CopyToOutputDirectory> - </Content> - <Content Include="Static\js\a.js"> - <CopyToOutputDirectory>Always</CopyToOutputDirectory> - </Content> - <Content Include="Static\js\app.829e775c.js"> - <CopyToOutputDirectory>Always</CopyToOutputDirectory> - </Content> - <Content Include="Static\js\chunk-vendors.3e768dfe.js"> - <CopyToOutputDirectory>Always</CopyToOutputDirectory> - </Content> - <Content Include="Static\W.html"> - <CopyToOutputDirectory>Always</CopyToOutputDirectory> - </Content> </ItemGroup> <Import Project="$(MSBuildToolsPath)\Microsoft.CSharp.targets" /> </Project> \ No newline at end of file diff --git "a/2025\345\271\2646\346\234\21012\346\227\245/AuxAllWCS/Build/Project/\344\273\243\347\240\201/ViewModel.cs" "b/2025\345\271\2646\346\234\21012\346\227\245/AuxAllWCS/Build/Project/\344\273\243\347\240\201/ViewModel.cs" index fd2b8e6..0d391e4 100644 --- "a/2025\345\271\2646\346\234\21012\346\227\245/AuxAllWCS/Build/Project/\344\273\243\347\240\201/ViewModel.cs" +++ "b/2025\345\271\2646\346\234\21012\346\227\245/AuxAllWCS/Build/Project/\344\273\243\347\240\201/ViewModel.cs" @@ -177,7 +177,7 @@ { //鍗歌揣杩涜娓呯┖锛岃Е鍙戞壂鐮� 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"); + Conn.榛樿Redis.SetValue(device.deviceName + "." + V, "true", device.deviceName + "Queue", false); TcpServer.TrayIps.Remove(device.deviceNo[inde ? 0 : 1]); } diff --git "a/2025\345\271\2646\346\234\21012\346\227\245/AuxAllWCS/Build/Project/\344\273\243\347\240\201/\347\225\214\351\235\242\344\272\213\344\273\266.cs" "b/2025\345\271\2646\346\234\21012\346\227\245/AuxAllWCS/Build/Project/\344\273\243\347\240\201/\347\225\214\351\235\242\344\272\213\344\273\266.cs" index d505f02..6b8853f 100644 --- "a/2025\345\271\2646\346\234\21012\346\227\245/AuxAllWCS/Build/Project/\344\273\243\347\240\201/\347\225\214\351\235\242\344\272\213\344\273\266.cs" +++ "b/2025\345\271\2646\346\234\21012\346\227\245/AuxAllWCS/Build/Project/\344\273\243\347\240\201/\347\225\214\351\235\242\344\272\213\344\273\266.cs" @@ -52,7 +52,7 @@ { HttpSvcHost = new System.Net.HttpListener(); HttpSvcHost.AuthenticationSchemes = System.Net.AuthenticationSchemes.Anonymous; - HttpSvcHost.Prefixes.Add("http://10.221.55.116:8808/"); + HttpSvcHost.Prefixes.Add("http://10.221.55.117:8808/"); HttpSvcHost.Start(); HttpSvcHost.BeginGetContext(HttpSvcListenerCallback, null); } @@ -230,6 +230,24 @@ // if (di.deviceType == 2 || di.deviceType == 1) // RunafterMac(di,true); /// TODO mes 涓嬪彂銆� 鏀规垚鏈烘鑷傜洃鎺�- 鐩戞帶绌虹殑杩樻槸婊$殑 - 鑱斿姩mes 浠诲姟銆�+ + LogHelper.Info($"璁惧鐘舵�锛氱淮甯屽皵1锛氱淮甯屽皵鎶撹噦1.State:{Device.缁村笇灏旀姄鑷�.State} "); + Device.缁村笇灏旀姄鑷�.ReadPLC("缁村笇灏旀姄鑷�.R50", out object value); + LogHelper.Info($"璁惧鐘舵�锛氱淮甯屽皵1锛氱淮甯屽皵鎶撹噦1.R50:{value?.ToString()} "); + + LogHelper.Info($"璁惧鐘舵�锛氱淮甯屽皵2锛氱淮甯屽皵鎶撹噦2.State:{Device.缁村笇灏旀姄鑷�.State} "); + Device.缁村笇灏旀姄鑷�.ReadPLC("缁村笇灏旀姄鑷�.R50", out value); + LogHelper.Info($"璁惧鐘舵�锛氱淮甯屽皵2锛氱淮甯屽皵鎶撹噦2.R50:{value?.ToString()} "); + + LogHelper.Info($"璁惧鐘舵�锛氭嵎鐬�锛欽s鎹烽『1.State:{Device.Js鎹烽『1.State} "); + Device.Js鎹烽『1.ReadPLC("Js鎹烽『1.D1202", out value); + LogHelper.Info($"璁惧鐘舵�锛氭嵎鐬� Js鎹烽『1.D1202:{value?.ToString()} "); + + LogHelper.Info($"璁惧鐘舵�锛氭嵎鐬�锛欽s鎹烽『2.State:{Device.Js鎹烽『2.State} "); + Device.Js鎹烽『2.ReadPLC("Js鎹烽『2.D1202", out value); + LogHelper.Info($"璁惧鐘舵�锛氭嵎鐬� Js鎹烽『2.D1202:{value?.ToString()} "); + + #endregion [鑴氭湰][20250325085810885][涓氬姟閫昏緫.绗笁鏍囨.鑷祦杞祦绋媇 } catch (Exception ex) @@ -1050,7 +1068,7 @@ System.Net.HttpListenerResponse response = context.Response; switch (request.LocalEndPoint.ToString()) { - case "10.221.55.116:8808": + case "10.221.55.117:8808": { using (var reader = new System.IO.StreamReader(request.InputStream, System.Text.Encoding.UTF8)) { diff --git "a/2025\345\271\2646\346\234\21012\346\227\245/AuxAllWCS/Build/Project/\344\273\243\347\240\201/\350\207\252\345\256\232\344\271\211\347\261\273.cs" "b/2025\345\271\2646\346\234\21012\346\227\245/AuxAllWCS/Build/Project/\344\273\243\347\240\201/\350\207\252\345\256\232\344\271\211\347\261\273.cs" index 12fbd70..806003e 100644 --- "a/2025\345\271\2646\346\234\21012\346\227\245/AuxAllWCS/Build/Project/\344\273\243\347\240\201/\350\207\252\345\256\232\344\271\211\347\261\273.cs" +++ "b/2025\345\271\2646\346\234\21012\346\227\245/AuxAllWCS/Build/Project/\344\273\243\347\240\201/\350\207\252\345\256\232\344\271\211\347\261\273.cs" @@ -563,7 +563,7 @@ internal static bool CreateTask(string no, string from, string to, string taskType, int pri, List<string> cntrs, string workMode = "AGV", int cntrCount = 1, int startLayer = 1, int endLayer = 1) { - LogHelper.Info($"杈撻�绾縍GV绌烘墭浠诲姟 from:{from}>to {to}寮�鍒涘缓>"); + LogHelper.Info($"鍒涘缓浠诲姟 from:{from}>to {to}寮�鍒涘缓>"); var cntrInfo = string.Join(",", cntrs); ILocRepository locc = new LocRepository(); var fromLoc = locc.FindEntity(x => x.S_LOC_CODE == from); @@ -571,10 +571,14 @@ var s = Settings.deviceInfos.Find(x => x.location.Contains(from)) != null; var e = Settings.deviceInfos.Find(x => x.location.Contains(to)) != null; - string t = "F01"; - if (s && !e) t = "A002"; - if (!s && e) t = "A003"; - if (s && e) t = "A004"; + string t = ""; + if (workMode == "AGV") + { + t = "F01"; + if (s && !e) t = "A002"; + if (!s && e) t = "A003"; + if (s && e) t = "A004"; + } try { @@ -613,7 +617,7 @@ locc.Update(endLoc); } - LogHelper.Info($"杈撻�绾縍GV绌烘墭浠诲姟 from:{from}>to {to} 鍒涘缓{wmsTask.S_TASK_NO}鎴愬姛"); + LogHelper.Info($"鍒涘缓浠诲姟 from:{from}>to {to} 鍒涘缓{wmsTask.S_TASK_NO}鎴愬姛"); return true; } catch (Exception ex) @@ -693,7 +697,7 @@ S_DEPART_NAME = "", S_START_LOC = model.startBit, S_END_LOC = model.endBit, - S_TYPE = model.reqCode, + S_TYPE = model.taskType, S_SRC_NO = "",// N_PRIORITY = -88, S_WORK_MODE = "agv", @@ -768,13 +772,19 @@ //if (VERXs.Any()) foreach (var task in tasks) { + LogHelper.Info($"瑙i噴MES浠诲姟 ->{task.S_TASK_NO} "); var sx = VERXs?.Find(x => x.location.Contains(task.S_END_LOC)); + LogHelper.Info($"瑙i噴MES浠诲姟 ->{task.S_TASK_NO} {(sx == null ? "闈� : "鏄�)}鎬昏鏈哄櫒浜轰换鍔�); if (sx == null) { + LogHelper.Info($"瑙i噴MES浠诲姟 ->{task.S_TASK_NO} 鐩存帴鐢熸垚瀵瑰簲浠诲姟"); //鐩存帴鐢熸垚瀵瑰簲浠诲姟銆�- var res = TaskProcess.CreateTask(task.S_TASK_NO, task.S_START_LOC, task.S_END_LOC, task.S_TYPE, 6, task.S_CNTRS.Split(',').ToList()); + var res = TaskProcess.CreateTask(task.S_TASK_NO, task.S_START_LOC, task.S_END_LOC, task.S_TYPE, 6, task.S_CNTRS?.Split(',').ToList() ?? new List<string>()); + + LogHelper.Info($"瑙i噴MES浠诲姟 ->{task.S_TASK_NO} 鐩存帴鐢熸垚瀵瑰簲浠诲姟 缁撴灉锛歿res}"); if (res) { + LogHelper.Info($"瑙i噴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; @@ -788,6 +798,8 @@ LocRepository locRepository = new LocRepository(); //鐢熸垚璺宠穬浠诲姟銆� -- 鎵樼洏璐т綅琛ㄣ� var t1s = taskservice.FindList(x => x.S_SRC_NO == task.S_TASK_NO); + + LogHelper.Info($"瑙i噴MES浠诲姟 ->{task.S_TASK_NO} 鏌ユ壘鏄惁鏈夊凡鐢熸垚浠诲姟锛歿t1s != null}"); if (t1s.Any()) { var t1 = t1s.OrderBy(x => x.T_CREATE).LastOrDefault(); @@ -857,6 +869,7 @@ } else { + LogHelper.Info($"瑙i噴MES浠诲姟 ->{task.S_TASK_NO} 绛涢�鐢熸垚绗竴娈�浠诲姟銆�); //鐢熸垚绗竴娈点� LocEntity endLoc = null; var di = sx; @@ -873,7 +886,10 @@ } if (endLoc != null) { + LogHelper.Info($"瑙i噴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($"瑙i噴MES浠诲姟 ->{task.S_TASK_NO} 鍒涘缓绗竴娈�浠诲姟銆傜粨鏋滐細{res}"); if (res) { task.N_PRIORITY = 0; taskservice.Update(task); diff --git "a/2025\345\271\2646\346\234\21012\346\227\245/AuxAllWCS/Devices/PlcConfig" "b/2025\345\271\2646\346\234\21012\346\227\245/AuxAllWCS/Devices/PlcConfig" index 074bf3c..996109f 100644 --- "a/2025\345\271\2646\346\234\21012\346\227\245/AuxAllWCS/Devices/PlcConfig" +++ "b/2025\345\271\2646\346\234\21012\346\227\245/AuxAllWCS/Devices/PlcConfig" @@ -249,7 +249,7 @@ "DataType": "System.Boolean", "DataValue": "", "SetValue": "", - "Address": "DB20.4..2", + "Address": "DB20.4.2", "AddrType": "", "Length": 1, "Desc": "", @@ -657,7 +657,7 @@ "DataType": "System.Boolean", "DataValue": "", "SetValue": "", - "Address": "DB20.4..2", + "Address": "DB20.4.2", "AddrType": "", "Length": 1, "Desc": "", @@ -6786,5 +6786,5 @@ } ], "CreationTime": "2025-02-26 15:31:23", - "LastWriteTime": "2025-06-23 08:50:40" + "LastWriteTime": "2025-06-25 10:38:08" } \ No newline at end of file diff --git "a/2025\345\271\2646\346\234\21012\346\227\245/AuxAllWCS/Devices/\350\256\276\345\244\207\351\200\232\344\277\241.json" "b/2025\345\271\2646\346\234\21012\346\227\245/AuxAllWCS/Devices/\350\256\276\345\244\207\351\200\232\344\277\241.json" index 9cf1176..9c36162 100644 --- "a/2025\345\271\2646\346\234\21012\346\227\245/AuxAllWCS/Devices/\350\256\276\345\244\207\351\200\232\344\277\241.json" +++ "b/2025\345\271\2646\346\234\21012\346\227\245/AuxAllWCS/Devices/\350\256\276\345\244\207\351\200\232\344\277\241.json" @@ -2,5 +2,5 @@ "ProjectSn": "1", "DeviceList": [], "CreationTime": "2025-02-26 15:31:23", - "LastWriteTime": "2025-06-23 08:51:04" + "LastWriteTime": "2025-06-25 10:38:08" } \ No newline at end of file diff --git "a/2025\345\271\2646\346\234\21012\346\227\245/AuxAllWCS/Net/Conn.json" "b/2025\345\271\2646\346\234\21012\346\227\245/AuxAllWCS/Net/Conn.json" index b8888f0..d1cf3c7 100644 --- "a/2025\345\271\2646\346\234\21012\346\227\245/AuxAllWCS/Net/Conn.json" +++ "b/2025\345\271\2646\346\234\21012\346\227\245/AuxAllWCS/Net/Conn.json" @@ -191,10 +191,10 @@ "Code": "cddc17eb-398d-4781-b24a-62baec9f680b", "Name": "he", "Desc": "", - "IP": "10.221.55.116", + "IP": "10.221.55.117", "Port": "8808", - "EndPoint": "10.221.55.116:8808", - "Url": "http://10.221.55.116:8808/", + "EndPoint": "10.221.55.117:8808", + "Url": "http://10.221.55.117:8808/", "Interface": [ { "ID": "20250323130424925", @@ -340,5 +340,5 @@ } ], "CreationTime": "2025-02-26 15:31:23", - "LastWriteTime": "2025-06-23 09:22:04" + "LastWriteTime": "2025-06-25 10:43:43" } \ No newline at end of file diff --git "a/2025\345\271\2646\346\234\21012\346\227\245/AuxAllWCS/RunTime/Code/\350\207\252\345\256\232\344\271\211\347\261\273.cs" "b/2025\345\271\2646\346\234\21012\346\227\245/AuxAllWCS/RunTime/Code/\350\207\252\345\256\232\344\271\211\347\261\273.cs" index b3035c0..d18a9b7 100644 --- "a/2025\345\271\2646\346\234\21012\346\227\245/AuxAllWCS/RunTime/Code/\350\207\252\345\256\232\344\271\211\347\261\273.cs" +++ "b/2025\345\271\2646\346\234\21012\346\227\245/AuxAllWCS/RunTime/Code/\350\207\252\345\256\232\344\271\211\347\261\273.cs" @@ -535,65 +535,69 @@ #region [鑷畾涔夌被][20250325152141671][TaskProcess] internal static bool CreateTask(string no, string from, string to, string taskType, int pri, List<string> cntrs, string workMode = "AGV", int cntrCount = 1, int startLayer = 1, int endLayer = 1) { - - LogHelper.Info($"杈撻�绾縍GV绌烘墭浠诲姟 from:{from}>to {to}寮�鍒涘缓>"); - var cntrInfo = string.Join(",", cntrs); - ILocRepository locc = new LocRepository(); - var fromLoc = locc.FindEntity(x => x.S_LOC_CODE == from); - var endLoc = locc.FindEntity(x => x.S_LOC_CODE == to); - - var s = Settings.deviceInfos.Find(x => x.location.Contains(from)) != null; - var e = Settings.deviceInfos.Find(x => x.location.Contains(to)) != null; - string t = "F01"; - if (s && !e) t = "A002"; - if (!s && e) t = "A003"; - if (s && e) t = "A004"; - try - { - TaskEntity wmsTask = new TaskEntity() - { - S_ID = Guid.NewGuid().ToString(), - S_STATE = "缂栬緫", - T_CREATE = DateTime.Now, - T_MODIFY = DateTime.Now, + LogHelper.Info($"鍒涘缓浠诲姟 from:{from}>to {to}寮�鍒涘缓>"); + var cntrInfo = string.Join(",", cntrs); + ILocRepository locc = new LocRepository(); + var fromLoc = locc.FindEntity(x => x.S_LOC_CODE == from); + var endLoc = locc.FindEntity(x => x.S_LOC_CODE == to); - S_TASK_NO = GenerateTaskNo(), - S_START_LAREA = fromLoc.S_AREA_CODE, - S_END_LAREA = endLoc.S_AREA_CODE, - S_DEPART_NAME = "", - S_START_LOC = from, - S_END_LOC = to, - S_TYPE = taskType, - S_SRC_NO = no,// - N_PRIORITY = pri, - S_WORK_MODE = workMode, - S_B_STATE = "鏈墽琛�, - S_CNTRS = cntrInfo, - N_START_LAYER = startLayer, - N_END_LAYER = endLayer, - N_CNTR_COUNT = cntrCount, - S_INDEX=t, - }; - ITaskRepository taskserice = new TaskRepository(); - taskserice.Insert(wmsTask); - - if (workMode == "AGV") - { - fromLoc.S_LOCK_STATE = "鍑哄簱閿�; - endLoc.S_LOCK_STATE = "鍏ュ簱閿�; - locc.Update(fromLoc); - locc.Update(endLoc); - } - - LogHelper.Info($"杈撻�绾縍GV绌烘墭浠诲姟 from:{from}>to {to} 鍒涘缓{wmsTask.S_TASK_NO}鎴愬姛"); - return true; - } - catch (Exception ex) - { - LogHelper.Error("CreateTask" + ex.Message, ex); - return false; - } + var s = Settings.deviceInfos.Find(x => x.location.Contains(from)) != null; + var e = Settings.deviceInfos.Find(x => x.location.Contains(to)) != null; + string t = ""; + if (workMode == "AGV") + { + t = "F01"; + if (s && !e) t = "A002"; + if (!s && e) t = "A003"; + if (s && e) t = "A004"; + } + try + { + + TaskEntity wmsTask = new TaskEntity() + { + S_ID = Guid.NewGuid().ToString(), + S_STATE = "缂栬緫", + T_CREATE = DateTime.Now, + T_MODIFY = DateTime.Now, + + S_TASK_NO = GenerateTaskNo(), + S_START_LAREA = fromLoc.S_AREA_CODE, + S_END_LAREA = endLoc.S_AREA_CODE, + S_DEPART_NAME = "", + S_START_LOC = from, + S_END_LOC = to, + S_TYPE = taskType, + S_SRC_NO = no,// + N_PRIORITY = pri, + S_WORK_MODE = workMode, + S_B_STATE = "鏈墽琛�, + S_CNTRS = cntrInfo, + N_START_LAYER = startLayer, + N_END_LAYER = endLayer, + N_CNTR_COUNT = cntrCount, + S_INDEX = t, + }; + ITaskRepository taskserice = new TaskRepository(); + taskserice.Insert(wmsTask); + + if (workMode == "AGV") + { + fromLoc.S_LOCK_STATE = "鍑哄簱閿�; + endLoc.S_LOCK_STATE = "鍏ュ簱閿�; + locc.Update(fromLoc); + locc.Update(endLoc); + } + + LogHelper.Info($"鍒涘缓浠诲姟 from:{from}>to {to} 鍒涘缓{wmsTask.S_TASK_NO}鎴愬姛"); + return true; + } + catch (Exception ex) + { + LogHelper.Error("CreateTask" + ex.Message, ex); + return false; + } } @@ -666,7 +670,7 @@ S_DEPART_NAME = "", S_START_LOC = model.startBit, S_END_LOC = model.endBit, - S_TYPE = model.reqCode, + S_TYPE = model.taskType, S_SRC_NO = "",// N_PRIORITY = -88, S_WORK_MODE = "agv", @@ -736,127 +740,139 @@ { ///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) - { - var sx = VERXs?.Find(x => x.location.Contains(task.S_END_LOC)); - if (sx == null) - { - //鐩存帴鐢熸垚瀵瑰簲浠诲姟銆�- 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()); - if (res) - { - //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); - 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 - { - //鐢熸垚绗竴娈点� - 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_START_LOC, endLoc.S_LOC_CODE, task.S_TYPE + "婊¤浆", 8, task.S_CNTRS.Split(',').ToList()); - if (res) - { - task.N_PRIORITY = 0; taskservice.Update(task); - } - } - } - } +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($"瑙i噴MES浠诲姟 ->{task.S_TASK_NO} "); + var sx = VERXs?.Find(x => x.location.Contains(task.S_END_LOC)); + LogHelper.Info($"瑙i噴MES浠诲姟 ->{task.S_TASK_NO} {(sx == null ? "闈� : "鏄�)}鎬昏鏈哄櫒浜轰换鍔�); + if (sx == null) + { + LogHelper.Info($"瑙i噴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($"瑙i噴MES浠诲姟 ->{task.S_TASK_NO} 鐩存帴鐢熸垚瀵瑰簲浠诲姟 缁撴灉锛歿res}"); + if (res) + { + LogHelper.Info($"瑙i噴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($"瑙i噴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($"瑙i噴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($"瑙i噴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($"瑙i噴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 鐪嬬紦瀛樺尯銆�娌℃弧鐨勩� diff --git "a/2025\345\271\2646\346\234\21012\346\227\245/AuxAllWCS/Scripts/Custom.json" "b/2025\345\271\2646\346\234\21012\346\227\245/AuxAllWCS/Scripts/Custom.json" index 5bdbd41..1eb11a3 100644 --- "a/2025\345\271\2646\346\234\21012\346\227\245/AuxAllWCS/Scripts/Custom.json" +++ "b/2025\345\271\2646\346\234\21012\346\227\245/AuxAllWCS/Scripts/Custom.json" @@ -120,8 +120,8 @@ "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\");\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 //璋冪敤绗笁鏂规帴鍙o紙濡傛灉鏈夛級TaskProcess.ReportStatus\r\n }\r\n else\r\n {\r\n // 鏆傛椂璁惧畾涓�\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\");\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 //璋冪敤绗笁鏂规帴鍙o紙濡傛灉鏈夛級TaskProcess.ReportStatus\r\n }\r\n else\r\n {\r\n // 鏆傛椂璁惧畾涓�\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": "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 //璋冪敤绗笁鏂规帴鍙o紙濡傛灉鏈夛級TaskProcess.ReportStatus\r\n }\r\n else\r\n {\r\n // 鏆傛椂璁惧畾涓�\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 //璋冪敤绗笁鏂规帴鍙o紙濡傛灉鏈夛級TaskProcess.ReportStatus\r\n }\r\n else\r\n {\r\n // 鏆傛椂璁惧畾涓�\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}", "CusMethod": { "Name": "OperateHKTaskStatus", "Params": [ @@ -593,8 +593,8 @@ "Type": "ClassCode", "Level": "Item", "Statement": "public class TaskProcess", - "EditCode": "internal static bool CreateTask(string no, string from, string to, string taskType, int pri, List<string> cntrs, string workMode = \"AGV\", int cntrCount = 1, int startLayer = 1, int endLayer = 1)\r\n{\r\n\t\r\n LogHelper.Info($\"杈撻�绾縍GV绌烘墭浠诲姟 from:{from}>to {to}寮�鍒涘缓>\");\r\n var cntrInfo = string.Join(\",\", cntrs);\r\n ILocRepository locc = new LocRepository();\r\n var fromLoc = locc.FindEntity(x => x.S_LOC_CODE == from);\r\n var endLoc = locc.FindEntity(x => x.S_LOC_CODE == to);\r\n \r\n var s = Settings.deviceInfos.Find(x => x.location.Contains(from)) != null;\r\n var e = Settings.deviceInfos.Find(x => x.location.Contains(to)) != null;\r\n string t = \"F01\";\r\n if (s && !e) t = \"A002\";\r\n if (!s && e) t = \"A003\";\r\n if (s && e) t = \"A004\";\r\n try\r\n {\r\n\r\n TaskEntity wmsTask = new TaskEntity()\r\n {\r\n \tS_ID = Guid.NewGuid().ToString(),\r\n\t\tS_STATE = \"缂栬緫\",\r\n\t\tT_CREATE = DateTime.Now,\r\n\t\tT_MODIFY = DateTime.Now,\r\n\r\n S_TASK_NO = GenerateTaskNo(),\r\n S_START_LAREA = fromLoc.S_AREA_CODE,\r\n S_END_LAREA = endLoc.S_AREA_CODE,\r\n S_DEPART_NAME = \"\",\r\n S_START_LOC = from,\r\n S_END_LOC = to,\r\n S_TYPE = taskType,\r\n S_SRC_NO = no,//\r\n N_PRIORITY = pri,\r\n S_WORK_MODE = workMode,\r\n S_B_STATE = \"鏈墽琛孿",\r\n S_CNTRS = cntrInfo,\r\n N_START_LAYER = startLayer,\r\n N_END_LAYER = endLayer,\r\n N_CNTR_COUNT = cntrCount,\r\n S_INDEX=t,\r\n };\r\n ITaskRepository taskserice = new TaskRepository();\r\n taskserice.Insert(wmsTask);\r\n \r\n if (workMode == \"AGV\")\r\n {\r\n fromLoc.S_LOCK_STATE = \"鍑哄簱閿乗";\r\n endLoc.S_LOCK_STATE = \"鍏ュ簱閿乗";\r\n locc.Update(fromLoc);\r\n locc.Update(endLoc);\r\n }\r\n \r\n LogHelper.Info($\"杈撻�绾縍GV绌烘墭浠诲姟 from:{from}>to {to} 鍒涘缓{wmsTask.S_TASK_NO}鎴愬姛\");\r\n return true;\r\n }\r\n catch (Exception ex)\r\n {\r\n LogHelper.Error(\"CreateTask\" + ex.Message, ex);\r\n return false;\r\n }\r\n}\r\n\r\n\r\n internal static void AddActionRecord(string no, string state, string forkliftNo, string extData,string strloc,string endloc)\r\n {\r\n var action = new TaskActEntity()\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_START_LOC= strloc,\r\n S_END_LOC= endloc,\r\n S_ACTION_CODE = state,\r\n S_TASK_NO = no,\r\n S_EQ_NO = forkliftNo,\r\n S_EQ_TYPE = \"agv\",\r\n S_DATA = extData,\r\n N_CREATEMETHOD = 0\r\n };\r\n TaskActRepository taskserice = new TaskActRepository();\r\n taskserice.Insert(action);\r\n }\r\n\r\n public static System.String GenerateTaskNo()\r\n {\r\n var id = SYSHelper.GetSerialNumber(\"浠诲姟鍙穃", \"TN\", \"1\");\r\n var date = DateTime.Now.ToString(\"yyMMdd\");\r\n return $\"TN{date}{id.ToString().PadLeft(4, '0')}\";\r\n }", - "Code": "public class TaskProcess\r\n{internal static bool CreateTask(string no, string from, string to, string taskType, int pri, List<string> cntrs, string workMode = \"AGV\", int cntrCount = 1, int startLayer = 1, int endLayer = 1)\r\n{\r\n\t\r\n LogHelper.Info($\"杈撻�绾縍GV绌烘墭浠诲姟 from:{from}>to {to}寮�鍒涘缓>\");\r\n var cntrInfo = string.Join(\",\", cntrs);\r\n ILocRepository locc = new LocRepository();\r\n var fromLoc = locc.FindEntity(x => x.S_LOC_CODE == from);\r\n var endLoc = locc.FindEntity(x => x.S_LOC_CODE == to);\r\n \r\n var s = Settings.deviceInfos.Find(x => x.location.Contains(from)) != null;\r\n var e = Settings.deviceInfos.Find(x => x.location.Contains(to)) != null;\r\n string t = \"F01\";\r\n if (s && !e) t = \"A002\";\r\n if (!s && e) t = \"A003\";\r\n if (s && e) t = \"A004\";\r\n try\r\n {\r\n\r\n TaskEntity wmsTask = new TaskEntity()\r\n {\r\n \tS_ID = Guid.NewGuid().ToString(),\r\n\t\tS_STATE = \"缂栬緫\",\r\n\t\tT_CREATE = DateTime.Now,\r\n\t\tT_MODIFY = DateTime.Now,\r\n\r\n S_TASK_NO = GenerateTaskNo(),\r\n S_START_LAREA = fromLoc.S_AREA_CODE,\r\n S_END_LAREA = endLoc.S_AREA_CODE,\r\n S_DEPART_NAME = \"\",\r\n S_START_LOC = from,\r\n S_END_LOC = to,\r\n S_TYPE = taskType,\r\n S_SRC_NO = no,//\r\n N_PRIORITY = pri,\r\n S_WORK_MODE = workMode,\r\n S_B_STATE = \"鏈墽琛孿",\r\n S_CNTRS = cntrInfo,\r\n N_START_LAYER = startLayer,\r\n N_END_LAYER = endLayer,\r\n N_CNTR_COUNT = cntrCount,\r\n S_INDEX=t,\r\n };\r\n ITaskRepository taskserice = new TaskRepository();\r\n taskserice.Insert(wmsTask);\r\n \r\n if (workMode == \"AGV\")\r\n {\r\n fromLoc.S_LOCK_STATE = \"鍑哄簱閿乗";\r\n endLoc.S_LOCK_STATE = \"鍏ュ簱閿乗";\r\n locc.Update(fromLoc);\r\n locc.Update(endLoc);\r\n }\r\n \r\n LogHelper.Info($\"杈撻�绾縍GV绌烘墭浠诲姟 from:{from}>to {to} 鍒涘缓{wmsTask.S_TASK_NO}鎴愬姛\");\r\n return true;\r\n }\r\n catch (Exception ex)\r\n {\r\n LogHelper.Error(\"CreateTask\" + ex.Message, ex);\r\n return false;\r\n }\r\n}\r\n\r\n\r\n internal static void AddActionRecord(string no, string state, string forkliftNo, string extData,string strloc,string endloc)\r\n {\r\n var action = new TaskActEntity()\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_START_LOC= strloc,\r\n S_END_LOC= endloc,\r\n S_ACTION_CODE = state,\r\n S_TASK_NO = no,\r\n S_EQ_NO = forkliftNo,\r\n S_EQ_TYPE = \"agv\",\r\n S_DATA = extData,\r\n N_CREATEMETHOD = 0\r\n };\r\n TaskActRepository taskserice = new TaskActRepository();\r\n taskserice.Insert(action);\r\n }\r\n\r\n public static System.String GenerateTaskNo()\r\n {\r\n var id = SYSHelper.GetSerialNumber(\"浠诲姟鍙穃", \"TN\", \"1\");\r\n var date = DateTime.Now.ToString(\"yyMMdd\");\r\n return $\"TN{date}{id.ToString().PadLeft(4, '0')}\";\r\n }\r\n}", + "EditCode": "internal static bool CreateTask(string no, string from, string to, string taskType, int pri, List<string> cntrs, string workMode = \"AGV\", int cntrCount = 1, int startLayer = 1, int endLayer = 1)\r\n{\r\n\r\n LogHelper.Info($\"鍒涘缓浠诲姟 from:{from}>to {to}寮�鍒涘缓>\");\r\n var cntrInfo = string.Join(\",\", cntrs);\r\n ILocRepository locc = new LocRepository();\r\n var fromLoc = locc.FindEntity(x => x.S_LOC_CODE == from);\r\n var endLoc = locc.FindEntity(x => x.S_LOC_CODE == to);\r\n\r\n var s = Settings.deviceInfos.Find(x => x.location.Contains(from)) != null;\r\n var e = Settings.deviceInfos.Find(x => x.location.Contains(to)) != null;\r\n string t = \"\";\r\n if (workMode == \"AGV\")\r\n {\r\n t = \"F01\";\r\n if (s && !e) t = \"A002\";\r\n if (!s && e) t = \"A003\";\r\n if (s && e) t = \"A004\";\r\n }\r\n try\r\n {\r\n\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 = GenerateTaskNo(),\r\n S_START_LAREA = fromLoc.S_AREA_CODE,\r\n S_END_LAREA = endLoc.S_AREA_CODE,\r\n S_DEPART_NAME = \"\",\r\n S_START_LOC = from,\r\n S_END_LOC = to,\r\n S_TYPE = taskType,\r\n S_SRC_NO = no,//\r\n N_PRIORITY = pri,\r\n S_WORK_MODE = workMode,\r\n S_B_STATE = \"鏈墽琛孿",\r\n S_CNTRS = cntrInfo,\r\n N_START_LAYER = startLayer,\r\n N_END_LAYER = endLayer,\r\n N_CNTR_COUNT = cntrCount,\r\n S_INDEX = t,\r\n };\r\n ITaskRepository taskserice = new TaskRepository();\r\n taskserice.Insert(wmsTask);\r\n\r\n if (workMode == \"AGV\")\r\n {\r\n fromLoc.S_LOCK_STATE = \"鍑哄簱閿乗";\r\n endLoc.S_LOCK_STATE = \"鍏ュ簱閿乗";\r\n locc.Update(fromLoc);\r\n locc.Update(endLoc);\r\n }\r\n\r\n LogHelper.Info($\"鍒涘缓浠诲姟 from:{from}>to {to} 鍒涘缓{wmsTask.S_TASK_NO}鎴愬姛\");\r\n return true;\r\n }\r\n catch (Exception ex)\r\n {\r\n LogHelper.Error(\"CreateTask\" + ex.Message, ex);\r\n return false;\r\n }\r\n}\r\n\r\n\r\n internal static void AddActionRecord(string no, string state, string forkliftNo, string extData,string strloc,string endloc)\r\n {\r\n var action = new TaskActEntity()\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_START_LOC= strloc,\r\n S_END_LOC= endloc,\r\n S_ACTION_CODE = state,\r\n S_TASK_NO = no,\r\n S_EQ_NO = forkliftNo,\r\n S_EQ_TYPE = \"agv\",\r\n S_DATA = extData,\r\n N_CREATEMETHOD = 0\r\n };\r\n TaskActRepository taskserice = new TaskActRepository();\r\n taskserice.Insert(action);\r\n }\r\n\r\n public static System.String GenerateTaskNo()\r\n {\r\n var id = SYSHelper.GetSerialNumber(\"浠诲姟鍙穃", \"TN\", \"1\");\r\n var date = DateTime.Now.ToString(\"yyMMdd\");\r\n return $\"TN{date}{id.ToString().PadLeft(4, '0')}\";\r\n }", + "Code": "public class TaskProcess\r\n{internal static bool CreateTask(string no, string from, string to, string taskType, int pri, List<string> cntrs, string workMode = \"AGV\", int cntrCount = 1, int startLayer = 1, int endLayer = 1)\r\n{\r\n\r\n LogHelper.Info($\"鍒涘缓浠诲姟 from:{from}>to {to}寮�鍒涘缓>\");\r\n var cntrInfo = string.Join(\",\", cntrs);\r\n ILocRepository locc = new LocRepository();\r\n var fromLoc = locc.FindEntity(x => x.S_LOC_CODE == from);\r\n var endLoc = locc.FindEntity(x => x.S_LOC_CODE == to);\r\n\r\n var s = Settings.deviceInfos.Find(x => x.location.Contains(from)) != null;\r\n var e = Settings.deviceInfos.Find(x => x.location.Contains(to)) != null;\r\n string t = \"\";\r\n if (workMode == \"AGV\")\r\n {\r\n t = \"F01\";\r\n if (s && !e) t = \"A002\";\r\n if (!s && e) t = \"A003\";\r\n if (s && e) t = \"A004\";\r\n }\r\n try\r\n {\r\n\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 = GenerateTaskNo(),\r\n S_START_LAREA = fromLoc.S_AREA_CODE,\r\n S_END_LAREA = endLoc.S_AREA_CODE,\r\n S_DEPART_NAME = \"\",\r\n S_START_LOC = from,\r\n S_END_LOC = to,\r\n S_TYPE = taskType,\r\n S_SRC_NO = no,//\r\n N_PRIORITY = pri,\r\n S_WORK_MODE = workMode,\r\n S_B_STATE = \"鏈墽琛孿",\r\n S_CNTRS = cntrInfo,\r\n N_START_LAYER = startLayer,\r\n N_END_LAYER = endLayer,\r\n N_CNTR_COUNT = cntrCount,\r\n S_INDEX = t,\r\n };\r\n ITaskRepository taskserice = new TaskRepository();\r\n taskserice.Insert(wmsTask);\r\n\r\n if (workMode == \"AGV\")\r\n {\r\n fromLoc.S_LOCK_STATE = \"鍑哄簱閿乗";\r\n endLoc.S_LOCK_STATE = \"鍏ュ簱閿乗";\r\n locc.Update(fromLoc);\r\n locc.Update(endLoc);\r\n }\r\n\r\n LogHelper.Info($\"鍒涘缓浠诲姟 from:{from}>to {to} 鍒涘缓{wmsTask.S_TASK_NO}鎴愬姛\");\r\n return true;\r\n }\r\n catch (Exception ex)\r\n {\r\n LogHelper.Error(\"CreateTask\" + ex.Message, ex);\r\n return false;\r\n }\r\n}\r\n\r\n\r\n internal static void AddActionRecord(string no, string state, string forkliftNo, string extData,string strloc,string endloc)\r\n {\r\n var action = new TaskActEntity()\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_START_LOC= strloc,\r\n S_END_LOC= endloc,\r\n S_ACTION_CODE = state,\r\n S_TASK_NO = no,\r\n S_EQ_NO = forkliftNo,\r\n S_EQ_TYPE = \"agv\",\r\n S_DATA = extData,\r\n N_CREATEMETHOD = 0\r\n };\r\n TaskActRepository taskserice = new TaskActRepository();\r\n taskserice.Insert(action);\r\n }\r\n\r\n public static System.String GenerateTaskNo()\r\n {\r\n var id = SYSHelper.GetSerialNumber(\"浠诲姟鍙穃", \"TN\", \"1\");\r\n var date = DateTime.Now.ToString(\"yyMMdd\");\r\n return $\"TN{date}{id.ToString().PadLeft(4, '0')}\";\r\n }\r\n}", "CusMethod": { "Name": "", "Params": [], @@ -635,8 +635,8 @@ "Type": "ClassCode", "Level": "Item", "Statement": "public class ToWMSMES", - "EditCode": "//2 wms mes \r\n\r\n\r\n public class CreateTask\r\n {\r\n public string taskType { get; set; }\r\n public string startBit { get; set; }\r\n public string endBit { get; set; }\r\n public string reqCode { get; set; }\r\n public string cntrCode { get; set; }\r\n\r\n internal static ReturnMsg CreatemesTask(CreateTask model)\r\n {\r\n ITaskRepository taskservice = new TaskRepository();\r\n var task = taskservice.FindEntity(x => x.S_TASK_NO == model.reqCode);\r\n if (task == null)\r\n {\r\n //var i = TaskProcess.CreateTask(\"\", model.startBit, model.endBit, string.IsNullOrEmpty(model.taskType) ? \"Mes涓嬪彂\" : model.taskType, 5, new List<string> { model.cntrCode });\r\n TaskEntity wmsTask = new TaskEntity()\r\n {\r\n S_ID = Guid.NewGuid().ToString(),\r\n S_STATE = \"缂栬緫\",\r\n T_CREATE = DateTime.Now,\r\n T_MODIFY = DateTime.Now,\r\n\r\n S_TASK_NO = model.reqCode,\r\n S_START_LAREA = \"\",\r\n S_END_LAREA = \"\",\r\n S_DEPART_NAME = \"\",\r\n S_START_LOC = model.startBit,\r\n S_END_LOC = model.endBit,\r\n S_TYPE = model.reqCode,\r\n S_SRC_NO = \"\",//\r\n N_PRIORITY = -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\n var tasks = taskservice.FindList(x =>( x.S_B_STATE == \"MES\"|| x.S_B_STATE == \"People\") && x.N_PRIORITY == -88);\r\n var VERXs = Settings.deviceInfos?.FindAll(x => x.deviceType==2);\r\n //if (VERXs.Any())\r\n foreach (var task in tasks)\r\n {\r\n var sx = VERXs?.Find(x => x.location.Contains(task.S_END_LOC));\r\n if (sx == null)\r\n {\r\n //鐩存帴鐢熸垚瀵瑰簲浠诲姟銆俓r\n var res = TaskProcess.CreateTask(task.S_TASK_NO, task.S_START_LOC, task.S_END_LOC, task.S_TYPE, 6, task.S_CNTRS.Split(',').ToList());\r\n if (res)\r\n {\r\n //task.N_PRIORITY = 0;\r\n taskservice.dbcontext.Set<TaskEntity>().Attach(task);\r\n taskservice.dbcontext.Entry(task).Property(x => x.N_PRIORITY).CurrentValue = 0;\r\n taskservice.dbcontext.Entry(task).Property(x => x.N_PRIORITY).IsModified = true;\r\n taskservice.dbcontext.SaveChanges();\r\n }\r\n }\r\n else\r\n {\r\n \tvar 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 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\t\t\t\t\t\t\t\t//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\t\t\t\t\t\t TaskEntity ec = null;\r\n\t\t\t\t\t\t\t\tvar dev = Conn.榛樿Redis.GetValue(sx.deviceName + \".\" + (sindex == 0 ? \"D1224\" : \"D1225\"));\r\n\t\t\t\t\t\t\t\tif (dev?.Trim() == \"1\")\r\n\t\t\t\t\t\t\t\t ec = taskservice.FindList(x =>x.S_END_LOC == task.S_END_LOC&&x.S_B_STATE==\"瀹屾垚\", new Common.Data.Pagination\r\n\t\t\t\t\t\t\t\t {\r\n\t\t\t\t\t\t\t\t page = 1,\r\n\t\t\t\t\t\t\t\t sidx = \"T_CREATE\",\r\n\t\t\t\t\t\t\t\t sord = \"desc\",\r\n\t\t\t\t\t\t\t\t rows = 1\r\n\t\t\t\t\t\t\t\t }).FirstOrDefault();\r\n\t\t\t\t\t\t\t\tif (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 //鐢熸垚绗竴娈点�\r\n LocEntity endLoc = null;\r\n var di = sx;\r\n if (di != null)\r\n {\r\n foreach (var ssloc in di.deviceNo)\r\n {\r\n var endloc = locRepository.FindEntity(x => x.S_LOC_CODE == ssloc);\r\n if (endloc != null && endloc.N_CURRENT_NUM == 0 && endloc.S_LOCK_STATE == \"鏃燶")\r\n {\r\n endLoc = endloc;\r\n break;\r\n }\r\n }\r\n if (endLoc != null)\r\n {\r\n var res = TaskProcess.CreateTask(\"\", task.S_START_LOC, endLoc.S_LOC_CODE, task.S_TYPE + \"婊¤浆\", 8, task.S_CNTRS.Split(',').ToList());\r\n if (res)\r\n {\r\n task.N_PRIORITY = 0; taskservice.Update(task);\r\n }\r\n }\r\n }\r\n }\r\n\r\n }\r\n }\r\n //var VERX = Settings.deviceInfos?.FindAll(x => x.deviceName.Contains(\"鎹风灛鎶撹噦\"));\r\n //if ()\r\n ///2 鐪嬬紦瀛樺尯銆�娌℃弧鐨勩�\r\n\r\n\r\n }\r\n \r\n ", - "Code": "public class ToWMSMES\r\n{//2 wms mes \r\n\r\n\r\n public class CreateTask\r\n {\r\n public string taskType { get; set; }\r\n public string startBit { get; set; }\r\n public string endBit { get; set; }\r\n public string reqCode { get; set; }\r\n public string cntrCode { get; set; }\r\n\r\n internal static ReturnMsg CreatemesTask(CreateTask model)\r\n {\r\n ITaskRepository taskservice = new TaskRepository();\r\n var task = taskservice.FindEntity(x => x.S_TASK_NO == model.reqCode);\r\n if (task == null)\r\n {\r\n //var i = TaskProcess.CreateTask(\"\", model.startBit, model.endBit, string.IsNullOrEmpty(model.taskType) ? \"Mes涓嬪彂\" : model.taskType, 5, new List<string> { model.cntrCode });\r\n TaskEntity wmsTask = new TaskEntity()\r\n {\r\n S_ID = Guid.NewGuid().ToString(),\r\n S_STATE = \"缂栬緫\",\r\n T_CREATE = DateTime.Now,\r\n T_MODIFY = DateTime.Now,\r\n\r\n S_TASK_NO = model.reqCode,\r\n S_START_LAREA = \"\",\r\n S_END_LAREA = \"\",\r\n S_DEPART_NAME = \"\",\r\n S_START_LOC = model.startBit,\r\n S_END_LOC = model.endBit,\r\n S_TYPE = model.reqCode,\r\n S_SRC_NO = \"\",//\r\n N_PRIORITY = -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\n var tasks = taskservice.FindList(x =>( x.S_B_STATE == \"MES\"|| x.S_B_STATE == \"People\") && x.N_PRIORITY == -88);\r\n var VERXs = Settings.deviceInfos?.FindAll(x => x.deviceType==2);\r\n //if (VERXs.Any())\r\n foreach (var task in tasks)\r\n {\r\n var sx = VERXs?.Find(x => x.location.Contains(task.S_END_LOC));\r\n if (sx == null)\r\n {\r\n //鐩存帴鐢熸垚瀵瑰簲浠诲姟銆俓r\n var res = TaskProcess.CreateTask(task.S_TASK_NO, task.S_START_LOC, task.S_END_LOC, task.S_TYPE, 6, task.S_CNTRS.Split(',').ToList());\r\n if (res)\r\n {\r\n //task.N_PRIORITY = 0;\r\n taskservice.dbcontext.Set<TaskEntity>().Attach(task);\r\n taskservice.dbcontext.Entry(task).Property(x => x.N_PRIORITY).CurrentValue = 0;\r\n taskservice.dbcontext.Entry(task).Property(x => x.N_PRIORITY).IsModified = true;\r\n taskservice.dbcontext.SaveChanges();\r\n }\r\n }\r\n else\r\n {\r\n \tvar 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 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\t\t\t\t\t\t\t\t//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\t\t\t\t\t\t TaskEntity ec = null;\r\n\t\t\t\t\t\t\t\tvar dev = Conn.榛樿Redis.GetValue(sx.deviceName + \".\" + (sindex == 0 ? \"D1224\" : \"D1225\"));\r\n\t\t\t\t\t\t\t\tif (dev?.Trim() == \"1\")\r\n\t\t\t\t\t\t\t\t ec = taskservice.FindList(x =>x.S_END_LOC == task.S_END_LOC&&x.S_B_STATE==\"瀹屾垚\", new Common.Data.Pagination\r\n\t\t\t\t\t\t\t\t {\r\n\t\t\t\t\t\t\t\t page = 1,\r\n\t\t\t\t\t\t\t\t sidx = \"T_CREATE\",\r\n\t\t\t\t\t\t\t\t sord = \"desc\",\r\n\t\t\t\t\t\t\t\t rows = 1\r\n\t\t\t\t\t\t\t\t }).FirstOrDefault();\r\n\t\t\t\t\t\t\t\tif (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 //鐢熸垚绗竴娈点�\r\n LocEntity endLoc = null;\r\n var di = sx;\r\n if (di != null)\r\n {\r\n foreach (var ssloc in di.deviceNo)\r\n {\r\n var endloc = locRepository.FindEntity(x => x.S_LOC_CODE == ssloc);\r\n if (endloc != null && endloc.N_CURRENT_NUM == 0 && endloc.S_LOCK_STATE == \"鏃燶")\r\n {\r\n endLoc = endloc;\r\n break;\r\n }\r\n }\r\n if (endLoc != null)\r\n {\r\n var res = TaskProcess.CreateTask(\"\", task.S_START_LOC, endLoc.S_LOC_CODE, task.S_TYPE + \"婊¤浆\", 8, task.S_CNTRS.Split(',').ToList());\r\n if (res)\r\n {\r\n task.N_PRIORITY = 0; taskservice.Update(task);\r\n }\r\n }\r\n }\r\n }\r\n\r\n }\r\n }\r\n //var VERX = Settings.deviceInfos?.FindAll(x => x.deviceName.Contains(\"鎹风灛鎶撹噦\"));\r\n //if ()\r\n ///2 鐪嬬紦瀛樺尯銆�娌℃弧鐨勩�\r\n\r\n\r\n }\r\n \r\n \r\n}", + "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($\"瑙i噴MES浠诲姟 ->{task.S_TASK_NO} \");\r\n var sx = VERXs?.Find(x => x.location.Contains(task.S_END_LOC));\r\n LogHelper.Info($\"瑙i噴MES浠诲姟 ->{task.S_TASK_NO} {(sx == null ? \"闈瀄" : \"鏄痋")}鎬昏鏈哄櫒浜轰换鍔");\r\n if (sx == null)\r\n {\r\n LogHelper.Info($\"瑙i噴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($\"瑙i噴MES浠诲姟 ->{task.S_TASK_NO} 鐩存帴鐢熸垚瀵瑰簲浠诲姟 缁撴灉锛歿res}\");\r\n if (res)\r\n {\r\n LogHelper.Info($\"瑙i噴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($\"瑙i噴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($\"瑙i噴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($\"瑙i噴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($\"瑙i噴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($\"瑙i噴MES浠诲姟 ->{task.S_TASK_NO} \");\r\n var sx = VERXs?.Find(x => x.location.Contains(task.S_END_LOC));\r\n LogHelper.Info($\"瑙i噴MES浠诲姟 ->{task.S_TASK_NO} {(sx == null ? \"闈瀄" : \"鏄痋")}鎬昏鏈哄櫒浜轰换鍔");\r\n if (sx == null)\r\n {\r\n LogHelper.Info($\"瑙i噴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($\"瑙i噴MES浠诲姟 ->{task.S_TASK_NO} 鐩存帴鐢熸垚瀵瑰簲浠诲姟 缁撴灉锛歿res}\");\r\n if (res)\r\n {\r\n LogHelper.Info($\"瑙i噴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($\"瑙i噴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($\"瑙i噴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($\"瑙i噴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($\"瑙i噴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}", "CusMethod": { "Name": "", "Params": [], @@ -692,6 +692,6 @@ } ], "CreationTime": "2025-02-26 15:31:23", - "LastWriteTime": "2025-06-23 09:18:50", + "LastWriteTime": "2025-06-25 10:42:44", "HasSaved": true } \ No newline at end of file diff --git "a/2025\345\271\2646\346\234\21012\346\227\245/AuxAllWCS/Scripts/Script.json" "b/2025\345\271\2646\346\234\21012\346\227\245/AuxAllWCS/Scripts/Script.json" index 4517436..5b99e32 100644 --- "a/2025\345\271\2646\346\234\21012\346\227\245/AuxAllWCS/Scripts/Script.json" +++ "b/2025\345\271\2646\346\234\21012\346\227\245/AuxAllWCS/Scripts/Script.json" @@ -178,8 +178,8 @@ "ID": "20250325085810885", "Name": "鑷祦杞祦绋�, "Desc": "", - "Content": "//foreach(var di in Settings.deviceInfos)\r\n//\tif (di.deviceType == 2 || di.deviceType == 1)\r\n//\tRunafterMac(di,true);\r\n\t/// TODO mes 涓嬪彂銆� 鏀规垚鏈烘鑷傜洃鎺�- 鐩戞帶绌虹殑杩樻槸婊$殑 - 鑱斿姩mes 浠诲姟銆�, - "ContentCopy": "//foreach(var di in Settings.deviceInfos)\r\n//\tif (di.deviceType == 2 || di.deviceType == 1)\r\n//\tRunafterMac(di,true);\r\n\t/// TODO mes 涓嬪彂銆� 鏀规垚鏈烘鑷傜洃鎺�- 鐩戞帶绌虹殑杩樻槸婊$殑 - 鑱斿姩mes 浠诲姟銆�, + "Content": "//foreach(var di in Settings.deviceInfos)\r\n//\tif (di.deviceType == 2 || di.deviceType == 1)\r\n//\tRunafterMac(di,true);\r\n\t/// TODO mes 涓嬪彂銆� 鏀规垚鏈烘鑷傜洃鎺�- 鐩戞帶绌虹殑杩樻槸婊$殑 - 鑱斿姩mes 浠诲姟銆俓r\n\t\r\n LogHelper.Info($\"璁惧鐘舵�锛氱淮甯屽皵1锛氱淮甯屽皵鎶撹噦1.State:{Device.缁村笇灏旀姄鑷�.State} \");\r\n Device.缁村笇灏旀姄鑷�.ReadPLC(\"缁村笇灏旀姄鑷�.R50\", out object value);\r\n LogHelper.Info($\"璁惧鐘舵�锛氱淮甯屽皵1锛氱淮甯屽皵鎶撹噦1.R50:{value?.ToString()} \");\r\n\r\n LogHelper.Info($\"璁惧鐘舵�锛氱淮甯屽皵2锛氱淮甯屽皵鎶撹噦2.State:{Device.缁村笇灏旀姄鑷�.State} \");\r\n Device.缁村笇灏旀姄鑷�.ReadPLC(\"缁村笇灏旀姄鑷�.R50\", out value);\r\n LogHelper.Info($\"璁惧鐘舵�锛氱淮甯屽皵2锛氱淮甯屽皵鎶撹噦2.R50:{value?.ToString()} \");\r\n\r\n LogHelper.Info($\"璁惧鐘舵�锛氭嵎鐬�锛欽s鎹烽『1.State:{Device.Js鎹烽『1.State} \");\r\n Device.Js鎹烽『1.ReadPLC(\"Js鎹烽『1.D1202\", out value);\r\n LogHelper.Info($\"璁惧鐘舵�锛氭嵎鐬� Js鎹烽『1.D1202:{value?.ToString()} \");\r\n\r\n LogHelper.Info($\"璁惧鐘舵�锛氭嵎鐬�锛欽s鎹烽『2.State:{Device.Js鎹烽『2.State} \");\r\n Device.Js鎹烽『2.ReadPLC(\"Js鎹烽『2.D1202\", out value);\r\n LogHelper.Info($\"璁惧鐘舵�锛氭嵎鐬� Js鎹烽『2.D1202:{value?.ToString()} \");\r\n\r\n", + "ContentCopy": "//foreach(var di in Settings.deviceInfos)\r\n//\tif (di.deviceType == 2 || di.deviceType == 1)\r\n//\tRunafterMac(di,true);\r\n\t/// TODO mes 涓嬪彂銆� 鏀规垚鏈烘鑷傜洃鎺�- 鐩戞帶绌虹殑杩樻槸婊$殑 - 鑱斿姩mes 浠诲姟銆俓r\n\t\r\n LogHelper.Info($\"璁惧鐘舵�锛氱淮甯屽皵1锛氱淮甯屽皵鎶撹噦1.State:{Device.缁村笇灏旀姄鑷�.State} \");\r\n Device.缁村笇灏旀姄鑷�.ReadPLC(\"缁村笇灏旀姄鑷�.R50\", out object value);\r\n LogHelper.Info($\"璁惧鐘舵�锛氱淮甯屽皵1锛氱淮甯屽皵鎶撹噦1.R50:{value?.ToString()} \");\r\n\r\n LogHelper.Info($\"璁惧鐘舵�锛氱淮甯屽皵2锛氱淮甯屽皵鎶撹噦2.State:{Device.缁村笇灏旀姄鑷�.State} \");\r\n Device.缁村笇灏旀姄鑷�.ReadPLC(\"缁村笇灏旀姄鑷�.R50\", out value);\r\n LogHelper.Info($\"璁惧鐘舵�锛氱淮甯屽皵2锛氱淮甯屽皵鎶撹噦2.R50:{value?.ToString()} \");\r\n\r\n LogHelper.Info($\"璁惧鐘舵�锛氭嵎鐬�锛欽s鎹烽『1.State:{Device.Js鎹烽『1.State} \");\r\n Device.Js鎹烽『1.ReadPLC(\"Js鎹烽『1.D1202\", out value);\r\n LogHelper.Info($\"璁惧鐘舵�锛氭嵎鐬� Js鎹烽『1.D1202:{value?.ToString()} \");\r\n\r\n LogHelper.Info($\"璁惧鐘舵�锛氭嵎鐬�锛欽s鎹烽『2.State:{Device.Js鎹烽『2.State} \");\r\n Device.Js鎹烽『2.ReadPLC(\"Js鎹烽『2.D1202\", out value);\r\n LogHelper.Info($\"璁惧鐘舵�锛氭嵎鐬� Js鎹烽『2.D1202:{value?.ToString()} \");\r\n\r\n", "ParentID": "20250325083047245", "Children": [], "Type": "Program", @@ -1410,6 +1410,6 @@ } ], "CreationTime": "2025-02-26 15:31:20", - "LastWriteTime": "2025-06-23 08:38:47", + "LastWriteTime": "2025-06-25 10:42:44", "HasSaved": true } \ No newline at end of file -- Gitblit v1.9.1