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);