设备维修统计报表

This commit is contained in:
“hsc”
2026-09-02 13:36:52 +08:00
parent cfa8e78d33
commit 38cd47410c
5 changed files with 786 additions and 4 deletions
+212
View File
@@ -0,0 +1,212 @@
namespace Model.Dto.Inspection
{
#region
/// <summary>
/// 设备统计概览
/// </summary>
public class DeviceStatisticsDto
{
/// <summary>设备总数</summary>
public int Total { get; set; }
/// <summary>在用数量</summary>
public int InUse { get; set; }
/// <summary>闲置数量</summary>
public int Idle { get; set; }
/// <summary>报废数量(已处置+待处置)</summary>
public int Scrapped { get; set; }
/// <summary>维修中数量</summary>
public int Repairing { get; set; }
/// <summary>已停用数量</summary>
public int Suspended { get; set; }
/// <summary>其他数量(待验收/已借出/入库)</summary>
public int Other { get; set; }
}
/// <summary>
/// 按分类统计
/// </summary>
public class CategoryStatisticsDto
{
/// <summary>分类名称</summary>
public string? CategoryName { get; set; }
/// <summary>设备数量</summary>
public int Count { get; set; }
}
/// <summary>
/// 按部门统计
/// </summary>
public class DepartmentStatisticsDto
{
/// <summary>部门名称</summary>
public string? Department { get; set; }
/// <summary>设备数量</summary>
public int Count { get; set; }
}
#endregion
#region
/// <summary>
/// 设备维护统计
/// </summary>
public class MaintenanceStatisticsDto
{
/// <summary>设备总数</summary>
public int Total { get; set; }
/// <summary>校准正常数量</summary>
public int CalibrationNormal { get; set; }
/// <summary>校准超期数量</summary>
public int CalibrationOverdue { get; set; }
/// <summary>保养正常数量</summary>
public int MaintenanceNormal { get; set; }
/// <summary>保养超期数量</summary>
public int MaintenanceOverdue { get; set; }
/// <summary>校准及时率(%</summary>
public decimal CalibrationTimelyRate { get; set; }
/// <summary>保养及时率(%</summary>
public decimal MaintenanceTimelyRate { get; set; }
}
/// <summary>
/// 维护超期设备明细
/// </summary>
public class MaintenanceOverdueDetailDto
{
/// <summary>设备编号</summary>
public string? EquipmentCode { get; set; }
/// <summary>设备名称</summary>
public string? EquipmentName { get; set; }
/// <summary>部门</summary>
public string? Department { get; set; }
/// <summary>超期类型(校准超期/保养超期)</summary>
public string? OverdueType { get; set; }
/// <summary>到期日期</summary>
public DateTime? ExpireDate { get; set; }
/// <summary>超期天数</summary>
public int OverdueDays { get; set; }
}
#endregion
#region
/// <summary>
/// 维修统计概览
/// </summary>
public class RepairStatisticsDto
{
/// <summary>维修记录总数</summary>
public int Total { get; set; }
/// <summary>已完成数量</summary>
public int Completed { get; set; }
/// <summary>维修中数量</summary>
public int InProgress { get; set; }
/// <summary>待维修数量</summary>
public int Pending { get; set; }
/// <summary>平均维修工时(小时)</summary>
public decimal AvgRepairHours { get; set; }
/// <summary>总维修工时(小时)</summary>
public decimal TotalRepairHours { get; set; }
/// <summary>总维修费用(元)</summary>
public decimal TotalRepairCost { get; set; }
}
/// <summary>
/// 故障类型分布
/// </summary>
public class FaultTypeDistributionDto
{
/// <summary>故障类型</summary>
public string? FaultType { get; set; }
/// <summary>数量</summary>
public int Count { get; set; }
}
/// <summary>
/// 维修工时分析
/// </summary>
public class RepairHoursAnalysisDto
{
/// <summary>故障类型</summary>
public string? FaultType { get; set; }
/// <summary>平均工时(小时)</summary>
public decimal AvgHours { get; set; }
/// <summary>最大工时(小时)</summary>
public decimal MaxHours { get; set; }
/// <summary>最小工时(小时)</summary>
public decimal MinHours { get; set; }
/// <summary>记录数</summary>
public int Count { get; set; }
}
/// <summary>
/// 维修记录明细
/// </summary>
public class RepairRecordDetailDto
{
/// <summary>设备编号</summary>
public string? EquipmentCode { get; set; }
/// <summary>设备名称</summary>
public string? EquipmentName { get; set; }
/// <summary>故障类型</summary>
public string? FaultType { get; set; }
/// <summary>故障描述</summary>
public string? FaultDescription { get; set; }
/// <summary>报修日期</summary>
public DateTime? ReportDate { get; set; }
/// <summary>维修完成日期</summary>
public DateTime? RepairEndDate { get; set; }
/// <summary>维修工时</summary>
public decimal? RepairHours { get; set; }
/// <summary>维修人员</summary>
public string? RepairPerson { get; set; }
/// <summary>维修费用</summary>
public decimal? RepairCost { get; set; }
/// <summary>维修状态</summary>
public string? RepairStatus { get; set; }
}
#endregion
}
@@ -0,0 +1,92 @@
using SqlSugar;
namespace Model.Entity.Inspection
{
/// <summary>
/// 设备维修记录
/// </summary>
public class RepairRecordEntity : BaseEntity
{
/// <summary>
/// 设备Id(关联 EquipmentEntity.Id
/// </summary>
public long EquipmentId { get; set; }
/// <summary>
/// 设备编号(冗余便于展示)
/// </summary>
[SugarColumn(Length = 50, IsNullable = true)]
public string? EquipmentCode { get; set; }
/// <summary>
/// 设备名称(冗余便于展示)
/// </summary>
[SugarColumn(Length = 100, IsNullable = true)]
public string? EquipmentName { get; set; }
/// <summary>
/// 故障类型(机械故障/电气故障/软件故障/传感器故障/其他)
/// </summary>
[SugarColumn(Length = 50, IsNullable = true)]
public string? FaultType { get; set; }
/// <summary>
/// 故障描述
/// </summary>
[SugarColumn(ColumnDataType = "text", IsNullable = true)]
public string? FaultDescription { get; set; }
/// <summary>
/// 报修日期
/// </summary>
public DateTime? ReportDate { get; set; }
/// <summary>
/// 维修开始日期
/// </summary>
[SugarColumn(IsNullable = true)]
public DateTime? RepairStartDate { get; set; }
/// <summary>
/// 维修完成日期
/// </summary>
[SugarColumn(IsNullable = true)]
public DateTime? RepairEndDate { get; set; }
/// <summary>
/// 维修工时(小时)
/// </summary>
[SugarColumn(IsNullable = true)]
public decimal? RepairHours { get; set; }
/// <summary>
/// 维修人员
/// </summary>
[SugarColumn(Length = 50, IsNullable = true)]
public string? RepairPerson { get; set; }
/// <summary>
/// 维修费用(元)
/// </summary>
[SugarColumn(DecimalDigits = 2, Length = 18, IsNullable = true)]
public decimal? RepairCost { get; set; }
/// <summary>
/// 维修状态(待维修/维修中/已完成)
/// </summary>
[SugarColumn(Length = 20, IsNullable = true)]
public string? RepairStatus { get; set; }
/// <summary>
/// 维修结果描述
/// </summary>
[SugarColumn(ColumnDataType = "text", IsNullable = true)]
public string? RepairResult { get; set; }
/// <summary>
/// 备注
/// </summary>
[SugarColumn(Length = 500, IsNullable = true)]
public string? Remark { get; set; }
}
}