From e5642daf4b6820d0706967e486b16e8d33a46d6d Mon Sep 17 00:00:00 2001 From: 刘磊 <1161824510@qq.com> Date: 星期四, 26 十二月 2024 14:37:52 +0800 Subject: [PATCH] 1 --- Code Management/WMS/WIDESEA_WMSServer/WIDESEA_StorageTaskServices/Task/Partial/Dt_TaskService.cs | 228 ++++++++++++++++++++++++++++++++------------------------ 1 files changed, 130 insertions(+), 98 deletions(-) diff --git a/Code Management/WMS/WIDESEA_WMSServer/WIDESEA_StorageTaskServices/Task/Partial/Dt_TaskService.cs b/Code Management/WMS/WIDESEA_WMSServer/WIDESEA_StorageTaskServices/Task/Partial/Dt_TaskService.cs index 5c4ca3c..85c1e58 100644 --- a/Code Management/WMS/WIDESEA_WMSServer/WIDESEA_StorageTaskServices/Task/Partial/Dt_TaskService.cs +++ b/Code Management/WMS/WIDESEA_WMSServer/WIDESEA_StorageTaskServices/Task/Partial/Dt_TaskService.cs @@ -5,6 +5,8 @@ using System.Threading.Tasks; using WIDESEA_Common; using WIDESEA_Common.CustomModels; + +//using WIDESEA_Common.CustomModels; using WIDESEA_Core.BaseRepository; using WIDESEA_Core.Const; using WIDESEA_DTO.MOM; @@ -161,105 +163,121 @@ private async Task<Dt_Task> CreateInToOutTaskAsync(RequestTaskDto input, Dt_StationManager stationManager) { - //if (stationManager.stationType != 5) throw new Exception("閿欒鐨勮皟鍙�"); - - input.EquiCodeMOM = "24MEJQ11-1006-1"; - - // 鍒涘缓涓�涓猅rayCellsStatusDto瀵硅薄锛屽苟璧嬪�� - TrayCellsStatusDto trayCells = new TrayCellsStatusDto() + try { - Software = "WMS", - TrayBarcode = input.PalletCode, - //EquipmentCode = "EQ_CWJZ01" - EquipmentCode = input.EquiCodeMOM - }; + //if (stationManager.stationType != 5) throw new Exception("閿欒鐨勮皟鍙�"); - // 璋冪敤GetTrayCellStatusAsync鏂规硶锛岃幏鍙栨暣鐩樼數鑺� - WebResponseContent content = await GetTrayCellStatusAsync(trayCells); - // 濡傛灉鐘舵�佷负false锛屽垯杩斿洖content - if (!content.Status) throw new Exception(content.Message); + input.EquiCodeMOM = "24MEJQ11-1006-1"; - // 娣诲姞缁勭洏淇℃伅 - // 灏哻ontent.Data杞崲涓篟esultTrayCellsStatus瀵硅薄 - var result = JsonConvert.DeserializeObject<ResultTrayCellsStatus>(content.Data.ToString()); - if (result.SerialNos.Count <= 0) - { - ConsoleHelper.WriteErrorLine(result.MOMMessage); - if (stationManager.stationType != 3) + // 鍒涘缓涓�涓猅rayCellsStatusDto瀵硅薄锛屽苟璧嬪�� + TrayCellsStatusDto trayCells = new TrayCellsStatusDto() { - var taskNG = new Dt_Task + Software = "WMS", + TrayBarcode = input.PalletCode, + //EquipmentCode = "EQ_CWJZ01" + EquipmentCode = input.EquiCodeMOM + }; + + // 璋冪敤GetTrayCellStatusAsync鏂规硶锛岃幏鍙栨暣鐩樼數鑺� + WebResponseContent content = await GetTrayCellStatusAsync(trayCells); + // 濡傛灉鐘舵�佷负false锛屽垯杩斿洖content + if (!content.Status) throw new Exception(content.Message); + + // 缁勭洏淇℃伅 + // 灏哻ontent.Data杞崲涓篟esultTrayCellsStatus瀵硅薄 + var result = JsonConvert.DeserializeObject<ResultTrayCellsStatus>(content.Data.ToString()); + if (result.SerialNos.Count <= 0) + { + ConsoleHelper.WriteErrorLine(result.MOMMessage); + if (stationManager.stationType != 3) { - CurrentAddress = input.Position, - Grade = 3, - Roadway = input.Roadways, - TargetAddress = stationManager.stationNGLocation, - Dispatchertime = DateTime.Now, - MaterialNo = "", - NextAddress = stationManager.stationNGChildCode, - OrderNo = null, - PalletCode = input.PalletCode, - SourceAddress = stationManager.stationLocation, - TaskState = (int)TaskInStatusEnum.Line_InFinish, - TaskType = (int)TaskOutboundTypeEnum.InToOut, - TaskNum = await BaseDal.GetTaskNo(), - Creater = "Systeam" - }; - return taskNG; - } - else - { - return null; - } - } - - // 澶勭悊寮傚父鐢佃姱鎯呭喌 - var serialNosError = result.SerialNos.Where(x => x.SerialNoStatus != 1).ToList(); - if (serialNosError.Count > 0) - { - if (stationManager.stationType != 3) - { - var taskNG = new Dt_Task + var taskNG = new Dt_Task + { + CurrentAddress = input.Position, + Grade = 3, + Roadway = input.Roadways, + TargetAddress = stationManager.stationNGLocation, + Dispatchertime = DateTime.Now, + MaterialNo = "", + NextAddress = stationManager.stationNGChildCode, + OrderNo = null, + PalletCode = input.PalletCode, + SourceAddress = stationManager.stationLocation, + TaskState = (int)TaskInStatusEnum.Line_InFinish, + TaskType = (int)TaskOutboundTypeEnum.InToOut, + TaskNum = await BaseDal.GetTaskNo(), + Creater = "Systeam" + }; + return taskNG; + } + else { - CurrentAddress = input.Position, - Grade = 1, - Roadway = input.Roadways, - TargetAddress = stationManager.stationNGLocation, - Dispatchertime = DateTime.Now, - MaterialNo = "", - NextAddress = stationManager.stationNGChildCode, - OrderNo = null, - PalletCode = input.PalletCode, - SourceAddress = stationManager.stationLocation, - TaskState = (int)TaskInStatusEnum.Line_InFinish, - TaskType = (int)TaskOutboundTypeEnum.OutNG, - TaskNum = await BaseDal.GetTaskNo(), - Creater = "Systeam" - }; - return taskNG; + //鏃犵數鑺� 鈫� 褰撶┖妗嗭紵 杩樻槸杩斿洖寮傚父锛� + return null; + } } + + // 澶勭悊寮傚父鐢佃姱鎯呭喌 + var serialNosError = result.SerialNos.Where(x => x.SerialNoStatus != 1).ToList(); + if (serialNosError.Count > 0) + { + if (stationManager.stationType != 3) + { + var taskNG = new Dt_Task + { + CurrentAddress = input.Position, + Grade = 1, + Roadway = input.Roadways, + TargetAddress = stationManager.stationNGLocation, + Dispatchertime = DateTime.Now, + MaterialNo = "", + NextAddress = stationManager.stationNGChildCode, + OrderNo = null, + PalletCode = input.PalletCode, + SourceAddress = stationManager.stationLocation, + TaskState = (int)TaskInStatusEnum.Line_InFinish, + TaskType = (int)TaskOutboundTypeEnum.InToOut, + TaskNum = await BaseDal.GetTaskNo(), + Creater = "Systeam" + }; + return taskNG; + } + else + { + Console.WriteLine($"绔欏彴{stationManager.stationChildCode}MOM杩斿洖鐢佃姱寮傚父:{result.MOMMessage}"); + return null; + } + } + //else + //{ + // throw new Exception($"绔欏彴{stationManager.stationChildCode}MOM杩斿洖鐢佃姱寮傚父:{result.MOMMessage}"); + //} + + var targetStation = _stationManagerRepository.QueryFirst(x => x.stationPLC == stationManager.stationPLC && x.Roadway == stationManager.Roadway && x.stationType == 2); + + var task = new Dt_Task + { + CurrentAddress = input.Position, + Grade = 3, + Roadway = input.Roadways, + TargetAddress = targetStation.stationLocation, + Dispatchertime = DateTime.Now, + MaterialNo = "", + NextAddress = input.Roadways, + OrderNo = null, + PalletCode = input.PalletCode, + SourceAddress = stationManager.stationLocation, + TaskState = (int)TaskInStatusEnum.Line_InFinish, + TaskType = (int)TaskOutboundTypeEnum.InToOut, + TaskNum = await BaseDal.GetTaskNo(), + Creater = "Systeam" + }; + return task; } - - var targetStation = _stationManagerRepository.QueryFirst(x => x.stationPLC == stationManager.stationPLC && x.Roadway == stationManager.Roadway && x.stationType == 2); - - var task = new Dt_Task + catch (Exception ex) { - CurrentAddress = input.Position, - Grade = 1, - Roadway = input.Roadways, - TargetAddress = targetStation.stationLocation, - Dispatchertime = DateTime.Now, - MaterialNo = "", - NextAddress = input.Roadways, - OrderNo = null, - PalletCode = input.PalletCode, - SourceAddress = stationManager.stationLocation, - TaskState = (int)TaskInStatusEnum.Line_InFinish, - TaskType = (int)TaskOutboundTypeEnum.InToOut, - TaskNum = await BaseDal.GetTaskNo(), - Creater = "Systeam" - }; - - return task; + throw new Exception(ex.Message); + } } #endregion 鐩存帴鍑哄簱浠诲姟 @@ -519,7 +537,8 @@ { //娣诲姞鍘嗗彶 var taskHty = CreateHistoricalTask(task); - + // 娣诲姞鍘嗗彶浠诲姟 + var isTaskHtyAdd = await _task_HtyRepository.AddDataAsync(taskHty) > 0; //鍒犻櫎浠诲姟 BaseDal.DeleteData(task); @@ -576,7 +595,7 @@ var Epmtytask = new Dt_Task { CurrentAddress = input.Position, - Grade = 3, //浼樺厛澶勭悊寮傚父鎺掑嚭鍙g殑浠诲姟 闃叉姝e父闇�鎺掑嚭寮傚父鍙g殑浠诲姟鍫电嚎 + Grade = 4, //浼樺厛澶勭悊寮傚父鎺掑嚭鍙g殑浠诲姟 闃叉姝e父闇�鎺掑嚭寮傚父鍙g殑浠诲姟鍫电嚎 Roadway = input.Roadways, TargetAddress = EmptylocationInfo.LocationCode, Dispatchertime = DateTime.Now, @@ -844,20 +863,29 @@ WebResponseContent content = new WebResponseContent(); try { - Dt_StationManager station = _stationManagerRepository.QueryFirst(x => x.stationChildCode == json.Position); + Dt_StationManager station = _stationManagerRepository.QueryFirst(x => x.stationChildCode == json.Position && x.stationType == 12 && x.stationArea == "Call"); - DtStockInfo stockInfo = _stockInfoRepository.QueryFirst(X => X.IsFull && X.AreaCode == "CWSC3" && X.ProductionLine == station.productLine); + var stockInfo = _stockInfoRepository.Db.Queryable<DtStockInfo>() + .Includes(x => x.LocationInfo) // 棰勫姞杞絃ocationInfo + .Includes(x => x.StockInfoDetails) // 棰勫姞杞絊tockInfoDetails + .Where(x => x.AreaCode == "CWSC3" && x.IsFull == true) // 杩囨护鏉′欢 + .Where(x => x.LocationInfo.LocationStatus == (int)LocationEnum.InStock) // 杩囨护鏉′欢 + .OrderBy(x => x.OutboundTime) // 鎺掑簭 + .First(); // 鑾峰彇绗竴涓厓绱� + + //DtStockInfo stockInfo = _stockInfoRepository.QueryFirst(X => X.IsFull && X.AreaCode == "CWSC3" && X.ProductionLine == station.productLine); if (stockInfo == null) throw new Exception("搴撳唴鏃犳弧瓒虫潯浠剁殑搴撳瓨鍙嚭搴�"); - Dt_StationManager OutStation = _stationManagerRepository.QueryFirst(x => x.stationPLC == "1016" && x.stationType == 10); + DtLocationInfo locationInfo = _locationRepository.QueryFirst(x => x.AreaId == 5 && x.LocationCode == stockInfo.LocationCode); + Dt_StationManager OutStation = _stationManagerRepository.QueryFirst(x => x.stationPLC == "1016" && x.stationType == 10 && x.Roadway == locationInfo.RoadwayNo && x.stationStatus == "1"); // 鍒涘缓鏂颁换鍔″疄渚� var task = new Dt_Task { - CurrentAddress = stockInfo.LocationInfo.RoadwayNo, + CurrentAddress = stockInfo.LocationCode, Grade = 1, - Roadway = stockInfo.LocationInfo.RoadwayNo, + Roadway = locationInfo.RoadwayNo, TargetAddress = json.Position, Dispatchertime = DateTime.Now, MaterialNo = "", @@ -873,11 +901,15 @@ WMSTaskDTO taskDTO = CreateTaskDTO(task); + BaseDal.AddData(task); + stockInfo.LocationInfo.LocationStatus = (int)LocationEnum.InStockDisable; + _locationRepository.UpdateData(stockInfo.LocationInfo); return content.OK(data: taskDTO); } catch (Exception ex) { + Console.WriteLine($"CW3鑷冲寘瑁呭嚭搴撳紓甯�:{ex.ToString()}"); return content.Error($"澶辫触锛歿ex.Message}"); } } @@ -895,7 +927,7 @@ if (emergencyTask == null) throw new Exception("鐏鍙傛暟涓虹┖"); - DtLocationInfo locationInfo = _locationRepository.QueryFirst(x => x.Row == emergencyTask.row && x.Column == emergencyTask.column && x.Layer == emergencyTask.layer && x.RoadwayNo == emergencyTask.Roadway); + DtLocationInfo locationInfo = _locationRepository.QueryFirst(x => x.Row == emergencyTask.row && x.Column == emergencyTask.column && x.Layer == emergencyTask.layer && x.AreaId == emergencyTask.zone); if (locationInfo == null) { throw new Exception("鏈煡搴撲綅"); -- Gitblit v1.9.3