|
|
|
@ -1,11 +1,13 @@
|
|
|
|
|
using AngleSharp.Css.Values;
|
|
|
|
|
using Masuit.Tools;
|
|
|
|
|
using Masuit.Tools.Models;
|
|
|
|
|
using Microsoft.EntityFrameworkCore;
|
|
|
|
|
using PVDEMCS.Common;
|
|
|
|
|
using PVDEMCS.Common.Constant;
|
|
|
|
|
using PVDEMCS.Common.DI;
|
|
|
|
|
using PVDEMCS.Services.Models;
|
|
|
|
|
using PVDEMCS.Services.Repositories.Entities;
|
|
|
|
|
using System.Text.RegularExpressions;
|
|
|
|
|
|
|
|
|
|
namespace PVDEMCS.Services.Repositories.Impl
|
|
|
|
|
{
|
|
|
|
@ -195,7 +197,7 @@ namespace PVDEMCS.Services.Repositories.Impl
|
|
|
|
|
}
|
|
|
|
|
//
|
|
|
|
|
var furnaceList = (from q in query
|
|
|
|
|
join e in context.EquipmentInfos.Where(f=>!f.IsDelete) on q.EquipmentId equals e.Id
|
|
|
|
|
join e in context.EquipmentInfos.Where(f => !f.IsDelete) on q.EquipmentId equals e.Id
|
|
|
|
|
where q.State == EquipmentState.Run
|
|
|
|
|
select new
|
|
|
|
|
{
|
|
|
|
@ -244,7 +246,7 @@ namespace PVDEMCS.Services.Repositories.Impl
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
//记录统计时间
|
|
|
|
|
var list = context.EquipmentRecordTotals.Where(f => f.TotalDay == begDate).ToList();
|
|
|
|
|
var list = context.EquipmentRecordDayTotals.Where(f => f.TotalDay == begDate).ToList();
|
|
|
|
|
//有记录
|
|
|
|
|
foreach (var item in list)
|
|
|
|
|
{
|
|
|
|
@ -274,7 +276,7 @@ namespace PVDEMCS.Services.Repositories.Impl
|
|
|
|
|
foreach (var equipmentId in notRecords.Select(f => f.EquipmentId).Distinct())
|
|
|
|
|
{
|
|
|
|
|
var records = total.Where(f => f.EquipmentId == equipmentId).ToList();
|
|
|
|
|
var item = new EquipmentRecordTotalEntity
|
|
|
|
|
var item = new EquipmentRecordDayTotalEntity
|
|
|
|
|
{
|
|
|
|
|
EquipmentId = equipmentId,
|
|
|
|
|
TotalDay = begDate
|
|
|
|
@ -298,7 +300,7 @@ namespace PVDEMCS.Services.Repositories.Impl
|
|
|
|
|
}
|
|
|
|
|
item.Create();
|
|
|
|
|
}
|
|
|
|
|
context.EquipmentRecordTotals.Add(item);
|
|
|
|
|
context.EquipmentRecordDayTotals.Add(item);
|
|
|
|
|
}
|
|
|
|
|
context.SaveChanges();
|
|
|
|
|
|
|
|
|
@ -318,7 +320,7 @@ namespace PVDEMCS.Services.Repositories.Impl
|
|
|
|
|
#region 设备记录统计
|
|
|
|
|
|
|
|
|
|
/// <summary>
|
|
|
|
|
/// 获取设备状态记录统计分页列表
|
|
|
|
|
/// 获取设备状态记录日统计分页列表
|
|
|
|
|
/// </summary>
|
|
|
|
|
/// <param name="equipmentName">设备名称</param>
|
|
|
|
|
/// <param name="equipmentCode">设备编号</param>
|
|
|
|
@ -331,7 +333,7 @@ namespace PVDEMCS.Services.Repositories.Impl
|
|
|
|
|
{
|
|
|
|
|
using (var context = new EFContext())
|
|
|
|
|
{
|
|
|
|
|
var query = QueryEquipmentRecordTotal(equipmentName, equipmentCode, equipmentType, begTime, endTime, context);
|
|
|
|
|
var query = QueryEquipmentRecordDayTotal(equipmentName, equipmentCode, equipmentType, begTime, endTime, context);
|
|
|
|
|
|
|
|
|
|
var pageList = query.OrderByDescending(f => f.EquipmentCode).ToPagedList(page, size);
|
|
|
|
|
|
|
|
|
@ -340,7 +342,7 @@ namespace PVDEMCS.Services.Repositories.Impl
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
/// <summary>
|
|
|
|
|
/// 获取设备状态记录统计列表
|
|
|
|
|
/// 获取设备状态记录日统计列表
|
|
|
|
|
/// </summary>
|
|
|
|
|
/// <param name="equipmentName">设备名称</param>
|
|
|
|
|
/// <param name="equipmentCode">设备编号</param>
|
|
|
|
@ -351,7 +353,7 @@ namespace PVDEMCS.Services.Repositories.Impl
|
|
|
|
|
{
|
|
|
|
|
using (var context = new EFContext())
|
|
|
|
|
{
|
|
|
|
|
var query = QueryEquipmentRecordTotal(equipmentName, equipmentCode, equipmentType, begTime, endTime, context);
|
|
|
|
|
var query = QueryEquipmentRecordDayTotal(equipmentName, equipmentCode, equipmentType, begTime, endTime, context);
|
|
|
|
|
|
|
|
|
|
var pageList = query.OrderByDescending(f => f.EquipmentCode).ToList();
|
|
|
|
|
|
|
|
|
@ -359,32 +361,83 @@ namespace PVDEMCS.Services.Repositories.Impl
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
private IQueryable<EquipmentRecordDayTotal> QueryEquipmentRecordDayTotal(string equipmentName, string equipmentCode, string equipmentType, DateTime begTime, DateTime endTime, EFContext context)
|
|
|
|
|
{
|
|
|
|
|
var query = from recordTotal in context.EquipmentRecordDayTotals
|
|
|
|
|
join equipment in context.EquipmentInfos.Where(f => !f.IsDelete) on recordTotal.EquipmentId equals equipment.Id
|
|
|
|
|
select new EquipmentRecordDayTotal
|
|
|
|
|
{
|
|
|
|
|
Id = recordTotal.Id,
|
|
|
|
|
EquipmentName = equipment.EquipmentName,
|
|
|
|
|
EquipmentCode = equipment.EquipmentCode,
|
|
|
|
|
EquipmentType = equipment.EquipmentType,
|
|
|
|
|
FurnaceNum = recordTotal.FurnaceNum,
|
|
|
|
|
TotalAlarmTime = recordTotal.TotalAlarmTime,
|
|
|
|
|
TotalStopTime = recordTotal.TotalStopTime,
|
|
|
|
|
TotalRunningTime = recordTotal.TotalRunningTime,
|
|
|
|
|
TotalDay = recordTotal.TotalDay,
|
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
if (!equipmentName.IsNullOrEmpty())
|
|
|
|
|
{
|
|
|
|
|
query = query.Where(f => f.EquipmentName.StartsWith(equipmentName));
|
|
|
|
|
}
|
|
|
|
|
if (!equipmentCode.IsNullOrEmpty())
|
|
|
|
|
{
|
|
|
|
|
query = query.Where(f => f.EquipmentCode.StartsWith(equipmentCode));
|
|
|
|
|
}
|
|
|
|
|
if (!equipmentType.IsNullOrEmpty())
|
|
|
|
|
{
|
|
|
|
|
query = query.Where(f => f.EquipmentType == equipmentType);
|
|
|
|
|
}
|
|
|
|
|
query = query.Where(f => f.TotalDay >= begTime && f.TotalDay <= endTime);
|
|
|
|
|
|
|
|
|
|
return query;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
/// <summary>
|
|
|
|
|
/// 获取设备状态记录月统计
|
|
|
|
|
/// 获取设备状态记录统计分页列表
|
|
|
|
|
/// </summary>
|
|
|
|
|
/// <returns></returns>
|
|
|
|
|
public Result<List<EquipmentRecordStateMonthTotal>> GetEquipmentRecordStateMonthTotal()
|
|
|
|
|
/// <param name="equipmentName">设备名称</param>
|
|
|
|
|
/// <param name="equipmentCode">设备编号</param>
|
|
|
|
|
/// <param name="equipmentType">设备类型</param>
|
|
|
|
|
/// <param name="page">当前页</param>
|
|
|
|
|
/// <param name="size">页大小</param>
|
|
|
|
|
public Result<PagedList<EquipmentRecordTotal>> GetEquipmentRecordTotalPageList(string equipmentName, string equipmentCode, string equipmentType, int page, int size)
|
|
|
|
|
{
|
|
|
|
|
using (var context = new EFContext())
|
|
|
|
|
{ }
|
|
|
|
|
{
|
|
|
|
|
var query = QueryEquipmentRecordTotal(equipmentName, equipmentCode, equipmentType, context);
|
|
|
|
|
|
|
|
|
|
var pageList = query.OrderByDescending(f => f.EquipmentCode).ToPagedList(page, size);
|
|
|
|
|
|
|
|
|
|
return null;
|
|
|
|
|
return new Result<PagedList<EquipmentRecordTotal>>(pageList);
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
/// <summary>
|
|
|
|
|
/// 获取设备记录开炉次数月统计
|
|
|
|
|
/// 获取设备状态记录统计列表
|
|
|
|
|
/// </summary>
|
|
|
|
|
/// <returns></returns>
|
|
|
|
|
public Result<List<EquipmentRecordFurnaceMonthTotal>> GetEquipmentRecordFurnaceMonthTotal()
|
|
|
|
|
/// <param name="equipmentName">设备名称</param>
|
|
|
|
|
/// <param name="equipmentCode">设备编号</param>
|
|
|
|
|
/// <param name="equipmentType">设备类型</param>
|
|
|
|
|
public Result<List<EquipmentRecordTotal>> GetEquipmentRecordTotalList(string equipmentName, string equipmentCode, string equipmentType)
|
|
|
|
|
{
|
|
|
|
|
return null;
|
|
|
|
|
using (var context = new EFContext())
|
|
|
|
|
{
|
|
|
|
|
var query = QueryEquipmentRecordTotal(equipmentName, equipmentCode, equipmentType, context);
|
|
|
|
|
|
|
|
|
|
var pageList = query.OrderByDescending(f => f.EquipmentCode).ToList();
|
|
|
|
|
|
|
|
|
|
return new Result<List<EquipmentRecordTotal>>(pageList);
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
private IQueryable<EquipmentRecordDayTotal> QueryEquipmentRecordTotal(string equipmentName, string equipmentCode, string equipmentType, DateTime begTime, DateTime endTime, EFContext context)
|
|
|
|
|
private IQueryable<EquipmentRecordTotal> QueryEquipmentRecordTotal(string equipmentName, string equipmentCode, string equipmentType, EFContext context)
|
|
|
|
|
{
|
|
|
|
|
var query = from recordTotal in context.EquipmentRecordTotals
|
|
|
|
|
var query = from recordTotal in context.EquipmentRecordDayTotals
|
|
|
|
|
join equipment in context.EquipmentInfos.Where(f => !f.IsDelete) on recordTotal.EquipmentId equals equipment.Id
|
|
|
|
|
select new EquipmentRecordDayTotal
|
|
|
|
|
select new EquipmentRecordTotal
|
|
|
|
|
{
|
|
|
|
|
Id = recordTotal.Id,
|
|
|
|
|
EquipmentName = equipment.EquipmentName,
|
|
|
|
@ -394,7 +447,6 @@ namespace PVDEMCS.Services.Repositories.Impl
|
|
|
|
|
TotalAlarmTime = recordTotal.TotalAlarmTime,
|
|
|
|
|
TotalStopTime = recordTotal.TotalStopTime,
|
|
|
|
|
TotalRunningTime = recordTotal.TotalRunningTime,
|
|
|
|
|
TotalDay = recordTotal.TotalDay,
|
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
if (!equipmentName.IsNullOrEmpty())
|
|
|
|
@ -409,11 +461,74 @@ namespace PVDEMCS.Services.Repositories.Impl
|
|
|
|
|
{
|
|
|
|
|
query = query.Where(f => f.EquipmentType == equipmentType);
|
|
|
|
|
}
|
|
|
|
|
query = query.Where(f => f.TotalDay >= begTime && f.TotalDay <= endTime);
|
|
|
|
|
|
|
|
|
|
return query;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
/// <summary>
|
|
|
|
|
/// 获取设备状态记录月统计
|
|
|
|
|
/// </summary>
|
|
|
|
|
/// <returns></returns>
|
|
|
|
|
public Result<List<EquipmentRecordStateMonthTotal>> GetEquipmentRecordStateMonthTotal()
|
|
|
|
|
{
|
|
|
|
|
//获取今年第一天和最后一天
|
|
|
|
|
var begDate = DateTime.Now.ToString("yyyy-01-01");
|
|
|
|
|
var endDate = DateTime.Parse(begDate).AddYears(1).AddSeconds(-1).ToString("yyyy-01-01");
|
|
|
|
|
using (var context = new EFContext())
|
|
|
|
|
{
|
|
|
|
|
var list = context.Database.SqlQuery<EquipmentRecordStateMonthTotal>(@$"SELECT
|
|
|
|
|
SUM(total_running_time) AS TotalRunningTime,
|
|
|
|
|
SUM(total_alarm_time) AS TotalAlarmTime,
|
|
|
|
|
SUM(total_stop_time) AS TotalStopTime,
|
|
|
|
|
MONTH(total_day) AS TotalMonth
|
|
|
|
|
FROM
|
|
|
|
|
|
|
|
|
|
equipment_record_total
|
|
|
|
|
WHERE
|
|
|
|
|
|
|
|
|
|
total_day >= '{begDate}'
|
|
|
|
|
|
|
|
|
|
AND total_day <= '{endDate}'
|
|
|
|
|
GROUP BY
|
|
|
|
|
TotalMonth").ToList();
|
|
|
|
|
|
|
|
|
|
return new Result<List<EquipmentRecordStateMonthTotal>>(list);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
/// <summary>
|
|
|
|
|
/// 获取设备记录开炉次数月统计
|
|
|
|
|
/// </summary>
|
|
|
|
|
/// <returns></returns>
|
|
|
|
|
public Result<List<EquipmentRecordFurnaceMonthTotal>> GetEquipmentRecordFurnaceMonthTotal()
|
|
|
|
|
{
|
|
|
|
|
//获取今年第一天和最后一天
|
|
|
|
|
var begDate = DateTime.Now.ToString("yyyy-01-01");
|
|
|
|
|
var endDate = DateTime.Parse(begDate).AddYears(1).AddSeconds(-1).ToString("yyyy-01-01");
|
|
|
|
|
using (var context = new EFContext())
|
|
|
|
|
{
|
|
|
|
|
var list = context.Database.SqlQuery<EquipmentRecordFurnaceMonthTotal>(@$"SELECT
|
|
|
|
|
SUM( furnace_num ) AS FurnaceNum,
|
|
|
|
|
equipment_info.equipment_type AS EquipmentType,
|
|
|
|
|
MONTH ( total_day ) AS TotalMonth
|
|
|
|
|
FROM
|
|
|
|
|
equipment_record_total
|
|
|
|
|
JOIN equipment_info ON equipment_record_total.equipment_id = equipment_info.id
|
|
|
|
|
WHERE
|
|
|
|
|
total_day >= '{begDate}'
|
|
|
|
|
AND total_day <= '{endDate}'
|
|
|
|
|
GROUP BY
|
|
|
|
|
TotalMonth,
|
|
|
|
|
EquipmentType").ToList();
|
|
|
|
|
|
|
|
|
|
return new Result<List<EquipmentRecordFurnaceMonthTotal>>(list);
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
#endregion
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|