浏览代码

1.分析结果文件名称不一致(剔除手动、自动文件夹名)
2.修改手动开启、关闭自动分析
3.新增分析结果分析类型、风机信息查询接口
4.手动分析时间范围自动锁定

chenhongyan1989 1 年之前
父节点
当前提交
58cde354b9
共有 28 个文件被更改,包括 438 次插入45 次删除
  1. 10 0
      energy-manage-common/src/main/java/com/energy/manage/common/po/analysis/AnalysisResultPo.java
  2. 9 4
      energy-manage-common/src/main/java/com/energy/manage/common/po/datatransfer/DataTransferPo.java
  3. 5 0
      energy-manage-service/src/main/java/com/energy/manage/service/constant/analysis/AnalysisConstants.java
  4. 25 0
      energy-manage-service/src/main/java/com/energy/manage/service/controller/analysis/AnalysisController.java
  5. 7 0
      energy-manage-service/src/main/java/com/energy/manage/service/controller/datatransfer/DataTransferController.java
  6. 5 0
      energy-manage-service/src/main/java/com/energy/manage/service/domain/dto/analysis/AnalysisResultDto.java
  7. 5 0
      energy-manage-service/src/main/java/com/energy/manage/service/domain/vo/analysis/AnalysisGeneralFileVo.java
  8. 2 0
      energy-manage-service/src/main/java/com/energy/manage/service/domain/vo/analysis/AnalysisResultShowVo.java
  9. 6 0
      energy-manage-service/src/main/java/com/energy/manage/service/domain/vo/analysis/AnalysisResultVo.java
  10. 40 0
      energy-manage-service/src/main/java/com/energy/manage/service/domain/vo/analysis/AnalysisTypeShortVo.java
  11. 29 0
      energy-manage-service/src/main/java/com/energy/manage/service/domain/vo/datatransfer/DataTransferDataTimeVo.java
  12. 44 0
      energy-manage-service/src/main/java/com/energy/manage/service/domain/vo/windenginegroup/WindEngineGroupShortVo.java
  13. 8 0
      energy-manage-service/src/main/java/com/energy/manage/service/mappers/analysis/AnalysisDiagramRelationMapper.java
  14. 7 0
      energy-manage-service/src/main/java/com/energy/manage/service/mappers/analysis/AnalysisGeneralFileMapper.java
  15. 14 0
      energy-manage-service/src/main/java/com/energy/manage/service/mappers/analysis/AnalysisResultMapper.java
  16. 4 5
      energy-manage-service/src/main/java/com/energy/manage/service/mappers/datatransfer/DataTransferMapper.java
  17. 7 0
      energy-manage-service/src/main/java/com/energy/manage/service/property/analysis/AlgorithmProperties.java
  18. 30 0
      energy-manage-service/src/main/java/com/energy/manage/service/service/analysis/AnalysisService.java
  19. 82 17
      energy-manage-service/src/main/java/com/energy/manage/service/service/analysis/impl/AnalysisServiceImpl.java
  20. 9 0
      energy-manage-service/src/main/java/com/energy/manage/service/service/datatransfer/DataTransferService.java
  21. 12 2
      energy-manage-service/src/main/java/com/energy/manage/service/service/datatransfer/impl/DataTransferServiceImpl.java
  22. 1 0
      energy-manage-service/src/main/java/com/energy/manage/service/service/windfieldbatch/impl/WindFieldBatchServiceImpl.java
  23. 5 1
      energy-manage-service/src/main/java/com/energy/manage/service/task/AutoAnalysisTask.java
  24. 5 2
      energy-manage-service/src/main/java/com/energy/manage/service/test/TestController.java
  25. 20 0
      energy-manage-service/src/main/resources/mybatis/analysis/AnalysisDiagramRelationMapper.xml
  26. 11 0
      energy-manage-service/src/main/resources/mybatis/analysis/AnalysisGeneralFileMapper.xml
  27. 17 2
      energy-manage-service/src/main/resources/mybatis/analysis/AnalysisResultMapper.xml
  28. 19 12
      energy-manage-service/src/main/resources/mybatis/datatransfer/DataTransferMapper.xml

+ 10 - 0
energy-manage-common/src/main/java/com/energy/manage/common/po/analysis/AnalysisResultPo.java

@@ -74,4 +74,14 @@ public class AnalysisResultPo {
      */
     private BigDecimal analysisProgress;
 
+    /**
+     * 是否自动调用分析算法。0:否 1:是
+     */
+    private Integer callStatus;
+
+    /**
+     * 开启自动分析 0:否 1:是
+     */
+    private Integer onOffCall;
+
 }

+ 9 - 4
energy-manage-common/src/main/java/com/energy/manage/common/po/datatransfer/DataTransferPo.java

@@ -93,12 +93,17 @@ public class DataTransferPo {
     private Date updateTime ;
 
     /**
-     * 是否已触发自动分析 0 :无  1:是
+     * 转换进度
      */
-    private Integer callState;
+    private BigDecimal transferProgress;
 
     /**
-     * 转换进度
+     * 数据最小时间
      */
-    private BigDecimal transferProgress;
+    private Date dataMinTime;
+
+    /**
+     * 数据最大时间
+     */
+    private Date dataMaxTime;
 }

+ 5 - 0
energy-manage-service/src/main/java/com/energy/manage/service/constant/analysis/AnalysisConstants.java

