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