12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394959697989910010110210310410510610710810911011111211311411511611711811912012112212312412512612712812913013113213313413513613713813914014114214314414514614714814915015115215315415515615715815916016116216316416516616716816917017117217317417517617717817918018118218318418518618718818919019119219319419519619719819920020120220320420520620720820921021121221321421521621721821922022122222322422522622722822923023123223323423523623723823924024124224324424524624724824925025125225325425525625725825926026126226326426526626726826927027127227327427527627727827928028128228328428528628728828929029129229329429529629729829930030130230330430530630730830931031131231331431531631731831932032132232332432532632732832933033133233333433533633733833934034134234334434534634734834935035135235335435535635735835936036136236336436536636736836937037137237337437537637737837938038138238338438538638738838939039139239339439539639739839940040140240340440540640740840941041141241341441541641741841942042142242342442542642742842943043143243343443543643743843944044144244344444544644744844945045145245345445545645745845946046146246346446546646746846947047147247347447547647747847948048148248348448548648748848949049149249349449549649749849950050150250350450550650750850951051151251351451551651751851952052152252352452552652752852953053153253353453553653753853954054154254354454554654754854955055155255355455555655755855956056156256356456556656756856957057157257357457557657757857958058158258358458558658758858959059159259359459559659759859960060160260360460560660760860961061161261361461561661761861962062162262362462562662762862963063163263363463563663763863964064164264364464564664764864965065165265365465565665765865966066166266366466566666766866967067167267367467567667767867968068168268368468568668768868969069169269369469569669769869970070170270370470570670770870971071171271371471571671771871972072172272372472572672772872973073173273373473573673773873974074174274374474574674774874975075175275375475575675775875976076176276376476576676776876977077177277377477577677777877978078178278378478578678778878979079179279379479579679779879980080180280380480580680780880981081181281381481581681781881982082182282382482582682782882983083183283383483583683783883984084184284384484584684784884985085185285385485585685785885986086186286386486586686786886987087187287387487587687787887988088188288388488588688788888989089189289389489589689789889990090190290390490590690790890991091191291391491591691791891992092192292392492592692792892993093193293393493593693793893994094194294394494594694794894995095195295395495595695795895996096196296396496596696796896997097197297397497597697797897998098198298398498598698798898999099199299399499599699799899910001001100210031004100510061007100810091010101110121013101410151016101710181019102010211022102310241025102610271028102910301031103210331034103510361037103810391040104110421043104410451046104710481049105010511052105310541055105610571058105910601061106210631064106510661067106810691070107110721073107410751076107710781079108010811082108310841085108610871088108910901091109210931094109510961097109810991100110111021103110411051106110711081109111011111112111311141115111611171118111911201121112211231124112511261127112811291130113111321133113411351136113711381139114011411142114311441145114611471148114911501151115211531154115511561157115811591160116111621163116411651166116711681169117011711172117311741175117611771178117911801181118211831184118511861187118811891190119111921193119411951196119711981199120012011202120312041205120612071208120912101211121212131214121512161217121812191220122112221223122412251226122712281229123012311232123312341235123612371238123912401241124212431244124512461247124812491250125112521253125412551256125712581259 |
- <?xml version="1.0" encoding="UTF-8"?>
- <!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
- <mapper namespace="com.huaxu.dao.MonitorDataReportMapper">
- <resultMap id="MonitorDataChartReportMap" type="com.huaxu.dto.MonitorDataChartReportDeviceDto">
- <result property="devoceCode" column="devoceCode" jdbcType="INTEGER"/>
- <result property="deviceName" column="deviceName" jdbcType="INTEGER"/>
- <collection property="attributeData" resultMap="AttributeData"/>
- </resultMap>
- <resultMap id="AttributeData" type="com.huaxu.dto.MonitorDataChartReportAttributeDto">
- <result property="attributeType" column="attributeType"/>
- <result property="attributeName" column="attributeName"/>
- <result property="unit" column="unit"/>
- <collection property="monitorDataChartReportValue" resultMap="MonitorDataChartReportValue"/>
- </resultMap>
- <resultMap id="MonitorDataChartReportValue" type="com.huaxu.dto.MonitorDataChartReportValueDto">
- <result property="dateLabel" column="dateLabel" />
- <result property="data" column="data"/>
- <result property="date" column="date"/>
- </resultMap>
- <sql id="MonitorDataReportJoins">
- left join sms_device_parm dp on dp.DEVICE_ID=r.DEVICE_ID and dp.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
- </sql>
- <!-- 图表 -->
- <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",
- 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}
- <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>
- </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>
- group by r.hour ,s.SCENE_NAME,r.DEVICE_NAME,r.DEVICE_CODE,r.ATTRIBUTE_NAME,da.unit
- ORDER BY r.`HOUR` ASC
- </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",
- 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
- 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}
- <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>
- </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>
- group by r.day ,s.SCENE_NAME,r.DEVICE_NAME,r.DEVICE_CODE,r.ATTRIBUTE_NAME,da.unit
- ORDER BY r.`day` ASC
- </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",
- 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
- 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}
- <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>
- </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>
- group by r.month ,s.SCENE_NAME,r.DEVICE_NAME,r.DEVICE_CODE,r.ATTRIBUTE_NAME,da.unit
- ORDER BY r.`month` ASC
- </select>
- <!-- 对比————用水量、耗电量 -->
- <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",
- 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>
- 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">
- <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>
- GROUP BY s.SCENE_NAME,p.parm_type,da.unit,r.HOUR
- order by r.`hour` asc
- </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">
- IF( p.parm_type = 5, '耗电量','用水量' ) AS "attributeName",
- </if>
- 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"
- 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
- 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>
- and d.ENABLE_STATE = 1 and d.`STATUS`= 1
- AND r.YEAR = #{year} and r.month=#{month}
- <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=",">
- #{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>
- GROUP BY s.SCENE_NAME,p.parm_type,da.unit,r.day
- order by r.`day` asc
- </select>
- <select id="MonitorDataEnergyReportByYear" resultMap="MonitorDataChartReportMap">
- SELECT
- 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",
- 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
- 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>
- and d.ENABLE_STATE = 1 and d.`STATUS`= 1
- AND r.YEAR = #{year}
- <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=",">
- #{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>
- GROUP BY s.SCENE_NAME,p.parm_type,da.unit,r.month
- order by r.`month` asc
- </select>
- <!-- 对比————PH、余氯、浊度 -->
- <select id="MonitorDataQualityReportByDay" resultMap="MonitorDataChartReportMap">
- SELECT
- r.`HOUR` AS "dateLabel",
- if(p.parm_type=7,'PH',if(p.parm_type=11,'余氯','浊度')) 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"
- 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 and p.parm_type in (7,11,9) 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">
- <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>
- GROUP BY s.SCENE_NAME,p.parm_type,da.unit,r.HOUR
- order by r.`hour` asc
- </select>
- <select id="MonitorDataQualityReportByMonth" resultMap="MonitorDataChartReportMap">
- SELECT
- r.`day` AS "dateLabel",
- if(p.parm_type=7,'PH',if(p.parm_type=11,'余氯','浊度')) 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"
- 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
- 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 and p.parm_type in (7,11,9) and d.ENABLE_STATE = 1 and d.`STATUS`= 1
- AND r.YEAR = #{year} and r.month=#{month}
- <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=",">
- #{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>
- GROUP BY s.SCENE_NAME,p.parm_type,da.unit,r.day
- order by r.`day` asc
- </select>
- <select id="MonitorDataQualityReportByYear" resultMap="MonitorDataChartReportMap">
- SELECT
- r.`month` AS "dateLabel",
- if(p.parm_type=7,'PH',if(p.parm_type=11,'余氯','浊度')) 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"
- 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
- 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 and p.parm_type in (7,11,9)
- AND r.YEAR = #{year} and d.ENABLE_STATE = 1 and d.`STATUS`= 1
- <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=",">
- #{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>
- GROUP BY s.SCENE_NAME,p.parm_type,da.unit,r.month
- order by r.`month` asc
- </select>
- <!-- 对比————报警 -->
- <select id="DeviceAlarmReport" resultMap="MonitorDataChartReportMap">
- select
- a.*,DATE_ADD(#{beginDate},INTERVAL a.dateLabel-1 ${dateType}) as "date"
- from (
- select
- ${dateType}(ad.ALARM_START_TIME) as "dateLabel"
- <if test="dateType != null and dateType == 'month'">
- ,DATE_FORMAT(max(ad.ALARM_START_TIME),'%Y-%m') as "dateStringLabel"
- </if>
- <if test="dateType != null and dateType == 'day'">
- ,DATE_FORMAT(max(ad.ALARM_START_TIME),'%Y-%m-%d') as "dateStringLabel"
- </if>
- <if test="dateType != null and dateType == 'hour'">
- ,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
- where ad.ALARM_START_TIME < #{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=",">
- #{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>
- 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
- 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 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>
- </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>
- </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"
- 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
- 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=",">
- #{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=",">
- #{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>
- GROUP BY d.DEVICE_NAME, p.parm_type,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",
- da.unit AS "unit",
- r.`day` 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_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
- 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=",">
- #{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=",">
- #{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>
- GROUP BY d.DEVICE_NAME, p.parm_type,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",
- da.unit AS "unit",
- r.month 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_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
- 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=",">
- #{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=",">
- #{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>
- GROUP BY d.DEVICE_NAME, p.parm_type,da.unit,r.month
- order by r.`month` asc
- </select>
- <!-- 概览页 -->
- <select id="selectDeviceCode" resultType="java.lang.String">
- select DEVICE_CODE from sms_device d
- where STATUS =1 and ENABLE_STATE =1 and 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 ( 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>
- </select>
- <select id="getDeviceWaterFor30Day" resultType="com.huaxu.dto.generalView.DeviceWaterSupply">
- select
- r.year,r.month,r.day,
- sum(r.SUM_VALUE) 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.SCENE_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 = '水厂'
- and dp.PARM_TYPE = 3 and dp.TENANT_ID=#{tenantId}
- and r.COLLECT_DATE >= DATE_SUB(CURDATE(),INTERVAL 30 day)
- <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
- <foreach collection="programItems" item="item" open="(" close=")" separator=",">
- #{item.orgId}
- </foreach>
- or
- s.COMPANY_ORG_ID in
- <foreach collection="programItems" item="item" open="(" close=")" separator=",">
- #{item.orgId}
- </foreach>
- )
- </if>
- <if test="permissonType == 4 or permissonType == 3">
- and s.DEPT_ORG_ID in
- <foreach collection="programItems" item="item" open="(" close=")" separator=",">
- #{item.orgId}
- </foreach>
- </if>
- <if test="permissonType == 1">
- and s.COMPANY_ORG_ID in
- <foreach collection="programItems" item="item" open="(" close=")" separator=",">
- #{item.orgId}
- </foreach>
- and (s.DEPT_ORG_ID is null or s.DEPT_ORG_ID =0)
- </if>
- </if>
- group by r.year,r.month,r.day
- order by r.year desc,r.month desc,r.day desc
- </select>
- <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"
- 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.SCENE_ID
- where dp.`STATUS`=1 and st.SCENE_TYPE_NAME = #{sceneTypeName}
- and dp.PARM_TYPE =#{parmType} 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
- <foreach collection="programItems" item="item" open="(" close=")" separator=",">
- #{item.orgId}
- </foreach>
- or
- s.COMPANY_ORG_ID in
- <foreach collection="programItems" item="item" open="(" close=")" separator=",">
- #{item.orgId}
- </foreach>
- )
- </if>
- <if test="permissonType == 4 or permissonType == 3">
- and s.DEPT_ORG_ID in
- <foreach collection="programItems" item="item" open="(" close=")" separator=",">
- #{item.orgId}
- </foreach>
- </if>
- <if test="permissonType == 1">
- and s.COMPANY_ORG_ID in
- <foreach collection="programItems" item="item" open="(" close=")" separator=",">
- #{item.orgId}
- </foreach>
- and (s.DEPT_ORG_ID is null or s.DEPT_ORG_ID =0)
- </if>
- </if>
- </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"
- ,ifnull(r.LATEST_VALUE,0) 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
- 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} and r.day = #{day}
- where dp.`STATUS`=1 and st.SCENE_TYPE_NAME = #{sceneTypeName}
- and dp.PARM_TYPE =#{parmType} 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
- <foreach collection="programItems" item="item" open="(" close=")" separator=",">
- #{item.orgId}
- </foreach>
- or
- s.COMPANY_ORG_ID in
- <foreach collection="programItems" item="item" open="(" close=")" separator=",">
- #{item.orgId}
- </foreach>
- )
- </if>
- <if test="permissonType == 4 or permissonType == 3">
- and s.DEPT_ORG_ID in
- <foreach collection="programItems" item="item" open="(" close=")" separator=",">
- #{item.orgId}
- </foreach>
- </if>
- <if test="permissonType == 1">
- and s.COMPANY_ORG_ID in
- <foreach collection="programItems" item="item" open="(" close=")" separator=",">
- #{item.orgId}
- </foreach>
- and (s.DEPT_ORG_ID is null or s.DEPT_ORG_ID =0)
- </if>
- </if>
- </select>
- <select id="getDeviceWaterDetailForMonth" resultType="java.math.BigDecimal">
- select
- 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.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 and st.SCENE_TYPE_NAME = #{sceneTypeName}
- and dp.PARM_TYPE =#{parmType} 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
- <foreach collection="programItems" item="item" open="(" close=")" separator=",">
- #{item.orgId}
- </foreach>
- or
- s.COMPANY_ORG_ID in
- <foreach collection="programItems" item="item" open="(" close=")" separator=",">
- #{item.orgId}
- </foreach>
- )
- </if>
- <if test="permissonType == 4 or permissonType == 3">
- and s.DEPT_ORG_ID in
- <foreach collection="programItems" item="item" open="(" close=")" separator=",">
- #{item.orgId}
- </foreach>
- </if>
- <if test="permissonType == 1">
- and s.COMPANY_ORG_ID in
- <foreach collection="programItems" item="item" open="(" close=")" separator=",">
- #{item.orgId}
- </foreach>
- and (s.DEPT_ORG_ID is null or s.DEPT_ORG_ID =0)
- </if>
- </if>
- </select>
- <select id="getDeviceWaterDetailForYear" resultType="java.math.BigDecimal">
- select
- 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.SCENE_ID
- left join sms_year_report r on r.DEVICE_ID= dp.DEVICE_ID and r.ATTRIBUTE_ID = dp.ATTRIBUTE_ID and r.year = #{year}
- where dp.`STATUS`=1 and st.SCENE_TYPE_NAME = #{sceneTypeName}
- and dp.PARM_TYPE =#{parmType} 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
- <foreach collection="programItems" item="item" open="(" close=")" separator=",">
- #{item.orgId}
- </foreach>
- or
- s.COMPANY_ORG_ID in
- <foreach collection="programItems" item="item" open="(" close=")" separator=",">
- #{item.orgId}
- </foreach>
- )
- </if>
- <if test="permissonType == 4 or permissonType == 3">
- and s.DEPT_ORG_ID in
- <foreach collection="programItems" item="item" open="(" close=")" separator=",">
- #{item.orgId}
- </foreach>
- </if>
- <if test="permissonType == 1">
- and s.COMPANY_ORG_ID in
- <foreach collection="programItems" item="item" open="(" close=")" separator=",">
- #{item.orgId}
- </foreach>
- and (s.DEPT_ORG_ID is null or s.DEPT_ORG_ID =0)
- </if>
- </if>
- </select>
- <select id="getAlarmInfoForScene" resultType="com.huaxu.dto.generalView.SceneAlarm">
- select
- 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
- where s.`STATUS` = 1 and (st.SCENE_TYPE_NAME = '水厂' or st.SCENE_TYPE_NAME ='水源') 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">
- and ( s.DEPT_ORG_ID in
- <foreach collection="programItems" item="item" open="(" close=")" separator=",">
- #{item.orgId}
- </foreach>
- or
- s.COMPANY_ORG_ID in
- <foreach collection="programItems" item="item" open="(" close=")" separator=",">
- #{item.orgId}
- </foreach>
- )
- </if>
- <if test="permissonType == 4 or permissonType == 3">
- and s.DEPT_ORG_ID in
- <foreach collection="programItems" item="item" open="(" close=")" separator=",">
- #{item.orgId}
- </foreach>
- </if>
- <if test="permissonType == 1">
- and s.COMPANY_ORG_ID in
- <foreach collection="programItems" item="item" open="(" close=")" separator=",">
- #{item.orgId}
- </foreach>
- and (s.DEPT_ORG_ID is null or s.DEPT_ORG_ID =0)
- </if>
- </if>
- group by s.SCENE_NAME
- having count(ad.id) >0
- </select>
- <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"
- from (
- select
- 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 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.SCENE_ID=dp.SCENE_ID and ad.DEVICE_ID =dp.DEVICE_ID and ad.ATTRIBUTE_ID =dp.ATTRIBUTE_ID
- where s.`STATUS`=1 and st.SCENE_TYPE_NAME = '水厂' and s.TENANT_ID =#{tenantId}
- <if test="parmType != null and parmType == -1">
- and dp.PARM_TYPE in (15,8,10,11,18,19)
- </if>
- <if test="parmType != null and parmType != -1">
- and dp.PARM_TYPE = #{parmType}
- </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 ( s.DEPT_ORG_ID in
- <foreach collection="programItems" item="item" open="(" close=")" separator=",">
- #{item.orgId}
- </foreach>
- or
- s.COMPANY_ORG_ID in
- <foreach collection="programItems" item="item" open="(" close=")" separator=",">
- #{item.orgId}
- </foreach>
- )
- </if>
- <if test="permissonType == 4 or permissonType == 3">
- and s.DEPT_ORG_ID in
- <foreach collection="programItems" item="item" open="(" close=")" separator=",">
- #{item.orgId}
- </foreach>
- </if>
- <if test="permissonType == 1">
- and s.COMPANY_ORG_ID in
- <foreach collection="programItems" item="item" open="(" close=")" separator=",">
- #{item.orgId}
- </foreach>
- and (s.DEPT_ORG_ID is null or s.DEPT_ORG_ID =0)
- </if>
- </if>
- 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"
- 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.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 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
- <foreach collection="programItems" item="item" open="(" close=")" separator=",">
- #{item.orgId}
- </foreach>
- or
- s.COMPANY_ORG_ID in
- <foreach collection="programItems" item="item" open="(" close=")" separator=",">
- #{item.orgId}
- </foreach>
- )
- </if>
- <if test="permissonType == 4 or permissonType == 3">
- and s.DEPT_ORG_ID in
- <foreach collection="programItems" item="item" open="(" close=")" separator=",">
- #{item.orgId}
- </foreach>
- </if>
- <if test="permissonType == 1">
- and s.COMPANY_ORG_ID in
- <foreach collection="programItems" item="item" open="(" close=")" separator=",">
- #{item.orgId}
- </foreach>
- and (s.DEPT_ORG_ID is null or s.DEPT_ORG_ID =0)
- </if>
- </if>
- group by r.year,r.month,r.day,dp.PARM_TYPE,da.UNIT
- </select>
- </mapper>
|