浏览代码

修改:分析详情页面(更改筛选最新文件逻辑)

chenhongyan1989 6 月之前
父节点
当前提交
c934ed485c

+ 5 - 0
energy-manage-common/src/main/java/com/energy/manage/common/po/analysis/AnalysisGeneralFilePo.java

@@ -51,4 +51,9 @@ public class AnalysisGeneralFilePo {
      */
     @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
     private Date createTime ;
+
+    /**
+     * 风机编号
+     */
+    private String engineTypeCode;
 }

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

@@ -46,4 +46,9 @@ public class AnalysisGeneralFileVo {
      */
     @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
     private Date createTime ;
+
+    /**
+     * 风机类型编号
+     */
+    private String engineTypeCode ;
 }

+ 55 - 19
energy-manage-service/src/main/java/com/energy/manage/service/service/analysis/impl/AnalysisServiceImpl.java

@@ -670,16 +670,12 @@ public class AnalysisServiceImpl implements AnalysisService {
     private List<AnalysisGeneralFileVo> getNewGeneralFiles(String batchCode,String analysisTypeCode, boolean isIntranet){
         //从数据库获取当前批次、当前分析类型的所有的分析总文件
         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())));
         return generalFileVos;
     }
@@ -698,16 +694,16 @@ public class AnalysisServiceImpl implements AnalysisService {
         if(CollectionUtils.isEmpty(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())));
-        //如果风机编号不为空的话则不对风机编号进行排序
-        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
      */
     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<>();
 //        AnalysisGeneralFileVo a1 = new AnalysisGeneralFileVo();
 //        a1.setFileAddr("http://123/412/89.html");

+ 162 - 0
energy-manage-service/src/main/resources/logback/logback-show.xml

