liuhr 2 years ago
commit b00586752d

Binary file not shown.

@ -126,6 +126,34 @@ namespace PVDEMCS.Controllers
return result; return result;
} }
/// <summary>
/// 获取设备状态记录统计分页列表
/// </summary>
/// <param name="equipmentName">设备名称</param>
/// <param name="equipmentCode">设备编号</param>
/// <param name="equipmentType">设备类型</param>
/// <param name="page">当前页</param>
/// <param name="size">页大小</param>
[HttpGet]
public Result<PagedList<EquipmentRecordTotal>> GetEquipmentRecordTotalPageList(string equipmentName, string equipmentCode, string equipmentType, int page, int size = 20)
{
var result = _equipmentRecordService.GetEquipmentRecordTotalPageList(equipmentName, equipmentCode, equipmentType, page, size);
return result;
}
/// <summary>
/// 获取设备状态记录统计列表
/// </summary>
/// <param name="equipmentName">设备名称</param>
/// <param name="equipmentCode">设备编号</param>
/// <param name="equipmentType">设备类型</param>
[HttpGet]
public Result<List<EquipmentRecordTotal>> GetEquipmentRecordTotalList(string equipmentName, string equipmentCode, string equipmentType)
{
var result = _equipmentRecordService.GetEquipmentRecordTotalList(equipmentName, equipmentCode, equipmentType);
return result;
}
/// <summary> /// <summary>
/// 获取设备总览 /// 获取设备总览
/// </summary> /// </summary>
@ -207,6 +235,28 @@ namespace PVDEMCS.Controllers
return new Result<List<EquipmentInfo>>(alarmList); return new Result<List<EquipmentInfo>>(alarmList);
} }
/// <summary>
/// 获取设备状态记录月统计
/// </summary>
/// <returns></returns>
[HttpGet]
public Result<List<EquipmentRecordStateMonthTotal>> GetEquipmentRecordStateMonthTotal()
{
var result = _equipmentRecordService.GetEquipmentRecordStateMonthTotal();
return result;
}
/// <summary>
/// 获取设备记录开炉次数月统计
/// </summary>
/// <returns></returns>
[HttpGet]
public Result<List<EquipmentRecordFurnaceMonthTotal>> GetEquipmentRecordFurnaceMonthTotal()
{
var result = _equipmentRecordService.GetEquipmentRecordFurnaceMonthTotal();
return result;
}
#endregion #endregion
} }

@ -80,6 +80,36 @@ namespace PVDEMCS.Services
/// <param name="endTime">结束时间</param> /// <param name="endTime">结束时间</param>
Result<List<EquipmentRecordDayTotal>> GetEquipmentRecordDayTotalList(string equipmentName, string equipmentCode, string equipmentType, DateTime begTime, DateTime endTime); Result<List<EquipmentRecordDayTotal>> GetEquipmentRecordDayTotalList(string equipmentName, string equipmentCode, string equipmentType, DateTime begTime, DateTime endTime);
/// <summary>
/// 获取设备状态记录统计分页列表
/// </summary>
/// <param name="equipmentName">设备名称</param>
/// <param name="equipmentCode">设备编号</param>
/// <param name="equipmentType">设备类型</param>
/// <param name="page">当前页</param>
/// <param name="size">页大小</param>
Result<PagedList<EquipmentRecordTotal>> GetEquipmentRecordTotalPageList(string equipmentName, string equipmentCode, string equipmentType, int page, int size);
/// <summary>
/// 获取设备状态记录统计列表
/// </summary>
/// <param name="equipmentName">设备名称</param>
/// <param name="equipmentCode">设备编号</param>
/// <param name="equipmentType">设备类型</param>
Result<List<EquipmentRecordTotal>> GetEquipmentRecordTotalList(string equipmentName, string equipmentCode, string equipmentType);
/// <summary>
/// 获取设备状态记录月统计
/// </summary>
/// <returns></returns>
Result<List<EquipmentRecordStateMonthTotal>> GetEquipmentRecordStateMonthTotal();
/// <summary>
/// 获取设备记录开炉次数月统计
/// </summary>
/// <returns></returns>
Result<List<EquipmentRecordFurnaceMonthTotal>> GetEquipmentRecordFurnaceMonthTotal();
#endregion #endregion
} }
} }