@@ -45,4 +45,9 @@ public interface AnalysisConstants {
      */
     List<Double> ACTIVITY_POWER = Arrays.asList(250.0, 0.0,2000.0);
 
+    /**
+     * 路径分隔符
+     */
+    String PATH_SEPARATOR = "/";
+
 }

+ 25 - 0
energy-manage-service/src/main/java/com/energy/manage/service/controller/analysis/AnalysisController.java

@@ -75,4 +75,29 @@ public class AnalysisController extends BaseServiceController {
         return success(analysisService.analysisDetail(batchCode,analysisTypeCode,fieldEngineCode,isIntranet));
     }
 
+    @UserLoginToken
+    @ApiOperation(value = "开启/关闭自动分析")
+    @PostMapping("/onOffAutoAnalysis")
+    public ResultResp onOffAutoAnalysis(@RequestParam(value = "batchCode") String batchCode,
+                                        @RequestParam(value = "onOffCall") Integer onOffCall)
+    {
+        return success(analysisService.onOffAutoAnalysis(batchCode,onOffCall));
+    }
+
+    @UserLoginToken
+    @ApiOperation(value = "根据批次查询已分析的分析类型")
+    @GetMapping("/queryAnalysisedType")
+    public ResultResp queryAnalysisedType(@RequestParam(value = "batchCode") String batchCode)
+    {
+        return success(analysisService.queryAnalysisedType(batchCode));
+    }
+
+    @UserLoginToken
+    @ApiOperation(value = "根据批次与分析类型查询已有分析结果的风机")
+    @GetMapping("/queryAnalysisedEngine")
+    public ResultResp queryAnalysisedEngine(@RequestParam(value = "batchCode") String batchCode,
+                                            @RequestParam(value = "analysisTypeCode") String analysisTypeCode)
+    {
+        return success(analysisService.queryAnalysisedEngine(batchCode,analysisTypeCode));
+    }
 }

+ 7 - 0
energy-manage-service/src/main/java/com/energy/manage/service/controller/datatransfer/DataTransferController.java

@@ -68,4 +68,11 @@ public class DataTransferController extends BaseServiceController {
     public ResultResp editTimeGranularity(@RequestBody EditDataTransferTypeDto editDto){
         return dataTransferService.editTimeGranularity(editDto.getBatchCode(), editDto.getDataTransferType(), editDto.getTimeGranularity(),getUserId());
     }
+
+    @UserLoginToken
+    @ApiOperation("转换数据时间范围查询")
+    @GetMapping("/queryDataTime")
+    public ResultResp queryDataTime(@RequestParam("batchCode") String batchCode, @RequestParam("dataTransferType") String dataTransferType){
+        return success(dataTransferService.queryDataTime(batchCode, dataTransferType));
+    }
 }

+ 5 - 0
energy-manage-service/src/main/java/com/energy/manage/service/domain/dto/analysis/AnalysisResultDto.java

@@ -58,4 +58,9 @@ public class AnalysisResultDto extends BaseDto {
      */
     private Integer roleId;
 
+    /**
+     * 开启自动分析 0:否 1:是
+     */
+    private Integer onOffCall;
+
 }

+ 5 - 0
energy-manage-service/src/main/java/com/energy/manage/service/domain/vo/analysis/AnalysisGeneralFileVo.java

