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 | 80 +++++++++++++++++++++++++++++++++++++++-
1 files changed, 78 insertions(+), 2 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 110d9cc..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"
@@ -4,18 +4,23 @@
using Newtonsoft.Json.Linq;
using OfficeOpenXml.FormulaParsing.Excel.Functions.Information;
using Quartz;
+using SqlSugar;
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Linq;
+using System.Reflection;
using System.Text;
using System.Threading.Tasks;
+using WIDESEA_Common.Log;
using WIDESEAWCS_Common;
+using WIDESEAWCS_Common.APIEnum;
using WIDESEAWCS_Common.TaskEnum;
using WIDESEAWCS_Core;
using WIDESEAWCS_Core.Helper;
+using WIDESEAWCS_DTO.Agv;
using WIDESEAWCS_DTO.TaskInfo;
-using WIDESEAWCS_DTO.WMS;
+using WIDESEAWCS_IBasicInfoRepository;
using WIDESEAWCS_ISystemServices;
using WIDESEAWCS_ITaskInfoRepository;
using WIDESEAWCS_ITaskInfoService;
@@ -30,15 +35,86 @@
private readonly ITaskRepository _taskRepository;
private readonly ITaskService _taskService;
private readonly ISys_ConfigService _sys_ConfigService;
- public CommonAGVJob(ITaskRepository taskRepository,ITaskService taskService,ISys_ConfigService configService)
+ private readonly IDt_StationManagerRepository _stationManagerRepository;
+ public CommonAGVJob(ITaskRepository taskRepository, ITaskService taskService, ISys_ConfigService configService, IDt_StationManagerRepository stationManagerRepository)
{
_taskRepository = taskRepository;
_taskService = taskService;
_sys_ConfigService = configService;
+ _stationManagerRepository = stationManagerRepository;
}
public Task Execute(IJobExecutionContext context)
{
+ 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()}");
+ foreach (var task in newTasks)
+ {
+ try
+ {
+ AgvTaskSendDTO agvTaskSend = new AgvTaskSendDTO()
+ {
+ MissionData = new List<MissionDataItem>()
+ };
+ 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