Files
MoviconHub/MoviconWebApi/API/ClearDataApi/Data.cs
2025-09-17 17:22:09 +08:00

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;
}
}
}
}