From 6cc35000a6e138cfad96e7b02f8aeddcdb4ba6bf Mon Sep 17 00:00:00 2001 From: wankeda <Administrator@DESKTOP-HAU3ST3> Date: 星期二, 24 六月 2025 09:57:25 +0800 Subject: [PATCH] 代码提交 --- 代码管理/NEWCode/WIDESEAWCS_Server/WIDESEAWCS_Tasks/AGVJob/SendTaskAGV.cs | 105 +++++++++++++++++++++++++++++++++++++++++++++++++--- 1 files changed, 99 insertions(+), 6 deletions(-) diff --git "a/\344\273\243\347\240\201\347\256\241\347\220\206/NEWCode/WIDESEAWCS_Server/WIDESEAWCS_Tasks/AGVJob/SendTaskAGV.cs" "b/\344\273\243\347\240\201\347\256\241\347\220\206/NEWCode/WIDESEAWCS_Server/WIDESEAWCS_Tasks/AGVJob/SendTaskAGV.cs" index 4814dca..44c3ffc 100644 --- "a/\344\273\243\347\240\201\347\256\241\347\220\206/NEWCode/WIDESEAWCS_Server/WIDESEAWCS_Tasks/AGVJob/SendTaskAGV.cs" +++ "b/\344\273\243\347\240\201\347\256\241\347\220\206/NEWCode/WIDESEAWCS_Server/WIDESEAWCS_Tasks/AGVJob/SendTaskAGV.cs" @@ -1,8 +1,15 @@ 锘縰sing System.Diagnostics; using System.Text; using Microsoft.Data.SqlClient; +using Newtonsoft.Json; +using WIDESEA_Core.Enums; using WIDESEAWCS_Common.AGVEnum; using WIDESEAWCS_Common.TaskEnum; +using WIDESEAWCS_Core; +using WIDESEAWCS_Core.Helper; +using WIDESEAWCS_Core.Tool; +using WIDESEAWCS_DTO.TaskInfo; +using WIDESEAWCS_ISystemRepository; using WIDESEAWCS_ITaskInfoRepository; using WIDESEAWCS_Model.Models; using WIDESEAWCS_QuartzJob; @@ -14,8 +21,98 @@ private static int _readSendAGVTaskSignalso = 0; private static bool isTrue1 = false; private static string name1 = ""; + public static string url = AppSettings.Configuration["AGVTaskGeneration"]; + public static void SendAGVTask1(ITaskRepository _taskRepository, IDt_StationinfoRepository _stationinfoRepository) + { + WebResponseContent content = new WebResponseContent(); + try + { + Dt_Task task = _taskRepository.QueryData(x => x.TaskState == (int)TaskInStatusEnum.InNew).OrderBy(r => r.CreateDate).FirstOrDefault(); //.ThenByDescending(r => r.Grade) + if (task != null) + { + TaskGenerationDto taskGenerationDto = new TaskGenerationDto(); + { + taskGenerationDto.taskid = task.TaskNum.ToString(); + taskGenerationDto.taskType = task.TaskType.ToString(); + taskGenerationDto.floor = task.Floor.ToString(); + taskGenerationDto.param1 = task.SourceAddress.ToString(); + taskGenerationDto.param2 = task.TargetAddress.ToString(); + taskGenerationDto.param3 = ""; + taskGenerationDto.param4 = ""; + taskGenerationDto.param5 = ""; + taskGenerationDto.param6 = ""; + taskGenerationDto.param7 = ""; + taskGenerationDto.param8 = ""; + taskGenerationDto.param9 = ""; + } + var ResultData = HttpHelper.Post(url, taskGenerationDto.ToJson(), headers: new Dictionary<string, string>()); + var res = JsonConvert.DeserializeObject<WebResponseContent>(ResultData); + if (res.code == 200) + { + WriteLog.Info("浠诲姟涓嬪彂鎴愬姛").Write($"浠诲姟鍙穥task.TaskNum}", "浠诲姟涓嬪彂鎴愬姛"); + int nextStatus = task.TaskState.GetNextNotCompletedStatus<TaskInStatusEnum>(); + task.TaskState = nextStatus; + task.Dispatchertime = DateTime.Now; + _taskRepository.UpdateData(task); + } + else + { + WriteLog.Info("浠诲姟涓嬪彂澶辫触").Write($"浠诲姟鍙穥task.TaskNum}锛屼俊鎭瘂res.Message}", "浠诲姟涓嬪彂澶辫触"); + //_unitOfWorkManage.RollbackTran(); + content = WebResponseContent.Instance.Error($"{res.Message}"); + } + } + Thread.Sleep(100); + Dt_Task dt_Task = _taskRepository.QueryData(x => x.TaskState == (int)TaskInStatusEnum.AGV_Queue).OrderBy(r => r.CreateDate).FirstOrDefault(); + if (dt_Task != null) + { + var station = _stationinfoRepository.QueryFirst(x => x.StationCode == dt_Task.SourceAddress); + // 鏌ユ壘涓や釜鍙敤鐨勭┖缂撳瓨鏋� + var freeStations = _stationinfoRepository + .QueryData(x => x.Location_state == LocationStatusEnum.Free.ObjToInt() && x.Enable && x.Remark == station.Remark && x.Area == station.Area)// && x.Stationtype == station.Stationtype + .Take(2) // 鍙彇鍓嶄袱涓� + .ToList(); - public static void SendAGVTask1(ITaskRepository _taskRepository) + int floor = 0; + if (station.Area.Contains("A鍖�")) + { + floor = 32; + } + else + { + floor = 128; + } + if (freeStations.Count < 2) + { + throw new Exception("鏈壘鍒颁袱涓彲鐢ㄧ殑绌虹紦瀛樻灦"); + } + // 妫�鏌ヨ繖涓や釜缂撳瓨鏋舵槸鍚﹁浠诲姟鍗犵敤 + var stationCodes = freeStations.Select(s => s.StationCode).ToList(); + freeStations[0].Location_state = LocationStatusEnum.Lock.ObjToInt(); + _stationinfoRepository.UpdateData(freeStations[0]); + freeStations[1].Location_state = LocationStatusEnum.Lock.ObjToInt(); + _stationinfoRepository.UpdateData(freeStations[1]); + //stationCodes. + var tasks = _taskRepository.QueryData(x => stationCodes.Contains(x.SourceAddress) || stationCodes.Contains(x.TargetAddress)).ToList(); + if (tasks.Any()) + { + throw new Exception("缂撳瓨鏋跺凡鏈変换鍔�"); + } + dt_Task.TargetAddress = string.Join("||", freeStations.Select(s => s.StationCode)); + dt_Task.NextAddress = string.Join("||", freeStations.Select(s => s.StationCode)); + dt_Task.TaskState = (int)TaskInStatusEnum.InNew; + dt_Task.TaskType = floor; + _taskRepository.UpdateData(dt_Task); + } + } + catch (Exception ex) + { + + } + + } + + public static void SendAGVTask(AGV agv, ITaskRepository _taskRepository) { // 杩炴帴瀛楃涓� - 鏍规嵁浣犵殑鏈嶅姟鍣ㄤ俊鎭慨鏀� @@ -30,7 +127,7 @@ { using (SqlConnection connection = new SqlConnection(connectionString)) { - connection.Open(); + connection.Open(); using (SqlCommand command = new SqlCommand(insertSql, connection)) { @@ -55,10 +152,6 @@ } } - } - - public static void SendAGVTask(AGV agv, ITaskRepository _taskRepository) - { // 妫�鏌GV鏄惁涓虹┖ if (agv == null) { -- Gitblit v1.9.3