| | |
| | | using WIDESEA_Common.MES.Request; |
| | | using WIDESEA_Core; |
| | | using WIDESEA_Core.Const; |
| | | using WIDESEA_Core.Enums; |
| | | using WIDESEA_Core.Helper; |
| | | using WIDESEA_DTO.WMS; |
| | | using WIDESEA_Model.Models; |
| | | using WIDESEAWCS_BasicInfoService; |
| | | using WIDESEAWCS_Model.Models; |
| | | |
| | |
| | | try |
| | | { |
| | | if (string.IsNullOrEmpty(jsondata.ToString())) throw new Exception("请æ±åæ°ä¸ºç©º"); |
| | | |
| | | Console.WriteLine(jsondata); |
| | | var result = JsonConvert.DeserializeObject<pullLockInfo>(jsondata.ToString()); |
| | | |
| | | foreach (var item in result.data) |
| | | { |
| | | Dt_PalletStockInfo carinfo = null; |
| | | if (!string.IsNullOrEmpty(item.pvi)) |
| | | { |
| | | var carInfo = _palletStockInfoRepository.QueryFirst(x => x.PVI == item.pvi && x.pbMaterial == item.pbMaterial); |
| | | if (carInfo == null) |
| | | carinfo = _palletStockInfoRepository.QueryFirst(x => x.PVI == item.pvi && x.pbMaterial == item.pbMaterial); |
| | | if (carinfo == null) |
| | | { |
| | | throw new Exception("æªç¥è½¦èº«"); |
| | | throw new Exception($"æªæ¾å°æå®PVI车身信æ¯{item.pvi}"); |
| | | } |
| | | } |
| | | else |
| | | { |
| | | carinfo = _palletStockInfoRepository.QueryData(x => x.pbMaterial == item.pbMaterial).OrderBy(x => x.CreateDate).FirstOrDefault(); |
| | | } |
| | | |
| | | var carinfo = _palletStockInfoRepository.QueryData(x => x.pbMaterial == item.pbMaterial).OrderBy(x => x.CreateDate); |
| | | if (carinfo == null) |
| | | { |
| | | throw new Exception("æ æ³å¹é
车身,æå¨éå®å¤±è´¥"); |
| | | } |
| | | |
| | | Dt_Task task = new Dt_Task() |
| | | { |
| | | CreateDate = DateTime.Now, |
| | | Creater = "System", |
| | | CurrentAddress = carinfo.LocationCode, |
| | | Grade = 5, |
| | | PalletCode = carinfo.PalletCode, |
| | | PVI = item.pvi, |
| | | Roadway = carinfo.RoadwayNo, |
| | | SourceAddress = carinfo.LocationCode, |
| | | TaskNum = _taskRepository.GetTaskNo().Result, |
| | | TaskType = (int)TaskOutboundTypeEnum.Outbound, |
| | | TaskState = (int)TaskOutStatusEnum.OutNew, |
| | | TargetAddress = "" |
| | | }; |
| | | |
| | | WMSTaskDTO taskDTO = new WMSTaskDTO() |
| | | { |
| | | Grade = task.Grade.Value, |
| | | PalletCode = task.PalletCode, |
| | | SourceAddress = task.SourceAddress, |
| | | TargetAddress = task.TargetAddress, |
| | | RoadWay = task.Roadway, |
| | | TaskState = task.TaskState.Value, |
| | | TaskType = task.TaskType, |
| | | TaskNum = task.TaskNum.Value |
| | | }; |
| | | |
| | | var configs = _configService.GetConfigsByCategory(CateGoryConst.CONFIG_SYS_IPAddress); |
| | | var wmsBase = configs.FirstOrDefault(x => x.ConfigKey == SysConfigConst.WCSIPAddress)?.ConfigValue; |
| | | var ipAddress = configs.FirstOrDefault(x => x.ConfigKey == SysConfigConst.ReceiveTask)?.ConfigValue; |
| | | if (wmsBase == null || ipAddress == null) |
| | | { |
| | | throw new InvalidOperationException("WMS IP æªé
ç½®"); |
| | | } |
| | | var wmsIpAddress = wmsBase + ipAddress; |
| | | |
| | | _unitOfWorkManage.BeginTran(); |
| | | var WCSresult = HttpHelper.PostAsync(wmsIpAddress, taskDTO.ToJsonString()).Result; |
| | | content = JsonConvert.DeserializeObject<WebResponseContent>(WCSresult); |
| | | if (content != null && content.Status) |
| | | { |
| | | carinfo.StockStatus = 1; |
| | | carinfo.LockOrder = 1; |
| | | |
| | | _taskRepository.AddData(task); |
| | | _palletStockInfoRepository.UpdateData(carinfo); |
| | | |
| | | _unitOfWorkManage.CommitTran(); |
| | | } |
| | | } |
| | | |
| | | LogFactory.GetLog("MESæå¨é车").Info(true, $"\r\r--------------------------------------"); |
| | |
| | | } |
| | | catch (Exception ex) |
| | | { |
| | | _unitOfWorkManage.RollbackTran(); |
| | | return content.Error(ex.Message); |
| | | } |
| | | } |