From 9d6f25decd9d01a85fec002ecb59ecb742fe0e70 Mon Sep 17 00:00:00 2001 From: huangxiaoqiang <huangxiaoqiang@hnkhzn.com> Date: 星期四, 12 六月 2025 16:10:02 +0800 Subject: [PATCH] 添加火命令逻辑在 `CommonStackerCraneJob.cs` 和 `CommonStackerStationCraneJob.cs` 文件中,添加了 `FireCommand` 属性的设置逻辑,该属性的值根据 `task.TaskType` 判断,并增加了对任务类型组的判断,以确定是否为入库任务。 --- CodeManagement/WMS/WIDESEA_WMSServer/WIDESEA_StorageTaskServices/Task/Dt_TaskService.cs | 194 +++++++++++++++++++++++++++++++++++++++--------- 1 files changed, 158 insertions(+), 36 deletions(-) diff --git a/CodeManagement/WMS/WIDESEA_WMSServer/WIDESEA_StorageTaskServices/Task/Dt_TaskService.cs b/CodeManagement/WMS/WIDESEA_WMSServer/WIDESEA_StorageTaskServices/Task/Dt_TaskService.cs index 5ed18a6..7cf111a 100644 --- a/CodeManagement/WMS/WIDESEA_WMSServer/WIDESEA_StorageTaskServices/Task/Dt_TaskService.cs +++ b/CodeManagement/WMS/WIDESEA_WMSServer/WIDESEA_StorageTaskServices/Task/Dt_TaskService.cs @@ -1735,11 +1735,130 @@ return content.Error(ex.Message); } } + /// <summary> + /// 鑾峰彇璐т綅鐘舵�� + /// </summary> + /// <returns></returns> + public WebResponseContent GetStockQuantity() + { + WebResponseContent content = new WebResponseContent(); + try + { + var location = _locationRepository.Db.Queryable<DtLocationInfo>().ToList(); + return content.OK(data: location); + } + catch (Exception ex) + { + return content.Error(ex.Message); + } + } + public WebResponseContent Getproductionvolume() + { + WebResponseContent content = new WebResponseContent(); + try + { + var now = DateTime.Now; + var startOfDay = new DateTime(now.Year, now.Month, now.Day); + var endOfDay1 = startOfDay.AddDays(-7); + var taskHty = _task_HtyRepository.Db.Queryable<Dt_Task_Hty>().Where(it => it.CreateDate > endOfDay1).ToList(); + return content.OK(data: taskHty); + } + catch (Exception ex) + { + return content.Error(ex.Message); + } + } + + public WebResponseContent Getoutput() + { + WebResponseContent content = new WebResponseContent(); + try + { + var now = DateTime.Now; + var firstDayOfYear = new DateTime(now.Year, 1, 1); + var taskHty = _task_HtyRepository.Db.Queryable<Dt_Task_Hty>().Where(it => it.CreateDate > firstDayOfYear&&it.TaskType==100).ToList(); + return content.OK(data: taskHty); + } + catch (Exception ex) + { + return content.Error(ex.Message); + } + + } #endregion + public WebResponseContent GetTimeout() + { + WebResponseContent content = new WebResponseContent(); + try + { + var now = DateTime.Now; + // 浣跨敤Subtract鏂规硶 + var threeHoursAgo = now.Subtract(TimeSpan.FromHours(3)); + List<DtStockInfo> dtStocks = _stockInfoRepository.Db.Queryable<DtStockInfo>() + .Where(x => x.OutboundTime < threeHoursAgo).ToList(); + return content.OK1(total1: dtStocks.Count, data: dtStocks); + } + catch (Exception ex) + { + return content.Error(ex.Message); + } + + } + + public WebResponseContent Getproductionstatistics() + { + WebResponseContent content = new WebResponseContent(); + try + { + var now = DateTime.Now; + var thirtyDaysAgo = now.AddDays(-30); + var roadwayMappings = new Dictionary<string, string> { + { "JZ", "闈欑疆搴�" }, + { "CH", "闄堝寲搴�" }, + { "FR", "鍒嗗搴�" }, + { "GW", "楂樻俯搴�" }, + { "CW", "甯告俯搴�" } + }; + + var roadwayKeys = roadwayMappings.Keys.ToArray(); + + var taskHty = _task_HtyRepository.Db.Queryable<Dt_Task_Hty>() + .Where(it => + it.CreateDate >= thirtyDaysAgo && + it.CreateDate <= now && + it.TaskType == 100 && + roadwayKeys.Any(rk => it.Roadway.Contains(rk))) + .ToList() + .Select(t => new { + OriginalRoadway = t.Roadway, + MatchedKey = roadwayKeys.FirstOrDefault(rk => t.Roadway.Contains(rk)), + CreateDate = t.CreateDate + }) + .Where(t => t.MatchedKey != null) + .GroupBy(t => new { + RoadwayKey = t.MatchedKey, + Date = t.CreateDate.Date, + Hour = t.CreateDate.Hour + }) + .OrderByDescending(group => group.Key.Date) + .ThenByDescending(group => group.Key.Hour) + .Select(group => new { + Hour = $"{group.Key.Date:yyyy/M/d} {group.Key.Hour}:00", + Count = group.Count(), + Roadway = roadwayMappings[group.Key.RoadwayKey] // 鏄犲皠涓轰腑鏂囧悕绉� + }) + .ToList(); + return content.OK1(total1: taskHty.Count, data: taskHty); + } + catch (Exception ex) + { + return content.Error(ex.Message); + } + } #endregion 澶栭儴鎺ュ彛鏂规硶 #region 鍐呴儴璋冪敤鏂规硶 @@ -1790,20 +1909,23 @@ // 鍒涘缓鍘嗗彶浠诲姟瀹炰緥妯″瀷 try { - Dt_Task task = BaseDal.QueryFirst(x => x.TaskId == Convert.ToInt32(key[0])); - if (task == null) + foreach (var item in key) { - return content.Error("鏈壘鍒颁换鍔′俊鎭�!"); + Dt_Task task = BaseDal.QueryFirst(x => x.TaskId == Convert.ToInt32(key)); + if (task == null) + { + return content.Error("鏈壘鍒颁换鍔′俊鎭�!"); + } + var taskHtyNG = CreateHistoricalTask(task, true); + + // 鎵ц鏁版嵁搴撲簨鍔� + + // 娣诲姞鍘嗗彶浠诲姟 + var isTaskHtyAdd = _task_HtyRepository.AddData(taskHtyNG) > 0; + + // 鍒犻櫎浠诲姟鏁版嵁 + var isTaskDelete = BaseDal.Delete(task.TaskId); } - var taskHtyNG = CreateHistoricalTask(task, true); - - // 鎵ц鏁版嵁搴撲簨鍔� - - // 娣诲姞鍘嗗彶浠诲姟 - var isTaskHtyAdd = _task_HtyRepository.AddData(taskHtyNG) > 0; - - // 鍒犻櫎浠诲姟鏁版嵁 - var isTaskDelete = BaseDal.Delete(task.TaskId); return content.OK("鍒犻櫎鎴愬姛!"); } @@ -2033,32 +2155,32 @@ } #region 鏇存柊搴撳瓨淇℃伅锛堟殏鏃朵笉闇�瑕侊級 - if (stock.IsFull) - { - // 鏌ヨ绗﹀悎鏉′欢鐨勫簱瀛樹俊鎭� - var stocks = _stockInfoRepository.QueryData(x => x.AreaCode == stock.AreaCode && x.ProductionLine == stock.ProductionLine && x.SpecialParameterDuration != stock.SpecialParameterDuration); + //if (stock.IsFull) + //{ + // // 鏌ヨ绗﹀悎鏉′欢鐨勫簱瀛樹俊鎭� + // var stocks = _stockInfoRepository.QueryData(x => x.AreaCode == stock.AreaCode && x.ProductionLine == stock.ProductionLine && x.SpecialParameterDuration != stock.SpecialParameterDuration); - // 鏌ヨ浠诲姟淇℃伅 - var tasks = BaseDal.QueryData(x => x.PalletCode != stock.PalletCode && x.ProductionLine == stock.ProductionLine).Select(x => x.PalletCode).ToList(); + // // 鏌ヨ浠诲姟淇℃伅 + // var tasks = BaseDal.QueryData(x => x.PalletCode != stock.PalletCode && x.ProductionLine == stock.ProductionLine).Select(x => x.PalletCode).ToList(); - if (stocks != null && stocks.Count > 0) - { - // 杩囨护鍑洪渶瑕佹洿鏂扮殑搴撳瓨淇℃伅 - var stocksToUpdate = stocks.Where(item => !tasks.Contains(item.PalletCode)).ToList(); - foreach (var item in stocksToUpdate) - { - // 鏇存柊搴撳瓨淇℃伅鐨勭壒瀹氬弬鏁� - item.SpecialParameterDuration = stock.SpecialParameterDuration; - item.ParameterInfos = stock.ParameterInfos; - item.OutboundTime = Convert.ToDateTime(item.LinedProcessFeedbackTime == null ? item.CreateDate : item.LinedProcessFeedbackTime).AddHours(Convert.ToDouble(stock.SpecialParameterDuration)); - } - if (stocksToUpdate.Count > 0) - { - // 寮傛鏇存柊搴撳瓨淇℃伅 - var isUpdates = await _stockInfoRepository.UpdateDataAsync(stocksToUpdate); - } - } - } + // if (stocks != null && stocks.Count > 0) + // { + // // 杩囨护鍑洪渶瑕佹洿鏂扮殑搴撳瓨淇℃伅 + // var stocksToUpdate = stocks.Where(item => !tasks.Contains(item.PalletCode)).ToList(); + // foreach (var item in stocksToUpdate) + // { + // // 鏇存柊搴撳瓨淇℃伅鐨勭壒瀹氬弬鏁� + // item.SpecialParameterDuration = stock.SpecialParameterDuration; + // item.ParameterInfos = stock.ParameterInfos; + // item.OutboundTime = Convert.ToDateTime(item.LinedProcessFeedbackTime == null ? item.CreateDate : item.LinedProcessFeedbackTime).AddHours(Convert.ToDouble(stock.SpecialParameterDuration)); + // } + // if (stocksToUpdate.Count > 0) + // { + // // 寮傛鏇存柊搴撳瓨淇℃伅 + // var isUpdates = await _stockInfoRepository.UpdateDataAsync(stocksToUpdate); + // } + // } + //} #endregion // 娣诲姞鍘嗗彶浠诲姟 -- Gitblit v1.9.3