[WebAPI]新增水電報表沒有用戶選擇設備就不能匯出的限制
This commit is contained in:
parent
f166793f04
commit
a6aa294e7f
@ -64,7 +64,8 @@ namespace FrontendWebApi.ApiControllers
|
|||||||
JOIN building b ON bm.building_tag = b.building_tag and b.deleted = 0
|
JOIN building b ON bm.building_tag = b.building_tag and b.deleted = 0
|
||||||
join variable v2 on ap.ShowView = v2.id and v2.deleted = 0
|
join variable v2 on ap.ShowView = v2.id and v2.deleted = 0
|
||||||
join variable v1 on v2.system_parent_id = v1.id
|
join variable v1 on v2.system_parent_id = v1.id
|
||||||
GROUP BY b.building_tag, b.full_name, v1.system_value, v1.system_key";
|
GROUP BY b.building_tag, b.full_name, v1.system_value, v1.system_key
|
||||||
|
order by b.priority, v1.system_priority, bm.priority, v2.system_priority, v2.created_at DESC";
|
||||||
|
|
||||||
var alarmRecordPanelRawDatas = await frontendRepository.GetAllAsync<AlarmRecordPanelRawData>(sqlBuildingMain, new { Account = account });
|
var alarmRecordPanelRawDatas = await frontendRepository.GetAllAsync<AlarmRecordPanelRawData>(sqlBuildingMain, new { Account = account });
|
||||||
|
|
||||||
|
@ -436,38 +436,65 @@ namespace FrontendWebApi.ApiControllers
|
|||||||
|
|
||||||
|
|
||||||
[HttpPost]
|
[HttpPost]
|
||||||
public async Task<IActionResult> OutputTenantBill()
|
public async Task<IActionResult> OutputTenantBill([FromBody] TenantBill tb)
|
||||||
{
|
{
|
||||||
List<OutputBill> outputBill = new List<OutputBill>();
|
List<OutputBill> outputBill = new List<OutputBill>();
|
||||||
|
|
||||||
try
|
try
|
||||||
{
|
{
|
||||||
string sqlString =
|
List<string> buildings = tb.building_tag_list;
|
||||||
$@"SELECT
|
string building_tag = "";
|
||||||
|
foreach (var item in buildings)
|
||||||
|
{
|
||||||
|
if (item == buildings[0])
|
||||||
|
{
|
||||||
|
building_tag = item == "D2" ? $@"device_building_tag = 'D1' || device_building_tag = '{item}'" : $@"device_building_tag = '{item}'" ;
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
building_tag += item == "D2" ? $@"|| device_building_tag = 'D1' || device_building_tag = '{item}'" : $@"|| device_building_tag = '{item}'";
|
||||||
|
}
|
||||||
|
}
|
||||||
|
string checkDataSql = $@"select * from archive_electric_meter_tenant_bill a
|
||||||
|
join device c on a.device_number = c.device_number
|
||||||
|
WHERE tenant_name is not null and tenant_guid is not null and tenant_name != '' and tenant_guid !=''
|
||||||
|
AND ({building_tag})";
|
||||||
|
var existData = await backendRepository.GetAllAsync<string>(checkDataSql);
|
||||||
|
if (existData.Count != 0)
|
||||||
|
{
|
||||||
|
string sqlString =
|
||||||
|
$@"SELECT
|
||||||
a.tenant_name,
|
a.tenant_name,
|
||||||
MIN(NULLIF(a.start_timestamp, '')) AS start_timestamp,
|
MIN(NULLIF(a.start_timestamp, '')) AS start_timestamp,
|
||||||
MAX(NULLIF(a.end_timestamp, '')) AS end_timestamp,
|
MAX(NULLIF(a.end_timestamp, '')) AS end_timestamp,
|
||||||
bill_perKWH,
|
bill_perKWH,
|
||||||
bill_perRCV,
|
bill_perRCV,
|
||||||
SUM(CASE WHEN device_name_tag = 'E4' THEN result ELSE 0 END) AS elec_result,
|
SUM(CASE WHEN a.device_name_tag = 'E4' THEN result ELSE 0 END) AS elec_result,
|
||||||
SUM(CASE WHEN device_name_tag = 'W1' THEN result ELSE 0 END) AS water_result,
|
SUM(CASE WHEN a.device_name_tag = 'W1' THEN result ELSE 0 END) AS water_result,
|
||||||
SUM(CASE WHEN device_name_tag = 'E4' THEN bill ELSE 0 END) AS elec_bill,
|
SUM(CASE WHEN a.device_name_tag = 'E4' THEN bill ELSE 0 END) AS elec_bill,
|
||||||
SUM(CASE WHEN device_name_tag = 'W1' THEN bill ELSE 0 END) AS water_bill,
|
SUM(CASE WHEN a.device_name_tag = 'W1' THEN bill ELSE 0 END) AS water_bill,
|
||||||
SUM(bill) AS total_bill
|
SUM(bill) AS total_bill
|
||||||
FROM archive_electric_meter_tenant_bill a
|
FROM archive_electric_meter_tenant_bill a
|
||||||
JOIN archive_electric_meter_tenant_list b ON a.tenant_guid = b.tenant_guid
|
JOIN archive_electric_meter_tenant_list b ON a.tenant_guid = b.tenant_guid
|
||||||
GROUP BY a.tenant_name;";
|
join device c on a.device_number = c.device_number
|
||||||
|
where {building_tag} ";
|
||||||
|
|
||||||
outputBill = await backendRepository.GetAllAsync<OutputBill>(sqlString);
|
outputBill = await backendRepository.GetAllAsync<OutputBill>(sqlString);
|
||||||
string filePath = CreateOutputForm(outputBill);
|
string filePath = CreateOutputForm(outputBill);
|
||||||
|
|
||||||
byte[] file = System.IO.File.ReadAllBytes(filePath);
|
byte[] file = System.IO.File.ReadAllBytes(filePath);
|
||||||
|
|
||||||
|
|
||||||
return new FileContentResult(file, "application/pdf")
|
return new FileContentResult(file, "application/pdf")
|
||||||
|
{
|
||||||
|
FileDownloadName = "水電報表.pdf"
|
||||||
|
};
|
||||||
|
}
|
||||||
|
else
|
||||||
{
|
{
|
||||||
FileDownloadName = "水電報表.pdf"
|
var data = new { Code = "0001",Msg = "還沒有選擇用戶,無法匯出檔案。"};
|
||||||
};
|
return StatusCode(400, data);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
catch (Exception exception)
|
catch (Exception exception)
|
||||||
{
|
{
|
||||||
|
@ -1,4 +1,5 @@
|
|||||||
using System;
|
using System;
|
||||||
|
using System.Collections.Generic;
|
||||||
|
|
||||||
namespace FrontendWebApi.Models
|
namespace FrontendWebApi.Models
|
||||||
{
|
{
|
||||||
@ -36,6 +37,8 @@ namespace FrontendWebApi.Models
|
|||||||
public string tenant_guid { get; set; }
|
public string tenant_guid { get; set; }
|
||||||
public string tableType { get; set; }
|
public string tableType { get; set; }
|
||||||
public string building_tag { get; set; }
|
public string building_tag { get; set; }
|
||||||
|
public List<string> building_tag_list { get; set; }
|
||||||
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user