@@ -27,6 +27,11 @@ public class AnalysisGeneralFileVo {
     private String analysisTypeCode ;
 
     /**
+     * 分析类型名称
+     */
+    private String analysisTypeName ;
+
+    /**
      * 总文件地址minIO
      */
     private String fileAddr ;

+ 2 - 0
energy-manage-service/src/main/java/com/energy/manage/service/domain/vo/analysis/AnalysisResultShowVo.java

@@ -1,9 +1,11 @@
 package com.energy.manage.service.domain.vo.analysis;
 
 import com.energy.manage.service.domain.vo.windenginegroup.WindEngineGroupVo;
+import com.fasterxml.jackson.annotation.JsonFormat;
 import lombok.Data;
 import lombok.experimental.Accessors;
 
+import java.util.Date;
 import java.util.List;
 import java.util.Map;
 

+ 6 - 0
energy-manage-service/src/main/java/com/energy/manage/service/domain/vo/analysis/AnalysisResultVo.java

@@ -83,4 +83,10 @@ public class AnalysisResultVo {
      */
     private BigDecimal analysisProgress;
 
+
+    /**
+     * 开启自动分析 0:否 1:是
+     */
+    private Integer onOffCall;
+
 }

+ 40 - 0
energy-manage-service/src/main/java/com/energy/manage/service/domain/vo/analysis/AnalysisTypeShortVo.java

@@ -0,0 +1,40 @@
+package com.energy.manage.service.domain.vo.analysis;
+
+import lombok.Data;
+import lombok.experimental.Accessors;
+
+import java.util.Objects;
+
+/**
+ * @author chy
+ * @date 2024/7/16 13:32
+ * @desc
+ */
+@Data
+@Accessors(chain = true)
+public class AnalysisTypeShortVo {
+
+    /**
+     * 分析类型编码
+     */
+    private String analysisTypeCode;
+
+    /**
+     * 分析类型名称
+     */
+    private String analysisTypeName;
+
+    @Override
+    public int hashCode() {
+        return Objects.hash(analysisTypeCode,analysisTypeCode);
+    }
+
+    @Override
+    public boolean equals(Object obj) {
+        if (this == obj) return true;
+        if (obj == null || getClass() != obj.getClass()) return false;
+        AnalysisTypeShortVo vo = (AnalysisTypeShortVo) obj;
+        return Objects.equals(analysisTypeCode, vo.analysisTypeCode) &&
+                Objects.equals(analysisTypeName, vo.analysisTypeName);
+    }
+}

+ 29 - 0
energy-manage-service/src/main/java/com/energy/manage/service/domain/vo/datatransfer/DataTransferDataTimeVo.java

@@ -0,0 +1,29 @@
+package com.energy.manage.service.domain.vo.datatransfer;
+
+import com.fasterxml.jackson.annotation.JsonFormat;
+import lombok.Data;
+import lombok.experimental.Accessors;
+
+import java.util.Date;
+
+/**
+ * @author chy
+ * @date 2024/7/16 14:44
+ * @desc
+ */
+@Data
+@Accessors(chain = true)
+public class DataTransferDataTimeVo {
+
+    /**
+     * 数据最小时间
+     */
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
+    private Date dataMinTime;
+
+    /**
+     * 数据最大时间
+     */
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
+    private Date dataMaxTime;
+}

+ 44 - 0
energy-manage-service/src/main/java/com/energy/manage/service/domain/vo/windenginegroup/WindEngineGroupShortVo.java

@@ -0,0 +1,44 @@
+package com.energy.manage.service.domain.vo.windenginegroup;
+
+import com.energy.manage.service.domain.vo.analysis.AnalysisTypeShortVo;
+import lombok.Data;
+import lombok.experimental.Accessors;
+
+import java.util.Objects;
+
+/**
+ *
+ * @ClassName WindEngineGroupShortVo
+ * @author chy
+ * @date 2024/7/16 11:38
+ * @desc
+ */
+@Data
+@Accessors(chain = true)
+public class WindEngineGroupShortVo {
+
+    /**
+     * 风机编号
+     */
+    private String engineCode;
+
+    /**
+     * 风机名称
+     */
+    private String engineName;
+
+    @Override
+    public int hashCode() {
+        return Objects.hash(engineCode,engineName);
+    }
+
+    @Override
+    public boolean equals(Object obj) {
+        if (this == obj) return true;
+        if (obj == null || getClass() != obj.getClass()) return false;
+        WindEngineGroupShortVo vo = (WindEngineGroupShortVo) obj;
+        return Objects.equals(engineCode, vo.engineCode) &&
+                Objects.equals(engineName, vo.engineName);
+    }
+
+}

+ 8 - 0
energy-manage-service/src/main/java/com/energy/manage/service/mappers/analysis/AnalysisDiagramRelationMapper.java

@@ -3,10 +3,13 @@ package com.energy.manage.service.mappers.analysis;
 import com.energy.manage.common.mapper.MyMapper;
 import com.energy.manage.common.po.analysis.AnalysisDiagramRelationPo;
 import com.energy.manage.service.domain.vo.analysis.AnalysisDiagramRelationVo;
+import com.energy.manage.service.domain.vo.windenginegroup.WindEngineGroupShortVo;
+import com.energy.manage.service.domain.vo.windenginegroup.WindEngineGroupVo;
 import org.apache.ibatis.annotations.Param;
 import org.springframework.stereotype.Repository;
 
 import java.util.List;
+import java.util.Set;
 
 /**
  * @author chy
@@ -22,4 +25,9 @@ public interface AnalysisDiagramRelationMapper extends MyMapper<AnalysisDiagramR
                                                       @Param("fieldEngineCode") String fieldEngineCode);
 
 
+    List<AnalysisDiagramRelationVo> selectByBatchCode(@Param("batchCode") String batchCode);
+
+
+    Set<WindEngineGroupShortVo> selectByBatchCodeAndAnalysisTypeCode(@Param("batchCode") String batchCode,
+                                                                     @Param("analysisTypeCode") String analysisTypeCode);
 }

+ 7 - 0
energy-manage-service/src/main/java/com/energy/manage/service/mappers/analysis/AnalysisGeneralFileMapper.java

@@ -23,4 +23,11 @@ public interface AnalysisGeneralFileMapper extends MyMapper<AnalysisGeneralFileV
      */
     List<AnalysisGeneralFileVo> selectByCondition(@Param("batchCode") String batchCode, @Param("analysisTypeCode") String analysisTypeCode);
 
+    /**
+     * 查询分析类型,名称
+     * @param batchCode
+     * @return
+     */
+    List<AnalysisGeneralFileVo> selectByBatchCode(@Param("batchCode") String batchCode);
+
 }

+ 14 - 0
energy-manage-service/src/main/java/com/energy/manage/service/mappers/analysis/AnalysisResultMapper.java

@@ -38,4 +38,18 @@ public interface AnalysisResultMapper extends MyMapper<AnalysisResultPo> {
      */
     List<AnalysisResultVo> selectLastBatchResultByFieldCode(@Param("fieldCodes") List<String> fieldCodes);
 
+    /**
+     * 更新自动分析状态
+     * @param batchCode
+     * @return
+     */
+    int updateCallStatus(@Param("batchCode")String batchCode);
+
+    /**
+     * 是否开启自动分析
+     * @param batchCode
+     * @return
+     */
+    int updateOnOffCall(@Param("batchCode")String batchCode, @Param("onOffCall") Integer onOffCall);
+
 }

