|  |  |  | 
|---|
|  |  |  | 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 | 
|---|
|  |  |  | 
|---|
|  |  |  | CreateDate = DateTime.Now, | 
|---|
|  |  |  | Creater = "HK", | 
|---|
|  |  |  | CurrentAddress = result.LocationID, | 
|---|
|  |  |  | Grade = 1, | 
|---|
|  |  |  | Grade = result.IsNG == 1 ? 1 : 2, | 
|---|
|  |  |  | 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() | 
|---|
|  |  |  | { | 
|---|
|  |  |  | TaskNum = task.TaskNum.Value, | 
|---|
|  |  |  | Grade = result.IsNG == 1 ? 1 : 2, | 
|---|
|  |  |  | PalletCode = task.PalletCode, | 
|---|
|  |  |  | RoadWay = task.Roadway, | 
|---|
|  |  |  | SourceAddress = task.SourceAddress, | 
|---|
|  |  |  | TargetAddress = task.TargetAddress, | 
|---|
|  |  |  | TaskState = task.TaskState.Value, | 
|---|
|  |  |  | Id = 0, | 
|---|
|  |  |  | Grade = 1, | 
|---|
|  |  |  | PalletCode = result.PalletBarcode, | 
|---|
|  |  |  | RoadWay = location.RoadwayNo, | 
|---|
|  |  |  | SourceAddress = result.LocationID, | 
|---|
|  |  |  | TargetAddress = "", | 
|---|
|  |  |  | TaskNum = taskNum,  //_taskRepository.GetTaskNo().Result, | 
|---|
|  |  |  | TaskState = (int)TaskOutStatusEnum.OutNew, | 
|---|
|  |  |  | TaskType = result.IsNG == 1 ? (int)TaskOutboundTypeEnum.OutNG : (int)TaskOutboundTypeEnum.Outbound, | 
|---|
|  |  |  | }; | 
|---|
|  |  |  |  | 
|---|
|  |  |  | //var respon = HttpHelper.Post("http://localhost:9291/api/Task/ReceiveTask", JsonConvert.SerializeObject(taskDTO)); | 
|---|
|  |  |  | //if (respon != null) | 
|---|
|  |  |  | //{ | 
|---|
|  |  |  |  | 
|---|
|  |  |  | //} | 
|---|
|  |  |  | //else | 
|---|
|  |  |  | //{ | 
|---|
|  |  |  | //    throw new Exception("WCS处理失败"); | 
|---|
|  |  |  | //} | 
|---|
|  |  |  | 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); | 
|---|
|  |  |  | } | 
|---|
|  |  |  | } | 
|---|