| | |
| | | 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 (string.IsNullOrEmpty(result?.PalletBarcode)) |
| | | throw new Exception("上传托盘号为空"); |
| | | |
| | | LogFactory.GetLog("分容测试完成通知").Info(true, $"\r\r--------------------------------------"); |
| | | LogFactory.GetLog("分容测试完成通知").Info(true, result.ToJsonString()); |
| | | |
| | | var location = _locationRepository.QueryFirst(x => x.AreaId == result.LocationArea && x.LocationCode == result.LocationID); |
| | | |
| | | 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; |
| | | |
| | |
| | | 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); |
| | | location.LocationStatus = (int) LocationEnum.InStockDisable; |
| | | _locationRepository.UpdateData(location); |
| | | |
| | | //_simpleCacheService.HashDel<DtStockInfo>(WIDESEA_Cache.CacheConst.Cache_DtStockInfo, new string[] { taskDTO.PalletCode }); |
| | | } |
| | | |
| | | 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); |
| | | } |
| | | } |