@@ -0,0 +1,162 @@
+<?xml version="1.0" encoding="UTF-8"?>
+
+<included>
+    <!-- 定义日志文件 输入位置 -->
+    <springProperty name="log_dir" source="logging.path" defaultValue="./logs"/>
+    <property name="log.pattern"
+              value="%d{yyyy-MM-dd HH:mm:ss.SSS} %X{THREAD_NOTE} [%thread] %-5level %logger - %msg%n"/>
+    <property name="log.maxHistory" value="90" />
+
+    <!--# Console -->
+    <appender name="STDOUT" class="ch.qos.logback.core.ConsoleAppender">
+        <!-- 典型的日志pattern -->
+        <encoder>
+            <pattern>[%-5level %d{HH:mm:ss.SSS} | %X{THREAD_NOTE} | %thread | %logger.%method] [%L] - %msg%n</pattern>
+            <charset>UTF-8</charset> <!-- 此处设置字符集 -->
+        </encoder>
+    </appender>
+
+    <!-- ERROR级别日志 -->
+    <!-- 滚动记录文件,先将日志记录到指定文件,当符合某个条件时,将日志记录到其他文件 RollingFileAppender-->
+    <appender name="ERROR" class="ch.qos.logback.core.rolling.RollingFileAppender">
+        <!-- 过滤器,只记录WARN级别的日志 -->
+        <filter class="ch.qos.logback.classic.filter.LevelFilter">
+            <level>ERROR</level>
+            <onMatch>ACCEPT</onMatch>
+            <onMismatch>DENY</onMismatch>
+        </filter>
+
+        <encoder>
+            <pattern>${log.pattern}</pattern>
+            <!-- 此处设置字符集 -->
+            <charset>UTF-8</charset>
+        </encoder>
+
+        <!-- 最常用的滚动策略,它根据时间来制定滚动策略.既负责滚动也负责出发滚动 -->
+        <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
+            <!--日志输出位置  可相对、和绝对路径 -->
+            <fileNamePattern>${log_dir}/%d{yyyy-MM-dd}/error.log</fileNamePattern>
+            <!-- 可选节点,控制保留的归档文件的最大数量,超出数量就删除旧文件假设设置每个月滚动,且<maxHistory>是6,
+            则只保存最近6个月的文件,删除之前的旧文件。注意,删除旧文件是,那些为了归档而创建的目录也会被删除-->
+            <maxHistory>${log.maxHistory}</maxHistory>
+        </rollingPolicy>
+    </appender>
+
+    <!-- WARN级别日志 appender -->
+    <appender name="WARN" class="ch.qos.logback.core.rolling.RollingFileAppender">
+        <!-- 过滤器,只记录WARN级别的日志 -->
+        <filter class="ch.qos.logback.classic.filter.LevelFilter">
+            <level>WARN</level>
+            <onMatch>ACCEPT</onMatch>
+            <onMismatch>DENY</onMismatch>
+        </filter>
+
+
+        <encoder>
+            <pattern>${log.pattern}</pattern>
+            <!-- 此处设置字符集 -->
+            <charset>UTF-8</charset>
+        </encoder>
+
+        <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
+            <!-- 按天回滚 daily -->
+            <fileNamePattern>${log_dir}/%d{yyyy-MM-dd}/warn.log
+            </fileNamePattern>
+            <!-- 日志最大的历史 60天 -->
+            <maxHistory>${log.maxHistory}</maxHistory>
+        </rollingPolicy>
+
+    </appender>
+
+    <!-- INFO级别日志 appender -->
+    <appender name="INFO" class="ch.qos.logback.core.rolling.RollingFileAppender">
+        <!-- 过滤器,只记录INFO级别的日志 -->
+        <filter class="ch.qos.logback.classic.filter.LevelFilter">
+            <level>INFO</level>
+            <onMatch>ACCEPT</onMatch>
+            <onMismatch>DENY</onMismatch>
+        </filter>
+        <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
+            <!-- 按天回滚 daily -->
+            <fileNamePattern>${log_dir}/%d{yyyy-MM-dd}/info.log
+            </fileNamePattern>
+            <!-- 日志最大的历史 60天 -->
+            <maxHistory>${log.maxHistory}</maxHistory>
+        </rollingPolicy>
+
+
+        <encoder>
+            <pattern>${log.pattern}</pattern>
+            <!-- 此处设置字符集 -->
+            <charset>UTF-8</charset>
+        </encoder>
+    </appender>
+
+    <!-- DEBUG级别日志 appender -->
+    <appender name="DEBUG" class="ch.qos.logback.core.rolling.RollingFileAppender">
+        <!-- 过滤器,只记录DEBUG级别的日志 -->
+        <filter class="ch.qos.logback.classic.filter.LevelFilter">
+            <level>DEBUG</level>
+            <onMatch>ACCEPT</onMatch>
+            <onMismatch>DENY</onMismatch>
+        </filter>
+        <encoder>
+            <pattern>${log.pattern}</pattern>
+            <!-- 此处设置字符集 -->
+            <charset>UTF-8</charset>
+        </encoder>
+        <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
+            <!-- 按天回滚 daily -->
+            <fileNamePattern>${log_dir}/%d{yyyy-MM-dd}/debug.log
+            </fileNamePattern>
+            <!-- 日志最大的历史 60天 -->
+            <maxHistory>${log.maxHistory}</maxHistory>
+            >
+        </rollingPolicy>
+
+    </appender>
+
+    <!-- TRACE级别日志 appender -->
+    <appender name="TRACE" class="ch.qos.logback.core.rolling.RollingFileAppender">
+        <!-- 过滤器,只记录ERROR级别的日志 -->
+        <filter class="ch.qos.logback.classic.filter.LevelFilter">
+            <level>TRACE</level>
+            <onMatch>ACCEPT</onMatch>
+            <onMismatch>DENY</onMismatch>
+        </filter>
+        <encoder>
+            <pattern>${log.pattern}</pattern>
+            <!-- 此处设置字符集 -->
+            <charset>UTF-8</charset>
+        </encoder>
+        <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
+            <!-- 按天回滚 daily -->
+            <fileNamePattern>${log_dir}/%d{yyyy-MM-dd}/trace.log
+            </fileNamePattern>
+            <!-- 日志最大的历史 60天 -->
+            <maxHistory>${log.maxHistory}</maxHistory>
+
+        </rollingPolicy>
+        >
+    </appender>
+
+    <!--myibatis log configure-->
+    <logger name="com.apache.ibatis" level="TRACE"/>
+    <logger name="java.sql.Connection" level="DEBUG"/>
+    <logger name="java.sql.Statement" level="DEBUG"/>
+    <logger name="java.sql.PreparedStatement" level="DEBUG"/>
+
+    <!-- root级别   DEBUG -->
+    <root level="INFO">
+        <!-- 控制台输出 STDOUT-->
+        <appender-ref ref="STDOUT"/>
+        <appender-ref ref="DEBUG"/>
+        <!-- 文件输出 -->
+        <appender-ref ref="ERROR"/>
+        <appender-ref ref="INFO"/>
+        <appender-ref ref="WARN"/>
+        <appender-ref ref="DEBUG"/>
+        <appender-ref ref="TRACE"/>
+    </root>
+
+</included>

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

@@ -9,6 +9,7 @@
         <result column="file_addr" property="fileAddr" jdbcType="VARCHAR"/>
         <result column="auto_analysis" property="createBy" jdbcType="INTEGER"/>
         <result column="create_time" property="createTime" jdbcType="TIMESTAMP"/>
+        <result column="engine_type_code" property="engineTypeCode" jdbcType="VARCHAR"/>
     </resultMap>
 
     <select id="selectByCondition" parameterType="java.lang.String" resultType="com.energy.manage.service.domain.vo.analysis.AnalysisGeneralFileVo">
@@ -16,6 +17,7 @@
             batch_code,
             analysis_type_code,
             file_addr,
+            engine_type_code,
             create_time
         from analysis_general_file
         where batch_code = #{batchCode,jdbcType=VARCHAR}

+ 2 - 2
pom.xml

@@ -337,9 +337,9 @@
             </activation>
         </profile>
         <profile>
-            <id>test</id>
+            <id>show</id>
             <properties>
-                <profiles.active>test</profiles.active>
+                <profiles.active>show</profiles.active>
             </properties>
         </profile>
         <profile>