lihui007 4 anos atrás
pai
commit
72cff33f5e

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

@@ -68,7 +68,7 @@ public class MonitorDataReportController {
             @ApiParam(value = "场景ids", required = true) @RequestParam List<Long> sceneIds,
             @ApiParam(value = "日期,格式:2020-12-12") @RequestParam(name = "reportDate",required = false) String reportDate,
             @ApiParam(value = "类型,1年2月3日4自定义", required = true) @RequestParam Integer reportType,
-            @ApiParam(value = "场景类型:1水源 0其他",defaultValue = "0") @RequestParam(required = false ,defaultValue = "0") Integer sceneType,
+            @ApiParam(value = "场景类型:1水源 2水厂 3泵站 0其他",defaultValue = "0") @RequestParam(required = false ,defaultValue = "0") Integer sceneType,
             @ApiParam(value = "开始时间") @RequestParam(name = "startTime",required = false) String startTime,
             @ApiParam(value = "结束时间") @RequestParam(name = "endTime",required = false) String endTime
     ){

+ 3 - 0
sms_water/src/main/java/com/huaxu/dto/ReportDto.java

@@ -79,4 +79,7 @@ public class ReportDto implements Serializable {
 
     @ApiModelProperty(value = "结束时间")
     private String endTime;
+
+    @ApiModelProperty("场景类型名称")
+    private String sceneTypeName;
 }

+ 1 - 1
sms_water/src/main/java/com/huaxu/rabbitmq/AlarmDataHandler.java

@@ -60,7 +60,7 @@ public class AlarmDataHandler {
         Double receivedValue            = null;
         List<AlarmDetailsEntity> insert = null;
         List<AlarmDetailsEntity> update = null;
-        // 获取需要验证的报警条件
+        // 获取需要验证的报警条件monitorDataEntity.getDeviceId()
         List<DeviceCheckAlarmDto> deviceCheckAlarmDtos = alarmDetailMapper.selectDeviceForCheckAlarm(monitorDataEntity.getDeviceId(),"参数报警");
         // 有设置报警参数
         if (deviceCheckAlarmDtos.size() == 0 || StringUtils.isBlank(deviceCheckAlarmDtos.get(0).getIdentifiter())){

+ 1 - 1
sms_water/src/main/java/com/huaxu/rabbitmq/ReportWaterPumpStateHandler.java

@@ -77,7 +77,7 @@ public class ReportWaterPumpStateHandler {
      *           -> 00:30-null   运行时间
     * @Date 14:08 2021/4/21
     * @Param [md5Query :查询条件, monitorDataEntity, valueEntity, inserList :需要插入的数据集合, stateValue:泵站状态,receiveDateTime:上报数据的时间]
-    * @return boolean
+    * @return
     **/
     private void addOrUpdate(String md5Query , MonitorDataEntity monitorDataEntity,
                                   MonitorDataValueEntity valueEntity ,List<ReportWaterPumpStateEntity> inserList,

+ 10 - 4
sms_water/src/main/java/com/huaxu/service/AbstractReportService.java

@@ -188,8 +188,7 @@ public abstract class AbstractReportService<M extends BaseMapper<T>, T> extends
         List<ReportAttributeDto> reportAttributeDtos2 = deviceParmService.findAttributeNameList(reportDto);
         int numCount = 0;
         for (ReportAttributeDto title : reportAttributeDtos2) {
-            if (!mapsTitle.containsKey(title.getAttributeName())){
-                mapsTitle.put(title.getAttributeName(), numCount++);
+            if (!mapsAttributeTitle.containsKey(title.getAttributeName())){
                 mapsAttributeTitle.put(title.getAttributeName(),title);
             }
         }
@@ -202,7 +201,14 @@ public abstract class AbstractReportService<M extends BaseMapper<T>, T> extends
             }
         });
         // 转换list返回
-        return deviceChildrenMap.values().stream().collect(Collectors.toList());
+        List<ReportTitleDto> resultList =  deviceChildrenMap.values().stream().collect(Collectors.toList());
+        for (ReportTitleDto reportTitleDto : resultList) {
+            List<ReportTitleDto.DeviceChildren> childrenList = reportTitleDto.getDeviceChildren();
+            for (ReportTitleDto.DeviceChildren children : childrenList) {
+                mapsTitle.put(children.getName(), numCount++);
+            }
+        }
+        return resultList;
     }
 
     /**
@@ -265,7 +271,7 @@ public abstract class AbstractReportService<M extends BaseMapper<T>, T> extends
      * @param deviceChildrenMap
      */
     private void setReportTitle(ReportAttributeDto v, Map<String, ReportTitleDto> deviceChildrenMap){
-        String classify = StringUtils.isEmpty(v.getClassify()) ? v.getAttributeName() : v.getClassify();
+        String classify = StringUtils.isEmpty(v.getClassify()) ? v.getAttributeName() + "isNull" : v.getClassify();
         ReportTitleDto reportTitleDto = deviceChildrenMap.get(classify);
         if (reportTitleDto == null) {
             reportTitleDto = new ReportTitleDto();

+ 12 - 2
sms_water/src/main/java/com/huaxu/service/DayReportService.java

@@ -11,6 +11,8 @@ import com.huaxu.util.UserUtil;
 import org.springframework.stereotype.Service;
 
 import javax.annotation.Resource;
+import java.math.BigDecimal;
+import java.math.RoundingMode;
 import java.util.*;
 
 /**
@@ -135,9 +137,17 @@ public class DayReportService extends AbstractReportService<DayReportMapper, Day
             if (reportDtos.get(i).getHour().equals(item.getHour()))
                 index = i;
         }
+        Double power = reportDtos!=null&&reportDtos.get(index)!=null?reportDtos.get(index).getPowerUsage():0;
+        Double water = reportDtos!=null&&reportDtos.get(index)!=null?reportDtos.get(index).getIntakeWaterUsage():0;
+        if ("水源水厂".indexOf(item.getSceneTypeName()) != -1){
+            item.setPowerUsage(new BigDecimal(power).divide(BigDecimal.valueOf(10000), 3, RoundingMode.HALF_UP).doubleValue());
+            item.setIntakeWaterUsage(new BigDecimal(water).divide(BigDecimal.valueOf(10000), 3, RoundingMode.HALF_UP).doubleValue());
+        } else {
+            item.setPowerUsage(power);
+            item.setIntakeWaterUsage(water);
+        }
+
         item.setYieldWaterUsage(reportDtos!=null&&reportDtos.get(index)!=null? reportDtos.get(index).getYieldWaterUsage():0);
-        item.setIntakeWaterUsage(reportDtos!=null&&reportDtos.get(index)!=null?reportDtos.get(index).getIntakeWaterUsage():0);
-        item.setPowerUsage(reportDtos!=null&&reportDtos.get(index)!=null?reportDtos.get(index).getPowerUsage():0);
         item.setDrugUsage(reportDtos!=null&&reportDtos.get(index)!=null?reportDtos.get(index).getDrugUsage():0);
 //        if (index != -1) {
 //            if ((index + 2) <= reportDtos.size()) {

+ 10 - 6
sms_water/src/main/java/com/huaxu/service/impl/MonitorDataReportServiceImpl.java

@@ -187,19 +187,20 @@ public class MonitorDataReportServiceImpl implements MonitorDataReportService {
         if (type == null) {
             return monitorDataChartReportDeviceDtos;
         }
+        Integer stype = sceneType == 2 || sceneType == 3 ? 0 : sceneType ;
         if(type == 3){
-            monitorDataChartReportDeviceDtos = monitorDataReportMapper.MonitorDataEnergyReportByDay(sceneType,sceneIds,year,month,day,
+            monitorDataChartReportDeviceDtos = monitorDataReportMapper.MonitorDataEnergyReportByDay(stype,sceneIds,year,month,day,
                    loginUser.getTenantId(),loginUser.getType(),loginUser.getPermissonType(),loginUser.getProgramItemList());
        } else if(type == 2){
-            monitorDataChartReportDeviceDtos = monitorDataReportMapper.MonitorDataEnergyReportByMonth(sceneType,sceneIds,year,month,
+            monitorDataChartReportDeviceDtos = monitorDataReportMapper.MonitorDataEnergyReportByMonth(stype,sceneIds,year,month,
                    loginUser.getTenantId(),loginUser.getType(),loginUser.getPermissonType(),loginUser.getProgramItemList());
        } else if(type == 1){
-           monitorDataChartReportDeviceDtos = monitorDataReportMapper.MonitorDataEnergyReportByYear(sceneType,sceneIds,year,
+           monitorDataChartReportDeviceDtos = monitorDataReportMapper.MonitorDataEnergyReportByYear(stype,sceneIds,year,
                    loginUser.getTenantId(),loginUser.getType(),loginUser.getPermissonType(),loginUser.getProgramItemList());
        } else if (type == 4) {
             startTime += " 00:00:00";
             endTime   += " 23:59:59";
-            monitorDataChartReportDeviceDtos = monitorDataReportMapper.MonitorDataEnergyReport(sceneType,sceneIds,startTime,endTime,
+            monitorDataChartReportDeviceDtos = monitorDataReportMapper.MonitorDataEnergyReport(stype,sceneIds,startTime,endTime,
                     loginUser.getTenantId(),loginUser.getType(),loginUser.getPermissonType(),loginUser.getProgramItemList());
         }
         if (monitorDataChartReportDeviceDtos != null && type == 4) {
@@ -207,7 +208,11 @@ public class MonitorDataReportServiceImpl implements MonitorDataReportService {
         }else if (monitorDataChartReportDeviceDtos != null){
             FillLoseData(monitorDataChartReportDeviceDtos,type,year,month,day);
         }
-        //单位转换为“万”
+        // 场景类型为泵站的不需要转换
+        if (sceneType == 3){
+            return monitorDataChartReportDeviceDtos;
+        }
+        // 其他场景需要转换为单位“万”
         for(MonitorDataChartReportDeviceDto monitorDataChartReportDeviceDto : monitorDataChartReportDeviceDtos){
             for(MonitorDataChartReportAttributeDto monitorDataChartReportAttributeDto:monitorDataChartReportDeviceDto.getAttributeData()){
                 monitorDataChartReportAttributeDto.setUnit("万"+monitorDataChartReportAttributeDto.getUnit());
@@ -215,7 +220,6 @@ public class MonitorDataReportServiceImpl implements MonitorDataReportService {
                     monitorDataChartReportValueDto.setData(new BigDecimal(monitorDataChartReportValueDto.getData()).divide(BigDecimal.valueOf(10000),3, RoundingMode.HALF_UP).doubleValue());
                     monitorDataChartReportValueDto.setMonitorData(monitorDataChartReportValueDto.getData()+monitorDataChartReportAttributeDto.getUnit());
                 }
-
             }
         }
         return monitorDataChartReportDeviceDtos;

+ 3 - 1
sms_water/src/main/resources/mapper/DayReportMapper.xml

@@ -148,7 +148,8 @@
         a.DEVICE_NAME as "deviceName",
         b.parent_scene_id as "parentSceneId",
         c.SCENE_NAME as "parentSceneName",
-        a.COLLECT_DATE as "collectDate"
+        a.COLLECT_DATE as "collectDate",
+        t.SCENE_TYPE_NAME as "sceneTypeName"
         FROM sms_day_report a
         inner join sms_device_parm b on a.DEVICE_ID = b.DEVICE_ID and a.ATTRIBUTE_ID=b.ATTRIBUTE_ID
         <if test="dayReport.typeIds != null">
@@ -159,6 +160,7 @@
         </if>
         and b.`STATUS`=1
         inner join sms_scene c on b.PARENT_SCENE_ID=c.id
+        inner join sms_scene_type t on c.SCENE_TYPE_ID  = t.id
         <where>
             b.IS_REPORT=1
             <if test="dayReport.tenantId != null  and dayReport.tenantId != ''">and a.tenant_id =

+ 217 - 279
sms_water/src/main/resources/mapper/MonitorDataReportMapper.xml

@@ -29,24 +29,24 @@
     <!-- 图表 -->
     <select id="MonitorDataChartReportByDay" resultMap="MonitorDataChartReportMap">
         SELECT
-            r.`HOUR` AS "dateLabel",
-            CONCAT( s.SCENE_NAME, r.DEVICE_NAME ) AS "deviceName",
-            r.DEVICE_CODE AS "devoceCode",
-            r.ATTRIBUTE_NAME AS "attributeName",
-            da.unit AS "unit",
+        r.`HOUR` AS "dateLabel",
+        CONCAT( s.SCENE_NAME, r.DEVICE_NAME ) AS "deviceName",
+        r.DEVICE_CODE AS "devoceCode",
+        r.ATTRIBUTE_NAME AS "attributeName",
+        da.unit AS "unit",
 
-            ROUND( sum(r.AVG_VALUE), 2 ) AS "data",
-            max(r.COLLECT_DATE) AS "date"
+        ROUND( sum(r.AVG_VALUE), 2 ) AS "data",
+        max(r.COLLECT_DATE) AS "date"
         FROM sms_device_parm p
         LEFT JOIN sms_day_report r ON p.DEVICE_ID = r.DEVICE_ID AND p.ATTRIBUTE_ID = r.ATTRIBUTE_ID
         LEFT JOIN sms_device_attribute da ON da.id = r.ATTRIBUTE_ID
         LEFT JOIN sms_device d ON d.id = r.DEVICE_ID
         left join sms_scene s on s.id=p.PARENT_SCENE_ID
         where p.IS_CHART = 1 and p.`STATUS`= 1 and d.ENABLE_STATE = 1  and d.`STATUS`= 1
-            and p.PARENT_SCENE_ID=#{sceneId}
-            and r.year=#{year}
-            and r.month=#{month}
-            and r.day=#{day}
+        and p.PARENT_SCENE_ID=#{sceneId}
+        and r.year=#{year}
+        and r.month=#{month}
+        and r.day=#{day}
         <if test="tenantId != null and tenantId != '' ">
             and d.tenant_id = #{tenantId}
         </if>
@@ -83,14 +83,14 @@
     </select>
     <select id="MonitorDataChartReportByMonth" resultMap="MonitorDataChartReportMap">
         SELECT
-            r.`day` AS "dateLabel",
-            CONCAT( s.SCENE_NAME, r.DEVICE_NAME ) AS "deviceName",
-            r.DEVICE_CODE AS "devoceCode",
-            r.ATTRIBUTE_NAME AS "attributeName",
-            da.unit AS "unit",
+        r.`day` AS "dateLabel",
+        CONCAT( s.SCENE_NAME, r.DEVICE_NAME ) AS "deviceName",
+        r.DEVICE_CODE AS "devoceCode",
+        r.ATTRIBUTE_NAME AS "attributeName",
+        da.unit AS "unit",
 
-            ROUND( sum(r.AVG_VALUE), 2 ) AS "data",
-            max(r.COLLECT_DATE) AS "date"
+        ROUND( sum(r.AVG_VALUE), 2 ) AS "data",
+        max(r.COLLECT_DATE) AS "date"
         FROM sms_device_parm p
         LEFT JOIN sms_month_report r ON p.DEVICE_ID = r.DEVICE_ID AND p.ATTRIBUTE_ID = r.ATTRIBUTE_ID
         LEFT JOIN sms_device_attribute da ON da.id = r.ATTRIBUTE_ID
@@ -135,14 +135,14 @@
     </select>
     <select id="MonitorDataChartReportByYear" resultMap="MonitorDataChartReportMap">
         SELECT
-            r.`month` AS "dateLabel",
-            CONCAT( s.SCENE_NAME, r.DEVICE_NAME ) AS "deviceName",
-            r.DEVICE_CODE AS "devoceCode",
-            r.ATTRIBUTE_NAME AS "attributeName",
-            da.unit AS "unit",
+        r.`month` AS "dateLabel",
+        CONCAT( s.SCENE_NAME, r.DEVICE_NAME ) AS "deviceName",
+        r.DEVICE_CODE AS "devoceCode",
+        r.ATTRIBUTE_NAME AS "attributeName",
+        da.unit AS "unit",
 
-            ROUND( sum(r.AVG_VALUE), 2 ) AS "data",
-            max(r.COLLECT_DATE) AS "date"
+        ROUND( sum(r.AVG_VALUE), 2 ) AS "data",
+        max(r.COLLECT_DATE) AS "date"
         FROM sms_device_parm p
         LEFT JOIN sms_year_report r ON p.DEVICE_ID = r.DEVICE_ID AND p.ATTRIBUTE_ID = r.ATTRIBUTE_ID
         LEFT JOIN sms_device_attribute da ON da.id = r.ATTRIBUTE_ID
@@ -188,39 +188,39 @@
     <!-- 对比————用水量、耗电量 -->
     <select id="MonitorDataEnergyReportByDay" resultMap="MonitorDataChartReportMap">
         SELECT
-            r.`HOUR` AS "dateLabel",
-            IF( p.parm_type = 5, '耗电量', IF( p.parm_type = 4, '取水量', '用水量' ) ) AS "attributeName",
-            s.SCENE_NAME AS "deviceName",
-            p.parm_type AS "attributeType",
-            da.unit AS "unit",
+        r.`HOUR` AS "dateLabel",
+        IF( p.parm_type = 5, '耗电量', IF( p.parm_type = 4, '取水量', '用水量' ) ) AS "attributeName",
+        s.SCENE_NAME AS "deviceName",
+        p.parm_type AS "attributeType",
+        da.unit AS "unit",
 
-            ifnull( ROUND( sum( r.SUM_VALUE ), 2 ), 0 ) AS "data",
-            max( r.COLLECT_DATE ) AS "date"
+        ifnull( ROUND( sum( r.SUM_VALUE ), 2 ), 0 ) AS "data",
+        max( r.COLLECT_DATE ) AS "date"
         FROM sms_device_parm p
         LEFT JOIN sms_day_report r ON p.DEVICE_ID = r.DEVICE_ID AND p.ATTRIBUTE_ID = r.ATTRIBUTE_ID
         left join sms_scene s on s.id=p.parent_scene_id
         left join sms_device_attribute  da ON da.id = p.ATTRIBUTE_ID
         LEFT JOIN sms_device d ON d.id = r.DEVICE_ID
         WHERE p.`STATUS`= 1
-            <if test="sceneType != null and sceneType == 1">
-                and p.parm_type in (4,5)
-            </if>
-            <if test="sceneType == null or  sceneType == 0">
-                and p.parm_type in (3,5)
-            </if>
+        <if test="sceneType != null and sceneType == 1">
+            and p.parm_type in (4,5)
+        </if>
+        <if test="sceneType == null or  sceneType == 0">
+            and p.parm_type in (3,5)
+        </if>
 
         and d.ENABLE_STATE = 1  and d.`STATUS`= 1
-            AND r.YEAR = #{year}  and r.month=#{month}  and r.day=#{day}
-            <if test="sceneIds != null and sceneIds.size()>0">
-                and p.PARENT_SCENE_ID in
-                <foreach collection="sceneIds" item="item" open="(" close=")" separator=",">
-                    #{item}
-                </foreach>
-            </if>
-            <if test="tenantId != null and tenantId != '' ">
-                and d.tenant_id = #{tenantId}
-            </if>
-            <if test="userType!=null and userType!=-999 and userType!=-9999 and  programItems != null and programItems.size() > 0">
+        AND r.YEAR = #{year}  and r.month=#{month}  and r.day=#{day}
+        <if test="sceneIds != null and sceneIds.size()>0">
+            and p.PARENT_SCENE_ID in
+            <foreach collection="sceneIds" item="item" open="(" close=")" separator=",">
+                #{item}
+            </foreach>
+        </if>
+        <if test="tenantId != null and tenantId != '' ">
+            and d.tenant_id = #{tenantId}
+        </if>
+        <if test="userType!=null and userType!=-999 and userType!=-9999 and  programItems != null and programItems.size() > 0">
             <if test="permissonType == 5 or permissonType == 2">
                 and ( d.DEPT_ORG_ID in
                 <foreach collection="programItems" item="item" open="(" close=")" separator=",">
@@ -252,19 +252,19 @@
     </select>
     <select id="MonitorDataEnergyReportByMonth" resultMap="MonitorDataChartReportMap">
         SELECT
-            r.`day` AS "dateLabel",
-            <if test="sceneType != null and sceneType == 1">
-                IF( p.parm_type = 5, '耗电量','取水量'  ) AS "attributeName",
-            </if>
-            <if test="sceneType == null or sceneType == 0">
+        r.`day` AS "dateLabel",
+        <if test="sceneType != null and sceneType == 1">
+            IF( p.parm_type = 5, '耗电量','取水量'  ) AS "attributeName",
+        </if>
+        <if test="sceneType == null or sceneType == 0">
             IF( p.parm_type = 5, '耗电量','用水量'  ) AS "attributeName",
         </if>
-            s.SCENE_NAME AS "deviceName",
-            p.parm_type AS "attributeType",
-            da.unit AS "unit",
+        s.SCENE_NAME AS "deviceName",
+        p.parm_type AS "attributeType",
+        da.unit AS "unit",
 
-            ifnull( ROUND( sum( r.SUM_VALUE ), 2 ), 0 ) AS "data",
-            max( r.COLLECT_DATE ) AS "date"
+        ifnull( ROUND( sum( r.SUM_VALUE ), 2 ), 0 ) AS "data",
+        max( r.COLLECT_DATE ) AS "date"
         FROM sms_device_parm p
         LEFT JOIN sms_month_report r ON p.DEVICE_ID = r.DEVICE_ID AND p.ATTRIBUTE_ID = r.ATTRIBUTE_ID
         left join sms_scene s on s.id=p.parent_scene_id
@@ -320,19 +320,19 @@
     </select>
     <select id="MonitorDataEnergyReportByYear" resultMap="MonitorDataChartReportMap">
         SELECT
-            r.`month` AS "dateLabel",
+        r.`month` AS "dateLabel",
         <if test="sceneType != null and sceneType == 1">
             IF( p.parm_type = 5, '耗电量','取水量'  ) AS "attributeName",
         </if>
         <if test="sceneType == null or sceneType == 0">
             IF( p.parm_type = 5, '耗电量','用水量'  ) AS "attributeName",
         </if>
-            s.SCENE_NAME AS "deviceName",
-            p.parm_type AS "attributeType",
-            da.unit AS "unit",
+        s.SCENE_NAME AS "deviceName",
+        p.parm_type AS "attributeType",
+        da.unit AS "unit",
 
-            ifnull( ROUND( sum( r.SUM_VALUE ), 2 ), 0 ) AS "data",
-            max( r.COLLECT_DATE ) AS "date"
+        ifnull( ROUND( sum( r.SUM_VALUE ), 2 ), 0 ) AS "data",
+        max( r.COLLECT_DATE ) AS "date"
         FROM sms_device_parm p
         LEFT JOIN sms_year_report r ON p.DEVICE_ID = r.DEVICE_ID AND p.ATTRIBUTE_ID = r.ATTRIBUTE_ID
         left join sms_scene s on s.id=p.parent_scene_id
@@ -562,7 +562,7 @@
         select
         a.*,DATE_ADD(#{beginDate},INTERVAL a.dateLabel-1 ${dateType}) as "date"
         from (
-            select
+        select
         ${dateType}(ad.ALARM_START_TIME) as  "dateLabel"
 
         <if test="dateType != null and dateType == 'month'">
@@ -575,24 +575,24 @@
             ,DATE_FORMAT(max(ad.ALARM_START_TIME),'%Y-%m-%d %H:00') as "dateStringLabel"
         </if>
 
-            ,ad.PARENT_SCENE_NAME as "deviceName"
-            ,'报警次数' as "attributeName"
-            ,count(1) as "monitorData"
-            ,count(1) as "data"
-            from sms_alarm_details ad
-            left join sms_device d on ad.DEVICE_ID=d.ID
+        ,ad.PARENT_SCENE_NAME as "deviceName"
+        ,'报警次数' as "attributeName"
+        ,count(1) as "monitorData"
+        ,count(1) as "data"
+        from sms_alarm_details ad
+        left join sms_device d on ad.DEVICE_ID=d.ID
 
-            where ad.ALARM_START_TIME &lt; #{endDate} and ad.ALARM_START_TIME >= #{beginDate} and d.ENABLE_STATE = 1  and d.`STATUS`= 1
-            <if test="sceneIds != null and sceneIds.size()>0">
-                and ad.parent_scene_id  in
-                <foreach collection="sceneIds" item="item" open="(" close=")" separator=",">
-                    #{item}
-                </foreach>
-            </if>
-            <if test="tenantId != null and tenantId != '' ">
-                and d.tenant_id = #{tenantId}
-            </if>
-            <if test="userType!=null and userType!=-999 and userType!=-9999 and  programItems != null and programItems.size() > 0">
+        where ad.ALARM_START_TIME &lt; #{endDate} and ad.ALARM_START_TIME >= #{beginDate} and d.ENABLE_STATE = 1  and d.`STATUS`= 1
+        <if test="sceneIds != null and sceneIds.size()>0">
+            and ad.parent_scene_id  in
+            <foreach collection="sceneIds" item="item" open="(" close=")" separator=",">
+                #{item}
+            </foreach>
+        </if>
+        <if test="tenantId != null and tenantId != '' ">
+            and d.tenant_id = #{tenantId}
+        </if>
+        <if test="userType!=null and userType!=-999 and userType!=-9999 and  programItems != null and programItems.size() > 0">
             <if test="permissonType == 5 or permissonType == 2">
                 and ( d.DEPT_ORG_ID in
                 <foreach collection="programItems" item="item" open="(" close=")" separator=",">
@@ -620,84 +620,69 @@
             </if>
         </if>
 
-            group by ad.PARENT_SCENE_NAME,${dateType}(ad.ALARM_START_TIME)
+        group by ad.PARENT_SCENE_NAME,${dateType}(ad.ALARM_START_TIME)
         )a
         order by deviceName,dateLabel
     </select>
     <!-- 根据场景类型查询设备-->
     <select id="getDeviceBySceneTypeName" resultType="com.huaxu.entity.DeviceEntity">
-    select
+        select
         distinct d.DEVICE_NAME as "deviceName",d.id
-    from sms_scene_type st
-    left join sms_scene s on s.SCENE_TYPE_ID =st.id
-    left join sms_device_scene ds on ds.SCENE_ID=s.ID
-    left join sms_device d on d.id=ds.DEVICE_ID
-    where st.SCENE_TYPE_NAME=#{sceneTypeName} and d.`STATUS`= 1 and  d.ENABLE_STATE = 1 and s.ENABLE_STATE = 1 and  ds.status=1
-    <if test="tenantId != null and tenantId != '' ">
-        and d.tenant_id = #{tenantId}
-    </if>
-    <if test="userType!=null and userType!=-999 and userType!=-9999 and  programItems != null and programItems.size() > 0">
-        <if test="permissonType == 5 or permissonType == 2">
-            and ( d.DEPT_ORG_ID in
-            <foreach collection="programItems" item="item" open="(" close=")" separator=",">
-                #{item.orgId}
-            </foreach>
-            or
-            d.COMPANY_ORG_ID in
-            <foreach collection="programItems" item="item" open="(" close=")" separator=",">
-                #{item.orgId}
-            </foreach>
-            )
-        </if>
-        <if test="permissonType == 4 or permissonType == 3">
-            and d.DEPT_ORG_ID in
-            <foreach collection="programItems" item="item" open="(" close=")" separator=",">
-                #{item.orgId}
-            </foreach>
+        from sms_scene_type st
+        left join sms_scene s on s.SCENE_TYPE_ID =st.id
+        left join sms_device_scene ds on ds.SCENE_ID=s.ID
+        left join sms_device d on d.id=ds.DEVICE_ID
+        where st.SCENE_TYPE_NAME=#{sceneTypeName} and d.`STATUS`= 1 and  d.ENABLE_STATE = 1 and s.ENABLE_STATE = 1 and  ds.status=1
+        <if test="tenantId != null and tenantId != '' ">
+            and d.tenant_id = #{tenantId}
         </if>
-        <if test="permissonType == 1">
-            and d.COMPANY_ORG_ID in
-            <foreach collection="programItems" item="item" open="(" close=")" separator=",">
-                #{item.orgId}
-            </foreach>
-            and (d.DEPT_ORG_ID is null or d.DEPT_ORG_ID =0)
+        <if test="userType!=null and userType!=-999 and userType!=-9999 and  programItems != null and programItems.size() > 0">
+            <if test="permissonType == 5 or permissonType == 2">
+                and ( d.DEPT_ORG_ID in
+                <foreach collection="programItems" item="item" open="(" close=")" separator=",">
+                    #{item.orgId}
+                </foreach>
+                or
+                d.COMPANY_ORG_ID in
+                <foreach collection="programItems" item="item" open="(" close=")" separator=",">
+                    #{item.orgId}
+                </foreach>
+                )
+            </if>
+            <if test="permissonType == 4 or permissonType == 3">
+                and d.DEPT_ORG_ID in
+                <foreach collection="programItems" item="item" open="(" close=")" separator=",">
+                    #{item.orgId}
+                </foreach>
+            </if>
+            <if test="permissonType == 1">
+                and d.COMPANY_ORG_ID in
+                <foreach collection="programItems" item="item" open="(" close=")" separator=",">
+                    #{item.orgId}
+                </foreach>
+                and (d.DEPT_ORG_ID is null or d.DEPT_ORG_ID =0)
+            </if>
         </if>
-    </if>
 
-</select>
+    </select>
 
     <!-- 设备报表 -->
     <select id="MonitorDataDeviceReportByDay" resultMap="MonitorDataChartReportMap">
         SELECT
-            d.DEVICE_NAME AS "deviceName",
-            p.parm_type AS "attributeType",
-            IF( p.parm_type = 13, '压力',
-                IF( p.parm_type = 14, '瞬时流量',
-                    IF( p.parm_type = 16, '流速',
-                        IF( p.parm_type = 7, 'PH',
-                            IF( p.parm_type = 15, 'COD',
-                                IF( p.parm_type = 9, '浊度',
-                                    IF( p.parm_type = 11, '余氯', '' )))))))
-            AS "attributeName",
-            da.unit AS "unit",
-            r.`HOUR` AS "dateLabel",
-            ifnull( ROUND( sum( r.AVG_VALUE ), 2 ), 0 ) AS "data",
-            max( r.COLLECT_DATE ) AS "date"
+        d.DEVICE_NAME AS "deviceName",
+        p.parm_type AS "attributeType",
+        IFNULL(p.REMARK,da.`NAME`) AS "attributeName",
+        da.unit AS "unit",
+        r.`HOUR` AS "dateLabel",
+        ifnull( ROUND( sum( r.AVG_VALUE ), 2 ), 0 ) AS "data",
+        max( r.COLLECT_DATE ) AS "date"
         FROM sms_device_parm p
         LEFT JOIN sms_day_report r ON p.DEVICE_ID = r.DEVICE_ID AND p.ATTRIBUTE_ID = r.ATTRIBUTE_ID
         left join sms_device_attribute  da ON da.id = p.ATTRIBUTE_ID
         LEFT JOIN sms_device d ON d.id = p.DEVICE_ID
-        WHERE p.`STATUS`= 1   and d.ENABLE_STATE = 1  and d.`STATUS`= 1
+
+        WHERE p.`STATUS`= 1 and p.IS_CHART = 1 and d.ENABLE_STATE = 1  and d.`STATUS`= 1
         AND r.YEAR = #{year}  and r.month=#{month}  and r.day=#{day}
-        <if test="searchType != null and searchType == 1">
-            and p.parm_type = 13
-        </if>
-        <if test="searchType != null and searchType == 2">
-            and p.parm_type in (14,16)
-        </if>
-        <if test="searchType != null and searchType == 3">
-            and p.parm_type in (7,9,11,15)
-        </if>
         <if test="deviceIds != null and deviceIds.size()>0">
             and d.id in
             <foreach collection="deviceIds" item="item" open="(" close=")" separator=",">
@@ -734,21 +719,15 @@
                 and (d.DEPT_ORG_ID is null or d.DEPT_ORG_ID =0)
             </if>
         </if>
-        GROUP BY d.DEVICE_NAME, p.parm_type,da.unit,r.HOUR
+        GROUP BY d.DEVICE_NAME, p.parm_type,p.REMARK,da.`NAME`,da.unit,r.HOUR
         order by r.`hour` asc
     </select>
+
     <select id="MonitorDataDeviceReportByMonth" resultMap="MonitorDataChartReportMap">
         SELECT
         d.DEVICE_NAME AS "deviceName",
         p.parm_type AS "attributeType",
-        IF( p.parm_type = 13, '压力',
-            IF( p.parm_type = 14, '瞬时流量',
-                IF( p.parm_type = 16, '流速',
-                    IF( p.parm_type = 7, 'PH',
-                        IF( p.parm_type = 15, 'COD',
-                            IF( p.parm_type = 9, '浊度',
-                                IF( p.parm_type = 11, '余氯', '' )))))))
-        AS "attributeName",
+        IFNULL(p.REMARK,da.`NAME`) AS "attributeName",
         da.unit AS "unit",
         r.`day` AS "dateLabel",
         ifnull( ROUND( sum( r.AVG_VALUE ), 2 ), 0 ) AS "data",
@@ -757,17 +736,8 @@
         LEFT JOIN sms_month_report r ON p.DEVICE_ID = r.DEVICE_ID AND p.ATTRIBUTE_ID = r.ATTRIBUTE_ID
         left join sms_device_attribute  da ON da.id = p.ATTRIBUTE_ID
         LEFT JOIN sms_device d ON d.id = p.DEVICE_ID
-        WHERE p.`STATUS`= 1   and d.ENABLE_STATE = 1
+        WHERE p.`STATUS`= 1 and p.IS_CHART =1  and d.ENABLE_STATE = 1
         AND r.YEAR = #{year}  and r.month=#{month}
-        <if test="searchType != null and searchType == 1">
-            and p.parm_type = 13
-        </if>
-        <if test="searchType != null and searchType == 2">
-            and p.parm_type in (14,16)
-        </if>
-        <if test="searchType != null and searchType == 3">
-            and p.parm_type in (7,9,11,15)
-        </if>
         <if test="deviceIds != null and deviceIds.size()>0">
             and d.id in
             <foreach collection="deviceIds" item="item" open="(" close=")" separator=",">
@@ -804,21 +774,14 @@
                 and (d.DEPT_ORG_ID is null or d.DEPT_ORG_ID =0)
             </if>
         </if>
-        GROUP BY d.DEVICE_NAME, p.parm_type,da.unit,r.day
+        GROUP BY d.DEVICE_NAME, p.parm_type,p.REMARK,da.`NAME`,da.unit,r.day
         order by r.day asc
     </select>
     <select id="MonitorDataDeviceReportByYear" resultMap="MonitorDataChartReportMap">
         SELECT
         d.DEVICE_NAME AS "deviceName",
         p.parm_type AS "attributeType",
-        IF( p.parm_type = 13, '压力',
-            IF( p.parm_type = 14, '瞬时流量',
-                IF( p.parm_type = 16, '流速',
-                    IF( p.parm_type = 7, 'PH',
-                        IF( p.parm_type = 15, 'COD',
-                            IF( p.parm_type = 9, '浊度',
-                                IF( p.parm_type = 11, '余氯', '' )))))))
-        AS "attributeName",
+        IFNULL(p.REMARK,da.`NAME`) AS "attributeName",
         da.unit AS "unit",
         r.month AS "dateLabel",
         ifnull( ROUND( sum( r.AVG_VALUE ), 2 ), 0 ) AS "data",
@@ -827,17 +790,8 @@
         LEFT JOIN sms_year_report r ON p.DEVICE_ID = r.DEVICE_ID AND p.ATTRIBUTE_ID = r.ATTRIBUTE_ID
         left join sms_device_attribute  da ON da.id = p.ATTRIBUTE_ID
         LEFT JOIN sms_device d ON d.id = p.DEVICE_ID
-        WHERE p.`STATUS`= 1   and d.ENABLE_STATE = 1
+        WHERE p.`STATUS`= 1 and p.IS_CHART =1  and d.ENABLE_STATE = 1
         AND r.YEAR = #{year}
-        <if test="searchType != null and searchType == 1">
-            and p.parm_type = 13
-        </if>
-        <if test="searchType != null and searchType == 2">
-            and p.parm_type in (14,16)
-        </if>
-        <if test="searchType != null and searchType == 3">
-            and p.parm_type in (7,9,11,15)
-        </if>
         <if test="deviceIds != null and deviceIds.size()>0">
             and d.id in
             <foreach collection="deviceIds" item="item" open="(" close=")" separator=",">
@@ -874,7 +828,7 @@
                 and (d.DEPT_ORG_ID is null or d.DEPT_ORG_ID =0)
             </if>
         </if>
-        GROUP BY d.DEVICE_NAME, p.parm_type,da.unit,r.month
+        GROUP BY d.DEVICE_NAME, p.parm_type,p.REMARK,da.`NAME`,da.unit,r.month
         order by r.`month` asc
     </select>
 
@@ -920,15 +874,15 @@
         LEFT JOIN sms_device_scene ds ON ds.PARENT_SCENE_ID = s.ID
         LEFT JOIN sms_device d ON d.id = ds.DEVICE_ID
         WHERE st.`STATUS` = 1 AND s.`STATUS` = 1 AND ds.`STATUS` = 1 AND d.`STATUS` = 1
-            <if test="companyOrgId != null">
-                and d.COMPANY_ORG_ID =#{companyOrgId}
-            </if>
-            <if test="sceneId != null">
-                and s.id =#{sceneId}
-            </if>
-            <if test="sceneTypeName != null and sceneTypeName != ''">
-                AND st.SCENE_TYPE_NAME = #{sceneTypeName}
-            </if>
+        <if test="companyOrgId != null">
+            and d.COMPANY_ORG_ID =#{companyOrgId}
+        </if>
+        <if test="sceneId != null">
+            and s.id =#{sceneId}
+        </if>
+        <if test="sceneTypeName != null and sceneTypeName != ''">
+            AND st.SCENE_TYPE_NAME = #{sceneTypeName}
+        </if>
         and s.TENANT_ID=#{tenantId}
         <if test="userType!=null and userType!=-999 and userType!=-9999 and  programItems != null and programItems.size() > 0">
             <if test="permissonType == 5 or permissonType == 2">
@@ -961,9 +915,9 @@
     </select>
 
     <select id="getDeviceWaterFor30Day" resultType="com.huaxu.dto.generalView.DeviceWaterSupply">
-         select
-              r.year,r.month,r.day,
-            sum(r.SUM_VALUE)/10000 as "amount"
+        select
+        r.year,r.month,r.day,
+        sum(r.SUM_VALUE)/10000 as "amount"
         from sms_scene_type st
         left join sms_scene s on s.SCENE_TYPE_ID =st.id
         left join sms_device_parm dp on s.id=dp.PARENT_SCENE_ID
@@ -1005,10 +959,10 @@
 
     <select id="getDeviceWaterDetailForNow" resultType="com.huaxu.dto.generalView.DeviceWaterDetail">
         select
-            s.SCENE_NAME as "sceneName"
-            ,dp.DEVICE_ID as "deviceId"
-            ,dp.ATTRIBUTE_ID as "attributeId"
-            ,dp.PARM_TYPE as "parmType"
+        s.SCENE_NAME as "sceneName"
+        ,dp.DEVICE_ID as "deviceId"
+        ,dp.ATTRIBUTE_ID as "attributeId"
+        ,dp.PARM_TYPE as "parmType"
         from sms_scene_type st
         left join sms_scene s on s.SCENE_TYPE_ID =st.id
         left join sms_device_parm dp on s.id=dp.PARENT_SCENE_ID
@@ -1045,11 +999,11 @@
     </select>
     <select id="getDeviceWaterDetailForDay" resultType="com.huaxu.dto.generalView.DeviceWaterDetail">
         select
-             s.SCENE_NAME as "sceneName"
-            ,dp.DEVICE_ID as "deviceId"
-            ,dp.ATTRIBUTE_ID as "attributeId"
-            ,dp.PARM_TYPE as "parmType"
-            ,r.LATEST_VALUE  as "latestValue"
+        s.SCENE_NAME as "sceneName"
+        ,dp.DEVICE_ID as "deviceId"
+        ,dp.ATTRIBUTE_ID as "attributeId"
+        ,dp.PARM_TYPE as "parmType"
+        ,r.LATEST_VALUE  as "latestValue"
         from sms_scene_type st
         left join sms_scene s on s.SCENE_TYPE_ID =st.id
         left join sms_device_parm dp on s.id=dp.PARENT_SCENE_ID
@@ -1100,14 +1054,14 @@
     </select>
     <select id="getDeviceWaterDetailForMonth" resultType="java.math.BigDecimal">
         select
-            sum(ifnull(r.SUM_VALUE,0)) as "amount"
+        sum(ifnull(r.SUM_VALUE,0)) as "amount"
         from sms_scene_type st
         left join sms_scene s on s.SCENE_TYPE_ID =st.id
         left join sms_device_parm dp on s.id=dp.PARENT_SCENE_ID
         left join sms_month_report r on r.DEVICE_ID= dp.DEVICE_ID and r.ATTRIBUTE_ID = dp.ATTRIBUTE_ID and r.year = #{year} and r.month= #{month}
         where  dp.`STATUS`=1
         <if test="sceneTypeName!=null">
-           and st.SCENE_TYPE_NAME = #{sceneTypeName}
+            and st.SCENE_TYPE_NAME = #{sceneTypeName}
         </if>
         <if test="sceneTypeName == null">
             and (st.SCENE_TYPE_NAME = '水源' or st.SCENE_TYPE_NAME = '水厂' or st.SCENE_TYPE_NAME = '泵站')
@@ -1151,7 +1105,7 @@
     </select>
     <select id="getDeviceWaterDetailForYear" resultType="java.math.BigDecimal">
         select
-            sum(ifnull(r.SUM_VALUE,0)) as "amount"
+        sum(ifnull(r.SUM_VALUE,0)) as "amount"
         from sms_scene_type st
         left join sms_scene s on s.SCENE_TYPE_ID =st.id
         left join sms_device_parm dp on s.id=dp.PARENT_SCENE_ID
@@ -1204,7 +1158,7 @@
 
     <select id="getAlarmInfoForScene" resultType="com.huaxu.dto.generalView.SceneAlarm">
         select
-			s.SCENE_NAME as "sceneName",count(ad.id) as "alarmNumber"
+        s.SCENE_NAME as "sceneName",count(ad.id) as "alarmNumber"
         from sms_scene_type st
         left join sms_scene s on s.SCENE_TYPE_ID =st.id and s.PARENT_SCENE_ID = 0
         left join sms_alarm_details ad on ad.STATE = 1 and ad.PARENT_SCENE_ID=s.id
@@ -1244,24 +1198,24 @@
 
     <select id="getQualificationForScene" resultType="com.huaxu.dto.generalView.SceneNormalRate">
         select
-            sum(if(alarmNumber > 0 ,1,0)) as  "abnormal",
-            sum(if(alarmNumber > 0 ,0,1)) as  "normal",
-            ROUND(sum(if(alarmNumber > 0 ,0,1))/if(count(1) != 0, count(1),1) * 100,2) as "normalRate"
+        sum(if(alarmNumber > 0 ,1,0)) as  "abnormal",
+        sum(if(alarmNumber > 0 ,0,1)) as  "normal",
+        ROUND(sum(if(alarmNumber > 0 ,0,1))/if(count(1) != 0, count(1),1) * 100,2) as "normalRate"
         from (
-            select
-                s.SCENE_NAME as "sceneName"
-                <if test="parmType != null and  parmType == -1">
-                    ,sum( if(dp.PARM_TYPE IN ( 15, 8, 10, 11, 18, 19 ) and ad.id is not null,1,0) ) AS "alarmNumber"
-                </if>
-                <if test="parmType != null and  parmType != -1">
-                    ,sum( if(dp.PARM_TYPE = #{parmType} and ad.id is not null,1,0) ) AS "alarmNumber"
-                </if>
+        select
+        s.SCENE_NAME as "sceneName"
+        <if test="parmType != null and  parmType == -1">
+            ,sum( if(dp.PARM_TYPE IN ( 15, 8, 10, 11, 18, 19 ) and ad.id is not null,1,0) ) AS "alarmNumber"
+        </if>
+        <if test="parmType != null and  parmType != -1">
+            ,sum( if(dp.PARM_TYPE = #{parmType} and ad.id is not null,1,0) ) AS "alarmNumber"
+        </if>
         from sms_scene_type st
-            left join sms_scene s on s.SCENE_TYPE_ID =st.id and PARENT_SCENE_ID ='0'
-            left join sms_device_parm dp on dp.PARENT_SCENE_ID =s.ID
-            left join sms_alarm_details ad on ad.STATE = 1 and ad.PARENT_SCENE_ID=dp.PARENT_SCENE_ID and ad.DEVICE_ID =dp.DEVICE_ID and ad.ATTRIBUTE_ID =dp.ATTRIBUTE_ID
+        left join sms_scene s on s.SCENE_TYPE_ID =st.id and PARENT_SCENE_ID ='0'
+        left join sms_device_parm dp on dp.PARENT_SCENE_ID =s.ID
+        left join sms_alarm_details ad on ad.STATE = 1 and ad.PARENT_SCENE_ID=dp.PARENT_SCENE_ID and ad.DEVICE_ID =dp.DEVICE_ID and ad.ATTRIBUTE_ID =dp.ATTRIBUTE_ID
 
-            where s.`STATUS`=1  and s.ENABLE_STATE = 1 and st.SCENE_TYPE_NAME = '水厂' and s.TENANT_ID =#{tenantId}  and dp.`STATUS` = 1
+        where s.`STATUS`=1  and s.ENABLE_STATE = 1 and st.SCENE_TYPE_NAME = '水厂' and s.TENANT_ID =#{tenantId}  and dp.`STATUS` = 1
 
         <if test="userType!=null and userType!=-999 and userType!=-9999 and  programItems != null and programItems.size() > 0">
             <if test="permissonType == 5 or permissonType == 2">
@@ -1290,27 +1244,27 @@
                 and (s.DEPT_ORG_ID is null or s.DEPT_ORG_ID =0)
             </if>
         </if>
-            group by s.SCENE_NAME
+        group by s.SCENE_NAME
         ) a
 
     </select>
 
     <select id="getWaterSupplyData" resultType="com.huaxu.dto.generalView.WaterSupplyData">
-         select
-             r.year
-            ,r.month
-            ,r.day
-            ,dp.PARM_TYPE as "parmType"
-            ,sum(r.SUM_VALUE) as "amount"
-            ,da.UNIT as "unit"
+        select
+        r.year
+        ,r.month
+        ,r.day
+        ,dp.PARM_TYPE as "parmType"
+        ,sum(r.SUM_VALUE) as "amount"
+        ,da.UNIT as "unit"
         from sms_scene_type st
         left join sms_scene s on s.SCENE_TYPE_ID =st.id
         left join sms_device_parm dp on s.id=dp.PARENT_SCENE_ID
         left join sms_device_attribute da on dp.ATTRIBUTE_ID =da.ID
         left join sms_month_report r on r.DEVICE_ID =dp.DEVICE_ID and r.ATTRIBUTE_ID = dp.ATTRIBUTE_ID
         where  dp.`STATUS`=1 and st.SCENE_TYPE_NAME = #{sceneTypeName} and s.ENABLE_STATE = 1
-            and r.COLLECT_DATE >= DATE_SUB(CURDATE(),INTERVAL 7 day)
-            and dp.PARM_TYPE in (3,5,6)   and dp.TENANT_ID=#{tenantId}
+        and r.COLLECT_DATE >= DATE_SUB(CURDATE(),INTERVAL 7 day)
+        and dp.PARM_TYPE in (3,5,6)   and dp.TENANT_ID=#{tenantId}
         <if test="userType!=null and userType!=-999 and userType!=-9999 and  programItems != null and programItems.size() > 0">
             <if test="permissonType == 5 or permissonType == 2">
                 and ( s.DEPT_ORG_ID in
@@ -1449,7 +1403,7 @@
         left join sms_month_report r on r.DEVICE_ID =dp.DEVICE_ID and r.ATTRIBUTE_ID = dp.ATTRIBUTE_ID
         where  dp.`STATUS`=1
         <if test="sceneTypeName != null ">
-           and st.SCENE_TYPE_NAME = #{sceneTypeName}
+            and st.SCENE_TYPE_NAME = #{sceneTypeName}
         </if>
         <if test="sceneTypeName == null ">
             and st.SCENE_TYPE_NAME in ('水源','水厂','泵站')
@@ -1491,36 +1445,36 @@
         select  sum(ifnull(a.WATER_USAGE,0)) as "amount"
         from sms_month_sellwater a
         <where>
-        <if test="companyOrgId != null">
-            and a.COMPANY_ORG_ID = #{companyOrgId}
-        </if>
-        and a.TENANT_ID=#{tenantId}
-        <if test="searchType ==1">
-          and  date_format(a.COLLECT_DATE, '%Y-%m') = DATE_FORMAT(now(), '%Y-%m')
-        </if>
-        <if test="searchType ==2">
-         and   date_format(a.COLLECT_DATE, '%Y') = DATE_FORMAT(now(), '%Y')
-        </if>
-        <if test="userType!=null and userType!=-999 and userType!=-9999 and  programItems != null and programItems.size() > 0">
-            <if test="permissonType == 5 or permissonType == 2">
-               and a.COMPANY_ORG_ID in
-                <foreach collection="programItems" item="item" open="(" close=")" separator=",">
-                    #{item.orgId}
-                </foreach>
+            <if test="companyOrgId != null">
+                and a.COMPANY_ORG_ID = #{companyOrgId}
             </if>
-            <if test="permissonType == 4 or permissonType == 3">
-                and a.COMPANY_ORG_ID in
-                <foreach collection="programItems" item="item" open="(" close=")" separator=",">
-                    #{item.orgId}
-                </foreach>
+            and a.TENANT_ID=#{tenantId}
+            <if test="searchType ==1">
+                and  date_format(a.COLLECT_DATE, '%Y-%m') = DATE_FORMAT(now(), '%Y-%m')
             </if>
-            <if test="permissonType == 1">
-                and a.COMPANY_ORG_ID in
-                <foreach collection="programItems" item="item" open="(" close=")" separator=",">
-                    #{item.orgId}
-                </foreach>
+            <if test="searchType ==2">
+                and   date_format(a.COLLECT_DATE, '%Y') = DATE_FORMAT(now(), '%Y')
+            </if>
+            <if test="userType!=null and userType!=-999 and userType!=-9999 and  programItems != null and programItems.size() > 0">
+                <if test="permissonType == 5 or permissonType == 2">
+                    and a.COMPANY_ORG_ID in
+                    <foreach collection="programItems" item="item" open="(" close=")" separator=",">
+                        #{item.orgId}
+                    </foreach>
+                </if>
+                <if test="permissonType == 4 or permissonType == 3">
+                    and a.COMPANY_ORG_ID in
+                    <foreach collection="programItems" item="item" open="(" close=")" separator=",">
+                        #{item.orgId}
+                    </foreach>
+                </if>
+                <if test="permissonType == 1">
+                    and a.COMPANY_ORG_ID in
+                    <foreach collection="programItems" item="item" open="(" close=")" separator=",">
+                        #{item.orgId}
+                    </foreach>
+                </if>
             </if>
-        </if>
         </where>
     </select>
     <select id="monthMonitorData" resultMap="MonitorDataChartReportMap">
@@ -1580,14 +1534,7 @@
         SELECT
         d.DEVICE_NAME AS "deviceName",
         p.parm_type AS "attributeType",
-        IF( p.parm_type = 13, '压力',
-        IF( p.parm_type = 14, '瞬时流量',
-        IF( p.parm_type = 16, '流速',
-        IF( p.parm_type = 7, 'PH',
-        IF( p.parm_type = 15, 'COD',
-        IF( p.parm_type = 9, '浊度',
-        IF( p.parm_type = 11, '余氯', '' )))))))
-        AS "attributeName",
+        IFNULL(p.REMARK,da.`NAME`) AS "attributeName",
         da.unit AS "unit",
         r.`day` AS "dateLabel",
         ifnull( ROUND( sum( r.AVG_VALUE ), 2 ), 0 ) AS "data",
@@ -1596,19 +1543,10 @@
         LEFT JOIN sms_month_report r ON p.DEVICE_ID = r.DEVICE_ID AND p.ATTRIBUTE_ID = r.ATTRIBUTE_ID
         left join sms_device_attribute  da ON da.id = p.ATTRIBUTE_ID
         LEFT JOIN sms_device d ON d.id = p.DEVICE_ID
-        WHERE p.`STATUS`= 1   and d.ENABLE_STATE = 1
+        WHERE p.`STATUS`= 1 and p.IS_CHART = 1  and d.ENABLE_STATE = 1
         <if test="startTime != null and endTime != null ">
             and r.COLLECT_DATE BETWEEN #{startTime} AND #{endTime}
         </if>
-        <if test="searchType != null and searchType == 1">
-            and p.parm_type = 13
-        </if>
-        <if test="searchType != null and searchType == 2">
-            and p.parm_type in (14,16)
-        </if>
-        <if test="searchType != null and searchType == 3">
-            and p.parm_type in (7,9,11,15)
-        </if>
         <if test="deviceIds != null and deviceIds.size()>0">
             and d.id in
             <foreach collection="deviceIds" item="item" open="(" close=")" separator=",">
@@ -1645,7 +1583,7 @@
                 and (d.DEPT_ORG_ID is null or d.DEPT_ORG_ID =0)
             </if>
         </if>
-        GROUP BY d.DEVICE_NAME, p.parm_type,da.unit,r.day
+        GROUP BY d.DEVICE_NAME, p.parm_type,p.REMARK,da.`NAME`,da.unit,r.day
         order by r.day asc
     </select>
     <select id="MonitorDataEnergyReport" resultMap="MonitorDataChartReportMap">

+ 3 - 1
sms_water/src/main/resources/mapper/MonthReportMapper.xml

@@ -145,7 +145,8 @@
         a.DEVICE_NAME as "deviceName",
         b.parent_scene_id as "parentSceneId",
         c.SCENE_NAME as "parentSceneName",
-        a.COLLECT_DATE as "collectDate"
+        a.COLLECT_DATE as "collectDate",
+        t.SCENE_TYPE_NAME as "sceneTypeName"
         FROM sms_month_report a
         inner join sms_device_parm b on a.DEVICE_ID = b.DEVICE_ID and a.ATTRIBUTE_ID=b.ATTRIBUTE_ID
         <if test="monthReport.typeIds != null">
@@ -156,6 +157,7 @@
         </if>
         and b.`STATUS`=1
         inner join sms_scene c on b.PARENT_SCENE_ID=c.id
+        inner join sms_scene_type t on c.SCENE_TYPE_ID  = t.id
         <where>
             b.IS_REPORT=1
             <if test="monthReport.tenantId != null  and monthReport.tenantId != ''">and a.tenant_id =

+ 3 - 1
sms_water/src/main/resources/mapper/YearReportMapper.xml

@@ -144,7 +144,8 @@
         b.parent_scene_id as "parentSceneId",
         a.DEVICE_NAME as "deviceName",
         c.SCENE_NAME as "parentSceneName",
-        a.COLLECT_DATE as "collectDate"
+        a.COLLECT_DATE as "collectDate",
+        t.SCENE_TYPE_NAME as "sceneTypeName"
         FROM sms_year_report a
         inner join sms_device_parm b on a.DEVICE_ID = b.DEVICE_ID and a.ATTRIBUTE_ID=b.ATTRIBUTE_ID
         <if test="yearReport.typeIds != null">
@@ -155,6 +156,7 @@
         </if>
         and b.`STATUS`=1
         inner join sms_scene c on b.PARENT_SCENE_ID=c.id
+        inner join sms_scene_type t on c.SCENE_TYPE_ID  = t.id
         <where>
             b.IS_REPORT=1
             <if test="yearReport.tenantId != null  and yearReport.tenantId != ''">and a.tenant_id =