@ -61,7 +61,6 @@ namespace PVDEMCS.Services.Impl
/// </summary> /// </summary>
/// <param name="equipmentId">设备Id</param> /// <param name="equipmentId">设备Id</param>
/// <param name="state">设备状态,运行:Run待机:Stop报警:Alarm</param> /// <param name="state">设备状态,运行:Run待机:Stop报警:Alarm</param>
/// <param name="equipmentId">设备Id</param>
/// <returns></returns> /// <returns></returns>
public Result AddUpdateEquipmentRecord(string equipmentId, string state, DateTime dateTime) public Result AddUpdateEquipmentRecord(string equipmentId, string state, DateTime dateTime)
{ {
@ -114,6 +113,52 @@ namespace PVDEMCS.Services.Impl
return result; return result;
} }
/// <summary>
/// 获取设备状态记录统计分页列表
/// </summary>
/// <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)
{
var result = this._equipmentRecordRepository.GetEquipmentRecordTotalPageList(equipmentName, equipmentCode, equipmentType, page, size);
return result;
}
/// <summary>
/// 获取设备状态记录统计列表
/// </summary>
/// <param name="equipmentName">设备名称</param>
/// <param name="equipmentCode">设备编号</param>
/// <param name="equipmentType">设备类型</param>
public Result<List<EquipmentRecordTotal>> GetEquipmentRecordTotalList(string equipmentName, string equipmentCode, string equipmentType)
{
var result = this._equipmentRecordRepository.GetEquipmentRecordTotalList(equipmentName, equipmentCode, equipmentType);
return result;
}
/// <summary>
/// 获取设备状态记录月统计
/// </summary>
/// <returns></returns>
public Result<List<EquipmentRecordStateMonthTotal>> GetEquipmentRecordStateMonthTotal()
{
var result = this._equipmentRecordRepository.GetEquipmentRecordStateMonthTotal();
return result;
}
/// <summary>
/// 获取设备记录开炉次数月统计
/// </summary>
/// <returns></returns>
public Result<List<EquipmentRecordFurnaceMonthTotal>> GetEquipmentRecordFurnaceMonthTotal()
{
var result = this._equipmentRecordRepository.GetEquipmentRecordFurnaceMonthTotal();
return result;
}
#endregion #endregion
} }
} }

@ -8,50 +8,8 @@ namespace PVDEMCS.Services.Models;
/// 设备状态记录日统计 /// 设备状态记录日统计
/// ///
/// </summary> /// </summary>
public partial class EquipmentRecordDayTotal public partial class EquipmentRecordDayTotal: EquipmentRecordTotal
{ {
public string Id { get; set; }
/// <summary>
/// 设备Id
/// </summary>
public string EquipmentId { get; set; }
/// <summary>
/// 设备编码
/// </summary>
public string EquipmentCode { get; set; }
/// <summary>
/// 设备名称
/// </summary>
public string EquipmentName { get; set; }
/// <summary>
/// 设备类型IonbondBalzersCemecon
/// </summary>
public string EquipmentType { get; set; }
/// <summary>
/// 开炉次数
/// </summary>
public int FurnaceNum { get; set; }
/// <summary>
/// 总运行时长
/// </summary>
public decimal TotalRunningTime { get; set; }
/// <summary>
/// 总报警时长
/// </summary>
public decimal TotalAlarmTime { get; set; }
/// <summary>
/// 总待机时长
/// </summary>
public decimal TotalStopTime { get; set; }
/// <summary> /// <summary>
/// 日期 /// 日期
/// </summary> /// </summary>

@ -18,6 +18,6 @@
/// <summary> /// <summary>
/// 日期 /// 日期
/// </summary> /// </summary>
public DateTime? TotalMonth { get; set; } public string TotalMonth { get; set; }
} }
} }

@ -23,6 +23,6 @@
/// <summary> /// <summary>
/// 日期 /// 日期
/// </summary> /// </summary>
public DateTime? TotalMonth { get; set; } public string TotalMonth { get; set; }
} }
} }

@ -0,0 +1,56 @@

