Browse Source

提交测试

yq 4 years ago
parent
commit
9ea03c2ec2

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

@@ -1,7 +1,12 @@
 package com.bizmatics.service.enums;
 package com.bizmatics.service.enums;
 
 
+import com.bizmatics.common.core.exception.BusinessException;
 import org.bouncycastle.asn1.cmc.LraPopWitness;
 import org.bouncycastle.asn1.cmc.LraPopWitness;
 
 
+import java.lang.management.OperatingSystemMXBean;
+import java.nio.file.OpenOption;
+import java.util.Optional;
+
 /**
 /**
  * @author yq
  * @author yq
  * @date 2021/7/7 14:48
  * @date 2021/7/7 14:48
@@ -34,6 +39,16 @@ public enum DeviceStatusCode {
         this.describe = describe;
         this.describe = describe;
     }
     }
 
 
+    public static DeviceStatusCode pase(Integer value){
+        DeviceStatusCode dc = null;
+        for (DeviceStatusCode deviceStatusCode:DeviceStatusCode.values()) {
+            if (deviceStatusCode.getValue().equals(value)){
+                dc =  deviceStatusCode;
+            }
+        }
+        return Optional.ofNullable(dc).orElseThrow(() -> new BusinessException("枚举为空"));
+    }
+
     public Integer getValue(){
     public Integer getValue(){
         return this.value;
         return this.value;
     }
     }

+ 120 - 128
fiveep-service/src/main/java/com/bizmatics/service/impl/HtAnalogDataServiceImpl.java

@@ -16,9 +16,7 @@ import com.bizmatics.service.vo.*;
 import com.fasterxml.jackson.core.type.TypeReference;
 import com.fasterxml.jackson.core.type.TypeReference;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
 import org.springframework.stereotype.Service;
-
 import java.util.*;
 import java.util.*;
-import java.util.concurrent.atomic.AtomicReference;
 import java.util.stream.Collectors;
 import java.util.stream.Collectors;
 
 
 /**
 /**
@@ -45,37 +43,47 @@ public class HtAnalogDataServiceImpl extends AbstractCrudService<HtAnalogDataMap
         Integer userId = SessionLocal.getUserId();
         Integer userId = SessionLocal.getUserId();
         Date date = new Date();
         Date date = new Date();
         HadCountVO hadCountVO = new HadCountVO();
         HadCountVO hadCountVO = new HadCountVO();
+        //获取用户对应的站点信息
         List<Integer> idList = siteMapper.idList(userId, null);
         List<Integer> idList = siteMapper.idList(userId, null);
         //日
         //日
-        List<HadDataLog> todayList = hadDataLogService.list(DateUtils.getDayStartTime(date),date);
-        for (HadCrVO hadCr:getEppData(idList, todayList)) {
-            hadCountVO.setDayCount(Arith.add(hadCountVO.getDayCount(),Arith.sub(hadCr.getHadMax(),hadCr.getHadMax())));
-        }
+        List<HadDataLog> byToday = getByToday(DateUtils.getDayStartTime(date), date);
+        getEpp(byToday,idList,null,null);
         //月
         //月
-        Date firstDayOfMonth = DateUtils.getFirstDayOfMonth(date);
-        hadCountVO.setMonthCount(getMonthAndYearDate(firstDayOfMonth, date, idList));
+        List<HadDataLog> byMonth = getByMonth(DateUtils.getFirstDayOfMonth(date), date);
+        getEpp(byMonth,idList,null,null);
         //年
         //年
-        Date beginDayOfYear = DateUtils.getBeginDayOfYear(date);
-        hadCountVO.setYearCount(getMonthAndYearDate(beginDayOfYear, date, idList));
+        List<HadDataLog> byYear = getByMonth(DateUtils.getBeginDayOfYear(date), date);
+        getEpp(byYear,idList,null,null);
         return hadCountVO;
         return hadCountVO;
     }
     }
 
 
+    /**
+     * 获取epp计算结果
+     * @param list
+     * @param siteIdList
+     * @return
+     */
+    public Double getEpp(List<HadDataLog> list, List<Integer> siteIdList,Date startTime,Date endTime){
+        List<HadCrVO> hadCrVoS = new ArrayList<>();
+        list.forEach(hadDataLog -> {
+            //获取真实数据
+            List<HadDataLogVO> hadDateList = getHadDateList(hadDataLog, siteIdList,startTime,endTime);
+            Map<Integer, DoubleSummaryStatistics> collect = hadDateList.stream()
+                    .collect(Collectors.groupingBy(HadDataLogVO::getSiteId, Collectors.summarizingDouble(HadDataLogVO::getEpp)));
+            checkData(collect,hadCrVoS);
+        });
+        return getSubCount(hadCrVoS);
+    }
 
 
-    public Double getMonthAndYearDate(Date startTime,Date endTime,List<Integer> idList){
-        AtomicReference<Double> count = new AtomicReference<>(0.00);
-        List<HadDataLog> startList = hadDataLogService.list(startTime,DateUtils.getDayEndTime(startTime));
-        List<HadDataLog> endList = hadDataLogService.list(DateUtils.getDayStartTime(endTime),endTime);
-        List<HadCrVO> startEppData = getEppData(idList, startList);
-        List<HadCrVO> endEppData = getEppData(idList, endList);
-        for (HadCrVO hadCrVO:startEppData) {
-            endEppData.stream()
-                    .filter(hadCr -> hadCr.getSiteId().equals(hadCrVO.getSiteId()))
-                    .findAny()
-                    .ifPresent(had ->{
-                        count.updateAndGet(v -> v + had.getHadMax() - hadCrVO.getHadMin());
-                    });
-        }
-        return count.get();
+    public List<HadDataLog> getByToday(Date startTime,Date endTime){
+        return hadDataLogService.list(startTime,endTime);
+    }
+
+    public List<HadDataLog> getByMonth(Date startTime,Date endTime){
+        List<HadDataLog> startList = hadDataLogService.list(startTime,endTime);
+        List<HadDataLog> endList = hadDataLogService.list(DateUtils.getDayStartTime(startTime),endTime);
+        startList.addAll(endList);
+        return startList;
     }
     }
 
 
 
 
