debug: 補足 email 內容中的異常訊息

This commit is contained in:
cesar liu 2022-04-13 11:49:36 +08:00
parent cad8e37fbd
commit edeb83b59a

View File

@ -694,36 +694,68 @@ namespace SolarPower.Repository.Implement
{ {
try try
{ {
var sql = @$"SELECT a.`*`,ns.Id FROM //var sql = @$"SELECT a.`*`,ns.Id FROM
( // (
select a.id, site_id, `timestamp`, FROM_UNIXTIME((`timestamp` / 1000), '%Y-%m-%d %H:%i:%s') dev_time , // select a.id, site_id, `timestamp`, FROM_UNIXTIME((`timestamp` / 1000), '%Y-%m-%d %H:%i:%s') dev_time ,
a.sourceState err_status, FROM_UNIXTIME( (a.normalTime / 1000), '%Y-%m-%d %H:%i:%s') normalTime, // a.sourceState err_status, FROM_UNIXTIME( (a.normalTime / 1000), '%Y-%m-%d %H:%i:%s') normalTime,
a.alarmClass, b.alarmClass as alarmClassName,ps.Name as PowerStationName,ps.Id as PowerStationId, errDevice, err_valueKind, errValue, FROM_UNIXTIME( (a.lastUpdate / 1000), '%Y-%m-%d %H:%i:%s') lastUpdate, d.errMsg_tw errMsg, // a.alarmClass, b.alarmClass as alarmClassName,ps.Name as PowerStationName,ps.Id as PowerStationId, errDevice, err_valueKind, errValue, FROM_UNIXTIME( (a.lastUpdate / 1000), '%Y-%m-%d %H:%i:%s') lastUpdate, d.errMsg_tw errMsg,
case when c.errMsg_tw is null then // case when c.errMsg_tw is null then
case when err_valueKind = 'b' then d.errMsg_tw // case when err_valueKind = 'b' then d.errMsg_tw
when err_valueKind = 'd' then CONCAT(d.errMsg_tw, ': ', round(a.errValue, 2)) // when err_valueKind = 'd' then CONCAT(d.errMsg_tw, ': ', round(a.errValue, 2))
when d.errMsg_tw is null then a.errValue // when d.errMsg_tw is null then a.errValue
when a.errValue is null then d.errMsg_tw // when a.errValue is null then d.errMsg_tw
else CONCAT(a.errValue, ', ' , ifNull(d.errMsg_tw, '')) end // else CONCAT(a.errValue, ', ' , ifNull(d.errMsg_tw, '')) end
else // else
case when err_valueKind = 'b' then c.errMsg_tw // case when err_valueKind = 'b' then c.errMsg_tw
when err_valueKind = 'd' then CONCAT(c.errMsg_tw, ': ', round(a.errValue, 2)) // when err_valueKind = 'd' then CONCAT(c.errMsg_tw, ': ', round(a.errValue, 2))
when c.errMsg_tw is null then a.errValue // when c.errMsg_tw is null then a.errValue
when a.errValue is null then c.errMsg_tw // when a.errValue is null then c.errMsg_tw
else CONCAT(a.errValue, ', ' , ifNull(c.errMsg_tw, '')) end // else CONCAT(a.errValue, ', ' , ifNull(c.errMsg_tw, '')) end
end errMsgT // end errMsgT
from err_main a // from err_main a
join alarmorion_orionalarmclass b on a.alarmclass = b.id // join alarmorion_orionalarmclass b on a.alarmclass = b.id
left join ref_err_device c on trim(b.alarmClass) = c.deviceType // left join ref_err_device c on trim(b.alarmClass) = c.deviceType
left join ref_err_inv d on lower(b.alarmClass) = d.deviceType // left join ref_err_inv d on lower(b.alarmClass) = d.deviceType
# and case when lower(b.alarmClass) = 'inverter' and err_valuekind = 'e' then errvalue else '' end = d.errCode // # and case when lower(b.alarmClass) = 'inverter' and err_valuekind = 'e' then errvalue else '' end = d.errCode
and a.errDeviceBrand = d.brend and a.errDeviceModel = d.model and a.errValue = d.errCode // and a.errDeviceBrand = d.brend and a.errDeviceModel = d.model and a.errValue = d.errCode
left join power_station ps on ps.Code = site_id // left join power_station ps on ps.Code = site_id
left join operation_record pr on pr.ErrorCode = a.id // left join operation_record pr on pr.ErrorCode = a.id
) a // ) a
LEFT JOIN // LEFT JOIN
notice_schedule ns ON ns.ExceptionId = a.id // notice_schedule ns ON ns.ExceptionId = a.id
WHERE ns.Id IS NULL AND a.err_status = 1 AND a.PowerStationId IS NOT null"; // WHERE ns.Id IS NULL AND a.err_status = 1 AND a.PowerStationId IS NOT null";
var sql = $@"
SELECT a.`*`,ns.Id FROM
(
select pr.FormId as FormId, pr.Id as ErrorID, a.id, site_id, `timestamp`,
FROM_UNIXTIME((`timestamp` / 1000), '%Y-%m-%d %H:%i:%s') dev_time ,
a.sourceState err_status, FROM_UNIXTIME( (a.normalTime / 1000), '%Y-%m-%d %H:%i:%s') normalTime,
a.alarmClass, b.alarmClass as alarmClassName,ps.Name as PowerStationName, ps.Id as PowerStationId,errDevice, err_valueKind, errValue,
FROM_UNIXTIME( (a.lastUpdate / 1000), '%Y-%m-%d %H:%i:%s') lastUpdate, c.errMsg_tw cerrMsg_tw, d.errMsg_tw derrMsg_tw,
case when c.errMsg_tw is null then
case when err_valueKind = 'b' then d.errMsg_tw
when err_valueKind = 'd' then CONCAT(d.errMsg_tw, ': ', round(a.errValue, 2))
when d.errMsg_tw is null then a.errValue
when a.errValue is null then d.errMsg_tw
else CONCAT(a.errValue, ', ' , ifNull(d.errMsg_tw, '')) end
else
case when err_valueKind = 'b' then c.errMsg_tw
when err_valueKind = 'd' then CONCAT(c.errMsg_tw, ': ', round(a.errValue, 2))
when c.errMsg_tw is null then a.errValue
when a.errValue is null then c.errMsg_tw
else CONCAT(a.errValue, ', ' , ifNull(c.errMsg_tw, '')) end
end errMsg
#, a.errDeviceBrand , d.brend , a.errDeviceModel, d.model , a.errValue , d.errCode
from err_main a
left join alarmorion_orionalarmclass b on a.alarmclass = b.id
left join ref_err_device c on trim(b.alarmClass) = c.deviceType
left join ref_err_inv d on lower(b.alarmClass) = d.deviceType
and a.errDeviceBrand = d.brend and a.errDeviceModel = d.model and a.errValue = d.errCode
left join power_station ps on ps.`Code` = site_id
left join operation_record pr on pr.ErrorCode = a.id
where sourceState = 1 and ps.`Code` is not null
) a LEFT JOIN notice_schedule ns ON ns.ExceptionId = a.id
WHERE ns.Id IS NULL ";
exceptionEmailInfos = (await conn.QueryAsync<ExceptionEmailInfo>(sql)).ToList(); exceptionEmailInfos = (await conn.QueryAsync<ExceptionEmailInfo>(sql)).ToList();
} }
catch (Exception exception) catch (Exception exception)