MsgAlarmServiceImpl.java 9.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207
  1. package com.ozs.service.impl;
  2. import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
  3. import com.baomidou.mybatisplus.core.metadata.IPage;
  4. import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
  5. import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
  6. import com.github.pagehelper.PageHelper;
  7. import com.ozs.common.core.domain.AjaxResult;
  8. import com.ozs.common.utils.AppendUtils;
  9. import com.ozs.common.utils.StringUtils;
  10. import com.ozs.entity.BaseCameraManagement;
  11. import com.ozs.entity.BaseDeviceDynamicManagement;
  12. import com.ozs.entity.BaseRailwayManagement;
  13. import com.ozs.entity.MsgAlarm;
  14. import com.ozs.entity.vo.*;
  15. import com.ozs.mapper.BaseCameraManagementMapper;
  16. import com.ozs.mapper.BaseDeviceDynamicManagementMapper;
  17. import com.ozs.mapper.BaseRailwayManagementMapper;
  18. import com.ozs.mapper.MsgAlarmMapper;
  19. import com.ozs.service.MsgAlarmService;
  20. import org.springframework.beans.factory.annotation.Autowired;
  21. import org.springframework.stereotype.Service;
  22. import org.springframework.util.ObjectUtils;
  23. import java.util.ArrayList;
  24. import java.util.HashMap;
  25. import java.util.List;
  26. import java.util.Map;
  27. /**
  28. * <p>
  29. * 报警信息表 服务实现类
  30. * </p>
  31. *
  32. * @author ozs
  33. * @since 2023-02-22
  34. */
  35. @Service
  36. public class MsgAlarmServiceImpl extends ServiceImpl<MsgAlarmMapper, MsgAlarm> implements MsgAlarmService {
  37. @Autowired
  38. private MsgAlarmMapper msgAlarmMapper;
  39. @Autowired
  40. private BaseCameraManagementMapper baseCameraManagementMapper;
  41. @Autowired
  42. private BaseRailwayManagementMapper baseRailwayManagementMapper;
  43. @Autowired
  44. private BaseDeviceDynamicManagementMapper baseDeviceDynamicManagementMapper;
  45. public IPage listToPage(List list, int pageNum, int pageSize) {
  46. List pageList = new ArrayList<>();
  47. int curIdx = pageNum > 1 ? (pageNum - 1) * pageSize : 0;
  48. for (int i = 0; i < pageSize && curIdx + i < list.size(); i++) {
  49. pageList.add(list.get(curIdx + i));
  50. }
  51. IPage page = new Page<>(pageNum, pageSize);
  52. page.setRecords(pageList);
  53. page.setTotal(list.size());
  54. return page;
  55. }
  56. //web数据统计 报警数据详情
  57. @Override
  58. public List<AlarmStatisticDto> list(String railwayCode, Integer currentYear, Integer currentMonth, Integer pageNum, Integer pageSize) {
  59. List<AlarmStatisticDto> list = msgAlarmMapper.list(railwayCode, currentYear, currentMonth);
  60. return list;
  61. }
  62. @Override
  63. public List<AlarmStatisticMonthDto> getCount(String railwayCode, Integer currentYear, Integer currentMonth) {
  64. List<AlarmStatisticMonthDto> list = msgAlarmMapper.listDtoMonth(railwayCode, currentYear, currentMonth);
  65. return list;
  66. }
  67. @Override
  68. public List<AlarmStatisticMonthDto> getDayCount(String railwayCode, Integer currentYear, Integer currentMonth) {
  69. List<AlarmStatisticMonthDto> list = msgAlarmMapper.listDtoDay(railwayCode, currentYear, currentMonth);
  70. return list;
  71. }
  72. @Override
  73. public List<AlarmStatisticMonthDto> getAlarmTypeCount(String railwayCode, Integer currentYear, Integer currentMonth) {
  74. List<AlarmStatisticMonthDto> list = msgAlarmMapper.alarmTypeCount(railwayCode, currentYear, currentMonth);
  75. return list;
  76. }
  77. @Override
  78. public List<AlarmFreqArea> alarmTypeAreaCount(String railwayCode, Integer currentYear, Integer currentMonth) {
  79. List<AlarmFreqArea> list = msgAlarmMapper.alarmTypeAreaCount(railwayCode, currentYear, currentMonth);
  80. return list;
  81. }
  82. @Override
  83. public List<AlarmStatisticDto> exportExcel(AlarmStatisticResVo alarmStatisticResVo) {
  84. List<AlarmStatisticDto> listDto = msgAlarmMapper.list(alarmStatisticResVo.getRailwayCode(), alarmStatisticResVo.getCurrentYear(),
  85. alarmStatisticResVo.getCurrentMonth());
  86. return listDto;
  87. }
  88. @Override
  89. public Long getAlarmNum() {
  90. Long alarmNum = msgAlarmMapper.getAlarmNum();
  91. return alarmNum;
  92. }
  93. @Override
  94. public MsgAlarm selectByCameraCode(String cameraCode) {
  95. return msgAlarmMapper.selectByCameraCode(cameraCode);
  96. }
  97. @Override
  98. public IPage<MsgAlarm> queryPage(MsgAlarmVo vo) {
  99. int pageNum = Integer.parseInt(vo.getPageNum().toString());
  100. int pageSize = Integer.parseInt(vo.getPageSize().toString());
  101. com.github.pagehelper.Page<MsgAlarm> page = PageHelper.startPage(pageNum, pageSize)
  102. .doSelectPage(() -> msgAlarmMapper.selectMsgAlarmList(vo));
  103. Page<MsgAlarm> pageR = new Page<>(pageNum, pageSize);
  104. pageR.setRecords(page.getResult());
  105. pageR.setTotal(page.getTotal());
  106. return pageR;
  107. }
  108. @Override
  109. public MsgAlarm getByAlarmId(String alarmId) {
  110. return msgAlarmMapper.getByAlarmId(alarmId);
  111. }
  112. @Override
  113. public Map<String, Integer> statisticsNum(MsgAlarmVo msgAlarmVo) {
  114. Map<String, Integer> map = new HashMap<>();
  115. // 相机数量
  116. Integer countCamera = baseCameraManagementMapper.countCamera(msgAlarmVo);
  117. // 累计报警次数
  118. Integer countMsg = msgAlarmMapper.countMsg(msgAlarmVo);
  119. // 解除报警
  120. // LambdaQueryWrapper<MsgAlarm> lwJC = new LambdaQueryWrapper<MsgAlarm>();
  121. // lwJC.eq(MsgAlarm::getIsLock, "1");
  122. Integer countJC = msgAlarmMapper.countJC(msgAlarmVo);
  123. // 未解除报警
  124. // LambdaQueryWrapper<MsgAlarm> lwWJC = new LambdaQueryWrapper<MsgAlarm>();
  125. // lwWJC.eq(MsgAlarm::getIsLock, "2");
  126. Integer countWJC = msgAlarmMapper.countWJC(msgAlarmVo);
  127. map.put("countCamera", countCamera);
  128. map.put("countMsg", countMsg);
  129. map.put("countJC", countJC);
  130. map.put("countWJC", countWJC);
  131. return map;
  132. }
  133. @Override
  134. public Integer appAlarmNum(MsgAlarmVo msgAlarmVo) {
  135. return msgAlarmMapper.countWJC(msgAlarmVo);
  136. }
  137. @Override
  138. public List<MsgAlarm> msgAlarmList(MsgAlarmVo msgAlarmVo) {
  139. return msgAlarmMapper.selectMsgAlarmList(msgAlarmVo);
  140. }
  141. @Override
  142. public AjaxResult getDate(MsgAlarmVo msgAlarmVo) {
  143. // 查询报警信息
  144. MsgAlarm msgAlarm = msgAlarmMapper.selectById(msgAlarmVo.getId());
  145. if (StringUtils.isEmptySunhh(msgAlarm)) {
  146. return AjaxResult.error("报警信息不存在!");
  147. }
  148. // 查询线路
  149. LambdaQueryWrapper<BaseRailwayManagement> lwBaseRailwayManagement = new LambdaQueryWrapper<>();
  150. if (!StringUtils.isEmptySunhh(msgAlarmVo.getRailwayCode())) {
  151. lwBaseRailwayManagement.eq(BaseRailwayManagement::getRailwayCode, msgAlarmVo.getRailwayCode());
  152. }
  153. BaseRailwayManagement baseRailwayManagement = baseRailwayManagementMapper.selectOne(lwBaseRailwayManagement);
  154. if (StringUtils.isEmptySunhh(baseRailwayManagement)) {
  155. return AjaxResult.error("线路编码:" + msgAlarmVo.getRailwayCode() + "不存在!");
  156. }
  157. // 查询里程位置最近的相机
  158. LambdaQueryWrapper<BaseCameraManagement> lw = new LambdaQueryWrapper<>();
  159. if (!StringUtils.isEmptySunhh(msgAlarmVo.getRailwayCode())) {
  160. lw.eq(BaseCameraManagement::getRailwayCode, msgAlarmVo.getRailwayCode());
  161. }
  162. if (!StringUtils.isEmptySunhh(msgAlarmVo.getAlarmMile())) {
  163. lw.le(BaseCameraManagement::getBeginMile, msgAlarmVo.getAlarmMile());
  164. lw.gt(BaseCameraManagement::getEndMile, msgAlarmVo.getAlarmMile());
  165. }
  166. BaseCameraManagement baseCameraManagement = baseCameraManagementMapper.selectOne(lw);
  167. if (StringUtils.isEmptySunhh(baseCameraManagement)) {
  168. return AjaxResult.error("线路编码:" + msgAlarmVo.getRailwayCode() + "不存在对应里程范围为:"+ msgAlarmVo.getAlarmMile() +"的相机!");
  169. }
  170. LambdaQueryWrapper<BaseDeviceDynamicManagement> queryWrapper = new LambdaQueryWrapper<>();
  171. if (!ObjectUtils.isEmpty(baseCameraManagement.getCameraCode())) {
  172. queryWrapper.eq(BaseDeviceDynamicManagement::getCameraCode, baseCameraManagement.getCameraCode());
  173. }
  174. BaseDeviceDynamicManagement baseDeviceDynamicManagement = baseDeviceDynamicManagementMapper.selectOne(queryWrapper);
  175. if (StringUtils.isEmptySunhh(baseDeviceDynamicManagement)) {
  176. return AjaxResult.error("设备动态管理表中没有该相机编码:" + baseCameraManagement.getCameraCode() + "的数据");
  177. }
  178. MsgAlarmVo msgAlarmVo1 = new MsgAlarmVo();
  179. // BeanUtils.copyProperties(msgAlarm, msgAlarmVo1);
  180. msgAlarmVo1.setRailwayCode(msgAlarm.getRailwayCode());
  181. msgAlarmVo1.setRailwayCodeName(baseRailwayManagement.getRailwayName());
  182. msgAlarmVo1.setAlarmMiles(AppendUtils.stringAppend(msgAlarmVo.getAlarmMile()));
  183. msgAlarmVo1.setLineDirStr(baseCameraManagement.getLineDir() == 1 ? "上行" : "下行");
  184. msgAlarmVo1.setCameraCode(baseCameraManagement.getCameraCode());
  185. msgAlarmVo1.setElectricity(baseDeviceDynamicManagement.getElectricity());
  186. msgAlarmVo1.setIsReleaseName(msgAlarm.getIsRelease() == 1 ? "已解除" : "未解除");
  187. return AjaxResult.success(msgAlarmVo1);
  188. }
  189. }