From 2c69e642303e9f9c3b2e37194c4c6cdf7e1b3001 Mon Sep 17 00:00:00 2001
From: xiaojiao <xiaojiao@kaokeziliao.com>
Date: 星期三, 29 四月 2026 17:26:33 +0800
Subject: [PATCH] 4-29
---
项目代码/WIDESEA_WCSServer/WIDESEAWCS_Tasks/AGV/CommonAGVJob.cs | 122 ++++++++++++++++++++--------------------
1 files changed, 60 insertions(+), 62 deletions(-)
diff --git "a/\351\241\271\347\233\256\344\273\243\347\240\201/WIDESEA_WCSServer/WIDESEAWCS_Tasks/AGV/CommonAGVJob.cs" "b/\351\241\271\347\233\256\344\273\243\347\240\201/WIDESEA_WCSServer/WIDESEAWCS_Tasks/AGV/CommonAGVJob.cs"
index 3e25b38..4cd812b 100644
--- "a/\351\241\271\347\233\256\344\273\243\347\240\201/WIDESEA_WCSServer/WIDESEAWCS_Tasks/AGV/CommonAGVJob.cs"
+++ "b/\351\241\271\347\233\256\344\273\243\347\240\201/WIDESEA_WCSServer/WIDESEAWCS_Tasks/AGV/CommonAGVJob.cs"
@@ -9,6 +9,7 @@
using System.Collections.Generic;
using System.ComponentModel;
using System.Linq;
+using System.Reflection;
using System.Text;
using System.Threading.Tasks;
using WIDESEA_Common.Log;
@@ -35,7 +36,7 @@
private readonly ITaskService _taskService;
private readonly ISys_ConfigService _sys_ConfigService;
private readonly IDt_StationManagerRepository _stationManagerRepository;
- public CommonAGVJob(ITaskRepository taskRepository,ITaskService taskService,ISys_ConfigService configService,IDt_StationManagerRepository stationManagerRepository)
+ public CommonAGVJob(ITaskRepository taskRepository, ITaskService taskService, ISys_ConfigService configService, IDt_StationManagerRepository stationManagerRepository)
{
_taskRepository = taskRepository;
_taskService = taskService;
@@ -45,76 +46,73 @@
public Task Execute(IJobExecutionContext context)
{
- var newTasks = _taskService.Db.Queryable<Dt_Task>().Where(x => (x.TaskState == TaskAGVCarryStatusEnum.AGV_CarryNew.ObjToInt())).ToList().OrderBy(x => x.Grade).ThenBy(x => x.TaskNum).ToList();
+ var newTasks = _taskService.Db.Queryable<Dt_Task>().Where(x => (x.TaskState == (int)TaskAGVCarryStatusEnum.AGV_CarryNew)).ToList().OrderBy(x => x.Grade).ThenBy(x => x.TaskNum).ToList();
+ return Task.CompletedTask;
#region 浠诲姟涓嬪彂
if (newTasks.Count > 0)
{
WriteLog.Write_Log("AGV浠诲姟涓嬪彂", "浠诲姟涓嬪彂鎺ュ彛", "娣诲姞浠诲姟", $"浠诲姟锛歿newTasks.ToJson()}");
- try
+ foreach (var task in newTasks)
{
- AgvTaskSendDTO agvTaskSend = new AgvTaskSendDTO()
+ try
{
- MissionData = new List<MissionDataItem>()
- };
- string taskGroupId = Guid.NewGuid().ToString().Replace("-", "");
-
- foreach (var task in newTasks)
- {
- //鑾峰彇鐩爣鐐硅揣浣�
- //Dt_StationManager stationManagerStart = _stationManagerRepository.QueryFirst(x => x.stationLocation == task.CurrentAddress);
- //鑾峰彇鎷i�夊嚭搴撶珯鍙�
- Dt_StationManager stationManagerEnd = _stationManagerRepository.QueryFirst(x => x.stationLocation == task.NextAddress);
-
- if (stationManagerEnd == null) throw new Exception($"鏈壘鍒颁换鍔″彿${task.TaskNum}鐩爣鐐箋task.NextAddress}浣嶇疆淇℃伅");
- agvTaskSend.RequestId = taskGroupId;
- agvTaskSend.MissionCode = task.TaskNum.ToString();
- agvTaskSend.ViewBoardType = "W01";
- //璐ф灦瀛愭惉杩愪换鍔�
- MissionDataItem missionDataItem = new MissionDataItem()
+ AgvTaskSendDTO agvTaskSend = new AgvTaskSendDTO()
{
- Sequence = task.TaskNum,
- Position = stationManagerEnd.stationLocation,
-
- //BinCode = task.PalletCode,
- //StartPosition = stationManagerStart.stationLocation,
- //EndPosition = stationManagerEnd.stationLocation,
- //TakeActionConfirm = false,
- //TakeActionInform = false,
- //PutActionConfirm = true,
- //PutActionInform = true,
+ MissionData = new List<MissionDataItem>()
};
- agvTaskSend.MissionData.Add(missionDataItem);
- }
- if (newTasks.OrderByDescending(x => x.Grade).FirstOrDefault()?.Grade == 0)
- {
- agvTaskSend.Priority = 99;
- }
- else
- {
- agvTaskSend.Priority = 99 - newTasks.OrderByDescending(x => x.Grade).FirstOrDefault().Grade;
- }
- //鍙戦�丄GV浠诲姟
- WebResponseContent content = _taskService.AgvSendTask(agvTaskSend, APIEnum.AgvSendTask);
- if (!content.Status)
- throw new Exception(content.Message);
- newTasks.ForEach(x =>
- {
- x.Dispatchertime = DateTime.Now;
- x.TaskState = TaskAGVCarryStatusEnum.AGV_CarryExecuting.ObjToInt();
- });
- _taskService.UpdateData(newTasks);
- Thread.Sleep(500);
- }
- catch (Exception ex)
- {
- newTasks.ForEach(x =>
- {
- x.TaskState = TaskAGVCarryStatusEnum.AGV_CarryException.ObjToInt();
- x.ExceptionMessage = ex.Message;
- });
- _taskService.UpdateData(newTasks);
- }
+ string taskGroupId = Guid.NewGuid().ToString().Replace("-", "");
+ // 鑾峰彇璧峰绔欏彴
+ Dt_StationManager stationManagerEnd = _stationManagerRepository.QueryFirst(x => x.StationLocation == task.SourceAddress);
+ // 鑾峰彇鐩殑绔欏彴
+ Dt_StationManager finalmission = _stationManagerRepository.QueryFirst(x => x.StationLocation == task.TargetAddress);
+
+ if (stationManagerEnd == null) throw new Exception($"鏈壘鍒颁换鍔″彿${task.TaskId}璧峰鐐箋task.SourceAddress}浣嶇疆淇℃伅");
+ if (finalmission == null) throw new Exception($"鏈壘鍒颁换鍔″彿${task.TaskId}鐩爣鐐箋task.TargetAddress}浣嶇疆淇℃伅");
+
+ agvTaskSend.RequestId = taskGroupId;
+ agvTaskSend.MissionCode = task.TaskId.ToString();
+ agvTaskSend.ViewBoardType = "W01";
+ agvTaskSend.ContainerCode = task.PalletCode;
+ //璐ф灦瀛愭惉杩愪换鍔�
+ MissionDataItem Startingmission = new MissionDataItem() // 璧风偣
+ {
+ Sequence = 1,
+ Position = stationManagerEnd.StationLocation,
+ };
+
+ MissionDataItem Finalmission = new MissionDataItem() // 缁堢偣
+ {
+ Sequence = 2,
+ Position = finalmission.StationLocation,
+ PutDown = true,
+ };
+ agvTaskSend.MissionData.Add(Startingmission);
+ agvTaskSend.MissionData.Add(Finalmission);
+ if (task.Grade == 0)
+ {
+ agvTaskSend.Priority = 99;
+ }
+ else
+ {
+ agvTaskSend.Priority = 99 - task.Grade;
+ }
+ //鍙戦�丄GV浠诲姟
+ WebResponseContent content = _taskService.AgvSendTask(agvTaskSend, APIEnum.AgvSendTask);
+ if (!content.Status)
+ throw new Exception(content.Message);
+ task.Dispatchertime = DateTime.Now;
+ task.TaskState = (int)TaskAGVCarryStatusEnum.AGV_CarryExecuting;
+ _taskService.UpdateData(task);
+ Thread.Sleep(500);
+ }
+ catch (Exception ex)
+ {
+ task.TaskState = (int)TaskAGVCarryStatusEnum.AGV_CarryException;
+ task.ExceptionMessage = ex.Message;
+ _taskService.UpdateData(newTasks);
+ }
+ }
}
#endregion
return Task.CompletedTask;
--
Gitblit v1.9.3