| | |
| | | |
| | | using Autofac.Core; |
| | | using AutoMapper; |
| | | using HslCommunication; |
| | | using Magicodes.ExporterAndImporter.Core; |
| | | using Microsoft.AspNetCore.Mvc; |
| | | using Microsoft.AspNetCore.Mvc.RazorPages; |
| | |
| | | private readonly ITask_HtyService _task_HtyService; |
| | | private readonly IMapper _mapper; |
| | | private readonly IEquipmentStatusService _equipmentStatus; |
| | | private readonly IAgvStationService _gvStationService; |
| | | |
| | | |
| | | private Dictionary<string, OrderByType> _taskOrderBy = new() |
| | |
| | | |
| | | public List<int> TaskOutboundTypes => typeof(TaskOutboundTypeEnum).GetEnumIndexList(); |
| | | |
| | | public TaskService(ITaskRepository BaseDal, IRouterService routerService, ITaskExecuteDetailService taskExecuteDetailService, ITaskExecuteDetailRepository taskExecuteDetailRepository, IMapper mapper, ITask_HtyService task_HtyService, IRouterRepository routerRepository, IEquipmentStatusService equipmentStatus) : base(BaseDal) |
| | | public TaskService(ITaskRepository BaseDal, IRouterService routerService, ITaskExecuteDetailService taskExecuteDetailService, ITaskExecuteDetailRepository taskExecuteDetailRepository, IMapper mapper, ITask_HtyService task_HtyService, IRouterRepository routerRepository, IEquipmentStatusService equipmentStatus, IAgvStationService agvStationService) : base(BaseDal) |
| | | { |
| | | _routerService = routerService; |
| | | _taskExecuteDetailService = taskExecuteDetailService; |
| | |
| | | _mapper = mapper; |
| | | _routerRepository = routerRepository; |
| | | _equipmentStatus = equipmentStatus; |
| | | _gvStationService = agvStationService; |
| | | } |
| | | |
| | | /// <summary> |
| | |
| | | else if (item.type == 2) //åºåº |
| | | { |
| | | string roadway = ""; |
| | | string CurrentAddress = ""; |
| | | switch (item.startAddress) |
| | | { |
| | | case "1": |
| | | roadway = "RGV110"; |
| | | CurrentAddress = "1101"; |
| | | break; |
| | | case "2": |
| | | roadway = "RGV112"; |
| | | CurrentAddress = "1121"; |
| | | break; |
| | | case "3": |
| | | roadway = "RGV114"; |
| | | CurrentAddress = "1141"; |
| | | break; |
| | | case "4": |
| | | roadway = "RGV115"; |
| | | CurrentAddress = "1151"; |
| | | break; |
| | | } |
| | | |
| | | AGVStation gVStation = _gvStationService.Corridorequipment(roadway); |
| | | |
| | | Dt_Task dt_Task = new Dt_Task(); |
| | | dt_Task.TaskNum = item.taskNo; |
| | |
| | | dt_Task.RGVCurrentexecution = "0"; //ç®åææ |
| | | dt_Task.TaskState = (int)TaskOutStatusEnum.OutNew; //ç®åææ |
| | | dt_Task.SourceAddress = item.startAddress; |
| | | dt_Task.TargetAddress = ""; |
| | | dt_Task.CurrentAddress = CurrentAddress; |
| | | dt_Task.NextAddress = "0"; //ç®åææ |
| | | dt_Task.TargetAddress ="0"; |
| | | dt_Task.CurrentAddress = gVStation.Motherinlaw.ToString(); |
| | | dt_Task.NextAddress = gVStation.ZicheMotherinlaw.ToString(); //ç®åææ |
| | | dt_Task.Grade = item.priority; |
| | | dt_Task.WMSId = 0; //ç®åææ |
| | | BaseDal.AddData(dt_Task); |
| | |
| | | return BaseDal.QueryFirst(x => x.Roadway == DeviceCode, TaskOrderBy); |
| | | } |
| | | |
| | | public Dt_Task ChildVehicleMission(AGVStation aGVStation) |
| | | { |
| | | Dt_Task dt_Tasks =BaseDal.QueryFirst(x => x.Roadway == aGVStation.ChildPosiDeviceCode && x.CurrentAddress== aGVStation.MotherCarDeviceCode.ToString() && x.RGVTaskType== (int)RGVTaskTypeEnum.PickingUp, TaskOrderBy); |
| | | if(dt_Tasks !=null) return dt_Tasks; |
| | | Dt_Task dt_Tasks2 = BaseDal.QueryFirst(x => x.Roadway == aGVStation.ChildPosiDeviceCode && x.CurrentAddress == aGVStation.MotherCardeputy.ToString() && x.RGVTaskType == (int)RGVTaskTypeEnum.PickingUp, TaskOrderBy); |
| | | if (dt_Tasks2 != null) return dt_Tasks2; |
| | | Dt_Task dt_Tasks3 = BaseDal.QueryFirst(x => x.Roadway == aGVStation.ChildPosiDeviceCode && x.CurrentAddress == aGVStation.HCJStorageaddress.ToString() && x.RGVTaskType == (int)RGVTaskTypeEnum.PickingUp, TaskOrderBy); |
| | | if (dt_Tasks3 != null) return dt_Tasks3; |
| | | return null; |
| | | } |
| | | public Dt_Task GetFinhuoTask(string DeviceCode) |
| | | { |
| | | return BaseDal.QueryFirst(x => x.Roadway == DeviceCode && x.TaskState == (int)TaskOutStatusEnum.RGV_OutZicheFinish && x.RGVTaskType == (int)RGVTaskTypeEnum.Placing, TaskOrderBy); |
| | | } |
| | | |
| | | public Dt_Task GetOutkouFinhuoTask(string DeviceCode,string curraderr,int type) |
| | | { |
| | | if (type == 1) |
| | | { |
| | | return BaseDal.QueryFirst(x => x.Roadway == DeviceCode && x.TaskState == (int)TaskOutStatusEnum.RGV_OutZicheReleaseFinish && x.RGVTaskType == (int)RGVTaskTypeEnum.PickingUp && x.CurrentAddress == curraderr, TaskOrderBy); |
| | | } |
| | | else |
| | | { |
| | | return BaseDal.QueryFirst(x => x.Roadway == DeviceCode && x.TaskState == (int)TaskOutStatusEnum.RGV_OutPickupFinish && x.RGVTaskType == (int)RGVTaskTypeEnum.Placing && x.NextAddress !="", TaskOrderBy); |
| | | } |
| | | } |
| | | |
| | | public Dt_Task GetInkouFinhuoTask(string DeviceCode,int type) |
| | | { |
| | | if (type == 1) |
| | | { |
| | | return BaseDal.QueryFirst(x => x.Roadway == DeviceCode && x.TaskState == (int)TaskInStatusEnum.RGV_InNew && x.RGVTaskType == (int)RGVTaskTypeEnum.PickingUp, TaskOrderBy); |
| | | } |
| | | else |
| | | { |
| | | return BaseDal.QueryFirst(x => x.Roadway == DeviceCode && x.TaskState == (int)TaskInStatusEnum.RGV_InPickupFinish && x.RGVTaskType == (int)RGVTaskTypeEnum.Placing, TaskOrderBy); |
| | | } |
| | | } |
| | | |
| | | public Dt_Task GetInzicheTask(string DeviceCode, int type) |
| | | { |
| | | if (type == 1) |
| | | { |
| | | return BaseDal.QueryFirst(x => x.Roadway == DeviceCode && x.TaskState == (int)TaskInStatusEnum.RGV_InReleaseFinish && x.RGVTaskType == (int)RGVTaskTypeEnum.PickingUp, TaskOrderBy); |
| | | } |
| | | else |
| | | { |
| | | return BaseDal.QueryFirst(x => x.Roadway == DeviceCode && x.TaskState == (int)TaskInStatusEnum.RGV_InZicheFinish && x.RGVTaskType == (int)RGVTaskTypeEnum.Placing, TaskOrderBy); |
| | | } |
| | | } |
| | | public Dt_Task GetInzicheTaskMobile(string DeviceCode, int type) |
| | | { |
| | | if (type == 1) //1为å车移å¨ä»»å¡ 2为æ¯è½¦ç§»å¨ä»»å¡ |
| | | { |
| | | return BaseDal.QueryFirst(x => x.Roadway == DeviceCode && x.TaskState == (int)TaskInStatusEnum.RGV_InZicheReleaseFinish && x.RGVTaskType == (int)RGVTaskTypeEnum.TravelingOnly, TaskOrderBy); |
| | | } |
| | | else |
| | | { |
| | | return BaseDal.QueryFirst(x => x.Roadway == DeviceCode && x.TaskState == (int)TaskInStatusEnum.RGV_InZichemoveFinish && x.RGVTaskType == (int)RGVTaskTypeEnum.TravelingOnly, TaskOrderBy); |
| | | } |
| | | } |
| | | |
| | | public WebResponseContent UpdateRGVTasktype(int taskNum, int RGVTasktype) |
| | | { |
| | | WebResponseContent content = new WebResponseContent(); |
| | |
| | | } |
| | | task.RGVTaskType = RGvtype; |
| | | bool updatesta = BaseDal.UpdateData(task); |
| | | string Meesgt = $"ç®æ å°åï¼{task.CurrentAddress},ä»»å¡ç±»åï¼{rwlx}ï¼ä¿®æ¹ç¶æï¼{updatesta}"; |
| | | _taskExecuteDetailService.AddTaskExecuteDetail(task.TaskId, Meesgt); |
| | | |
| | | content = WebResponseContent.Instance.OK(); |
| | | } |
| | |
| | | task.ExceptionMessage = message; |
| | | task.ModifyDate = DateTime.Now; |
| | | BaseDal.UpdateData(task); |
| | | _taskExecuteDetailService.AddTaskExecuteDetail(task.TaskId, task.ExceptionMessage); |
| | | _taskExecuteDetailService.AddTaskExecuteDetail(task.TaskId, "æ´æ°ä»»å¡å¼å¸¸ï¼"+task.ExceptionMessage); |
| | | content = WebResponseContent.Instance.OK(); |
| | | } |
| | | catch (Exception ex) |
| | |
| | | task.Modifier = "System"; |
| | | BaseDal.UpdateData(task); |
| | | |
| | | _taskExecuteDetailService.AddTaskExecuteDetail(task.TaskId, App.User.UserId > 0 ? $"人工æå¨å°ä»»å¡ç¶æä»ã{oldState}ã跳转å°ã{task.TaskState}ã" : $"ç³»ç»èªå¨æµç¨ï¼ä»»å¡ç¶æä»ã{oldState}ã转å°ã{task.TaskState}ã"); |
| | | string oldstaterem = _taskExecuteDetailService.GetEnumDescription(oldState); //åä¸ä¸ªç¶æ |
| | | string afterstaterem = _taskExecuteDetailService.GetEnumDescription(task.TaskState); //åä¸ä¸ªç¶æ |
| | | |
| | | string rgvtyperem = _taskExecuteDetailService.GetEnumDescription2(task.RGVTaskType); //åä¸ä¸ªç¶æ |
| | | |
| | | _taskExecuteDetailService.AddTaskExecuteDetail(task.TaskId, App.User.UserId > 0 ? |
| | | $"人工æå¨å°ä»»å¡ç¶æä»ã{oldstaterem}ã跳转å°ã{afterstaterem}ã" |
| | | : $"ç³»ç»èªå¨æµç¨ï¼ä»»å¡ç¶æä»ã{oldstaterem}ã转å°ã{afterstaterem}ã"); |
| | | |
| | | content = WebResponseContent.Instance.OK(); |
| | | } |
| | |
| | | |
| | | BaseDal.UpdateData(task); |
| | | |
| | | _taskExecuteDetailService.AddTaskExecuteDetail(task.TaskId, $"人工æ¢å¤æèµ·ä»»å¡,æ¢å¤æèµ·æ¶ä»»å¡ç¶æã{task.TaskState}ã"); |
| | | string afterstaterem = _taskExecuteDetailService.GetEnumDescription(task.TaskState); //åä¸ä¸ªç¶æ |
| | | |
| | | _taskExecuteDetailService.AddTaskExecuteDetail(task.TaskId, $"人工æ¢å¤æèµ·ä»»å¡,æ¢å¤æèµ·æ¶ä»»å¡ç¶æã{afterstaterem}ã"); |
| | | |
| | | content = WebResponseContent.Instance.OK(); |
| | | } |
| | |
| | | if (task == null) return WebResponseContent.Instance.Error($"æªæ¾å°è¯¥ä»»å¡ä¿¡æ¯,ä»»å¡å·:ã{taskNum}ã"); |
| | | |
| | | int oldState = task.TaskState; |
| | | Dt_TaskExecuteDetail taskExecuteDetail = _taskExecuteDetailRepository.QueryFirst(x => x.TaskId == task.TaskId && x.TaskState < task.TaskState && x.TaskState > 0, new Dictionary<string, OrderByType> { { nameof(Dt_TaskExecuteDetail.TaskDetailId), OrderByType.Desc } }); |
| | | Dt_TaskExecuteDetail taskExecuteDetail = null; |
| | | |
| | | if (task.CurrentAddress == "1061") |
| | | { |
| | | taskExecuteDetail = _taskExecuteDetailRepository.QueryFirst(x => x.TaskId == task.TaskId && x.TaskState > task.TaskState && x.TaskState > 0, new Dictionary<string, OrderByType> { { nameof(Dt_TaskExecuteDetail.TaskDetailId), OrderByType.Desc } }); |
| | | } |
| | | else |
| | | { |
| | | taskExecuteDetail = _taskExecuteDetailRepository.QueryFirst(x => x.TaskId == task.TaskId && x.TaskState < task.TaskState && x.TaskState > 0, new Dictionary<string, OrderByType> { { nameof(Dt_TaskExecuteDetail.TaskDetailId), OrderByType.Desc } }); |
| | | |
| | | } |
| | | |
| | | |
| | | |
| | | if (taskExecuteDetail != null) |
| | | { |
| | | task.TaskState = taskExecuteDetail.TaskState; |
| | |
| | | |
| | | BaseDal.UpdateData(task); |
| | | |
| | | _taskExecuteDetailService.AddTaskExecuteDetail(task.TaskId, $"人工å°ä»»å¡ç¶æä»ã{oldState}ãåæ»å°ã{task.TaskState}ã"); |
| | | string oldstaterem = _taskExecuteDetailService.GetEnumDescription(oldState); //åä¸ä¸ªç¶æ |
| | | string afterstaterem = _taskExecuteDetailService.GetEnumDescription(task.TaskState); //åä¸ä¸ªç¶æ |
| | | |
| | | string rgvtyperem = _taskExecuteDetailService.GetEnumDescription2(task.RGVTaskType); //åä¸ä¸ªç¶æ |
| | | |
| | | _taskExecuteDetailService.AddTaskExecuteDetail(task.TaskId, |
| | | $"人工æå¨å°ä»»å¡ç¶æä»ã{oldstaterem}ãåå½å°ã{afterstaterem}ã"); |
| | | |
| | | content = WebResponseContent.Instance.OK(); |
| | | } |
| | |
| | | /// </summary> |
| | | /// <param name="taskNum">ä»»å¡ç¼å·</param> |
| | | /// <returns>è¿åå¤çç»æ</returns> |
| | | public WebResponseContent UpdateTaskStatus(int taskNum) |
| | | public WebResponseContent UpdateTaskStatus(int taskNum, int Completetype) |
| | | { |
| | | WebResponseContent content = new WebResponseContent(); |
| | | |
| | |
| | | task.ExceptionMessage = string.Empty; |
| | | BaseDal.UpdateData(task); |
| | | |
| | | _taskExecuteDetailService.AddTaskExecuteDetail( |
| | | task.TaskId, |
| | | $"èªå¨ä»»å¡ç¶æä»ã{oldState}ãè¿å
¥å°ã{task.TaskState}ã" |
| | | ); |
| | | string oldstaterem = _taskExecuteDetailService.GetEnumDescription(oldState); //åä¸ä¸ªç¶æ |
| | | string afterstaterem = _taskExecuteDetailService.GetEnumDescription(task.TaskState); //åä¸ä¸ªç¶æ |
| | | |
| | | string rgvtyperem = _taskExecuteDetailService.GetEnumDescription2(task.RGVTaskType); //åä¸ä¸ªç¶æ |
| | | _taskExecuteDetailService.AddTaskExecuteDetail(task.TaskId, App.User.UserId > 0 ? |
| | | $"人工æå¨å°ä»»å¡ç¶æä»ã{oldstaterem}ã跳转å°ã{afterstaterem}ã" |
| | | : $"ç³»ç»èªå¨æµç¨ï¼ä»»å¡ç¶æä»ã{oldstaterem}ã转å°ã{afterstaterem}ã"); |
| | | |
| | | |
| | | if (task.TaskState == (int)TaskInStatusEnum.RGV_InMothercarFinish && Completetype==2) //å
¥åºä»»å¡å®æ |
| | | { |
| | | CompletedManually(task.TaskId, Completetype); |
| | | } |
| | | |
| | | return WebResponseContent.Instance.OK(); |
| | | } |
| | |
| | | /// <param name="ids"></param> |
| | | /// <returns></returns> |
| | | /// <exception cref="NotImplementedException"></exception> |
| | | public WebResponseContent CompletedManually(int id) |
| | | /// <summary> |
| | | /// 人工æå¨å®æ |
| | | /// </summary> |
| | | /// <param name="ids"></param> |
| | | /// <returns></returns> |
| | | /// <exception cref="NotImplementedException"></exception> |
| | | public WebResponseContent CompletedManually(int id, int CompletionType) |
| | | { |
| | | |
| | | var db = BaseDal.Db as SqlSugarClient; |
| | |
| | | |
| | | Dt_Task dt_task = BaseDal.QueryData().Where(x => x.TaskId == id).FirstOrDefault(); |
| | | if (dt_task == null) return WebResponseContent.Instance.Error($"æªæ¥è¯¢å°ä»»å¡"); |
| | | string Remark = CompletionType == 1 ? "人工æå¨å®æ" : "èªå¨å®æ"; |
| | | |
| | | |
| | | var res = _task_HtyService.AddData(new Dt_Task_hty |
| | | { |
| | |
| | | NextAddress = dt_task.NextAddress, |
| | | WMSId = dt_task.WMSId, |
| | | Dispatchertime = dt_task.Dispatchertime, |
| | | Remark = "人工æå¨å®æ", |
| | | Remark = Remark, |
| | | Creater = App.User.UserName, |
| | | CreateDate = DateTime.Now, |
| | | RGVTaskType = dt_task.RGVTaskType, |
| | | RGVCurrentexecution = dt_task.RGVCurrentexecution |
| | | }); |
| | | |
| | | int oldState = dt_task.TaskState; |
| | | _taskExecuteDetailService.AddTaskExecuteDetail( |
| | | dt_task.TaskId, |
| | | $"èªå¨ä»»å¡ç¶æä»ã{oldState}ãè¿å
¥å°ã{dt_task.TaskState}ã" |
| | | ); |
| | | |
| | | if (res.Status == false) |
| | | { |
| | | db.Ado.RollbackTran(); |
| | | return WebResponseContent.Instance.Error("æå¨å®æå¤±è´¥ï¼"); |
| | | return WebResponseContent.Instance.Error($"{Remark}失败ï¼"); |
| | | } |
| | | |
| | | var deletetask = BaseDal.DeleteData(dt_task); |
| | | if (deletetask == false) { |
| | | if (deletetask == false) |
| | | { |
| | | db.Ado.RollbackTran(); |
| | | return WebResponseContent.Instance.Error("å é¤ä»»å¡å¤±è´¥æææä½åæ»ï¼"); |
| | | return WebResponseContent.Instance.Error("å é¤ä»»å¡å¤±è´¥æææä½åæ»ï¼"); |
| | | } |
| | | db.Ado.CommitTran(); |
| | | return WebResponseContent.Instance.OK("æå¨å®ææåï¼"); |
| | | return WebResponseContent.Instance.OK($"{Remark}æåï¼"); |
| | | |
| | | } |
| | | catch (Exception ex) |
| | | { |
| | | db.Ado.RollbackTran(); |
| | | return WebResponseContent.Instance.Error("æå¨å®æå¤±è´¥ï¼"); |
| | | return WebResponseContent.Instance.Error("ä»»å¡å®æå¤±è´¥ï¼"); |
| | | } |
| | | } |
| | | |
| | |
| | | db.Ado.RollbackTran(); |
| | | return WebResponseContent.Instance.Error("åæ¶ä»»å¡å¤±è´¥ï¼"); |
| | | } |
| | | int oldState = dt_task.TaskState; |
| | | /*int oldState = dt_task.TaskState; |
| | | _taskExecuteDetailService.AddTaskExecuteDetail( |
| | | dt_task.TaskId, |
| | | $"èªå¨ä»»å¡ç¶æä»ã{oldState}ãè¿å
¥å°ã{dt_Task_Hty.TaskState}ã" |
| | | ); |
| | | );*/ |
| | | |
| | | bool deletetask = BaseDal.DeleteData(dt_task); |
| | | if (!deletetask) { |
| | |
| | | case (int)TaskOutStatusEnum.RGV_OutReleaseExecuting: |
| | | //åºåºç¶æ |
| | | //è°å宿æ¥å£ |
| | | responseContent = UpdateTaskStatus(task.TaskNum); |
| | | responseContent = UpdateTaskStatus(task.TaskNum, 1); |
| | | break; |
| | | case (int)TaskInStatusEnum.RGV_InMothercarFinish: |
| | | return WebResponseContent.Instance.Error("ä»»å¡å·²"); |
| | | default: |
| | | return WebResponseContent.Instance.Error("ä»»å¡ç¶æéè¯¯ï¼æ§è¡ä¸ä¸æ¥å¤±è´¥"); |
| | | } |