| | |
| | | using WIDESEA_Common.Log; |
| | | using WIDESEAWCS_Common.TaskEnum; |
| | | using WIDESEAWCS_Core; |
| | | using WIDESEAWCS_Core.BaseRepository; |
| | | using WIDESEAWCS_Core.BaseServices; |
| | | using WIDESEAWCS_Core.Enums; |
| | | using WIDESEAWCS_Core.Utilities; |
| | | using WIDESEAWCS_DTO; |
| | | using WIDESEAWCS_DTO.Enum; |
| | | using WIDESEAWCS_DTO.TaskInfo; |
| | | using WIDESEAWCS_ISystemServices; |
| | |
| | | private readonly IMapper _mapper; |
| | | private readonly IEquipmentStatusService _equipmentStatus; |
| | | private readonly IAgvStationService _gvStationService; |
| | | private readonly IRepository<AbnormalTask> _abnormalTask; |
| | | |
| | | |
| | | 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, IAgvStationService agvStationService) : base(BaseDal) |
| | | public TaskService(ITaskRepository BaseDal, IRouterService routerService, ITaskExecuteDetailService taskExecuteDetailService, ITaskExecuteDetailRepository taskExecuteDetailRepository, IMapper mapper, ITask_HtyService task_HtyService, IRouterRepository routerRepository, IEquipmentStatusService equipmentStatus, IAgvStationService agvStationService, IRepository<AbnormalTask> abnormalTask) : base(BaseDal) |
| | | { |
| | | _routerService = routerService; |
| | | _taskExecuteDetailService = taskExecuteDetailService; |
| | |
| | | _routerRepository = routerRepository; |
| | | _equipmentStatus = equipmentStatus; |
| | | _gvStationService = agvStationService; |
| | | _abnormalTask = abnormalTask; |
| | | } |
| | | |
| | | /// <summary> |
| | |
| | | /// <param name="type">1ï¼æ¥æ¾éè¦åè´§çä»»å¡</param> |
| | | public Dt_Task PickupWarehouse(string DeviceCode) |
| | | { |
| | | return BaseDal.QueryFirst(x => x.Roadway == DeviceCode && x.TaskState == (int)TaskInStatusEnum.RGV_InNew && x.RGVTaskType == (int)RGVTaskTypeEnum.PickingUp, TaskOrderBy); |
| | | Dt_Task _Task = BaseDal.QueryFirst(x => x.Roadway == DeviceCode && (x.TaskState == (int)TaskInStatusEnum.Inexcepjxz || x.TaskState == (int)TaskInStatusEnum.InAbnormalFinish || x.TaskState == (int)TaskInStatusEnum.InexceptionalSelection || x.TaskState == (int)TaskInStatusEnum.InFinish_exceptionalSelection |
| | | || x.TaskState == (int)TaskInStatusEnum.InAbnormalFinish || x.TaskState == (int)TaskInStatusEnum.RGV_InPickupExecuting || x.TaskState == (int)TaskInStatusEnum.RGV_InPickupFinish || x.TaskState == (int)TaskInStatusEnum.RGV_InReleaseExecuting || x.TaskState == (int)TaskInStatusEnum.RGV_InReleaseFinish)); |
| | | if (_Task == null) |
| | | { |
| | | return BaseDal.QueryFirst(x => x.Roadway == DeviceCode && x.TaskState == (int)TaskInStatusEnum.RGV_InNew && x.RGVTaskType == (int)RGVTaskTypeEnum.PickingUp, TaskOrderBy); |
| | | } |
| | | return null; |
| | | } |
| | | |
| | | |
| | |
| | | } |
| | | else |
| | | { |
| | | dt_Task = BaseDal.QueryFirst(x => x.TaskType == (int)TaskOutboundTypeEnum.Outbound && x.NextAddress == ""); |
| | | dt_Task = BaseDal.QueryFirst(x => x.TaskType == (int)TaskOutboundTypeEnum.Outbound && x.NextAddress == ""&&x.TaskState == (int)TaskOutStatusEnum.RGV_OutPickupFinish); |
| | | if (dt_Task == null) return webResponse.Error("æªæ¾å°éè¦ä¿®æ¹çä»»å¡ï¼æ éä¿®æ¹"); |
| | | dt_Task.NextAddress = NextAddress; |
| | | BaseDal.UpdateData(dt_Task); |
| | |
| | | |
| | | if (task.NextAddress == "1001" || task.NextAddress == "1002") |
| | | { |
| | | AbnormalTask abnormalTask = _abnormalTask.QueryFirst(x=> x.TaskNum == task.TaskNum); |
| | | |
| | | //å¼å¸¸æé¤ä»»å¡æ¶ï¼å¼å¸¸ä¸æ¥ |
| | | TaskResultIn(task.LJTaskNum.ToString(), task.NextAddress, 3, ""); |
| | | TaskResultIn(task.LJTaskNum.ToString(), task.NextAddress, 3,abnormalTask.ErrorContent); |
| | | AutomaticTaskCompleted(task); //ä»»å¡å®æ |
| | | BaseDal.DeleteData(task); |
| | | } |
| | |
| | | else if (task.TaskType == (int)TaskOutboundTypeEnum.Outbound) |
| | | { |
| | | TaskResultOut(task.LJTaskNum.ToString(), task.NextAddress, 2, ""); |
| | | AutomaticTaskCompleted(task); //ä»»å¡å®æ |
| | | BaseDal.DeleteData(task); |
| | | } |
| | | } |
| | | |
| | |
| | | } |
| | | else if (item.type == "put") //æ¾è´§ |
| | | { |
| | | /* if (item.status == 2) //å åæºæ§è¡ä¸ |
| | | /* if (item.status == 2) //å åæºæ§è¡ä¸ |
| | | { |
| | | Dt_Task dt_Task = BaseDal.QueryFirst(x => x.TaskType == (int)TaskOutboundTypeEnum.Outbound && x.TaskState == (int)TaskOutStatusEnum.OutNewLj && x.Roadway == item.rgvTag); |
| | | if (dt_Task != null) |
| | |
| | | else |
| | | { |
| | | WriteLog.Write_Log("å
¥åºä»»å¡ä¸ä¼ æ
åµ", "ä¸ä¼ 失败", "å
容信æ¯", $"ä»»å¡ç¼å·ï¼{taskNo},ç®æ å°åï¼{finalAddress}ï¼ä¸ä¼ ç¶æï¼{status}ï¼ä¿¡æ¯å
容ï¼{remark}=====ãä¸ä¼ 失败ï¼åå ï¼{LJReturns.msg}"); |
| | | responseContent.OK("ä¸ä¼ 失败ï¼åå ï¼" + LJReturns.msg); |
| | | responseContent.Error("ä¸ä¼ 失败ï¼åå ï¼" + LJReturns.msg); |
| | | } |
| | | // å建并èµå¼ |
| | | return responseContent; |
| | |
| | | } |
| | | |
| | | |
| | | /// <summary> |
| | | /// ä»»å¡å¼å¸¸å®æï¼åå
¥å¼å¸¸ä¿¡æ¯åï¼æ è®°å¼å¸¸å®æï¼ |
| | | /// </summary> |
| | | public WebResponseContent AbnormalComplete(AbnormalCompleteDTO completeDTO) |
| | | { |
| | | try |
| | | { |
| | | Dt_Task dt_task = BaseDal.QueryData().Where(x => x.TaskNum == completeDTO.taskNum).FirstOrDefault(); |
| | | if (dt_task == null) return WebResponseContent.Instance.Error($"æªæ¥è¯¢å°ä»»å¡"); |
| | | dt_task.NextAddress = completeDTO.station; |
| | | dt_task.TargetAddress = completeDTO.station; |
| | | |
| | | //å¼å¸¸æé¤ä»»å¡æ¶ï¼å¼å¸¸ä¸æ¥ |
| | | WebResponseContent webResponse = TaskResultIn(dt_task.LJTaskNum.ToString(), completeDTO.station, 3, completeDTO.message); |
| | | if (webResponse.Status == false) |
| | | { |
| | | return webResponse; |
| | | } |
| | | |
| | | var db = BaseDal.Db as SqlSugarClient; |
| | | |
| | | db.Ado.BeginTran(); |
| | | BaseDal.DeleteData(dt_task); |
| | | var res = _task_HtyService.AddData(new Dt_Task_hty |
| | | { |
| | | TaskNum = dt_task.TaskNum, |
| | | PalletCode = dt_task.PalletCode, |
| | | Roadway = dt_task.Roadway, |
| | | TaskType = dt_task.TaskType, |
| | | TaskState = dt_task.TaskState, |
| | | SourceAddress = dt_task.SourceAddress, |
| | | TargetAddress = dt_task.TargetAddress, |
| | | CurrentAddress = dt_task.CurrentAddress, |
| | | NextAddress = dt_task.NextAddress, |
| | | WMSId = dt_task.WMSId, |
| | | Dispatchertime = dt_task.Dispatchertime, |
| | | Remark = "人工æå¨å¼å¸¸æåº", |
| | | Creater = App.User.UserName, |
| | | CreateDate = DateTime.Now, |
| | | RGVTaskType = dt_task.RGVTaskType, |
| | | RGVCurrentexecution = dt_task.RGVCurrentexecution |
| | | }); |
| | | //æäº¤äºå¡ |
| | | db.Ado.CommitTran(); |
| | | return WebResponseContent.Instance.OK("人工æå¨æåºæå"); |
| | | } |
| | | catch (Exception ex) |
| | | { |
| | | return WebResponseContent.Instance.Error(ex.ToString()); |
| | | } |
| | | } |
| | | |
| | | |
| | | |
| | | } |