DeviceManager/DeviceRepair.DataAccess/HistoryDa.cs
2024-11-10 00:05:40 +08:00

409 lines
14 KiB
C#

using DeviceRepair.DataAccess.Data;
using DeviceRepair.DataAccess.Utils;
using DeviceRepair.Models.Enum;
using DeviceRepair.Models.OperationHistory.Device;
using DeviceRepair.Models.OperationHistory.Field;
using DeviceRepair.Models.OperationHistory.Tag;
using NLog;
using SqlSugar;
using System;
using System.Collections.Generic;
using System.Data;
using System.Data.SqlClient;
namespace DeviceRepair.DataAccess
{
public class HistoryDa : BaseDa
{
private static readonly Logger log = LogManager.GetCurrentClassLogger();
public HistoryDa(IDictionary<string, string> apiParams) : base(apiParams)
{
}
public DataSet HistoryGet(HistoryType vType)
{
try
{
switch (vType)
{
case HistoryType.Tag_Data:
return GetTagDataHistory();
case HistoryType.Tag_Operation:
return GetTagOperationHistory();
case HistoryType.Field_Data:
return GetFieldDataHistory();
case HistoryType.Field_Operation:
return GetFieldOpsHistory();
case HistoryType.Dev_Data:
return GetDevDataHistory();
case HistoryType.Dev_Ops:
return GetDevOpsHistory();
default:
break;
}
return null;
}
catch (Exception ex)
{
log.Error(ex);
throw ex;
}
}
#region /Tag
/// <summary>
/// 红卡片数据历史
/// </summary>
/// <returns></returns>
public DataSet GetTagDataHistory()
{
DataSet dsDatas = new DataSet("Datas");
try
{
int TagNo = 0;
if (ApiParameters.ContainsKey("TagNo") && !string.IsNullOrEmpty(ApiParameters["TagNo"] + ""))
{
int.TryParse((ApiParameters["TagNo"] + ""), out TagNo);
}
string EquipNo = "";
if (ApiParameters.ContainsKey("EquipNo"))
{
EquipNo = ApiParameters["EquipNo"];
}
string StartTime = "";
if (ApiParameters.ContainsKey("LogStartDateTime"))
{
StartTime = ApiParameters["LogStartDateTime"];
}
string EndTime = "";
if (ApiParameters.ContainsKey("LogEndDateTime"))
{
EndTime = ApiParameters["LogEndDateTime"];
}
dsDatas = devLog.Ado.UseStoredProcedure().GetDataSetAll(SQLConstants.SP_GET_TAG_DATA_HISTORY, new
{
TagNo = TagNo,
EquipNo = EquipNo,
@OperationBy = 0,
@StartTime = StartTime,
@EndTime = EndTime
});
// dsDatas.Tables.Add(table);
return dsDatas;
}
catch (SqlException sqlEx)
{
throw sqlEx;
}
catch (Exception ex)
{
log.Error(ex);
throw ex;
}
}
/// <summary>
/// 红卡片 操作历史
/// </summary>
/// <returns></returns>
public DataSet GetTagOperationHistory()
{
DataSet dsDatas = new DataSet("Datas");
try
{
int TagNo = 0;
if (ApiParameters.ContainsKey("TagNo"))
{
TagNo = base.GetParamInt("TagNo", "Tag编号");
}
string OperationType = string.Empty;
if (ApiParameters.ContainsKey("OperationType"))
{
OperationType = ApiParameters["OperationType"];
}
string StartTime = "";
if (ApiParameters.ContainsKey("LogStartDateTime"))
{
StartTime = ApiParameters["LogStartDateTime"];
}
string EndTime = "";
if (ApiParameters.ContainsKey("LogEndDateTime"))
{
EndTime = ApiParameters["LogEndDateTime"];
}
var exp = Expressionable.Create<v_TagRecordLog>()
.AndIF(TagNo != 0, x => x.HisAutoID == TagNo)
.AndIF(!string.IsNullOrEmpty(OperationType), x => x.OperationType == OperationType)
.AndIF(!string.IsNullOrEmpty(StartTime), x => x.OperationDate >= SqlFunc.ToDate(StartTime))
.AndIF(!string.IsNullOrEmpty(EndTime), x => x.OperationDate <= SqlFunc.ToDate(EndTime))
.ToExpression();
var table = devLog.Queryable<v_TagRecordLog>().Where(exp).ToDataTable();
table.DataSet?.Tables?.Remove(table);
dsDatas.Tables.Add(table);
return dsDatas;
}
catch (SqlException sqlEx)
{
throw sqlEx;
}
catch (Exception ex)
{
log.Error(ex);
throw ex;
}
}
#endregion
#region
public DataSet GetFieldDataHistory()
{
DataSet dsDatas = new DataSet("Datas");
try
{
int vEnumType = -1;
if (ApiParameters.ContainsKey("EnumType") && !string.IsNullOrEmpty(ApiParameters["EnumType"] + ""))
{
int.TryParse((ApiParameters["EnumType"] + ""), out vEnumType);
}
if (vEnumType == -1)
{
throw new Exception("请选择字段类型!");
}
string FieldText = "";
if (ApiParameters.ContainsKey("FieldText"))
{
FieldText = ApiParameters["FieldText"];
}
string StartTime = "";
if (ApiParameters.ContainsKey("LogStartDateTime"))
{
StartTime = ApiParameters["LogStartDateTime"];
}
string EndTime = "";
if (ApiParameters.ContainsKey("LogEndDateTime"))
{
EndTime = ApiParameters["LogEndDateTime"];
}
dsDatas = devLog.Ado.UseStoredProcedure().GetDataSetAll(SQLConstants.SP_GET_FIELD_DATA_HISTORY, new
{
EnumType = vEnumType,
FieldText = FieldText,
@OperationBy = 0,
@StartTime = StartTime,
@EndTime = EndTime
});
return dsDatas;
}
catch (SqlException sqlEx)
{
throw sqlEx;
}
catch (Exception ex)
{
log.Error(ex);
throw ex;
}
}
public DataSet GetFieldOpsHistory()
{
DataSet dsDatas = new DataSet("Datas");
try
{
int vEnumType = -1;
string EnumType = string.Empty;
if (ApiParameters.ContainsKey("FieldCode") && !string.IsNullOrEmpty(ApiParameters["FieldCode"] + ""))
{
int.TryParse((ApiParameters["FieldCode"] + ""), out vEnumType);
}
if (vEnumType == -1)
{
throw new Exception("请选择字段类型!");
}
switch (vEnumType)
{
case 0:
EnumType = "SymptomlDistinction";
break;
case 1:
EnumType = "MAINTENANCE";
break;
case 2:
EnumType = "WHEREFAILUREOCCURRED";
break;
case 3:
EnumType = "ACCESSORIES";
break;
default:
break;
}
string FieldText = "";
if (ApiParameters.ContainsKey("FieldText"))
{
FieldText = ApiParameters["FieldText"];
}
string StartTime = "";
if (ApiParameters.ContainsKey("LogStartDateTime"))
{
StartTime = ApiParameters["LogStartDateTime"];
}
string EndTime = "";
if (ApiParameters.ContainsKey("LogEndDateTime"))
{
EndTime = ApiParameters["LogEndDateTime"];
}
var exp = Expressionable.Create<v_FieldOpsHistory>()
.AndIF(!string.IsNullOrEmpty(FieldText), x => x.FieldText == FieldText)
.AndIF(!string.IsNullOrEmpty(EnumType), x => x.FieldCode == EnumType)
.AndIF(!string.IsNullOrEmpty(StartTime), x => x.OperationDate >= SqlFunc.ToDate(StartTime))
.AndIF(!string.IsNullOrEmpty(EndTime), x => x.OperationDate <= SqlFunc.ToDate(EndTime))
.ToExpression();
var table = devLog.Queryable<v_FieldOpsHistory>().Where(exp).ToDataTable();
table.DataSet?.Tables?.Remove(table);
dsDatas.Tables.Add(table);
return dsDatas;
}
catch (SqlException sqlEx)
{
throw sqlEx;
}
catch (Exception ex)
{
log.Error(ex);
throw ex;
}
}
#endregion
#region
public DataSet GetDevOpsHistory()
{
DataSet dsDatas = new DataSet("Datas");
try
{
string EquipmentID = string.Empty;
if (ApiParameters.ContainsKey("EquipmentID"))
{
EquipmentID = ApiParameters["EquipmentID"];
}
string EquipmentName = string.Empty;
if (ApiParameters.ContainsKey("EquipmentName"))
{
EquipmentName = ApiParameters["EquipmentName"];
}
string StartTime = "";
if (ApiParameters.ContainsKey("LogStartDateTime"))
{
StartTime = ApiParameters["LogStartDateTime"];
}
string EndTime = "";
if (ApiParameters.ContainsKey("LogEndDateTime"))
{
EndTime = ApiParameters["LogEndDateTime"];
}
var exp = Expressionable.Create<v_DeviceOpsHistory>()
.AndIF(!string.IsNullOrEmpty(EquipmentID), x => x.EquipmentID == EquipmentID)
.AndIF(!string.IsNullOrEmpty(EquipmentName), x => x.EquipmentName == EquipmentName)
.AndIF(!string.IsNullOrEmpty(StartTime), x => x.OperationDate >= SqlFunc.ToDate(StartTime))
.AndIF(!string.IsNullOrEmpty(EndTime), x => x.OperationDate <= SqlFunc.ToDate(EndTime))
.ToExpression();
var table = devLog.Queryable<v_DeviceOpsHistory>().Where(exp).ToDataTable();
table.DataSet?.Tables?.Remove(table);
dsDatas.Tables.Add(table);
return dsDatas;
}
catch (SqlException sqlEx)
{
throw sqlEx;
}
catch (Exception ex)
{
log.Error(ex);
throw ex;
}
}
public DataSet GetDevDataHistory()
{
DataSet dsDatas = new DataSet("Datas");
try
{
string EquipmentID = string.Empty;
if (ApiParameters.ContainsKey("EquipmentID"))
{
EquipmentID = ApiParameters["EquipmentID"];
}
string EquipmentName = string.Empty;
if (ApiParameters.ContainsKey("EquipmentName"))
{
EquipmentName = ApiParameters["EquipmentName"];
}
string StartTime = "";
if (ApiParameters.ContainsKey("LogStartDateTime"))
{
StartTime = ApiParameters["LogStartDateTime"];
}
string EndTime = "";
if (ApiParameters.ContainsKey("LogEndDateTime"))
{
EndTime = ApiParameters["LogEndDateTime"];
}
var exp = Expressionable.Create<v_DeviceDataHistory>()
.AndIF(!string.IsNullOrEmpty(EquipmentID), x => x.EquipmentID == EquipmentID)
.AndIF(!string.IsNullOrEmpty(EquipmentName), x => x.EquipmentName == EquipmentName)
.AndIF(!string.IsNullOrEmpty(StartTime), x => x.OperationDate >= SqlFunc.ToDate(StartTime))
.AndIF(!string.IsNullOrEmpty(EndTime), x => x.OperationDate <= SqlFunc.ToDate(EndTime))
.ToExpression();
var table = devLog.Queryable<v_DeviceDataHistory>().Where(exp).ToDataTable();
table.DataSet?.Tables?.Remove(table);
dsDatas.Tables.Add(table);
return dsDatas;
}
catch (SqlException sqlEx)
{
throw sqlEx;
}
catch (Exception ex)
{
log.Error(ex);
throw ex;
}
}
#endregion
}
}