+ 4 - 5
energy-manage-service/src/main/java/com/energy/manage/service/mappers/datatransfer/DataTransferMapper.java

@@ -3,6 +3,7 @@ package com.energy.manage.service.mappers.datatransfer;
 import com.energy.manage.common.mapper.MyMapper;
 import com.energy.manage.common.po.datatransfer.DataTransferPo;
 import com.energy.manage.service.domain.dto.datatransfer.DataTransferDto;
+import com.energy.manage.service.domain.vo.datatransfer.DataTransferDataTimeVo;
 import com.energy.manage.service.domain.vo.datatransfer.DataTransferVo;
 import org.apache.ibatis.annotations.Param;
 import org.springframework.stereotype.Repository;
@@ -26,7 +27,7 @@ public interface DataTransferMapper extends MyMapper<DataTransferPo>{
     List<String> selectAllWindFieldBtach(Integer roleId);
 
     /**
-     * 查出秒级分钟级已转换完成的批次与风场编号的前五个批次
+     * 查出秒级分钟级已转换完成的批次与风场编号
      * @return
      */
     DataTransferVo selectBatchCodeForAutoAnaly();
@@ -69,12 +70,10 @@ public interface DataTransferMapper extends MyMapper<DataTransferPo>{
      */
     int selectCountByTransferState(Integer transferState);
 
-
     /**
-     * 更新自动分析状态
+     * 查询数据转换中数据的起始时间和结束时间
      * @param batchCode
      * @return
      */
-    int updateCallState(@Param("batchCode")String batchCode);
-
+    DataTransferDataTimeVo selectDataTimeByBatchCodeAndType(@Param("batchCode") String batchCode,@Param("transferType") String transferType);
 }

+ 7 - 0
energy-manage-service/src/main/java/com/energy/manage/service/property/analysis/AlgorithmProperties.java

@@ -79,4 +79,11 @@ public class AlgorithmProperties {
     @Value("${analysis.file.external.addr}")
     public String analysisFileExternalAddr;
 
+    /**
+     * 替换分析结果文件路径中的手动、自动片段
+     *character
+     */
+    @Value("${analysis.file.replace.str}")
+    public List<String> analysisFileReplaceStr;
+
 }

+ 30 - 0
energy-manage-service/src/main/java/com/energy/manage/service/service/analysis/AnalysisService.java

@@ -6,8 +6,14 @@ import com.energy.manage.service.domain.dto.analysis.AnalysisResultDto;
 import com.energy.manage.service.domain.vo.analysis.AnalysisDetailVo;
 import com.energy.manage.service.domain.vo.analysis.AnalysisResultShowVo;
 import com.energy.manage.service.domain.vo.analysis.AnalysisResultVo;
+import com.energy.manage.service.domain.vo.analysis.AnalysisTypeShortVo;
+import com.energy.manage.service.domain.vo.windenginegroup.WindEngineGroupShortVo;
+import com.energy.manage.service.domain.vo.windenginegroup.WindEngineGroupVo;
+import org.springframework.web.bind.annotation.RequestParam;
 
 import java.util.List;
+import java.util.Map;
+import java.util.Set;
 
 /**
  * 分析服务
@@ -41,6 +47,21 @@ public interface AnalysisService {
     AnalysisResultShowVo analysisEditQuery(String batchCode);
 
     /**
+     * 查询已经分析的分析类型和风机信息
+     * @param batchCode
+     * @return
+     */
+    Set<AnalysisTypeShortVo> queryAnalysisedType(String batchCode);
+
+    /**
+     * 查询已经分析的风机信息
+     * @param batchCode
+     * @param analysisTypeCode
+     * @return
+     */
+    Set<WindEngineGroupShortVo> queryAnalysisedEngine(String batchCode, String analysisTypeCode);
+
+    /**
      * 分析详情
      * @param batchCode
      * @param analysisTypeCode
@@ -57,5 +78,14 @@ public interface AnalysisService {
      */
     boolean checkAnalysising();
 
+    /**
+     * 开启/关闭自动分析
+     * @param batchCode
+     * @param onOffCall
+     * @return
+     */
+    int onOffAutoAnalysis(String batchCode, Integer onOffCall);
+
+
 
 }

+ 82 - 17
energy-manage-service/src/main/java/com/energy/manage/service/service/analysis/impl/AnalysisServiceImpl.java

@@ -8,11 +8,14 @@ import com.energy.manage.service.constant.analysis.AnalysisConstants;
 import com.energy.manage.service.domain.dto.analysis.AnalysisDto;
 import com.energy.manage.service.domain.dto.analysis.AnalysisResultDto;
 import com.energy.manage.service.domain.vo.analysis.*;
+import com.energy.manage.service.domain.vo.datatransfer.DataTransferDataTimeVo;
+import com.energy.manage.service.domain.vo.windenginegroup.WindEngineGroupShortVo;
 import com.energy.manage.service.domain.vo.windenginegroup.WindEngineGroupVo;
 import com.energy.manage.service.domain.vo.windfieldbatch.WindFieldBatchVo;
 import com.energy.manage.service.filter.LoginUser;
 import com.energy.manage.service.filter.LoginUserContextHolder;
 import com.energy.manage.service.mappers.analysis.*;
