92 lines
3.9 KiB
C#
92 lines
3.9 KiB
C#
using MoviconWebApi.Entities;
|
|
|
|
namespace MoviconWebApi.API.ClearDataApi
|
|
{
|
|
public static class Data
|
|
{
|
|
internal static async Task<(List<ClearDataResponse> Items, long Total)> GetClearData(ClearDataRequest request, IFreeSql freeSql)
|
|
{
|
|
try
|
|
{
|
|
// 构建查询
|
|
var query = freeSql.Select<ClearData>();
|
|
|
|
// 根据设备编号过滤
|
|
if (!string.IsNullOrWhiteSpace(request.DeviceCode))
|
|
{
|
|
query = query.Where(x => x.DeviceCode == request.DeviceCode);
|
|
}
|
|
|
|
// 根据开始时间过滤
|
|
if (!string.IsNullOrWhiteSpace(request.StartTime) && DateTime.TryParse(request.StartTime, out DateTime startTime))
|
|
{
|
|
query = query.Where(x => x.CreateTime >= startTime);
|
|
}
|
|
|
|
// 根据结束时间过滤
|
|
if (!string.IsNullOrWhiteSpace(request.EndTime) && DateTime.TryParse(request.EndTime, out DateTime endTime))
|
|
{
|
|
query = query.Where(x => x.CreateTime <= endTime);
|
|
}
|
|
|
|
// 统计总数
|
|
var total = await query.CountAsync();
|
|
|
|
// 参数兜底与限制
|
|
var pageNo = request.PageNo <= 0 ? 1 : request.PageNo;
|
|
var pageSize = request.PageSize <= 0 ? 100 : request.PageSize;
|
|
if (pageSize > 100) pageSize = 100;
|
|
|
|
// 按创建时间降序排序 + 分页 + 映射到响应模型
|
|
var result = await query
|
|
.OrderByDescending(x => x.CreateTime)
|
|
.Page(pageNo, pageSize)
|
|
.ToListAsync(x => new ClearDataResponse
|
|
{
|
|
DeviceCode = x.DeviceCode,
|
|
DeviceName = x.DeviceName,
|
|
program_process = x.program_process,
|
|
vehicle_model = x.vehicle_model,
|
|
locomotive_number = x.locomotive_number,
|
|
repair_process = x.repair_process,
|
|
component_name = x.component_name,
|
|
part_position = x.part_position,
|
|
part_num = x.part_num,
|
|
part_qrid = x.part_qrid,
|
|
AgentTank_Level = x.AgentTank_Level,
|
|
Test_CleaningAgentTankAdd=x.Test_CleaningAgentTankAdd,
|
|
Test_CleaningAgentTankHeat=x.Test_CleaningAgentTankHeat,
|
|
Test_FrameworkPerModelCleaningAgentUsage = x.Test_FrameworkPerModelCleaningAgentUsage,
|
|
Test_FrameworkPerModelWaterUsage = x.Test_FrameworkPerModelWaterUsage,
|
|
WaterTank_Temp = x.WaterTank_Temp,
|
|
AgentTank_Temp = x.AgentTank_Temp,
|
|
SoakingTank1_Temp = x.SoakingTank1_Temp,
|
|
SoakingTank2_Temp = x.SoakingTank2_Temp,
|
|
Test_ElectricSurveillance=x.Test_ElectricSurveillance,
|
|
Test_FrameworkPerModelCleaningDuration=x.Test_FrameworkPerModelCleaningDuration,
|
|
Test_FrameworkProgramProcess=x.Test_FrameworkProgramProcess,
|
|
Test_FrameworkProgramProcessPercentage=x.Test_FrameworkProgramProcessPercentage,
|
|
Test_SteamSurveillance= x.Test_SteamSurveillance,
|
|
Test_WaterTankAdd= x.Test_WaterTankAdd,
|
|
Test_WaterTankHeat= x.Test_WaterTankHeat,
|
|
WaterTank_Level=x.WaterTank_Level,
|
|
|
|
CreateTime = x.CreateTime.ToString("yyyy-MM-dd HH:mm:ss")
|
|
});
|
|
|
|
return (result ?? new List<ClearDataResponse>(), total);
|
|
}
|
|
catch (Exception ex)
|
|
{
|
|
// 记录异常日志(可以根据实际需求添加日志记录)
|
|
Console.WriteLine($"获取清洗数据失败:{ex.Message}");
|
|
throw;
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
}
|
|
}
|