| | |
| | | using 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; |
| | |
| | | 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) |
| | | { |
| | | |
| | | // è¿æ¥å符串 - æ ¹æ®ä½ çæå¡å¨ä¿¡æ¯ä¿®æ¹ |
| | |
| | | { |
| | | using (SqlConnection connection = new SqlConnection(connectionString)) |
| | | { |
| | | connection.Open(); |
| | | connection.Open(); |
| | | |
| | | using (SqlCommand command = new SqlCommand(insertSql, connection)) |
| | | { |
| | |
| | | } |
| | | } |
| | | |
| | | } |
| | | |
| | | public static void SendAGVTask(AGV agv, ITaskRepository _taskRepository) |
| | | { |
| | | // æ£æ¥AGVæ¯å¦ä¸ºç©º |
| | | if (agv == null) |
| | | { |