using System;
using System.Collections.Generic;
namespace PVDEMCS.Services.Models;
/// <summary>
/// 设备状态记录统计
///
/// </summary>
public partial class EquipmentRecordTotal
{
public string Id { get; set; }
/// <summary>
/// 设备Id
/// </summary>
public string EquipmentId { get; set; }
/// <summary>
/// 设备编码
/// </summary>
public string EquipmentCode { get; set; }
/// <summary>
/// 设备名称
/// </summary>
public string EquipmentName { get; set; }
/// <summary>
/// 设备类型IonbondBalzersCemecon
/// </summary>
public string EquipmentType { get; set; }
/// <summary>
/// 开炉次数
/// </summary>
public int FurnaceNum { get; set; }
/// <summary>
/// 总运行时长
/// </summary>
public decimal TotalRunningTime { get; set; }
/// <summary>
/// 总报警时长
/// </summary>
public decimal TotalAlarmTime { get; set; }
/// <summary>
/// 总待机时长
/// </summary>
public decimal TotalStopTime { get; set; }
}

@ -30,6 +30,8 @@ public partial class EFContext : DbContext
public virtual DbSet<EquipmentRecordEntity> EquipmentRecords { get; set; } public virtual DbSet<EquipmentRecordEntity> EquipmentRecords { get; set; }
public virtual DbSet<EquipmentRecordDayTotalEntity> EquipmentRecordDayTotals { get; set; }
public virtual DbSet<EquipmentRecordTotalEntity> EquipmentRecordTotals { get; set; } public virtual DbSet<EquipmentRecordTotalEntity> EquipmentRecordTotals { get; set; }
public virtual DbSet<SysConfigEntity> SysConfigs { get; set; } public virtual DbSet<SysConfigEntity> SysConfigs { get; set; }
@ -129,18 +131,18 @@ public partial class EFContext : DbContext
entity.Property(e => e.CreateAt).HasComment("创建时间"); entity.Property(e => e.CreateAt).HasComment("创建时间");
entity.Property(e => e.CreateBy).HasComment("创建者"); entity.Property(e => e.CreateBy).HasComment("创建者");
entity.Property(e => e.EndTime).HasComment("设备名称"); entity.Property(e => e.EndTime).HasComment("设备名称");
entity.Property(e => e.EquipmentId).HasComment("设备类型IonbondBalzersCemecon"); entity.Property(e => e.EquipmentId).HasComment("设备id");
entity.Property(e => e.StartTime).HasComment("设备编码"); entity.Property(e => e.StartTime).HasComment("设备编码");
entity.Property(e => e.State).HasComment("设备状态,1运行2待机3报警"); entity.Property(e => e.State).HasComment("设备状态,1运行2待机3报警");
entity.Property(e => e.UpdateAt).HasComment("修改时间"); entity.Property(e => e.UpdateAt).HasComment("修改时间");
entity.Property(e => e.UpdateBy).HasComment("修改者"); entity.Property(e => e.UpdateBy).HasComment("修改者");
}); });
modelBuilder.Entity<EquipmentRecordTotalEntity>(entity => modelBuilder.Entity<EquipmentRecordDayTotalEntity>(entity =>
{ {
entity.HasKey(e => e.Id).HasName("PRIMARY"); entity.HasKey(e => e.Id).HasName("PRIMARY");
entity.ToTable("equipment_record_total", tb => tb.HasComment("设备状态记录日统计\r\n")); entity.ToTable("equipment_record_day_total", tb => tb.HasComment("设备状态记录日统计\r\n"));
entity.Property(e => e.CreateAt).HasComment("创建时间"); entity.Property(e => e.CreateAt).HasComment("创建时间");
entity.Property(e => e.CreateBy).HasComment("创建者"); entity.Property(e => e.CreateBy).HasComment("创建者");
@ -154,6 +156,23 @@ public partial class EFContext : DbContext
entity.Property(e => e.UpdateBy).HasComment("修改者"); entity.Property(e => e.UpdateBy).HasComment("修改者");
}); });
modelBuilder.Entity<EquipmentRecordTotalEntity>(entity =>
{
entity.HasKey(e => e.Id).HasName("PRIMARY");
entity.ToTable("equipment_record_total", tb => tb.HasComment("设备状态记录统计\r\n"));
entity.Property(e => e.CreateAt).HasComment("创建时间");
entity.Property(e => e.CreateBy).HasComment("创建者");
entity.Property(e => e.EquipmentId).HasComment("设备Id");
entity.Property(e => e.FurnaceNum).HasComment("开炉次数");
entity.Property(e => e.TotalAlarmTime).HasComment("总报警时长");
entity.Property(e => e.TotalStopTime).HasComment("总待机时长");
entity.Property(e => e.TotalRunningTime).HasComment("总运行时长");
entity.Property(e => e.UpdateAt).HasComment("修改时间");
entity.Property(e => e.UpdateBy).HasComment("修改者");
});
modelBuilder.Entity<SysConfigEntity>(entity => modelBuilder.Entity<SysConfigEntity>(entity =>
{ {
entity.HasKey(e => e.Id).HasName("PRIMARY"); entity.HasKey(e => e.Id).HasName("PRIMARY");

@ -0,0 +1,60 @@
// <auto-generated> This file has been auto generated by EF Core Power Tools. </auto-generated>
#nullable disable
using Microsoft.EntityFrameworkCore;
using System;
using System.Collections.Generic;
using System.ComponentModel.DataAnnotations.Schema;
using System.ComponentModel.DataAnnotations;
using PVDEMCS.Services.Repositories.Entities.BaseEntity;
namespace PVDEMCS.Services.Repositories.Entities;
/// <summary>
/// 设备状态记录日统计
///
/// </summary>
[Table("equipment_record_day_total")]
public partial class EquipmentRecordDayTotalEntity : CUBaseEntity
{
/// <summary>
/// 设备Id
/// </summary>
[Required]
[Column("equipment_id")]
[StringLength(32)]
public string EquipmentId { get; set; }
/// <summary>
/// 开炉次数
/// </summary>
[Column("furnace_num")]
public int FurnaceNum { get; set; }
/// <summary>
/// 总运行时长
/// </summary>
[Column("total_running_time")]
[Precision(32, 2)]
public decimal TotalRunningTime { get; set; }
/// <summary>
/// 总报警时长
/// </summary>
[Column("total_alarm_time")]
[Precision(32, 2)]
public decimal TotalAlarmTime { get; set; }
/// <summary>
/// 总待机时长
/// </summary>
[Column("total_stop_time")]
[Precision(32, 2)]
public decimal TotalStopTime { get; set; }
/// <summary>
/// 日期
/// </summary>
[Column("total_day", TypeName = "datetime")]
public DateTime? TotalDay { get; set; }
}

@ -53,10 +53,4 @@ public partial class EquipmentRecordTotalEntity : CUBaseEntity
[Precision(32, 2)] [Precision(32, 2)]
public decimal TotalStopTime { get; set; } public decimal TotalStopTime { get; set; }
/// <summary>
/// 日期
/// </summary>
[Column("total_day", TypeName = "datetime")]
public DateTime? TotalDay { get; set; }
} }

@ -5,6 +5,7 @@ using PVDEMCS.Common;
using PVDEMCS.Common.DI; using PVDEMCS.Common.DI;
using PVDEMCS.Services.Models; using PVDEMCS.Services.Models;
using PVDEMCS.Services.Repositories.Entities; using PVDEMCS.Services.Repositories.Entities;
using Microsoft.EntityFrameworkCore;
namespace PVDEMCS.Services.Repositories namespace PVDEMCS.Services.Repositories
{ {
@ -74,7 +75,7 @@ namespace PVDEMCS.Services.Repositories
Result<PagedList<EquipmentRecordDayTotal>> GetEquipmentRecordDayTotalPageList(string equipmentName, string equipmentCode, string equipmentType, DateTime begTime, DateTime endTime, int page, int size); Result<PagedList<EquipmentRecordDayTotal>> GetEquipmentRecordDayTotalPageList(string equipmentName, string equipmentCode, string equipmentType, DateTime begTime, DateTime endTime, int page, int size);
/// <summary> /// <summary>
/// 获取设备状态记录统计列表 /// 获取设备状态记录统计列表
/// </summary> /// </summary>
/// <param name="equipmentName">设备名称</param> /// <param name="equipmentName">设备名称</param>
/// <param name="equipmentCode">设备编号</param> /// <param name="equipmentCode">设备编号</param>
@ -83,7 +84,35 @@ namespace PVDEMCS.Services.Repositories
/// <param name="endTime">结束时间</param> /// <param name="endTime">结束时间</param>
Result<List<EquipmentRecordDayTotal>> GetEquipmentRecordDayTotalList(string equipmentName, string equipmentCode, string equipmentType, DateTime begTime, DateTime endTime); Result<List<EquipmentRecordDayTotal>> GetEquipmentRecordDayTotalList(string equipmentName, string equipmentCode, string equipmentType, DateTime begTime, DateTime endTime);
/// <summary>
/// 获取设备状态记录统计分页列表
/// </summary>
/// <param name="equipmentName">设备名称</param>
/// <param name="equipmentCode">设备编号</param>
/// <param name="equipmentType">设备类型</param>
/// <param name="page">当前页</param>
/// <param name="size">页大小</param>
Result<PagedList<EquipmentRecordTotal>> GetEquipmentRecordTotalPageList(string equipmentName, string equipmentCode, string equipmentType, int page, int size);
/// <summary>
/// 获取设备状态记录统计列表
/// </summary>
/// <param name="equipmentName">设备名称</param>
/// <param name="equipmentCode">设备编号</param>
/// <param name="equipmentType">设备类型</param>
Result<List<EquipmentRecordTotal>> GetEquipmentRecordTotalList(string equipmentName, string equipmentCode, string equipmentType);
/// <summary>
/// 获取设备状态记录月统计
/// </summary>
/// <returns></returns>
Result<List<EquipmentRecordStateMonthTotal>> GetEquipmentRecordStateMonthTotal();
/// <summary>
/// 获取设备记录开炉次数月统计
/// </summary>
/// <returns></returns>
Result<List<EquipmentRecordFurnaceMonthTotal>> GetEquipmentRecordFurnaceMonthTotal();
#endregion #endregion
} }

@ -1,11 +1,13 @@
using AngleSharp.Css.Values; using AngleSharp.Css.Values;
using Masuit.Tools; using Masuit.Tools;
using Masuit.Tools.Models; using Masuit.Tools.Models;
using Microsoft.EntityFrameworkCore;
using PVDEMCS.Common; using PVDEMCS.Common;
using PVDEMCS.Common.Constant; using PVDEMCS.Common.Constant;
using PVDEMCS.Common.DI; using PVDEMCS.Common.DI;
using PVDEMCS.Services.Models; using PVDEMCS.Services.Models;
using PVDEMCS.Services.Repositories.Entities; using PVDEMCS.Services.Repositories.Entities;
using System.Text.RegularExpressions;
namespace PVDEMCS.Services.Repositories.Impl namespace PVDEMCS.Services.Repositories.Impl
{ {
@ -195,7 +197,7 @@ namespace PVDEMCS.Services.Repositories.Impl
} }
// //
var furnaceList = (from q in query 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 where q.State == EquipmentState.Run
select new 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) foreach (var item in list)
{ {
@ -274,7 +276,7 @@ namespace PVDEMCS.Services.Repositories.Impl
foreach (var equipmentId in notRecords.Select(f => f.EquipmentId).Distinct()) foreach (var equipmentId in notRecords.Select(f => f.EquipmentId).Distinct())
{ {
var records = total.Where(f => f.EquipmentId == equipmentId).ToList(); var records = total.Where(f => f.EquipmentId == equipmentId).ToList();
var item = new EquipmentRecordTotalEntity var item = new EquipmentRecordDayTotalEntity
{ {
EquipmentId = equipmentId, EquipmentId = equipmentId,
TotalDay = begDate TotalDay = begDate
@ -298,7 +300,7 @@ namespace PVDEMCS.Services.Repositories.Impl
} }
item.Create(); item.Create();
} }
context.EquipmentRecordTotals.Add(item); context.EquipmentRecordDayTotals.Add(item);
} }
context.SaveChanges(); context.SaveChanges();
@ -318,7 +320,7 @@ namespace PVDEMCS.Services.Repositories.Impl
#region 设备记录统计 #region 设备记录统计
/// <summary> /// <summary>
/// 获取设备状态记录统计分页列表 /// 获取设备状态记录统计分页列表
/// </summary> /// </summary>
/// <param name="equipmentName">设备名称</param> /// <param name="equipmentName">设备名称</param>
/// <param name="equipmentCode">设备编号</param> /// <param name="equipmentCode">设备编号</param>
@ -331,7 +333,7 @@ namespace PVDEMCS.Services.Repositories.Impl
{ {
using (var context = new EFContext()) 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); var pageList = query.OrderByDescending(f => f.EquipmentCode).ToPagedList(page, size);
@ -340,7 +342,7 @@ namespace PVDEMCS.Services.Repositories.Impl
} }
/// <summary> /// <summary>
/// 获取设备状态记录统计列表 /// 获取设备状态记录统计列表
/// </summary> /// </summary>
/// <param name="equipmentName">设备名称</param> /// <param name="equipmentName">设备名称</param>
/// <param name="equipmentCode">设备编号</param> /// <param name="equipmentCode">设备编号</param>
@ -351,7 +353,7 @@ namespace PVDEMCS.Services.Repositories.Impl
{ {
using (var context = new EFContext()) 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(); 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>
/// 获取设备状态记录月统计 /// 获取设备状态记录统计分页列表
/// </summary> /// </summary>
/// <returns></returns> /// <param name="equipmentName">设备名称</param>
public Result<List<EquipmentRecordStateMonthTotal>> GetEquipmentRecordStateMonthTotal() /// <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()) using (var context = new EFContext())
{ } {
var query = QueryEquipmentRecordTotal(equipmentName, equipmentCode, equipmentType, context);
return null; var pageList = query.OrderByDescending(f => f.EquipmentCode).ToPagedList(page, size);
return new Result<PagedList<EquipmentRecordTotal>>(pageList);
}
} }
/// <summary> /// <summary>
/// 获取设备记录开炉次数月统计 /// 获取设备状态记录统计列表
/// </summary> /// </summary>
/// <returns></returns> /// <param name="equipmentName">设备名称</param>
public Result<List<EquipmentRecordFurnaceMonthTotal>> GetEquipmentRecordFurnaceMonthTotal() /// <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 join equipment in context.EquipmentInfos.Where(f => !f.IsDelete) on recordTotal.EquipmentId equals equipment.Id
select new EquipmentRecordDayTotal select new EquipmentRecordTotal
{ {
Id = recordTotal.Id, Id = recordTotal.Id,
EquipmentName = equipment.EquipmentName, EquipmentName = equipment.EquipmentName,
@ -394,7 +447,6 @@ namespace PVDEMCS.Services.Repositories.Impl
TotalAlarmTime = recordTotal.TotalAlarmTime, TotalAlarmTime = recordTotal.TotalAlarmTime,
TotalStopTime = recordTotal.TotalStopTime, TotalStopTime = recordTotal.TotalStopTime,
TotalRunningTime = recordTotal.TotalRunningTime, TotalRunningTime = recordTotal.TotalRunningTime,
TotalDay = recordTotal.TotalDay,
}; };
if (!equipmentName.IsNullOrEmpty()) if (!equipmentName.IsNullOrEmpty())
@ -409,11 +461,74 @@ namespace PVDEMCS.Services.Repositories.Impl
{ {
query = query.Where(f => f.EquipmentType == equipmentType); query = query.Where(f => f.EquipmentType == equipmentType);
} }
query = query.Where(f => f.TotalDay >= begTime && f.TotalDay <= endTime);
return query; 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 #endregion
} }
} }

