From e8401b85ea303e7cb87062dfa918cb59071befb3 Mon Sep 17 00:00:00 2001 From: VVT789 <sdxt_0802@163.com> Date: 星期五, 18 四月 2025 12:40:02 +0800 Subject: [PATCH] 报警代码优化 --- zhitan-system/src/main/java/com/zhitan/alarm/services/IHistoryAlarmService.java | 7 zhitan-system/src/main/java/com/zhitan/model/mapper/ModelNodeMapper.java | 5 zhitan-system/src/main/resources/mapper/model/ModelNodeMapper.xml | 18 ++ zhitan-system/src/main/java/com/zhitan/alarm/mapper/HistoryAlarmMapper.java | 12 + zhitan-system/src/main/resources/mapper/alarm/HistoryAlarmMapper.xml | 79 ++++++-- zhitan-admin/src/main/java/com/zhitan/web/controller/alarm/AlarmAnalysisController.java | 44 ++++ /dev/null | 37 ---- zhitan-system/src/main/java/com/zhitan/alarm/services/impl/HistoryAlarmServiceImpl.java | 196 +++++++++++++++------ zhitan-admin/src/main/java/com/zhitan/web/controller/alarm/HistoryAlarmController.java | 18 +- zhitan-system/src/main/resources/mapper/model/EnergyIndexMapper.xml | 10 zhitan-system/src/main/java/com/zhitan/alarm/domain/dto/AlarmAnalysisDTO.java | 15 + zhitan-system/src/main/java/com/zhitan/alarm/services/IAlarmAnalysisService.java | 15 + zhitan-system/src/main/java/com/zhitan/alarm/services/impl/AlarmAnalyisisServiceImpl.java | 76 +++++--- 13 files changed, 364 insertions(+), 168 deletions(-) diff --git a/zhitan-admin/src/main/java/com/zhitan/web/controller/alarm/AlarmAnalyisisController.java b/zhitan-admin/src/main/java/com/zhitan/web/controller/alarm/AlarmAnalyisisController.java deleted file mode 100644 index 8766e28..0000000 --- a/zhitan-admin/src/main/java/com/zhitan/web/controller/alarm/AlarmAnalyisisController.java +++ /dev/null @@ -1,37 +0,0 @@ -package com.zhitan.web.controller.alarm; - -import com.zhitan.alarm.domain.dto.AlarmAnalysisDTO; -import com.zhitan.alarm.domain.vo.AlarmAnalysisVO; -import com.zhitan.alarm.services.IAlarmAnalyisisService; -import com.zhitan.common.core.controller.BaseController; -import com.zhitan.common.core.domain.AjaxResult; -import org.springframework.beans.factory.annotation.Autowired; -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 鎶ヨ鍒嗘瀽鐩稿叧鍔熻兘 - * - * @author hmj - * @date 2024-10-26 17:31 - */ -@RestController -@RequestMapping("/alarmAnalysis") -public class AlarmAnalyisisController extends BaseController { - @Autowired - private IAlarmAnalyisisService alarmAnalyisisService; - - @GetMapping("/getByNodeId") - public AjaxResult getByNodeId(@Validated AlarmAnalysisDTO alarmAnalysisDTO){ - AlarmAnalysisVO alarmAnalysisVO = alarmAnalyisisService.getByNodeId(alarmAnalysisDTO); - return AjaxResult.success(alarmAnalysisVO); - } - - @GetMapping("/getCountInfo") - public AjaxResult getCountInfo(@Validated AlarmAnalysisDTO alarmAnalysisDTO){ - AlarmAnalysisVO alarmAnalysisVO = alarmAnalyisisService.getCountInfo(alarmAnalysisDTO); - return AjaxResult.success(alarmAnalysisVO); - } -} diff --git a/zhitan-admin/src/main/java/com/zhitan/web/controller/alarm/AlarmAnalysisController.java b/zhitan-admin/src/main/java/com/zhitan/web/controller/alarm/AlarmAnalysisController.java new file mode 100644 index 0000000..64aa96f --- /dev/null +++ b/zhitan-admin/src/main/java/com/zhitan/web/controller/alarm/AlarmAnalysisController.java @@ -0,0 +1,44 @@ +package com.zhitan.web.controller.alarm; + +import com.zhitan.alarm.domain.dto.AlarmAnalysisDTO; +import com.zhitan.alarm.domain.vo.AlarmAnalysisVO; +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; + +/** +* description 鎶ヨ鍒嗘瀽鐩稿叧鍔熻兘 + * + * @author zhitan + * @date + */ +@RestController +@RequestMapping("/alarmAnalysis") +public class AlarmAnalysisController extends BaseController { + @Autowired + private IAlarmAnalysisService alarmAnalysisService; + + @GetMapping("/getByNodeId") + public AjaxResult getByNodeId(@Validated AlarmAnalysisDTO alarmAnalysisDTO){ + AlarmAnalysisVO alarmAnalysisVO = alarmAnalysisService.getByNodeId(alarmAnalysisDTO); + return AjaxResult.success(alarmAnalysisVO); + } + + @GetMapping("/getCountInfo") + public AjaxResult getCountInfo(@Validated AlarmAnalysisDTO alarmAnalysisDTO){ + if(ObjectUtils.isEmpty(alarmAnalysisDTO.getNodeId())){ + return AjaxResult.error("鑺傜偣id涓嶈兘涓虹┖"); + } + if(ObjectUtils.isEmpty(alarmAnalysisDTO.getModelCode())){ + return AjaxResult.error("妯″瀷缂栫爜涓嶈兘涓虹┖"); + } + AlarmAnalysisVO alarmAnalysisVO = alarmAnalysisService.getCountInfo(alarmAnalysisDTO); + return AjaxResult.success(alarmAnalysisVO); + } +} diff --git a/zhitan-admin/src/main/java/com/zhitan/web/controller/alarm/HistoryAlarmController.java b/zhitan-admin/src/main/java/com/zhitan/web/controller/alarm/HistoryAlarmController.java index 181e1ff..1e26f86 100644 --- a/zhitan-admin/src/main/java/com/zhitan/web/controller/alarm/HistoryAlarmController.java +++ b/zhitan-admin/src/main/java/com/zhitan/web/controller/alarm/HistoryAlarmController.java @@ -12,6 +12,7 @@ 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; @@ -43,10 +44,7 @@ public class HistoryAlarmController extends BaseController { @Autowired - private IHistoryAlarmService iHistoryAlarmService; - - @Autowired - private TokenService tokenService; + private IHistoryAlarmService historyAlarmService; @Autowired private RealtimeDatabaseService realtimeDatabaseService; @@ -55,11 +53,13 @@ * 鍘嗗彶鎶ヨ 椤甸潰 鏍规嵁 鑺傜偣鐩綍鍜� 鏉′欢鏌ヨ */ @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); + startPage(); + List<JkHistoryAlarm> list = historyAlarmService.selectHistoryAlarmPageList(jkHistoryAlarm); +// Page<JkHistoryAlarm> list = historyAlarmService.selectJkHistoryAlarmPage(jkHistoryAlarm); return getDataTable(list); } /** @@ -70,7 +70,7 @@ @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"); } @@ -165,7 +165,7 @@ public TableDataInfo listNote(JkHistoryAlarm jkHistoryAlarm) { startPage(); - List<JkHistoryAlarm> list = iHistoryAlarmService.selectHistoryAlarmNoteList(jkHistoryAlarm); + List<JkHistoryAlarm> list = historyAlarmService.selectHistoryAlarmNoteList(jkHistoryAlarm); return getDataTable(list); } } diff --git a/zhitan-system/src/main/java/com/zhitan/alarm/domain/dto/AlarmAnalysisDTO.java b/zhitan-system/src/main/java/com/zhitan/alarm/domain/dto/AlarmAnalysisDTO.java index 5ca1ddf..507f1c0 100644 --- a/zhitan-system/src/main/java/com/zhitan/alarm/domain/dto/AlarmAnalysisDTO.java +++ b/zhitan-system/src/main/java/com/zhitan/alarm/domain/dto/AlarmAnalysisDTO.java @@ -3,6 +3,7 @@ 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; @@ -13,8 +14,7 @@ * @author hmj * @date 2024-10-16 17:55 */ -@Getter -@Setter +@Data public class AlarmAnalysisDTO { @ApiModelProperty(value = "鑺傜偣id") private String nodeId; @@ -28,18 +28,23 @@ /** * 缁熻寮�濮嬫椂闂� */ + @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; } diff --git a/zhitan-system/src/main/java/com/zhitan/alarm/mapper/HistoryAlarmMapper.java b/zhitan-system/src/main/java/com/zhitan/alarm/mapper/HistoryAlarmMapper.java index ab16fbd..b0a16c3 100644 --- a/zhitan-system/src/main/java/com/zhitan/alarm/mapper/HistoryAlarmMapper.java +++ b/zhitan-system/src/main/java/com/zhitan/alarm/mapper/HistoryAlarmMapper.java @@ -7,6 +7,7 @@ import com.zhitan.alarm.domain.JkHistoryAlarm; import org.apache.ibatis.annotations.Param; +import java.util.Date; import java.util.List; /** @@ -35,10 +36,15 @@ */ 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); - Integer selectCountByTime(@Param("beginTime") DateTime beginTime, @Param("endTime") DateTime endTime); + Integer selectCountByTime(@Param("beginTime") DateTime beginTime, + @Param("endTime") DateTime endTime, + @Param("nodeIdList") List<String> nodeIdList); + + List<JkHistoryAlarm> getHistoryAlarmList(@Param("indexIdList") List<String> indexIdList, + @Param("beginTime") Date beginTime, + @Param("endTime")Date endTime); } diff --git a/zhitan-system/src/main/java/com/zhitan/alarm/services/IAlarmAnalyisisService.java b/zhitan-system/src/main/java/com/zhitan/alarm/services/IAlarmAnalysisService.java similarity index 61% rename from zhitan-system/src/main/java/com/zhitan/alarm/services/IAlarmAnalyisisService.java rename to zhitan-system/src/main/java/com/zhitan/alarm/services/IAlarmAnalysisService.java index 2c54007..cd694b8 100644 --- a/zhitan-system/src/main/java/com/zhitan/alarm/services/IAlarmAnalyisisService.java +++ b/zhitan-system/src/main/java/com/zhitan/alarm/services/IAlarmAnalysisService.java @@ -4,13 +4,20 @@ 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); } diff --git a/zhitan-system/src/main/java/com/zhitan/alarm/services/IHistoryAlarmService.java b/zhitan-system/src/main/java/com/zhitan/alarm/services/IHistoryAlarmService.java index b3dcc7c..bc6792f 100644 --- a/zhitan-system/src/main/java/com/zhitan/alarm/services/IHistoryAlarmService.java +++ b/zhitan-system/src/main/java/com/zhitan/alarm/services/IHistoryAlarmService.java @@ -33,4 +33,11 @@ void updateHistoryAlarm(String alarmCode, HistoryAlarm historyAlarm); Page<JkHistoryAlarm> selectJkHistoryAlarmPage(JkHistoryAlarm jkHistoryAlarm, Long pageNum, Long pageSize); + + /** + * 鍘嗗彶鎶ヨ鍒嗛〉鏌ヨ + * @param jkHistoryAlarm + * @return + */ + List<JkHistoryAlarm> selectHistoryAlarmPageList(JkHistoryAlarm jkHistoryAlarm); } diff --git a/zhitan-system/src/main/java/com/zhitan/alarm/services/impl/AlarmAnalyisisServiceImpl.java b/zhitan-system/src/main/java/com/zhitan/alarm/services/impl/AlarmAnalyisisServiceImpl.java index 3545c7d..53d8c83 100644 --- a/zhitan-system/src/main/java/com/zhitan/alarm/services/impl/AlarmAnalyisisServiceImpl.java +++ b/zhitan-system/src/main/java/com/zhitan/alarm/services/impl/AlarmAnalyisisServiceImpl.java @@ -6,7 +6,7 @@ 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; @@ -17,6 +17,7 @@ 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; @@ -32,14 +33,14 @@ 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; @@ -50,6 +51,13 @@ private final EnergyIndexMapper energyIndexMapper; private final SysEnergyMapper sysEnergyMapper; + + /** + * 鏍规嵁鑺傜偣id鑾峰彇鎶ヨ鍒嗘瀽淇℃伅(搴熷純) + * + * @param alarmAnalysisDTO + * @return + */ @Override public AlarmAnalysisVO getByNodeId(AlarmAnalysisDTO alarmAnalysisDTO) { AlarmAnalysisVO alarmAnalysisVO = new AlarmAnalysisVO(); @@ -171,31 +179,6 @@ 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"); @@ -204,4 +187,37 @@ String formattedResult = df.format(averageEnergy); return Double.valueOf(formattedResult); } + + /** + * 鑾峰彇鎶ヨ鍒嗘瀽缁熻淇℃伅 + * @param alarmAnalysisDTO + * @return + */ + @Override + public AlarmAnalysisVO getCountInfo(AlarmAnalysisDTO alarmAnalysisDTO) { + + AlarmAnalysisVO alarmAnalysisVO = new AlarmAnalysisVO(); + + // 鏌ヨ妯″瀷涓嬬殑鐐逛綅鏁版嵁 + ModelNode modelNode = modelNodeMapper.selectModelNodeById(alarmAnalysisDTO.getNodeId()); + List<ModelNodeIndexInfo> nodeIndexInfoList = modelNodeMapper.getAllModelNodeIndexByAddress(modelNode.getModelCode(), modelNode.getAddress()); + alarmAnalysisVO.setIndexCount(nodeIndexInfoList.size()); + if (CollectionUtils.isEmpty(nodeIndexInfoList)) { + return alarmAnalysisVO; + } + + // 鑾峰彇鏈堟姤璀︽暟銆佸勾鎶ヨ鏁� + List<String> nodeIdList = 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, nodeIdList); + Integer yearCount = historyAlarmMapper.selectCountByTime(beginOfYear,endOfYear, nodeIdList); + + alarmAnalysisVO.setMonthCount(monthCount); + alarmAnalysisVO.setYearCount(yearCount); + return alarmAnalysisVO; + } } diff --git a/zhitan-system/src/main/java/com/zhitan/alarm/services/impl/HistoryAlarmServiceImpl.java b/zhitan-system/src/main/java/com/zhitan/alarm/services/impl/HistoryAlarmServiceImpl.java index 9b16045..0a1f8ec 100644 --- a/zhitan-system/src/main/java/com/zhitan/alarm/services/impl/HistoryAlarmServiceImpl.java +++ b/zhitan-system/src/main/java/com/zhitan/alarm/services/impl/HistoryAlarmServiceImpl.java @@ -1,5 +1,9 @@ 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; @@ -8,83 +12,163 @@ 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.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鍜宨ndexId 鍘绘煡璇㈣閲忓櫒鍏� - EnergyIndex energyIndex = energyIndexMapper.selectEnergyIndexById(indexId); - final MeterImplement meterImplement = meterImplementMapper.selectMeterImplementById(energyIndex.getMeterId()); - alarm.setEnergyId(meterImplement.getEnergyType()); - } - }); - return jkHistoryAlarmPage; - } - + // 搴熷純 + @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鍜宨ndexId 鍘绘煡璇㈣閲忓櫒鍏� + EnergyIndex energyIndex = energyIndexMapper.selectEnergyIndexById(indexId); + final MeterImplement meterImplement = meterImplementMapper.selectMeterImplementById(energyIndex.getMeterId()); + alarm.setEnergyId(meterImplement.getEnergyType()); + } + }); + return jkHistoryAlarmPage; + } + + /** + * 鑾峰彇鍘嗗彶鎶ヨ鍒嗛〉鏁版嵁 + * + * @param historyAlarm + * @return + */ + @Override + public List<JkHistoryAlarm> selectHistoryAlarmPageList(JkHistoryAlarm historyAlarm) { + + 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 new ArrayList<>(); + } + + //鏃堕棿澶勭悊 濡傛灉涓嶄紶鏃堕棿榛樿鏌ヨ褰撳ぉ鐨勬暟鎹� + Date endTime = DateUtils.parseDate(historyAlarm.getEndTime()); + if (ObjectUtils.isEmpty(endTime)) { + endTime = DateUtil.endOfDay(DateUtils.getNowDate()); + } + Date beginTime = DateUtils.parseDate(historyAlarm.getEndTime()); + if (ObjectUtils.isEmpty(beginTime)) { + beginTime = DateUtil.beginOfDay(DateUtils.getNowDate()); + } + + List<JkHistoryAlarm> historyAlarmList = historyAlarmMapper.getHistoryAlarmList(indexIdList, beginTime, endTime); + return historyAlarmList; + } + } diff --git a/zhitan-system/src/main/java/com/zhitan/model/mapper/ModelNodeMapper.java b/zhitan-system/src/main/java/com/zhitan/model/mapper/ModelNodeMapper.java index 56b41e1..6af717b 100644 --- a/zhitan-system/src/main/java/com/zhitan/model/mapper/ModelNodeMapper.java +++ b/zhitan-system/src/main/java/com/zhitan/model/mapper/ModelNodeMapper.java @@ -215,4 +215,9 @@ @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); } diff --git a/zhitan-system/src/main/resources/mapper/alarm/HistoryAlarmMapper.xml b/zhitan-system/src/main/resources/mapper/alarm/HistoryAlarmMapper.xml index d7d6f6e..68ca059 100644 --- a/zhitan-system/src/main/resources/mapper/alarm/HistoryAlarmMapper.xml +++ b/zhitan-system/src/main/resources/mapper/alarm/HistoryAlarmMapper.xml @@ -4,7 +4,7 @@ "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"/> @@ -18,7 +18,7 @@ <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"/> @@ -50,7 +50,7 @@ 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('%', @@ -77,7 +77,7 @@ </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=","> @@ -127,7 +127,7 @@ </delete> <!--鍘嗗彶 鎶ヨ鍒楄〃椤甸潰 閲囬泦鐐� 涓婚〉闈㈠垪琛ㄦ煡璇�--> - <select id="selectJkHistoryAlarmList" parameterType="JkHistoryAlarm" + <select id="selectJkHistoryAlarmList" parameterType="com.zhitan.alarm.domain.JkHistoryAlarm" resultMap="JkHistoryAlarmResult"> SELECT mo."name" AS modelname, @@ -180,7 +180,7 @@ 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, @@ -232,7 +232,7 @@ 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, @@ -273,7 +273,7 @@ </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, @@ -294,7 +294,7 @@ energy_index ei, node_index ni, model_node mo, - history_alarm bj , + history_alarm bj, alarm_item alit WHERE ni.node_id IN ( @@ -310,30 +310,71 @@ 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="nodeIdList != null and nodeIdList.size() > 0"> + and node_id in + <foreach collection="nodeIdList" item="item" open="(" separator="," close=")"> + #{item} + </foreach> </if> </where> </select> + <select id="getHistoryAlarmList" resultType="com.zhitan.alarm.domain.JkHistoryAlarm"> + SELECT + mn."name" modelName, + mi.meter_name meterName, + his.index_id indexId, + ei."name" indexName, + 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 beginTime, + his.end_time endTime, + his.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> diff --git a/zhitan-system/src/main/resources/mapper/model/EnergyIndexMapper.xml b/zhitan-system/src/main/resources/mapper/model/EnergyIndexMapper.xml index 3e16008..1145863 100644 --- a/zhitan-system/src/main/resources/mapper/model/EnergyIndexMapper.xml +++ b/zhitan-system/src/main/resources/mapper/model/EnergyIndexMapper.xml @@ -4,7 +4,7 @@ "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"/> @@ -34,7 +34,7 @@ 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> @@ -59,7 +59,7 @@ <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> @@ -145,7 +145,7 @@ 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> @@ -271,7 +271,7 @@ </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> diff --git a/zhitan-system/src/main/resources/mapper/model/ModelNodeMapper.xml b/zhitan-system/src/main/resources/mapper/model/ModelNodeMapper.xml index eb7fbde..d8486ec 100644 --- a/zhitan-system/src/main/resources/mapper/model/ModelNodeMapper.xml +++ b/zhitan-system/src/main/resources/mapper/model/ModelNodeMapper.xml @@ -466,4 +466,22 @@ 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> -- Gitblit v1.9.3