From 992a33ca68af405d08da512c46d7d59ec3ceaabc Mon Sep 17 00:00:00 2001 From: 肖洋 <cathay_xy@163.com> Date: 星期二, 11 二月 2025 14:33:47 +0800 Subject: [PATCH] 添加 ProductionLine 属性并优化任务处理逻辑 --- Code Management/WMS/WIDESEA_WMSServer/WIDESEA_StorageTaskServices/Task/Partial/RequestInTaskAsync.cs | 53 +++++++++++++++++++++++++++++++++++++++-------------- 1 files changed, 39 insertions(+), 14 deletions(-) diff --git a/Code Management/WMS/WIDESEA_WMSServer/WIDESEA_StorageTaskServices/Task/Partial/RequestInTaskAsync.cs b/Code Management/WMS/WIDESEA_WMSServer/WIDESEA_StorageTaskServices/Task/Partial/RequestInTaskAsync.cs index 363e05c..771d001 100644 --- a/Code Management/WMS/WIDESEA_WMSServer/WIDESEA_StorageTaskServices/Task/Partial/RequestInTaskAsync.cs +++ b/Code Management/WMS/WIDESEA_WMSServer/WIDESEA_StorageTaskServices/Task/Partial/RequestInTaskAsync.cs @@ -39,30 +39,50 @@ { WebResponseContent content = new WebResponseContent(); // 鍒ゆ柇闇�涓嶉渶瑕佸幓鍖呰锛屼笉闇�瑕佸氨鍘诲父娓╀笁 - var stationManagers = _stationManagerRepository.QueryData(x => x.stationPLC == "1018" && x.stationArea == "Cache"); - var station = stationManagers.Select(x => x.stationChildCode).ToList(); + var stationManagers = _stationManagerRepository.QueryData(x => x.stationPLC == "1018" && x.stationArea == "Cache" && x.productLine == input.ProductionLine); - // 鑾峰彇WCSip鍦板潃鐩稿叧閰嶇疆 + //var station = stationManagers.Select(x => x.stationChildCode).ToList(); + + //// 鑾峰彇WCSip鍦板潃鐩稿叧閰嶇疆 var wcsIpAddrss = GetWCSIpAddress(); - if (wcsIpAddrss == null) + //if (wcsIpAddrss == null) + //{ + // throw new InvalidOperationException("WCS IP 鏈厤缃�"); + //} + + //var abc = HttpHelper.PostAsync(wcsIpAddrss, station.ToJsonString()).Result; + //content = JsonConvert.DeserializeObject<WebResponseContent>(abc); + //var num = content.Data.ObjToInt(); + + //濡傛灉褰撳墠搴撳唴瀛樺湪姣斿綋鍓嶆椂闂寸殑瀵瑰簲浜х嚎鐨勬枡 鍒欏叆搴撹嚦甯告俯3 + DtStockInfo stockInfo = _stockInfoRepository.QueryFirst(x => x.AreaCode == "CWSC3" && x.IsFull == true && x.ProductionLine == input.ProductionLine && x.OutboundTime < DateTime.Now); + if (stockInfo != null) { - throw new InvalidOperationException("WCS IP 鏈厤缃�"); + var config = _configService.GetByConfigKey("SYS_InStacker", "CW3InStacker"); + var strings = config.ConfigValue.Split(',').ToList(); + // 鍏ュ簱閫佽嚦甯告俯3 + var resultContent = await CreateNewTask(input, input.ProductionLine, strings); + if (resultContent.Status) + { + await _boxingInfoRepository.AddDataNavAsync(boxing); + } + return resultContent; } - var abc = HttpHelper.PostAsync(wcsIpAddrss, station.ToJsonString()).Result; - content = JsonConvert.DeserializeObject<WebResponseContent>(abc); - if (content.Data.ObjToInt() > 0) + // TODO 鍒ゆ柇鍦ㄩ�旀暟閲� + var count = BaseDal.QueryData(x => x.TargetAddress == stationManagers[0].Roadway).Count; + if (count <= 10) { // 閫佽嚦鍖呰 List<string> strings = stationManagers.Where(x => x.stationType == 0).Select(x => x.Roadway).ToList(); - return await CreateNewTask(input, strings, 3); + return await CreateNewTask(input, input.ProductionLine, strings, 3); } else { var config = _configService.GetByConfigKey("SYS_InStacker", "CW3InStacker"); var strings = config.ConfigValue.Split(',').ToList(); // 鍏ュ簱閫佽嚦甯告俯3 - var resultContent = await CreateNewTask(input, strings); + var resultContent = await CreateNewTask(input, input.ProductionLine, strings); if (resultContent.Status) { await _boxingInfoRepository.AddDataNavAsync(boxing); @@ -95,7 +115,11 @@ if (!content.Status) return content.Error("宸ヨ壓鐢宠澶辫触"); var resultProcessApply = JsonConvert.DeserializeObject<ResultProcessApply>(content.Data.ToString()); - if (!resultProcessApply.Success) return content.Error("宸ヨ壓鐢宠澶辫触"); + if (!resultProcessApply.Success) + { + return await HandleErrorCells(input, area); + //return content.Error("宸ヨ壓鐢宠澶辫触"); + } var number = resultProcessApply.ProcessInfo.Where(x => x.ProcessCode.Contains(boxing.ProcessCode)).FirstOrDefault().Number.ToInt32(); foreach (var item in resultProcessApply.ProcessInfo) @@ -114,7 +138,7 @@ } List<string> strings = stationManagers.Roadway.Split(',').ToList(); - var resultContent = await CreateNewTask(input, strings); + var resultContent = await CreateNewTask(input, result.ProductionLine, strings); if (resultContent.Status) { var isBox = await _boxingInfoRepository.AddDataNavAsync(boxing); @@ -176,7 +200,7 @@ // NGStation = stationManagers.stationNGChildCode.Split(',').ToList(); //} List<string> NGStation = stationManagers.stationNGChildCode.Split(',').ToList(); - content = await CreateNewTask(input, NGStation, 2); + content = await CreateNewTask(input, input.ProductionLine, NGStation, 2); return content.Error("瀛樺湪寮傚父鐢佃姱"); } @@ -206,7 +230,8 @@ TargetAddress = task.Roadway, TaskState = task.TaskState.Value, Id = 0, - TaskType = task.TaskType + TaskType = task.TaskType, + ProductionLine = task.ProductionLine, }; return new WebResponseContent().OK(data: taskDTO); } -- Gitblit v1.9.3