Selaa lähdekoodia

站点模块修复

yq 4 vuotta sitten
vanhempi
commit
a68f8352e9

+ 5 - 0
fiveep-model/src/main/java/com/bizmatics/model/AlarmPower.java

@@ -1,6 +1,7 @@
 package com.bizmatics.model;
 
 import com.baomidou.mybatisplus.annotation.IdType;
+import com.baomidou.mybatisplus.annotation.TableField;
 import com.baomidou.mybatisplus.annotation.TableId;
 import java.time.LocalDateTime;
 import java.io.Serializable;
@@ -9,6 +10,7 @@ import java.util.Date;
 import lombok.Data;
 import lombok.EqualsAndHashCode;
 import lombok.experimental.Accessors;
+import org.apache.lucene.index.IndexFormatTooNewException;
 
 /**
  * <p>
@@ -96,5 +98,8 @@ public class AlarmPower implements Serializable {
      */
     private Integer handlingStatus;
 
+    @TableField(exist = false)
+    private Integer siteId;
+
 
 }

+ 1 - 1
fiveep-persistence/src/main/resources/mapper/mysql/AlarmPowerMapper.xml

@@ -88,7 +88,7 @@
         order by rsd.sending_time desc
     </select>
     <select id="list" resultType="com.bizmatics.model.AlarmPower">
-        select ap.id,ap.digital_value,ap.sending_time,ap.handling_status
+        select ap.id,ap.digital_value,ap.sending_time,ap.handling_status,us.site_id
         from user_site as us
         inner join device as d
         on us.site_id = d.site_id

+ 3 - 3
fiveep-service/src/main/java/com/bizmatics/service/enums/DeviceStatusCode.java

@@ -28,9 +28,9 @@ public enum DeviceStatusCode {
     /**
      * 告警
      */
-    DEVICE(77,"告警");
-
+    DEVICE(77,"告警"),
 
+    OHTER(78,"其他");
     private final Integer value;
     private final String describe;
 
@@ -46,7 +46,7 @@ public enum DeviceStatusCode {
                 dc =  deviceStatusCode;
             }
         }
