Przeglądaj źródła

根据区域ID查询设备统计信息

qiangxuan 7 miesięcy temu
rodzic
commit
d3780b29c2

+ 1 - 1
zgztBus/jeecg-module-lesm/src/main/java/org/jeecg/modules/deviceLesm/entity/DeviceModelInfo.java

@@ -14,5 +14,5 @@ public class DeviceModelInfo {
     private List<DeviceInformation> deviceInformationList;
 
     @ApiModelProperty(value = "模型信息")
-    private List<FpgStatiscsModelMongodb> fpgStatiscsModelMongodbList;
+    private List<StatiscsModelDataResult> statiscsModelDataResultList;
 }

+ 11 - 9
zgztBus/jeecg-module-lesm/src/main/java/org/jeecg/modules/deviceLesm/entity/FpgStatiscsModelMongodb.java

@@ -17,22 +17,28 @@ public class FpgStatiscsModelMongodb {
 
     @ApiModelProperty(value = "更新日期")
     private Date updateTime;
-	/**采集点ID*/
+    /**采集点ID*/
     @ApiModelProperty(value = "采集点ID")
     private String devicePointId;
-	/**区域ID*/
+    /**区域ID*/
     @ApiModelProperty(value = "区域ID")
     private String deviceRegionId;
-	/**设备id*/
+    /**设备id*/
     @ApiModelProperty(value = "设备id")
     private String deviceInformationId;
+    /**设备启动时间*/
+    @ApiModelProperty(value = "设备启动时间")
+    private String deviceStartTime;
+    /**设备关停时间*/
+    @ApiModelProperty(value = "设备关停时间")
+    private String deviceStopTime;
     /**产生费用*/
     @ApiModelProperty(value = "产生费用")
     private BigDecimal amount;
-	/**运行时长*/
+    /**运行时长*/
     @ApiModelProperty(value = "运行时长")
     private BigDecimal ingTime;
-	/**运行总功率*/
+    /**运行总功率*/
     @ApiModelProperty(value = "运行总功率")
     private BigDecimal power;
     /**尖总功率*/
@@ -122,8 +128,4 @@ public class FpgStatiscsModelMongodb {
     /**创建时间*/
     @ApiModelProperty(value = "创建时间")
     private Date createTime;
-
-    public FpgStatiscsModelMongodb() {
-
-    }
 }

+ 93 - 0
zgztBus/jeecg-module-lesm/src/main/java/org/jeecg/modules/deviceLesm/entity/StatiscsModelDataResult.java

@@ -0,0 +1,93 @@
+package org.jeecg.modules.deviceLesm.entity;
+
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+import java.math.BigDecimal;
+import java.util.Date;
+
+@Data
+public class StatiscsModelDataResult {
+
+    @ApiModelProperty(value = "更新日期")
+    private Date updateTime;
+    /**设备启动时间*/
+    @ApiModelProperty(value = "设备启动时间")
+    private String deviceStartTime;
+    /**设备关停时间*/
+    @ApiModelProperty(value = "设备关停时间")
+    private String deviceStopTime;
+    /**区域ID*/
+    @ApiModelProperty(value = "区域ID")
+    private String deviceRegionId;
+    /**设备id*/
+    @ApiModelProperty(value = "设备id")
+    private String deviceInformationId;
+    /**运行时长*/
+    @ApiModelProperty(value = "运行时长")
+    private BigDecimal ingTime;
+    /**运行总功率*/
+    @ApiModelProperty(value = "运行总功率")
+    private BigDecimal power;
+    /**尖总功率*/
+    @ApiModelProperty(value = "尖总功率")
+    private BigDecimal topsPower;
+    /**峰总功率*/
+    @ApiModelProperty(value = "峰总功率")
+    private BigDecimal peaksPower;
+    /**平总功率*/
+    @ApiModelProperty(value = "平总功率")
+    private BigDecimal flatPower;
+    /**谷总功率*/
+    @ApiModelProperty(value = "谷总功率")
+    private BigDecimal valleysPower;
+    /**尖运行时长*/
+    @ApiModelProperty(value = "尖运行时长")
+    private BigDecimal topsIngTime;
+    /**峰运行时长*/
+    @ApiModelProperty(value = "峰运行时长")
+    private BigDecimal peaksIngTime;
+    /**平运行时长*/
+    @ApiModelProperty(value = "平运行时长")
+    private BigDecimal flatIngTime;
+    /**谷运行时长*/
+    @ApiModelProperty(value = "谷运行时长")
+    private BigDecimal valleysIngTime;
+    /**尖电流*/
+    @ApiModelProperty(value = "尖电流")
+    private BigDecimal topsSelectricCurrent;
+    /**峰电流*/
+    @ApiModelProperty(value = "峰电流")
+    private BigDecimal peaksSelectricCurrent;
+    /**平电流*/
+    @ApiModelProperty(value = "平电流")
+    private BigDecimal flatSelectricCurrent;
+    /**谷电流*/
+    @ApiModelProperty(value = "谷电流")
+    private BigDecimal valleysSelectricCurrent;
+    /**尖占比%*/
+    @ApiModelProperty(value = "尖占比%")
+    private BigDecimal topsProportion;
+    /**峰占比%*/
+    @ApiModelProperty(value = "峰占比%")
+    private BigDecimal peaksProportion;
+    /**平占比%*/
+    @ApiModelProperty(value = "平占比%")
+    private BigDecimal flatProportion;
+    /**谷占比%*/
+    @ApiModelProperty(value = "谷占比%")
+    private BigDecimal valleysProportion;
+    /**班次*/
+    @ApiModelProperty(value = "班次")
+    private String classs;
+    /**日期*/
+    @ApiModelProperty(value = "日期")
+    private String dates;
+    /**创建时间*/
+    @ApiModelProperty(value = "创建时间")
+    private Date createTime;
+
+    public StatiscsModelDataResult() {
+
+    }
+}

+ 37 - 15
zgztBus/jeecg-module-lesm/src/main/java/org/jeecg/modules/deviceLesm/service/impl/DeviceInformationServiceImpl.java

@@ -6,15 +6,20 @@ import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
 import org.jeecg.common.util.oConvertUtils;
 import org.jeecg.modules.deviceLesm.entity.DeviceInformation;
 import org.jeecg.modules.deviceLesm.entity.DeviceModelInfo;
-import org.jeecg.modules.deviceLesm.entity.FpgStatiscsModelMongodb;
+import org.jeecg.modules.deviceLesm.entity.StatiscsModelDataResult;
 import org.jeecg.modules.deviceLesm.mapper.DeviceInformationMapper;
 import org.jeecg.modules.deviceLesm.service.IDeviceInformationService;
+import org.springframework.beans.BeanUtils;
 import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.data.domain.Sort;
 import org.springframework.data.mongodb.core.MongoTemplate;
 import org.springframework.data.mongodb.core.query.Criteria;
 import org.springframework.data.mongodb.core.query.Query;
 import org.springframework.stereotype.Service;
 
+import java.time.LocalDate;
+import java.time.format.DateTimeFormatter;
+import java.util.ArrayList;
 import java.util.List;
 import java.util.stream.Collectors;
 
@@ -45,22 +50,39 @@ public class DeviceInformationServiceImpl extends ServiceImpl<DeviceInformationM
         Query query = new Query();
         query.addCriteria(Criteria.where("deviceRegionId").is(deviceRegionId))// 设备区域ID
                 .addCriteria(Criteria.where("deviceInformationId").in(deviceInformationIds));// 虚拟设备
-//        Date startTime = DateUtils.str2Date(startTimeParam, DateUtils.datetimeFormat.get());
-//        Calendar calendar1 = Calendar.getInstance();
-//        calendar1.setTime(startTime);
-//        calendar1.add(Calendar.HOUR, 8);
-//        Date specifiedTimePlus8HoursStartTime = calendar1.getTime();
-//        Date endTime = DateUtils.str2Date(endTimeParam, DateUtils.datetimeFormat.get());
-//        Calendar calendar2 = Calendar.getInstance();
-//        calendar2.setTime(endTime);
-//        calendar2.add(Calendar.HOUR, 8);
-//        Date specifiedTimePlus8HoursStartEndTime = calendar2.getTime();
-//        query.addCriteria(Criteria.where("createTime").gte(specifiedTimePlus8HoursStartTime).lt(specifiedTimePlus8HoursStartEndTime));
-        List<FpgStatiscsModelMongodb> fpgStatiscsModelMongodbList = mongoTemplate.find(query, FpgStatiscsModelMongodb.class, "leanmodel_run_power_minute");
-        if (oConvertUtils.listIsEmpty(fpgStatiscsModelMongodbList)){
+        query.with(Sort.by(Sort.Order.desc("deviceStartTime")));
+        // 获取上次运行时间、运行累计时间、运行累计功率
+        List<StatiscsModelDataResult> statiscsModelDataResultList1 = mongoTemplate.find(query, StatiscsModelDataResult.class, "total_startstop");
+        if (oConvertUtils.listIsEmpty(statiscsModelDataResultList1)){
             return result;
         }
-        result.setFpgStatiscsModelMongodbList(fpgStatiscsModelMongodbList);
+        // 获取尖峰平谷 时长、用电、占比
+        // 获取当前日期
+        LocalDate currentDate = LocalDate.now();
+        // 定义日期格式
+        DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyy-MM-dd");
+        // 将当前日期格式化为字符串
+        String formattedDate = currentDate.format(formatter);
+        Query querys = new Query();
+        querys.addCriteria(Criteria.where("deviceRegionId").is(deviceRegionId))// 设备区域ID
+                .addCriteria(Criteria.where("deviceInformationId").in(deviceInformationIds))// 虚拟设备
+                .addCriteria(Criteria.where("dates").is(formattedDate));
+        List<StatiscsModelDataResult> statiscsModelDataResultList2 = mongoTemplate.find(querys, StatiscsModelDataResult.class, "total_day_powerproportioncurrent");
+
+        List<StatiscsModelDataResult> statiscsModelDataResultListMerge = new ArrayList<>();
+        statiscsModelDataResultList1.forEach(x ->{
+            statiscsModelDataResultList2.forEach(y ->{
+                if (x.getDeviceRegionId().equals(y.getDeviceRegionId()) && x.getDeviceInformationId().equals(y.getDeviceInformationId())){
+                    StatiscsModelDataResult statiscsModelDataResult = new StatiscsModelDataResult();
+                    BeanUtils.copyProperties(y, statiscsModelDataResult);
+                    statiscsModelDataResult.setIngTime(x.getIngTime());
+                    statiscsModelDataResult.setPower(x.getPower());
+                    statiscsModelDataResult.setDeviceStartTime(x.getDeviceStartTime());
+                    statiscsModelDataResultListMerge.add(statiscsModelDataResult);
+                }
+            });
+        });
+        result.setStatiscsModelDataResultList(statiscsModelDataResultListMerge);
         return result;
     }
 }