| | |
| | | using NPOI.XSSF.UserModel; |
| | | using RYB_PTL_API; |
| | | using SqlSugar; |
| | | using System.Collections.Generic; |
| | | using System.Diagnostics.CodeAnalysis; |
| | | using System.DirectoryServices.Protocols; |
| | | using System.Linq; |
| | |
| | | return content; |
| | | } |
| | | /// <summary> |
| | | /// ä»»å¡åæ¶ |
| | | /// </summary> |
| | | /// <returns></returns> |
| | | public WebResponseContent TaskCancelCompleted(int taskNum) |
| | | { |
| | | WebResponseContent content = new WebResponseContent(); |
| | | try |
| | | { |
| | | Dt_Task task = BaseDal.QueryFirst(x => x.TaskNum == taskNum); |
| | | if (task != null && task.TaskType.GetTaskTypeGroup() == TaskTypeGroup.OutbondGroup)//åºåºä»»å¡å®æé»è¾ |
| | | { |
| | | Dt_LocationInfo locationInfo = _locationInfoRepository.QueryFirst(x => x.PalletCode == task.PalletCode); |
| | | if (locationInfo.LocationStatus != LocationStatusEnum.Lock.ObjToInt()) |
| | | { |
| | | return content.Error($"{locationInfo.LocationCode}è´§ä½ç¶æä¸æ£ç¡®"); |
| | | } |
| | | task.TaskState = TaskStatusEnum.Cancel.ObjToInt(); |
| | | locationInfo.LocationStatus = LocationStatusEnum.InStock.ObjToInt(); |
| | | _unitOfWorkManage.BeginTran(); |
| | | _locationInfoRepository.UpdateData(locationInfo); |
| | | BaseDal.DeleteAndMoveIntoHty(task, App.User?.UserId == 0 ? OperateTypeEnum.èªå¨å®æ : OperateTypeEnum.äººå·¥å®æ); |
| | | _unitOfWorkManage.CommitTran(); |
| | | _locationStatusChangeRecordService.AddLocationStatusChangeRecord(locationInfo, LocationStatusEnum.Lock, LocationStatusEnum.InStock, LocationChangeType.InboundCompleted, task.TaskNum); |
| | | content.OK(); |
| | | } |
| | | else |
| | | { |
| | | content.Error($"æªæ¾å°åºåºä»»å¡{taskNum}"); |
| | | } |
| | | } |
| | | catch (Exception ex) |
| | | { |
| | | content.Error(ex.Message); |
| | | } |
| | | return content; |
| | | } |
| | | /// <summary> |
| | | /// ä»»å¡åæ¶ |
| | | /// </summary> |
| | | /// <returns></returns> |
| | | public WebResponseContent TaskCancel(List<TaskCancel> taskCancels) |
| | | { |
| | | WebResponseContent content = new WebResponseContent(); |
| | | try |
| | | { |
| | | if (taskCancels==null || taskCancels.Count<=0) |
| | | { |
| | | return content.Error("ä¼ å
¥ä¸è½ä¸ºç©º"); |
| | | } |
| | | //è·åæææç®± |
| | | List<Dt_Task> outTasks = BaseDal.QueryData(x=>x.TaskType==TaskTypeEnum.Outbound.ObjToInt()); |
| | | List<Dt_Task> cancelTasks = new List<Dt_Task>(); |
| | | List<Dt_Task> cancelTasksCompleted = new List<Dt_Task>(); |
| | | //夿æ¯å¦æä»»å¡åå¨ |
| | | foreach (var item in taskCancels) |
| | | { |
| | | Dt_Task? taskExist = outTasks.FirstOrDefault(x=>x.PalletCode== item.ContainerCode); |
| | | if (taskExist==null) |
| | | { |
| | | content.Message += $"{item.ContainerCode}ä»»å¡ä¸åå¨"; |
| | | continue; |
| | | } |
| | | if (taskExist.TaskState==TaskStatusEnum.AGV_TakeFinish.ObjToInt()) |
| | | { |
| | | taskExist.IsCancel = 1; |
| | | cancelTasks.Add(taskExist); |
| | | } |
| | | else if(taskExist.TaskState == TaskStatusEnum.AGV_Executing.ObjToInt()) |
| | | { |
| | | cancelTasksCompleted.Add(taskExist); |
| | | } |
| | | else |
| | | { |
| | | return content.Error($"ä»»å¡åæ¶å¤±è´¥{item.TaskCode}ä»»å¡ç¶æä¸å¯åæ¶ï¼"); |
| | | } |
| | | |
| | | } |
| | | _unitOfWorkManage.BeginTran(); |
| | | BaseDal.UpdateData(cancelTasks); |
| | | foreach (var item in cancelTasksCompleted) |
| | | { |
| | | WebResponseContent responseContent = TaskCancelCompleted(item.TaskNum); |
| | | if (!responseContent.Status) |
| | | { |
| | | throw new Exception(responseContent.Message); |
| | | } |
| | | } |
| | | _unitOfWorkManage.CommitTran(); |
| | | cancelTasks.AddRange(cancelTasksCompleted); |
| | | foreach (var item in cancelTasks) |
| | | { |
| | | AgvTaskCancelDTO agvTaskCancel = new AgvTaskCancelDTO() |
| | | { |
| | | RequestId= DateTime.Now.ToString("yyMMddHHmmssfff"), |
| | | MissionCode=item.GroupId, |
| | | ContainerCode=item.PalletCode, |
| | | Position="", |
| | | CancelMode= "CTU_REDIRECT_START", |
| | | Reason="" |
| | | }; |
| | | AgvCancelTask(agvTaskCancel); |
| | | } |
| | | content.OK(); |
| | | } |
| | | catch (Exception ex) |
| | | { |
| | | content.Error(ex.Message); |
| | | } |
| | | return content; |
| | | } |
| | | /// <summary> |
| | | /// äºææç§å¢åä¼ |
| | | /// </summary> |
| | | /// <returns></returns> |