| | |
| | | |
| | | } |
| | | #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 内部调用方法 |