| | |
| | | using AutoMapper; |
| | | using HslCommunication; |
| | | using LogLibrary.Log; |
| | | using Mapster; |
| | | using Newtonsoft.Json; |
| | | using SqlSugar; |
| | |
| | | using WIDESEAWCS_QuartzJob.Models; |
| | | using WIDESEAWCS_QuartzJob.Repository; |
| | | using WIDESEAWCS_QuartzJob.Service; |
| | | using WIDESEAWCS_TaskInfoRepository; |
| | | using static Microsoft.EntityFrameworkCore.DbLoggerCategory.Database; |
| | | |
| | | namespace WIDESEAWCS_TaskInfoService |
| | | { |
| | |
| | | // 夿任å¡ç±»åæ¯å¦ä¸ºå
¥åºä»»å¡ |
| | | else if (task.TaskType.GetTaskTypeGroup() == TaskTypeGroup.InboundGroup) |
| | | { |
| | | var value = _sys_ConfigService.GetByConfigKey(CateGoryConst.CONFIG_SYS_InStation, SysConfigKeyConst.JZNGInBoundStation).ConfigValue; |
| | | var valueList = value.Split(',').ToList(); |
| | | // 夿æºå°åæ¯å¦ä¸çäº"1359-4" |
| | | //if (task.SourceAddress != "1359-4" && task.SourceAddress != "1357-4") |
| | | if (!valueList.Contains(task.SourceAddress)) |
| | | { |
| | | // æ¥è¯¢ä»æºå°åå°ç®æ å°åçè·¯ç± |
| | | List<Dt_Router> routers = _routerService.QueryNextRoutes(item.SourceAddress, item.TargetAddress); |
| | | if (routers.Count > 0) |
| | | { |
| | | // 设置任å¡ç¶æä¸ºå
¥åºæ°å»º |
| | | task.TaskState = (int)TaskInStatusEnum.InNew; |
| | | // 设置å½åå°å为æºå°å |
| | | task.CurrentAddress = item.SourceAddress; |
| | | // 设置ä¸ä¸ä¸ªå°å为第ä¸ä¸ªåä½ç½® |
| | | task.NextAddress = routers.FirstOrDefault().ChildPosi; |
| | | } |
| | | } |
| | | else |
| | | { |
| | | |
| | | task.CurrentAddress = string.Empty; |
| | | if (task.SourceAddress == "1325-6") |
| | | // 设置å½åå°å为"001-021-001" |
| | |
| | | task.CurrentAddress = "002-021-001"; |
| | | // 设置ä¸ä¸ä¸ªå°åä¸ºç®æ å°å |
| | | task.NextAddress = item.TargetAddress; |
| | | } |
| | | } |
| | | // å°è½¬æ¢åç任塿·»å å°ä»»å¡åè¡¨ä¸ |
| | | tasks.Add(task); |
| | |
| | | } |
| | | // è¿åç»æ |
| | | return content; |
| | | } |
| | | |
| | | /// <summary> |
| | | /// æ ¹æ®æçå·ãèµ·å§å°ååWMS请æ±ä»»å¡ |
| | | /// </summary> |
| | | /// <param name="palletCode">æçå·</param> |
| | | /// <param name="sourceAddress">èµ·å§å°å</param> |
| | | /// <returns></returns> |
| | | public async Task<WebResponseContent> RequestWMSTask(string palletCode, string sourceAddress) |
| | | { |
| | | WebResponseContent content = new WebResponseContent(); |
| | | try |
| | | { |
| | | var hasTask = await BaseDal.QueryFirstAsync(x => x.PalletCode == palletCode); |
| | | if (hasTask != null) |
| | | { |
| | | var taskExecuting = BaseDal.QueryFirst(x => x.PalletCode == palletCode && x.TaskState == (int)TaskOutStatusEnum.Line_OutExecuting); |
| | | |
| | | if (taskExecuting != null) |
| | | { |
| | | taskExecuting.ExceptionMessage = "æªæ¥æ¶å°çº¿ä½å®æä¿¡å·ç³»ç»å
é¨èªå¨å®æ"; |
| | | Delete(taskExecuting); |
| | | } |
| | | ConsoleHelper.WriteErrorLine($"å½åæçåå¨ä»»å¡ï¼ã{palletCode}ã"); |
| | | QuartzLogger.WriteLogToFile($"ä»»å¡å¼å¸¸æªå®æ", $"å½åæçåå¨ä»»å¡ï¼ã{palletCode}ã{Environment.NewLine}"); |
| | | } |
| | | |
| | | var wmsIpAddrss = string.Empty; |
| | | var stationManager = _stationManagerRepository.QueryFirst(x => x.stationChildCode == sourceAddress); |
| | | if (stationManager.stationType == 5) |
| | | { |
| | | wmsIpAddrss = GetIpAddress(SysConfigKeyConst.WMSIP_BASE, SysConfigKeyConst.RequestInBoundTaskNG); |
| | | } |
| | | else |
| | | { |
| | | wmsIpAddrss = GetIpAddress(SysConfigKeyConst.WMSIP_BASE, SysConfigKeyConst.RequestTask); |
| | | } |
| | | |
| | | var result = await HttpHelper.PostAsync(wmsIpAddrss, new { Position = sourceAddress, PalletCode = palletCode, stationManager.productLine }.ToJsonString()); |
| | | content = JsonConvert.DeserializeObject<WebResponseContent>(result); |
| | | |
| | | if (!content.Status) |
| | | { |
| | | // wms失败è¿åå»NGå£ä»»å¡ |
| | | return content; |
| | | } |
| | | |
| | | var task = JsonConvert.DeserializeObject<WMSTaskDTO>(content.Data.ToString()); |
| | | if (task.TaskType == (int)TaskInboundTypeEnum.InNG) |
| | | { |
| | | var station = await _stationManagerRepository.QueryFirstAsync(x => x.stationChildCode == task.SourceAddress); |
| | | Dt_Task _Task = _mapper.Map<Dt_Task>(task); |
| | | _Task.TaskState = (int)TaskInStatusEnum.InNew; |
| | | _Task.CurrentAddress = task.SourceAddress; |
| | | _Task.NextAddress = station.stationNGChildCode; |
| | | _Task.TargetAddress = task.TargetAddress; |
| | | |
| | | BaseDal.AddData(_Task); |
| | | _taskExecuteDetailService.AddTaskExecuteDetail(_Task.TaskNum, "æ¥æ¶WMSä»»å¡"); |
| | | return content.OK(); |
| | | } |
| | | else |
| | | { |
| | | return ReceiveWMSTask(new List<WMSTaskDTO> { task }); |
| | | } |
| | | } |
| | | catch (Exception ex) |
| | | { |
| | | QuartzLogger.WriteLogToFile($"æ¥æ¶ä»»å¡å¼å¸¸", $"æçå·ï¼ã{palletCode}ã请æ±ç¹ä½ï¼ã{sourceAddress}ãå¼å¸¸ä¿¡æ¯ã{ex.Message}ãå¼å¸¸è¡ã{ex.StackTrace}ã"); |
| | | return WebResponseContent.Instance.Error(ex.Message); |
| | | } |
| | | } |
| | | |
| | | /// <summary> |
| | |
| | | catch (Exception ex) |
| | | { |
| | | content = WebResponseContent.Instance.Error($"ä»»å¡å®æå¼å¸¸,ä»»å¡å·:ã{taskNum}ã"); |
| | | QuartzLogger.WriteLogToFile($"Info_ä»»å¡å®æ", $"ä»»å¡å®æå¼å¸¸,ä»»å¡å·:ã{taskNum}ãå¼å¸¸ä¿¡æ¯ã{ex.Message}ã{Environment.NewLine}å¼å¸¸ä¿¡æ¯ã{ex.StackTrace}ã{Environment.NewLine}"); |
| | | LogFactory.WriteError($"Info_ä»»å¡å®æ", $"ä»»å¡å®æå¼å¸¸,ä»»å¡å·:ã{taskNum}ã", ex); |
| | | } |
| | | QuartzLogger.WriteLogToFile($"Info_ä»»å¡å®æ", $"ä»»å¡å®æ,ä»»å¡å·:ã{taskNum}ãè¿ååæ°ã{JsonConvert.SerializeObject(content)}ã{Environment.NewLine}{Environment.NewLine}"); |
| | | LogFactory.WriteInfo($"Info_ä»»å¡å®æ", $"ä»»å¡å®æ,ä»»å¡å·:ã{taskNum}ãè¿ååæ°ã{JsonConvert.SerializeObject(content)}ã{Environment.NewLine}{Environment.NewLine}"); |
| | | return content; |
| | | } |
| | | |