using HslCommunication; using Mapster; using Newtonsoft.Json; using System.Diagnostics.CodeAnalysis; using WIDESEAWCS_Common; using WIDESEAWCS_Common.TaskEnum; using WIDESEAWCS_Core; using WIDESEAWCS_Core.Helper; using WIDESEAWCS_Core.LogHelper; using WIDESEAWCS_DTO.TaskInfo; using WIDESEAWCS_Model.Models; using WIDESEAWCS_QuartzJob; namespace WIDESEAWCS_TaskInfoService { public partial class TaskService { /// /// 根据托盘号、起始地址向WMS请求任务 /// /// 托盘号 /// 起始地址 /// public async Task RequestTask(string palletCode, string EquiCodeMOM, string Roadways, string area, string CurrentChildCode) { WebResponseContent content = new WebResponseContent(); try { var hasTask = await BaseDal.QueryFirstAsync(x => x.PalletCode == palletCode); if (hasTask != null) { return content.Error("当前托盘存在任务"); } var config = _sys_ConfigService.GetConfigsByCategory(CateGoryConst.CONFIG_SYS_IPAddress); var wmsBase = config.FirstOrDefault(x => x.ConfigKey == SysConfigKeyConst.WMSIP_BASE)?.ConfigValue; var requestTask = config.FirstOrDefault(x => x.ConfigKey == SysConfigKeyConst.RequestInTask)?.ConfigValue; if (wmsBase == null || requestTask == null) { throw new InvalidOperationException("WMS IP 未配置"); } var wmsIpAddrss = wmsBase + requestTask; var result = await HttpHelper.PostAsync(wmsIpAddrss, new { palletCode = palletCode, EquiCodeMOM = EquiCodeMOM, Roadways = Roadways, area = area, Position = CurrentChildCode }.ToJsonString()); content = JsonConvert.DeserializeObject(result); if (!content.Status) { // wms失败返回去NG口任务 return content; } var task = JsonConvert.DeserializeObject(content.Data.ToString()); return ReceiveByWMSTask(task); } catch (Exception ex) { return WebResponseContent.Instance.Error(ex.Message); } } #region 根据托盘号、站台向WMS请求任务 /// /// 根据托盘号、站台向WMS请求任务 /// /// 托盘号 /// 站台 /// public async Task RequestTask1(string palletCode, Dt_StationManager stationManager) { WebResponseContent content = new WebResponseContent(); try { StaticVariable.isLineRun = false; var hasTask = await BaseDal.QueryFirstAsync(x => x.PalletCode == palletCode); if (hasTask != null) { return content.Error("当前托盘存在任务"); } var Station = await _stationManagerRepository.QueryFirstAsync(x => x.stationType == 6 && x.productLine == stationManager.productLine && x.stationArea == stationManager.stationArea); var tasks = await BaseDal.QueryFirstAsync(x => x.TaskType == (int)TaskOutboundTypeEnum.InToOut && x.TargetAddress == stationManager.stationLocation && x.CurrentAddress == Station.stationChildCode); if (tasks != null) { ConsoleHelper.WriteErrorLine($"【{stationManager.stationChildCode}】已存在直接出库任务任务"); return content.Error($"【{stationManager.stationChildCode}】已存在直接出库任务任务"); } if (StaticVariable.isStackerRun) { if (stationManager.stationType == 7) { var runTask = await BaseDal.QueryFirstAsync(x => x.CurrentAddress == Station.stationChildCode && x.TaskState == (int)TaskInStatusEnum.Line_InFinish && x.TaskType == (int)TaskInboundTypeEnum.InTray); if (runTask != null) { runTask.TargetAddress = stationManager.stationLocation; runTask.NextAddress = stationManager.stationChildCode; runTask.Grade = 3; runTask.TaskType = (int)TaskOutboundTypeEnum.InToOut; runTask.TaskState = (int)TaskOutStatusEnum.OutNew; var config1 = _sys_ConfigService.GetConfigsByCategory(CateGoryConst.CONFIG_SYS_IPAddress); var wmsBase1 = config1.FirstOrDefault(x => x.ConfigKey == SysConfigKeyConst.WMSIP_BASE)?.ConfigValue; var requestTask1 = config1.FirstOrDefault(x => x.ConfigKey == SysConfigKeyConst.SetEmptyOutbyInToOutAsync)?.ConfigValue; if (wmsBase1 == null || requestTask1 == null) { throw new InvalidOperationException("WMS IP 未配置"); } var wmsIpAddrss1 = wmsBase1 + requestTask1; var result1 = await HttpHelper.PostAsync(wmsIpAddrss1, new { palletCode = runTask.PalletCode, EquiCodeMOM = stationManager.stationEquipMOM, Roadways = stationManager.Roadway, area = stationManager.stationArea, Position = Station.stationChildCode }.ToJsonString()); content = JsonConvert.DeserializeObject(result1); if (content.Status) { await BaseDal.UpdateDataAsync(runTask); ConsoleHelper.WriteSuccessLine($"【{runTask.PalletCode}直接出库至二封】"); return content.OK("成功"); } else ConsoleHelper.WriteErrorLine(content.Message); } else ConsoleHelper.WriteErrorLine($"【{Station.stationChildCode}】未找到空托盘入库任务"); } else if (stationManager.stationType == 6) { var emptyStation = await _stationManagerRepository.QueryFirstAsync(x => x.stationType == 7 && x.productLine == stationManager.productLine && x.stationArea == stationManager.stationArea); var runTask = await BaseDal.QueryFirstAsync(x => x.NextAddress == emptyStation.stationChildCode && x.TaskState == (int)TaskInStatusEnum.Line_InFinish && x.TaskType == (int)TaskInboundTypeEnum.InTray); if (runTask != null) { runTask.SourceAddress = stationManager.stationLocation; runTask.CurrentAddress = stationManager.stationChildCode; runTask.Grade = 3; runTask.TaskType = (int)TaskOutboundTypeEnum.InToOut; runTask.TaskState = (int)TaskOutStatusEnum.OutNew; runTask.PalletCode = palletCode; var config1 = _sys_ConfigService.GetConfigsByCategory(CateGoryConst.CONFIG_SYS_IPAddress); var wmsBase1 = config1.FirstOrDefault(x => x.ConfigKey == SysConfigKeyConst.WMSIP_BASE)?.ConfigValue; var requestTask1 = config1.FirstOrDefault(x => x.ConfigKey == SysConfigKeyConst.SetEmptyOutbyInToOutOneAsync)?.ConfigValue; if (wmsBase1 == null || requestTask1 == null) { throw new InvalidOperationException("WMS IP 未配置"); } var wmsIpAddrss1 = wmsBase1 + requestTask1; var result1 = await HttpHelper.PostAsync(wmsIpAddrss1, new { palletCode = runTask.PalletCode, EquiCodeMOM = stationManager.stationEquipMOM, Roadways = stationManager.Roadway, area = stationManager.stationArea, Position = emptyStation.stationChildCode }.ToJsonString()); content = JsonConvert.DeserializeObject(result1); if (content.Status) { await BaseDal.UpdateDataAsync(runTask); ConsoleHelper.WriteSuccessLine($"【{runTask.PalletCode}直接出库至二封】"); return content.OK("成功"); } else ConsoleHelper.WriteErrorLine(content.Message); } } } var config = _sys_ConfigService.GetConfigsByCategory(CateGoryConst.CONFIG_SYS_IPAddress); var wmsBase = config.FirstOrDefault(x => x.ConfigKey == SysConfigKeyConst.WMSIP_BASE)?.ConfigValue; var requestTask = config.FirstOrDefault(x => x.ConfigKey == SysConfigKeyConst.RequestInTask)?.ConfigValue; if (wmsBase == null || requestTask == null) { throw new InvalidOperationException("WMS IP 未配置"); } var wmsIpAddrss = wmsBase + requestTask; var result = await HttpHelper.PostAsync(wmsIpAddrss, new { palletCode = palletCode, EquiCodeMOM = stationManager.stationEquipMOM, Roadways = stationManager.Roadway, area = stationManager.stationArea, Position = stationManager.stationChildCode }.ToJsonString()); content = JsonConvert.DeserializeObject(result); ConsoleHelper.WriteErrorLine($"{stationManager.stationChildCode}站台请求响应信息:{content.ToJsonString()}"); if (!content.Status) { // wms失败返回去NG口任务 //if (stationManager.stationChildCode != stationManager.stationNGChildCode) //{ // WMSTaskDTO taskDTO = new WMSTaskDTO() // { // Grade = 8, // PalletCode = palletCode, // SourceAddress = stationManager.stationLocation, // TargetAddress = stationManager.stationNGLocation, // RoadWay = stationManager.Roadway, // TaskNum = 1000, // TaskState = (int)TaskOutStatusEnum.OutNew, // TaskType = (int)TaskOutboundTypeEnum.InToOut // }; //} return content; } var task = JsonConvert.DeserializeObject(content.Data.ToString()); ConsoleHelper.WriteSuccessLine(content.Data.ToString()); return ReceiveByWMSTask(task); } catch (Exception ex) { return WebResponseContent.Instance.Error(ex.Message); } finally { StaticVariable.isLineRun = true; } } /// /// 根据托盘号、站台向WMS请求任务 /// /// 托盘号 /// 站台 /// public async Task RequestTask(string palletCode, Dt_StationManager stationManager) { WebResponseContent content = new WebResponseContent(); try { StaticVariable.isLineRun = false; // 检查当前托盘是否存在任务 if (await HasTask(palletCode)) { return content.Error("当前托盘存在任务"); } // 检查是否已存在直接出库任务 if (await HasDirectOutboundTask(stationManager)) { return content.Error($"【{stationManager.stationChildCode}】已存在直接出库任务任务"); } if (StaticVariable.isStackerRun) { if (stationManager.stationType == 7) { var result = await HandleStationType7(palletCode, stationManager); if (result != null) { return result; } } else if (stationManager.stationType == 6) { var result = await HandleStationType6(palletCode, stationManager); if (result != null) { return result; } } } // 发起请求获取入库任务 content = await RequestInTask(palletCode, stationManager); ConsoleHelper.WriteErrorLine($"{stationManager.stationChildCode}站台请求响应信息:{content.ToJsonString()}"); if (!content.Status) { return content; } var task = JsonConvert.DeserializeObject(content.Data.ToString()); ConsoleHelper.WriteSuccessLine(content.Data.ToString()); return ReceiveByWMSTask(task); } catch (Exception ex) { return WebResponseContent.Instance.Error(ex.Message); } finally { StaticVariable.isLineRun = true; } } // 检查当前托盘是否存在任务 private async Task HasTask(string palletCode) { var hasTask = await BaseDal.QueryFirstAsync(x => x.PalletCode == palletCode); return hasTask != null; } // 检查是否已存在直接出库任务 private async Task HasDirectOutboundTask(Dt_StationManager stationManager) { var station = await _stationManagerRepository.QueryFirstAsync(x => x.stationType == 6 && x.productLine == stationManager.productLine && x.stationArea == stationManager.stationArea && x.Roadway == stationManager.Roadway); var tasks = await BaseDal.QueryFirstAsync(x => x.TaskType == (int)TaskOutboundTypeEnum.InToOut && x.TargetAddress == stationManager.stationLocation && x.CurrentAddress == station.stationChildCode); return tasks != null; } // 处理 stationType 为 7 的情况 private async Task HandleStationType7(string palletCode, Dt_StationManager stationManager) { var station = await _stationManagerRepository.QueryFirstAsync(x => x.stationType == 6 && x.productLine == stationManager.productLine && x.stationArea == stationManager.stationArea && x.Roadway == stationManager.Roadway); var runTask = await BaseDal.QueryFirstAsync(x => x.CurrentAddress == station.stationChildCode && x.TaskState == (int)TaskInStatusEnum.Line_InFinish && x.TaskType == (int)TaskInboundTypeEnum.InTray); if (runTask != null) { runTask.TargetAddress = stationManager.stationLocation; runTask.NextAddress = stationManager.stationChildCode; runTask.Grade = 3; runTask.TaskType = (int)TaskOutboundTypeEnum.InToOut; runTask.TaskState = (int)TaskOutStatusEnum.OutNew; var wmsIpAddrss = GetWmsIpAddress(SysConfigKeyConst.SetEmptyOutbyInToOutAsync); var result = await HttpHelper.PostAsync(wmsIpAddrss, new { palletCode = runTask.PalletCode, EquiCodeMOM = stationManager.stationEquipMOM, Roadways = stationManager.Roadway, area = stationManager.stationArea, Position = station.stationChildCode }.ToJsonString()); var content = JsonConvert.DeserializeObject(result); if (content.Status) { await BaseDal.UpdateDataAsync(runTask); ConsoleHelper.WriteSuccessLine($"【{runTask.PalletCode}直接出库至二封】"); return content.OK("成功"); } else { ConsoleHelper.WriteErrorLine(content.Message); } } else { ConsoleHelper.WriteErrorLine($"【{station.stationChildCode}】未找到空托盘入库任务"); } return null; } // 处理 stationType 为 6 的情况 private async Task HandleStationType6(string palletCode, Dt_StationManager stationManager) { var emptyStation = await _stationManagerRepository.QueryFirstAsync(x => x.stationType == 7 && x.productLine == stationManager.productLine && x.stationArea == stationManager.stationArea && x.Roadway==stationManager.Roadway); var runTask = await BaseDal.QueryFirstAsync(x => x.NextAddress == emptyStation.stationChildCode && x.TaskState == (int)TaskInStatusEnum.Line_InFinish && x.TaskType == (int)TaskInboundTypeEnum.InTray); if (runTask != null) { runTask.SourceAddress = stationManager.stationLocation; runTask.CurrentAddress = stationManager.stationChildCode; runTask.Grade = 3; runTask.TaskType = (int)TaskOutboundTypeEnum.InToOut; runTask.TaskState = (int)TaskOutStatusEnum.OutNew; runTask.PalletCode = palletCode; var wmsIpAddrss = GetWmsIpAddress(SysConfigKeyConst.SetEmptyOutbyInToOutAsync); var result = await HttpHelper.PostAsync(wmsIpAddrss, new { palletCode = runTask.PalletCode, EquiCodeMOM = stationManager.stationEquipMOM, Roadways = stationManager.Roadway, area = stationManager.stationArea, Position = emptyStation.stationChildCode }.ToJsonString()); var content = JsonConvert.DeserializeObject(result); if (content.Status) { await BaseDal.UpdateDataAsync(runTask); ConsoleHelper.WriteSuccessLine($"【{runTask.PalletCode}直接出库至二封】"); return content.OK("成功"); } else { ConsoleHelper.WriteErrorLine(content.Message); } } return null; } // 获取 WMS 请求地址 private string GetWmsIpAddress(string configKey) { var config = _sys_ConfigService.GetConfigsByCategory(CateGoryConst.CONFIG_SYS_IPAddress); var wmsBase = config.FirstOrDefault(x => x.ConfigKey == SysConfigKeyConst.WMSIP_BASE)?.ConfigValue; var requestTask = config.FirstOrDefault(x => x.ConfigKey == configKey)?.ConfigValue; if (wmsBase == null || requestTask == null) { throw new InvalidOperationException("WMS IP 未配置"); } return wmsBase + requestTask; } // 发起请求获取入库任务 private async Task RequestInTask(string palletCode, Dt_StationManager stationManager) { var wmsIpAddrss = GetWmsIpAddress(SysConfigKeyConst.RequestInTask); var result = await HttpHelper.PostAsync(wmsIpAddrss, new { palletCode = palletCode, EquiCodeMOM = stationManager.stationEquipMOM, Roadways = stationManager.Roadway, area = stationManager.stationArea, Position = stationManager.stationChildCode }.ToJsonString()); return JsonConvert.DeserializeObject(result); } #endregion 根据托盘号、站台向WMS请求任务 public async Task RequestOutTaskToBZAsync(Dt_StationManager stationManager) { WebResponseContent content = new WebResponseContent(); try { var config = _sys_ConfigService.GetConfigsByCategory(CateGoryConst.CONFIG_SYS_IPAddress); var wmsBase = config.FirstOrDefault(x => x.ConfigKey == SysConfigKeyConst.WMSIP_BASE)?.ConfigValue; var requestTask = config.FirstOrDefault(x => x.ConfigKey == SysConfigKeyConst.RequestOutTaskToBZ)?.ConfigValue; if (wmsBase == null || requestTask == null) { throw new InvalidOperationException("WMS IP 未配置"); } var wmsIpAddrss = wmsBase + requestTask; var result = await HttpHelper.PostAsync(wmsIpAddrss, new { Position = stationManager.stationChildCode }.ToJsonString()); content = JsonConvert.DeserializeObject(result); if (!content.Status) { //无满足条件可出库至包装的库存 return content; } var task = JsonConvert.DeserializeObject(content.Data.ToString()); ConsoleHelper.WriteSuccessLine(content.Data.ToString()); //_taskService.ReceiveWMSTask(new List { taskDTO })‘ content = ReceiveWMSTask(new List { task }); //content = ReceiveByBZOtuTask(task); //if (content.Status) //{ // //相应的在途数据+1 // // _taskNeedBarcodeRepository.UpdateData(); //} return content; } catch (Exception ex) { return content.Error(ex.Message); } } /// /// 接收WMS任务信息 /// /// WMS任务对象集合 /// 返回处理结果 public WebResponseContent ReceiveByWMSTask([NotNull] WMSTaskDTO taskDTO) { WebResponseContent content = new WebResponseContent(); try { if (BaseDal.QueryFirst(x => x.TaskNum == taskDTO.TaskNum || x.PalletCode == taskDTO.PalletCode) != null) { return content.OK(); } Dt_Task task = _mapper.Map(taskDTO); task.Creater = "WMS"; if (task.TaskType.GetTaskTypeGroup() == TaskTypeGroup.OutbondGroup) { var stationinfo = _stationManagerRepository.QueryFirst(x => x.stationLocation == taskDTO.TargetAddress && x.Roadway == taskDTO.RoadWay); task.TaskState = (int)TaskOutStatusEnum.OutNew; task.CurrentAddress = taskDTO.RoadWay; task.NextAddress = stationinfo.stationChildCode; task.SourceAddress = taskDTO.SourceAddress; task.TargetAddress = taskDTO.TargetAddress; } else if (task.TaskType.GetTaskTypeGroup() == TaskTypeGroup.InboundGroup) { var stationinfo = _stationManagerRepository.QueryFirst(x => x.stationLocation == taskDTO.SourceAddress && x.Roadway == taskDTO.RoadWay); task.TaskState = (int)TaskInStatusEnum.Line_InFinish; task.SourceAddress = taskDTO.SourceAddress; task.CurrentAddress = stationinfo.stationChildCode; task.NextAddress = stationinfo.stationChildCode; task.TargetAddress = taskDTO.TargetAddress; } else if (task.TaskType.GetTaskTypeGroup() == TaskTypeGroup.RelocationGroup) { task.TaskState = (int)TaskStatus.Created; task.SourceAddress = taskDTO.SourceAddress; task.CurrentAddress = taskDTO.SourceAddress; task.NextAddress = taskDTO.TargetAddress; task.TargetAddress = taskDTO.TargetAddress; } BaseDal.AddData(task); _taskExecuteDetailService.AddTaskExecuteDetail(task.WMSId, "接收WMS任务"); content = WebResponseContent.Instance.OK("成功"); } catch (Exception ex) { content = WebResponseContent.Instance.Error($"任务接收错误,错误信息:{ex.Message}"); } return content; } /// /// 接收WMS任务信息 /// /// WMS任务对象集合 /// 返回处理结果 public WebResponseContent ReceiveByBZOtuTask([NotNull] WMSTaskDTO taskDTO) { WebResponseContent content = new WebResponseContent(); try { if (BaseDal.QueryFirst(x => x.TaskNum == taskDTO.TaskNum || x.PalletCode == taskDTO.PalletCode) != null) { return content.OK(); } Dt_Task task = _mapper.Map(taskDTO); task.Creater = "WMS"; if (task.TaskType.GetTaskTypeGroup() == TaskTypeGroup.OutbondGroup) { var stationinfo = _stationManagerRepository.QueryFirst(x => x.stationLocation == taskDTO.TargetAddress && x.Roadway == taskDTO.RoadWay); task.TaskState = (int)TaskOutStatusEnum.OutNew; task.CurrentAddress = stationinfo.stationChildCode; task.NextAddress = stationinfo.stationChildCode; task.SourceAddress = taskDTO.SourceAddress; task.TargetAddress = taskDTO.TargetAddress; } BaseDal.AddData(task); _taskExecuteDetailService.AddTaskExecuteDetail(task.WMSId, "接收WMS任务"); content = WebResponseContent.Instance.OK("成功"); } catch (Exception ex) { content = WebResponseContent.Instance.Error($"任务接收错误,错误信息:{ex.Message}"); } return content; } /// /// 高温出库 /// /// /// public WebResponseContent ReceiveByWMSGWTask([NotNull] WMSTaskDTO taskDTO) { WebResponseContent content = new WebResponseContent(); try { if (BaseDal.QueryFirst(x => x.TaskNum == taskDTO.TaskNum || x.PalletCode == taskDTO.PalletCode) != null) { return content.OK(); } Dt_Task task = _mapper.Map(taskDTO); task.Creater = "WMS"; if (task.TaskType.GetTaskTypeGroup() == TaskTypeGroup.OutbondGroup) { task.TaskState = (int)TaskOutStatusEnum.OutNew; task.CurrentAddress = taskDTO.RoadWay; task.NextAddress = "002-000-002"; task.SourceAddress = taskDTO.SourceAddress; task.TargetAddress = taskDTO.TargetAddress; } BaseDal.AddData(task); _taskExecuteDetailService.AddTaskExecuteDetail(task.WMSId, "接收WMS任务"); content = WebResponseContent.Instance.OK("成功"); } catch (Exception ex) { content = WebResponseContent.Instance.Error($"任务接收错误,错误信息:{ex.Message}"); } return content; } /// /// 接收WMS任务信息 /// /// WMS任务对象集合 /// 返回处理结果 public async Task RequestFlow(Dt_StationManager stationManager) { WebResponseContent content = new WebResponseContent(); try { var config = _sys_ConfigService.GetConfigsByCategory(CateGoryConst.CONFIG_SYS_IPAddress); var wmsBase = config.FirstOrDefault(x => x.ConfigKey == SysConfigKeyConst.WMSIP_BASE)?.ConfigValue; var requestTask = config.FirstOrDefault(x => x.ConfigKey == SysConfigKeyConst.RequestFlow)?.ConfigValue; if (wmsBase == null || requestTask == null) { throw new InvalidOperationException("WMS IP 未配置"); } var wmsIpAddrss = wmsBase + requestTask; var result = await HttpHelper.PostAsync(wmsIpAddrss, new { EquiCodeMOM = stationManager.stationEquipMOM, Roadways = stationManager.Roadway, area = stationManager.stationArea, Position = stationManager.stationChildCode }.ToJsonString()); content = JsonConvert.DeserializeObject(result); if (!content.Status) { return content; } Dt_StationManager dt_Station = content.Data as Dt_StationManager; //dt_Station. } catch (Exception ex) { content = WebResponseContent.Instance.Error($"任务接收错误,错误信息:{ex.Message}"); } return content; } /// /// 根据托盘号和设备号查询任务 /// /// 任务号 /// 当前地址 /// public Dt_Task QueryTaskByPalletCode(string palletCode, string Roadway) { return BaseDal.QueryFirst(x => x.PalletCode == palletCode && x.Roadway == Roadway, TaskOrderBy); } ///// ///// 根据设备编号、当前地址查询输送线未执行的任务 ///// ///// 设备编号 ///// 当前地址 ///// //public Dt_Task QueryConveyorLineTask(string deviceNo, string currentAddress) //{ // return BaseDal.QueryFirst(x => (TaskInboundTypes.Contains(x.TaskType) && x.TaskState == (int)TaskInStatusEnum.InNew || TaskOutboundTypes.Contains(x.TaskType) && x.TaskState == (int)TaskOutStatusEnum.SC_OutFinish) && x.CurrentAddress == currentAddress, TaskOrderBy); //} /// 任务完成 /// /// 任务编号 /// 返回处理结果 public WebResponseContent StackCraneTaskCompletedByStation(int taskNum) { WebResponseContent content = new WebResponseContent(); try { var task = BaseDal.QueryFirst(x => x.TaskNum == taskNum); if (task == null) return WebResponseContent.Instance.Error($"未找到该任务信息,任务号:【{taskNum}】"); #region WMS同步任务完成 var keys = new Dictionary() { {"taskNum", taskNum} }; // 获取WMSip地址 var config = _sys_ConfigService.GetConfigsByCategory(CateGoryConst.CONFIG_SYS_IPAddress); var wmsBase = config.FirstOrDefault(x => x.ConfigKey == SysConfigKeyConst.WMSIP_BASE)?.ConfigValue; var completeTask = config.FirstOrDefault(x => x.ConfigKey == SysConfigKeyConst.CompleteTask)?.ConfigValue; if (wmsBase == null || completeTask == null) { throw new InvalidOperationException("WMS IP 未配置"); } var wmsIpAddress = wmsBase + completeTask; var result = HttpHelper.GetAsync(wmsIpAddress, keys).Result; content = JsonConvert.DeserializeObject(result); #endregion WMS同步任务完成 if (content.Status) { task.TaskState = 1; //任务完成 var taskHty = task.Adapt(); _taskHtyRepository.AddData(taskHty); BaseDal.DeleteData(task); } #region 更新任务状态 //var updateTask = config.FirstOrDefault(x => x.ConfigKey == SysConfigKeyConst.UpdateTask)?.ConfigValue; //if (wmsBase == null || updateTask == null) //{ // throw new InvalidOperationException("WMS IP 未配置"); //} //wmsIpAddress = wmsBase + updateTask; //result = HttpHelper.PostAsync(wmsIpAddress, new { TaskNum = task.TaskNum, TaskState = task.TaskState }.ToJsonString()).Result; //content = JsonConvert.DeserializeObject(result); #endregion 更新任务状态 //content = WebResponseContent.Instance.OK(); } catch (Exception ex) { content = WebResponseContent.Instance.Error($"任务完成异常,任务号:【{taskNum}】"); QuartzLogger.WriteLogToFile($"Info_分容任务完成", $"任务完成异常,任务号:【{taskNum}】异常信息【{ex.StackTrace}】{Environment.NewLine}{Environment.NewLine}"); } QuartzLogger.WriteLogToFile($"Info_分容任务完成", $"任务完成,任务号:【{taskNum}】返回参数【{JsonConvert.SerializeObject(content)}】{Environment.NewLine}{Environment.NewLine}"); return content; } } }