10 changed files with 438 additions and 102 deletions
@ -0,0 +1,110 @@ |
|||
package cc.admin.modules.dust.controller; |
|||
|
|||
import cc.admin.common.api.vo.Result; |
|||
import cc.admin.common.aspect.annotation.AutoLog; |
|||
import cc.admin.common.util.RedisUtil; |
|||
import cc.admin.modules.dust.entity.TbDustTargetinfo; |
|||
import cc.admin.modules.dust.entity.TbDustWarning; |
|||
import cc.admin.modules.dust.service.ITbDustTargetinfoService; |
|||
import cc.admin.modules.dust.service.ITbDustWarningService; |
|||
import cc.admin.modules.dust.utils.KeyUtils; |
|||
import cc.admin.modules.dust.vo.DustMonitorVo; |
|||
import cc.admin.modules.dust.vo.DustStatisticsVo; |
|||
import cc.admin.modules.dust.vo.RedisDataVo; |
|||
import cn.hutool.core.bean.BeanUtil; |
|||
import io.swagger.annotations.Api; |
|||
import io.swagger.annotations.ApiOperation; |
|||
import lombok.extern.slf4j.Slf4j; |
|||
import org.bouncycastle.pqc.jcajce.provider.util.KeyUtil; |
|||
import org.springframework.beans.factory.annotation.Autowired; |
|||
import org.springframework.web.bind.annotation.GetMapping; |
|||
import org.springframework.web.bind.annotation.RequestMapping; |
|||
import org.springframework.web.bind.annotation.RequestParam; |
|||
import org.springframework.web.bind.annotation.RestController; |
|||
|
|||
import java.time.LocalDate; |
|||
import java.time.LocalDateTime; |
|||
import java.time.LocalTime; |
|||
import java.util.ArrayList; |
|||
import java.util.HashMap; |
|||
import java.util.List; |
|||
import java.util.Map; |
|||
|
|||
@Slf4j |
|||
@Api(tags = "首页") |
|||
@RestController |
|||
@RequestMapping("/tb/home") |
|||
public class TbHomeController { |
|||
|
|||
@Autowired |
|||
private ITbDustWarningService tbDustWarningService; |
|||
@Autowired |
|||
private ITbDustTargetinfoService tbDustTargetinfoService; |
|||
@Autowired |
|||
private RedisUtil redisUtil; |
|||
|
|||
/** |
|||
* |
|||
*/ |
|||
@AutoLog(value = "首页统计") |
|||
@ApiOperation(value = "首页统计", notes = "首页统计") |
|||
@GetMapping(value = "/statistics") |
|||
public Result<?> statistics( @RequestParam(name = "equipId", required = false) String equipId) { |
|||
DustStatisticsVo dustStatisticsVo = new DustStatisticsVo(); |
|||
|
|||
Integer count = tbDustWarningService.lambdaQuery() |
|||
.eq(TbDustWarning::getWarnStatus, "0") |
|||
.eq(TbDustWarning::getEquipinfoId, equipId) |
|||
.count();//未处置报警
|
|||
dustStatisticsVo.setUnprocessedAlarmCount(count); |
|||
|
|||
// 1. 获取今天的日期
|
|||
LocalDate today = LocalDate.now(); |
|||
LocalDateTime startOfToday = today.atStartOfDay(); // 00:00:00.000
|
|||
LocalDateTime endOfToday = LocalDateTime.of(today, LocalTime.MAX); // 23:59:59.999999999
|
|||
Integer todayAlarmCount = tbDustWarningService.lambdaQuery() |
|||
.eq(TbDustWarning::getEquipinfoId, equipId) |
|||
.between(TbDustWarning::getStartTime, startOfToday, endOfToday) |
|||
.count();// 今日报警
|
|||
dustStatisticsVo.setTodayAlarmCount(todayAlarmCount); |
|||
|
|||
int cumulativeAlarmCount = tbDustWarningService.lambdaQuery() |
|||
.eq(TbDustWarning::getEquipinfoId, equipId) |
|||
.count(); |
|||
dustStatisticsVo.setCumulativeAlarmCount(cumulativeAlarmCount);//累计报警
|
|||
|
|||
Integer dryTypeMonitorPointCount = tbDustWarningService.lambdaQuery() |
|||
.eq(TbDustWarning::getEquipinfoId, equipId) |
|||
.eq(TbDustWarning::getWarnStatus, "1") |
|||
.count(); |
|||
dustStatisticsVo.setAlarmProcessingRate(dryTypeMonitorPointCount * 1.0 / count); //报警处理率
|
|||
|
|||
return Result.ok(dustStatisticsVo); |
|||
} |
|||
@AutoLog(value = "首页系统监控") |
|||
@ApiOperation(value = "首页系统监控", notes = "首页系统监控") |
|||
@GetMapping(value = "/monitor") |
|||
public Result<?> monitor(@RequestParam(name = "equipId", required = false) String equipId) { |
|||
|
|||
List<DustMonitorVo> monitorVoList = new ArrayList<>(); |
|||
|
|||
HashMap<String, List<DustMonitorVo>> hashMap = new HashMap<>(); |
|||
List<TbDustTargetinfo> list = tbDustTargetinfoService.lambdaQuery() |
|||
.eq(TbDustTargetinfo::getEquipId, equipId) |
|||
.list(); |
|||
Map<Object, Object> dustdata = redisUtil.hmget(KeyUtils.dustdataTag); |
|||
for (TbDustTargetinfo targetinfo : list) { |
|||
DustMonitorVo dustMonitorVo = new DustMonitorVo(); |
|||
RedisDataVo redisDataVo = (RedisDataVo) dustdata.get(targetinfo.getTargetCode()); |
|||
if (redisDataVo != null){ |
|||
dustMonitorVo.setValue(redisDataVo.getValue()); |
|||
dustMonitorVo.setAlarmLevel(redisDataVo.getAlarmLevel()); |
|||
dustMonitorVo.setStatus(redisDataVo.getStatus()); |
|||
} |
|||
|
|||
BeanUtil.copyProperties(targetinfo, dustMonitorVo); |
|||
} |
|||
return Result.ok(monitorVoList); |
|||
} |
|||
|
|||
} |
@ -0,0 +1,26 @@ |
|||
package cc.admin.modules.dust.vo; |
|||
|
|||
import lombok.Data; |
|||
|
|||
@Data |
|||
public class DustMonitorVo { |
|||
|
|||
private String equipId; |
|||
|
|||
private String equipCode; |
|||
|
|||
private String targetCode; |
|||
|
|||
private String targetName; |
|||
|
|||
private String targetType; |
|||
|
|||
private Integer type; //是否启停信号
|
|||
|
|||
private Integer status; //设备状态:0-故障;1-正常;2-待机;3-离线
|
|||
|
|||
private Integer alarmLevel; //预警等级:-1 故障;1-红色预警;2-橙色预警;3-黄色预警
|
|||
|
|||
private Double value; //数值
|
|||
|
|||
} |
@ -0,0 +1,40 @@ |
|||
package cc.admin.modules.dust.vo; |
|||
|
|||
import lombok.Data; |
|||
|
|||
@Data |
|||
public class DustStatisticsVo { |
|||
/** |
|||
* 未处理报警数量 (Unprocessed Alarm Count) |
|||
*/ |
|||
private Integer unprocessedAlarmCount; // Corresponds to 0
|
|||
|
|||
/** |
|||
* 今日报警数量 (Today's Alarm Count) |
|||
*/ |
|||
private Integer todayAlarmCount; // Corresponds to 0
|
|||
|
|||
/** |
|||
* 累计报警数量 (Cumulative Alarm Count) |
|||
*/ |
|||
private Integer cumulativeAlarmCount; // Corresponds to 0
|
|||
|
|||
/** |
|||
* 报警处理率 (Alarm Processing Rate) |
|||
*/ |
|||
private Double alarmProcessingRate; // Corresponds to 0
|
|||
/** |
|||
* 干式除尘监控点位数量 (Dry Dust Removal Monitoring Point Count) |
|||
*/ |
|||
private Integer dryTypeMonitorPointCount; // Value: 9
|
|||
|
|||
/** |
|||
* 湿式除尘监控点位数量 (Wet Dust Removal Monitoring Point Count) |
|||
*/ |
|||
private Integer wetTypeMonitorPointCount; // Value: 5
|
|||
|
|||
/** |
|||
* 特定除尘监控点位数量 (Specific/Special Dust Removal Monitoring Point Count) |
|||
*/ |
|||
private Integer specificTypeMonitorPointCount; // Value: 6
|
|||
} |
@ -0,0 +1,18 @@ |
|||
package cc.admin.modules.dust.vo; |
|||
|
|||
import com.fasterxml.jackson.annotation.JsonIgnoreProperties; |
|||
import lombok.Data; |
|||
|
|||
@Data |
|||
@JsonIgnoreProperties(ignoreUnknown = true) |
|||
public class RedisDataVo { |
|||
private String equipId; |
|||
|
|||
private String equipCode; |
|||
|
|||
private Integer status; //设备状态:0-故障;1-正常;2-待机;3-离线
|
|||
|
|||
private Integer alarmLevel; //预警等级:-1 故障;1-红色预警;2-橙色预警;3-黄色预警
|
|||
|
|||
private Double value; //数值
|
|||
} |
Loading…
Reference in new issue