diff --git a/xymanager_admin/src/main/java/com/shxy/xymanager_admin/controller/TerminalAlarmController.java b/xymanager_admin/src/main/java/com/shxy/xymanager_admin/controller/TerminalAlarmController.java index a1cbdc1..97113e8 100644 --- a/xymanager_admin/src/main/java/com/shxy/xymanager_admin/controller/TerminalAlarmController.java +++ b/xymanager_admin/src/main/java/com/shxy/xymanager_admin/controller/TerminalAlarmController.java @@ -72,7 +72,6 @@ public class TerminalAlarmController extends BaseController { } } - @ApiOperation(value = "修改告警分类列表", notes = "修改告警分类列表", httpMethod = "POST") @ApiResponses({@ApiResponse(code = 200, message = "请求成功"), @ApiResponse(code = 400, message = "请求参数没填好"), @ApiResponse(code = 404, message = "请求路径没有或页面跳转路径不对")}) @RequestMapping("/updateAlarmTypeList") @@ -86,4 +85,30 @@ public class TerminalAlarmController extends BaseController { } } + @ApiOperation(value = "七天报警统计", notes = "七天报警统计接口", httpMethod = "POST") + @ApiResponses({@ApiResponse(code = 200, message = "请求成功"), @ApiResponse(code = 400, message = "请求参数没填好"), @ApiResponse(code = 404, message = "请求路径没有或页面跳转路径不对")}) + @RequestMapping("/getWeekAlarmStatistics") + @Log(title = "七天报警统计", type = "查询") + public ResponseReult getWeekAlarmStatistics(@Validated WeekAlarmVo vo) { + ServiceBody serviceBody = terminalAlarmService.getWeekAlarmStatistics(vo); + if (serviceBody.getCode() == ServiceStatus.SUCCESS) { + return ResponseReult.success(serviceBody.getData()); + } else { + return ResponseReult.error(serviceBody.getCode(), serviceBody.getMsg()); + } + } + + @ApiOperation(value = "当日报警统计", notes = "当日报警统计", httpMethod = "POST") + @ApiResponses({@ApiResponse(code = 200, message = "请求成功"), @ApiResponse(code = 400, message = "请求参数没填好"), @ApiResponse(code = 404, message = "请求路径没有或页面跳转路径不对")}) + @RequestMapping("/getTodayAlarmStatistics") + @Log(title = "七天报警统计", type = "查询") + public ResponseReult getTodayAlarmStatistics(@Validated WeekAlarmVo vo) { + ServiceBody serviceBody = terminalAlarmService.getTodayAlarmStatistics(vo); + if (serviceBody.getCode() == ServiceStatus.SUCCESS) { + return ResponseReult.success(serviceBody.getData()); + } else { + return ResponseReult.error(serviceBody.getCode(), serviceBody.getMsg()); + } + } + } diff --git a/xymanager_admin/src/main/java/com/shxy/xymanager_admin/controller/TerminalController.java b/xymanager_admin/src/main/java/com/shxy/xymanager_admin/controller/TerminalController.java index 1591143..dc1babf 100644 --- a/xymanager_admin/src/main/java/com/shxy/xymanager_admin/controller/TerminalController.java +++ b/xymanager_admin/src/main/java/com/shxy/xymanager_admin/controller/TerminalController.java @@ -224,4 +224,17 @@ public class TerminalController extends BaseController { } } + @ApiOperation(value = "装置统计", notes = "装置统计", httpMethod = "POST") + @ApiResponses({@ApiResponse(code = 200, message = "请求成功"), @ApiResponse(code = 400, message = "请求参数没填好"), @ApiResponse(code = 404, message = "请求路径没有或页面跳转路径不对")}) + @RequestMapping("/getTermStatistics") + @Log(title = "装置统计", type = "查询") + public ResponseReult getTermStatistics() { + ServiceBody serviceBody = terminalService.getTermStatistics(); + if (serviceBody.getCode() == ServiceStatus.SUCCESS) { + return ResponseReult.success(serviceBody.getData()); + } else { + return ResponseReult.error(serviceBody.getCode(), serviceBody.getMsg()); + } + } + } diff --git a/xymanager_admin/src/test/java/com/shxy/xymanager_admin/XymanagerAdminApplicationTests.java b/xymanager_admin/src/test/java/com/shxy/xymanager_admin/XymanagerAdminApplicationTests.java index 5d46c3e..a0a8507 100644 --- a/xymanager_admin/src/test/java/com/shxy/xymanager_admin/XymanagerAdminApplicationTests.java +++ b/xymanager_admin/src/test/java/com/shxy/xymanager_admin/XymanagerAdminApplicationTests.java @@ -20,6 +20,7 @@ import org.junit.jupiter.api.Test; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.boot.test.context.SpringBootTest; +import java.math.BigInteger; import java.sql.Time; import java.util.ArrayList; import java.util.Date; @@ -313,11 +314,19 @@ class XymanagerAdminApplicationTests { // Lines line = cacheService.getLine(108); // System.out.println(line); - ArrayList list = new ArrayList<>(); - list.add("dfsaf"); - list.add("ewrqer"); - list.add("wfsakfd"); - System.out.println(list.toArray()); +// ArrayList list = new ArrayList<>(); +// list.add("dfsaf"); +// list.add("ewrqer"); +// list.add("wfsakfd"); +// System.out.println(list.toArray()); + +// Date date = MyDateUtils.date(1689846097752l); +// +// DateTime dateTime1 = MyDateUtils.offsetDay(date, -1); +// DateTime dateTime2 = MyDateUtils.offsetDay(date, -2); +// DateTime dateTime3 = MyDateUtils.offsetDay(date, -3); +// DateTime dateTime4 = MyDateUtils.offsetDay(date, -4); +// System.out.println(dateTime1.toString()); } diff --git a/xymanager_common/src/main/java/com/shxy/xymanager_common/dto/GroupAlarmType.java b/xymanager_common/src/main/java/com/shxy/xymanager_common/dto/GroupAlarmType.java new file mode 100644 index 0000000..da3e88c --- /dev/null +++ b/xymanager_common/src/main/java/com/shxy/xymanager_common/dto/GroupAlarmType.java @@ -0,0 +1,21 @@ +package com.shxy.xymanager_common.dto; + +import lombok.Data; + +import java.io.Serializable; +import java.math.BigInteger; + +@Data +public class GroupAlarmType implements Serializable { + + private BigInteger num; + + private Integer label; + + private String name; + + private String enname; + + private static final long serialVersionUID = 1L; + +} \ No newline at end of file diff --git a/xymanager_common/src/main/java/com/shxy/xymanager_common/model/DyLineTreeListModel.java b/xymanager_common/src/main/java/com/shxy/xymanager_common/model/DyLineTreeListModel.java index 279fdd5..a01cdd6 100644 --- a/xymanager_common/src/main/java/com/shxy/xymanager_common/model/DyLineTreeListModel.java +++ b/xymanager_common/src/main/java/com/shxy/xymanager_common/model/DyLineTreeListModel.java @@ -85,6 +85,5 @@ public class DyLineTreeListModel implements Serializable { @ApiModelProperty(value = "在线状态", example = "0--掉线1--在线") private Integer onlinestatus; - } } diff --git a/xymanager_common/src/main/java/com/shxy/xymanager_common/model/TerminalChannelMapperListModel.java b/xymanager_common/src/main/java/com/shxy/xymanager_common/model/TerminalChannelMapperListModel.java index 4c54bc6..481df76 100644 --- a/xymanager_common/src/main/java/com/shxy/xymanager_common/model/TerminalChannelMapperListModel.java +++ b/xymanager_common/src/main/java/com/shxy/xymanager_common/model/TerminalChannelMapperListModel.java @@ -17,6 +17,19 @@ public class TerminalChannelMapperListModel implements Serializable { @ApiModelProperty(value = "gps开关", example = "0--关闭 1--开启") private Integer gpsstatus; + + @ApiModelProperty(value = "电压编号", example = "123") + private Integer dyId; + + @ApiModelProperty(value = "线路编号", example = "123") + private Integer lineId; + + @ApiModelProperty(value = "杆塔编号", example = "123") + private Integer towerId; + + @ApiModelProperty(value = "装置编号", example = "123456") + private Integer termId; + @ApiModelProperty(value = "通道关联表和通道列表对象", example = "[]") private List list; diff --git a/xymanager_common/src/main/java/com/shxy/xymanager_common/model/TerminalStatisticsModel.java b/xymanager_common/src/main/java/com/shxy/xymanager_common/model/TerminalStatisticsModel.java new file mode 100644 index 0000000..375bf64 --- /dev/null +++ b/xymanager_common/src/main/java/com/shxy/xymanager_common/model/TerminalStatisticsModel.java @@ -0,0 +1,32 @@ +package com.shxy.xymanager_common.model; + +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +import java.io.Serializable; +import java.math.BigInteger; + +/** + * 设备统计表 + */ +@Data +@ApiModel(value = "设备统计表", description = "设备统计表返回") +public class TerminalStatisticsModel implements Serializable { + + @ApiModelProperty(value = "装置总数", example = "123456") + private Integer totalNum; + + @ApiModelProperty(value = "装置在线数量", example = "123456") + private Integer onlineNum; + + @ApiModelProperty(value = "装置不在线数量", example = "123456") + private Integer offlineNum; + + @ApiModelProperty(value = "装置在线数量百分比", example = "12345678") + private double onlinePercent; + + @ApiModelProperty(value = "装置不在线数量百分比", example = "12345678") + private double offlinePercent; + +} diff --git a/xymanager_common/src/main/java/com/shxy/xymanager_common/model/TerminalTodayAlarmStatisticsModel.java b/xymanager_common/src/main/java/com/shxy/xymanager_common/model/TerminalTodayAlarmStatisticsModel.java new file mode 100644 index 0000000..f69986e --- /dev/null +++ b/xymanager_common/src/main/java/com/shxy/xymanager_common/model/TerminalTodayAlarmStatisticsModel.java @@ -0,0 +1,34 @@ +package com.shxy.xymanager_common.model; + +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +import java.io.Serializable; +import java.math.BigInteger; +import java.util.Date; +import java.util.List; + +/** + * 设备当日分类告警统计 + */ +@Data +@ApiModel(value = "设备当日分类告警统计", description = "设备当日分类告警统计返回") +public class TerminalTodayAlarmStatisticsModel implements Serializable { + + @ApiModelProperty(value = "告警列表", example = "123456") + private List list; + + @Data + public static class TodayAlarmItem { + @ApiModelProperty(value = "告警类型名称", example = "123456") + private String enname; + + @ApiModelProperty(value = "告警数量", example = "AAAA") + private BigInteger num; + + @ApiModelProperty(value = "告警类型", example = "123456") + private Integer label; + } + +} diff --git a/xymanager_common/src/main/java/com/shxy/xymanager_common/model/TerminalWeekAlarmStatisticsModel.java b/xymanager_common/src/main/java/com/shxy/xymanager_common/model/TerminalWeekAlarmStatisticsModel.java new file mode 100644 index 0000000..b34a5ff --- /dev/null +++ b/xymanager_common/src/main/java/com/shxy/xymanager_common/model/TerminalWeekAlarmStatisticsModel.java @@ -0,0 +1,31 @@ +package com.shxy.xymanager_common.model; + +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +import java.io.Serializable; +import java.math.BigInteger; +import java.util.Date; +import java.util.List; + +/** + * 设备7天告警统计 + */ +@Data +@ApiModel(value = "设备7天告警统计", description = "设备7天告警统计返回") +public class TerminalWeekAlarmStatisticsModel implements Serializable { + + @ApiModelProperty(value = "告警列表", example = "123456") + private List list; + + @Data + public static class AlarmItem { + @ApiModelProperty(value = "日期", example = "123456") + private Date date; + + @ApiModelProperty(value = "告警数量", example = "AAAA") + private BigInteger num; + } + +} diff --git a/xymanager_common/src/main/java/com/shxy/xymanager_common/util/xinyin/TerminalUtils.java b/xymanager_common/src/main/java/com/shxy/xymanager_common/util/xinyin/TerminalUtils.java index a264c0c..e001e95 100644 --- a/xymanager_common/src/main/java/com/shxy/xymanager_common/util/xinyin/TerminalUtils.java +++ b/xymanager_common/src/main/java/com/shxy/xymanager_common/util/xinyin/TerminalUtils.java @@ -304,11 +304,21 @@ public class TerminalUtils { photoBean.setDisplayname(terminals.getDisplayName()); photoBean.setLineid(terminals.getLineid()); photoBean.setLinename(lineMap.get(terminals.getLineid()).getName()); - photoBean.setChannelid(item.getChannelId()); + Integer channelId = item.getChannelId(); + photoBean.setChannelid(channelId); photoBean.setCmdid(terminals.getCmdid()); - photoBean.setChannnelname(termchannelMap.get(item.getChannelId()).getChannelName()); - - photoBean.setAlias(termchannelMapMap.get(item.getTermId() + "#" + item.getChannelId()).getAlias()); + if (termchannelMap != null) { + TerminalChannels terminalChannels = termchannelMap.get(channelId); + if (terminalChannels != null) { + photoBean.setChannnelname(terminalChannels.getChannelName()); + } + } + if (termchannelMapMap != null) { + TerminalChannelMapper terminalChannelMapper = termchannelMapMap.get(item.getTermId() + "#" + channelId); + if (terminalChannelMapper != null) { + photoBean.setAlias(terminalChannelMapper.getAlias()); + } + } photoBean.setMediaType(item.getMediaType()); photoBean.setOrginalid(item.getOrginalId()); String photoPath = TerminalUtils.getPhotoPath(mediaType, requestIp, item.getPath()); diff --git a/xymanager_common/src/main/java/com/shxy/xymanager_common/vo/TerminalAndChannelIdAndTimeVo.java b/xymanager_common/src/main/java/com/shxy/xymanager_common/vo/TerminalAndChannelIdAndTimeVo.java index 0357b09..54ab440 100644 --- a/xymanager_common/src/main/java/com/shxy/xymanager_common/vo/TerminalAndChannelIdAndTimeVo.java +++ b/xymanager_common/src/main/java/com/shxy/xymanager_common/vo/TerminalAndChannelIdAndTimeVo.java @@ -19,9 +19,10 @@ public class TerminalAndChannelIdAndTimeVo { private Integer terminalid; @NotNull(message = "通道编号不能缺少") - @ApiModelProperty(value = "通道编号", example = "-1---全部") + @ApiModelProperty(value = "通道编号", example = "123455") private Integer channelid; + @NotNull(message = "查询时间不能缺少") @ApiModelProperty(value = "查询时间", example = "123455") private Date time; diff --git a/xymanager_common/src/main/java/com/shxy/xymanager_common/vo/WeekAlarmVo.java b/xymanager_common/src/main/java/com/shxy/xymanager_common/vo/WeekAlarmVo.java new file mode 100644 index 0000000..d7777ce --- /dev/null +++ b/xymanager_common/src/main/java/com/shxy/xymanager_common/vo/WeekAlarmVo.java @@ -0,0 +1,19 @@ +package com.shxy.xymanager_common.vo; + +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +import javax.validation.constraints.NotNull; +import java.math.BigInteger; +import java.util.Date; + +@Data +@ApiModel(value = "装置7天告警请求参数对象", description = "装置7天告警请求参数对象") +public class WeekAlarmVo { + + @NotNull(message = "查询时间不能缺少") + @ApiModelProperty(value = "查询时间", example = "123455") + private BigInteger starttime; + +} diff --git a/xymanager_dao/src/main/java/com/shxy/xymanager_dao/dao/TerminalImgAlarmsDao.java b/xymanager_dao/src/main/java/com/shxy/xymanager_dao/dao/TerminalImgAlarmsDao.java index 7bd8612..b714b9a 100644 --- a/xymanager_dao/src/main/java/com/shxy/xymanager_dao/dao/TerminalImgAlarmsDao.java +++ b/xymanager_dao/src/main/java/com/shxy/xymanager_dao/dao/TerminalImgAlarmsDao.java @@ -1,5 +1,6 @@ package com.shxy.xymanager_dao.dao; +import com.shxy.xymanager_common.dto.GroupAlarmType; import com.shxy.xymanager_common.dto.TerminalImgAlarmsDto; import com.shxy.xymanager_common.entity.TerminalImgAlarmParams; import com.shxy.xymanager_common.entity.TerminalImgAlarms; @@ -17,6 +18,10 @@ public interface TerminalImgAlarmsDao { TerminalImgAlarms selectByPrimaryKey(Long id); + long countAlarmsDetails(@Param("labellist") List labellist, @Param("starttime") BigInteger starttime, @Param("endtime") BigInteger endtime); + + List groupAlarmsDetails(@Param("labellist") List labellist, @Param("starttime") BigInteger starttime, @Param("endtime") BigInteger endtime); + List selectAlarmsDetails(@Param("terminalidlist") List termidlist, @Param("labellist") List labellist, @Param("starttime") BigInteger starttime, @Param("endtime") BigInteger endtime); int updateByPrimaryKeySelective(TerminalImgAlarms record); diff --git a/xymanager_dao/src/main/java/com/shxy/xymanager_dao/dao/TerminalsDao.java b/xymanager_dao/src/main/java/com/shxy/xymanager_dao/dao/TerminalsDao.java index 6f076c7..77c9e47 100644 --- a/xymanager_dao/src/main/java/com/shxy/xymanager_dao/dao/TerminalsDao.java +++ b/xymanager_dao/src/main/java/com/shxy/xymanager_dao/dao/TerminalsDao.java @@ -20,6 +20,8 @@ public interface TerminalsDao { List selectTermAndStatusList(@Param("status") Integer status, @Param("dyid") Integer dyid, @Param("lineid") Integer lineid, @Param("towerid") Integer towerid, @Param("search") String search); + List selectTermAndStatusStatisticsList(@Param("status") Integer status); + Terminals selectByCmdid(@Param("cmdid") String cmdid, @Param("status") Integer status); List selectByTowerId(@Param("towerid") Integer towerid, @Param("status") Integer status); diff --git a/xymanager_dao/src/main/resources/mappers/TerminalImgAlarmsDao.xml b/xymanager_dao/src/main/resources/mappers/TerminalImgAlarmsDao.xml index f45f87d..7080ac4 100644 --- a/xymanager_dao/src/main/resources/mappers/TerminalImgAlarmsDao.xml +++ b/xymanager_dao/src/main/resources/mappers/TerminalImgAlarmsDao.xml @@ -30,6 +30,13 @@ + + + + + + + id, term_id, channel_id, preset_id, photo_org_id,alarm_info, alarm_time, create_time @@ -84,6 +91,54 @@ order by a.alarm_time desc + + + + delete from terminal_img_alarms where id = #{id,jdbcType=BIGINT} diff --git a/xymanager_dao/src/main/resources/mappers/TerminalsDao.xml b/xymanager_dao/src/main/resources/mappers/TerminalsDao.xml index 3128924..43a1db3 100644 --- a/xymanager_dao/src/main/resources/mappers/TerminalsDao.xml +++ b/xymanager_dao/src/main/resources/mappers/TerminalsDao.xml @@ -154,6 +154,38 @@ order by d.create_time desc + +