|
@@ -670,16 +670,12 @@ public class AnalysisServiceImpl implements AnalysisService {
|
|
private List<AnalysisGeneralFileVo> getNewGeneralFiles(String batchCode,String analysisTypeCode, boolean isIntranet){
|
|
private List<AnalysisGeneralFileVo> getNewGeneralFiles(String batchCode,String analysisTypeCode, boolean isIntranet){
|
|
//从数据库获取当前批次、当前分析类型的所有的分析总文件
|
|
//从数据库获取当前批次、当前分析类型的所有的分析总文件
|
|
List<AnalysisGeneralFileVo> generalFileVos = generalFileMapper.selectByCondition(batchCode,analysisTypeCode);
|
|
List<AnalysisGeneralFileVo> generalFileVos = generalFileMapper.selectByCondition(batchCode,analysisTypeCode);
|
|
- //过滤png图片
|
|
|
|
- generalFileVos = generalFileVos.stream().filter(item -> !item.getFileAddr().endsWith(AnalysisConstants.IMAGE_SUFFIX))
|
|
|
|
- //根据创建时间排序
|
|
|
|
- .sorted(Comparator.comparing(AnalysisGeneralFileVo::getCreateTime,Comparator.reverseOrder()))
|
|
|
|
- //删除文件名相同的文件
|
|
|
|
- .filter(distinctByKey(item -> replacePath(item.getFileAddr())))
|
|
|
|
- .collect(Collectors.toList());
|
|
|
|
- //由于算法生成文件破坏唯一性规则 兼容方法
|
|
|
|
- filterDiffFileName(generalFileVos);
|
|
|
|
- //为每个文件赋值前缀
|
|
|
|
|
|
+ generalFileVos = generalFileVos.stream().filter(item-> StringUtils.isBlank(item.getEngineTypeCode()))
|
|
|
|
+ .collect(Collectors.groupingBy(
|
|
|
|
+ AnalysisGeneralFileVo::getEngineTypeCode,
|
|
|
|
+ Collectors.maxBy(Comparator.comparing(AnalysisGeneralFileVo::getCreateTime)))
|
|
|
|
+ ).values().stream().map(Optional::get).collect(Collectors.toList());
|
|
|
|
+ //添加内外网前缀
|
|
generalFileVos.forEach(item -> item.setFileAddr(getFilePath(isIntranet,item.getFileAddr())));
|
|
generalFileVos.forEach(item -> item.setFileAddr(getFilePath(isIntranet,item.getFileAddr())));
|
|
return generalFileVos;
|
|
return generalFileVos;
|
|
}
|
|
}
|
|
@@ -698,16 +694,16 @@ public class AnalysisServiceImpl implements AnalysisService {
|
|
if(CollectionUtils.isEmpty(diagramRelationVos)){
|
|
if(CollectionUtils.isEmpty(diagramRelationVos)){
|
|
return diagramRelationVos;
|
|
return diagramRelationVos;
|
|
}
|
|
}
|
|
|
|
+ //根据机组分组获取每组最新文件
|
|
|
|
+ diagramRelationVos = diagramRelationVos.stream().collect(Collectors.groupingBy(
|
|
|
|
+ AnalysisDiagramRelationVo::getFieldEngineCode,
|
|
|
|
+ Collectors.maxBy(Comparator.comparing(AnalysisDiagramRelationVo::getCreateTime)))
|
|
|
|
+ ).values().stream().map(Optional::get)
|
|
|
|
+ //对风机编号进行排序
|
|
|
|
+ .sorted(Comparator.comparing(AnalysisDiagramRelationVo::getFieldEngineCode)).collect(Collectors.toList());
|
|
|
|
+ //添加内外网前缀
|
|
diagramRelationVos.forEach(item -> item.setFileAddr(getFilePath(intranet,item.getFileAddr())));
|
|
diagramRelationVos.forEach(item -> item.setFileAddr(getFilePath(intranet,item.getFileAddr())));
|
|
- //如果风机编号不为空的话则不对风机编号进行排序
|
|
|
|
- if (CollectionUtils.isNotEmpty(fieldEngineCodes)) {
|
|
|
|
- diagramRelationVos.sort(Comparator.comparing(AnalysisDiagramRelationVo::getCreateTime, Comparator.reverseOrder()));
|
|
|
|
- } else {
|
|
|
|
- diagramRelationVos.sort(Comparator.comparing(AnalysisDiagramRelationVo::getFieldEngineCode)
|
|
|
|
- .thenComparing(AnalysisDiagramRelationVo::getCreateTime, Comparator.reverseOrder()));
|
|
|
|
- }
|
|
|
|
- //去除地址相同的对象
|
|
|
|
- return diagramRelationVos.stream().filter(distinctByKey(item -> replacePath(item.getFileAddr()))).collect(Collectors.toList());
|
|
|
|
|
|
+ return diagramRelationVos;
|
|
}
|
|
}
|
|
|
|
|
|
/**
|
|
/**
|
|
@@ -1074,6 +1070,46 @@ public class AnalysisServiceImpl implements AnalysisService {
|
|
* @throws InterruptedException
|
|
* @throws InterruptedException
|
|
*/
|
|
*/
|
|
public static void main(String[] args) throws InterruptedException, URISyntaxException {
|
|
public static void main(String[] args) throws InterruptedException, URISyntaxException {
|
|
|
|
+ List<AnalysisDiagramRelationVo> diagramRelationVos = new ArrayList<>();
|
|
|
|
+ AnalysisDiagramRelationVo a1 = new AnalysisDiagramRelationVo();
|
|
|
|
+ AnalysisDiagramRelationVo a2 = new AnalysisDiagramRelationVo();
|
|
|
|
+ AnalysisDiagramRelationVo a3 = new AnalysisDiagramRelationVo();
|
|
|
|
+ AnalysisDiagramRelationVo a4 = new AnalysisDiagramRelationVo();
|
|
|
|
+ a1.setCreateTime(new Date());
|
|
|
|
+ a1.setFieldEngineCode("123");
|
|
|
|
+ a1.setBatchCode("123");
|
|
|
|
+ a1.setAnalysisTypeCode("aaa");
|
|
|
|
+ a1.setFileAddr("a1");
|
|
|
|
+ Thread.sleep(10000);
|
|
|
|
+ a2.setCreateTime(new Date());
|
|
|
|
+ a2.setFieldEngineCode("123");
|
|
|
|
+ a2.setAnalysisTypeCode("aaa");
|
|
|
|
+ a2.setBatchCode("123");
|
|
|
|
+ a2.setFileAddr("a2");
|
|
|
|
+ Thread.sleep(10000);
|
|
|
|
+ a3.setCreateTime(new Date());
|
|
|
|
+ a3.setFieldEngineCode("123");
|
|
|
|
+ a3.setAnalysisTypeCode("aaa");
|
|
|
|
+ a3.setBatchCode("123");
|
|
|
|
+ a3.setFileAddr("a3");
|
|
|
|
+ Thread.sleep(10000);
|
|
|
|
+ a4.setCreateTime(new Date());
|
|
|
|
+ a4.setFieldEngineCode("124");
|
|
|
|
+ a4.setAnalysisTypeCode("aaa");
|
|
|
|
+ a4.setBatchCode("123");
|
|
|
|
+ a4.setFileAddr("a4");
|
|
|
|
+ diagramRelationVos.add(a1);
|
|
|
|
+ diagramRelationVos.add(a2);
|
|
|
|
+ diagramRelationVos.add(a3);
|
|
|
|
+ diagramRelationVos.add(a4);
|
|
|
|
+ diagramRelationVos = diagramRelationVos.stream().collect(Collectors.groupingBy(
|
|
|
|
+ AnalysisDiagramRelationVo::getFieldEngineCode,
|
|
|
|
+ Collectors.maxBy(Comparator.comparing(AnalysisDiagramRelationVo::getCreateTime)))
|
|
|
|
+ ).values().stream()
|
|
|
|
+ .map(Optional::get)
|
|
|
|
+ .collect(Collectors.toList());
|
|
|
|
+ System.out.println(diagramRelationVos);
|
|
|
|
+
|
|
// List<AnalysisGeneralFileVo> generalFileVos = new ArrayList<>();
|
|
// List<AnalysisGeneralFileVo> generalFileVos = new ArrayList<>();
|
|
// AnalysisGeneralFileVo a1 = new AnalysisGeneralFileVo();
|
|
// AnalysisGeneralFileVo a1 = new AnalysisGeneralFileVo();
|
|
// a1.setFileAddr("http://123/412/89.html");
|
|
// a1.setFileAddr("http://123/412/89.html");
|