+import com.energy.manage.service.mappers.datatransfer.DataTransferMapper;
 import com.energy.manage.service.mappers.windenginegroup.WindEngineGroupMapper;
 import com.energy.manage.service.mappers.windfieldbatch.WindFieldBatchMapper;
 import com.energy.manage.service.property.analysis.AlgorithmProperties;
@@ -33,12 +36,13 @@ import org.springframework.stereotype.Service;
 import javax.annotation.Resource;
 import java.lang.reflect.Field;
 import java.math.BigDecimal;
-import java.net.URI;
 import java.net.URISyntaxException;
 import java.util.*;
+import java.util.concurrent.ConcurrentHashMap;
 import java.util.concurrent.atomic.AtomicInteger;
-import java.util.regex.Matcher;
-import java.util.regex.Pattern;
+import java.util.concurrent.atomic.AtomicReference;
+import java.util.function.Function;
+import java.util.function.Predicate;
 import java.util.stream.Collectors;
 
 /**
@@ -76,6 +80,9 @@ public class AnalysisServiceImpl implements AnalysisService {
     @Autowired
     private WindEngineGroupMapper windEngineGroupMapper;
 
+    @Autowired
+    private DataTransferMapper dataTransferMapper;
+
     @Resource
     private AlgorithmProperties algorithmProperties;
 
@@ -158,6 +165,35 @@ public class AnalysisServiceImpl implements AnalysisService {
                 .setWindEngineGroupList(getWindEngineGroupByBatchCode(batchCode));
     }
 
+    /**
+     * 查询已经分析的分析类型和风机信息
+     * @param batchCode
+     * @return
+     */
+    @Override
+    public Set<AnalysisTypeShortVo> queryAnalysisedType(String batchCode){
+        Set<AnalysisTypeShortVo> analysisTypeSet = new HashSet<>();
+        //总图分析类型
+        List<AnalysisGeneralFileVo> generalFileVos = generalFileMapper.selectByBatchCode(batchCode);
+        generalFileVos.stream().forEach(item -> analysisTypeSet.add(new AnalysisTypeShortVo().setAnalysisTypeCode(item.getAnalysisTypeCode())
+                                                                                             .setAnalysisTypeName(item.getAnalysisTypeName())));
+        //分图分析类型
+        List<AnalysisDiagramRelationVo> relationVos = diagramRelationMapper.selectByBatchCode(batchCode);
+        relationVos.stream().forEach(item -> analysisTypeSet.add(new AnalysisTypeShortVo().setAnalysisTypeCode(item.getAnalysisTypeCode())
+                                                                                          .setAnalysisTypeName(item.getAnalysisTypeName())));
+        return analysisTypeSet;
+    }
+
+    /**
+     * 查询已经分析的风机信息
+     * @param batchCode
+     * @param analysisTypeCode
+     * @return
+     */
+    @Override
+    public Set<WindEngineGroupShortVo> queryAnalysisedEngine(String batchCode, String analysisTypeCode){
+        return diagramRelationMapper.selectByBatchCodeAndAnalysisTypeCode(batchCode,analysisTypeCode);
+    }
 
     /**
      * 分析详情
@@ -205,6 +241,16 @@ public class AnalysisServiceImpl implements AnalysisService {
         return analysisResultMapper.selectAlasisingCount() > AnalysisConstants.SERVER_MERCHINE_COUNT;
     }
 
+    /**
+     * 开启/关闭自动分析
+     * @param batchCode
+     * @return
+     */
+    @Override
+    public int onOffAutoAnalysis(String batchCode, Integer onOffCall) {
+        return analysisResultMapper.updateOnOffCall(batchCode,onOffCall);
+    }
+
 
     /**
      * 获取分析类型
@@ -249,9 +295,7 @@ public class AnalysisServiceImpl implements AnalysisService {
         //根据创建时间排序
         generalFileVos.sort(Comparator.comparing(AnalysisGeneralFileVo::getCreateTime,Comparator.reverseOrder()));
         //删除地址相同的文件
-        return generalFileVos.stream().collect(Collectors.collectingAndThen(
-                Collectors.toCollection(() -> new TreeSet<>(Comparator.comparing(AnalysisGeneralFileVo::getFileAddr))),
-                ArrayList :: new));
+        return generalFileVos.stream().filter(distinctByKey(item -> replacePath(item.getFileAddr()))).collect(Collectors.toList());
     }
 
 
@@ -277,10 +321,30 @@ public class AnalysisServiceImpl implements AnalysisService {
                     .thenComparing(AnalysisDiagramRelationVo::getCreateTime, Comparator.reverseOrder()));
         }
         //去除地址相同的对象
-        return diagramRelationVos.stream().collect(Collectors.collectingAndThen(
-                Collectors.toCollection(() -> new TreeSet<>(Comparator.comparing(AnalysisDiagramRelationVo::getFileAddr))),
-                                                     ArrayList :: new)
-        );
+        return diagramRelationVos.stream().filter(distinctByKey(item -> replacePath(item.getFileAddr()))).collect(Collectors.toList());
+    }
+
+    /**
+     * 去重
+     * @param keyExtractor
+     * @param <T>
+     * @return
+     */
+    public static <T> Predicate<T> distinctByKey(Function<? super T, ?> keyExtractor) {
+        Set<Object> set = ConcurrentHashMap.newKeySet();
+        return t -> set.add(keyExtractor.apply(t));
+    }
+
+    /**
+     * 替换路径中的手动、自动文件夹名称
+     * @param fileAddr
+     * @return
+     */
+    private String replacePath(String fileAddr) {
+        for(String replaceStr : algorithmProperties.getAnalysisFileReplaceStr()){
+            fileAddr = fileAddr.replace(replaceStr, AnalysisConstants.PATH_SEPARATOR);
+        }
+        return fileAddr;
     }
 
     /**
@@ -464,6 +528,7 @@ public class AnalysisServiceImpl implements AnalysisService {
         }
     }
 
+
     /**
      * 操作记录
      * @param fieldCode
@@ -573,6 +638,7 @@ public class AnalysisServiceImpl implements AnalysisService {
         return minIoIpPort + fileAddr;
     }
 
+
     /**
      * 测试排序去重
      * @param args
@@ -593,14 +659,13 @@ public class AnalysisServiceImpl implements AnalysisService {
 //        a2.setBatchCode("453");
 //        generalFileVos.sort(Comparator.comparing(AnalysisGeneralFileVo::getCreateTime,Comparator.reverseOrder()));
 //        //删除地址相同的文件
-//        List<AnalysisGeneralFileVo> returnList =  generalFileVos.stream().collect(Collectors.collectingAndThen(
-//                Collectors.toCollection(() -> new TreeSet<>(Comparator.comparing(AnalysisGeneralFileVo::getFileAddr))),
-//                ArrayList :: new));
+//        List<AnalysisGeneralFileVo> returnList =  generalFileVos.stream().filter(distinctByKey(AnalysisGeneralFileVo::getFileAddr)).collect(Collectors.toList());
 //        returnList.forEach(System.out::println);
-        List<String> list = new ArrayList<>();
-        list.add("1");
-        list.add(0,"2");
-        System.out.println(list);
+//        List<String> list = new ArrayList<>();
+//        list.add("1");
+//        list.add(0,"2");
+//        System.out.println(list);
+
     }
 
 }

+ 9 - 0
energy-manage-service/src/main/java/com/energy/manage/service/service/datatransfer/DataTransferService.java

@@ -4,6 +4,7 @@ import com.energy.manage.common.po.datatransfer.DataTransferPo;
 import com.energy.manage.common.reponse.ResultResp;
 import com.energy.manage.service.domain.dto.datatransfer.DataTransferDto;
 import com.energy.manage.service.domain.dto.datatransfer.EditDataTransferTypeDto;
+import com.energy.manage.service.domain.vo.datatransfer.DataTransferDataTimeVo;
 import com.energy.manage.service.domain.vo.datatransfer.DataTransferQueryAndAddVo;
 import com.energy.manage.service.domain.vo.datatransfer.DataTransferVo;
 
@@ -57,5 +58,13 @@ public interface DataTransferService {
      */
     ResultResp editTimeGranularity(String batchCode, String dataTransferType, Integer timeGranularity,Integer userId);
 
