[後端] 新增需求欄位

This commit is contained in:
dev02 2023-06-19 15:13:35 +08:00
parent 59ccf99d1e
commit 2c3a9a82e7
2 changed files with 13 additions and 20 deletions

View File

@ -142,30 +142,26 @@ namespace FrontendWebApi.ApiControllers
var rawData = await backendRepository.GetAllAsync<HydroMeterRawDataOutput>(sql, var rawData = await backendRepository.GetAllAsync<HydroMeterRawDataOutput>(sql,
new { startTime = startTime, endtime = endTime, building_tag = input.building_tag, floor_tag = input.floor_tag, dateFormat = dateFormat }); new { startTime = startTime, endtime = endTime, building_tag = input.building_tag, floor_tag = input.floor_tag, dateFormat = dateFormat });
foreach (var rd in rawData)
{
rd.device_full_name = await backendRepository.GetOneAsync<string>($"select full_name from device where device_number = '{rd.device_number}' and deleted = 0");
}
List<HydroMeterOutput> list = new List<HydroMeterOutput>(); List<HydroMeterOutput> list = new List<HydroMeterOutput>();
if (tag_quantity == "5") if (tag_quantity == "5")
{ {
list = rawData list = rawData
.GroupBy(x => new { building_tag = x.device_number.Split("_")[0], floor_tag = x.device_number.Split("_")[2], device_serial_tag = x.device_number.Split("_")[4] }) .GroupBy(x => new { building_tag = x.device_number.Split("_")[0], floor_tag = x.device_number.Split("_")[2], device_serial_tag = x.device_number.Split("_")[4], device_number = x.device_number })
.Select(x => new HydroMeterOutput { building_tag = x.Key.building_tag, floor_tag = x.Key.floor_tag, device_serial_tag = x.Key.device_serial_tag }) .Select(x => new HydroMeterOutput { building_tag = x.Key.building_tag, floor_tag = x.Key.floor_tag, device_serial_tag = x.Key.device_serial_tag, device_number = x.Key.device_number })
.ToList(); .ToList();
} }
else else
{ {
list = rawData list = rawData
.GroupBy(x => new { building_tag = x.device_number.Split("_")[1], floor_tag = x.device_number.Split("_")[4], device_master = x.device_number.Split("_")[5], device_serial_tag = x.device_number.Split("_")[7] }) .GroupBy(x => new { building_tag = x.device_number.Split("_")[1], floor_tag = x.device_number.Split("_")[4], device_master = x.device_number.Split("_")[5], device_serial_tag = x.device_number.Split("_")[7], device_number = x.device_number })
.Select(x => new HydroMeterOutput { building_tag = x.Key.building_tag, floor_tag = x.Key.floor_tag, device_serial_tag = x.Key.device_serial_tag, device_master = x.Key.device_master }) .Select(x => new HydroMeterOutput { building_tag = x.Key.building_tag, floor_tag = x.Key.floor_tag, device_serial_tag = x.Key.device_serial_tag, device_master = x.Key.device_master, device_number = x.Key.device_number })
.ToList(); .ToList();
} }
foreach (var l in list) foreach (var l in list)
{ {
l.rawData = new List<HydroMeterRawDataOutput>(); l.rawData = new List<HydroMeterRawDataOutput>();
l.device_full_name = await backendRepository.GetOneAsync<string>($"select full_name from device where device_number = '{l.device_number}' and deleted = 0");
if (tag_quantity == "5") if (tag_quantity == "5")
{ {
l.rawData.AddRange( l.rawData.AddRange(
@ -319,30 +315,26 @@ namespace FrontendWebApi.ApiControllers
var rawData = await backendRepository.GetAllAsync<HydroMeterRawDataOutput>(sql, var rawData = await backendRepository.GetAllAsync<HydroMeterRawDataOutput>(sql,
new { startTime = startTime, endTime = endTime, building_tag = input.building_tag, floor_tag = input.floor_tag, dateFormat = dateFormat }); new { startTime = startTime, endTime = endTime, building_tag = input.building_tag, floor_tag = input.floor_tag, dateFormat = dateFormat });
foreach (var rd in rawData)
{
rd.device_full_name = await backendRepository.GetOneAsync<string>($"select full_name from device where device_number = '{rd.device_number}' and deleted = 0");
}
List<HydroMeterOutput> list = new List<HydroMeterOutput>(); List<HydroMeterOutput> list = new List<HydroMeterOutput>();
if (tag_quantity == "5") if (tag_quantity == "5")
{ {
list = rawData list = rawData
.GroupBy(x => new { building_tag = x.device_number.Split("_")[0], floor_tag = x.device_number.Split("_")[2], device_serial_tag = x.device_number.Split("_")[4] }) .GroupBy(x => new { building_tag = x.device_number.Split("_")[0], floor_tag = x.device_number.Split("_")[2], device_serial_tag = x.device_number.Split("_")[4], device_number = x.device_number })
.Select(x => new HydroMeterOutput { building_tag = x.Key.building_tag, floor_tag = x.Key.floor_tag, device_serial_tag = x.Key.device_serial_tag }) .Select(x => new HydroMeterOutput { building_tag = x.Key.building_tag, floor_tag = x.Key.floor_tag, device_serial_tag = x.Key.device_serial_tag, device_number = x.Key.device_number })
.ToList(); .ToList();
} }
else else
{ {
list = rawData list = rawData
.GroupBy(x => new { building_tag = x.device_number.Split("_")[1], floor_tag = x.device_number.Split("_")[4], device_master = x.device_number.Split("_")[5], device_serial_tag = x.device_number.Split("_")[7] }) .GroupBy(x => new { building_tag = x.device_number.Split("_")[1], floor_tag = x.device_number.Split("_")[4], device_master = x.device_number.Split("_")[5], device_serial_tag = x.device_number.Split("_")[7], device_number = x.device_number })
.Select(x => new HydroMeterOutput { building_tag = x.Key.building_tag, floor_tag = x.Key.floor_tag, device_serial_tag = x.Key.device_serial_tag, device_master = x.Key.device_master }) .Select(x => new HydroMeterOutput { building_tag = x.Key.building_tag, floor_tag = x.Key.floor_tag, device_serial_tag = x.Key.device_serial_tag, device_master = x.Key.device_master, device_number = x.Key.device_number })
.ToList(); .ToList();
} }
foreach (var l in list) foreach (var l in list)
{ {
l.rawData = new List<HydroMeterRawDataOutput>(); l.rawData = new List<HydroMeterRawDataOutput>();
l.device_full_name = await backendRepository.GetOneAsync<string>($"select full_name from device where device_number = '{l.device_number}' and deleted = 0");
if (tag_quantity == "5") if (tag_quantity == "5")
{ {
l.rawData.AddRange( l.rawData.AddRange(
@ -516,7 +508,7 @@ namespace FrontendWebApi.ApiControllers
} }
if (j == 2) if (j == 2)
{ {
cell.SetCellValue(r.device_serial_tag); cell.SetCellValue(r.device_full_name);
} }
if (j == 3) if (j == 3)

View File

@ -25,6 +25,8 @@ namespace FrontendWebApi.Models
public string floor_tag { get; set; } public string floor_tag { get; set; }
public string device_serial_tag { get; set; } public string device_serial_tag { get; set; }
public string device_master { get; set; } public string device_master { get; set; }
public string device_number { get; set; }
public string device_full_name { get; set; }
public string total { get; set; } public string total { get; set; }
public string price { get; set; } public string price { get; set; }
public string total_price { get; set; } public string total_price { get; set; }
@ -36,7 +38,6 @@ namespace FrontendWebApi.Models
public string timeStamp { get; set; } public string timeStamp { get; set; }
public string device_number { get; set; } public string device_number { get; set; }
public decimal avg_rawdata { get; set; } public decimal avg_rawdata { get; set; }
public string device_full_name { get; set; }
} }
public class HydroMeterPriceInput public class HydroMeterPriceInput