LocalBusDeviceAlarmService.java 6.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173
  1. package com.coffee.bus.service;
  2. import cn.hutool.core.util.StrUtil;
  3. import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
  4. import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper;
  5. import com.baomidou.mybatisplus.core.metadata.IPage;
  6. import com.coffee.bus.entity.BusDeviceAlarmEntity;
  7. import com.coffee.bus.entity.BusHospitalEntity;
  8. import com.coffee.bus.enums.DeviceAlarmEnum;
  9. import com.coffee.bus.mapper.BusDeviceAlarmMapper;
  10. import com.coffee.bus.mapper.BusHospitalMapper;
  11. import com.coffee.bus.service.dto.*;
  12. import com.coffee.common.crud.BaseService;
  13. import lombok.AllArgsConstructor;
  14. import org.springframework.beans.factory.annotation.Autowired;
  15. import org.springframework.stereotype.Service;
  16. import org.springframework.transaction.annotation.Transactional;
  17. import java.util.ArrayList;
  18. import java.util.HashMap;
  19. import java.util.List;
  20. import java.util.Map;
  21. /**
  22. * @author lifang
  23. * @version 1.0.0
  24. * @ClassName LocalBusHospitalService.java
  25. * @Description 临床使用设备
  26. * @createTime 2022年03月19日 09:27:00
  27. */
  28. @Service
  29. @AllArgsConstructor
  30. public class LocalBusDeviceAlarmService extends BaseService<BusDeviceAlarmMapper, BusDeviceAlarmEntity,String> {
  31. @Autowired
  32. private BusDeviceAlarmMapper busDeviceAlarmMapper;
  33. @Autowired
  34. private BusHospitalMapper hospitalMapper;
  35. @Override
  36. public void validateBeforeSave(BusDeviceAlarmEntity entity) {
  37. }
  38. @Override
  39. public void validateBeforeUpdate(BusDeviceAlarmEntity entity) {
  40. }
  41. @Override
  42. public void validateBeforeDelete(String id) {
  43. }
  44. public IPage<BusDeviceAlarmEntity> pageQuery(AlarmQuery query){
  45. return this.baseMapper.pageQuery(query.getPage(),query);
  46. }
  47. /**
  48. * 添加报警原因
  49. * @param id
  50. * @param cause
  51. */
  52. @Transactional(rollbackFor = Exception.class)
  53. public void addCause(String id, String cause) {
  54. BusDeviceAlarmEntity alarm = this.getById(id);
  55. if(alarm==null){
  56. return ;
  57. }
  58. if(StrUtil.isNotEmpty(alarm.getHistoryId())){
  59. //todo 更新历史消息
  60. }
  61. this.update(new UpdateWrapper<BusDeviceAlarmEntity>().lambda().eq(BusDeviceAlarmEntity::getId,id).set(BusDeviceAlarmEntity::getCause,cause));
  62. }
  63. /**
  64. * 查看报警数量
  65. */
  66. @Transactional(rollbackFor = Exception.class)
  67. public List<DeviceUse> selectCountAlarm(DeviceAlarmQuery query){
  68. QueryWrapper<BusHospitalEntity> busHospitalEntityQueryWrapper = new QueryWrapper<>();
  69. if(busHospitalEntityQueryWrapper.getEntity() == null) {
  70. BusHospitalEntity hospitalEntity = new BusHospitalEntity();
  71. busHospitalEntityQueryWrapper.setEntity(hospitalEntity);
  72. }
  73. if(query.getHositalName()!=null){
  74. busHospitalEntityQueryWrapper.lambda().like(BusHospitalEntity::getName,query.getHositalName());
  75. }
  76. if(query.getTenantId()!=null){
  77. busHospitalEntityQueryWrapper.getEntity().setId(query.getTenantId());
  78. }
  79. List<BusHospitalEntity> hospitalEntities = hospitalMapper.selectList(busHospitalEntityQueryWrapper);
  80. List<DeviceUse> deviceUseList = new ArrayList<>();
  81. // 获取 报警所有信息数量
  82. List<DeviceAlarmCountResult> alarmResults = busDeviceAlarmMapper.selectAlarmCount(query);
  83. //处理报警信息
  84. Map<String,Map<String,String>> alarmMap= new HashMap<>();
  85. for (DeviceAlarmCountResult deviceAlarmResult : alarmResults
  86. ) {
  87. Map<String, String> map = alarmMap.get(deviceAlarmResult.getTenantId());
  88. if(map == null){
  89. map = new HashMap<>();
  90. for (DeviceAlarmEnum deviceAlarmEnum:
  91. DeviceAlarmEnum.values()) {
  92. map.put(deviceAlarmEnum.toString(),"0");
  93. }
  94. }
  95. map.put(deviceAlarmResult.getAlarmState().toString(),deviceAlarmResult.getAlarmCount());
  96. alarmMap.put(deviceAlarmResult.getTenantId(),map);
  97. }
  98. // 获取告警信息
  99. List<DeviceWarnCountResult> warnResults = busDeviceAlarmMapper.selectWarnCount(query);
  100. //处理告警信息
  101. for (DeviceWarnCountResult deviceWarnCountResult : warnResults
  102. ) {
  103. Map<String, String> map = alarmMap.get(deviceWarnCountResult.getTenantId());
  104. if(map == null){
  105. map = new HashMap<>();
  106. for (DeviceAlarmEnum deviceAlarmEnum:
  107. DeviceAlarmEnum.values()) {
  108. map.put(deviceAlarmEnum.toString(),"0");
  109. }
  110. }
  111. map.put("warnWillFinished",deviceWarnCountResult.getWarnWillFinished());
  112. map.put("warnLowBattery",deviceWarnCountResult.getWarnLowBattery());
  113. map.put("warnAnalgesicPoor",deviceWarnCountResult.getWarnAnalgesicPoor());
  114. alarmMap.put(deviceWarnCountResult.getTenantId(),map);
  115. }
  116. // 遍历医院
  117. for (BusHospitalEntity hospital:hospitalEntities
  118. ) {
  119. DeviceUse deviceUse = new DeviceUse();
  120. deviceUse.setTenantId(hospital.getId());
  121. deviceUse.setAddress(hospital.getAddress());
  122. deviceUse.setName(hospital.getName());
  123. Map<String, String> map = alarmMap.get(hospital.getId());
  124. if (map == null){
  125. map = new HashMap<>();
  126. for (DeviceAlarmEnum deviceAlarmEnum:
  127. DeviceAlarmEnum.values()) {
  128. map.put(deviceAlarmEnum.toString(),"0");
  129. }
  130. map.put("warnWillFinished","0");
  131. map.put("warnLowBattery","0");
  132. map.put("warnAnalgesicPoor","0");
  133. }
  134. deviceUse.setMap(map);
  135. deviceUseList.add(deviceUse);
  136. }
  137. return deviceUseList;
  138. }
  139. /**
  140. * 查看报警数量
  141. */
  142. @Transactional(rollbackFor = Exception.class)
  143. public List<DeviceCountResult> selectUseDetail(BusDeviceAlarmEntity query){
  144. return busDeviceAlarmMapper.selectDeviceCount(query);
  145. }
  146. }