From f5b8c1ae89286dada20ea433ffac84f4c9e72a29 Mon Sep 17 00:00:00 2001 From: huanghongfeng <huanghongfeng@hnkhzn.com> Date: 星期五, 06 六月 2025 14:31:25 +0800 Subject: [PATCH] 1 --- 代码管理/WCS/WIDESEAWCS_Server/WIDESEAWCS_Tasks/StackerCraneJob/CommonStackerCraneJob.cs | 208 ++++++++++++++++++++++++++++++++++----------------- 1 files changed, 139 insertions(+), 69 deletions(-) diff --git "a/\344\273\243\347\240\201\347\256\241\347\220\206/WCS/WIDESEAWCS_Server/WIDESEAWCS_Tasks/StackerCraneJob/CommonStackerCraneJob.cs" "b/\344\273\243\347\240\201\347\256\241\347\220\206/WCS/WIDESEAWCS_Server/WIDESEAWCS_Tasks/StackerCraneJob/CommonStackerCraneJob.cs" index f5b350f..e3b3e94 100644 --- "a/\344\273\243\347\240\201\347\256\241\347\220\206/WCS/WIDESEAWCS_Server/WIDESEAWCS_Tasks/StackerCraneJob/CommonStackerCraneJob.cs" +++ "b/\344\273\243\347\240\201\347\256\241\347\220\206/WCS/WIDESEAWCS_Server/WIDESEAWCS_Tasks/StackerCraneJob/CommonStackerCraneJob.cs" @@ -53,14 +53,32 @@ { Signalinteraction(commonStackerCrane); //鍑哄簱淇″彿浜や簰 Siganlinteraction2(commonStackerCrane); //鍏ュ簱淇″彿浜や簰 - if (!commonStackerCrane.IsEventSubscribed) + /*if (!commonStackerCrane.IsEventSubscribed) { commonStackerCrane.StackerCraneTaskCompletedEventHandler += CommonStackerCrane_StackerCraneTaskCompletedEventHandler;//璁㈤槄浠诲姟瀹屾垚浜嬩欢 + }*/ + if (commonStackerCrane.StackerCraneWorkStatusValue == StackerCraneWorkStatus.WorkCompleted) + { + wcs_PLCto07("浠诲姟瀹屾垚", $"浠诲姟鍙凤細{commonStackerCrane.CurrentTaskNum}", $"璇诲彇鍒板爢鍨涙満瀹屾垚淇″彿锛屼换鍔″畬鎴愶紝瀹屾垚鏃堕棿锛歿DateTime.Now}"); + //Console.Out.WriteLine("TaskCompleted" + e.TaskNum); + WebResponseContent webResponse=_taskService.StackCraneTaskCompleted(commonStackerCrane.CurrentTaskNum); + if (webResponse.Status) + { + + bool ddjfk= commonStackerCrane.SetValue(StackerCraneDBName.WorkType, 5); + wcs_PLCto07("浠诲姟瀹屾垚", $"浠诲姟鍙凤細{commonStackerCrane.CurrentTaskNum}锛屼慨鏀逛换鍔℃垚鍔�", $"淇敼浠诲姟瀹屾垚锛屽苟鍙嶉鍫嗗灈瀹屾垚淇″彿鏄惁鎴愬姛锛歿ddjfk}"); + } + else + { + wcs_PLCto07("浠诲姟瀹屾垚鏁呴殰", $"浠诲姟鍙凤細{commonStackerCrane.CurrentTaskNum}锛屼慨鏀逛换鍔″け璐�", $"澶辫触鍘熷洜锛歿webResponse.Message}"); + + } } + if (commonStackerCrane.StackerCraneAutoStatusValue == StackerCraneAutoStatus.Automatic && commonStackerCrane.StackerCraneStatusValue == StackerCraneStatus.Normal) { - commonStackerCrane.CheckStackerCraneTaskCompleted();//闃叉浠诲姟瀹屾垚浜嬩欢鐩戞祴瓒呮椂锛屽啀鎵嬪姩瑙﹀彂涓�娆� + //commonStackerCrane.CheckStackerCraneTaskCompleted();//闃叉浠诲姟瀹屾垚浜嬩欢鐩戞祴瓒呮椂锛屽啀鎵嬪姩瑙﹀彂涓�娆� if (commonStackerCrane.StackerCraneWorkStatusValue == StackerCraneWorkStatus.Standby) { @@ -99,10 +117,10 @@ CommonStackerCrane? commonStackerCrane = sender as CommonStackerCrane; if (commonStackerCrane != null) { - if (commonStackerCrane.GetValue<StackerCraneDBName, short>(StackerCraneDBName.WorkType) != 5) + if (commonStackerCrane.GetValue<StackerCraneDBName, short>(StackerCraneDBName.WorkType) != 5 && e.TaskNum !=0) { wcs_PLCto07("浠诲姟瀹屾垚", $"浠诲姟鍙凤細{e.TaskNum}", $"璇诲彇鍒板爢鍨涙満瀹屾垚淇″彿锛屼换鍔″畬鎴愶紝瀹屾垚鏃堕棿锛歿DateTime.Now}"); - Console.Out.WriteLine("TaskCompleted" + e.TaskNum); + //Console.Out.WriteLine("TaskCompleted" + e.TaskNum); _taskService.StackCraneTaskCompleted(e.TaskNum); commonStackerCrane.SetValue(StackerCraneDBName.WorkType, 5); } @@ -116,62 +134,89 @@ /// <returns></returns> private Dt_Task? GetTask(CommonStackerCrane commonStackerCrane) { - Dt_Task task; - task = _taskService.QueryStackerCraneTask(commonStackerCrane.DeviceCode); - - if (task != null && task.TaskType== (int)TaskOutboundTypeEnum.Outbound) + try { - string[] targetCodes = task.SourceAddress.Split("-"); - if (targetCodes[4] == "02") + // + if (_taskService.CutStackerCraneTask(commonStackerCrane.DeviceCode) != null) return null; + //鏌ヨ鍏ㄩ儴浠诲姟锛屾寜鏃堕棿鎺掑簭杩涜鏌ヨ + List<Dt_Task> TasksList = _taskService.CraneTaskList(commonStackerCrane.DeviceCode); + if (TasksList.Count == 0) return null; + foreach (var item in TasksList) { - - Dt_Task taskst = OutTaskMovelibrary(task); - if (taskst != null) + if (item.TaskType == (int)TaskInboundTypeEnum.Inbound) { - if(taskst.TaskType == (int)TaskRelocationTypeEnum.Relocation) + string[] targetCodes = item.TargetAddress.Split("-"); + if (targetCodes[4] == "01") return item; //濡傛灉鏄祬搴撲綅锛屽垯鐩存帴杩斿洖璇ヤ换鍔� + + //濡傛灉涓烘繁搴撲綅锛屽垯鏌ョ湅鏄惁鏈夐渶瑕佹墽琛岀殑浠诲姟 + if (targetCodes[4] == "02") { - return taskst; - } - else - { - if(taskst.TargetAddress== "R02-001-021-001-02" || taskst.TargetAddress == "R02-001-022-001-02") + + Dt_Task taskst = InTaskMove(item); + if (taskst != null) { return taskst; } - else + } + } + else if (item.TaskType == (int)TaskOutboundTypeEnum.Outbound) + { + string[] targetCodes = item.SourceAddress.Split("-");//杩涜瑙f瀽璐т綅 + if (targetCodes[4] == "02") + { + //涓烘繁搴撲綅 + Dt_Task taskst = OutTaskMovelibrary(item); //鍒ゆ柇鏄惁闇�瑕佽繘琛岀Щ搴� + if (taskst != null) { - if (OutTaskStationIsOccupied(taskst) != null) + if (taskst.TaskType == (int)TaskRelocationTypeEnum.Relocation) { return taskst; } + else + { + if (taskst.TargetAddress == "R02-001-021-001-02" || taskst.TargetAddress == "R02-001-022-001-02") + { + return taskst; + } + else + { + if (OutTaskStationIsOccupied(taskst) != null) //鍒ゆ柇鍑哄簱绔欏彴鏄惁鍙笅鍙� + { + return taskst; + } + } + + } } - } - - } - task = _taskService.QueryStackerCraneInTask(commonStackerCrane.DeviceCode); - } - else - { - if (task.TargetAddress == "R02-001-021-001-02" || task.TargetAddress == "R02-001-022-001-02") - { - return task; - } - else - { - if (OutTaskStationIsOccupied(task) != null) + else { - return task; + if (item.TargetAddress == "R02-001-021-001-02" || item.TargetAddress == "R02-001-022-001-02") + { + return item; + } + else + { + if (OutTaskStationIsOccupied(item) != null) //鍒ゆ柇鍑哄簱绔欏彴鏄惁鍙笅鍙� + { + return item; + } + } + } } - - task = _taskService.QueryStackerCraneInTask(commonStackerCrane.DeviceCode); } - + return null; } - return task; + catch (Exception ex) + { + WriteLog.Write_Log("鍫嗗灈鏈轰换鍔′笅鍙戞晠闅�", "鏁呴殰", "鏁呴殰", new { 淇℃伅 = ex.Message }); + return null; + } } + + /// <summary> /// 鍑哄簱浠诲姟鍒ゆ柇鍑哄簱绔欏彴鏄惁琚崰鐢� @@ -205,6 +250,7 @@ return null; } + /// <summary> /// 鍑哄簱浠诲姟鍒ゆ柇鏄惁闇�瑕佽繘琛岀Щ搴揗ove the library /// </summary> @@ -212,42 +258,62 @@ /// <returns>濡傛灉鏈鍗犵敤锛岃繑鍥炰紶鍏ョ殑浠诲姟淇℃伅锛屽惁鍒欙紝杩斿洖null</returns> private Dt_Task? OutTaskMovelibrary([NotNull] Dt_Task task) { - try + string[] targetCodes = task.SourceAddress.Split("-"); + if (targetCodes[1] == "001") { - string[] targetCodes = task.SourceAddress.Split("-"); - if (targetCodes[1] == "001") - { - targetCodes[1] = "002"; + targetCodes[1] = "002"; - } - else if (targetCodes[1] == "004") - { - targetCodes[1] = "003"; - } - targetCodes[4] = "01"; - string SourceAddress = string.Join("-", targetCodes); //缁勮娴呭簱浣嶅湴鍧� - Dt_Task? tasks = _taskService.QueryStationIsOccupiedOutTasks(task.Roadway, SourceAddress).FirstOrDefault(); //鎵炬祬搴撲綅鏄惁鏈変换鍔� - if (tasks != null) - { - return tasks; - } - else - { - //鍚憌ms鐢宠鍒ゆ柇娴呭簱浣嶆槸鍚︽湁璐э紝鏄惁闇�瑕佽繘琛岀Щ搴� - Dt_Task? taskst = _taskService.RequestWMSTaskMovelibrary(task); - if (taskst != null) - { - return taskst; - } - } } - catch (Exception ex) + else if (targetCodes[1] == "004") { - - throw; + targetCodes[1] = "003"; + } + targetCodes[4] = "01"; + string SourceAddress = string.Join("-", targetCodes); //缁勮娴呭簱浣嶅湴鍧� + Dt_Task? tasks = _taskService.QueryStationIsOccupiedOutTasks(task.Roadway, SourceAddress).FirstOrDefault(); //鎵炬祬搴撲綅鏄惁鏈変换鍔� + if (tasks != null) + { + return tasks; + } + else + { + //鍚憌ms鐢宠鍒ゆ柇娴呭簱浣嶆槸鍚︽湁璐э紝鏄惁闇�瑕佽繘琛岀Щ搴� + Dt_Task? taskst = _taskService.RequestWMSTaskMovelibrary(task); + if (taskst != null) + { + return taskst; + } } return null; } + + private Dt_Task? InTaskMove([NotNull] Dt_Task task) + { + string[] targetCodes = task.TargetAddress.Split("-"); + if (targetCodes[1] == "001") + { + targetCodes[1] = "002"; + + } + else if (targetCodes[1] == "004") + { + targetCodes[1] = "003"; + } + targetCodes[4] = "01"; + string TargetAddress = string.Join("-", targetCodes); //鐢ㄦ繁搴撲綅缁勮娴呭簱浣嶇紪鍙� + Dt_Task? tasks = _taskService.QueryStationIsOccupiedOutTasks2(task.Roadway, TargetAddress).FirstOrDefault(); //鎵炬祬搴撲綅鏄惁鏈夊嚭搴撲换鍔℃垨绉诲簱浠诲姟 + if(tasks != null) { return tasks; } //濡傛灉鏈夛紝鍒欏厛涓嬪彂鑷冲爢鍨涙満 + + //鍚憌ms鐢宠鍒ゆ柇娴呭簱浣嶆槸鍚︽湁璐э紝鏄惁闇�瑕佽繘琛岀Щ搴� + Dt_Task? taskst = _taskService.RequestWMSTaskMovelibrary2(task); + if (taskst != null) + { + return taskst; + } + return null; + } + + public void Signalinteraction(CommonStackerCrane commonStackerCrane) { @@ -1218,6 +1284,10 @@ { WriteLog.Write_Log("浠诲姟淇℃伅瀹屾垚璁板綍", SCLLinStack, Logtype, new { 淇℃伅 = Magessadd }); } + public void wcs_PLCto07_1(string SCLLinStack, string Logtype, string Magessadd) + { + WriteLog.Write_Log("浠诲姟淇℃伅瀹屾垚淇敼璁板綍", SCLLinStack, Logtype, new { 淇℃伅 = Magessadd }); + } public void wcs_PLCto08(string SCLLinStack, string Logtype, string Magessadd) { -- Gitblit v1.9.3