diff --git a/ZR.Admin.WebApi/Controllers/mes/andon/AndonAlarmRecordController.cs b/ZR.Admin.WebApi/Controllers/mes/andon/AndonAlarmRecordController.cs index a5116b81..e5936fd5 100644 --- a/ZR.Admin.WebApi/Controllers/mes/andon/AndonAlarmRecordController.cs +++ b/ZR.Admin.WebApi/Controllers/mes/andon/AndonAlarmRecordController.cs @@ -38,20 +38,6 @@ namespace ZR.Admin.WebApi.Controllers.andon return SUCCESS(response); } - - /// - /// 查询报警记录列表 - /// - /// - /// - [HttpGet("listToWeek")] - [ActionPermissionFilter(Permission = "business:andonalarmrecord:list")] - public IActionResult QueryAndonAlarmRecordToWeek() - { - var response = _AndonAlarmRecordService.GetListToWeek(); - return SUCCESS(response); - } - /// /// 查询报警记录详情 /// @@ -202,5 +188,32 @@ namespace ZR.Admin.WebApi.Controllers.andon return SUCCESS(response); } + + /// + /// 大屏表格-查询本周报警记录列表 + /// + /// + /// + [HttpGet("listToWeek")] + [ActionPermissionFilter(Permission = "business:andonalarmrecord:list")] + public IActionResult QueryAndonAlarmRecordToWeek() + { + var response = _AndonAlarmRecordService.GetListToWeek(); + return SUCCESS(response); + } + + /// + /// 大屏表格-统计本月各报警类型数量 + /// + /// + /// + [HttpGet("queryMonthAlarmCountByType")] + [ActionPermissionFilter(Permission = "business:andonalarmrecord:list")] + public ApiResult QueryMonthAlarmCountByType() + { + var response = _AndonAlarmRecordService.QueryMonthAlarmCountByType(); + return response; + } + } } \ No newline at end of file diff --git a/ZR.Model/MES/andon/Dto/AndonAlarmRecordDto.cs b/ZR.Model/MES/andon/Dto/AndonAlarmRecordDto.cs index 6b70763f..766e97e2 100644 --- a/ZR.Model/MES/andon/Dto/AndonAlarmRecordDto.cs +++ b/ZR.Model/MES/andon/Dto/AndonAlarmRecordDto.cs @@ -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; } } } \ No newline at end of file diff --git a/ZR.Service/mes/andon/AndonAlarmRecordService.cs b/ZR.Service/mes/andon/AndonAlarmRecordService.cs index d8e93e2a..d5979348 100644 --- a/ZR.Service/mes/andon/AndonAlarmRecordService.cs +++ b/ZR.Service/mes/andon/AndonAlarmRecordService.cs @@ -89,17 +89,59 @@ namespace ZR.Service.mes.andon Calendar calendar = CultureInfo.CurrentCulture.Calendar; // 获取当天是本周的第几天(WeekOfDay:1=周一,7=周日) int dayOfWeek = (int)calendar.GetDayOfWeek(now); - // 计算本周第一天(减去“当天在本周的偏移量 -1”) DateTime startTime = now.AddDays(-(dayOfWeek - 1)).Date; // 截断时分秒为00:00:00 - var predicate = Expressionable.Create(); - predicate.And(a => a.CreatedTime >= startTime && a.CreatedTime <= endTime); - List queryList = Queryable() - .Where(predicate.ToExpression()) - .Select() + var queryList = Queryable() + .LeftJoin((a, b) => + a.AlarmCode == b.AlarmCode && b.Operate == "已响应") + .LeftJoin((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(); + predicate.And(a => a.CreatedTime >= startTime && a.CreatedTime <= endTime); + + return null; + } + public PagedInfo GetListToday(AndonAlarmRecordQueryDto parm) { var predicate = Expressionable.Create(); diff --git a/ZR.Service/mes/andon/IService/IAndonAlarmRecordService.cs b/ZR.Service/mes/andon/IService/IAndonAlarmRecordService.cs index 01090434..5bd8dc1a 100644 --- a/ZR.Service/mes/andon/IService/IAndonAlarmRecordService.cs +++ b/ZR.Service/mes/andon/IService/IAndonAlarmRecordService.cs @@ -14,6 +14,7 @@ namespace ZR.Service.mes.andon.Iservice { PagedInfo GetList(AndonAlarmRecordQueryDto parm); List GetListToWeek(); + ApiResult QueryMonthAlarmCountByType(); PagedInfo GetListToday(AndonAlarmRecordQueryDto parm); AndonAlarmRecord GetInfo(int Id);