Merge pull request #70 from zhitan-cloud/wt_from_develop1.0
Wt from develop1.0
ÎļþÃû´Ó zhitan-admin/src/main/java/com/zhitan/web/controller/alarm/AlarmAnalyisisController.java ÐÞ¸Ä |
| | |
| | | |
| | | import com.zhitan.alarm.domain.dto.AlarmAnalysisDTO; |
| | | import com.zhitan.alarm.domain.vo.AlarmAnalysisVO; |
| | | import com.zhitan.alarm.services.IAlarmAnalyisisService; |
| | | import com.zhitan.alarm.services.IAlarmAnalysisService; |
| | | import com.zhitan.common.core.controller.BaseController; |
| | | import com.zhitan.common.core.domain.AjaxResult; |
| | | import org.springframework.beans.factory.annotation.Autowired; |
| | | import org.springframework.util.ObjectUtils; |
| | | import org.springframework.validation.annotation.Validated; |
| | | import org.springframework.web.bind.annotation.GetMapping; |
| | | import org.springframework.web.bind.annotation.RequestMapping; |
| | | import org.springframework.web.bind.annotation.RestController; |
| | | |
| | | /** |
| | | geng * description æ¥è¦åæç¸å
³åè½ |
| | | * description æ¥è¦åæç¸å
³åè½ |
| | | * |
| | | * @author hmj |
| | | * @date 2024-10-26 17:31 |
| | | * @author zhitan |
| | | * @date |
| | | */ |
| | | @RestController |
| | | @RequestMapping("/alarmAnalysis") |
| | | public class AlarmAnalyisisController extends BaseController { |
| | | public class AlarmAnalysisController extends BaseController { |
| | | @Autowired |
| | | private IAlarmAnalyisisService alarmAnalyisisService; |
| | | private IAlarmAnalysisService alarmAnalysisService; |
| | | |
| | | @GetMapping("/getByNodeId") |
| | | public AjaxResult getByNodeId(@Validated AlarmAnalysisDTO alarmAnalysisDTO){ |
| | | AlarmAnalysisVO alarmAnalysisVO = alarmAnalyisisService.getByNodeId(alarmAnalysisDTO); |
| | | AlarmAnalysisVO alarmAnalysisVO = alarmAnalysisService.getByNodeId(alarmAnalysisDTO); |
| | | return AjaxResult.success(alarmAnalysisVO); |
| | | } |
| | | |
| | | @GetMapping("/getCountInfo") |
| | | public AjaxResult getCountInfo(@Validated AlarmAnalysisDTO alarmAnalysisDTO){ |
| | | AlarmAnalysisVO alarmAnalysisVO = alarmAnalyisisService.getCountInfo(alarmAnalysisDTO); |
| | | |
| | | if(ObjectUtils.isEmpty(alarmAnalysisDTO.getModelCode())){ |
| | | return AjaxResult.error("模åç¼ç ä¸è½ä¸ºç©º"); |
| | | } |
| | | AlarmAnalysisVO alarmAnalysisVO = alarmAnalysisService.getCountInfo(alarmAnalysisDTO); |
| | | return AjaxResult.success(alarmAnalysisVO); |
| | | } |
| | | } |
| | |
| | | import com.zhitan.common.enums.BusinessType; |
| | | import com.zhitan.common.utils.poi.ExcelUtil; |
| | | import com.zhitan.framework.web.service.TokenService; |
| | | import com.zhitan.model.domain.ModelNode; |
| | | import com.zhitan.realtimedata.domain.TagValue; |
| | | import com.zhitan.realtimedata.service.RealtimeDatabaseService; |
| | | import io.swagger.annotations.Api; |
| | |
| | | public class HistoryAlarmController extends BaseController |
| | | { |
| | | @Autowired |
| | | private IHistoryAlarmService iHistoryAlarmService; |
| | | |
| | | @Autowired |
| | | private TokenService tokenService; |
| | | private IHistoryAlarmService historyAlarmService; |
| | | |
| | | @Autowired |
| | | private RealtimeDatabaseService realtimeDatabaseService; |
| | |
| | | * å岿¥è¦ é¡µé¢ æ ¹æ® èç¹ç®å½å æ¡ä»¶æ¥è¯¢ |
| | | */ |
| | | @ApiOperation("å岿¥è¦æ¥è¯¢") |
| | | // @PreAuthorize("@ss.hasPermi('energyAlarm:historicalAlarm:list')") |
| | | @PreAuthorize("@ss.hasPermi('energyAlarm:historicalAlarm:list')") |
| | | @GetMapping("/list") |
| | | public TableDataInfo list(JkHistoryAlarm jkHistoryAlarm,Long pageNum,Long pageSize) |
| | | public TableDataInfo list(JkHistoryAlarm jkHistoryAlarm) |
| | | { |
| | | Page<JkHistoryAlarm> list = iHistoryAlarmService.selectJkHistoryAlarmPage(jkHistoryAlarm,pageNum,pageSize); |
| | | return getDataTable(list); |
| | | return getDataTable(historyAlarmService.selectHistoryAlarmPageList(jkHistoryAlarm)); |
| | | } |
| | | /** |
| | | * 导åºå岿¥è¦çæ§å表 |
| | |
| | | @GetMapping("/export") |
| | | public AjaxResult export(JkHistoryAlarm jkHistoryAlarm) |
| | | { |
| | | List<JkHistoryAlarm> list = iHistoryAlarmService.selectJkHistoryAlarmListExcel(jkHistoryAlarm); |
| | | List<JkHistoryAlarm> list = historyAlarmService.selectJkHistoryAlarmListExcel(jkHistoryAlarm); |
| | | ExcelUtil<JkHistoryAlarm> util = new ExcelUtil<JkHistoryAlarm>(JkHistoryAlarm.class); |
| | | return util.exportExcel(list, "alarm"); |
| | | } |
| | |
| | | public TableDataInfo listNote(JkHistoryAlarm jkHistoryAlarm) |
| | | { |
| | | startPage(); |
| | | List<JkHistoryAlarm> list = iHistoryAlarmService.selectHistoryAlarmNoteList(jkHistoryAlarm); |
| | | List<JkHistoryAlarm> list = historyAlarmService.selectHistoryAlarmNoteList(jkHistoryAlarm); |
| | | return getDataTable(list); |
| | | } |
| | | } |
| | |
| | | public String login(String username, String password, String code, String uuid) |
| | | { |
| | | // éªè¯ç æ ¡éª |
| | | validateCaptcha(username, code, uuid); |
| | | // validateCaptcha(username, code, uuid); |
| | | // ç»å½åç½®æ ¡éª |
| | | loginPreCheck(username, password); |
| | | // ç¨æ·éªè¯ |
| | |
| | | import com.fasterxml.jackson.annotation.JsonFormat; |
| | | import com.zhitan.common.annotation.Excel; |
| | | import io.swagger.annotations.ApiModelProperty; |
| | | import lombok.Data; |
| | | import lombok.Getter; |
| | | import lombok.Setter; |
| | | |
| | |
| | | * @author hmj |
| | | * @date 2024-10-16 17:55 |
| | | */ |
| | | @Getter |
| | | @Setter |
| | | @Data |
| | | public class AlarmAnalysisDTO { |
| | | @ApiModelProperty(value = "èç¹id") |
| | | private String nodeId; |
| | |
| | | /** |
| | | * ç»è®¡å¼å§æ¶é´ |
| | | */ |
| | | @ApiModelProperty(value = "ç»è®¡å¼å§æ¶é´") |
| | | @JsonFormat(pattern="yyyy-MM-dd HH:mm:ss") |
| | | @Excel(name = "æ¥è¦å¼å§æ¶é´", dateFormat = "yyyy-MM-dd HH:mm:ss") |
| | | private Date beginTime; |
| | | |
| | | /** |
| | | * ç»è®¡å¼å§æ¶é´ |
| | | * ç»è®¡ç»ææ¶é´ |
| | | */ |
| | | @ApiModelProperty(value = "ç»è®¡ç»ææ¶é´") |
| | | @JsonFormat(pattern="yyyy-MM-dd HH:mm:ss") |
| | | @Excel(name = "æ¥è¦å¼å§æ¶é´", dateFormat = "yyyy-MM-dd HH:mm:ss") |
| | | @Excel(name = "æ¥è¦ç»ææ¶é´", dateFormat = "yyyy-MM-dd HH:mm:ss") |
| | | private Date endTime; |
| | | |
| | | /** 模åç¼ç */ |
| | | /** |
| | | * 模åç¼ç |
| | | */ |
| | | @ApiModelProperty(value = "模åç¼ç ") |
| | | @Excel(name = "模åç¼ç ") |
| | | private String modelCode; |
| | | } |
| | |
| | | import com.zhitan.alarm.domain.JkHistoryAlarm; |
| | | import org.apache.ibatis.annotations.Param; |
| | | |
| | | import java.util.Date; |
| | | import java.util.List; |
| | | |
| | | /** |
| | |
| | | */ |
| | | public interface HistoryAlarmMapper { |
| | | |
| | | /** |
| | | * è·åå岿¥è¦éå |
| | | * |
| | | * @param jkHistoryAlarm æ¥è¦åæ° |
| | | * @return 颿¥è¦è®¾ç½®éå |
| | | */ |
| | | List<JkHistoryAlarm> selectJkHistoryAlarmList(JkHistoryAlarm jkHistoryAlarm); |
| | | /** |
| | | * è·åå岿¥è¦éå |
| | | * |
| | | * @param jkHistoryAlarm æ¥è¦åæ° |
| | | * @return 颿¥è¦è®¾ç½®éå |
| | | */ |
| | | List<JkHistoryAlarm> selectJkHistoryAlarmList(JkHistoryAlarm jkHistoryAlarm); |
| | | |
| | | List<JkHistoryAlarm> selectJkHistoryAlarmListExcel(JkHistoryAlarm jkHistoryAlarm); |
| | | List<JkHistoryAlarm> selectJkHistoryAlarmListExcel(JkHistoryAlarm jkHistoryAlarm); |
| | | |
| | | /** |
| | | * 宿¶æ£æµ åè½ çå¤ sheet页 å±ç¤º ç»æå¾ æµç¹ æ¥è¦ä¿¡æ¯ |
| | | * |
| | | * @param jkHistoryAlarm |
| | | * @return |
| | | */ |
| | | List<JkHistoryAlarm> selectHistoryAlarmNoteList(JkHistoryAlarm jkHistoryAlarm); |
| | | /** |
| | | * 宿¶æ£æµ åè½ çå¤ sheet页 å±ç¤º ç»æå¾ æµç¹ æ¥è¦ä¿¡æ¯ |
| | | * |
| | | * @param jkHistoryAlarm |
| | | * @return |
| | | */ |
| | | List<JkHistoryAlarm> selectHistoryAlarmNoteList(JkHistoryAlarm jkHistoryAlarm); |
| | | |
| | | void updateHistoryAlarm(@Param("alarmCode") String alarmCode, |
| | | @Param("historyAlarm") HistoryAlarm historyAlarm); |
| | | void updateHistoryAlarm(@Param("alarmCode") String alarmCode, @Param("historyAlarm") HistoryAlarm historyAlarm); |
| | | |
| | | Page<JkHistoryAlarm> selectJkHistoryAlarmPage(@Param("jkHistoryAlarm") JkHistoryAlarm jkHistoryAlarm,@Param("page")Page<?> page); |
| | | Page<JkHistoryAlarm> selectJkHistoryAlarmPage(@Param("jkHistoryAlarm") JkHistoryAlarm jkHistoryAlarm, @Param("page") Page<?> page); |
| | | |
| | | Integer selectCountByTime(@Param("beginTime") DateTime beginTime, @Param("endTime") DateTime endTime); |
| | | Integer selectCountByTime(@Param("beginTime") DateTime beginTime, |
| | | @Param("endTime") DateTime endTime, |
| | | @Param("indexIdList") List<String> indexIdList); |
| | | |
| | | Page<JkHistoryAlarm> getHistoryAlarmList(@Param("beginTime") Date beginTime, |
| | | @Param("endTime") Date endTime, |
| | | @Param("indexIdList") List<String> indexIdList, |
| | | Page<JkHistoryAlarm> pageInfo); |
| | | } |
ÎļþÃû´Ó zhitan-system/src/main/java/com/zhitan/alarm/services/IAlarmAnalyisisService.java ÐÞ¸Ä |
| | |
| | | import com.zhitan.alarm.domain.vo.AlarmAnalysisVO; |
| | | |
| | | /** |
| | | * description todu |
| | | * æ¥è¦åææ¥å£ |
| | | * |
| | | * @author hmj |
| | | * @date 2024-10-26 17:33 |
| | | * @author zhitan |
| | | * @date |
| | | */ |
| | | public interface IAlarmAnalyisisService { |
| | | public interface IAlarmAnalysisService { |
| | | |
| | | AlarmAnalysisVO getByNodeId(AlarmAnalysisDTO alarmAnalysisDTO); |
| | | |
| | | /** |
| | | * æ¥è¦åæç»è®¡ |
| | | * |
| | | * @param alarmAnalysisDTO |
| | | * @return |
| | | */ |
| | | AlarmAnalysisVO getCountInfo(AlarmAnalysisDTO alarmAnalysisDTO); |
| | | } |
| | |
| | | |
| | | void updateHistoryAlarm(String alarmCode, HistoryAlarm historyAlarm); |
| | | |
| | | Page<JkHistoryAlarm> selectJkHistoryAlarmPage(JkHistoryAlarm jkHistoryAlarm, Long pageNum, Long pageSize); |
| | | /** |
| | | * å岿¥è¦å页æ¥è¯¢ |
| | | * @param jkHistoryAlarm |
| | | * @return |
| | | */ |
| | | Page<JkHistoryAlarm> selectHistoryAlarmPageList(JkHistoryAlarm jkHistoryAlarm); |
| | | } |
| | |
| | | |
| | | import cn.hutool.core.date.DateTime; |
| | | import cn.hutool.core.date.DateUtil; |
| | | import com.baomidou.mybatisplus.core.toolkit.ObjectUtils; |
| | | import com.zhitan.alarm.domain.JkHistoryAlarm; |
| | | import com.zhitan.alarm.domain.dto.AlarmAnalysisDTO; |
| | | import com.zhitan.alarm.domain.vo.AlarmAnalysisVO; |
| | | import com.zhitan.alarm.mapper.HistoryAlarmMapper; |
| | | import com.zhitan.alarm.services.IAlarmAnalyisisService; |
| | | import com.zhitan.alarm.services.IAlarmAnalysisService; |
| | | import com.zhitan.basicdata.domain.MeterImplement; |
| | | import com.zhitan.basicdata.domain.SysEnergy; |
| | | import com.zhitan.basicdata.mapper.MeterImplementMapper; |
| | |
| | | import com.zhitan.consumptionanalysis.domain.vo.ChartData; |
| | | import com.zhitan.consumptionanalysis.domain.vo.EnergyProportion; |
| | | import com.zhitan.model.domain.EnergyIndex; |
| | | import com.zhitan.model.domain.ModelNode; |
| | | import com.zhitan.model.domain.vo.ModelNodeIndexInfo; |
| | | import com.zhitan.model.mapper.EnergyIndexMapper; |
| | | import com.zhitan.model.mapper.ModelNodeMapper; |
| | |
| | | import java.util.stream.Collectors; |
| | | |
| | | /** |
| | | * description todu |
| | | * æ¥è¦åæå®ç° |
| | | * |
| | | * @author hmj |
| | | * @date 2024-10-26 17:34 |
| | | * @author |
| | | * @date |
| | | */ |
| | | @Service |
| | | @AllArgsConstructor |
| | | public class AlarmAnalyisisServiceImpl implements IAlarmAnalyisisService { |
| | | public class AlarmAnalyisisServiceImpl implements IAlarmAnalysisService { |
| | | |
| | | private final ModelNodeMapper modelNodeMapper; |
| | | |
| | |
| | | private final EnergyIndexMapper energyIndexMapper; |
| | | |
| | | private final SysEnergyMapper sysEnergyMapper; |
| | | |
| | | /** |
| | | * æ ¹æ®èç¹idè·åæ¥è¦åæä¿¡æ¯ |
| | | * |
| | | * @param alarmAnalysisDTO |
| | | * @return |
| | | */ |
| | | @Override |
| | | public AlarmAnalysisVO getByNodeId(AlarmAnalysisDTO alarmAnalysisDTO) { |
| | | AlarmAnalysisVO alarmAnalysisVO = new AlarmAnalysisVO(); |
| | |
| | | return alarmAnalysisVO; |
| | | } |
| | | |
| | | |
| | | @Override |
| | | public AlarmAnalysisVO getCountInfo(AlarmAnalysisDTO alarmAnalysisDTO) { |
| | | AlarmAnalysisVO alarmAnalysisVO = new AlarmAnalysisVO(); |
| | | final String nodeId = alarmAnalysisDTO.getNodeId(); |
| | | final DateTime beginOfMonth = DateUtil.beginOfMonth(new Date()); |
| | | final DateTime endOfMonth = DateUtil.endOfMonth(new Date()); |
| | | final DateTime beginOfYear = DateUtil.beginOfYear(new Date()); |
| | | final DateTime endOfYear = DateUtil.endOfYear(new Date()); |
| | | |
| | | /** |
| | | * æ¥è¯¢ç¹ä½ä¸ç¨è½åå
ä¿¡æ¯ |
| | | */ |
| | | List<ModelNodeIndexInfo> nodeIndexInforList = modelNodeMapper.getModelNodeIndexIdByNodeId(nodeId,null); |
| | | List<String> indexIds = nodeIndexInforList.stream().map(ModelNodeIndexInfo::getIndexId).collect(Collectors.toList()); |
| | | |
| | | Integer monthCount = historyAlarmMapper.selectCountByTime(beginOfMonth,endOfMonth); |
| | | Integer yearCount = historyAlarmMapper.selectCountByTime(beginOfYear,endOfYear); |
| | | |
| | | alarmAnalysisVO.setIndexCount(indexIds.size()); |
| | | alarmAnalysisVO.setMonthCount(monthCount); |
| | | alarmAnalysisVO.setYearCount(yearCount); |
| | | return alarmAnalysisVO; |
| | | } |
| | | |
| | | private double format2Double(double averageEnergy) { |
| | | // å建DecimalFormat对象ï¼è®¾ç½®ä¿ç两ä½å°æ° |
| | | DecimalFormat df = new DecimalFormat("#.00"); |
| | |
| | | String formattedResult = df.format(averageEnergy); |
| | | return Double.valueOf(formattedResult); |
| | | } |
| | | |
| | | /** |
| | | * è·åæ¥è¦åæç»è®¡ä¿¡æ¯ |
| | | * @param alarmAnalysisDTO |
| | | * @return |
| | | */ |
| | | @Override |
| | | public AlarmAnalysisVO getCountInfo(AlarmAnalysisDTO alarmAnalysisDTO) { |
| | | |
| | | AlarmAnalysisVO alarmAnalysisVO = new AlarmAnalysisVO(); |
| | | |
| | | ModelNode parentNode = modelNodeMapper.selectModelNodeById(alarmAnalysisDTO.getNodeId()); |
| | | if(ObjectUtils.isEmpty(parentNode)){ |
| | | return alarmAnalysisVO; |
| | | } |
| | | |
| | | // æ¥è¯¢æ¨¡åä¸çç¹ä½æ°æ® |
| | | List<ModelNodeIndexInfo> nodeIndexInfoList = modelNodeMapper.getAllModelNodeIndexByAddress(parentNode.getModelCode(), parentNode.getAddress()); |
| | | alarmAnalysisVO.setIndexCount(nodeIndexInfoList.size()); |
| | | if (CollectionUtils.isEmpty(nodeIndexInfoList)) { |
| | | return alarmAnalysisVO; |
| | | } |
| | | |
| | | // è·åææ¥è¦æ°ãå¹´æ¥è¦æ° |
| | | List<String> indexIdList = nodeIndexInfoList.stream().map(ModelNodeIndexInfo::getIndexId).collect(Collectors.toList()); |
| | | |
| | | DateTime beginOfMonth = DateUtil.beginOfMonth(new Date()); |
| | | DateTime endOfMonth = DateUtil.endOfMonth(new Date()); |
| | | DateTime beginOfYear = DateUtil.beginOfYear(new Date()); |
| | | DateTime endOfYear = DateUtil.endOfYear(new Date()); |
| | | Integer monthCount = historyAlarmMapper.selectCountByTime(beginOfMonth,endOfMonth, indexIdList); |
| | | Integer yearCount = historyAlarmMapper.selectCountByTime(beginOfYear,endOfYear, indexIdList); |
| | | |
| | | alarmAnalysisVO.setMonthCount(monthCount); |
| | | alarmAnalysisVO.setYearCount(yearCount); |
| | | return alarmAnalysisVO; |
| | | } |
| | | } |
| | |
| | | package com.zhitan.alarm.services.impl; |
| | | |
| | | import cn.hutool.core.date.DateUtil; |
| | | import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; |
| | | import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; |
| | | import com.baomidou.mybatisplus.core.toolkit.ObjectUtils; |
| | | import com.baomidou.mybatisplus.extension.plugins.pagination.Page; |
| | | import com.zhitan.alarm.domain.HistoryAlarm; |
| | | import com.zhitan.alarm.domain.JkHistoryAlarm; |
| | |
| | | import com.zhitan.basicdata.domain.MeterImplement; |
| | | import com.zhitan.basicdata.mapper.MeterImplementMapper; |
| | | import com.zhitan.common.enums.TimeType; |
| | | import com.zhitan.common.utils.DateUtils; |
| | | import com.zhitan.common.utils.PageUtils; |
| | | import com.zhitan.common.utils.StringUtils; |
| | | import com.zhitan.model.domain.EnergyIndex; |
| | | import com.zhitan.model.domain.ModelNode; |
| | | import com.zhitan.model.domain.NodeIndex; |
| | | import com.zhitan.model.domain.vo.ModelNodeIndexInfo; |
| | | import com.zhitan.model.mapper.EnergyIndexMapper; |
| | | import com.zhitan.model.mapper.ModelNodeMapper; |
| | | import com.zhitan.model.mapper.NodeIndexMapper; |
| | | import lombok.AllArgsConstructor; |
| | | import org.springframework.beans.factory.annotation.Autowired; |
| | | import org.springframework.stereotype.Service; |
| | | |
| | | import javax.annotation.Resource; |
| | | import java.util.ArrayList; |
| | | import java.util.Date; |
| | | import java.util.List; |
| | | import java.util.stream.Collectors; |
| | | |
| | | @AllArgsConstructor |
| | | |
| | | @Service |
| | | public class HistoryAlarmServiceImpl implements IHistoryAlarmService { |
| | | |
| | | @Autowired |
| | | private HistoryAlarmMapper historyAlarmMapper; |
| | | @Resource |
| | | private HistoryAlarmMapper historyAlarmMapper; |
| | | |
| | | @Autowired |
| | | private MeterImplementMapper meterImplementMapper; |
| | | @Resource |
| | | private MeterImplementMapper meterImplementMapper; |
| | | |
| | | @Autowired |
| | | private EnergyIndexMapper energyIndexMapper; |
| | | @Resource |
| | | private ModelNodeMapper modelNodeMapper; |
| | | @Resource |
| | | private NodeIndexMapper nodeIndexMapper; |
| | | @Resource |
| | | private EnergyIndexMapper energyIndexMapper; |
| | | |
| | | |
| | | @Override |
| | | public List<HistoryAlarm> getHistoryAlarm(Date beginTime, Date endTime) { |
| | | return null; |
| | | } |
| | | @Override |
| | | public List<HistoryAlarm> getHistoryAlarm(Date beginTime, Date endTime) { |
| | | return null; |
| | | } |
| | | |
| | | @Override |
| | | public List<HistoryAlarm> getHistoryAlarm(Date beginTime, Date endTime, TimeType timeType) { |
| | | return null; |
| | | } |
| | | @Override |
| | | public List<HistoryAlarm> getHistoryAlarm(Date beginTime, Date endTime, TimeType timeType) { |
| | | return null; |
| | | } |
| | | |
| | | @Override |
| | | public List<HistoryAlarm> getHistoryAlarm(Date beginTime, Date endTime, String alarmType) { |
| | | return null; |
| | | } |
| | | @Override |
| | | public List<HistoryAlarm> getHistoryAlarm(Date beginTime, Date endTime, String alarmType) { |
| | | return null; |
| | | } |
| | | |
| | | @Override |
| | | public List<JkHistoryAlarm> selectJkHistoryAlarmList(JkHistoryAlarm jkHistoryAlarm) { |
| | | return historyAlarmMapper.selectJkHistoryAlarmList(jkHistoryAlarm); |
| | | } |
| | | @Override |
| | | public List<JkHistoryAlarm> selectJkHistoryAlarmList(JkHistoryAlarm jkHistoryAlarm) { |
| | | return historyAlarmMapper.selectJkHistoryAlarmList(jkHistoryAlarm); |
| | | } |
| | | |
| | | @Override |
| | | public List<JkHistoryAlarm> selectJkHistoryAlarmListExcel(JkHistoryAlarm jkHistoryAlarm) { |
| | | return historyAlarmMapper.selectJkHistoryAlarmListExcel(jkHistoryAlarm); |
| | | } |
| | | @Override |
| | | public List<JkHistoryAlarm> selectJkHistoryAlarmListExcel(JkHistoryAlarm jkHistoryAlarm) { |
| | | return historyAlarmMapper.selectJkHistoryAlarmListExcel(jkHistoryAlarm); |
| | | } |
| | | |
| | | /** |
| | | * 宿¶æ£æµ åè½ çå¤ sheet页 å±ç¤º ç»æå¾ æµç¹ æ¥è¦ä¿¡æ¯ |
| | | * |
| | | * @param jkHistoryAlarm |
| | | * @return |
| | | */ |
| | | @Override |
| | | public List<JkHistoryAlarm> selectHistoryAlarmNoteList(JkHistoryAlarm jkHistoryAlarm) { |
| | | return historyAlarmMapper.selectHistoryAlarmNoteList(jkHistoryAlarm); |
| | | } |
| | | /** |
| | | * 宿¶æ£æµ åè½ çå¤ sheet页 å±ç¤º ç»æå¾ æµç¹ æ¥è¦ä¿¡æ¯ |
| | | * |
| | | * @param jkHistoryAlarm |
| | | * @return |
| | | */ |
| | | @Override |
| | | public List<JkHistoryAlarm> selectHistoryAlarmNoteList(JkHistoryAlarm jkHistoryAlarm) { |
| | | return historyAlarmMapper.selectHistoryAlarmNoteList(jkHistoryAlarm); |
| | | } |
| | | |
| | | @Override |
| | | public void updateHistoryAlarm(String alarmCode, HistoryAlarm historyAlarm) { |
| | | historyAlarmMapper.updateHistoryAlarm(alarmCode, historyAlarm); |
| | | } |
| | | @Override |
| | | public void updateHistoryAlarm(String alarmCode, HistoryAlarm historyAlarm) { |
| | | historyAlarmMapper.updateHistoryAlarm(alarmCode, historyAlarm); |
| | | } |
| | | |
| | | @Override |
| | | public Page<JkHistoryAlarm> selectJkHistoryAlarmPage(JkHistoryAlarm jkHistoryAlarm, Long pageNum, Long pageSize) { |
| | | final Page<JkHistoryAlarm> jkHistoryAlarmPage = historyAlarmMapper.selectJkHistoryAlarmPage(jkHistoryAlarm, new Page<>(pageNum, pageSize)); |
| | | jkHistoryAlarmPage.getRecords().forEach(alarm->{ |
| | | final String indexType = alarm.getIndexType(); |
| | | final String indexId = alarm.getIndexId(); |
| | | if("COLLECT".equals(indexType) && StringUtils.isEmpty(alarm.getEnergyId())){ |
| | | //æ ¹æ®nodeIdåindexId 廿¥è¯¢è®¡éå¨å
· |
| | | EnergyIndex energyIndex = energyIndexMapper.selectEnergyIndexById(indexId); |
| | | final MeterImplement meterImplement = meterImplementMapper.selectMeterImplementById(energyIndex.getMeterId()); |
| | | alarm.setEnergyId(meterImplement.getEnergyType()); |
| | | } |
| | | }); |
| | | return jkHistoryAlarmPage; |
| | | } |
| | | |
| | | /** |
| | | * è·åå岿¥è¦åé¡µæ°æ® |
| | | * |
| | | * @param historyAlarm |
| | | * @return |
| | | */ |
| | | @Override |
| | | public Page<JkHistoryAlarm> selectHistoryAlarmPageList(JkHistoryAlarm historyAlarm) { |
| | | Page<JkHistoryAlarm> pageInfo = PageUtils.getPageInfo(JkHistoryAlarm.class); |
| | | |
| | | List<String> indexIdList = new ArrayList<>(); |
| | | if ("ALL".equals(historyAlarm.getEierarchyFlag())) { |
| | | |
| | | ModelNode modelNode = modelNodeMapper.selectModelNodeById(historyAlarm.getNodeId()); |
| | | List<ModelNodeIndexInfo> modelNodeIndexInfoList = |
| | | modelNodeMapper.getAllModelNodeIndexByAddress(modelNode.getModelCode(), modelNode.getAddress()); |
| | | if (StringUtils.isNotEmpty(historyAlarm.getIndexName())) { |
| | | modelNodeIndexInfoList = modelNodeIndexInfoList.stream() |
| | | .filter(modelNodeIndexInfo -> modelNodeIndexInfo.getIndexName().contains(historyAlarm.getIndexName())) |
| | | .collect(Collectors.toList()); |
| | | } |
| | | if (ObjectUtils.isNotEmpty(historyAlarm.getIndexType())) { |
| | | modelNodeIndexInfoList = modelNodeIndexInfoList.stream() |
| | | .filter(modelNodeIndexInfo -> historyAlarm.getIndexType().equals(modelNodeIndexInfo.getIndexType())) |
| | | .collect(Collectors.toList()); |
| | | } |
| | | indexIdList = modelNodeIndexInfoList.stream().map(ModelNodeIndexInfo::getIndexId).collect(Collectors.toList()); |
| | | |
| | | } else { |
| | | |
| | | LambdaQueryWrapper<NodeIndex> queryWrapper = new LambdaQueryWrapper<>(); |
| | | queryWrapper.eq(NodeIndex::getNodeId, historyAlarm.getNodeId()); |
| | | List<NodeIndex> nodeIndexList = nodeIndexMapper.selectList(queryWrapper); |
| | | List<String> allIndexIdList = nodeIndexList.stream().map(NodeIndex::getIndexId).collect(Collectors.toList()); |
| | | if (ObjectUtils.isNotEmpty(allIndexIdList)) { |
| | | List<EnergyIndex> indexList = energyIndexMapper.selectEnergyIndexByIds(allIndexIdList); |
| | | if (ObjectUtils.isNotEmpty(historyAlarm.getIndexName())) { |
| | | indexList = indexList.stream().filter(energyIndex -> energyIndex.getName().contains(historyAlarm.getIndexName())).collect(Collectors.toList()); |
| | | } |
| | | if (ObjectUtils.isNotEmpty(historyAlarm.getIndexType())) { |
| | | indexList = indexList.stream().filter(energyIndex -> historyAlarm.getIndexType().equals(energyIndex.getIndexTypeCode())).collect(Collectors.toList()); |
| | | } |
| | | indexIdList = indexList.stream().map(EnergyIndex::getIndexId).collect(Collectors.toList()); |
| | | } |
| | | } |
| | | |
| | | if (ObjectUtils.isEmpty(indexIdList)) { |
| | | return pageInfo; |
| | | } |
| | | |
| | | //æ¶é´å¤ç 妿ä¸ä¼ æ¶é´é»è®¤æ¥è¯¢å½å¤©çæ°æ® |
| | | Date endTime = DateUtils.parseDate(historyAlarm.getEndTime()); |
| | | if (ObjectUtils.isEmpty(endTime)) { |
| | | endTime = DateUtil.endOfDay(DateUtils.getNowDate()); |
| | | } |
| | | Date beginTime = DateUtils.parseDate(historyAlarm.getBeginTime()); |
| | | if (ObjectUtils.isEmpty(beginTime)) { |
| | | beginTime = DateUtil.beginOfDay(DateUtils.getNowDate()); |
| | | } |
| | | |
| | | return historyAlarmMapper.getHistoryAlarmList(beginTime, endTime,indexIdList, pageInfo); |
| | | } |
| | | |
| | | } |
| | |
| | | @Param("energyType") String energyType, |
| | | @Param("timeType") TimeType timeType, |
| | | @Param("dateTimeMap") Map<String, LocalDateTime> dateTimeMap); |
| | | |
| | | /** |
| | | * éè¿èç¹å°åæ¥è¯¢èç¹ä¸ååèç¹ä¸çææç¹ä½ä¿¡æ¯ |
| | | */ |
| | | List<ModelNodeIndexInfo> getAllModelNodeIndexByAddress(@Param("modelCode") String modelCode, @Param("address") String address); |
| | | } |
| | |
| | | "http://mybatis.org/dtd/mybatis-3-mapper.dtd"> |
| | | <mapper namespace="com.zhitan.alarm.mapper.HistoryAlarmMapper"> |
| | | |
| | | <resultMap type="HistoryAlarm" id="HistoryAlarmResult"> |
| | | <resultMap type="com.zhitan.alarm.domain.HistoryAlarm" id="HistoryAlarmResult"> |
| | | <result property="id" column="id"/> |
| | | <result property="endTime" column="end_time"/> |
| | | <result property="indexId" column="index_id"/> |
| | |
| | | <result property="content" column="content"/> |
| | | </resultMap> |
| | | |
| | | <resultMap type="JkHistoryAlarm" id="JkHistoryAlarmResult"> |
| | | <resultMap type="com.zhitan.alarm.domain.JkHistoryAlarm" id="JkHistoryAlarmResult"> |
| | | <result property="modelName" column="modelname"/> |
| | | <result property="code" column="code"/> |
| | | <result property="indexName" column="indexname"/> |
| | |
| | | from history_alarm |
| | | </sql> |
| | | |
| | | <select id="selectHistoryAlarmList" parameterType="HistoryAlarm" resultMap="HistoryAlarmResult"> |
| | | <select id="selectHistoryAlarmList" parameterType="com.zhitan.alarm.domain.HistoryAlarm" resultMap="HistoryAlarmResult"> |
| | | <include refid="selectHistoryAlarmVo"/> |
| | | <where> |
| | | <if test="indexName != null and indexName != ''">and index_name like concat('%', |
| | |
| | | </select> |
| | | |
| | | |
| | | <update id="updateHistoryAlarm" parameterType="HistoryAlarm"> |
| | | <update id="updateHistoryAlarm" parameterType="com.zhitan.alarm.domain.HistoryAlarm"> |
| | | delete from realtime_alarm where alarm_code = #{alarmCode}; |
| | | insert into history_alarm |
| | | <trim prefix="(" suffix=")" suffixOverrides=","> |
| | |
| | | </delete> |
| | | |
| | | <!--åå² æ¥è¦åè¡¨é¡µé¢ ééç¹ ä¸»é¡µé¢å表æ¥è¯¢--> |
| | | <select id="selectJkHistoryAlarmList" parameterType="JkHistoryAlarm" |
| | | <select id="selectJkHistoryAlarmList" parameterType="com.zhitan.alarm.domain.JkHistoryAlarm" |
| | | resultMap="JkHistoryAlarmResult"> |
| | | SELECT |
| | | mo."name" AS modelname, |
| | |
| | | order by alarm_level,mo.node_id,limit_type asc |
| | | </select> |
| | | |
| | | <select id="selectJkHistoryAlarmListExcel" parameterType="JkHistoryAlarm" |
| | | <select id="selectJkHistoryAlarmListExcel" parameterType="com.zhitan.alarm.domain.JkHistoryAlarm" |
| | | resultMap="JkHistoryAlarmResult"> |
| | | SELECT |
| | | mo."name" AS modelname, |
| | |
| | | order by alarm_level,mo.node_id,limit_type asc |
| | | </select> |
| | | |
| | | <select id="selectHistoryAlarmNoteList" parameterType="JkHistoryAlarm" |
| | | <select id="selectHistoryAlarmNoteList" parameterType="com.zhitan.alarm.domain.JkHistoryAlarm" |
| | | resultMap="JkHistoryAlarmResult"> |
| | | SELECT |
| | | ei.code, |
| | |
| | | </if> |
| | | order by alarm_level,limit_type asc |
| | | </select> |
| | | <select id="selectJkHistoryAlarmPage" resultType="JkHistoryAlarm"> |
| | | <select id="selectJkHistoryAlarmPage" resultType="com.zhitan.alarm.domain.JkHistoryAlarm"> |
| | | SELECT |
| | | mo."name" AS modelname, |
| | | ei.code, |
| | |
| | | energy_index ei, |
| | | node_index ni, |
| | | model_node mo, |
| | | history_alarm bj , |
| | | history_alarm bj, |
| | | alarm_item alit |
| | | WHERE |
| | | ni.node_id IN ( |
| | |
| | | AND alit.alarm_code = bj.alarm_code |
| | | AND alit.time_slot='LIVE' |
| | | AND ei.index_type=#{jkHistoryAlarm.indexType} |
| | | <if test="jkHistoryAlarm.indexName != null and jkHistoryAlarm.indexName != ''">and ei.name like concat('%', #{jkHistoryAlarm.indexName}, |
| | | '%') |
| | | <if test="jkHistoryAlarm.indexName != null and jkHistoryAlarm.indexName != ''"> |
| | | and ei.name like concat('%', #{jkHistoryAlarm.indexName}, '%') |
| | | </if> |
| | | <if test="jkHistoryAlarm.limitType != null and jkHistoryAlarm.limitType != ''">and alit.limit_type=#{jkHistoryAlarm.limitType}</if> |
| | | <if test="jkHistoryAlarm.alarmLevel != null and jkHistoryAlarm.alarmLevel != ''">and alit.alarm_level=#{jkHistoryAlarm.alarmLevel}</if> |
| | | <if test="jkHistoryAlarm.beginTime != null and jkHistoryAlarm.beginTime != ''">and begin_time >= |
| | | to_timestamp(#{jkHistoryAlarm.beginTime},'yyyy-mm-dd hh24:mi:ss') |
| | | <if test="jkHistoryAlarm.limitType != null and jkHistoryAlarm.limitType != ''"> |
| | | and alit.limit_type=#{jkHistoryAlarm.limitType} |
| | | </if> |
| | | <if test="jkHistoryAlarm.alarmLevel != null and jkHistoryAlarm.alarmLevel != ''"> |
| | | and alit.alarm_level=#{jkHistoryAlarm.alarmLevel} |
| | | </if> |
| | | <if test="jkHistoryAlarm.beginTime != null and jkHistoryAlarm.beginTime != ''"> |
| | | and begin_time >= to_timestamp(#{jkHistoryAlarm.beginTime}, 'yyyy-mm-dd hh24:mi:ss') |
| | | </if> |
| | | <if test="jkHistoryAlarm.endTime != null and jkHistoryAlarm.endTime != ''">and begin_time <= |
| | | to_timestamp(#{jkHistoryAlarm.endTime},'yyyy-mm-dd hh24:mi:ss') |
| | | <if test="jkHistoryAlarm.endTime != null and jkHistoryAlarm.endTime != ''"> |
| | | and begin_time <= to_timestamp(#{jkHistoryAlarm.endTime},'yyyy-mm-dd hh24:mi:ss') |
| | | </if> |
| | | order by alarm_level,mo.node_id,limit_type asc |
| | | </select> |
| | | |
| | | <select id="selectCountByTime" resultType="java.lang.Integer"> |
| | | select count(0) |
| | | from history_alarm |
| | | <where> |
| | | <if test="beginTime != null "> |
| | | and begin_time >= #{beginTime} |
| | | and begin_time >= #{beginTime} |
| | | </if> |
| | | <if test="endTime != null "> |
| | | and begin_time <= #{endTime} |
| | | and begin_time <= #{endTime} |
| | | </if> |
| | | <if test="indexIdList != null and indexIdList.size() > 0"> |
| | | and index_id in |
| | | <foreach collection="indexIdList" item="item" open="(" separator="," close=")"> |
| | | #{item} |
| | | </foreach> |
| | | </if> |
| | | </where> |
| | | </select> |
| | | <select id="getHistoryAlarmList" resultType="com.zhitan.alarm.domain.JkHistoryAlarm"> |
| | | SELECT |
| | | mn.node_id nodeId, |
| | | mn."name" modelName, |
| | | mi.meter_name meterName, |
| | | mi.energy_type energyId, |
| | | his.index_id indexId, |
| | | ei."name" indexName, |
| | | ei.index_type indexType, |
| | | ei.code code, |
| | | ei.unit_id unitId, |
| | | ai.alarm_level alarmLevel, |
| | | ai.limit_type limitType, |
| | | his.limiting_value limitingValue, |
| | | his.alarm_value alarmValue, |
| | | his.begin_time alarmBeginTime, |
| | | his.end_time alarmEndTime, |
| | | his.duration duration |
| | | FROM |
| | | history_alarm his |
| | | LEFT JOIN alarm_item ai ON his.item_id = ai."id" |
| | | LEFT JOIN energy_index ei ON his.index_id = ei.index_id |
| | | LEFT JOIN meter_implement mi ON ei.meter_id = mi."id" |
| | | LEFT JOIN model_node mn ON mn.node_id = ai.node_id |
| | | WHERE |
| | | his.begin_time BETWEEN #{beginTime} AND #{endTime} |
| | | <if test="indexIdList != null and indexIdList.size() > 0"> |
| | | AND his.index_id IN |
| | | <foreach collection="indexIdList" item="item" open="(" separator="," close=")"> |
| | | #{item} |
| | | </foreach> |
| | | </if> |
| | | </select> |
| | | |
| | | </mapper> |
| | |
| | | "http://mybatis.org/dtd/mybatis-3-mapper.dtd"> |
| | | <mapper namespace="com.zhitan.model.mapper.EnergyIndexMapper"> |
| | | |
| | | <resultMap type="EnergyIndex" id="EnergyIndexResult"> |
| | | <resultMap type="com.zhitan.model.domain.EnergyIndex" id="EnergyIndexResult"> |
| | | <result property="indexId" column="index_id"/> |
| | | <result property="name" column="name"/> |
| | | <result property="code" column="code"/> |
| | |
| | | from energy_index |
| | | </sql> |
| | | |
| | | <select id="selectEnergyIndexList" parameterType="EnergyIndex" resultMap="EnergyIndexResult"> |
| | | <select id="selectEnergyIndexList" parameterType="com.zhitan.model.domain.EnergyIndex" resultMap="EnergyIndexResult"> |
| | | select ni.index_id, name, code, index_type, remark, unit_id, index_category |
| | | from energy_index ei left join node_index ni on ei.index_id = ni.index_id |
| | | <where> |
| | |
| | | <include refid="selectEnergyIndexVo"/> |
| | | where |
| | | index_id IN |
| | | <foreach collection="list" item="indexId" open="(" separator="," close=")"> |
| | | <foreach collection="indexIds" item="indexId" open="(" separator="," close=")"> |
| | | #{indexId} |
| | | </foreach> |
| | | </select> |
| | |
| | | order by ei.order_num |
| | | </select> |
| | | |
| | | <insert id="insertEnergyIndex" parameterType="EnergyIndex"> |
| | | <insert id="insertEnergyIndex" parameterType="com.zhitan.model.domain.EnergyIndex"> |
| | | insert into energy_index |
| | | <trim prefix="(" suffix=")" suffixOverrides=","> |
| | | <if test="indexId != null and indexId != ''">index_id,</if> |
| | |
| | | </foreach> |
| | | </insert> |
| | | |
| | | <update id="updateEnergyIndex" parameterType="EnergyIndex"> |
| | | <update id="updateEnergyIndex" parameterType="com.zhitan.model.domain.EnergyIndex"> |
| | | update energy_index |
| | | <trim prefix="SET" suffixOverrides=","> |
| | | <if test="name != null and name != ''">name = #{name},</if> |
| | |
| | | AND di.data_time >= #{dateTimeMap.startTime} |
| | | AND di.data_time <= #{dateTimeMap.endTime} |
| | | </select> |
| | | <select id="getAllModelNodeIndexByAddress" resultType="com.zhitan.model.domain.vo.ModelNodeIndexInfo"> |
| | | SELECT |
| | | mn.node_id nodeId, |
| | | mn.code nodeCode, |
| | | mn."name" nodeName, |
| | | ni.index_id indexId, |
| | | ei."name" indexName, |
| | | ei.index_type indexType, |
| | | mi.energy_type |
| | | FROM |
| | | "model_node" mn |
| | | LEFT JOIN "node_index" ni ON mn.node_id = ni.node_id |
| | | LEFT JOIN energy_index ei ON ni.index_id = ei.index_id |
| | | LEFT JOIN meter_implement mi ON mi."id" = ei.meter_id |
| | | WHERE |
| | | mn.model_code = #{modelCode} |
| | | AND mn.address LIKE concat( #{address} , '%' ) |
| | | </select> |
| | | </mapper> |
| | |
| | | show-overflow-tooltip |
| | | :formatter="(row, column) => formatterLabel(energyTypeList, row.energyId)" |
| | | /> |
| | | <el-table-column label="é¢è®¾å¼" prop="energyType" align="center" show-overflow-tooltip /> |
| | | <el-table-column label="é¢è®¾å¼" prop="limitingValue" align="center" show-overflow-tooltip /> |
| | | <el-table-column label="æ¥è¦å¼" prop="alarmValue" align="center" show-overflow-tooltip /> |
| | | <el-table-column label="æ¥è¦æ¶é´" prop="alarmBeginTime" align="center" show-overflow-tooltip /> |
| | | </el-table> |
| | |
| | | timeType: null, |
| | | dataTime: null, |
| | | nodeId: null, |
| | | modelCode: '' |
| | | }) |
| | | |
| | | import { getByNodeId, getCountInfo } from "@/api/alarmManage/alarmManage" |
| | | import { el } from "element-plus/es/locales.mjs" |
| | | import { useRoute } from "vue-router" |
| | | const route = useRoute() |
| | | let form = ref({}) |
| | | let currentNode = ref() |
| | | |
| | |
| | | handleTimeType(period.value[0].value) |
| | | |
| | | getByNodeIdFun() |
| | | getCountInfoFun() |
| | | } |
| | | |
| | | function getByNodeIdFun() { |
| | |
| | | // getByNodeIdFun() |
| | | function handleQuery() { |
| | | getByNodeIdFun() |
| | | getCountInfoFun() |
| | | } |
| | | function resetQuery() { |
| | | handleTimeType("YEAR") |
| | | getByNodeIdFun() |
| | | getCountInfoFun() |
| | | } |
| | | let dataArray = ref({ |
| | | indexCount: 0, |
| | |
| | | monthCount: 0, |
| | | }) |
| | | function getCountInfoFun() { |
| | | getCountInfo(queryParams.value).then((res) => { |
| | | getCountInfo({ |
| | | ...queryParams.value, |
| | | modelCode: route.query.modelCode, |
| | | }).then((res) => { |
| | | if (res.code == 200) { |
| | | dataArray.value = res.data |
| | | } |
| | | }) |
| | | } |
| | | |
| | | getCountInfoFun() |
| | | function pieChart(Id, data, name) { |
| | | console.log(data) |
| | | let total = 0 |
| | |
| | | axisPointer: { |
| | | type: "shadow", |
| | | }, |
| | | axisTick: { |
| | | show: false, |
| | | alignWithLabel: true, |
| | | length: 5, |
| | | }, |
| | | // axisTick: { |
| | | // show: false, |
| | | // alignWithLabel: true, |
| | | // length: 5, |
| | | // }, |
| | | // åæ è½´å»åº¦çº¿æ ·å¼ |
| | | axisTick: { |
| | | show: false, |
| | |
| | | padding: [0, 0, 5, 0], |
| | | }, |
| | | // åæ è½´å»åº¦ |
| | | axisTick: { |
| | | show: false, |
| | | alignWithLabel: true, |
| | | length: 5, |
| | | }, |
| | | // axisTick: { |
| | | // show: false, |
| | | // alignWithLabel: true, |
| | | // length: 5, |
| | | // }, |
| | | // åæ è½´å»åº¦çº¿æ ·å¼ |
| | | axisTick: { |
| | | show: false, |