| | |
| | | var task = BaseDal.QueryFirst(x => x.PalletCode == Rgv.content.podID); |
| | | if (task == null) throw new Exception($"æªæ¾å°ä»»å¡,ä»»å¡ç¼å·ã{Rgv.content.taskID}ã"); |
| | | //ç§»åº |
| | | if (task.TaskType == TaskTypeEnum.CPMoveInventory.ObjToInt() && Rgv.messageType == 10 && Rgv.content.status == 4) |
| | | if (task.TaskType == TaskTypeEnum.CPMoveInventory.ObjToInt()) |
| | | { |
| | | deviceName += "ç§»åº"; |
| | | WMSMoveLocationFeedback wMSMoveLocationFeedback = new WMSMoveLocationFeedback() |
| | | if (Rgv.messageType == 72) |
| | | { |
| | | containerCode = task.PalletCode, |
| | | fromStationCode = task.SourceAddress, |
| | | toLocationCode = task.TargetAddress |
| | | }; |
| | | Dt_ApiInfo? apiInfo = _apiInfoService.Repository.QueryFirst(x => x.ApiCode == nameof(WMSMoveLocationFeedback)); |
| | | WMSReturn agvContent = null; |
| | | if (apiInfo == null) task.ExceptionMessage = "æªæ¾å°ç§»åºå®æåé¦WMSæ¥å£é
置信æ¯ï¼è¯·æ£æ¥æ¥å£é
ç½®"; |
| | | else |
| | | task.TaskState = TaskStatusEnum.TakeFinish.ObjToInt(); |
| | | BaseDal.UpdateData(task); |
| | | UpdateLocationStatus(task.SourceAddress, task.PalletCode, deviceTypeEnum, LocationStatusEnum.Free); |
| | | } |
| | | if (Rgv.messageType == 10 && Rgv.content.status == 4) |
| | | { |
| | | task.TaskState = TaskStatusEnum.Finish.ObjToInt(); |
| | | string response = HttpHelper.Post(apiInfo.ApiAddress, wMSMoveLocationFeedback.Serialize()); |
| | | agvContent = response.DeserializeObject<WMSReturn>(); |
| | | content.OK(data: agvContent); |
| | | if (agvContent.code != 200) |
| | | deviceName += "ç§»åº"; |
| | | WMSMoveLocationFeedback wMSMoveLocationFeedback = new WMSMoveLocationFeedback() |
| | | { |
| | | task.ExceptionMessage = agvContent.message; |
| | | content.Error(agvContent.message); |
| | | containerCode = task.PalletCode, |
| | | fromStationCode = task.SourceAddress, |
| | | toLocationCode = task.TargetAddress |
| | | }; |
| | | Dt_ApiInfo? apiInfo = _apiInfoService.Repository.QueryFirst(x => x.ApiCode == nameof(WMSMoveLocationFeedback)); |
| | | WMSReturn agvContent = null; |
| | | if (apiInfo == null) task.ExceptionMessage = "æªæ¾å°ç§»åºå®æåé¦WMSæ¥å£é
置信æ¯ï¼è¯·æ£æ¥æ¥å£é
ç½®"; |
| | | else |
| | | { |
| | | task.TaskState = TaskStatusEnum.Finish.ObjToInt(); |
| | | string response = HttpHelper.Post(apiInfo.ApiAddress, wMSMoveLocationFeedback.Serialize()); |
| | | agvContent = response.DeserializeObject<WMSReturn>(); |
| | | content.OK(data: agvContent); |
| | | if (agvContent.code != 200) |
| | | { |
| | | task.ExceptionMessage = agvContent.message; |
| | | content.Error(agvContent.message); |
| | | } |
| | | UpdateLocationStatus(task.TargetAddress, task.PalletCode, deviceTypeEnum, LocationStatusEnum.InStock); |
| | | BaseDal.DeleteAndMoveIntoHty(task, OperateTypeEnum.èªå¨å®æ); |
| | | } |
| | | UpdateLocationStatus(task.TargetAddress, task.PalletCode, deviceTypeEnum, LocationStatusEnum.InStock); |
| | | BaseDal.DeleteAndMoveIntoHty(task, OperateTypeEnum.èªå¨å®æ); |
| | | } |
| | | } |
| | | else |
| | |
| | | { |
| | | task.ExceptionMessage = Rgv.content.errorReason; |
| | | var Error = _taskErrorMessageService.Repository.QueryFirst(x => x.ErrorCode == Rgv.content.errorCode && x.DeviceType == (int)deviceTypeEnum); |
| | | if (Error != null) |
| | | if (task.TaskType == (int)TaskTypeEnum.CPOutbound && task.TaskState == (int)TaskStatusEnum.Execut && Rgv.content.errorCode == 1330003)//æååºåºä»»å¡ä¸ååå馿é»ç¢æï¼ä¿®æ¹ä»»å¡ç¶æä¸ºæ°å»ºéæ°æ¥è¯¢é»ç¢æå
³ç³» |
| | | { |
| | | task.ExceptionMessage = Error.ExceptionMessage; |
| | | MatchCollection matches = Regex.Matches(Rgv.content.errorReason, @"\(([^)]+)\)"); |
| | | if (matches.Count > 0) |
| | | task.ExceptionMessage = ReplacePlaceholders(Rgv.content.errorReason, Error.ExceptionMessage); |
| | | ErrorTaskFeedback(task, true, Error.ErrorCode.ToString()); |
| | | task.TaskState = (int)TaskStatusEnum.New; |
| | | BaseDal.UpdateData(task); |
| | | } |
| | | else |
| | | ErrorTaskFeedback(task, true); |
| | | { |
| | | if (Error != null) |
| | | { |
| | | task.ExceptionMessage = Error.ExceptionMessage; |
| | | MatchCollection matches = Regex.Matches(Rgv.content.errorReason, @"\(([^)]+)\)"); |
| | | if (matches.Count > 0) |
| | | task.ExceptionMessage = ReplacePlaceholders(Rgv.content.errorReason, Error.ExceptionMessage); |
| | | ErrorTaskFeedback(task, true, Error.ErrorCode.ToString()); |
| | | } |
| | | else |
| | | ErrorTaskFeedback(task, true); |
| | | } |
| | | } |
| | | } |
| | | } |