huangxiaoqiang
17 小时以前 eaa7c0d999c6dd7901bf4f0de79b861eae38e978
ÏîÄ¿´úÂë/WCS/WIDESEAWCS_Server/WIDESEAWCS_TaskInfoService/TaskService.cs
@@ -1,5 +1,6 @@
using AutoMapper;
using HslCommunication;
using LogLibrary.Log;
using Mapster;
using Newtonsoft.Json;
using SqlSugar;
@@ -25,8 +26,6 @@
using WIDESEAWCS_QuartzJob.Models;
using WIDESEAWCS_QuartzJob.Repository;
using WIDESEAWCS_QuartzJob.Service;
using WIDESEAWCS_TaskInfoRepository;
using static Microsoft.EntityFrameworkCore.DbLoggerCategory.Database;
namespace WIDESEAWCS_TaskInfoService
{
@@ -138,26 +137,7 @@
                    // åˆ¤æ–­ä»»åŠ¡ç±»åž‹æ˜¯å¦ä¸ºå…¥åº“ä»»åŠ¡
                    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"
@@ -167,7 +147,6 @@
                                task.CurrentAddress = "002-021-001";
                            // è®¾ç½®ä¸‹ä¸€ä¸ªåœ°å€ä¸ºç›®æ ‡åœ°å€
                            task.NextAddress = item.TargetAddress;
                        }
                    }
                    // å°†è½¬æ¢åŽçš„任务添加到任务列表中
                    tasks.Add(task);
@@ -188,77 +167,6 @@
            }
            // è¿”回结果
            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>
@@ -838,9 +746,9 @@
            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;
        }