最近接到一个发送邮件的需求,具体内容是:有一组记录着检测值的原始数据,通过逻辑计算出一些指标,把指标与标准对比,如果不满足就需要发一封邮件给指定的用户,预警哪些检测项不达标。虽然我知道永洪自带邮件发送 ...
最近接到一个发送邮件的需求,具体内容是:有一组记录着检测值的原始数据,通过逻辑计算出一些指标,把指标与标准对比,如果不满足就需要发一封邮件给指定的用户,预警哪些检测项不达标。虽然我知道永洪自带邮件发送功能,但据我所知都是发送一些报表,类似这种预警功能一般都是由前后端实现的,但不知为啥就分到了我这块,没办法只好尝试一下。 观察了一下需要监控的内容大概有20个左右,监控的指标有2个,分别监控4个车系的检测情况,20个监控项目中目前有数据的只有10个左右,没数据的项目也需要在邮件中展现出来,标记“-”。这种没有度量也要展示维度的需求出现过很多次,一般我的做法是新建一张包含所有度量的表,然后做左连接,这种操作其实在数据库中有点麻烦,要写建表语句还要写连接语句。但是在永洪中,只需要使用内嵌数据集或者Excel数据集,就可以轻松导入数据,再使用组合数据集或者自服务数据集就能完成左连接的操作了,十分方便。在这里我就用了内嵌数据集记录了所有的检测项目,再和上方已有数据的检测项目做了左连接,就出来包含所有检测项目的结果表。 完成了表的设计,然后就是作图了。用户的需求是制作一个表格,行记录各个车系,列记录各个检测项目,对应的值就是异常结果,有异常标记红色的1,无异常标记黑色的0,没数据的标记“-”。这个部分比较简单,主要使用到了表格的高亮功能,把对应的高亮内容设置为文本格式,填入高亮条件,设置好高亮结果,就完成了。 在邮件发送频率上遇到了一个卡点,两个检测指标的监控的频率不一样,因此触发邮件发送的条件要遵循最小频率原则,举个例子:指标1每周监控一次,指标2每天监控一次,则邮件发送频率应为每天一次。为了实现这个功能,我使用到了调度任务中的触发器,触发的条件为检测到表中的指标大于某个值的时候,就发送邮件,为了保证预警频率为一周一次的数据能正常发送,我编写了一个脚本,检测当天是周一的时候,就传入正确的日期参数到sql中查询结果,否则就传入不合适的日期参数,查询出来的结果则为空,这样即保证了每周预警的邮件只会在周一的时候产生数据,每天预警的邮件还是照常每天产生数据,又确保了每周预警一次的指标只会在每周一预警一次,其余时间就不会重复预警。 最后效果图如下。通过这个需求,让我知道了永洪发送邮件功能除了能完成基础报表的发送外,其实是可以完成一些业务功能需求,但我也想在此提一些小小的建议,除了能把报表当成图片添加到正文外,能否提供多一点的格式供选择,比如word格式,因为有时候会把邮件中的内容复制出来,谢谢。 |
2024-02-29
2024-01-22
2024-01-03
2023-12-27
2023-12-08
回答
回答
回答
回答
回答
1