+    /**
+     * 转换数据时间范围查询
+     * @param batchCode
+     * @param dataTransferType
+     * @return
+     */
+    DataTransferDataTimeVo queryDataTime(String batchCode, String dataTransferType);
+
 
 }

+ 12 - 2
energy-manage-service/src/main/java/com/energy/manage/service/service/datatransfer/impl/DataTransferServiceImpl.java

@@ -8,6 +8,7 @@ import com.energy.manage.service.domain.dto.datatransfer.DataTransferDto;
 import com.energy.manage.service.domain.dto.datatransfer.DataTransferTypePathDto;
 import com.energy.manage.service.domain.dto.datatransfer.EditDataTransferTypeDto;
 import com.energy.manage.service.domain.dto.windfieldbatch.WindFileBatchPageDto;
+import com.energy.manage.service.domain.vo.datatransfer.DataTransferDataTimeVo;
 import com.energy.manage.service.domain.vo.datatransfer.DataTransferQueryAndAddVo;
 import com.energy.manage.service.domain.vo.datatransfer.DataTransferTypeVo;
 import com.energy.manage.service.domain.vo.datatransfer.DataTransferVo;
@@ -169,6 +170,17 @@ public class DataTransferServiceImpl implements DataTransferService {
         return ResultResp.SUCCESS();
     }
 
