| | |
| | | using WIDESEAWCS_Common; |
| | | using WIDESEAWCS_Common.LocationEnum; |
| | | using WIDESEAWCS_Common.TaskEnum; |
| | | using WIDESEAWCS_Core.BaseRepository; |
| | | using WIDESEAWCS_Core.Helper; |
| | | using WIDESEAWCS_DTO; |
| | | using WIDESEAWCS_DTO.RGV.FOURBOT; |
| | |
| | | /// <param name="tasks"></param> |
| | | public void SendCheckShapeingOkTask(List<Dt_Task> tasks) |
| | | { |
| | | FOURBOTnewMovePodTask fOURBOTnewMovePodTask = new(); |
| | | try |
| | | { |
| | | Dt_ApiInfo? apiInfo = _apiInfoService.Repository.QueryFirst(x => x.ApiCode == nameof(FOURBOTnewMovePodTask)) ?? throw new Exception("æªæ¾å°åå车任å¡ä¸åæ¥å£é
置信æ¯ï¼è¯·æ£æ¥æ¥å£é
ç½®"); |
| | | List<Dt_RGVLocationInfo> rGVLocationInfos = new List<Dt_RGVLocationInfo>(); |
| | | List<Dt_StationManger> stationMangers = new List<Dt_StationManger>(); |
| | | var tasksToUpdate = new List<Dt_Task>(); |
| | | var locationsToUpdate = new List<Dt_RGVLocationInfo>(); |
| | | var stationsToUpdate = new List<Dt_StationManger>(); |
| | | #region ä»»å¡ä¸å |
| | | foreach (var item in tasks) |
| | | { |
| | | #region è·åè´§ä½ |
| | | var rGVLocationInfo = _rGVLocationInfoService.GetFreeLocationInfo(item.Roadway); |
| | | if (rGVLocationInfo == null) |
| | | try |
| | | { |
| | | item.ExceptionMessage = $"æªæ¾å°ç»ç¹åºåºã{item.Roadway}ãå¯ç¨ç©ºè´§ä½ï¼"; |
| | | } |
| | | #endregion |
| | | else |
| | | { |
| | | #region è·åè´§ä½ |
| | | var rGVLocationInfo = _rGVLocationInfoService.GetFreeLocationInfo(item.Roadway); |
| | | if (rGVLocationInfo == null) |
| | | { |
| | | item.ExceptionMessage = $"æªæ¾å°ç»ç¹åºåºã{item.Roadway}ãå¯ç¨ç©ºè´§ä½ï¼"; |
| | | continue; |
| | | } |
| | | #endregion |
| | | var fOURBOTnewMovePodTask = new FOURBOTnewMovePodTask |
| | | { |
| | | priority = item.Grade, |
| | | podID = item.PalletCode, |
| | | destination = rGVLocationInfo.LocationCode, |
| | | desExt = new { unload = 1 }, // æ¯å¦æ¾ä¸å®¹å¨,0å¦1æ¯ |
| | | desType = 2 |
| | | }; |
| | | item.CurrentAddress = item.NextAddress; |
| | | item.NextAddress = rGVLocationInfo.LocationCode; |
| | | item.Roadway = rGVLocationInfo.RoadwayNo; |
| | | fOURBOTnewMovePodTask.priority = item.Grade; |
| | | fOURBOTnewMovePodTask.podID = item.PalletCode; |
| | | fOURBOTnewMovePodTask.destination = item.NextAddress; |
| | | fOURBOTnewMovePodTask.desExt = new |
| | | { |
| | | unload = 1//æ¯å¦æ¾ä¸å®¹å¨,0å¦1æ¯ |
| | | }; |
| | | fOURBOTnewMovePodTask.desType = 2; |
| | | |
| | | string response = HttpHelper.Post(apiInfo.ApiAddress, fOURBOTnewMovePodTask.Serialize()); |
| | | FOURBOTReturn fOURBOTReturn = response.DeserializeObject<FOURBOTReturn>(); |
| | | var fOURBOTReturn = response.DeserializeObject<FOURBOTReturn>(); |
| | | |
| | | if (fOURBOTReturn.returnCode == 0) |
| | | { |
| | | FOURBOTnewMovePodTaskResponseData fOURBO = fOURBOTReturn.data as FOURBOTnewMovePodTaskResponseData ?? throw new Exception("æªè·åå°åå车è¿åçä»»å¡ID"); |
| | | var data = fOURBOTReturn.data.ToString(); |
| | | var fOURBO = data.DeserializeObject<FOURBOTnewMovePodTaskResponseData>(); |
| | | |
| | | item.RGVTaskId = fOURBO.taskID; |
| | | item.TaskState = (int)TaskStatusEnum.Puting; |
| | | |
| | | rGVLocationInfo.LocationStatus = LocationStatusEnum.InLock.ObjToInt(); |
| | | rGVLocationInfos.Add(rGVLocationInfo); |
| | | locationsToUpdate.Add(rGVLocationInfo); |
| | | |
| | | #region éæ¾å
¥åºç«å° |
| | | Dt_StationManger stationManger = _stationMangerService.GetInStationInfo(item.SourceAddress); |
| | | stationManger.IsOccupied = LocationStatusEnum.Free.ObjToInt(); |
| | | stationMangers.Add(stationManger); |
| | | var stationManger = _stationMangerService.GetInStationInfo(item.SourceAddress); |
| | | if (stationManger != null) |
| | | { |
| | | stationManger.IsOccupied = LocationStatusEnum.Free.ObjToInt(); |
| | | stationsToUpdate.Add(stationManger); |
| | | } |
| | | #endregion |
| | | } |
| | | else |
| | | { |
| | | item.ExceptionMessage = $"åå车æ¥å£è¿åé误ï¼{fOURBOTReturn.returnMsg}"; |
| | | // è®°å½å¤±è´¥çä»»å¡ |
| | | } |
| | | } |
| | | } |
| | | _taskService.Db.Ado.BeginTran(); |
| | | _taskService.UpdateData(tasks); |
| | | _rGVLocationInfoService.UpdateData(rGVLocationInfos); |
| | | _stationMangerService.UpdateData(stationMangers); |
| | | _taskService.Db.Ado.CommitTran(); |
| | | catch (Exception ex) |
| | | { |
| | | item.ExceptionMessage = $"å¤çä»»å¡å¼å¸¸ï¼{ex.Message}"; |
| | | WriteError($"{nameof(TaskJob)}-{item.TaskId}", ex.Message, ex); |
| | | } |
| | | tasksToUpdate.Add(item); |
| | | } |
| | | #endregion |
| | | #region æ´æ°æ°æ® |
| | | // 妿æéè¦æ´æ°çæ°æ®ï¼ææ§è¡äºå¡ |
| | | if (tasksToUpdate.Any() || locationsToUpdate.Any() || stationsToUpdate.Any()) |
| | | { |
| | | try |
| | | { |
| | | _unitOfWorkManage.BeginTran(); |
| | | |
| | | if (tasksToUpdate.Any()) |
| | | _taskService.UpdateData(tasksToUpdate); |
| | | if (locationsToUpdate.Any()) |
| | | _rGVLocationInfoService.UpdateData(locationsToUpdate); |
| | | if (stationsToUpdate.Any()) |
| | | _stationMangerService.UpdateData(stationsToUpdate); |
| | | |
| | | _unitOfWorkManage.CommitTran(); |
| | | } |
| | | catch (Exception ex) |
| | | { |
| | | _unitOfWorkManage.RollbackTran(); |
| | | WriteError(nameof(TaskJob), ex.Message, ex); |
| | | } |
| | | } |
| | | #endregion |
| | | } |
| | | catch (Exception ex) |
| | | { |