移风店镇项目初始化
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.

467 lines
18 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.ProjectDao">
<resultMap type="com.epmet.entity.ProjectEntity" id="projectMap">
<result property="id" column="ID"/>
<result property="agencyId" column="AGENCY_ID"/>
<result property="origin" column="ORIGIN"/>
<result property="originId" column="ORIGIN_ID"/>
<result property="title" column="TITLE"/>
<result property="status" column="STATUS"/>
<result property="closedStatus" column="CLOSED_STATUS"/>
<result property="orgIdPath" column="ORG_ID_PATH"/>
<result property="delFlag" column="DEL_FLAG"/>
<result property="revision" column="REVISION"/>
<result property="createdBy" column="CREATED_BY"/>
<result property="createdTime" column="CREATED_TIME"/>
<result property="updatedBy" column="UPDATED_BY"/>
<result property="updatedTime" column="UPDATED_TIME"/>
</resultMap>
<select id="selectPendList" resultType="com.epmet.dto.ProjectDTO" parameterType="com.epmet.dto.form.ProjectListFromDTO">
SELECT distinct
p.ID,
p.TITLE,
p.CREATED_TIME,
psp.CREATED_TIME AS UPDATED_TIME
FROM project p
INNER JOIN (SELECT
ps.PROJECT_ID,
MAX(ps.CREATED_TIME) AS CREATED_TIME
FROM
project_staff ps
WHERE
ps.DEL_FLAG = '0'
AND ps.IS_HANDLE = 'unhandled'
AND ps.STAFF_ID = #{userId}
GROUP BY ps.PROJECT_ID) psp ON p.ID = psp.PROJECT_ID
WHERE p.DEL_FLAG = '0'
AND p.status = 'pending'
ORDER BY psp.created_time, p.created_time ASC<!-- 先按滞留时间降序再按创建时间升序(带奇峰修改) -->
LIMIT #{pageNo}, #{pageSize}
</select>
<select id="selectCreatedList" resultType="com.epmet.dto.ProjectDTO" parameterType="com.epmet.dto.form.ProjectListFromDTO">
SELECT distinct
p.ID,
p.TITLE,
p.STATUS,
IFNULL(pp.PUBLIC_REPLY, "") AS PUBLIC_REPLY,
p.CREATED_TIME,
ps.CREATED_TIME AS UPDATED_TIME
FROM project p
INNER JOIN (SELECT
PROJECT_ID
FROM
project_process
WHERE
DEL_FLAG = '0'
AND OPERATION = 'created'
AND STAFF_ID = #{userId}
) psp ON p.ID = psp.PROJECT_ID
LEFT JOIN (
SELECT DISTINCT
PROJECT_ID,
MIN(CREATED_TIME) AS CREATED_TIME
FROM
project_staff
WHERE DEL_FLAG = '0'
AND IS_HANDLE = 'unhandled'
GROUP BY PROJECT_ID) ps ON p.ID = ps.PROJECT_ID
LEFT JOIN project_process pp ON p.ID = pp.PROJECT_ID AND pp.OPERATION = 'close'
WHERE
p.DEL_FLAG = '0'
ORDER BY p.CREATED_TIME ASC
LIMIT #{pageNo}, #{pageSize}
</select>
<select id="selectInvolvedList" resultType="com.epmet.dto.ProjectDTO" parameterType="com.epmet.dto.form.ProjectListFromDTO">
SELECT distinct
p.ID,
p.TITLE,
p.STATUS,
IFNULL(pp.PUBLIC_REPLY, "") AS PUBLIC_REPLY,
p.CREATED_TIME,
ps.CREATED_TIME AS UPDATED_TIME
FROM project p
INNER JOIN (SELECT
ps.PROJECT_ID
FROM
project_staff ps
INNER JOIN project_process pp ON ps.PROCESS_ID = pp.ID AND pp.DEL_FLAG = '0'
AND (pp.OPERATION != 'created'
OR (pp.OPERATION = 'created' AND pp.STAFF_ID != #{userId}))
WHERE
ps.DEL_FLAG = '0'
AND ps.STAFF_ID = #{userId}
GROUP BY ps.PROJECT_ID) psp ON p.ID = psp.PROJECT_ID
LEFT JOIN (
SELECT DISTINCT
PROJECT_ID,
MIN(CREATED_TIME) AS CREATED_TIME
FROM
project_staff
WHERE DEL_FLAG = '0'
AND IS_HANDLE = 'unhandled'
GROUP BY PROJECT_ID) ps ON p.ID = ps.PROJECT_ID
LEFT JOIN project_process pp ON p.ID = pp.PROJECT_ID AND pp.OPERATION = 'close'
WHERE
p.DEL_FLAG = '0'
ORDER BY p.CREATED_TIME ASC
LIMIT #{pageNo}, #{pageSize}
</select>
<select id="selectDepartmentNameList" resultType="java.lang.String" parameterType="com.epmet.dto.ProjectDTO">
SELECT DISTINCT
DEPARTMENT_NAME
FROM
project p
INNER JOIN project_staff ps ON p.ID = ps.PROJECT_ID
WHERE p.DEL_FLAG = '0'
AND ps.DEL_FLAG = '0'
AND p.ID = #{id}
AND ps.IS_HANDLE = 'unhandled'
</select>
<select id="selectProjectDetail" resultType="com.epmet.dto.result.ProjectDetailResultDTO">
SELECT
p.ID AS "projectId",
p.TITLE AS "projectTitle",
p.BACK_GROUND AS "backGround",
p.ORIGIN AS "origin",
p.ORIGIN_ID AS "originId",
p.STATUS AS "projectStatus",
p.locate_address AS "locateAddress",
p.locate_longitude AS "locateLongitude",
p.locate_dimension AS "locateDimension",
IFNULL(pp.PUBLIC_REPLY, '无') AS "publicReply",
IFNULL(pp.INTERNAL_REMARK, '无') AS "internalRemark"
FROM project p
INNER JOIN project_process pp ON p.ID = pp.PROJECT_ID AND pp.DEL_FLAG = '0' AND pp.OPERATION = 'created'
WHERE p.DEL_FLAG = '0'
AND p.ID = #{id}
</select>
<select id="selectShiftProjectList" resultType="com.epmet.dto.ProjectDTO" parameterType="com.epmet.dto.form.ShiftProjectsFromDTO">
SELECT p.*, IFNULL(pp.PUBLIC_REPLY, "") AS PUBLIC_REPLY FROM project p
LEFT JOIN (SELECT PROJECT_ID,
PUBLIC_REPLY
FROM
project_process
WHERE DEL_FLAG = '0'
AND OPERATION = 'close') pp ON p.ID = pp.PROJECT_ID
WHERE p.DEL_FLAG = '0'
AND p.ORIGIN = 'issue'
<foreach item="issueId" collection="issueIds" separator="OR" open="AND (" close=")" index="">
p.ORIGIN_ID = #{issueId}
</foreach>
ORDER BY CREATED_TIME ASC
</select>
<select id="selectClosedProjectList" resultType="com.epmet.dto.result.LatestListResultDTO">
SELECT DISTINCT
p.id AS "projectId",
pro.public_reply AS "publicReply",
pro.department_name AS "departmentName",
UNIX_TIMESTAMP(pro.created_time) AS "closeProjectTime"
FROM project p
INNER JOIN project_process pro ON p.id = pro.project_id
INNER JOIN project_related_personnel prp ON p.id = prp.project_id
WHERE p.del_flag = '0'
AND pro.del_flag = '0'
AND p.customer_id = #{customerId}
AND p.`status` = 'closed'
AND pro.operation = 'close'
AND p.origin = 'issue'
AND prp.source_type = 'issue'
AND prp.grid_id = #{gridId}
ORDER BY pro.created_time DESC
LIMIT #{num}, #{pageSize}
</select>
<select id="selectProjectList" resultType="com.epmet.dto.ProjectDTO">
SELECT
id,
customer_id,
agency_id,
origin,
origin_id,
title
FROM
project
WHERE
del_flag = '0'
AND customer_id = #{customerId}
AND agency_id = #{agencyId}
AND origin = #{origin}
AND origin_id = #{originId}
</select>
<select id="selectCurrentDepartmentList" resultType="com.epmet.dto.ProjectStaffDTO">
SELECT DISTINCT
DEPARTMENT_NAME,
STAFF_ID
FROM
project p
INNER JOIN project_staff ps ON p.ID = ps.PROJECT_ID
WHERE p.DEL_FLAG = '0'
AND ps.DEL_FLAG = '0'
AND p.ID = #{id}
AND ps.IS_HANDLE = 'unhandled'
</select>
<select id="selectAllCustomerIds" resultType="string">
SELECT
distinct
CUSTOMER_ID
FROM
PROJECT
WHERE
DEL_FLAG = '0'
</select>
<select id="selectIssueProjectList" resultType="com.epmet.dto.result.MyPartProjectsResultDTO">
SELECT
id AS "projectId",
title AS "projectTitle",
UNIX_TIMESTAMP(created_time) AS "shiftProjectTime",
origin_id AS "issueId",
status AS "status"
FROM
project
WHERE
del_flag = '0'
AND origin = 'issue'
AND customer_id = #{customerId}
<foreach collection="issueList" item="issueId" open="AND( " separator=" OR " index="index" close=")">
origin_id = #{issueId}
</foreach>
ORDER BY CREATED_TIME DESC
LIMIT #{pageIndex}, #{pageSize}
</select>
<select id="listProjectsByCreateTopicUserId"
resultType="com.epmet.dto.result.ProjectOfCreateTopicUserResultDTO">
select
rp.SOURCE_ID as topicId,
unix_timestamp(p.CREATED_TIME) as shiftProjectTime,
p.id as projectId,
rp.GRID_ID gridId,
p.TITLE as projectTitle,
rp.GRID_ID releaseGridId,
rp2.SOURCE_ID as issueId
from project_related_personnel rp
inner join project p on (rp.PROJECT_ID = p.ID and p.DEL_FLAG = 0)
left join project_related_personnel rp2 on (rp.PROJECT_ID = rp2.PROJECT_ID and rp2.SOURCE_TYPE = 'issue')
where rp.USER_ID = #{userId}
and p.CUSTOMER_ID=#{customerId}
and p.DEL_FLAG=0
and rp.SOURCE_TYPE = 'topic'
order by p.CREATED_TIME desc
</select>
<resultMap type="com.epmet.dto.result.ProjectInfoDTO" id="ProjectInfoDTOMap">
<result property="projectId" column="ID"/>
<result property="issueId" column="ORIGIN_ID"/>
<result property="eventTitle" column="TITLE"/>
<result property="eventContent" column="TITLE1"/>
<collection property="imgUrlList" ofType="java.lang.String">
<constructor>
<arg column="imgUrl"/>
</constructor>
</collection>
</resultMap>
<select id="queryProjectInfoByProjectId" resultMap="ProjectInfoDTOMap" parameterType="java.lang.String">
select p.id,p.TITLE,p.TITLE as TITLE1,P.ORIGIN_ID,
M.ATTACHMENT_URL AS imgUrl
from project p
LEFT JOIN project_process_attachment M
ON(P.ID=M.PROJECT_ID AND M.DEL_FLAG='0'
AND M.ATTACHMENT_TYPE='image')
where P.DEL_FLAG='0'
AND p.id=#{projectId}
</select>
<!-- 查询所以已关闭的项目【项目来源为 'issue'】 -->
<select id="selectAllClosedProject" resultType="com.epmet.dto.result.ComplementedProjectEvaluateResultDTO">
SELECT
ID AS projectId,
ORIGIN_ID AS issueId,
CUSTOMER_ID
FROM project
WHERE DEL_FLAG = '0'
AND ORIGIN = 'issue'
AND `STATUS` = 'closed'
</select>
Merge branches 'dev' and 'dev_third_data' of http://git.elinkit.com.cn:7070/r/epmet-cloud into dev_third_data  Conflicts:  epmet-module/data-statistical/data-statistical-server/src/main/resources/mapper/evaluationindex/screen/ScreenCustomerAgencyDao.xml  epmet-module/gov-issue/gov-issue-client/src/main/java/com/epmet/feign/GovIssueOpenFeignClient.java  epmet-module/gov-issue/gov-issue-client/src/main/java/com/epmet/feign/fallback/GovIssueOpenFeignClientFallBack.java  epmet-module/gov-project/gov-project-server/src/main/java/com/epmet/constant/ProjectConstant.java  epmet-module/gov-project/gov-project-server/src/main/java/com/epmet/dao/ProjectDao.java  epmet-module/gov-project/gov-project-server/src/main/java/com/epmet/dao/ProjectSatisfactionStatisticsDao.java  epmet-module/gov-project/gov-project-server/src/main/java/com/epmet/entity/ProjectSatisfactionStatisticsEntity.java  epmet-module/gov-project/gov-project-server/src/main/resources/mapper/ProjectDao.xml  epmet-module/gov-project/gov-project-server/src/main/resources/mapper/ProjectSatisfactionStatisticsDao.xml  epmet-module/resi-group/resi-group-client/src/main/java/com/epmet/resi/group/feign/ResiGroupOpenFeignClient.java  epmet-module/resi-group/resi-group-client/src/main/java/com/epmet/resi/group/feign/fallback/ResiGroupOpenFeignClientFallback.java  epmet-module/resi-group/resi-group-server/src/main/java/com/epmet/modules/topic/controller/ResiTopicController.java  epmet-module/resi-group/resi-group-server/src/main/java/com/epmet/modules/topic/service/ResiTopicService.java  epmet-module/resi-group/resi-group-server/src/main/java/com/epmet/modules/topic/service/impl/ResiTopicServiceImpl.java
4 years ago
4 years ago
<!-- 查询时间段内的项目ID -->
<select id="selectProjectIdByTime" resultType="com.epmet.dto.result.MassesDiscontentResultDTO">
SELECT
ID AS projectId,
ORIGIN_ID AS issueId
FROM project
WHERE
DEL_FLAG = '0'
AND DATE_FORMAT(CREATED_TIME,'%Y%m%d') >= #{startDate}
AND DATE_FORMAT(CREATED_TIME,'%Y%m%d') <![CDATA[ <= ]]> #{endDate}
AND ORG_ID_PATH LIKE CONCAT('%',#{agencyId},'%')
AND ORIGIN = 'issue'
AND `STATUS` = 'closed'
4 years ago
</select>
<!-- 查询巡查期间的立项数 -->
<select id="selectPatrolProject" resultType="java.lang.Integer">
SELECT
COUNT(1)
FROM
project
WHERE DEL_FLAG = '0'
AND CREATED_TIME BETWEEN #{patrolStartTime} AND #{patrolEndTime}
AND ORIGIN = 'agency'
AND CREATED_BY = #{userId}
</select>
<select id="selectPendingListByGrid" resultType="com.epmet.dto.result.PendingResultDTO">
SELECT
a.ID AS projectId,
a.ORIGIN_ID AS issueId,
a.TITLE AS issueTitle,
UNIX_TIMESTAMP(a.CREATED_TIME) AS issueShiftedTime,
b.SOURCE_ID AS sourceId
FROM
project a
INNER JOIN project_related_personnel b ON a.ID = b.PROJECT_ID
AND b.SOURCE_TYPE = 'topic'
AND b.GRID_ID = #{gridId}
WHERE
a.DEL_FLAG = '0'
AND a.`STATUS` = 'pending'
AND a.ORIGIN = 'issue'
ORDER BY a.CREATED_TIME DESC
LIMIT #{pageNo}, #{pageSize}
</select>
<select id="selectResolvedListByGrid" resultType="com.epmet.dto.result.ResolvedResultDTO">
SELECT
a.ORIGIN_ID AS issueId,
a.TITLE AS issueTitle,
c.PUBLIC_REPLY AS publicReply,
UNIX_TIMESTAMP(a.UPDATED_TIME) AS closedTime,
b.SOURCE_ID AS sourceId
FROM
project a
INNER JOIN project_related_personnel b ON a.ID = b.PROJECT_ID
AND b.SOURCE_TYPE = 'topic'
AND b.GRID_ID = #{gridId}
LEFT JOIN project_process c ON a.ID = c.PROJECT_ID
AND c.OPERATION = 'close'
WHERE
a.DEL_FLAG = '0'
AND a.`STATUS` = 'closed'
AND a.ORIGIN = 'issue'
AND a.CLOSED_STATUS = 'resolved'
ORDER BY a.UPDATED_TIME DESC
LIMIT #{pageNo}, #{pageSize}
</select>
<select id="selectUnResolvedListByGrid" resultType="com.epmet.dto.result.UnResolvedResultDTO">
SELECT
a.ORIGIN_ID AS issueId,
a.TITLE AS issueTitle,
c.PUBLIC_REPLY AS solution,
UNIX_TIMESTAMP(a.UPDATED_TIME) AS closedTime,
b.SOURCE_ID AS sourceId
FROM
project a
INNER JOIN project_related_personnel b ON a.ID = b.PROJECT_ID
AND b.SOURCE_TYPE = 'topic'
AND b.GRID_ID = #{gridId}
LEFT JOIN project_process c ON a.ID = c.PROJECT_ID
AND c.OPERATION = 'close'
WHERE
a.DEL_FLAG = '0'
AND a.`STATUS` = 'closed'
AND a.ORIGIN = 'issue'
AND a.CLOSED_STATUS = 'unresolved'
ORDER BY a.UPDATED_TIME DESC
</select>
4 years ago
<!-- 查询报事转项目详情 -->
<select id="selectEventProjectInfo" resultType="com.epmet.dto.EventProjectInfoDTO">
SELECT
p.ID AS projectId,
4 years ago
IFNULL(DATE_FORMAT(p.CREATED_TIME,'%Y-%m-%d %h:%i'),'') AS operationTime,
4 years ago
p.CREATED_BY AS userId,
IFNULL(pp.PUBLIC_REPLY,'') AS projectDeclare
FROM project p
4 years ago
LEFT JOIN project_process pp ON (pp.PROJECT_ID = p.ID AND pp.DEL_FLAG = '0' AND pp.OPERATION = 'created')
4 years ago
WHERE p.DEL_FLAG = '0'
AND p.ID = #{projectId}
</select>
<select id="selectByOriginId" resultType="com.epmet.entity.ProjectEntity">
select p.id from project p
where p.DEL_FLAG = '0'
AND p.ORIGIN_ID = #{originId}
</select>
4 years ago
<!-- 根据日期查询项目分类 -->
<select id="selectProjectCategoryByDate" resultType="com.epmet.dto.result.ProjectCategoryByDateDTO">
SELECT
DISTINCT p.ID AS projectId,
4 years ago
CONCAT(#{startDate},' ', DATE_FORMAT(p.CREATED_TIME,'%h:%i:%s')) AS createdTime,
4 years ago
LEFT(pc.CATEGORY_CODE,#{codeLength}) AS categoryCode
FROM project p
INNER JOIN project_category pc ON (pc.PROJECT_ID = p.ID AND pc.DEL_FLAG = 0)
WHERE p.DEL_FLAG = 0
AND p.ORG_ID_PATH LIKE CONCAT('%',#{orgId})
4 years ago
AND DATE_FORMAT(p.CREATED_TIME,'%Y-%m-%d') >= #{startDate}
AND DATE_FORMAT(p.CREATED_TIME,'%Y-%m-%d') <![CDATA[ <= ]]> #{endDate}
4 years ago
ORDER BY projectId
</select>
<!-- 数据分析-个人档案-事件详情页面的研判分析项目列表 -->
<select id="selectCommonCategoryEventProject" parameterType="map" resultType="com.epmet.dto.result.ProjectInfoIcData">
select
distinct pc.PROJECT_ID as projectId,
p.TITLE as projectTitle,
p.ORIGIN_ID as resiEventId,
p.`STATUS` as projectStatus
from project_category pc
inner join project p
on(pc.PROJECT_ID=p.id)
inner join resi_event re
on(p.ORIGIN_ID=re.id)
where pc.DEL_FLAG='0'
and p.DEL_FLAG='0'
and re.DEL_FLAG='0'
and pc.CUSTOMER_ID=#{customerId}
and p.ORIGIN='resi_event'
and pc.PROJECT_ID !=#{excludeProjectId}
<foreach collection="epmetUserIds" item="epmetUserId" open="AND( " separator=" OR " index="index" close=")">
re.REPORT_USER_ID = #{epmetUserId}
</foreach>
and pc.CATEGORY_CODE like concat(#{categoryCode},'%')
order by p.CREATED_TIME desc
</select>
4 years ago
<!-- 数据分析-个人档案-话题详情页面的研判分析项目列表 -->
<select id="selectCommonCategoryIssueProject" parameterType="map" resultType="com.epmet.dto.result.ProjectInfoIcData">
SELECT
DISTINCT
pc.PROJECT_ID AS projectId,
p.TITLE AS projectTitle,
4 years ago
p.ORIGIN_ID AS issueId,
4 years ago
p.`STATUS` AS projectStatus
FROM
project_category pc
INNER JOIN project_related_personnel per ON ( pc.PROJECT_ID = per.PROJECT_ID )
INNER JOIN project p
WHERE
pc.DEL_FLAG = '0'
AND per.DEL_FLAG = '0'
AND p.DEL_FLAG = '0'
AND pc.CUSTOMER_ID = #{customerId}
AND p.ORIGIN = 'issue'
AND pc.PROJECT_ID != #{excludeProjectId}
<foreach collection="epmetUserIds" item="epmetUserId" open="AND( " separator=" OR " index="index" close=")">
AND per.USER_ID = #{epmetUserId}
</foreach>
AND pc.CATEGORY_CODE LIKE concat( #{categoryCode}, '%' )
ORDER BY
p.CREATED_TIME DESC
</select>
</mapper>