+    /**
+     * 转换数据时间范围查询
+     * @param batchCode
+     * @param dataTransferType
+     * @return
+     */
+    @Override
+    public DataTransferDataTimeVo queryDataTime(String batchCode, String dataTransferType){
+        return dataTransferMapper.selectDataTimeByBatchCodeAndType(batchCode,dataTransferType);
+    }
+
 
     /**
      * 根据角色获取批次编号
@@ -178,8 +190,6 @@ public class DataTransferServiceImpl implements DataTransferService {
     private List<WindFieldBatchVo> getDataTransferBatchList(Integer roleId) {
         //获取角色可以看到的风场批次信息
         List<WindFieldBatchVo>  batchVoList = windFieldBatchMapper.selectWindFieldBatch(new WindFileBatchPageDto().setRoleId(roleId));
-        //获取批次号
-//        List<String> batchCodeList = batchVoList.parallelStream().map(WindFieldBatchVo::getBatchCode).collect(Collectors.toList());
         //获取已经进行过数据转换的批次号
         List<String> dataTransferBatchList = dataTransferMapper.selectAllWindFieldBtach(roleId);
         return batchVoList.parallelStream().filter(item -> !dataTransferBatchList.contains(item.getBatchCode())).collect(Collectors.toList());

+ 1 - 0
energy-manage-service/src/main/java/com/energy/manage/service/service/windfieldbatch/impl/WindFieldBatchServiceImpl.java

@@ -56,6 +56,7 @@ public class WindFieldBatchServiceImpl implements WindFieldBatchService {
         WindFieldVo windFieldVo = windFieldMapper.selectByCodeNumber(windEgineBatchDto.getFieldCode());
         windEgineBatchDto.setFieldName(windFieldVo.getFieldName());
         windFieldBatchMapper.addWindFieldBatch(windEgineBatchDto);
+        //添加风场批次后,添加分析结果初始数据
         AnalysisResultPo analysisResultPo = new AnalysisResultPo();
         analysisResultPo.setBatchCode(windEgineBatchDto.getBatchCode());
         return analysisResultMapper.insertSelective(analysisResultPo);

+ 5 - 1
energy-manage-service/src/main/java/com/energy/manage/service/task/AutoAnalysisTask.java

@@ -4,6 +4,7 @@ import com.energy.manage.service.constant.analysis.AnalysisConstants;
 import com.energy.manage.service.domain.dto.analysis.AnalysisDto;
 import com.energy.manage.service.domain.vo.analysis.AnalysisTypeVo;
 import com.energy.manage.service.domain.vo.datatransfer.DataTransferVo;
+import com.energy.manage.service.mappers.analysis.AnalysisResultMapper;
 import com.energy.manage.service.mappers.analysis.AnalysisTypeMapper;
 import com.energy.manage.service.mappers.datatransfer.DataTransferMapper;
 import com.energy.manage.service.service.analysis.AnalysisService;
@@ -35,6 +36,9 @@ public class AutoAnalysisTask {
     @Autowired
     private AnalysisTypeMapper typeMapper;
 
+    @Autowired
+    private AnalysisResultMapper analysisResultMapper;
+
     /**
      * 自动分析
      */
@@ -54,7 +58,7 @@ public class AutoAnalysisTask {
         //分析调用
         analysisService.analysis(assignmentAnalysisDto(dataTransferVo));
         //自动分析调用完成之后更新状态
-        dataTransferMapper.updateCallState(dataTransferVo.getBatchCode());
+        analysisResultMapper.updateCallStatus(dataTransferVo.getBatchCode());
         log.info("触发自动分析定时任务结束");
     }
 

+ 5 - 2
energy-manage-service/src/main/java/com/energy/manage/service/test/TestController.java

@@ -7,9 +7,9 @@ import com.energy.manage.service.controller.base.BaseServiceController;
 import com.energy.manage.service.domain.dto.analysis.AnalysisDto;
 import com.energy.manage.service.domain.vo.analysis.AnalysisTypeVo;
 import com.energy.manage.service.domain.vo.datatransfer.DataTransferVo;
+import com.energy.manage.service.mappers.analysis.AnalysisResultMapper;
 import com.energy.manage.service.mappers.analysis.AnalysisTypeMapper;
 import com.energy.manage.service.mappers.datatransfer.DataTransferMapper;
-import com.energy.manage.service.property.analysis.AlgorithmProperties;
 import com.energy.manage.service.service.analysis.AnalysisService;
 import com.energy.manage.service.util.IPUtils;
 import lombok.extern.slf4j.Slf4j;
