| | |
| | | using WIDESEAWCS_ITaskInfoService; |
| | | using WIDESEAWCS_Model.Models; |
| | | using WIDESEAWCS_QuartzJob; |
| | | using WIDESEAWCS_QuartzJob.Models; |
| | | using WIDESEAWCS_QuartzJob.Service; |
| | | |
| | | namespace WIDESEAWCS_Tasks |
| | |
| | | { |
| | | try |
| | | { |
| | | List<Dt_Task> UpTasks = new List<Dt_Task>(); |
| | | var newTasks = _taskService.Db.Queryable<Dt_Task>().Where(x => x.TaskState == TaskInStatusEnum.InNew.ObjToInt()).ToList().OrderBy(x => x.Grade).ThenBy(x => x.CreateDate).ToList(); |
| | | |
| | | #region 浠诲姟鏇存柊 |
| | | var Tasks = _taskService.Db.Queryable<Dt_Task>().Where(x => x.TaskState > (int)TaskInStatusEnum.InNew && x.TaskState < (int)TaskInStatusEnum.AGV_InFinish).ToList().OrderBy(x => x.Grade).ThenBy(x => x.CreateDate).ToList(); |
| | | foreach (var Task in Tasks) |
| | | { |
| | | var ResultData = HttpHelper.PostAsync(AGVInterfaceAddress.taskResult + Task.TaskNum, null, headers: new Dictionary<string, string>()); |
| | | if (ResultData.Result != null) |
| | | { |
| | | var content = JsonConvert.DeserializeObject<AGVReturnInfo>(ResultData.Result); |
| | | if (content.code == "20000") |
| | | { |
| | | switch (content.status) |
| | | { |
| | | case "01": |
| | | break; |
| | | case "02": |
| | | Task.TaskState = TaskInStatusEnum.AGV_InExecuting.ObjToInt(); |
| | | break; |
| | | case "08": |
| | | { |
| | | Task.TaskState = (int)TaskInStatusEnum.AGV_InFinish; |
| | | Task.CurrentAddress = Task.NextAddress; |
| | | List<Dt_Router> routers = _routerService.QueryNextRoutes(Task.CurrentAddress, Task.TargetAddress); |
| | | if (routers.Count > 0) |
| | | { |
| | | Task.NextAddress = routers.FirstOrDefault().ChildPosi; |
| | | } |
| | | } |
| | | break; |
| | | case "09": |
| | | break; |
| | | default: |
| | | break; |
| | | } |
| | | } |
| | | } |
| | | Thread.Sleep(1000); |
| | | } |
| | | _taskService.Db.Updateable(Tasks).ExecuteCommand(); |
| | | #endregion |
| | | |
| | | #region 浠诲姟涓嬪彂 |
| | | List<Dt_Task> UpnewTasks = new List<Dt_Task>(); |
| | | var newTasks = _taskService.Db.Queryable<Dt_Task>().Where(x => x.TaskState == (int)TaskInStatusEnum.InNew).ToList().OrderBy(x => x.Grade).ThenBy(x => x.CreateDate).ToList(); |
| | | foreach (var agvTaskDTO in GetAGVTaskDTOs(newTasks)) |
| | | { |
| | | var ResultData = HttpHelper.PostAsync(AGVInterfaceAddress.taskSent, agvTaskDTO.ToJson(), headers: new Dictionary<string, string>()); |
| | |
| | | { |
| | | var task = newTasks.Where(x => x.TaskNum == agvTaskDTO.outID.ObjToInt()).First(); |
| | | task.TaskState = TaskInStatusEnum.AGV_InSend.ObjToInt(); |
| | | UpTasks.Add(task); |
| | | UpnewTasks.Add(task); |
| | | } |
| | | else |
| | | { |
| | | var task = newTasks.Where(x => x.TaskNum == agvTaskDTO.outID.ObjToInt()).First(); |
| | | task.ExceptionMessage = content.message; |
| | | UpTasks.Add(task); |
| | | UpnewTasks.Add(task); |
| | | } |
| | | Thread.Sleep(1000); |
| | | } |
| | | var count = _taskService.Db.Updateable(UpTasks).ExecuteCommand(); |
| | | if (UpnewTasks.Count > 0) _taskService.Db.Updateable(UpnewTasks).ExecuteCommand(); |
| | | #endregion |
| | | } |
| | | catch (Exception ex) |
| | | { |