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

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

View File

@ -694,11 +694,44 @@ 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 ,
// 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,
// 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 errMsgT
// from err_main a
// 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 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
// left join power_station ps on ps.Code = site_id
// left join operation_record pr on pr.ErrorCode = a.id
// ) a
// LEFT JOIN
// notice_schedule ns ON ns.ExceptionId = a.id
// WHERE ns.Id IS NULL AND a.err_status = 1 AND a.PowerStationId IS NOT null";
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 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.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, c.errMsg_tw cerrMsg_tw, d.errMsg_tw derrMsg_tw,
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))
@ -711,19 +744,18 @@ namespace SolarPower.Repository.Implement
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 errMsg
#, a.errDeviceBrand , d.brend , a.errDeviceModel, d.model , a.errValue , d.errCode
from err_main a from err_main a
join alarmorion_orionalarmclass b on a.alarmclass = b.id 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_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 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 where sourceState = 1 and ps.`Code` is not null
LEFT JOIN ) a LEFT JOIN notice_schedule ns ON ns.ExceptionId = a.id
notice_schedule ns ON ns.ExceptionId = a.id WHERE ns.Id IS NULL ";
WHERE ns.Id IS NULL AND a.err_status = 1 AND a.PowerStationId IS NOT null";
exceptionEmailInfos = (await conn.QueryAsync<ExceptionEmailInfo>(sql)).ToList(); exceptionEmailInfos = (await conn.QueryAsync<ExceptionEmailInfo>(sql)).ToList();
} }
catch (Exception exception) catch (Exception exception)