|
@@ -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);
|
|
|
+
|
|
|
}
|
|
|
|
|
|
}
|