@@ -83,11 +91,28 @@ public class HtAnalogDataServiceImpl extends AbstractCrudService<HtAnalogDataMap
     public List<CommonIcoVO> selectTrendByDate(Date date,Integer siteId) {
     public List<CommonIcoVO> selectTrendByDate(Date date,Integer siteId) {
         Integer userId = SessionLocal.getUserId();
         Integer userId = SessionLocal.getUserId();
         List<CommonIcoVO> list = new ArrayList<>();
         List<CommonIcoVO> list = new ArrayList<>();
-        list.add(getByDate("today", userId, siteId, date));
-        list.add(getByDate("yesterday", userId, siteId, DateUtils.addDays(date,-1)));
+        List<Integer> idList = siteMapper.idList(userId, null);
+        list.add(getTrendOne("today", idList, DateUtils.getDayStartTime(date), date));
+        list.add(getTrendOne("yesterday", idList, DateUtils.addDays(date, -1), date));
         return list;
         return list;
     }
     }
 
 
+    public CommonIcoVO getTrendOne(String name,List<Integer> idList,Date startTime,Date endTime){
+        List<HadDataLog> list = getByToday(startTime, endTime);
+        List<Object> objects = new ArrayList<>();
+        objects.add(0.0);
+        List<Object> dates = new ArrayList<>();
+        dates.add("00:00:00");
+        for (int i = 2; i < 24 ; i+=2) {
+            //结束时间
+            Date hours = DateUtils.addHours(startTime, i);
+            objects.add(getEpp(list,idList,startTime,hours));
+            startTime = hours;
+            dates.add(DateUtils.getTime(hours));
+        }
+        return CommonIcoVO.builder().name(name).list(objects).listDate(dates).build();
+    }
+
     @Override
     @Override
     public HadCountVO getCountBySite(Integer siteId) {
     public HadCountVO getCountBySite(Integer siteId) {
         Date date = new Date();
         Date date = new Date();
@@ -99,12 +124,12 @@ public class HtAnalogDataServiceImpl extends AbstractCrudService<HtAnalogDataMap
         //当年开始时间
         //当年开始时间
         Date firstDayOfYear = DateUtils.getBeginDayOfYear(date);
         Date firstDayOfYear = DateUtils.getBeginDayOfYear(date);
         HadCountVO hadCountVO = new HadCountVO();
         HadCountVO hadCountVO = new HadCountVO();
-        hadCountVO.setDayCount(getElectricity(userId,siteId,firstDayOfDate,date));
-        hadCountVO.setMonthCount(getElectricity(userId,siteId,firstDayOfMonth,date));
-        hadCountVO.setYearCount(getElectricity(userId,siteId,firstDayOfYear,date));
-        hadCountVO.setLastDayCount(getElectricity(userId,siteId,DateUtils.addDays(firstDayOfDate, -1),DateUtils.addDays(date, -1)));
-        hadCountVO.setLastMonthCount(getElectricity(userId,siteId,DateUtils.addMonths(firstDayOfMonth, -1),DateUtils.addMonths(date, -1)));
-        hadCountVO.setLastYearCount(getElectricity(userId,siteId,DateUtils.addYears(firstDayOfYear, -1),DateUtils.addYears(date, -1)));
+//        hadCountVO.setDayCount(getElectricity(userId,siteId,firstDayOfDate,date));
+//        hadCountVO.setMonthCount(getElectricity(userId,siteId,firstDayOfMonth,date));
+//        hadCountVO.setYearCount(getElectricity(userId,siteId,firstDayOfYear,date));
+//        hadCountVO.setLastDayCount(getElectricity(userId,siteId,DateUtils.addDays(firstDayOfDate, -1),DateUtils.addDays(date, -1)));
+//        hadCountVO.setLastMonthCount(getElectricity(userId,siteId,DateUtils.addMonths(firstDayOfMonth, -1),DateUtils.addMonths(date, -1)));
+//        hadCountVO.setLastYearCount(getElectricity(userId,siteId,DateUtils.addYears(firstDayOfYear, -1),DateUtils.addYears(date, -1)));
         hadCountVO.setDayRadio(Optional.ofNullable(hadCountVO.getDayCount())
         hadCountVO.setDayRadio(Optional.ofNullable(hadCountVO.getDayCount())
                 .filter(dayCount -> 0.00 != dayCount)
                 .filter(dayCount -> 0.00 != dayCount)
                 .map(dayCount -> Arith.div(hadCountVO.getLastDayCount(), dayCount))
                 .map(dayCount -> Arith.div(hadCountVO.getLastDayCount(), dayCount))
@@ -122,33 +147,61 @@ public class HtAnalogDataServiceImpl extends AbstractCrudService<HtAnalogDataMap
 
 
     @Override
     @Override
     public TimeShareVO getTimeShare(Integer siteId, Date date) {
     public TimeShareVO getTimeShare(Integer siteId, Date date) {
-        Integer userId = SessionLocal.getUserId();
         TimeShareVO timeShareVO = new TimeShareVO();
         TimeShareVO timeShareVO = new TimeShareVO();
-        timeShareVO.setNeed(getElectricity(userId, siteId, DateUtils.setHours(date, 9), DateUtils.setHours(date, 12)));
+        List<Integer> idList = new ArrayList<>();
+        idList.add(siteId);
+        List<HadDataLog> byToday = getByToday(date, DateUtils.getDayEndTime(date));
+        //尖峰时间
+        Date nine = DateUtils.setMinutes(DateUtils.setHours(date, 9), 30);
+        Date eleven = DateUtils.setMinutes(DateUtils.setHours(date, 11), 30);
+        Date nineTeen = DateUtils.setHours(date, 19);
+        Date twoOne = DateUtils.setHours(date, 21);
+        //高峰时间
+        Date eight = DateUtils.setMinutes(DateUtils.setHours(date, 8), 30);
+        Date ten = DateUtils.setMinutes(DateUtils.setHours(date, 10), 30);
+        Date oneEight = DateUtils.setHours(date, 18);
+        Date oneNine = DateUtils.setHours(date, 19);
+        Date twoThree = DateUtils.setHours(date, 23);
+        //低谷
+        Date seven = DateUtils.setHours(date, 7);
+        //平谷
+        Date oneTwo = DateUtils.setHours(date, 12);
+        Date oneSeven = DateUtils.setHours(date, 17);
+        //尖
+        Double nToe = getEpp(byToday, idList, nine, eleven);
+        Double nTot = getEpp(byToday, idList, nineTeen, twoOne);
         //高峰
         //高峰
-        Double peakStart = getElectricity(userId, siteId, DateUtils.setHours(date, 8), DateUtils.setHours(date, 12));
-        Double peakEnd = getElectricity(userId, siteId, DateUtils.setHours(date, 16), DateUtils.setHours(date, 20));
-        timeShareVO.setPeak(peakStart+peakEnd);
-        //平
-        Double flatStart = getElectricity(userId, siteId, DateUtils.setHours(date, 6), DateUtils.setHours(date, 8));
-        Double flatCentre = getElectricity(userId, siteId, DateUtils.setHours(date, 12), DateUtils.setHours(date, 16));
-        Double flatEnd = getElectricity(userId, siteId, DateUtils.setHours(date, 20), DateUtils.setHours(date, 22));
-        timeShareVO.setFlat(flatStart+flatCentre+flatEnd);
-        timeShareVO.setGrain(getElectricity(userId, siteId, DateUtils.setHours(date, 22), DateUtils.setHours(DateUtils.addDays(date, 1), 6)));
+        Double eTot = getEpp(byToday, idList, eight, ten);
+        Double hnTot = getEpp(byToday, idList, oneEight, oneNine);
+        Double tTot = getEpp(byToday, idList, twoOne, twoThree);
+        //低谷
+        Double tTos = getEpp(byToday, idList, twoThree, seven);
+        //平谷
+        Double oToo = getEpp(byToday, idList, oneTwo, oneSeven);
         return timeShareVO;
         return timeShareVO;
     }
     }
 
 
     @Override
     @Override
     public List<CommonIcoVO> getDemandIco(Integer siteId) {
     public List<CommonIcoVO> getDemandIco(Integer siteId) {
-        Date date = DateUtils.getLastDayOfMonth(new Date());
+        List<Integer> idList = new ArrayList<>();
+        idList.add(siteId);
+        Date date = new Date();
+        List<HadDataLog> hadDataLogList = getByToday(date, DateUtils.getLastDayOfMonth(new Date()));
         List<Object> maxList = new ArrayList<>();
         List<Object> maxList = new ArrayList<>();
         List<Object> minList = new ArrayList<>();
         List<Object> minList = new ArrayList<>();
         List<Object> avgList = new ArrayList<>();
         List<Object> avgList = new ArrayList<>();
         List<Object> dateList = new ArrayList<>();
         List<Object> dateList = new ArrayList<>();
         for (int i = 1; i <= Integer.parseInt(DateUtils.getDay(date)); i++) {
         for (int i = 1; i <= Integer.parseInt(DateUtils.getDay(date)); i++) {
+            List<HadCrVO> hadCrVoS = new ArrayList<>();
             Date setDays = DateUtils.setDays(date, i);
             Date setDays = DateUtils.setDays(date, i);
             Date dayStartTime = DateUtils.getDayStartTime(setDays);
             Date dayStartTime = DateUtils.getDayStartTime(setDays);
             Date dayEndTime = DateUtils.getDayEndTime(setDays);
             Date dayEndTime = DateUtils.getDayEndTime(setDays);
+            hadDataLogList.forEach(hadDataLog -> {
+                List<HadDataLogVO> hadDateList = getHadDateList(hadDataLog, idList, dayStartTime, dayEndTime);
+                Map<Integer, DoubleSummaryStatistics> collect = hadDateList.stream()
+                        .collect(Collectors.groupingBy(HadDataLogVO::getSiteId, Collectors.summarizingDouble(HadDataLogVO::getDemand)));
+                checkData(collect,hadCrVoS);
+            });
             Map<String, Double> map = baseMapper.selectMaxAndMinAndAvg(siteId, dayStartTime,dayEndTime);
             Map<String, Double> map = baseMapper.selectMaxAndMinAndAvg(siteId, dayStartTime,dayEndTime);
             maxList.add(Optional.ofNullable(map).map(max -> max.get("demandMax")).orElse(0.00));
             maxList.add(Optional.ofNullable(map).map(max -> max.get("demandMax")).orElse(0.00));
             minList.add(Optional.ofNullable(map).map(max -> max.get("demandMin")).orElse(0.00));
             minList.add(Optional.ofNullable(map).map(max -> max.get("demandMin")).orElse(0.00));
@@ -202,100 +255,39 @@ public class HtAnalogDataServiceImpl extends AbstractCrudService<HtAnalogDataMap
         return list;
         return list;
     }
     }
 
 
-
-    public CommonIcoVO getByDate(String name,Integer userId,Integer siteId,Date date){
-        List<Object> objects = new ArrayList<>();
-        objects.add(0.0);
-        List<Object> dates = new ArrayList<>();
-        dates.add("00:00:00");
-        for (int i = 2; i < 24 ; i+=2) {
-            //结束时间
-            Date endTime = DateUtils.addHours(date, i);
-            objects.add(getElectricity(userId,siteId,date,endTime));
-            date = endTime;
-            dates.add(DateUtils.getTime(date));
-        }
-        return CommonIcoVO.builder().name(name).list(objects).listDate(dates).build();
-    }
-
     /**
     /**
-     * 获取用电量
-     * @param userId
-     * @param siteId
-     * @param startTime
-     * @param endTime
-     * @return
-     */
-    public Double getElectricity(Integer userId,Integer siteId,Date startTime,Date endTime){
-        HtAnalogData ascHad = htAnalogDataMapper.selectByStartTime(startTime,endTime, siteId, userId);
-        HtAnalogData descHad = htAnalogDataMapper.selectByEndTime(endTime,endTime, siteId, userId);
-        Double ascHadEpp = Optional.ofNullable(ascHad).map(HtAnalogData::getEpp).orElse(0.00);
-        Double descHadEpp = Optional.ofNullable(descHad).map(HtAnalogData::getEpp).orElse(0.00);
-        return Arith.sub(descHadEpp,ascHadEpp);
-    }
-
-
-
-    /**
-     * 获取
-     * @param idList
+     * 求多个站点最大值减最小值的结果
      * @param list
      * @param list
      * @return
      * @return
      */
      */
-    public HadCrVO getDemandData(List<Integer> idList, List<HadDataLog> list){
-        HadCrVO hadCrVO = new HadCrVO();
-        hadCrVO.setCount(0);
-        hadCrVO.setSumDemand(0.00);
-        List<HadCrVO> hadCrVOS = new ArrayList<>();
-        for (HadDataLog hadDataLog:list) {
-            List<Integer> siteIdList = JsonUtils.fromJson(hadDataLog.getSiteIdList(), new TypeReference<List<Integer>>(){});
-            List<Integer> origin = new ArrayList<>(idList);
-            origin.retainAll(siteIdList);
-            // 有交集
-            if(CollectionUtils.isNotEmpty(origin)){
-                List<HadDataLogVO> hadDataLogVos = JsonUtils.fromJson(hadDataLog.getHadData(), new TypeReference<List<HadDataLogVO>>(){});
-                hadCrVO.setCount(hadCrVO.getCount()+origin.size());
-                hadCrVO.setSumDemand(hadCrVO.getSumDemand()+
-                        hadDataLogVos.stream().filter(hadDataLogVO -> origin.contains(hadDataLogVO.getSiteId())).mapToDouble(HadDataLogVO::getDemand).sum());
-                //分组求每个站点的最大值和最小值
-                Map<Integer, DoubleSummaryStatistics> collect = hadDataLogVos.stream()
-                        .filter(hadDataLogVO -> idList.contains(hadDataLogVO.getSiteId()))
-                        .collect(Collectors.groupingBy(HadDataLogVO::getSiteId, Collectors.summarizingDouble(HadDataLogVO::getDemand)));
-                checkData(collect,hadCrVOS);
-            }
-        }
-        for (HadCrVO hadCr:hadCrVOS) {
-            hadCrVO.setHadDif(Arith.add(hadCrVO.getHadDif(),Arith.sub(hadCr.getHadMax(),hadCr.getHadMax())));
+    public Double getSubCount(List<HadCrVO> list){
+        double count = 0.00;
+        for (HadCrVO hadCrVO:list) {
+            count+=Arith.add(count,Arith.sub(hadCrVO.getHadMax(),hadCrVO.getHadMax()));
         }
         }
-        hadCrVO.setHadAvg(Arith.div(hadCrVO.getSumDemand(),hadCrVO.getCount()));
-        hadCrVO.setList(hadCrVOS);
-        return hadCrVO;
+        return count;
     }
     }
 
 
-
     /**
     /**
-     * 获取epp数据
-     * @param idList
-     * @param list
+     * 根据统计表的一条记录获取真实数据
+     * @param hadDataLog
      * @return
      * @return
      */
      */
-    public List<HadCrVO> getEppData(List<Integer> idList,List<HadDataLog> list){
-        List<HadCrVO> hadCrVoArrayList = new ArrayList<>();
-        for (HadDataLog hadDataLog:list) {
-            List<Integer> siteIdList = JsonUtils.fromJson(hadDataLog.getSiteIdList(), new TypeReference<List<Integer>>(){});
-            List<Integer> origin = new ArrayList<>(idList);
-            origin.retainAll(siteIdList);
-            // 有交集
-            if(CollectionUtils.isNotEmpty(origin)){
-                List<HadDataLogVO> hadDataLogVos = JsonUtils.fromJson(hadDataLog.getHadData(), new TypeReference<List<HadDataLogVO>>(){});
-                //分组求每个站点的最大值和最小值
-                Map<Integer, DoubleSummaryStatistics> collect = hadDataLogVos.stream()
-                        .filter(hadDataLogVO -> idList.contains(hadDataLogVO.getSiteId()))
-                        .collect(Collectors.groupingBy(HadDataLogVO::getSiteId, Collectors.summarizingDouble(HadDataLogVO::getEpp)));
-                checkData(collect,hadCrVoArrayList);
-            }
+    public List<HadDataLogVO> getHadDateList(HadDataLog hadDataLog,List<Integer> idList,Date startTime,Date endTime){
+        List<HadDataLogVO> hadDataLogVos = new ArrayList<>();
+        List<Integer> siteIdList = JsonUtils.fromJson(hadDataLog.getSiteIdList(), new TypeReference<List<Integer>>(){});
+        List<Integer> origin = new ArrayList<>(idList);
+        origin.retainAll(siteIdList);
+        // 有交集
+        if(CollectionUtils.isNotEmpty(origin)){
+            hadDataLogVos = JsonUtils.fromJson(hadDataLog.getHadData(), new TypeReference<List<HadDataLogVO>>(){});
+            hadDataLogVos = hadDataLogVos.stream()
+                    .filter(hadDataLogVO -> idList.contains(hadDataLogVO.getSiteId()))
+                    .filter(hadDataLogVO -> Optional.ofNullable(startTime).map(sTime -> hadDataLogVO.getDataTime().after(sTime)).orElse(true))
+                    .filter(hadDataLogVO -> Optional.ofNullable(endTime).map(eTime -> hadDataLogVO.getDataTime().before(eTime)).orElse(true))
+                    .collect(Collectors.toList());
         }
         }
-        return hadCrVoArrayList;
+        return hadDataLogVos;
     }
     }
 
 
     /**
     /**

+ 15 - 2
fiveep-service/src/main/java/com/bizmatics/service/impl/SiteServiceImpl.java

@@ -1,5 +1,6 @@
 package com.bizmatics.service.impl;
 package com.bizmatics.service.impl;
 
 
+import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
 import com.baomidou.mybatisplus.core.toolkit.Wrappers;
 import com.baomidou.mybatisplus.core.toolkit.Wrappers;
 import com.bizmatics.common.core.exception.BusinessException;
 import com.bizmatics.common.core.exception.BusinessException;
 import com.bizmatics.common.core.util.BeanMapperUtils;
 import com.bizmatics.common.core.util.BeanMapperUtils;
@@ -39,7 +40,7 @@ public class SiteServiceImpl extends AbstractCrudService<SiteMapper, Site> imple
     private DeviceMapper deviceMapper;
     private DeviceMapper deviceMapper;
 
 
     @Autowired
     @Autowired
-    private AlarmPowerMapper alarmPowerMapper;
+    private DeviceService deviceService;
     @Override
     @Override
     public DeviceCountVO selectCount() {
     public DeviceCountVO selectCount() {
         Integer userId = SessionLocal.getUserId();
         Integer userId = SessionLocal.getUserId();
@@ -70,7 +71,19 @@ public class SiteServiceImpl extends AbstractCrudService<SiteMapper, Site> imple
     @Override
     @Override
     public SiteVO getOne(Long siteId) {
     public SiteVO getOne(Long siteId) {
         Site site = baseMapper.selectOne(Wrappers.lambdaQuery(Site.class).eq(Site::getId, siteId));
         Site site = baseMapper.selectOne(Wrappers.lambdaQuery(Site.class).eq(Site::getId, siteId));
-        return Optional.ofNullable(site).map(st -> BeanMapperUtils.map(site,SiteVO.class)).orElseThrow(() -> new BusinessException("站点信息不存在"));
+        List<String> deviceType = new ArrayList<>();
+        LambdaQueryWrapper<Device> deviceLambdaQueryWrapper = Wrappers.lambdaQuery();
+        deviceLambdaQueryWrapper.eq(Device::getSiteId,site);
+        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;
+                })
+                .orElseThrow(() -> new BusinessException("站点信息不存在"));
+
     }
     }
 
 
 
 

+ 3 - 0
fiveep-service/src/main/java/com/bizmatics/service/vo/SiteVO.java

@@ -6,6 +6,7 @@ import lombok.Data;
 
 
 import java.time.LocalDateTime;
 import java.time.LocalDateTime;
 import java.util.Date;
 import java.util.Date;
+import java.util.List;
 
 
 /**
 /**
  * @author yq
  * @author yq
@@ -101,4 +102,6 @@ public class SiteVO {
      * 站点状态
      * 站点状态
      */
      */
     private String status;
     private String status;
+
+    private List<String> deviceType;
 }
 }