-        return Optional.ofNullable(dc).orElseThrow(() -> new BusinessException("枚举为空"));
+        return Optional.ofNullable(dc).orElse(OHTER);
     }
 
     public Integer getValue(){

+ 13 - 0
fiveep-service/src/main/java/com/bizmatics/service/enums/DeviceType.java

@@ -1,5 +1,9 @@
 package com.bizmatics.service.enums;
 
+import com.bizmatics.common.core.exception.BusinessException;
+
+import java.util.Optional;
+
 /**
  * @author yq
  * @date 2021/7/9 14:53
@@ -40,6 +44,15 @@ public enum DeviceType {
         this.name = name;
 
     }
+    public static DeviceType pase(String value){
+        DeviceType dc = null;
+        for (DeviceType deviceType:DeviceType.values()) {
+            if (deviceType.getValue().equals(value)){
+                dc =  deviceType;
+            }
+        }
+        return Optional.ofNullable(dc).orElse(OTHER);
+    }
 
     public String getValue(){
         return this.value;

+ 8 - 1
fiveep-service/src/main/java/com/bizmatics/service/impl/HtAnalogDataServiceImpl.java

@@ -46,11 +46,18 @@ public class HtAnalogDataServiceImpl extends AbstractCrudService<HtAnalogDataMap
     public HadCountVO selectCount() {
         Integer userId = SessionLocal.getUserId();
         Date date = new Date();
+        date = DateUtils.setDays(date,27);
+        date = DateUtils.setMonths(date,4);
+        Date dayStartTime = DateUtils.getDayStartTime(date);
+        Date dayStartTime1 = DateUtils.getDayEndTime(date);
+        System.out.println(DateUtils.format(dayStartTime));
+        System.out.println(DateUtils.format(dayStartTime1));
         HadCountVO hadCountVO = new HadCountVO();
         //获取用户对应的站点信息
         List<Integer> idList = siteMapper.idList(userId, null);
         //日
-        List<HadDataLog> byToday = getByToday(DateUtils.getDayStartTime(date), date);
+        List<HadDataLog> byToday = getByToday(dayStartTime, dayStartTime1);
+//        List<HadDataLog> byToday = getByToday(DateUtils.getDayStartTime(date), date);
         hadCountVO.setDayCount(getEpp(byToday, idList, null, null));
         //月
         List<HadDataLog> byMonth = getByMonth(DateUtils.getFirstDayOfMonth(date), date);

+ 39 - 14
fiveep-service/src/main/java/com/bizmatics/service/impl/SiteServiceImpl.java

@@ -1,9 +1,11 @@
 package com.bizmatics.service.impl;
 
 import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
+import com.baomidou.mybatisplus.core.toolkit.CollectionUtils;
 import com.baomidou.mybatisplus.core.toolkit.Wrappers;
 import com.bizmatics.common.core.exception.BusinessException;
 import com.bizmatics.common.core.util.BeanMapperUtils;
+import com.bizmatics.model.AlarmPower;
 import com.bizmatics.model.Device;
 import com.bizmatics.model.Site;
 import com.bizmatics.persistence.mapper.AlarmPowerMapper;
@@ -13,16 +15,19 @@ import com.bizmatics.service.DeviceService;
 import com.bizmatics.service.SiteService;
 import com.bizmatics.common.mvc.base.AbstractCrudService;
 import com.bizmatics.service.enums.DeviceStatusCode;
+import com.bizmatics.service.enums.DeviceType;
 import com.bizmatics.service.util.SessionLocal;
 import com.bizmatics.service.vo.DeviceCountVO;
 import com.bizmatics.service.vo.SiteVO;
 import lombok.extern.slf4j.Slf4j;
+import net.sf.ehcache.search.parser.MAggregate;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
 
 import java.util.ArrayList;
 import java.util.List;
 import java.util.Optional;
+import java.util.stream.Collectors;
 
 /**
  * <p>
@@ -41,6 +46,8 @@ public class SiteServiceImpl extends AbstractCrudService<SiteMapper, Site> imple
 
     @Autowired
     private DeviceService deviceService;
+    @Autowired
+    private AlarmPowerMapper alarmPowerMapper;
     @Override
     public DeviceCountVO selectCount() {
         Integer userId = SessionLocal.getUserId();
@@ -64,36 +71,49 @@ public class SiteServiceImpl extends AbstractCrudService<SiteMapper, Site> imple
         Integer userId = SessionLocal.getUserId();
         List<Site> sites = baseMapper.list(SessionLocal.getUserId(), name);
         List<Device> deviceList = deviceMapper.list(userId, null, null, null, null, null);
-        sites.forEach(site -> list.add(enhanceSite(deviceList,site)));
+        List<AlarmPower> alarmPowers = alarmPowerMapper.list(userId, null, null, null, null, null, 1);
+        sites.forEach(site -> list.add(enhanceSite(deviceList,site,alarmPowers)));
         return list;
     }
 
     @Override
     public SiteVO getOne(Long siteId) {
         Site site = baseMapper.selectOne(Wrappers.lambdaQuery(Site.class).eq(Site::getId, siteId));
-        List<String> deviceType = new ArrayList<>();
-        LambdaQueryWrapper<Device> deviceLambdaQueryWrapper = Wrappers.lambdaQuery();
-        deviceLambdaQueryWrapper.eq(Device::getSiteId,site.getId());
-        List<Device> list = deviceService.list(deviceLambdaQueryWrapper);
-        list.forEach(device -> deviceType.add(DeviceStatusCode.pase(Integer.parseInt(device.getDeviceType())).getDescribe()));
         return Optional.ofNullable(site)
                 .map(st -> {
-                    SiteVO map = BeanMapperUtils.map(site, SiteVO.class);
-                    map.setDeviceType(deviceType);
-                    return map;
+                    LambdaQueryWrapper<Device> deviceLambdaQueryWrapper = Wrappers.lambdaQuery();
+                    deviceLambdaQueryWrapper.eq(Device::getSiteId,site.getId());
+                    List<Device> list = deviceService.list(deviceLambdaQueryWrapper);
+                    Integer count = alarmPowerMapper.selectCount(null, site.getId(), null, null, null, null, 1);
+                    SiteVO siteVO = enhanceSite(list, site, null);
+                    siteVO.setAlarmPowerCount(count);
+                    return siteVO;
                 })
                 .orElseThrow(() -> new BusinessException("站点信息不存在"));
 
     }
 
 
-    public SiteVO enhanceSite(List<Device> list,Site site){
+    public SiteVO enhanceSite(List<Device> list,Site site,List<AlarmPower> alarmPowers){
         SiteVO siteVo = BeanMapperUtils.map(site, SiteVO.class);
         siteVo.setDeviceCount(list.size());
-        long deviceCount = list.stream().filter(device -> DeviceStatusCode.DEVICE.getValue().equals(device.getDeviceStatus())).count();
-        long faultCount = list.stream().filter(device -> DeviceStatusCode.FAULT.getValue().equals(device.getDeviceStatus())).count();
-        long offCount = list.stream().filter(device -> DeviceStatusCode.OFFLINE.getValue().equals(device.getDeviceStatus())).count();
-//        siteVo.setAlarmPowerCount(alarmPowerMapper.selectCount(userId,site.getId(),null,null,null,null,1));
+        long deviceCount = list.stream()
+                .filter(device -> device.getSiteId().equals(site.getId()))
+                .filter(device -> DeviceStatusCode.DEVICE.getValue().equals(device.getDeviceStatus()))
+                .count();
+        long faultCount = list.stream()
+                .filter(device -> device.getSiteId().equals(site.getId()))
+                .filter(device -> DeviceStatusCode.FAULT.getValue().equals(device.getDeviceStatus()))
+                .count();
+        long offCount = list.stream()
+                .filter(device -> device.getSiteId().equals(site.getId()))
+                .filter(device -> DeviceStatusCode.OFFLINE.getValue().equals(device.getDeviceStatus()))
+                .count();
+        if (CollectionUtils.isNotEmpty(alarmPowers)){
+            siteVo.setAlarmPowerCount((int) alarmPowers.stream().filter(alarmPower -> alarmPower.getSiteId().equals(site.getId())).count());
+        }else {
+            siteVo.setAlarmPowerCount(0);
+        }
         if (deviceCount > 0){
             siteVo.setStatus(DeviceStatusCode.FAULT.getDescribe());
         }else if (offCount > 0){
@@ -103,6 +123,11 @@ public class SiteServiceImpl extends AbstractCrudService<SiteMapper, Site> imple
         }else {
             siteVo.setStatus(DeviceStatusCode.NORMAL.getDescribe());
         }
+        List<String> deviceType = new ArrayList<>();
+        list.stream()
+                .filter(device -> device.getSiteId().equals(site.getId()))
+                .forEach(device -> deviceType.add(DeviceType.pase(device.getDeviceType()).getName()));
+        siteVo.setDeviceType(deviceType);
         return siteVo;
     }
 }