Merge remote-tracking branch 'origin/station' into station

This commit is contained in:
qiaoqinzheng 2023-06-20 10:58:44 +08:00
commit 1efaa6fe36
14 changed files with 120 additions and 86 deletions

View File

@ -0,0 +1,9 @@
package org.jeecg.common.constant;
/**
* 邮件服务常量
*/
public class EmailConstant {
public static final String EMAIL_STATUS_PREFIX = "email_status";
}

View File

@ -50,11 +50,9 @@ public class FTPUtil {
// 切换为本地被动模式可以解决FTP上传后文件为空的问题但需要服务器将FTP服务添加至防火墙白名单
ftp.enterLocalPassiveMode();
//连接
ftp.connect("182.92.183.230", 21);
// ftp.connect(host, port);
ftp.connect(host, port);
//登录
ftp.login("xiao", "123456");
// ftp.login(userName, password);
ftp.login(userName, password);
//判断是否连接成功
int reply = ftp.getReplyCode();
if (!FTPReply.isPositiveCompletion(reply)) {

View File

@ -22,10 +22,10 @@ public class SysEmail implements Serializable {
private String id;
/**
* 邮箱名称
* email服务地址
*/
@TableField(value = "name")
private String name;
@TableField(value = "email_server_address")
private String emailServerAddress;
/**
* 邮箱类型1-收件地址2-发件地址
@ -34,7 +34,7 @@ public class SysEmail implements Serializable {
private Integer emilType;
/**
* email地址
* 邮箱登录名称
*/
@TableField(value = "username")
private String username;
@ -49,7 +49,7 @@ public class SysEmail implements Serializable {
* 端口
*/
@TableField(value = "port")
private String port;
private Integer port;
/**
* 是否启用邮箱0-不启用1-启用
@ -58,10 +58,10 @@ public class SysEmail implements Serializable {
private Integer enabled;
/**
* 监测周期
* 定时获取邮件时间周期()
*/
@TableField(value = "monitoring_cycle")
private Integer monitoringCycle;
@TableField(value = "receive_mail_fixed_cycle")
private Integer receiveMailFixedCycle;
/**
* 创建日期

View File

@ -7,10 +7,12 @@ import com.baomidou.mybatisplus.annotation.TableName;
import com.fasterxml.jackson.annotation.JsonFormat;
import lombok.Data;
import org.springframework.format.annotation.DateTimeFormat;
import java.io.Serializable;
import java.util.Date;
/**
* 邮件接收日志数据表
*/
@Data
@TableName(value = "sys_email_log")
public class SysEmailLog implements Serializable {
@ -18,34 +20,37 @@ public class SysEmailLog implements Serializable {
@TableId(value = "id", type = IdType.ASSIGN_ID)
private String id;
/**
* 邮件id
*/
@TableField(value = "email_id")
private String emailId;
/**
* 邮件主题
*/
@TableField(value = "subject")
private String subject;
/**
* 邮件内容
*/
@TableField(value = "context")
private String context;
/**
* 接收时间
*/
@TableField(value = "receive_time")
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
@DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
private Date receiveTime;
/**
* 创建时间
*/
@TableField(value = "create_time")
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
@DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
private Date createTime;
@TableField(value = "create_by")
private String createBy;
@TableField(value = "update_time")
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
@DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
private Date updateTime;
@TableField(value = "update_by")
private String updateBy;
}

View File

@ -16,20 +16,20 @@ public class AlarmLogController {
@Autowired
private IAlarmLogService alarmLogService;
@ApiOperation("报警日志量总览-柱状图")
@GetMapping("viewAll")
@PostMapping("viewAll")
public Result viewAll(@RequestBody AlarmVo alarmVo){ return alarmLogService.viewAll(alarmVo); }
@ApiOperation("分页查询报警日志信息")
@GetMapping("findPage")
@PostMapping("findPage")
public Result findPage(@RequestBody AlarmVo alarmVo){
return alarmLogService.findPage(alarmVo);
}
@ApiOperation("各类型报警量统计-饼图")
@GetMapping("typeAlarms")
@PostMapping("typeAlarms")
public Result typeAlarms(@RequestBody AlarmVo alarmVo){
return alarmLogService.typeAlarms(alarmVo);
}
@ApiOperation("报警规则top5-柱状图")
@GetMapping("ruleTop")
@PostMapping("ruleTop")
public Result ruleTop5(@RequestBody AlarmVo alarmVo){
return alarmLogService.ruleTop5(alarmVo);
}

View File

@ -13,9 +13,7 @@ import java.util.Map;
public interface AlarmLogMapper extends BaseMapper<AlarmLog> {
List<Date> oneDay(Map<String,Object> params);
List<Date> oneMoreDay(Map<String,Object> params);
List<Date> rangeDay(Map<String,Object> params);
List<AlarmHistory> findPage(Map<String,Object> params);
List<TypeDto> typeAlarms(Map<String,Object> params);

View File

@ -1,6 +1,24 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="org.jeecg.modules.mapper.AlarmLogMapper">
<select id="rangeDay" parameterType="Map" resultType="Date">
SELECT
l.alarm_start_date
FROM
alarm_log l
INNER JOIN alarm_rule r ON l.rule_id = r.ID
<where>
<if test="type != null and type != ''">
r.source_type = #{type}
</if>
<if test="startDate != null and startDate != ''">
AND l.alarm_start_date &gt;= #{startDate}
</if>
<if test="endDate != null and endDate != ''">
AND l.alarm_start_date &lt;= #{endDate}
</if>
</where>
</select>
<select id="findPage" parameterType="Map" resultType="org.jeecg.modules.entity.AlarmHistory">
SELECT
*
@ -37,7 +55,9 @@
AND alarm_start_date &lt;= #{endDate}
</if>
</where>
LIMIT #{pageStart}, #{pageSize}
<if test="pageFlag == null">
LIMIT #{pageSize} OFFSET #{pageStart}
</if>
</select>
<select id="typeAlarms" parameterType="Map" resultType="org.jeecg.modules.dto.TypeDto">
SELECT
@ -88,37 +108,4 @@
</where>
ORDER BY l.ruleCount DESC
</select>
<select id="oneDay" parameterType="Map" resultType="Date">
SELECT
l.alarm_start_date
FROM
alarm_log l
INNER JOIN alarm_rule r ON l.rule_id = r.ID
<where>
<if test="type != null and type != ''">
r.source_type = #{type}
</if>
<if test="startDate != null and startDate != ''">
AND l.alarm_start_date = #{startDate}
</if>
</where>
</select>
<select id="oneMoreDay" parameterType="Map" resultType="Date">
SELECT
l.alarm_start_date
FROM
alarm_log l
INNER JOIN alarm_rule r ON l.rule_id = r.ID
<where>
<if test="type != null and type != ''">
r.source_type = #{type}
</if>
<if test="startDate != null and startDate != ''">
AND l.alarm_start_date &gt;= #{startDate}
</if>
<if test="endDate != null and endDate != ''">
AND l.alarm_start_date &lt;= #{endDate}
</if>
</where>
</select>
</mapper>

View File

@ -1,6 +1,7 @@
package org.jeecg.modules.service.impl;
import cn.hutool.core.bean.BeanUtil;
import cn.hutool.core.collection.CollUtil;
import cn.hutool.core.date.DateUtil;
import com.alibaba.fastjson.JSON;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
@ -37,11 +38,26 @@ public class AlarmLogServiceImpl extends ServiceImpl<AlarmLogMapper, AlarmLog> i
public Result viewAll(AlarmVo alarmVo) {
String startDate = alarmVo.getStartDate();
String endDate = alarmVo.getEndDate();
// 拼接日期为合理的日期+时间范围
alarmVo.setStartDate(startDate + " 00:00:00");
alarmVo.setEndDate(endDate + " 23:59:59");
// 定义返回结果
Set<String> xData = new HashSet<>();
Collection<Integer> YData = new ArrayList<>();
Map<String,Object> result = new HashMap<>();
// 转换参数 数据查询
Map<String, Object> params = BeanUtil.beanToMap(alarmVo);
List<Date> allDate;
/* 选择日期为同一天 按照小时划分 0-23小时 */
List<Date> allDate = baseMapper.rangeDay(params);
// 查询数据为空则直接返回空集合
if (CollUtil.isEmpty(allDate)){
result.put("xData",xData);
result.put("yData",YData);
return Result.OK(result);
}
// 分情况处理 1.按小时统计 2.按天统计
/* 1.选择日期为同一天 按照小时划分 0-23小时 */
if (startDate.equals(endDate)){
allDate = baseMapper.oneDay(params);
Map<Integer, List<Date>> groupTime = allDate.stream()
.sorted(Comparator.comparing(Date::getHours))
.collect(Collectors.groupingBy(Date::getHours));
@ -55,17 +71,14 @@ public class AlarmLogServiceImpl extends ServiceImpl<AlarmLogMapper, AlarmLog> i
}
}
// 返回x轴和y轴数据
Set<String> xData = statistic.keySet();
Collection<Integer> YData = statistic.values();
Map<String,Object> result = new HashMap<>();
xData = statistic.keySet();
YData = statistic.values();
result.put("xData",xData);
result.put("yData",YData);
return Result.OK(result);
}
/* 选择日期不是同一天 按照天划分(可以跨月选择,但不包括跨年) */
/* 2.选择日期不是同一天 按照天划分(可以跨月选择,但不包括跨年) */
else {
allDate = baseMapper.oneMoreDay(params);
Map<String,Integer> statistic = new HashMap<>();
// 通过mounth分组
Map<Integer, List<Date>> groupMounth = allDate.stream()
@ -102,16 +115,16 @@ public class AlarmLogServiceImpl extends ServiceImpl<AlarmLogMapper, AlarmLog> i
return dateStr;
})
.collect(Collectors.toList());
// 将startDate和endDate中没有预警信息的day设置为0
// startDate和endDate范围内无报警信息
// 的日期(哪一天),将其报警数量设置为0
for (String dateStr : allDateStr) {
if (!allDateStr.contains(dateStr)){
statistic.put(dateStr,0);
}
}
// 返回x轴和y轴数据
Set<String> xData = statistic.keySet();
Collection<Integer> YData = statistic.values();
Map<String,Object> result = new HashMap<>();
xData = statistic.keySet();
YData = statistic.values();
result.put("xData",xData);
result.put("yData",YData);
return Result.OK(result);
@ -134,8 +147,10 @@ public class AlarmLogServiceImpl extends ServiceImpl<AlarmLogMapper, AlarmLog> i
List<AlarmHistory> alarmHistories = baseMapper.findPage(params);
// 当前页数据
page.setRecords(alarmHistories);
// 数据总条数
page.setTotal(this.count());
// 获取数据总条数(经过查询条件过滤后的)
params.put("pageFlag","noPage");
Integer total = baseMapper.findPage(params).size();
page.setTotal(total);
return Result.OK(page);
}

View File

@ -11,4 +11,6 @@ public class AlarmVo extends QueryRequest implements Serializable {
private String startDate;
private String endDate;
private Integer pageStart;
// 标记根据条件查询但不进行分页
private String pageFlag;
}

View File

@ -88,7 +88,8 @@ public class LoginController {
//update-begin--Author:scott Date:20190805 for暂时注释掉密码加密逻辑有点问题
//update-begin-author:taoyan date:20190828 for:校验验证码
String captcha = sysLoginModel.getCaptcha();
/* String captcha = sysLoginModel.getCaptcha();
if(captcha==null){
result.error500("验证码无效");
return result;
@ -107,7 +108,7 @@ public class LoginController {
// 改成特殊的code 便于前端判断
result.setCode(HttpStatus.PRECONDITION_FAILED.value());
return result;
}
}*/
//update-end-author:taoyan date:20190828 for:校验验证码
//1. 校验用户是否有效
@ -135,7 +136,7 @@ public class LoginController {
//用户登录信息
userInfo(sysUser, result);
//update-begin--Author:liusq Date:20210126 for登录成功删除redis中的验证码
redisUtil.del(realKey);
//redisUtil.del(realKey);
//update-begin--Author:liusq Date:20210126 for登录成功删除redis中的验证码
redisUtil.del(CommonConstant.LOGIN_FAIL + username);
LoginUser loginUser = new LoginUser();

View File

@ -12,8 +12,12 @@
<artifactId>jeecg-abnormal-alarm-start</artifactId>
<dependencies>
<!-- jeecg-system-cloud-api -->
<dependency>
<groupId>org.jeecgframework.boot</groupId>
<artifactId>jeecg-system-cloud-api</artifactId>
</dependency>
<!-- jeecg-module-abnormal-alarm模块 -->
<dependency>
<groupId>org.jeecgframework.boot</groupId>
<artifactId>jeecg-module-abnormal-alarm</artifactId>

View File

@ -12,6 +12,11 @@
<artifactId>jeecg-log-manage-start</artifactId>
<dependencies>
<!-- jeecg-system-cloud-api -->
<dependency>
<groupId>org.jeecgframework.boot</groupId>
<artifactId>jeecg-system-cloud-api</artifactId>
</dependency>
<dependency>
<groupId>org.jeecgframework.boot</groupId>
<artifactId>jeecg-module-log-manage</artifactId>

View File

@ -12,6 +12,11 @@
<artifactId>jeecg-station-operation-start</artifactId>
<dependencies>
<!-- jeecg-system-cloud-api -->
<dependency>
<groupId>org.jeecgframework.boot</groupId>
<artifactId>jeecg-system-cloud-api</artifactId>
</dependency>
<dependency>
<groupId>org.jeecgframework.boot</groupId>
<artifactId>jeecg-module-station-operation</artifactId>

View File

@ -12,6 +12,11 @@
<artifactId>jeecg-web-statistics-start</artifactId>
<dependencies>
<!-- jeecg-system-cloud-api -->
<dependency>
<groupId>org.jeecgframework.boot</groupId>
<artifactId>jeecg-system-cloud-api</artifactId>
</dependency>
<dependency>
<groupId>org.jeecgframework.boot</groupId>
<artifactId>jeecg-module-web-statistics</artifactId>