forked from luyan/epmet-cloud-lingshan
				
			
			You can not select more than 25 topics
			Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
		
		
		
		
		
			
		
			
				
					
					
						
							351 lines
						
					
					
						
							12 KiB
						
					
					
				
			
		
		
		
			
			
			
				
					
				
				
					
				
			
		
		
	
	
							351 lines
						
					
					
						
							12 KiB
						
					
					
				
								<?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.epmet.dao.issue.StatsIssueDao">
							 | 
						|
								    <select id="selectAgencyIssueTotal" resultType="com.epmet.dto.issue.IssueAgencyDTO">
							 | 
						|
								        SELECT ORG_ID AS "agencyId",
							 | 
						|
								               ORG_ID_PATH AS "pIds",
							 | 
						|
								               ISSUE_STATUS AS "status",
							 | 
						|
								               COUNT(ID) AS "count"
							 | 
						|
								        FROM
							 | 
						|
								            issue
							 | 
						|
								        WHERE
							 | 
						|
								            DEL_FLAG = '0'
							 | 
						|
								        AND CUSTOMER_ID = #{customerId}
							 | 
						|
								        AND DATE(UPDATED_TIME) <![CDATA[ <= ]]> #{date}
							 | 
						|
								        <if test="gridList != null and gridList.size() > 0">
							 | 
						|
								        <foreach collection="gridList" item="gridId" index="index">
							 | 
						|
								            AND GRID_ID != #{gridId}
							 | 
						|
								        </foreach>
							 | 
						|
								        </if>
							 | 
						|
								        GROUP BY
							 | 
						|
								            ORG_ID, ISSUE_STATUS
							 | 
						|
								    </select>
							 | 
						|
								    <select id="selectAgencyIssueInc" resultType="com.epmet.dto.issue.IssueAgencyDTO">
							 | 
						|
								        SELECT
							 | 
						|
								            *
							 | 
						|
								        FROM
							 | 
						|
								            (
							 | 
						|
								                SELECT
							 | 
						|
								                    i.ORG_ID AS "agencyId",
							 | 
						|
								                    i.ORG_ID_PATH AS "pIds",
							 | 
						|
								                    ip.ISSUE_STATUS AS "status",
							 | 
						|
								                    COUNT( ip.ID ) AS "count"
							 | 
						|
								                FROM
							 | 
						|
								                    issue i
							 | 
						|
								                        INNER JOIN issue_process ip ON i.ID = ip.ISSUE_ID
							 | 
						|
								                        AND ip.DEL_FLAG = '0'
							 | 
						|
								                WHERE
							 | 
						|
								                    i.DEL_FLAG = '0'
							 | 
						|
								                  AND i.CUSTOMER_ID = #{customerId}
							 | 
						|
								                  AND DATE(ip.CREATED_TIME) = #{date}
							 | 
						|
								        <if test="gridList != null and gridList.size() > 0">
							 | 
						|
								        <foreach collection="gridList" item="gridId" index="index">
							 | 
						|
								            AND i.GRID_ID != #{gridId}
							 | 
						|
								        </foreach>
							 | 
						|
								        </if>
							 | 
						|
								                GROUP BY
							 | 
						|
								                    i.ORG_ID,
							 | 
						|
								                    ip.ISSUE_STATUS
							 | 
						|
								            ) a
							 | 
						|
								        ORDER BY
							 | 
						|
								            agencyId
							 | 
						|
								
							 | 
						|
								    </select>
							 | 
						|
								    <select id="selectAgencyClosedIssueTotal" resultType="com.epmet.dto.issue.IssueAgencyDTO">
							 | 
						|
								        SELECT
							 | 
						|
								            ORG_ID AS "agencyId",
							 | 
						|
								            ORG_ID_PATH AS "pIds",
							 | 
						|
								            RESOLVE_TYPE AS "status",
							 | 
						|
								            COUNT( ID ) AS "count"
							 | 
						|
								        FROM
							 | 
						|
								            issue
							 | 
						|
								        WHERE
							 | 
						|
								            DEL_FLAG = '0'
							 | 
						|
								          AND ISSUE_STATUS = 'closed'
							 | 
						|
								          AND CUSTOMER_ID = #{customerId}
							 | 
						|
								          AND DATE(UPDATED_TIME) <![CDATA[ <= ]]> #{date}
							 | 
						|
								        <if test="gridList != null and gridList.size() > 0">
							 | 
						|
								        <foreach collection="gridList" item="gridId" index="index">
							 | 
						|
								            AND GRID_ID != #{gridId}
							 | 
						|
								        </foreach>
							 | 
						|
								        </if>
							 | 
						|
								        GROUP BY
							 | 
						|
								            ORG_ID,
							 | 
						|
								            RESOLVE_TYPE
							 | 
						|
								    </select>
							 | 
						|
								    <select id="selectAgencyClosedIssueInc" resultType="com.epmet.dto.issue.IssueAgencyDTO">
							 | 
						|
								        SELECT
							 | 
						|
								            ORG_ID AS "agencyId",
							 | 
						|
								            ORG_ID_PATH AS "pIds",
							 | 
						|
								            RESOLVE_TYPE AS "status",
							 | 
						|
								            COUNT( ID ) AS "count"
							 | 
						|
								        FROM
							 | 
						|
								            issue
							 | 
						|
								        WHERE
							 | 
						|
								            DEL_FLAG = '0'
							 | 
						|
								          AND ISSUE_STATUS = 'closed'
							 | 
						|
								          AND CUSTOMER_ID = #{customerId}
							 | 
						|
								          AND DATE(UPDATED_TIME) = #{date}
							 | 
						|
								        <if test="gridList != null and gridList.size() > 0">
							 | 
						|
								        <foreach collection="gridList" item="gridId" index="index">
							 | 
						|
								            AND GRID_ID != #{gridId}
							 | 
						|
								        </foreach>
							 | 
						|
								        </if>
							 | 
						|
								        GROUP BY
							 | 
						|
								            ORG_ID,
							 | 
						|
								            RESOLVE_TYPE
							 | 
						|
								    </select>
							 | 
						|
								    <select id="selectGridIssueTotal" resultType="com.epmet.dto.issue.IssueGridDTO">
							 | 
						|
								        SELECT ORG_ID AS "agencyId",
							 | 
						|
								               GRID_ID AS "gridId",
							 | 
						|
								               ISSUE_STATUS AS "status",
							 | 
						|
								               COUNT(ID) AS "count"
							 | 
						|
								        FROM
							 | 
						|
								            issue
							 | 
						|
								        WHERE
							 | 
						|
								            DEL_FLAG = '0'
							 | 
						|
								          AND CUSTOMER_ID = #{customerId}
							 | 
						|
								          AND DATE(CREATED_TIME) <![CDATA[ <= ]]> #{date}
							 | 
						|
								        GROUP BY
							 | 
						|
								            ORG_ID, GRID_ID, ISSUE_STATUS
							 | 
						|
								    </select>
							 | 
						|
								    <select id="selectGridIssueInc" resultType="com.epmet.dto.issue.IssueGridDTO">
							 | 
						|
								        SELECT
							 | 
						|
								            *
							 | 
						|
								        FROM
							 | 
						|
								            (
							 | 
						|
								                SELECT
							 | 
						|
								                    i.ORG_ID AS "agencyId",
							 | 
						|
								                    i.GRID_ID AS "gridId",
							 | 
						|
								                    ip.ISSUE_STATUS AS "status",
							 | 
						|
								                    COUNT( ip.ID ) AS "count"
							 | 
						|
								                FROM
							 | 
						|
								                    issue i
							 | 
						|
								                        INNER JOIN issue_process ip ON i.ID = ip.ISSUE_ID
							 | 
						|
								                        AND ip.DEL_FLAG = '0'
							 | 
						|
								                WHERE
							 | 
						|
								                    i.DEL_FLAG = '0'
							 | 
						|
								                  AND i.CUSTOMER_ID = #{customerId}
							 | 
						|
								                  AND DATE(ip.CREATED_TIME) = #{date}
							 | 
						|
								                GROUP BY
							 | 
						|
								                    i.ORG_ID,
							 | 
						|
								                    i.GRID_ID,
							 | 
						|
								                    ip.ISSUE_STATUS
							 | 
						|
								            ) a
							 | 
						|
								        ORDER BY
							 | 
						|
								            agencyId
							 | 
						|
								    </select>
							 | 
						|
								    <select id="selectGridClosedIssueTotal" resultType="com.epmet.dto.issue.IssueGridDTO">
							 | 
						|
								        SELECT
							 | 
						|
								            ORG_ID AS "agencyId",
							 | 
						|
								            GRID_ID AS "gridId",
							 | 
						|
								            RESOLVE_TYPE AS "status",
							 | 
						|
								            COUNT( ID ) AS "count"
							 | 
						|
								        FROM
							 | 
						|
								            issue
							 | 
						|
								        WHERE
							 | 
						|
								            DEL_FLAG = '0'
							 | 
						|
								          AND ISSUE_STATUS = 'closed'
							 | 
						|
								          AND CUSTOMER_ID = #{customerId}
							 | 
						|
								          AND DATE(UPDATED_TIME) <![CDATA[ <= ]]> #{date}
							 | 
						|
								        GROUP BY
							 | 
						|
								            ORG_ID,
							 | 
						|
								            GRID_ID,
							 | 
						|
								            RESOLVE_TYPE
							 | 
						|
								    </select>
							 | 
						|
								    <select id="selectGridClosedIssueInc" resultType="com.epmet.dto.issue.IssueGridDTO">
							 | 
						|
								        SELECT
							 | 
						|
								            ORG_ID AS "agencyId",
							 | 
						|
								            GRID_ID AS "gridId",
							 | 
						|
								            RESOLVE_TYPE AS "status",
							 | 
						|
								            COUNT( ID ) AS "count"
							 | 
						|
								        FROM
							 | 
						|
								            issue
							 | 
						|
								        WHERE
							 | 
						|
								            DEL_FLAG = '0'
							 | 
						|
								          AND ISSUE_STATUS = 'closed'
							 | 
						|
								          AND CUSTOMER_ID = #{customerId}
							 | 
						|
								          AND DATE(UPDATED_TIME) = #{date}
							 | 
						|
								        GROUP BY
							 | 
						|
								            ORG_ID,
							 | 
						|
								            GRID_ID,
							 | 
						|
								            RESOLVE_TYPE
							 | 
						|
								    </select>
							 | 
						|
								    <select id="selectIssueProjectList" resultType="com.epmet.dto.issue.IssueProjectDTO">
							 | 
						|
								        SELECT
							 | 
						|
								            i.ID AS "issueId",
							 | 
						|
								            ipr.PROJECT_ID AS "projectId",
							 | 
						|
								            i.GRID_ID AS "gridId"
							 | 
						|
								        FROM
							 | 
						|
								            issue i
							 | 
						|
								        INNER JOIN issue_project_relation ipr ON (i.ID = ipr.ISSUE_ID  AND ipr.DEL_FLAG = '0')
							 | 
						|
								        WHERE
							 | 
						|
								              i.DEL_FLAG = '0'
							 | 
						|
								            AND i.CUSTOMER_ID = #{customerId}
							 | 
						|
								    </select>
							 | 
						|
								
							 | 
						|
								    <select id="selectGridProjectList" resultType="com.epmet.entity.issue.IssueEntity">
							 | 
						|
								        SELECT
							 | 
						|
								            i.id AS "id",
							 | 
						|
								            i.grid_id AS "gridId",
							 | 
						|
								            i.org_id AS "orgId",
							 | 
						|
								            ipr.project_id AS "projectId"
							 | 
						|
								        FROM
							 | 
						|
								            issue i
							 | 
						|
								        INNER JOIN issue_project_relation ipr ON i.id = ipr.issue_id
							 | 
						|
								        WHERE
							 | 
						|
								            i.del_flag = '0'
							 | 
						|
								        AND ipr.del_flag = '0'
							 | 
						|
								        AND i.customer_id = #{customerId}
							 | 
						|
								        <![CDATA[AND DATE_FORMAT(ipr.created_time, "%Y-%m-%d") <= DATE_FORMAT(#{createdTime}, "%Y-%m-%d")]]>
							 | 
						|
								    </select>
							 | 
						|
								    <select id="selectIssueInfoByIds" resultType="com.epmet.dto.issue.IssueDTO" parameterType="java.util.List">
							 | 
						|
								        SELECT
							 | 
						|
								            ID,
							 | 
						|
								            ISSUE_STATUS,
							 | 
						|
								            SOURCE_TYPE,
							 | 
						|
								            SOURCE_ID,
							 | 
						|
								            CLOSE_REASON,
							 | 
						|
								            RESOLVE_TYPE,
							 | 
						|
								            ISSUE_TITLE,
							 | 
						|
								            CUSTOMER_ID,
							 | 
						|
								            GRID_ID,
							 | 
						|
								            ORG_ID_PATH,
							 | 
						|
								            ORG_ID,
							 | 
						|
								            CREATED_BY
							 | 
						|
								        FROM
							 | 
						|
								            issue
							 | 
						|
								        WHERE
							 | 
						|
								            DEL_FLAG = '0'
							 | 
						|
								          AND SOURCE_TYPE = 'resi_topic'
							 | 
						|
								        <foreach collection="ids" item="item" open="AND(  " separator=" OR " index="index" close=")">
							 | 
						|
								            ID = #{item}
							 | 
						|
								        </foreach>
							 | 
						|
								    </select>
							 | 
						|
								
							 | 
						|
								    <!-- 查询议题信息【根据客户,dateId 】 -->
							 | 
						|
								    <select id="selectIssueInfo" resultType="com.epmet.dto.extract.result.IssueInfoResultDTO">
							 | 
						|
								        SELECT
							 | 
						|
								            ID AS issueId,
							 | 
						|
								            ISSUE_STATUS,
							 | 
						|
								            RESOLVE_TYPE as resolveType,
							 | 
						|
								            SOURCE_ID AS topicId,
							 | 
						|
								            CUSTOMER_ID,
							 | 
						|
								            GRID_ID,
							 | 
						|
								            ORG_ID AS agencyId,
							 | 
						|
								            CREATED_BY AS userId
							 | 
						|
								        FROM issue
							 | 
						|
								        WHERE
							 | 
						|
								            DEL_FLAG = '0'
							 | 
						|
								          AND customer_id = #{customerId}
							 | 
						|
								          AND DATE_FORMAT( CREATED_TIME, '%Y%m%d' ) = #{dateId}
							 | 
						|
								    </select>
							 | 
						|
								
							 | 
						|
								    <!-- 查询议题process信息 -->
							 | 
						|
								    <select id="selectIssueProcessInfo" resultType="com.epmet.dto.extract.result.IssueProcessInfoResultDTO">
							 | 
						|
								        SELECT
							 | 
						|
								            i.GRID_ID AS gridId,
							 | 
						|
								            i.ORG_ID AS agencyId,
							 | 
						|
								            i.CUSTOMER_ID AS customerId,
							 | 
						|
								            ip.ISSUE_ID AS issueId,
							 | 
						|
								            ip.CREATED_BY AS userId,
							 | 
						|
								            ip.created_time as createTime,
							 | 
						|
								            (case when i.RESOLVE_TYPE = 'resolved' then 'closed_resolved'
							 | 
						|
								              when i.RESOLVE_TYPE = 'unresolved' then 'closed_unresolved'
							 | 
						|
								              else ip.ISSUE_STATUS end ) AS actionCode
							 | 
						|
								        FROM
							 | 
						|
								            issue_process ip
							 | 
						|
								            LEFT JOIN issue i ON i.id = ip.issue_id
							 | 
						|
								        WHERE
							 | 
						|
								            i.DEL_FLAG = '0'
							 | 
						|
								            AND ip.DEL_FLAG = '0'
							 | 
						|
								            AND i.CUSTOMER_ID = #{customerId}
							 | 
						|
								            AND DATE_FORMAT(ip.CREATED_TIME,'%Y%m%d') = #{dateId}
							 | 
						|
								    </select>
							 | 
						|
								
							 | 
						|
								    <!-- 查询议题满意度评价信息 -->
							 | 
						|
								    <select id="selectIssueSatisfactionInfo" resultType="com.epmet.dto.extract.result.SatisfactionInfoResultDTO">
							 | 
						|
								        SELECT
							 | 
						|
								            isd.ISSUE_ID AS issueId,
							 | 
						|
								            ( CASE WHEN isd.SATISFACTION = 'bad' THEN 'evaluste_bad'
							 | 
						|
								                   WHEN isd.SATISFACTION = 'good' THEN 'evaluste_good'
							 | 
						|
								                   WHEN isd.SATISFACTION = 'perfect' THEN 'evaluste_perfect'
							 | 
						|
								                   ELSE '' END ) AS actionCode,
							 | 
						|
								            isd.CREATED_BY AS userId,
							 | 
						|
								            i.GRID_ID AS gridId,
							 | 
						|
								            i.ORG_ID AS agencyId,
							 | 
						|
								            i.CUSTOMER_ID AS customerId
							 | 
						|
								        FROM
							 | 
						|
								            issue_satisfaction_detail isd
							 | 
						|
								            LEFT JOIN issue i ON i.id = isd.issue_id
							 | 
						|
								        WHERE
							 | 
						|
								            isd.del_flag = '0'
							 | 
						|
								            AND i.del_flag = '0'
							 | 
						|
								            AND i.CUSTOMER_ID = #{customerId}
							 | 
						|
								            AND DATE_FORMAT(isd.CREATED_TIME,'%Y%m%d') = #{dateId}
							 | 
						|
								    </select>
							 | 
						|
								
							 | 
						|
								    <!-- 查询议题支持反对信息 -->
							 | 
						|
								    <select id="selectIssueVoteInfo" resultType="com.epmet.dto.extract.result.SatisfactionInfoResultDTO">
							 | 
						|
								        SELECT
							 | 
						|
								            ivd.ISSUE_ID AS issueId,
							 | 
						|
								            ( CASE WHEN ivd.ATTITUDE = 'support' THEN 'vote_support'
							 | 
						|
								                   WHEN ivd.ATTITUDE = 'opposition' THEN 'vote_opposition'
							 | 
						|
								                   ELSE '' END ) AS actionCode,
							 | 
						|
								            ivd.CREATED_BY AS userId,
							 | 
						|
								            i.GRID_ID AS gridId,
							 | 
						|
								            i.ORG_ID AS agencyId,
							 | 
						|
								            i.CUSTOMER_ID AS customerId
							 | 
						|
								        FROM
							 | 
						|
								            issue_vote_detail ivd
							 | 
						|
								            LEFT JOIN issue i ON i.id = ivd.issue_id
							 | 
						|
								        WHERE
							 | 
						|
								            ivd.del_flag = '0'
							 | 
						|
								            AND i.del_flag = '0'
							 | 
						|
								            AND i.CUSTOMER_ID = #{customerId}
							 | 
						|
								            AND DATE_FORMAT(ivd.CREATED_TIME,'%Y%m%d') = #{dateId}
							 | 
						|
								    </select>
							 | 
						|
								
							 | 
						|
								
							 | 
						|
								    <select id="selectCategory" resultType="com.epmet.dto.issue.IssueProjectCategoryDictDTO">
							 | 
						|
								        SELECT
							 | 
						|
								        a.ID,
							 | 
						|
								        IF(a.CATEGORY_TYPE = '2',concat(b.CATEGORY_NAME,'-',a.CATEGORY_NAME),a.CATEGORY_NAME) as categoryName
							 | 
						|
								        FROM issue_project_category_dict a
							 | 
						|
								        LEFT JOIN issue_project_category_dict b on a.pid = b.id and a.customer_id = b.customer_id
							 | 
						|
								        WHERE a.DEL_FLAG = '0'
							 | 
						|
								        AND a.CUSTOMER_ID = #{customerId}
							 | 
						|
								        <foreach collection="ids" item="id" open="AND (" separator=" OR " close=")">
							 | 
						|
								            a.id = #{id}
							 | 
						|
								        </foreach>
							 | 
						|
								        order by a.category_type,a.sort
							 | 
						|
								    </select>
							 | 
						|
								    <select id="getIssueTotalList" resultType="com.epmet.dto.issue.IssueDTO">
							 | 
						|
								        SELECT ORG_ID AS "agencyId",
							 | 
						|
								               ORG_ID_PATH AS "pIds",
							 | 
						|
								               ISSUE_STATUS AS "status",
							 | 
						|
								               COUNT(ID) AS "count"
							 | 
						|
								        FROM
							 | 
						|
								            issue
							 | 
						|
								        WHERE
							 | 
						|
								            DEL_FLAG = '0'
							 | 
						|
								          AND CUSTOMER_ID = #{customerId}
							 | 
						|
								          AND DATE(UPDATED_TIME) <![CDATA[ <= ]]> #{date}
							 | 
						|
								        GROUP BY
							 | 
						|
								            ORG_ID, ISSUE_STATUS
							 | 
						|
								    </select>
							 | 
						|
								
							 | 
						|
								    <select id="selectProjectByGrids" resultType="java.lang.String">
							 | 
						|
								        SELECT DISTINCT
							 | 
						|
								        ipr.project_id
							 | 
						|
								        FROM
							 | 
						|
								        issue_project_relation ipr
							 | 
						|
								        INNER JOIN issue i ON ipr.issue_id = i.id
							 | 
						|
								        WHERE 1=1
							 | 
						|
								        <foreach collection="gridIds" item="id" open="AND (" separator=" OR " close=")">
							 | 
						|
								            i.grid_id = #{id}
							 | 
						|
								        </foreach>
							 | 
						|
								    </select>
							 | 
						|
								
							 | 
						|
								</mapper>
							 |