Browse Source

修改统计量

wangyangyang 4 năm trước cách đây
mục cha
commit
048067f86b

+ 5 - 1
sms_water/src/main/java/com/huaxu/controller/MonitorInfoController.java

@@ -60,9 +60,12 @@ public class MonitorInfoController {
         List<DeviceDto> devices = new ArrayList<>();
         DeviceDto deviceDto = new DeviceDto();
         deviceDto.setSceneIds(sceneService.findByParentIdsLike(id));
+        if(deviceDto.getSceneIds().size()==0)
+            return  null;
         devices.addAll(deviceService.selectList(deviceDto));
         //取前一个小时的时间
-        LocalDateTime dateTime = LocalDateTime.now().plusDays(-1);
+        //LocalDateTime dateTime = LocalDateTime.now().plusDays(-1);
+        LocalDateTime dateTime = LocalDateTime.now();
         for (DeviceDto item : devices) {
             //设备的几个参数值
             SceneDeviceAttributeDto sceneDeviceAttributeDto = new SceneDeviceAttributeDto();
@@ -76,6 +79,7 @@ public class MonitorInfoController {
             if (bytes != null && bytes.length > 0) {
                 MonitorDataEntity monitorDataEntity = (MonitorDataEntity) ByteArrayUtils.bytesToObject(bytes).get();
                 sceneUsageDto.setCollectDate(monitorDataEntity.getCollectDate());
+                System.out.println("上报时间:"+monitorDataEntity.getCollectDate());
                 //筛选该设备相同属性的值
                 Map<Long, MonitorDataValueEntity> map = new HashMap<>();
                 //将缓存中的实时数据放到map中方便进行遍历

+ 7 - 0
sms_water/src/main/resources/mapper/DeviceMapper.xml

@@ -52,6 +52,7 @@
     <!--通过实体作为筛选条件查询-->
     <select id="selectList" resultType="com.huaxu.dto.DeviceDto">
         select
+        distinct
         <include refid="Base_Column_List"/>
         <if test="deviceDto.sceneId!= null and deviceDto.sceneId != 0 ">
             ,s.PARENT_SCENE_ID as "parentSceneId"
@@ -62,6 +63,12 @@
         <if test="deviceDto.sceneId!= null and deviceDto.sceneId != 0 ">
             inner join sms_device_scene s on s.DEVICE_ID=d.ID and s.SCENE_ID=#{deviceDto.sceneId} and s.status=1
         </if>
+        <if test="deviceDto.sceneIds!= null and deviceDto.sceneIds.size()>0 ">
+            inner join sms_device_scene s on s.DEVICE_ID=d.ID and s.status=1 and s.SCENE_ID in
+           <foreach collection="deviceDto.sceneIds" item="item" open="(" close=")" separator=",">
+              #{item}
+          </foreach>
+        </if>
         where d.status = 1
         <if test="deviceDto.tenantId != null and deviceDto.tenantId != '' ">
             and d.tenant_id = #{deviceDto.tenantId}