From f65bfbd6e84fdffc71353acfe7c9ccca5b117c45 Mon Sep 17 00:00:00 2001
From: xiazhengtongxue <133085197+xiazhengtongxue@users.noreply.github.com>
Date: 星期五, 23 一月 2026 17:28:41 +0800
Subject: [PATCH] 手动取消、异常上报和数据库维护脚本

---
 项目代码/WCSServices/WIDESEAWCS_Server/Controllers/AGV/AGVController.cs |   55 ++++++++++++++++++++++++++++++++++++++++++++++++++-----
 1 files changed, 50 insertions(+), 5 deletions(-)

diff --git "a/\351\241\271\347\233\256\344\273\243\347\240\201/WCSServices/WIDESEAWCS_Server/Controllers/AGV/AGVController.cs" "b/\351\241\271\347\233\256\344\273\243\347\240\201/WCSServices/WIDESEAWCS_Server/Controllers/AGV/AGVController.cs"
index 8207280..2551472 100644
--- "a/\351\241\271\347\233\256\344\273\243\347\240\201/WCSServices/WIDESEAWCS_Server/Controllers/AGV/AGVController.cs"
+++ "b/\351\241\271\347\233\256\344\273\243\347\240\201/WCSServices/WIDESEAWCS_Server/Controllers/AGV/AGVController.cs"
@@ -2,6 +2,7 @@
 using Microsoft.AspNetCore.Authorization;
 using Microsoft.AspNetCore.Http;
 using Microsoft.AspNetCore.Mvc;
+using OfficeOpenXml.FormulaParsing.Excel.Functions.Information;
 using System.Text;
 using System.Text.RegularExpressions;
 using WIDESEA_DTO.Agv;
@@ -56,17 +57,25 @@
             WebResponseContent content = new WebResponseContent();
             try
             {
-                var task = _taskRepository.QueryFirst(x => (agvUpdateDTO.ContainerCode ?? "")==x.PalletCode);
+                var task = _taskRepository.QueryFirst(x => (agvUpdateDTO.ContainerCode ?? "") == x.PalletCode);
                 switch (agvUpdateDTO.MissionStatus)
                 {
                     case nameof(AGVStatusEnum.PICKER_RECEIVE):
                         if (task == null) throw new Exception($"鏈壘鍒版枡绠便�恵agvUpdateDTO.ContainerCode}銆戜换鍔�");
                         _taskService.UpdateTask(task, TaskStatusEnum.AGV_TakeFinish);
+                        Dt_ErrorInfo e1 = new Dt_ErrorInfo()
+                        {
+                            RobotCode = agvUpdateDTO.RobotId,
+                            Message = agvUpdateDTO.Message,
+                            ErrorType = 0
+                        };
+                        _taskService.AgvSearchStatus1(e1);
+
                         break;
                     case nameof(AGVStatusEnum.PICKER_SEND):
                         if (task == null) throw new Exception($"鏈壘鍒版枡绠便�恵agvUpdateDTO.ContainerCode}銆戜换鍔�");
-                        Dt_StationManger? stationManger = _stationMangerRepository.QueryFirst(x=>x.PickStationCode==task.NextAddress);
-                        if (task.IsCancel>0 && stationManger!=null && stationManger.StationCode!= agvUpdateDTO.CurrentPosition)
+                        Dt_StationManger? stationManger = _stationMangerRepository.QueryFirst(x => x.PickStationCode == task.NextAddress);
+                        if (task.IsCancel > 0 && stationManger != null && stationManger.StationCode != agvUpdateDTO.CurrentPosition)
                         {
                             _taskService.TaskCancelCompleted(task.TaskNum);
                         }
@@ -74,19 +83,55 @@
                         {
                             _taskService.TaskCompleted(task.TaskNum);
                         }
+                        Dt_ErrorInfo e2 = new Dt_ErrorInfo()
+                        {
+                            RobotCode = agvUpdateDTO.RobotId,
+                            Message = agvUpdateDTO.Message,
+                            ErrorType = 0
+                        };
+                        _taskService.AgvSearchStatus1(e2);
                         break;
                     case nameof(AGVStatusEnum.WAITFEEDBACK):
                         //AGV鏀捐
-                        List<Dt_StationManger> stationMangers = _stationMangerRepository.QueryData(x=>x.StationType==StationTypeEnum.StationType_OnlyInbound.ObjToInt());
-                        if (!stationMangers.Select(x=>x.StationCode).Contains(agvUpdateDTO.CurrentPosition))
+                        List<Dt_StationManger> stationMangers = _stationMangerRepository.QueryData(x => x.StationType == StationTypeEnum.StationType_OnlyInbound.ObjToInt());
+                        if (!stationMangers.Select(x => x.StationCode).Contains(agvUpdateDTO.CurrentPosition))
                         {
                             WebResponseContent responseContent = _taskService.AgvTaskFlow(agvUpdateDTO.MissionCode);
                             if (!responseContent.Status) throw new Exception($"{responseContent.Message}");
                         }
+                        Dt_ErrorInfo e3 = new Dt_ErrorInfo()
+                        {
+                            RobotCode = agvUpdateDTO.RobotId,
+                            Message = agvUpdateDTO.Message,
+                            ErrorType = 0
+                        };
+                        _taskService.AgvSearchStatus1(e3);
                         break;
                     default:
                         break;
                 }
+                if (agvUpdateDTO.Message != null && agvUpdateDTO.Message == "ROBOT_ERROR-haiUnknownError")
+                {
+                    var task1 = _taskRepository.QueryFirst(x => (agvUpdateDTO.MissionCode ?? "") == x.GroupId);
+                    if (task1 == null) throw new Exception($"鏈壘鍒版枡绠便�恵agvUpdateDTO.ContainerCode}銆戜换鍔�");
+                    Dt_ErrorInfo errorInfo = new Dt_ErrorInfo()
+                    {
+                        RobotCode = agvUpdateDTO.RobotId,
+                        Message = agvUpdateDTO.Message,
+                        ErrorType = 2
+                    };
+                    if (task1.TaskType == 500)
+                    {
+                        errorInfo.Message = "鍏ュ簱寮傚父";
+                        errorInfo.StationCode = task1.CurrentAddress;
+                    }
+                    else
+                    {
+                        errorInfo.Message = "鍑哄簱寮傚父";
+                        errorInfo.StationCode = task1.NextAddress;
+                    }
+                    _taskService.AgvSearchStatus1(errorInfo);
+                }
                 content.OK();
             }
             catch (Exception ex)

--
Gitblit v1.9.3