Browse Source

“同步实时表;计划按小时划分;日统计瞬时流量;年报查询”

yangjunfeng 1 year ago
parent
commit
4b629de509

+ 3 - 0
snws-gps/snws-gps-boot/src/main/java/com/tofly/gpsboot/util/DateTimeUtil.java

@@ -484,6 +484,9 @@ public class DateTimeUtil {
                 resultMap.put(startTime,localDateTime);
                 startTime = localDateTime;
             }else {
+                if (endTime.getHour() <= 18 && endTime.getHour() > 9) {
+                    resultMap.put(startTime,endTime);
+                }
                 return resultMap;
             }
         }

+ 1 - 1
snws-gps/snws-gps-boot/src/main/resources/mapper/fill/FillSludgeTransferMapper.xml

@@ -32,7 +32,7 @@
     </select>
 
     <select id="getSludgeList" resultType="com.tofly.pojo.fill.SludgeVo">
-        select name,id from tf_ywpn_monitor_stationsiteinfo_w where category = '2'
+        select name,id from tf_ywpn_monitor_stationsiteinfo_w where category = '1'
     </select>
 
     <select id="getBelongStationName"  resultType="java.lang.String">

+ 23 - 0
snws-monitor/snws-monitor-boot/src/main/java/com/tofly/monitor/config/ScheduledTask.java

@@ -108,6 +108,29 @@ public class ScheduledTask {
         scadaHandler.syncDaysData(startTime, endTime);
     }
 
+    /**
+     * 每小时同步当天数据
+     *
+     */
+    @Async
+    @Scheduled(cron = "0 0 * * * ? ")
+    @SneakyThrows
+    public void syncDaysDataEveryHour(){
+        Calendar calendar = Calendar.getInstance();
+        if (DateUtil.format(calendar.getTime(),"yyyy-MM-dd HH").equals(DateUtil.format(calendar.getTime(),"yyyy-MM-dd") + " 00")) {
+            return;
+        }
+        calendar.set(Calendar.HOUR_OF_DAY, 23);
+        calendar.set(Calendar.MINUTE, 59);
+        calendar.set(Calendar.SECOND, 59);
+        Date endTime = calendar.getTime();
+        calendar.set(Calendar.HOUR_OF_DAY, 0);
+        calendar.set(Calendar.MINUTE, 0);
+        calendar.set(Calendar.SECOND, 0);
+        Date startTime = calendar.getTime();
+        scadaHandler.syncDaysData(startTime, endTime);
+    }
+
     /**
      * 同步每月数据
      *

+ 3 - 8
snws-monitor/snws-monitor-boot/src/main/java/com/tofly/monitor/handler/device/HistoryToRealTimeHandler.java

@@ -1,18 +1,13 @@
 package com.tofly.monitor.handler.device;
 
 import cn.hutool.core.collection.CollUtil;
-import cn.hutool.core.date.DateUtil;
-import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
-import com.tofly.monitor.em.IndexTypeTimeWaveEnum;
 import com.tofly.monitor.mqtt.SnowFlake;
-import com.tofly.monitor.screenDisplay.entity.ScadaLjFlow;
 import com.tofly.monitor.screenDisplay.entity.dto.WisdomDisplayDto;
 import com.tofly.monitor.screenDisplay.mapper.CustomDisplayMapper;
 import com.tofly.pojo.IndexVal;
 import com.tofly.pojo.vo.StationIndexVo;
 import lombok.AllArgsConstructor;
 import lombok.extern.slf4j.Slf4j;
-import org.apache.commons.lang3.StringUtils;
 import org.springframework.stereotype.Component;
 
 import java.text.ParseException;
@@ -83,12 +78,12 @@ public class HistoryToRealTimeHandler {
             ExecutorService executorService = Executors.newSingleThreadExecutor();
             executorService.execute(() -> {
                 //为了防止SQL语句超出长度出错,分成几次插入
-                if (indexValNewUpdateList.size() <= 2000) {
+                if (indexValNewUpdateList.size() <= 200) {
                     customDisplayMapper.updateRealBatchTemp(indexValNewUpdateList);
                 } else {
-                    int times = indexValNewUpdateList.size() / 2000;
+                    int times = indexValNewUpdateList.size() / 200;
                     for (int i = 0; i <= times; i++) {
-                        customDisplayMapper.updateRealBatchTemp(indexValNewUpdateList.subList(i * 2000, Math.min((i + 1) * 2000, indexValNewUpdateList.size())));
+                        customDisplayMapper.updateRealBatchTemp(indexValNewUpdateList.subList(i * 200, Math.min((i + 1) * 200, indexValNewUpdateList.size())));
                     }
                 }
             });

+ 10 - 0
snws-monitor/snws-monitor-boot/src/main/java/com/tofly/monitor/screenDisplay/entity/TfDayStatistics.java

@@ -64,6 +64,11 @@ public class TfDayStatistics extends Model<TfDayStatistics> {
      */
     @ApiModelProperty(value = "入口累计流量")
     private Double inCumulativeFlow;