@@ -45,6 +45,9 @@ public class TestController extends BaseServiceController {
     @Autowired
     private AnalysisTypeMapper typeMapper;
 
+    @Autowired
+    private AnalysisResultMapper analysisResultMapper;
+
     @Value("${download.url}")
     private String downloadUrl;
 
@@ -65,7 +68,7 @@ public class TestController extends BaseServiceController {
         //分析调用
         analysisService.analysis(assignmentAnalysisDto(dataTransferVo));
         //自动分析调用完成之后更新状态
-        dataTransferMapper.updateCallState(dataTransferVo.getBatchCode());
+        analysisResultMapper.updateCallStatus(dataTransferVo.getBatchCode());
         log.info("触发自动分析定时任务结束");
         return success();
     }

+ 20 - 0
energy-manage-service/src/main/resources/mybatis/analysis/AnalysisDiagramRelationMapper.xml

@@ -28,4 +28,24 @@
             and field_engine_code = #{fieldEngineCode,jdbcType=VARCHAR}
         </if>
     </select>
+    <select id="selectByBatchCode" parameterType="java.lang.String" resultType="com.energy.manage.service.domain.vo.analysis.AnalysisDiagramRelationVo">
+        select
+            relations.analysis_type_code,
+            types.type_name as analysis_type_name
+        from analysis_diagram_relation relations
+        left join analysis_type types
+        on types.type_code = relations.analysis_type_code
+        where relations.batch_code = #{batchCode,jdbcType=VARCHAR}
+    </select>
+
+    <select id="selectByBatchCodeAndAnalysisTypeCode" parameterType="java.lang.String" resultType="com.energy.manage.service.domain.vo.windenginegroup.WindEngineGroupShortVo">
+        select
+            relations.field_engine_code as engine_code,
+            engine.engine_name
+        from analysis_diagram_relation relations
+        left join wind_engine_group engine
+        on relations.field_engine_code = engine.engine_code
+        where relations.batch_code = #{batchCode,jdbcType=VARCHAR}
+        and relations.analysis_type_code = #{analysisTypeCode,jdbcType=VARCHAR}
+    </select>
 </mapper>

+ 11 - 0
energy-manage-service/src/main/resources/mybatis/analysis/AnalysisGeneralFileMapper.xml

@@ -23,4 +23,15 @@
             and analysis_type_code = #{analysisTypeCode,jdbcType=VARCHAR}
         </if>
     </select>
+
+    <select id="selectByBatchCode" parameterType="java.lang.String" resultType="com.energy.manage.service.domain.vo.analysis.AnalysisGeneralFileVo">
+        select
+        general.batch_code,
+        general.analysis_type_code,
+        type.type_name as analysis_type_name
+        from analysis_general_file general
+        left join analysis_type type
+        on general.analysis_type_code = type.type_code
+        where general.batch_code = #{batchCode,jdbcType=VARCHAR}
+    </select>
 </mapper>

+ 17 - 2
energy-manage-service/src/main/resources/mybatis/analysis/AnalysisResultMapper.xml

@@ -13,7 +13,9 @@
         <result column="create_time" property="createTime" jdbcType="TIMESTAMP"/>
         <result column="update_by" property="updateBy" jdbcType="INTEGER"/>
         <result column="update_time" property="updateTime" jdbcType="TIMESTAMP"/>
-        <result column="analysis_progress" property="analysisProgress" jdbcType="TIMESTAMP"/>
+        <result column="analysis_progress" property="analysisProgress" jdbcType="DECIMAL"/>
+        <result column="call_status" property="callStatus" jdbcType="INTEGER"/>
+        <result column="on_off_call" property="onOffCall" jdbcType="INTEGER"/>
     </resultMap>
 
     <select id="selectByCondition" parameterType="com.energy.manage.service.domain.dto.analysis.AnalysisResultDto" resultType="com.energy.manage.service.domain.vo.analysis.AnalysisResultVo">
@@ -26,7 +28,8 @@
             result.err_state,
             result.err_info,
             result.create_time,
-            result.analysis_progress
+            result.analysis_progress,
+            result.on_off_call
         from analysis_result result
         left join wind_field_batch batch
         on result.batch_code = batch.batch_code
@@ -60,4 +63,16 @@
             )
         )
     </select>
+
+    <update id="updateOnOffCall">
+        update analysis_result
+        set on_off_call = #{onOffCall,jdbcType=INTEGER}
+        where batch_code = #{batchCode,jdbcType=VARCHAR}
+    </update>
+
+    <update id="updateCallStatus" parameterType="java.lang.String">
+        update analysis_result
+        set call_status = 1
+        where batch_code = #{batchCode,jdbcType=VARCHAR}
+    </update>
 </mapper>

+ 19 - 12
energy-manage-service/src/main/resources/mybatis/datatransfer/DataTransferMapper.xml

@@ -17,8 +17,9 @@
         <result property="updateTime" column="update_time" jdbcType="TIMESTAMP"/>
         <result property="createBy" column="create_by" jdbcType="INTEGER"/>
         <result property="updateBy" column="update_by" jdbcType="INTEGER"/>
-        <result property="callState" column="call_state" jdbcType="INTEGER"/>
         <result property="transferProgress" column="transfer_progress" jdbcType="DECIMAL"/>
+        <result property="dataMinTime" column="data_min_time" jdbcType="DATE"/>
+        <result property="dataMaxTime" column="data_max_time" jdbcType="DATE"/>
     </resultMap>
     <sql id="BASE_SQL">
         id,
@@ -47,15 +48,18 @@
 
     <select id="selectBatchCodeForAutoAnaly"   resultType="com.energy.manage.service.domain.vo.datatransfer.DataTransferVo">
         select
-            field_code,
-            batch_code
+            trans.field_code,
+            trans.batch_code
         from
-            data_transfer
+            data_transfer trans
+        left join analysis_result result
+        on result.batch_code = trans.batch_code
         where
-                batch_code IN ( SELECT batch_code FROM data_transfer WHERE transfer_type = 'minute' AND transfer_state = 1 )
-        and transfer_type = 'second'
-        and transfer_state = 1
-        and call_state = 0
+                trans.batch_code IN ( SELECT batch_code FROM data_transfer WHERE transfer_type = 'minute' AND transfer_state = 1 )
+        and trans.transfer_type = 'second'
+        and trans.transfer_state = 1
+        and result.call_status = 0
+        and result.on_off_call = 1
         order by transfer_finish_time
         limit 1
     </select>
@@ -159,9 +163,12 @@
         and transfer_type = #{transferType,jdbcType=VARCHAR}
     </update>
 
-    <update id="updateCallState" parameterType="java.lang.String">
-        update data_transfer
-        set  call_state = 1
+    <select id="selectDataTimeByBatchCodeAndType" parameterType="java.lang.String" resultType="com.energy.manage.service.domain.vo.datatransfer.DataTransferDataTimeVo">
+        select
+            data_min_time,
+            data_max_time
+        from data_transfer
         where batch_code = #{batchCode,jdbcType=VARCHAR}
-    </update>
+        and transfer_type = #{transferType,jdbcType=VARCHAR}
+    </select>
 </mapper>