Browse Source

Merge remote-tracking branch 'origin/master'

wangyangyang 4 years ago
parent
commit
d965e72d06

+ 3 - 0
sms_water/src/main/java/com/huaxu/entity/DayReportEntity.java

@@ -121,6 +121,9 @@ public class DayReportEntity{
     /** 最新值 */
     @ApiModelProperty(value = "最新值")
     private Double latestValue;
+    /** 最新值 */
+    @ApiModelProperty(value = "初始值")
+    private Double firstValue;
 
     /** 采集时间 */
     @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss" , timezone = "GMT+8")

+ 9 - 3
sms_water/src/main/java/com/huaxu/service/impl/MonitorDataServiceImpl.java

@@ -140,6 +140,7 @@ public class MonitorDataServiceImpl implements MonitorDataService , Initializing
                         .max("$dataValues.dataValue").as("maxValue")
                         .avg("$dataValues.dataValue").as("avgValue")
 //                        .sum("$dataValues.dataValue").as("sumValue")
+                        .first("$dataValues.dataValue").as("firstValue")
                         .last("$dataValues.dataValue").as("latestValue")
                         .last("$collectDate").as("collectDate")
                         .count().as("countNum")
@@ -164,9 +165,14 @@ public class MonitorDataServiceImpl implements MonitorDataService , Initializing
         if(hourDatas.size()>0){
             //计算累计值
             for(DayReportEntity dayReportEntity : hourDatas){
-                if(dayReportEntity.getLatestValue()!=null && lastHourDataMap.containsKey(dayReportEntity.getMapkey())
-                        && lastHourDataMap.get(dayReportEntity.getMapkey()).getLatestValue() != null){
-                    dayReportEntity.setSumValue(new BigDecimal(dayReportEntity.getLatestValue().toString()).subtract(new BigDecimal(lastHourDataMap.get(dayReportEntity.getMapkey()).getLatestValue().toString())).doubleValue());
+                if(dayReportEntity.getLatestValue()!=null && lastHourDataMap.containsKey(dayReportEntity.getMapkey())){
+                    //上一个小时有值
+                    if(  lastHourDataMap.get(dayReportEntity.getMapkey()).getLatestValue() != null){
+                        dayReportEntity.setSumValue(new BigDecimal(dayReportEntity.getLatestValue().toString()).subtract(new BigDecimal(lastHourDataMap.get(dayReportEntity.getMapkey()).getLatestValue().toString())).doubleValue());
+                    }else if(dayReportEntity.getFirstValue() != null){//上一个小时没有值,取本小时的初始值
+                        dayReportEntity.setSumValue(new BigDecimal(dayReportEntity.getLatestValue().toString()).subtract(new BigDecimal(dayReportEntity.getFirstValue().toString())).doubleValue());
+                    }
+
                 }
             }
             monitorDataMapper.batchInsertDayReport(hourDatas);

+ 13 - 2
sms_water/src/main/java/com/huaxu/service/impl/OnlineMonitorImpl.java

@@ -96,8 +96,6 @@ public class OnlineMonitorImpl implements OnlineMonitorService {
                     Double d2= monitorDataCollectDto.getSceneTypeName().equals("水源")?(o2.getIntakeWaterUsage()==null?0d:o2.getIntakeWaterUsage()):(o2.getYieldWaterUsage()==null?0d:o2.getYieldWaterUsage());
                     if(d1>d2){
                         return -1;
-                    }else if(d1.equals(d1)) {
-                        return 0;
                     }
                     return 0;
                 }
@@ -251,6 +249,19 @@ public class OnlineMonitorImpl implements OnlineMonitorService {
 
         List<MonitorDataCollectDto> result=onlineMonitorMapper.statsDeviceParm(onlineDataDto);
         GetCalMonitorData(result,result);
+        //去掉没有数据的值
+        result.removeIf(r->r.getYieldWaterUsage() == null);
+        //按水量倒序排序
+        result.sort(new Comparator<MonitorDataCollectDto>() {
+            @Override
+            public int compare(MonitorDataCollectDto o1, MonitorDataCollectDto o2) {
+                if(o1.getYieldWaterUsage()!=null&&o2.getYieldWaterUsage()!=null&&
+                        o1.getYieldWaterUsage()>o2.getYieldWaterUsage()){
+                    return -1;
+                }
+                return 0;
+            }
+        });
         return result;
     }
     /**

+ 1 - 1
sms_water/src/main/resources/mapper/OnlineMonitorMapper.xml

@@ -207,7 +207,7 @@
     <!--查询地图参数数据-->
     <select id="selectMapParam" resultMap="monitorDataMap">
         select
-        <include refid="Base_Column_List"/>
+        <include refid="Base_Column_List"/>,if (t7.alarm_count>0, 1, 0) scene_state
         from sms_scene t1
         <include refid="sceneDeviceJoins"/>
         <include refid="sceneAlarmJoins"/>