From 3fb6bfc7d068cafa47906eb6f22d8e2989426f32 Mon Sep 17 00:00:00 2001 From: 陈勇 <chenyong@hnkhzn.com> Date: 星期二, 19 十一月 2024 09:03:17 +0800 Subject: [PATCH] 合并 --- Code Management/WMS/WIDESEA_WMSServer/WIDESEA_StorageTaskServices/Task/Dt_TaskService.cs | 67 ++++++++++++++++++++++----------- 1 files changed, 45 insertions(+), 22 deletions(-) diff --git a/Code Management/WMS/WIDESEA_WMSServer/WIDESEA_StorageTaskServices/Task/Dt_TaskService.cs b/Code Management/WMS/WIDESEA_WMSServer/WIDESEA_StorageTaskServices/Task/Dt_TaskService.cs index dbe3053..177bc6e 100644 --- a/Code Management/WMS/WIDESEA_WMSServer/WIDESEA_StorageTaskServices/Task/Dt_TaskService.cs +++ b/Code Management/WMS/WIDESEA_WMSServer/WIDESEA_StorageTaskServices/Task/Dt_TaskService.cs @@ -144,7 +144,7 @@ ParameterCode = y.ParameterCode, ParameterDesc = y.Description, TargetValue = y.TargetValue, - Value = ( DateTime.Parse(stock.LinedProcessFeedbackTime, null, System.Globalization.DateTimeStyles.RoundtripKind).ToLocalTime() - stock.CreateDate).TotalMinutes.ToString(), + Value = (DateTime.Parse(stock.LinedProcessFeedbackTime, null, System.Globalization.DateTimeStyles.RoundtripKind).ToLocalTime() - stock.CreateDate).TotalMinutes.ToString(), DefectCode = y.UOMCode }).ToList() }).ToList() @@ -396,6 +396,7 @@ { MaterielCode = "绌烘墭鐩�", Id = 0, + Status = (int)StockStateEmun.宸插叆搴� } } }; @@ -407,6 +408,7 @@ private DtStockInfo CreateFullPalletStock(Dt_Task task, DtLocationInfo locationInf, DtBoxingInfo boxing) { var boxDetail = boxing.BoxingInfoDetails.Adapt<List<DtStockInfoDetail>>(); + boxDetail.ForEach(x => { x.Status = (int)StockStateEmun.宸插叆搴�; }); var stock = new DtStockInfo() { PalletCode = task.PalletCode, @@ -529,6 +531,7 @@ { Software = "WMS", TrayBarcode = input.PalletCode, + //EquipmentCode = "EQ_CWJZ01" EquipmentCode = "ECH001-B" }; @@ -544,9 +547,9 @@ return content.Error(result.MOMMessage); // TODO 鑾峰彇鏈湴鏂欐灞炴�т笌鏁寸洏鐢佃姱灞炴�ц幏鍙栫殑鍊艰繘琛屽姣旓紝濡傛灉涓�鑷村垯缁х画锛屽惁鍒欒繑鍥為敊璇俊鎭� - var productions = await _productionRepository.QueryDataAsync(x => result.TrayBarcodePropertys.Select(x => x.TrayBarcodeProperty).ToList().Contains(x.TrayBarcodeProperty)); - if (productions.Count <= 0) - return content.Error("鏂欐灞炴�т笉瀛樺湪"); + //var productions = await _productionRepository.QueryDataAsync(x => result.TrayBarcodePropertys.Select(x => x.TrayBarcodeProperty).ToList().Contains(x.TrayBarcodeProperty)); + //if (productions.Count <= 0) + // return content.Error("鏂欐灞炴�т笉瀛樺湪"); // 璋冪敤CreateBoxingInfo鏂规硶锛屽垱寤虹粍鐩樹俊鎭� @@ -570,7 +573,7 @@ List<string> strings = input.Position == "1088" ? new List<string>() { "CHSC01" } : new List<string>() { "JZSC01" }; // 璋冪敤CreateNewTask鏂规硶锛屽垱寤烘柊浠诲姟 - content = await CreateNewTask(input, strings); + content = await CreateNewTask(input, strings); if (content.Status) { var isBox = await _boxingInfoRepository.AddDataNavAsync(boxing); @@ -642,7 +645,11 @@ return content.OK(data: task); } - return await CreateNewTask(input, null, 1); + // 鑾峰彇鐩爣鍦板潃 + List<string> strings = input.Position == "1016" ? new List<string>() { "CHSC01" } : new List<string>() { "JZSC01" }; + + return await CreateNewTask(input, strings, 1); + //return await CreateNewTask(input, null, 1); } catch (Exception) { @@ -743,12 +750,20 @@ { // 鏍规嵁鎵樼洏绫诲瀷鏌ヨ搴撳瓨淇℃伅 DtStockInfo stockInfo = tag == (int)TaskOutboundTypeEnum.Outbound - ? QueryStockInfoForRealTray(areaCode, roadways) - : QueryStockInfoForEmptyTray(areaCode, roadways); + ? QueryStockInfoForRealTrayAsync(areaCode, roadways).Result + : QueryStockInfoForEmptyTrayAsync(areaCode, roadways).Result; if (stockInfo == null) { return content.Error("搴撳瓨淇℃伅涓嶅瓨鍦�"); + } + + // 鏂板閲嶅浠诲姟鏍¢獙 + var hasTask = BaseDal.QueryFirst(x => x.PalletCode == stockInfo.PalletCode); + if (hasTask != null) + { + WMSTaskDTO taskDTO1 = CreateTaskDTO(hasTask); + return content.OK("宸插瓨鍦ㄧ┖鐩樺嚭搴撲换鍔�", data: taskDTO1); } // 鍒涘缓鏂颁换鍔″疄渚� @@ -783,26 +798,33 @@ /// <summary> /// 鏌ヨ瀹炵洏搴撳瓨淇℃伅 /// </summary> - private DtStockInfo QueryStockInfoForRealTray(string areaCode, List<string> roadways) + private async Task<DtStockInfo> QueryStockInfoForRealTrayAsync(string areaCode, List<string> roadways) { // TODO鏃堕棿鏍规嵁MOM绯荤粺閰嶇疆鐨勫嚭搴撴椂闂存潵鑾峰彇,鏆傛椂涓嶇煡閬揗OM杩斿洖鐨勬椂闂存槸浠�涔堟墍浠ヨ繖閲屾祴璇曟椂鍊欏湪鏀� - return _stockInfoRepository.Db.Queryable<DtStockInfo>().Where(x => x.AreaCode == areaCode && Convert.ToDateTime(x.LinedProcessFeedbackTime) < DateTime.Now && x.LocationInfo.LocationStatus == (int)LocationEnum.InStock && roadways.Contains(x.LocationInfo.RoadwayNo)) - .Includes(x => x.LocationInfo) - .Includes(x => x.StockInfoDetails) - .OrderBy(x => x.CreateDate) - .First(); + //return _stockInfoRepository.QueryFirstNavAsync(x => x.AreaCode == areaCode && Convert.ToDateTime(x.LinedProcessFeedbackTime).AddHours(Convert.ToDouble(x.SpecialParameterDuration)) < DateTime.Now + // && x.LocationInfo.LocationStatus == (int)LocationEnum.InStock && roadways.Contains(x.LocationInfo.RoadwayNo) && x.StockInfoDetails.Any(x => x.Status == (int)StockStateEmun.宸插叆搴�) && x.LocationInfo.LocationStatus == (int)LocationEnum.InStock).Result; + + var result = await _stockInfoRepository.QueryFirstNavAsync(x => + x.AreaCode == areaCode && + Convert.ToDateTime(x.LinedProcessFeedbackTime).AddHours(Convert.ToDouble(x.SpecialParameterDuration)) < DateTime.Now && + x.LocationInfo != null && x.LocationInfo.LocationStatus == (int)LocationEnum.InStock && + roadways.Contains(x.LocationInfo.RoadwayNo) && + x.StockInfoDetails != null && x.StockInfoDetails.Any(detail => detail.Status == (int)StockStateEmun.宸插叆搴�)); + return result; } /// <summary> /// 鏌ヨ绌虹洏搴撳瓨淇℃伅 /// </summary> - private DtStockInfo QueryStockInfoForEmptyTray(string areaCode, List<string> roadways) + private async Task<DtStockInfo> QueryStockInfoForEmptyTrayAsync(string areaCode, List<string> roadways) { - return _stockInfoRepository.Db.Queryable<DtStockInfo>().Where(x => x.AreaCode == areaCode && x.StockInfoDetails.Any(z => z.MaterielCode == "绌烘墭鐩�") && roadways.Contains(x.LocationInfo.RoadwayNo)) - .Includes(x => x.LocationInfo) - .Includes(x => x.StockInfoDetails) - .OrderBy(x => x.CreateDate) - .First(); + //return _stockInfoRepository.QueryFirstNavAsync(x => x.StockInfoDetails.Any(x => x.MaterielCode == "绌烘墭鐩�") && roadways.Contains(x.LocationInfo.RoadwayNo) && x.StockInfoDetails.Any(x => x.Status == (int)StockStateEmun.宸插叆搴�) && x.LocationInfo.LocationStatus == (int)LocationEnum.InStock).Result; + var result = await _stockInfoRepository.QueryFirstNavAsync(x => + x.StockInfoDetails != null && x.StockInfoDetails.Any(detail => detail.MaterielCode == "绌烘墭鐩�") && + roadways.Contains(x.LocationInfo.RoadwayNo) && + x.StockInfoDetails.Any(detail => detail.Status == (int)StockStateEmun.宸插叆搴�) && + x.LocationInfo != null && x.LocationInfo.LocationStatus == (int)LocationEnum.InStock); + return result; } /// <summary> @@ -1296,7 +1318,8 @@ WebResponseContent content = new WebResponseContent(); // 鑾峰彇鐩爣鍦板潃 - string ToAddress = await GetRoadWayAsync(process); + //string ToAddress = await GetRoadWayAsync(process); + string ToAddress = await GetRoadWayAsync(input, process); // 鍒涘缓鏂颁换鍔″疄渚� var task = new Dt_Task @@ -1386,7 +1409,7 @@ /// <param name="Direction">鏂瑰悜</param> /// <param name="area">鍏崇郴鍖哄煙</param> /// <returns></returns> - public async Task<string> GetRoadWayAsync(List<string> process) + public async Task<string> GetRoadWayAsync(RequestTaskDto input, List<string> process) { var minGroup = _locationRepository.QueryData(x => process.Contains(x.RoadwayNo) && x.LocationStatus == (int)LocationEnum.Free) .GroupBy(x => x.RoadwayNo) -- Gitblit v1.9.3