|  |  | 
 |  |  | using Newtonsoft.Json; | 
 |  |  | using LogLibrary.Log; | 
 |  |  | using Masuit.Tools; | 
 |  |  | using Newtonsoft.Json; | 
 |  |  | using System; | 
 |  |  | using System.Collections.Generic; | 
 |  |  | using System.Linq; | 
 |  |  | using System.Text; | 
 |  |  | using System.Threading.Tasks; | 
 |  |  | using WIDESEA_Core; | 
 |  |  | using WIDESEA_Core.Const; | 
 |  |  | using WIDESEA_Core.Enums; | 
 |  |  | using WIDESEA_Core.Helper; | 
 |  |  | using WIDESEA_DTO; | 
 |  |  | using WIDESEA_DTO.MOM; | 
 |  |  | using WIDESEA_DTO.WMS; | 
 |  |  | using WIDESEA_Model.Models; | 
 |  |  | using WIDESEA_StorageBasicRepository; | 
 |  |  | using WIDESEAWCS_Model.Models; | 
 |  |  |  | 
 |  |  | namespace WIDESEA_StoragIntegrationServices | 
 |  |  | { | 
 |  |  | 
 |  |  |  | 
 |  |  |                 if (location == null) throw new Exception("未知库位"); | 
 |  |  |  | 
 |  |  |                 if (_taskRepository.QueryFirst(x => x.SourceAddress == result.LocationID && x.Roadway == location.RoadwayNo) != null) | 
 |  |  |                 { | 
 |  |  |                     throw new Exception("当前库位已存在任务"); | 
 |  |  |                 } | 
 |  |  |  | 
 |  |  |                 Dt_StationManager stationManager; | 
 |  |  |                 if (result.IsNG == 1) | 
 |  |  |                 { | 
 |  |  |                     stationManager = _stationManagerRepository.QueryFirst(x => x.Roadway == location.RoadwayNo && x.stationType == 4); | 
 |  |  |                 } | 
 |  |  |                 else | 
 |  |  |                 { | 
 |  |  |                     stationManager = _stationManagerRepository.QueryFirst(x => x.Roadway == location.RoadwayNo && x.stationType == 2); | 
 |  |  |                 } | 
 |  |  |  | 
 |  |  |                 if (stationManager == null) throw new Exception("未知站台"); | 
 |  |  |  | 
 |  |  |                 int taskNum = _taskRepository.GetTaskNo().Result; | 
 |  |  |  | 
 |  |  |                 Dt_Task task = new Dt_Task | 
 |  |  | 
 |  |  |                     Creater = "HK", | 
 |  |  |                     CurrentAddress = result.LocationID, | 
 |  |  |                     Grade = 1, | 
 |  |  |                     Dispatchertime = DateTime.Now, | 
 |  |  |                     PalletCode = result.PalletBarcode, | 
 |  |  |                     Roadway = location.RoadwayNo, | 
 |  |  |                     SourceAddress = result.LocationID, | 
 |  |  |                     TaskState = (int)TaskOutStatusEnum.OutNew, | 
 |  |  |                     TaskType = result.IsNG == 1 ? (int)TaskOutboundTypeEnum.OutNG : (int)TaskOutboundTypeEnum.Outbound, | 
 |  |  |                     TargetAddress = "", | 
 |  |  |                     TargetAddress = stationManager.stationLocation, | 
 |  |  |                     NextAddress = stationManager.stationChildCode, | 
 |  |  |                     TaskNum = taskNum, //_taskRepository.GetTaskNo().Result, | 
 |  |  |                     TaskId = 0, | 
 |  |  |                 }; | 
 |  |  |  | 
 |  |  |  | 
 |  |  |                 WMSTaskDTO taskDTO = new WMSTaskDTO | 
 |  |  |                 // 尝试添加新任务 | 
 |  |  |                 WMSTaskDTO taskDTO = new WMSTaskDTO() | 
 |  |  |                 { | 
 |  |  |                     Id = 0, | 
 |  |  |                     TaskNum = task.TaskNum.Value, | 
 |  |  |                     Grade = 1, | 
 |  |  |                     PalletCode = result.PalletBarcode, | 
 |  |  |                     RoadWay = location.RoadwayNo, | 
 |  |  |                     SourceAddress = result.LocationID, | 
 |  |  |                     TargetAddress = result.LocationID, | 
 |  |  |                     TaskNum = taskNum,  //_taskRepository.GetTaskNo().Result, | 
 |  |  |                     TaskState = (int)TaskOutStatusEnum.OutNew, | 
 |  |  |                     PalletCode = task.PalletCode, | 
 |  |  |                     RoadWay = task.Roadway, | 
 |  |  |                     SourceAddress = task.SourceAddress, | 
 |  |  |                     TargetAddress = task.TargetAddress, | 
 |  |  |                     TaskState = task.TaskState.Value, | 
 |  |  |                     Id = 0, | 
 |  |  |                     TaskType = result.IsNG == 1 ? (int)TaskOutboundTypeEnum.OutNG : (int)TaskOutboundTypeEnum.Outbound, | 
 |  |  |                 }; | 
 |  |  |  | 
 |  |  |                 var respon = HttpHelper.Post("http://localhost:9291/api/Task/ReceiveTask", JsonConvert.SerializeObject(taskDTO)); | 
 |  |  |                 var configs = _configService.GetConfigsByCategory(CateGoryConst.CONFIG_SYS_IPAddress); | 
 |  |  |                 var ipAddress = configs.FirstOrDefault(x => x.ConfigKey == SysConfigConst.WCSIPAddress)?.ConfigValue; | 
 |  |  |                 var ReceiveByWMSTask = configs.FirstOrDefault(x => x.ConfigKey == SysConfigConst.ReceiveByWMSTask)?.ConfigValue; | 
 |  |  |                 if (ReceiveByWMSTask == null || ipAddress == null) | 
 |  |  |                 { | 
 |  |  |                     throw new Exception("WMS IP 未配置"); | 
 |  |  |                 } | 
 |  |  |                 var wmsIpAddrss = ipAddress + ReceiveByWMSTask; | 
 |  |  |  | 
 |  |  |                 var respon = HttpHelper.Post(wmsIpAddrss, JsonConvert.SerializeObject(taskDTO));   //http://localhost:9291/api/Task/ReceiveTask, | 
 |  |  |                 if (respon != null) | 
 |  |  |                 { | 
 |  |  |                      | 
 |  |  |                     WebResponseContent respone = JsonConvert.DeserializeObject<WebResponseContent>(respon.ToString()); | 
 |  |  |                     if (respone.Status) | 
 |  |  |                     { | 
 |  |  |                         var taskId = _taskRepository.AddData(task); | 
 |  |  |                     } | 
 |  |  |  | 
 |  |  |                     else | 
 |  |  |                     { | 
 |  |  |                         throw new Exception("WCS处理失败:" + respone.Message); | 
 |  |  |                     } | 
 |  |  |                 } | 
 |  |  |  | 
 |  |  |  | 
 |  |  |                 else | 
 |  |  |                 { | 
 |  |  |                     throw new Exception("WCS处理失败"); | 
 |  |  |                 } | 
 |  |  |                 //WMSTaskDTO taskDTO = new WMSTaskDTO | 
 |  |  |                 //{ | 
 |  |  |                 //    Id = 0, | 
 |  |  |                 //    Grade = 1, | 
 |  |  |                 //    PalletCode = result.PalletBarcode, | 
 |  |  |                 //    RoadWay = location.RoadwayNo, | 
 |  |  |                 //    SourceAddress = result.LocationID, | 
 |  |  |                 //    TargetAddress = task.TargetAddress, | 
 |  |  |                 //    TaskNum = taskNum,  //_taskRepository.GetTaskNo().Result, | 
 |  |  |                 //    TaskState = (int)TaskOutStatusEnum.OutNew, | 
 |  |  |                 //}; | 
 |  |  |                 LogFactory.GetLog("分容测试完成通知").Info(true, $"\r\r--------------------------------------"); | 
 |  |  |                 LogFactory.GetLog("分容测试完成通知").Info(true, result.ToJsonString()); | 
 |  |  |                 return content.OK(); | 
 |  |  |             } | 
 |  |  |             catch (Exception ex) | 
 |  |  |             { | 
 |  |  |                 LogFactory.GetLog("分容测试完成通知").Info(true, $"\r\r--------------------------------------"); | 
 |  |  |                 LogFactory.GetLog("分容测试完成通知").Info(true, ex.Message); | 
 |  |  |                 return content.Error(ex.Message); | 
 |  |  |             } | 
 |  |  |         } |