瀏覽代碼

Merge branch 'usky-zyj' of uskycloud/usky-modules into server-165

James 1 年之前
父節點
當前提交
10843ecf07

+ 9 - 0
service-backend/service-backend-biz/src/main/java/com/usky/backend/mapper/DataRealTimeMapper.java

@@ -48,6 +48,15 @@ public interface DataRealTimeMapper extends CrudMapper<DataRealTime> {
                                                         @Param("deviceIdList") List<String> deviceIdList,
                                                         @Param("attributeNameList") List<String> attributeNameList);
 
+
+    List<DataHistoryAvergerVO> QueryTotalOptHistoryAvrgData(@Param("leftLen") Integer leftLen,
+                                                        @Param("tableName") String tableName,
+                                                        @Param("startTime") String startTime,
+                                                        @Param("endTime") String endTime,
+                                                        @Param("productCode") String productCode,
+                                                        @Param("deviceIdList") List<String> deviceIdList,
+                                                        @Param("attributeNameList") List<String> attributeNameList);
+
     List<DataHistoryAvergerVO> QueryTotalHistoryAvrgData(@Param("leftLen") Integer leftLen,
                                                         @Param("tableName") String tableName,
                                                         @Param("startTime") String startTime,

+ 11 - 2
service-backend/service-backend-biz/src/main/java/com/usky/backend/service/impl/DataQueryServiceImpl.java

@@ -165,7 +165,12 @@ public class DataQueryServiceImpl implements DataQueryService {
         if(requestVO.getGroupType().equals("Each")){
             list1 = dataRealTimeMapper.QueryEachHistoryAvrgData(leftLen,tableName,requestVO.getStartTime(),requestVO.getEndTime(),requestVO.getProductCode(),requestVO.getDeviceIds(),requestVO.getAttributeNames());
         }else if(requestVO.getGroupType().equals("Total")){
-            list1 = dataRealTimeMapper.QueryTotalHistoryAvrgData(leftLen,tableName,requestVO.getStartTime(),requestVO.getEndTime(),requestVO.getProductCode(),requestVO.getAttributeNames());
+            if(CollectionUtils.isNotEmpty(requestVO.getDeviceIds())){
+                list1 = dataRealTimeMapper.QueryTotalOptHistoryAvrgData(leftLen,tableName,requestVO.getStartTime(),requestVO.getEndTime(),requestVO.getProductCode(),requestVO.getDeviceIds(),requestVO.getAttributeNames());
+            }else{
+                list1 = dataRealTimeMapper.QueryTotalHistoryAvrgData(leftLen,tableName,requestVO.getStartTime(),requestVO.getEndTime(),requestVO.getProductCode(),requestVO.getAttributeNames());
+            }
+
         }
         if(CollectionUtils.isNotEmpty(list1)){
             List<String> dateList = new ArrayList<>();
@@ -262,7 +267,11 @@ public class DataQueryServiceImpl implements DataQueryService {
         if(requestVO.getGroupType().equals("Each")){
             list1 = dataRealTimeMapper.QueryEachHistoryAvrgData(leftLen,tableName,requestVO.getStartTime(),requestVO.getEndTime(),requestVO.getProductCode(),requestVO.getDeviceIds(),requestVO.getAttributeNames());
         }else if(requestVO.getGroupType().equals("Total")){
-            list1 = dataRealTimeMapper.QueryTotalHistoryAvrgData(leftLen,tableName,requestVO.getStartTime(),requestVO.getEndTime(),requestVO.getProductCode(),requestVO.getAttributeNames());
+            if(CollectionUtils.isNotEmpty(requestVO.getDeviceIds())){
+                list1 = dataRealTimeMapper.QueryTotalOptHistoryAvrgData(leftLen,tableName,requestVO.getStartTime(),requestVO.getEndTime(),requestVO.getProductCode(),requestVO.getDeviceIds(),requestVO.getAttributeNames());
+            }else{
+                list1 = dataRealTimeMapper.QueryTotalHistoryAvrgData(leftLen,tableName,requestVO.getStartTime(),requestVO.getEndTime(),requestVO.getProductCode(),requestVO.getAttributeNames());
+            }
         }
         if(CollectionUtils.isNotEmpty(list1)){
             List<String> dateList = new ArrayList<>();

+ 19 - 0
service-backend/service-backend-biz/src/main/resources/mapper/backend/DataRealTimeMapper.xml

@@ -95,6 +95,25 @@
         </if>) a
         GROUP BY a.data_date,a.device_id,a.attribute_name;
     </select>
+    <select id="QueryTotalOptHistoryAvrgData" resultType="com.usky.backend.domain.DataHistoryAvergerVO">
+        SELECT a.data_date as dataDate,'所选房间' as deviceId,a.attribute_name as attributeName ,avg(a.attribute_data) as avrg
+        FROM (SELECT product_code,attribute_name,attribute_data,LEFT(data_time,#{leftLen}) AS data_date FROM ${tableName} WHERE data_time  BETWEEN  #{startTime} AND  #{endTime} AND product_code = #{productCode}
+        AND device_id != 'weather0001'
+        <if test="deviceIdList != null and deviceIdList.size() > 0">
+            AND device_id in
+            <foreach item="item" collection="deviceIdList" open="(" separator="," close=")">
+                #{item}
+            </foreach>
+        </if>
+        <if test="attributeNameList != null and attributeNameList.size() > 0">
+            AND attribute_name in
+            <foreach item="item" collection="attributeNameList" open="(" separator="," close=")">
+                #{item}
+            </foreach>
+        </if>
+        and attribute_data != 0) a
+        GROUP BY a.data_date,a.attribute_name;
+    </select>
     <select id="QueryTotalHistoryAvrgData" resultType="com.usky.backend.domain.DataHistoryAvergerVO">
         SELECT a.data_date as dataDate,'所有房间' as deviceId,a.attribute_name as attributeName ,avg(a.attribute_data) as avrg
         FROM (SELECT product_code,attribute_name,attribute_data,LEFT(data_time,#{leftLen}) AS data_date FROM ${tableName} WHERE data_time  BETWEEN  #{startTime} AND  #{endTime} AND product_code = #{productCode}