From 3799054e5cd8a42a49cc902cc9d9cb46059b3a7d Mon Sep 17 00:00:00 2001
From: huangxiaoqiang <huangxiaoqiang@hnkhzn.com>
Date: 星期日, 14 九月 2025 10:54:54 +0800
Subject: [PATCH] 添加WebSocket将设备运行信息推送到前端,前端将数据接收赋值到对应设备监控页面

---
 项目代码/WCS/WCSServices/WIDESEAWCS_Tasks/成品仓/AGV_CPExtend.cs |   57 ++++++++++++++++++++++++++++++++++++++++++++++++++++++---
 1 files changed, 54 insertions(+), 3 deletions(-)

diff --git "a/\351\241\271\347\233\256\344\273\243\347\240\201/WCS/WCSServices/WIDESEAWCS_Tasks/\346\210\220\345\223\201\344\273\223/AGV_CPExtend.cs" "b/\351\241\271\347\233\256\344\273\243\347\240\201/WCS/WCSServices/WIDESEAWCS_Tasks/\346\210\220\345\223\201\344\273\223/AGV_CPExtend.cs"
index 85f37d2..0af81dc 100644
--- "a/\351\241\271\347\233\256\344\273\243\347\240\201/WCS/WCSServices/WIDESEAWCS_Tasks/\346\210\220\345\223\201\344\273\223/AGV_CPExtend.cs"
+++ "b/\351\241\271\347\233\256\344\273\243\347\240\201/WCS/WCSServices/WIDESEAWCS_Tasks/\346\210\220\345\223\201\344\273\223/AGV_CPExtend.cs"
@@ -22,7 +22,7 @@
         {
             try
             {
-                var newTasks = _taskService.Db.Queryable<Dt_Task>().Where(x => (x.TaskState == TaskStatusEnum.AGV_Execute.ObjToInt()|| x.TaskState == TaskStatusEnum.New.ObjToInt()) && x.DeviceCode=="AGV" && x.TaskType!=999).ToList().OrderBy(x => x.Grade).ThenBy(x => x.CreateDate).ToList();
+                var newTasks = _taskService.Db.Queryable<Dt_Task>().Where(x => (x.TaskState == TaskStatusEnum.AGV_Execute.ObjToInt()|| x.TaskState == TaskStatusEnum.New.ObjToInt()) && x.DeviceCode=="AGV").ToList().OrderBy(x => x.Grade).ThenBy(x => x.CreateDate).ToList();
 
                 if (newTasks.Count>0)
                 {
@@ -48,6 +48,7 @@
                                     Code= "GoodPoint",
                                     Value=stationMangerStart.AGVStationCode
                                 };
+                                //鍒ゆ柇鏄惁鏈夊墠缃偣
                                 if (!string.IsNullOrEmpty(stationMangerStart.AGVFrontCode))
                                 {
                                     PointDetail pointDetail2 = new PointDetail()
@@ -62,7 +63,8 @@
                                     Code = "PointB",
                                     Value = stationMangerEnd.AGVStationCode
                                 };
-                                if (!string.IsNullOrEmpty(stationMangerStart.AGVFrontCode))
+                                //鍒ゆ柇鏄惁鏈夊墠缃偣
+                                if (!string.IsNullOrEmpty(stationMangerEnd.AGVFrontCode))
                                 {
                                     PointDetail pointDetail4 = new PointDetail()
                                     {
@@ -90,13 +92,61 @@
                             {
                                 throw new Exception("鏈壘鍒癆GV绔欑偣");
                             }
+                            //鍙栨斁浠诲姟妯$増
+                            if (stationMangerStart.StationCode.Contains("PNT") && !stationMangerEnd.StationCode.Contains("PNT"))//璇锋眰鏀�
+                            {
+                                agvTaskSend.TaskCode = "DUIGAO1";
+                                if (stationMangerStart.StationType == 998 || stationMangerEnd.StationType == 998)//娼滀紡椤跺崌杞�
+                                {
+                                    agvTaskSend.TaskCode = "DUOLUN1";
+                                }
+                            }
+                            else if (!stationMangerStart.StationCode.Contains("PNT") && stationMangerEnd.StationCode.Contains("PNT"))//璇锋眰鍙�
+                            {
+                                agvTaskSend.TaskCode = "DUIGAO2";
+                                if (stationMangerStart.StationType==998 || stationMangerEnd.StationType == 998)//娼滀紡椤跺崌杞�
+                                {
+                                    agvTaskSend.TaskCode = "DUOLUN2";
+                                }
+                            }
+                            else if (!stationMangerStart.StationCode.Contains("PNT") && !stationMangerEnd.StationCode.Contains("PNT"))//璇锋眰鍙栨斁
+                            {
+                                agvTaskSend.TaskCode = "DUIGAO3";
+                                if (stationMangerStart.StationType == 998 || stationMangerEnd.StationType == 998)//娼滀紡椤跺崌杞�
+                                {
+                                    agvTaskSend.TaskCode = "DUOLUN3";
+                                }
+                            }
+                            else if (stationMangerStart.StationCode.Contains("PNT") && stationMangerEnd.StationCode.Contains("PNT"))//鏃犺姹�
+                            {
+                                agvTaskSend.TaskCode = "DUIGAO4";
+                                if (stationMangerStart.StationType == 998 || stationMangerEnd.StationType == 998)//娼滀紡椤跺崌杞�
+                                {
+                                    agvTaskSend.TaskCode = "DUOLUN4";
+                                }
+                            }
+                            if (stationMangerStart.StationType == 998 || stationMangerEnd.StationType == 998)//娼滀紡椤跺崌杞�
+                            {
+                                agvTaskSend.Variables.FirstOrDefault(x => x.Code == "FHMH").Value = "0";
+                                agvTaskSend.Variables.FirstOrDefault(x => x.Code == "GoodPoint").Value = "";
+                                //涓嬪彂浠诲姟AGV浠诲姟闆嗙兢
+                                agvTaskSend.AgvGroupCode = "QianF";
+                                PointDetail pointDetail2 = new PointDetail()
+                                {
+                                    Code = "CostPoint",
+                                    Value = stationMangerStart.AGVStationCode
+                                };
+                                agvTaskSend.Variables.Add(pointDetail2);
+                            }
+                            //寤舵椂
+                            Thread.Sleep(500);
                             //鍙戦�丄GV浠诲姟
                             WebResponseContent content = _taskService.AgvSendTask(agvTaskSend, APIEnum.AgvSendTask);
                             if (!content.Status)
                                 throw new Exception(content.Message);
                             task.Dispatchertime = DateTime.Now;
                             _taskService.UpdateTask(task, TaskStatusEnum.AGV_Executing);
-                            Thread.Sleep(500);
+                            Thread.Sleep(200);
                         }
                         catch (Exception ex)
                         {
@@ -104,6 +154,7 @@
                             task.ExceptionMessage = ex.Message;
                         }
                     }
+                    //鏇存柊浠诲姟
                     if (newTasks.Count > 0)
                     {
                         _taskService.UpdateData(newTasks);

--
Gitblit v1.9.3