安灯大屏
This commit is contained in:
parent
b99fbd477f
commit
8967e58bab
@ -215,5 +215,17 @@ namespace ZR.Admin.WebApi.Controllers.andon
|
||||
return response;
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// 大屏表格-统计两周报警信息折线
|
||||
/// </summary>
|
||||
/// <param name="parm"></param>
|
||||
/// <returns></returns>
|
||||
[HttpGet("queryWeekAlarmLineChart")]
|
||||
[ActionPermissionFilter(Permission = "business:andonalarmrecord:list")]
|
||||
public ApiResult QueryWeekAlarmLineChart()
|
||||
{
|
||||
var response = _AndonAlarmRecordService.QueryWeekAlarmLineChart();
|
||||
return response;
|
||||
}
|
||||
}
|
||||
}
|
||||
@ -151,6 +151,60 @@ namespace ZR.Service.mes.andon
|
||||
return new ApiResult(200,"",queryList);
|
||||
}
|
||||
|
||||
public ApiResult QueryWeekAlarmLineChart()
|
||||
{
|
||||
DateTime now = DateTime.Now;
|
||||
DateTime endTime = now;
|
||||
DateTime startTime = now.AddDays(-14).Date;
|
||||
|
||||
// 方法1:使用 ToDate 函数(确保按日期分组)
|
||||
var dbStats = Queryable()
|
||||
.Where(a => a.CreatedTime >= startTime && a.CreatedTime <= endTime)
|
||||
.LeftJoin<AndonAlarmRecordProcess>((a, p) =>
|
||||
a.AlarmCode == p.AlarmCode && p.Operate == "已处理")
|
||||
.GroupBy((a, p) => SqlFunc.ToDate(a.CreatedTime).ToString("yyyy/MM/dd")) // 直接使用 Date 属性
|
||||
.Select((a, p) => new
|
||||
{
|
||||
DayDate = SqlFunc.ToDate(a.CreatedTime).ToString("yyyy/MM/dd"), // 存储为 DateTime
|
||||
TotalCount = SqlFunc.AggregateCount(1),
|
||||
HandledCount = SqlFunc.AggregateCount(p.Id) // 更简洁的写法
|
||||
})
|
||||
.ToList();
|
||||
|
||||
// 生成完整的14天日期序列(包含开始日期)
|
||||
var allDates = Enumerable.Range(0, 14)
|
||||
.Select(days => startTime.AddDays(days+1))
|
||||
.ToList();
|
||||
|
||||
// 转换为字典,使用 ToString("yyyy/MM/dd") 作为 Key
|
||||
var statDict = dbStats.ToDictionary(
|
||||
x => x.DayDate,
|
||||
x => x
|
||||
);
|
||||
|
||||
var chartData = new
|
||||
{
|
||||
// X轴:日期格式统一为 yyyy/MM/dd
|
||||
xAxisData = allDates.Select(d => d.ToString("yyyy/MM/dd")).ToList(),
|
||||
|
||||
// Y轴1:总报警数量
|
||||
yAxisData1 = allDates.Select(date =>
|
||||
{
|
||||
var dateStr = date.ToString("yyyy/MM/dd");
|
||||
return statDict.ContainsKey(dateStr) ? statDict[dateStr].TotalCount : 0;
|
||||
}).ToList(),
|
||||
|
||||
// Y轴2:已处理报警数量
|
||||
yAxisData2 = allDates.Select(date =>
|
||||
{
|
||||
var dateStr = date.ToString("yyyy/MM/dd");
|
||||
return statDict.ContainsKey(dateStr) ? statDict[dateStr].HandledCount : 0;
|
||||
}).ToList(),
|
||||
};
|
||||
|
||||
return new ApiResult(200, "查询成功", chartData);
|
||||
}
|
||||
|
||||
public PagedInfo<AndonAlarmRecordDto> GetListToday(AndonAlarmRecordQueryDto parm)
|
||||
{
|
||||
var predicate = Expressionable.Create<AndonAlarmRecord>();
|
||||
|
||||
@ -15,6 +15,8 @@ namespace ZR.Service.mes.andon.Iservice
|
||||
PagedInfo<AndonAlarmRecordDto> GetList(AndonAlarmRecordQueryDto parm);
|
||||
List<AndonAlarmRecordDto> GetListToWeek();
|
||||
ApiResult QueryMonthAlarmCountByType();
|
||||
|
||||
ApiResult QueryWeekAlarmLineChart();
|
||||
PagedInfo<AndonAlarmRecordDto> GetListToday(AndonAlarmRecordQueryDto parm);
|
||||
AndonAlarmRecord GetInfo(int Id);
|
||||
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user