Ver Fonte

添加实时数据相关接口

魏志亮 há 2 meses atrás
pai
commit
09de3abf2d

+ 8 - 6
src/main/java/com/dskj/znzn/transData/web/common/service/impl/SysConfServiceImpl.java

@@ -2,15 +2,18 @@ package com.dskj.znzn.transData.web.common.service.impl;
 
 import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
 import com.baomidou.mybatisplus.core.toolkit.Wrappers;
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
 import com.dskj.znzn.transData.web.common.entity.SysConf;
 import com.dskj.znzn.transData.web.common.mapper.SysConfMapper;
 import com.dskj.znzn.transData.web.common.service.ISysConfService;
-import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
 import lombok.RequiredArgsConstructor;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
 
-import java.util.*;
+import java.util.Arrays;
+import java.util.HashMap;
+import java.util.List;
+import java.util.Map;
 
 /**
  * <p>
@@ -43,12 +46,11 @@ public class SysConfServiceImpl extends ServiceImpl<SysConfMapper, SysConf> impl
 
     @Override
     public String getValueByType(String type, String paramKey) {
-        if (sysMap.size() <= 1 || System.currentTimeMillis() - Long.parseLong(sysMap.get("lastTime")) > 600000) {
+        if (sysMap.size() <= 1 || System.currentTimeMillis() - Long.parseLong(sysMap.get("lastTime")) > 600000
+                || !sysMap.containsKey(type + "__" + paramKey)) {
             LambdaQueryWrapper<SysConf> wrapper = Wrappers.lambdaQuery();
             wrapper.eq(SysConf::getStatus, 1);
-            list(wrapper).forEach(sysConf -> {
-                sysMap.put(sysConf.getType() + "__" + sysConf.getParamKey(), sysConf.getParamValue());
-            });
+            list(wrapper).forEach(sysConf -> sysMap.put(sysConf.getType() + "__" + sysConf.getParamKey(), sysConf.getParamValue()));
             sysMap.put("lastTime", System.currentTimeMillis() + "");
         }
 

+ 8 - 1
src/main/java/com/dskj/znzn/transData/web/dataTransfer/controller/WindFarmDayCountController.java

@@ -40,7 +40,7 @@ public class WindFarmDayCountController {
 
     @ApiOperation("获取历史数据汇总")
     @PostMapping("getHistoryDataSummary")
-    public R<List<HistoryDataSummaryOutData>> Summary(@RequestBody HistoryDataSummaryInData inData) {
+    public R<List<HistoryDataSummaryOutData>> getHistoryDataSummary(@RequestBody HistoryDataSummaryInData inData) {
         return R.ok(windFarmDayCountService.getHistoryDataSummary(inData));
     }
 
@@ -49,4 +49,11 @@ public class WindFarmDayCountController {
     public R<PltAutoAnalysisTimeOutData> pltAutoAnalysisTime(@Valid @NotBlank(message = "风场编号不能为空") String windFarmCode) {
         return R.ok(windFarmDayCountService.pltAutoAnalysisTime(windFarmCode));
     }
+
+    @ApiOperation("首页-获取在线数据")
+    @PostMapping("getIndexOnlineData")
+    public R<List<HistoryDataSummaryOutData>> getIndexOnlineData() {
+        return R.ok(windFarmDayCountService.getIndexOnlineData());
+    }
+
 }

+ 0 - 2
src/main/java/com/dskj/znzn/transData/web/dataTransfer/inData/GetTimeRangeInData.java

@@ -20,6 +20,4 @@ public class GetTimeRangeInData {
     @NotEmpty(message = "转化类型不能为空")
     private List<String> transferType;
 
-    @ApiModelProperty(value = "是否在线数据 0:否 1:是,默认1")
-    private Integer isOnlineData = 1;
 }

+ 3 - 0
src/main/java/com/dskj/znzn/transData/web/dataTransfer/mapper/WindFarmDayCountMapper.java

@@ -27,4 +27,7 @@ public interface WindFarmDayCountMapper extends BaseMapper<WindFarmDayCount> {
     PltAutoAnalysisTimeOutData platformAutoAnalysisTime(String windFarmCode);
 
     List<HistoryDataSummaryOutData> getHistoryDataSummary(HistoryDataSummaryInData inData);
+
+    List<HistoryDataSummaryOutData> getIndexOnlineData();
+
 }

+ 4 - 1
src/main/java/com/dskj/znzn/transData/web/dataTransfer/outData/HistoryDataSummaryOutData.java

@@ -29,7 +29,10 @@ public class HistoryDataSummaryOutData {
     @ApiModelProperty("最近数据采集的时间")
     @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
     private Date latestDataTime;
-    
+
     @ApiModelProperty("类型名称")
     private String typeName;
+
+    @ApiModelProperty("可分析状态 0:不可分析 1:可分析")
+    private Integer canAnalysis;
 }

+ 3 - 0
src/main/java/com/dskj/znzn/transData/web/dataTransfer/service/IWindFarmDayCountService.java

@@ -28,4 +28,7 @@ public interface IWindFarmDayCountService extends IService<WindFarmDayCount> {
     List<HistoryDataSummaryOutData> getHistoryDataSummary(HistoryDataSummaryInData inData);
 
     PltAutoAnalysisTimeOutData pltAutoAnalysisTime(@Param("windFarmCode") String windFarmCode);
+
+    List<HistoryDataSummaryOutData> getIndexOnlineData();
+
 }

+ 2 - 2
src/main/java/com/dskj/znzn/transData/web/dataTransfer/service/impl/DataTransferServiceImpl.java

@@ -124,7 +124,8 @@ public class DataTransferServiceImpl extends ServiceImpl<DataTransferMapper, Dat
     @Override
     public List<GetTimeRangeOutData> getTimeRange(GetTimeRangeInData data) {
         List<GetTimeRangeOutData> results = new ArrayList<>();
-        if (data.getIsOnlineData() == 0) {
+        String isOlineData = sysConfService.getValueByType("system_online_data", "is_online_data");
+        if (null == isOlineData || "0".equals(isOlineData)) {
             LambdaQueryWrapper<DataTransfer> wrapper = Wrappers.lambdaQuery();
             wrapper.eq(DataTransfer::getWindFarmCode, data.getWindFarmCode())
                     .in(DataTransfer::getTransferType, data.getTransferType())
@@ -370,7 +371,6 @@ public class DataTransferServiceImpl extends ServiceImpl<DataTransferMapper, Dat
 
 
     public static void main(String[] args) throws ParseException {
-        List<GetTimeRangeOutData> results = new ArrayList<>();
         SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
         List<GetTimeRangeOutData> periods = new ArrayList<>();
         periods.add(new GetTimeRangeOutData(sdf.parse("2024-01-01 00:00:00"), sdf.parse("2024-03-31 23:59:59")));

+ 5 - 0
src/main/java/com/dskj/znzn/transData/web/dataTransfer/service/impl/WindFarmDayCountServiceImpl.java

@@ -73,4 +73,9 @@ public class WindFarmDayCountServiceImpl extends ServiceImpl<WindFarmDayCountMap
         }
         return data;
     }
+
+    @Override
+    public List<HistoryDataSummaryOutData> getIndexOnlineData() {
+        return windFarmDayCountMapper.getIndexOnlineData();
+    }
 }

+ 27 - 6
src/main/resources/mapper/WindFarmDayCountMapper.xml

@@ -38,12 +38,14 @@
         SELECT t.wind_farm_code,
         t.wind_farm_name,
         t.type,
-        count(t.id) AS 'totalDays',
+        DATEDIFF(max(add_date),min(add_date))+1 AS 'totalDays',
         sum(t.count) AS 'totalDataCount',
-        max(t.latest_data_time) AS 'latestDataTime'
+        max(t.latest_data_time) AS 'latestDataTime',
+        if(a.param_value &lt; DATEDIFF(max(add_date),min(add_date))+1,1,0) as 'canAnalysis'
         FROM wind_farm_day_count t
-        WHERE 1 = 1
-        AND t.type IN ('minute', 'second')
+        LEFT JOIN sys_conf a on t.type = a.param_key
+        WHERE a.type = 'system_analysis'
+#         AND t.type IN ('minute', 'second')
         AND t.sync_status = 1
         AND t.del_status = 0
         <if test="windFarmCode != null and windFarmCode != ''">
@@ -60,8 +62,27 @@
         </if>
         GROUP BY t.wind_farm_code,
         t.wind_farm_name,
-        t.type
-
+        t.type,
+        a.param_value
     </select>
 
+    <select id="getIndexOnlineData"
+            resultType="com.dskj.znzn.transData.web.dataTransfer.outData.HistoryDataSummaryOutData">
+
+        SELECT b.wind_farm_code,
+               b.wind_farm_name,
+               if(COUNT(1) = SUM(b.canAnalysis), 1, 0) as 'canAnalysis'
+        FROM (SELECT t.wind_farm_code,
+                     t.wind_farm_name,
+                     if(a.param_value &lt; DATEDIFF(max(add_date), min(add_date)) + 1, 1, 0) as 'canAnalysis'
+              FROM wind_farm_day_count t
+                       LEFT JOIN sys_conf a on t.type = a.param_key
+              WHERE a.type = 'system_analysis'
+                AND t.type IN ('minute', 'second')
+                AND t.sync_status = 1
+                AND t.del_status = 0
+              GROUP BY t.wind_farm_code, t.wind_farm_name, t.type, a.param_value) b
+        GROUP BY b.wind_farm_code, b.wind_farm_name;
+
+    </select>
 </mapper>