@ -11,7 +11,7 @@
Target Server Version : 80034 Target Server Version : 80034
File Encoding : 65001 File Encoding : 65001
Date: 30/10/2023 00:17:45 Date: 01/11/2023 15:24:59
*/ */
SET NAMES utf8mb4; SET NAMES utf8mb4;
@ -40,10 +40,6 @@ CREATE TABLE `device_info` (
PRIMARY KEY (`id`) USING BTREE PRIMARY KEY (`id`) USING BTREE
) ENGINE = InnoDB CHARACTER SET = utf8mb4 COLLATE = utf8mb4_0900_ai_ci COMMENT = 'PLC控制器' ROW_FORMAT = DYNAMIC; ) ENGINE = InnoDB CHARACTER SET = utf8mb4 COLLATE = utf8mb4_0900_ai_ci COMMENT = 'PLC控制器' ROW_FORMAT = DYNAMIC;
-- ----------------------------
-- Records of device_info
-- ----------------------------
-- ---------------------------- -- ----------------------------
-- Table structure for device_point -- Table structure for device_point
-- ---------------------------- -- ----------------------------
@ -69,10 +65,6 @@ CREATE TABLE `device_point` (
PRIMARY KEY (`id`) USING BTREE PRIMARY KEY (`id`) USING BTREE
) ENGINE = InnoDB CHARACTER SET = utf8mb4 COLLATE = utf8mb4_0900_ai_ci COMMENT = 'PLC点位' ROW_FORMAT = DYNAMIC; ) ENGINE = InnoDB CHARACTER SET = utf8mb4 COLLATE = utf8mb4_0900_ai_ci COMMENT = 'PLC点位' ROW_FORMAT = DYNAMIC;
-- ----------------------------
-- Records of device_point
-- ----------------------------
-- ---------------------------- -- ----------------------------
-- Table structure for equipment_info -- Table structure for equipment_info
-- ---------------------------- -- ----------------------------
@ -94,10 +86,6 @@ CREATE TABLE `equipment_info` (
PRIMARY KEY (`id`) USING BTREE PRIMARY KEY (`id`) USING BTREE
) ENGINE = InnoDB CHARACTER SET = utf8mb4 COLLATE = utf8mb4_0900_ai_ci COMMENT = '设备信息' ROW_FORMAT = Dynamic; ) ENGINE = InnoDB CHARACTER SET = utf8mb4 COLLATE = utf8mb4_0900_ai_ci COMMENT = '设备信息' ROW_FORMAT = Dynamic;
-- ----------------------------
-- Records of equipment_info
-- ----------------------------
-- ---------------------------- -- ----------------------------
-- Table structure for equipment_record -- Table structure for equipment_record
-- ---------------------------- -- ----------------------------
@ -116,8 +104,23 @@ CREATE TABLE `equipment_record` (
) ENGINE = InnoDB CHARACTER SET = utf8mb4 COLLATE = utf8mb4_0900_ai_ci COMMENT = '设备状态记录明显' ROW_FORMAT = Dynamic; ) ENGINE = InnoDB CHARACTER SET = utf8mb4 COLLATE = utf8mb4_0900_ai_ci COMMENT = '设备状态记录明显' ROW_FORMAT = Dynamic;
-- ---------------------------- -- ----------------------------
-- Records of equipment_record -- Table structure for equipment_record_day_total
-- ---------------------------- -- ----------------------------
DROP TABLE IF EXISTS `equipment_record_day_total`;
CREATE TABLE `equipment_record_day_total` (
`id` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NOT NULL,
`equipment_id` varchar(32) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NOT NULL COMMENT '设备Id',
`furnace_num` int NOT NULL COMMENT '开炉次数',
`total_running_time` decimal(32, 2) NOT NULL COMMENT '总运行时长',
`total_alarm_time` decimal(32, 2) NOT NULL COMMENT '总报警时长',
`total_stop_time` decimal(32, 2) NOT NULL COMMENT '总待机时长',
`total_day` datetime NULL DEFAULT NULL COMMENT '日期',
`create_by` varchar(32) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin NULL DEFAULT NULL COMMENT '创建者',
`create_at` datetime NULL DEFAULT NULL COMMENT '创建时间',
`update_by` varchar(32) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin NULL DEFAULT NULL COMMENT '修改者',
`update_at` datetime NULL DEFAULT NULL COMMENT '修改时间',
PRIMARY KEY (`id`) USING BTREE
) ENGINE = InnoDB CHARACTER SET = utf8mb4 COLLATE = utf8mb4_0900_ai_ci COMMENT = '设备状态记录日统计\r\n' ROW_FORMAT = Dynamic;
-- ---------------------------- -- ----------------------------
-- Table structure for equipment_record_total -- Table structure for equipment_record_total
@ -130,17 +133,12 @@ CREATE TABLE `equipment_record_total` (
`total_running_time` decimal(32, 2) NOT NULL COMMENT '总运行时长', `total_running_time` decimal(32, 2) NOT NULL COMMENT '总运行时长',
`total_alarm_time` decimal(32, 2) NOT NULL COMMENT '总报警时长', `total_alarm_time` decimal(32, 2) NOT NULL COMMENT '总报警时长',
`total_stop_time` decimal(32, 2) NOT NULL COMMENT '总待机时长', `total_stop_time` decimal(32, 2) NOT NULL COMMENT '总待机时长',
`total_day` datetime NULL DEFAULT NULL COMMENT '日期',
`create_by` varchar(32) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin NULL DEFAULT NULL COMMENT '创建者', `create_by` varchar(32) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin NULL DEFAULT NULL COMMENT '创建者',
`create_at` datetime NULL DEFAULT NULL COMMENT '创建时间', `create_at` datetime NULL DEFAULT NULL COMMENT '创建时间',
`update_by` varchar(32) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin NULL DEFAULT NULL COMMENT '修改者', `update_by` varchar(32) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin NULL DEFAULT NULL COMMENT '修改者',
`update_at` datetime NULL DEFAULT NULL COMMENT '修改时间', `update_at` datetime NULL DEFAULT NULL COMMENT '修改时间',
PRIMARY KEY (`id`) USING BTREE PRIMARY KEY (`id`) USING BTREE
) ENGINE = InnoDB CHARACTER SET = utf8mb4 COLLATE = utf8mb4_0900_ai_ci COMMENT = '设备状态记录日统计\r\n' ROW_FORMAT = Dynamic; ) ENGINE = InnoDB CHARACTER SET = utf8mb4 COLLATE = utf8mb4_0900_ai_ci COMMENT = '设备状态记录统计\r\n' ROW_FORMAT = Dynamic;
-- ----------------------------
-- Records of equipment_record_total
-- ----------------------------
-- ---------------------------- -- ----------------------------
-- Table structure for sys_config -- Table structure for sys_config
@ -161,11 +159,7 @@ CREATE TABLE `sys_config` (
`delete_by` varchar(32) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin NULL DEFAULT NULL COMMENT '删除者', `delete_by` varchar(32) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin NULL DEFAULT NULL COMMENT '删除者',
`delete_at` datetime NULL DEFAULT NULL COMMENT '删除时间', `delete_at` datetime NULL DEFAULT NULL COMMENT '删除时间',
PRIMARY KEY (`id`) USING BTREE PRIMARY KEY (`id`) USING BTREE
) ENGINE = InnoDB AUTO_INCREMENT = 120 CHARACTER SET = utf8mb4 COLLATE = utf8mb4_bin COMMENT = '参数配置表' ROW_FORMAT = DYNAMIC; ) ENGINE = InnoDB CHARACTER SET = utf8mb4 COLLATE = utf8mb4_bin COMMENT = '参数配置表' ROW_FORMAT = DYNAMIC;
-- ----------------------------
-- Records of sys_config
-- ----------------------------
-- ---------------------------- -- ----------------------------
-- Table structure for sys_user -- Table structure for sys_user
@ -194,10 +188,6 @@ CREATE TABLE `sys_user` (
`delete_by` varchar(32) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin NULL DEFAULT NULL COMMENT '删除者', `delete_by` varchar(32) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin NULL DEFAULT NULL COMMENT '删除者',
`delete_at` datetime NULL DEFAULT NULL COMMENT '删除时间', `delete_at` datetime NULL DEFAULT NULL COMMENT '删除时间',
PRIMARY KEY (`id`) USING BTREE PRIMARY KEY (`id`) USING BTREE
) ENGINE = InnoDB AUTO_INCREMENT = 4 CHARACTER SET = utf8mb4 COLLATE = utf8mb4_bin COMMENT = '用户信息表' ROW_FORMAT = DYNAMIC; ) ENGINE = InnoDB CHARACTER SET = utf8mb4 COLLATE = utf8mb4_bin COMMENT = '用户信息表' ROW_FORMAT = DYNAMIC;
-- ----------------------------
-- Records of sys_user
-- ----------------------------
SET FOREIGN_KEY_CHECKS = 1; SET FOREIGN_KEY_CHECKS = 1;

Loading…
Cancel
Save