+    /**
+     * 入口瞬时流量
+     */
+    @ApiModelProperty(value = "入口瞬时流量")
+    private Double inInstantaneousFlow;
     /**
      * 入口累计流量环比
      */
@@ -183,6 +188,11 @@ public class TfDayStatistics extends Model<TfDayStatistics> {
      */
             @ApiModelProperty(value = "出口累计流量")
                 private Double outCumulativeFlow;
+    /**
+     * 出口瞬时流量
+     */
+    @ApiModelProperty(value = "出口瞬时流量")
+    private Double outInstantaneousFlow;
     /**
      * 出口累计流量环比
      */

+ 20 - 12
snws-monitor/snws-monitor-boot/src/main/java/com/tofly/monitor/screenDisplay/service/impl/CustomDisplayServiceImpl.java

@@ -602,7 +602,7 @@ public class CustomDisplayServiceImpl implements CustomDisplayService {
             case "2":// 月
                 list = customDisplayMapper.getIndexValMonth(wis);
                 List<TfDayStatistics> monthStatistics = customDisplayMapper.getFillIndexValMonth(wis);
-                list = getFillData(list, monthStatistics);
+                list = getFillData(list, monthStatistics,queryDateType);
                 list.forEach(info -> {
                     List<Long> stationIds = new ArrayList<>();
                     stationIds.add(info.getStationId());
@@ -616,7 +616,7 @@ public class CustomDisplayServiceImpl implements CustomDisplayService {
                     wis.setEndDate(DateUtil.format(calendar.getTime(), "yyyy-MM"));
                     List<TfDayStatistics> monthStatisticsMoM = customDisplayMapper.getIndexValMonth(wis);
                     List<TfDayStatistics> monthStatisticsFillMoM = customDisplayMapper.getFillIndexValMonth(wis);
-                    List<TfDayStatistics> monthStatisticsMoMFinal = getFillData(monthStatisticsMoM, monthStatisticsFillMoM);
+                    List<TfDayStatistics> monthStatisticsMoMFinal = getFillData(monthStatisticsMoM, monthStatisticsFillMoM, "2");
                     if (CollUtil.isNotEmpty(monthStatisticsMoMFinal)) {
                         TfDayStatistics statistics = monthStatisticsMoMFinal.get(0);
                         info.setSewageWaterMoM(getYoyOrMomRate(BigDecimal.valueOf(info.getSewageWater()), BigDecimal.valueOf(statistics.getSewageWater())));
@@ -648,7 +648,7 @@ public class CustomDisplayServiceImpl implements CustomDisplayService {
                     wis.setEndDate(DateUtil.format(calendar.getTime(), "yyyy-MM"));
                     List<TfDayStatistics> monthStatisticsYoY = customDisplayMapper.getIndexValMonth(wis);
                     List<TfDayStatistics> monthStatisticsFillYoY = customDisplayMapper.getFillIndexValMonth(wis);
-                    List<TfDayStatistics> monthStatisticsYoYFinal = getFillData(monthStatisticsYoY, monthStatisticsFillYoY);
+                    List<TfDayStatistics> monthStatisticsYoYFinal = getFillData(monthStatisticsYoY, monthStatisticsFillYoY,"2");
                     if (CollUtil.isEmpty(monthStatisticsYoYFinal)) {
                         return;
                     }
@@ -682,7 +682,7 @@ public class CustomDisplayServiceImpl implements CustomDisplayService {
             case "4":// 年
                 list = customDisplayMapper.getIndexValYear(wis);
                 List<TfDayStatistics> yearStatistics = customDisplayMapper.getFillIndexValYear(wis);
-                list = getFillData(list, yearStatistics);
+                list = getFillData(list, yearStatistics,queryDateType);
                 list.forEach(info -> {
                     List<Long> stationIds = new ArrayList<>();
                     stationIds.add(info.getStationId());
@@ -694,9 +694,9 @@ public class CustomDisplayServiceImpl implements CustomDisplayService {
                     calendar.add(Calendar.YEAR, -1);
                     wis.setStartDate(DateUtil.format(calendar.getTime(), "yyyy"));
                     wis.setEndDate(DateUtil.format(calendar.getTime(), "yyyy"));
-                    List<TfDayStatistics> monthStatisticsYoY = customDisplayMapper.getIndexValMonth(wis);
-                    List<TfDayStatistics> monthStatisticsFillYoY = customDisplayMapper.getFillIndexValMonth(wis);
-                    List<TfDayStatistics> monthStatisticsYoYFinal = getFillData(monthStatisticsYoY, monthStatisticsFillYoY);
+                    List<TfDayStatistics> monthStatisticsYoY = customDisplayMapper.getIndexValYear(wis);
+                    List<TfDayStatistics> monthStatisticsFillYoY = customDisplayMapper.getFillIndexValYear(wis);
+                    List<TfDayStatistics> monthStatisticsYoYFinal = getFillData(monthStatisticsYoY, monthStatisticsFillYoY,"4");
                     if (CollUtil.isEmpty(monthStatisticsYoYFinal)) {
                         return;
                     }
@@ -1663,7 +1663,7 @@ public class CustomDisplayServiceImpl implements CustomDisplayService {
      * @return
      * @description 获取数据统计的填报相关数据
      */
-    public List<TfDayStatistics> getFillData(List<TfDayStatistics> list, List<TfDayStatistics> monthStatistics) {
+    public List<TfDayStatistics> getFillData(List<TfDayStatistics> list, List<TfDayStatistics> monthStatistics, String type) {
         if (CollUtil.isEmpty(list)) {
             return list;
         }
@@ -1689,10 +1689,18 @@ public class CustomDisplayServiceImpl implements CustomDisplayService {
             if (CollUtil.isEmpty(monthStatistics)) {
                 return;
             }
-            List<TfDayStatistics> dayStatisticsFinal = monthStatistics.stream()
-                    .filter(e ->DateUtil.parse(e.getScadaTime(),"yyyy-MM").compareTo(DateUtil.parse(info.getScadaTime(),"yyyy-MM")) == 0
-                            && e.getStationId().equals(info.getStationId()))
-                    .collect(Collectors.toList());
+            List<TfDayStatistics> dayStatisticsFinal;
+            if (type.equals("2")) {
+                dayStatisticsFinal = monthStatistics.stream()
+                        .filter(e ->DateUtil.parse(e.getScadaTime(),"yyyy-MM").compareTo(DateUtil.parse(info.getScadaTime(),"yyyy-MM")) == 0
+                                && e.getStationId().equals(info.getStationId()))
+                        .collect(Collectors.toList());
+            } else {
+                dayStatisticsFinal = monthStatistics.stream()
+                        .filter(e ->DateUtil.parse(e.getScadaTime(),"yyyy").compareTo(DateUtil.parse(info.getScadaTime(),"yyyy")) == 0
+                                && e.getStationId().equals(info.getStationId()))
+                        .collect(Collectors.toList());
+            }
             if (CollUtil.isEmpty(dayStatisticsFinal)) {
                 return;
             }

+ 3 - 0
snws-monitor/snws-monitor-boot/src/main/java/com/tofly/monitor/screenDisplay/service/impl/TfDayStatisticsServiceImpl.java

@@ -111,6 +111,9 @@ public class TfDayStatisticsServiceImpl extends ServiceImpl<TfDayStatisticsMappe
                 } else if (Objects.equals(k1, IndexTypeTimeWaveEnum.TN.getIndexTypeId())) {
                     dayStatistics.setOutTn(indexSumValOut);
                     dayStatistics.setInTn(indexSumValIn);
+                }else if (Objects.equals(k1, IndexTypeTimeWaveEnum.INSTANTANEOUS_FLOW.getIndexTypeId())) {
+                    dayStatistics.setOutInstantaneousFlow(indexSumValOut);
+                    dayStatistics.setInInstantaneousFlow(indexSumValIn);
                 }
             });
 //            if (dayStatistics.getEnergy() != null

+ 2 - 0
snws-monitor/snws-monitor-boot/src/main/resources/mapper/screenDisplay/TfDayStatisticsMapper.xml

@@ -11,6 +11,7 @@
                       <result property="stationCode" column="station_code"/>
                       <result property="censusTime" column="census_time"/>
                       <result property="inCumulativeFlow" column="in_cumulative_flow"/>
+                      <result property="inInstantaneousFlow" column="in_instantaneous_flow"/>
                       <result property="inCod" column="in_COD"/>
                       <result property="inSs" column="in_SS"/>
                       <result property="inPh" column="in_PH"/>
@@ -18,6 +19,7 @@
                       <result property="inTp" column="in_TP"/>
                       <result property="inTn" column="in_TN"/>
                       <result property="outCumulativeFlow" column="out_cumulative_flow"/>
+                      <result property="outInstantaneousFlow" column="out_instantaneous_flow"/>
                       <result property="outCod" column="out_COD"/>
                       <result property="outSs" column="out_SS"/>
                       <result property="outPh" column="out_PH"/>