安灯大屏

This commit is contained in:
quowingwang 2026-01-06 14:17:48 +08:00
parent d7fc42b67c
commit 832d5944d5
4 changed files with 85 additions and 20 deletions

View File

@ -38,20 +38,6 @@ namespace ZR.Admin.WebApi.Controllers.andon
return SUCCESS(response);
}
/// <summary>
/// 查询报警记录列表
/// </summary>
/// <param name="parm"></param>
/// <returns></returns>
[HttpGet("listToWeek")]
[ActionPermissionFilter(Permission = "business:andonalarmrecord:list")]
public IActionResult QueryAndonAlarmRecordToWeek()
{
var response = _AndonAlarmRecordService.GetListToWeek();
return SUCCESS(response);
}
/// <summary>
/// 查询报警记录详情
/// </summary>
@ -202,5 +188,32 @@ namespace ZR.Admin.WebApi.Controllers.andon
return SUCCESS(response);
}
/// <summary>
/// 大屏表格-查询本周报警记录列表
/// </summary>
/// <param name="parm"></param>
/// <returns></returns>
[HttpGet("listToWeek")]
[ActionPermissionFilter(Permission = "business:andonalarmrecord:list")]
public IActionResult QueryAndonAlarmRecordToWeek()
{
var response = _AndonAlarmRecordService.GetListToWeek();
return SUCCESS(response);
}
/// <summary>
/// 大屏表格-统计本月各报警类型数量
/// </summary>
/// <param name="parm"></param>
/// <returns></returns>
[HttpGet("queryMonthAlarmCountByType")]
[ActionPermissionFilter(Permission = "business:andonalarmrecord:list")]
public ApiResult QueryMonthAlarmCountByType()
{
var response = _AndonAlarmRecordService.QueryMonthAlarmCountByType();
return response;
}
}
}

View File

@ -69,5 +69,14 @@ namespace ZR.Model.MES.andon.Dto
public string[] Area { get; set; }
public int AutoCount { get; set; }
public DateTime? ResponseTime { get; set; } // 对应 响应时间
public DateTime? HandleTime { get; set; } // 对应 处理时间
}
public class SelectOption
{
public string label { get; set; }
public string value { get; set; }
}
}

View File

@ -89,17 +89,59 @@ namespace ZR.Service.mes.andon
Calendar calendar = CultureInfo.CurrentCulture.Calendar;
// 获取当天是本周的第几天WeekOfDay1=周一7=周日)
int dayOfWeek = (int)calendar.GetDayOfWeek(now);
// 计算本周第一天(减去“当天在本周的偏移量 -1”
DateTime startTime = now.AddDays(-(dayOfWeek - 1)).Date; // 截断时分秒为00:00:00
var predicate = Expressionable.Create<AndonAlarmRecord>();
predicate.And(a => a.CreatedTime >= startTime && a.CreatedTime <= endTime);
List<AndonAlarmRecordDto> queryList = Queryable()
.Where(predicate.ToExpression())
.Select<AndonAlarmRecordDto>()
var queryList = Queryable()
.LeftJoin<AndonAlarmRecordProcess>((a, b) =>
a.AlarmCode == b.AlarmCode && b.Operate == "已响应")
.LeftJoin<AndonAlarmRecordProcess>((a, b, c) =>
a.AlarmCode == c.AlarmCode && c.Operate == "已处理")
.Where(a => a.CreatedTime >= startTime && a.CreatedTime <= endTime)
.Select((a, b, c) => new AndonAlarmRecordDto
{
Id = a.Id,
AlarmCode = a.AlarmCode,
AlarmTypeCode = a.AlarmTypeCode,
AlarmType = a.AlarmType,
AlarmInfo = a.AlarmInfo,
Receiver1 = a.Receiver1,
Receiver1Name = a.Receiver1Name,
Receiver2 = a.Receiver2,
Receiver2Name = a.Receiver2Name,
Receiver3 = a.Receiver3,
Receiver3Name = a.Receiver3Name,
Receiver4 = a.Receiver4,
Receiver4Name = a.Receiver4Name,
Sequence = a.Sequence,
DurationTime = a.DurationTime,
Status = a.Status,
HandleResult = a.HandleResult,
Remarks = a.Remarks,
CreatedBy = a.CreatedBy,
CreatedTime = a.CreatedTime,
UpdatedBy = a.UpdatedBy,
UpdatedTime = a.UpdatedTime,
Area1 = a.Area1,
Area2 = a.Area2,
AutoCount = a.AutoCount,
ResponseTime = b == null ? null : b.CreatedTime, // 已响应时间
HandleTime = c == null ? null : c.CreatedTime // 已处理时间
})
.ToList();
return queryList;
}
public ApiResult QueryMonthAlarmCountByType()
{
//查询本月的报警信息
DateTime now = DateTime.Now;
DateTime endTime = now;
DateTime startTime = new DateTime(now.Year, now.Month, 1).Date; // 截断时分秒为00:00:00
var predicate = Expressionable.Create<AndonAlarmRecord>();
predicate.And(a => a.CreatedTime >= startTime && a.CreatedTime <= endTime);
return null;
}
public PagedInfo<AndonAlarmRecordDto> GetListToday(AndonAlarmRecordQueryDto parm)
{
var predicate = Expressionable.Create<AndonAlarmRecord>();

View File

@ -14,6 +14,7 @@ namespace ZR.Service.mes.andon.Iservice
{
PagedInfo<AndonAlarmRecordDto> GetList(AndonAlarmRecordQueryDto parm);
List<AndonAlarmRecordDto> GetListToWeek();
ApiResult QueryMonthAlarmCountByType();
PagedInfo<AndonAlarmRecordDto> GetListToday(AndonAlarmRecordQueryDto parm);
AndonAlarmRecord GetInfo(int Id);