|
@@ -22,7 +22,12 @@ import com.usky.iot.service.vo.BaseAlarmResponeVO;
|
|
|
import org.springframework.beans.factory.annotation.Autowired;
|
|
|
import org.springframework.stereotype.Service;
|
|
|
|
|
|
+import java.math.BigDecimal;
|
|
|
+import java.math.RoundingMode;
|
|
|
+import java.time.LocalDate;
|
|
|
import java.time.LocalDateTime;
|
|
|
+import java.time.LocalTime;
|
|
|
+import java.time.ZoneId;
|
|
|
import java.time.format.DateTimeFormatter;
|
|
|
import java.util.*;
|
|
|
import java.util.stream.Collectors;
|
|
@@ -636,6 +641,65 @@ public class BaseAlarmServiceImpl extends AbstractCrudService<BaseAlarmMapper, B
|
|
|
|
|
|
}
|
|
|
}
|
|
|
+
|
|
|
+ @Override
|
|
|
+ public List<Object> alarmStatistic(Integer deptId) {
|
|
|
+ List<Object> list = new ArrayList<>();
|
|
|
+ Map<String, Object> map = new HashMap<>();
|
|
|
+ LocalDateTime now = LocalDateTime.now();
|
|
|
+ LocalDate today = LocalDate.now();
|
|
|
+ LocalDateTime startOfDay = LocalDateTime.of(today, LocalTime.MIN);
|
|
|
+ LocalDateTime startOfYear = now.minusYears(1);
|
|
|
+ QueryWrapper<BaseAlarm> queryWrapper = Wrappers.query();
|
|
|
+ queryWrapper.select("COUNT(alarm_grade=1 or null) as alarmCount","COUNT(alarm_grade!=1 or" +
|
|
|
+ " null) as hiddenCount","COUNT(alarm_grade=1 and handle_status=1 or null) as ahAlarmCount","COUNT" +
|
|
|
+ "(alarm_grade!=1 and handle_status=1 or null) as ahHiddenCount")
|
|
|
+ .between("alarm_time",startOfDay,now);
|
|
|
+ List<Map<String,Object>> alarmStatisticList = this.listMaps(queryWrapper);
|
|
|
+ QueryWrapper<BaseAlarm> queryWrapper1 = Wrappers.query();
|
|
|
+ queryWrapper1.select("COUNT(alarm_grade=1 or null) as alarmCount","COUNT(alarm_grade=1 and handle_status=1 or null) as ahAlarmCount")
|
|
|
+ .between("alarm_time",startOfYear,now);
|
|
|
+ List<Map<String,Object>> alarmStatisticList1 = this.listMaps(queryWrapper1);
|
|
|
+ QueryWrapper<BaseAlarm> queryWrapper2 = Wrappers.query();
|
|
|
+ queryWrapper2.select("COUNT(alarm_grade=1 and handle_status=0 or null) as alarmCount","COUNT(alarm_grade=1 " +
|
|
|
+ "and alarm_type='111' or null) as fireAlarmCount","COUNT(alarm_grade!=1 and handle_status=0 or null) " +
|
|
|
+ "as hiddenCount");
|
|
|
+ List<Map<String,Object>> alarmStatisticList2 = this.listMaps(queryWrapper2);
|
|
|
+ BigDecimal ahAlarmCountBig = new BigDecimal(Integer.valueOf(alarmStatisticList.get(0).get("ahAlarmCount").toString()));
|
|
|
+ BigDecimal temp = new BigDecimal(Integer.valueOf(alarmStatisticList.get(0).get("alarmCount").toString()));
|
|
|
+ if (Integer.valueOf(alarmStatisticList.get(0).get("alarmCount").toString()).equals(0)){
|
|
|
+ map.put("ahAlarmCountBig", 0);
|
|
|
+ }else {
|
|
|
+ ahAlarmCountBig = ahAlarmCountBig.divide(temp,2, RoundingMode.HALF_UP);
|
|
|
+ map.put("ahAlarmCountBig", ahAlarmCountBig);
|
|
|
+ }
|
|
|
+ BigDecimal ahHiddenCountBig = new BigDecimal(Integer.valueOf(alarmStatisticList.get(0).get("ahHiddenCount").toString()));
|
|
|
+ BigDecimal temp1 = new BigDecimal(Integer.valueOf(alarmStatisticList.get(0).get("hiddenCount").toString()));
|
|
|
+ if (Integer.valueOf(alarmStatisticList.get(0).get("hiddenCount").toString()).equals(0)){
|
|
|
+ map.put("ahHiddenDayCountBig", 0);
|
|
|
+ }else {
|
|
|
+ ahHiddenCountBig = ahHiddenCountBig.divide(temp1,2, RoundingMode.HALF_UP);
|
|
|
+ map.put("ahHiddenDayCountBig", ahHiddenCountBig);
|
|
|
+ }
|
|
|
+
|
|
|
+ BigDecimal ahAlarmYearCountBig = new BigDecimal(Integer.valueOf(alarmStatisticList1.get(0).get("ahAlarmCount").toString()));
|
|
|
+ BigDecimal temp2 = new BigDecimal(Integer.valueOf(alarmStatisticList1.get(0).get("alarmCount").toString()));
|
|
|
+ if (Integer.valueOf(alarmStatisticList1.get(0).get("alarmCount").toString()).equals(0)){
|
|
|
+ map.put("ahAlarmYearCountBig", 0);
|
|
|
+ }else {
|
|
|
+ ahAlarmYearCountBig = ahAlarmYearCountBig.divide(temp2,2, RoundingMode.HALF_UP);
|
|
|
+ map.put("ahAlarmYearCountBig", ahAlarmYearCountBig);
|
|
|
+ }
|
|
|
+ map.put("alarmDayCount", Integer.valueOf(alarmStatisticList.get(0).get("alarmCount").toString()));
|
|
|
+ map.put("hiddenDayCount", Integer.valueOf(alarmStatisticList.get(0).get("hiddenCount").toString()));
|
|
|
+ map.put("ahHiddenDayCount", Integer.valueOf(alarmStatisticList.get(0).get("ahHiddenCount").toString()));
|
|
|
+ map.put("alarmYearCount", Integer.valueOf(alarmStatisticList1.get(0).get("alarmCount").toString()));
|
|
|
+ map.put("uhAlarmCount", Integer.valueOf(alarmStatisticList2.get(0).get("alarmCount").toString()));
|
|
|
+ map.put("fireAlarmCount", Integer.valueOf(alarmStatisticList2.get(0).get("fireAlarmCount").toString()));
|
|
|
+ map.put("uhHiddenCount", Integer.valueOf(alarmStatisticList2.get(0).get("hiddenCount").toString()));
|
|
|
+ list.add(map);
|
|
|
+ return list;
|
|
|
+ }
|
|
|
}
|
|
|
|
|
|
|