Browse Source

添加平台首页入库查询相关接口

wzl 6 months ago
parent
commit
90832b6428

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

@@ -43,12 +43,13 @@ public class SysConfServiceImpl extends ServiceImpl<SysConfMapper, SysConf> impl
 
     @Override
     public String getValueByType(String type, String paramKey) {
-        if (sysMap.isEmpty()) {
+        if (sysMap.size() <= 1 || System.currentTimeMillis() - Long.parseLong(sysMap.get("lastTime")) > 600000) {
             LambdaQueryWrapper<SysConf> wrapper = Wrappers.lambdaQuery();
             wrapper.eq(SysConf::getStatus, 1);
             list(wrapper).forEach(sysConf -> {
                 sysMap.put(sysConf.getType() + "__" + sysConf.getParamKey(), sysConf.getParamValue());
             });
+            sysMap.put("lastTime", System.currentTimeMillis() + "");
         }
 
         return sysMap.get(type + "__" + paramKey);

+ 13 - 3
src/main/java/com/dskj/znzn/transData/web/dataTransfer/controller/DataTransferController.java

@@ -4,9 +4,7 @@ import com.dskj.znzn.transData.common.base.PageR;
 import com.dskj.znzn.transData.common.base.R;
 import com.dskj.znzn.transData.web.dataTransfer.entity.DataTransfer;
 import com.dskj.znzn.transData.web.dataTransfer.inData.*;
-import com.dskj.znzn.transData.web.dataTransfer.outData.ClassificationImportDataDetailsOutData;
-import com.dskj.znzn.transData.web.dataTransfer.outData.GetStatisticalOutData;
-import com.dskj.znzn.transData.web.dataTransfer.outData.GetTimeRangeOutData;
+import com.dskj.znzn.transData.web.dataTransfer.outData.*;
 import com.dskj.znzn.transData.web.dataTransfer.service.IDataTransferService;
 import io.swagger.annotations.Api;
 import io.swagger.annotations.ApiOperation;
@@ -99,4 +97,16 @@ public class DataTransferController {
         return R.ok(dataTransferService.classificationImportDataDetails());
     }
 
+    @ApiOperation("最近导入成功的5条数据")
+    @PostMapping("/recentlyImportedSuccessful5Data")
+    public R<List<DataTransfer>> recentlyImportedSuccessful5Data() {
+        return R.ok(dataTransferService.recentlyImportedSuccessful5Data());
+    }
+
+    @ApiOperation("平台更多详情")
+    @PostMapping("/pltIndexMore")
+    public R<List<PltIndexMoreOutData>> pltIndexMore() {
+        return R.ok(dataTransferService.pltIndexMore());
+    }
+
 }

+ 3 - 0
src/main/java/com/dskj/znzn/transData/web/dataTransfer/outData/ClassificationImportDataDetailsQuery.java

@@ -28,5 +28,8 @@ public class ClassificationImportDataDetailsQuery {
     @ApiModelProperty("最近入库时间")
     private Date latestStorageTime;
 
+    @ApiModelProperty("包含的时间范围")
+    private String timeArea;
+
 
 }

+ 34 - 0
src/main/java/com/dskj/znzn/transData/web/dataTransfer/outData/PltIndexMoreOutData.java

@@ -0,0 +1,34 @@
+package com.dskj.znzn.transData.web.dataTransfer.outData;
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+import java.util.List;
+
+@ApiModel
+@Data
+public class PltIndexMoreOutData {
+
+    @ApiModelProperty("风场编码")
+    private String windFarmCode;
+
+    @ApiModelProperty("风场名称")
+    private String windFarmName;
+
+    @ApiModelProperty("分钟的时间范围")
+    private List<String> minuteTimeAreaList;
+
+    @ApiModelProperty("秒的时间范围")
+    private List<String> secondTimeAreaList;
+
+    @ApiModelProperty("故障的时间范围")
+    private List<String> faultTimeAreaList;
+
+    @ApiModelProperty("报警的时间范围")
+    private List<String> warnTimeAreaList;
+
+    @ApiModelProperty("振动的时间范围")
+    private List<String> vibrationTimeAreaList;
+
+}

+ 4 - 0
src/main/java/com/dskj/znzn/transData/web/dataTransfer/outData/TypeCountData.java

@@ -4,8 +4,12 @@ import com.fasterxml.jackson.annotation.JsonFormat;
 import io.swagger.annotations.ApiModel;
 import io.swagger.annotations.ApiModelProperty;
 import lombok.Data;
+import org.apache.commons.lang3.StringUtils;
 
+import java.util.Arrays;
+import java.util.Collections;
 import java.util.Date;
+import java.util.List;
 
 @Data
 @ApiModel

+ 5 - 4
src/main/java/com/dskj/znzn/transData/web/dataTransfer/service/IDataTransferService.java

@@ -1,16 +1,13 @@
 package com.dskj.znzn.transData.web.dataTransfer.service;
 
 import com.dskj.znzn.transData.common.base.PageR;
-import com.dskj.znzn.transData.common.base.R;
 import com.dskj.znzn.transData.web.dataTransfer.entity.DataTransfer;
 import com.baomidou.mybatisplus.extension.service.IService;
 import com.dskj.znzn.transData.web.dataTransfer.inData.AddDataTransferTaskInData;
 import com.dskj.znzn.transData.web.dataTransfer.inData.EditDataTransferTaskInData;
 import com.dskj.znzn.transData.web.dataTransfer.inData.GetDataTransferInData;
 import com.dskj.znzn.transData.web.dataTransfer.inData.GetTimeRangeInData;
-import com.dskj.znzn.transData.web.dataTransfer.outData.ClassificationImportDataDetailsOutData;
-import com.dskj.znzn.transData.web.dataTransfer.outData.GetStatisticalOutData;
-import com.dskj.znzn.transData.web.dataTransfer.outData.GetTimeRangeOutData;
+import com.dskj.znzn.transData.web.dataTransfer.outData.*;
 
 import java.util.List;
 
@@ -41,4 +38,8 @@ public interface IDataTransferService extends IService<DataTransfer> {
     DataTransfer recentlyImportedSuccessfulData();
 
     List<ClassificationImportDataDetailsOutData> classificationImportDataDetails();
+
+    List<DataTransfer> recentlyImportedSuccessful5Data();
+
+    List<PltIndexMoreOutData> pltIndexMore();
 }

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

@@ -5,7 +5,6 @@ import com.baomidou.mybatisplus.core.metadata.IPage;
 import com.baomidou.mybatisplus.core.toolkit.Wrappers;
 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
 import com.dskj.znzn.transData.common.base.PageR;
-import com.dskj.znzn.transData.common.base.R;
 import com.dskj.znzn.transData.common.exception.BusinessException;
 import com.dskj.znzn.transData.web.common.entity.SysConf;
 import com.dskj.znzn.transData.web.common.service.ISysConfService;
@@ -19,6 +18,7 @@ import com.dskj.znzn.transData.web.dataTransfer.outData.*;
 import com.dskj.znzn.transData.web.dataTransfer.service.IDataTransferService;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
 import lombok.RequiredArgsConstructor;
+import lombok.extern.slf4j.Slf4j;
 import org.apache.commons.lang3.StringUtils;
 import org.springframework.beans.BeanUtils;
 import org.springframework.beans.factory.annotation.Autowired;
@@ -38,6 +38,7 @@ import java.util.*;
  */
 @Service
 @RequiredArgsConstructor(onConstructor = @__({@Autowired}))
+@Slf4j
 public class DataTransferServiceImpl extends ServiceImpl<DataTransferMapper, DataTransfer> implements IDataTransferService {
 
     private final DataTransferMapper dataTransferMapper;
@@ -250,6 +251,91 @@ public class DataTransferServiceImpl extends ServiceImpl<DataTransferMapper, Dat
         return results;
     }
 
+    @Override
+    public List<DataTransfer> recentlyImportedSuccessful5Data() {
+        LambdaQueryWrapper<DataTransfer> wrapper = Wrappers.lambdaQuery();
+        wrapper.eq(DataTransfer::getTransferStatus, 1).eq(DataTransfer::getStatus, 1);
+        wrapper.orderByDesc(DataTransfer::getUpdateTime);
+        wrapper.last("limit 5");
+        List<DataTransfer> transferList = list(wrapper);
+        if (!transferList.isEmpty()) {
+            for (DataTransfer transfer : transferList) {
+                transfer.setTransferTypeName(sysConfService.getValueByType("trans_type", transfer.getTransferType()));
+            }
+        }
+        return transferList;
+    }
+
+    @Override
+    public List<PltIndexMoreOutData> pltIndexMore() {
+        List<ClassificationImportDataDetailsQuery> datas = dataTransferMapper.classificationImportDataDetails();
+        List<SysConf> confList = sysConfService.getByType("trans_type");
+        Map<String, List<ClassificationImportDataDetailsQuery>> windFarmMap = new HashMap<>();
+
+        for (ClassificationImportDataDetailsQuery query : datas) {
+            if (windFarmMap.containsKey(query.getWindFarmCode())) {
+                windFarmMap.get(query.getWindFarmCode()).add(query);
+            } else {
+                List<ClassificationImportDataDetailsQuery> list = new ArrayList<>();
+                list.add(query);
+                windFarmMap.put(query.getWindFarmCode(), list);
+            }
+        }
+        List<PltIndexMoreOutData> pltIndexMoreOutDataList = new ArrayList<>();
+        windFarmMap.forEach((key, value) -> {
+            Map<String, ClassificationImportDataDetailsQuery> typeMap = new HashMap<>();
+            for (ClassificationImportDataDetailsQuery query : value) {
+                typeMap.put(query.getTransferType(), query);
+            }
+
+            PltIndexMoreOutData data = new PltIndexMoreOutData();
+            data.setWindFarmCode(key);
+            data.setWindFarmName(value.get(0).getWindFarmName());
+
+            for (SysConf sysConf : confList) {
+                ClassificationImportDataDetailsQuery query = typeMap.get(sysConf.getParamKey());
+                String type = sysConf.getParamKey();
+                switch (type) {
+                    case "minute":
+                        data.setMinuteTimeAreaList(converAreaStrToList(typeMap.containsKey(type), query));
+                        break;
+                    case "second":
+                        data.setSecondTimeAreaList(converAreaStrToList(typeMap.containsKey(type), query));
+                        break;
+                    case "warn":
+                        data.setWarnTimeAreaList(converAreaStrToList(typeMap.containsKey(type), query));
+                        break;
+                    case "fault":
+                        data.setFaultTimeAreaList(converAreaStrToList(typeMap.containsKey(type), query));
+                        break;
+                    case "wave":
+                        data.setVibrationTimeAreaList(converAreaStrToList(typeMap.containsKey(type), query));
+                        break;
+                    default:
+                        log.warn("当前类型" + type + "未显示");
+
+                }
+            }
+            pltIndexMoreOutDataList.add(data);
+        });
+
+        return pltIndexMoreOutDataList;
+    }
+
+    private List<String> converAreaStrToList(boolean contains, ClassificationImportDataDetailsQuery query) {
+        if(null == query){
+            return Collections.emptyList();
+        }
+        String timeAreaStr = query.getTimeArea();
+        if (null == timeAreaStr || StringUtils.isBlank(timeAreaStr) || !contains) {
+            return Collections.emptyList();
+        } else {
+            List<String> areaList = Arrays.asList(timeAreaStr.split(","));
+            Collections.sort(areaList);
+            return areaList;
+        }
+    }
+
 
     public static void main(String[] args) throws ParseException {
         List<GetTimeRangeOutData> results = new ArrayList<>();

+ 14 - 14
src/main/resources/mapper/DataTransferMapper.xml

@@ -5,23 +5,23 @@
     <select id="classificationImportDataDetails"
             resultType="com.dskj.znzn.transData.web.dataTransfer.outData.ClassificationImportDataDetailsQuery">
 
-        SELECT t.wind_farm_code      as windFarmCode,
-               t.transfer_type       as transferType,
-               max(a.param_value)    as transferName,
-               max(t.wind_farm_name) as windFarmName,
-               count(t.id) AS count,
-	max( t.transfer_finish_time ) AS latestStorageTime
-        FROM
-            data_transfer t LEFT JOIN sys_conf a
-        on t.transfer_type = a.param_key
-        WHERE
-            a.type = 'trans_type'
+        SELECT t.wind_farm_code                                                        as windFarmCode,
+               t.transfer_type                                                         as transferType,
+               max(a.param_value)                                                      as transferName,
+               max(t.wind_farm_name)                                                   as windFarmName,
+               count(t.id)                                                             AS count,
+               group_concat(distinct concat(DATE_FORMAT(t.data_min_time, '%Y-%m-%d'), ' ~ ',
+                                            DATE_FORMAT(t.data_max_time, '%Y-%m-%d'))) as timeArea,
+               max(t.transfer_finish_time)                                             AS latestStorageTime
+        FROM data_transfer t
+                 LEFT JOIN sys_conf a
+                           on t.transfer_type = a.param_key
+        WHERE a.type = 'trans_type'
 
           and t.`status` = 1
           AND t.transfer_status = 1
-        GROUP BY
-            t.wind_farm_code,
-            t.transfer_type
+        GROUP BY t.wind_farm_code,
+                 t.transfer_type
 
     </select>
 </mapper>