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.
 
 
 
 
 

150 lines
4.8 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.project.ProjectDao">
<select id="selectProjectList" resultType="com.epmet.entity.project.ProjectEntity">
SELECT
*
FROM
project
WHERE
del_flag = '0'
AND customer_id = #{customerId}
AND status = #{status}
<![CDATA[AND DATE_FORMAT(created_time, "%Y-%m-%d") <= DATE_FORMAT(#{createdTime}, "%Y-%m-%d")]]>
ORDER BY created_time DESC
</select>
<select id="selectAgencyClosedProjectTotal" resultType="com.epmet.dto.project.ProjectAgencyDTO">
SELECT
AGENCY_ID AS "agencyId",
ORG_ID_PATH AS "pIds",
CLOSED_STATUS AS "status",
COUNT(ID) AS "count"
FROM project
WHERE
DEL_FLAG = '0'
AND ORIGIN = 'issue'
AND STATUS = 'closed'
AND CUSTOMER_ID = #{customerId}
AND DATE_FORMAT(UPDATED_TIME, '%Y-%m-%d') <![CDATA[ <= ]]> #{date}
GROUP BY
AGENCY_ID, CLOSED_STATUS
</select>
<select id="selectAgencyClosedProjectInc" resultType="com.epmet.dto.project.ProjectAgencyDTO">
SELECT
AGENCY_ID AS "agencyId",
ORG_ID_PATH AS "pIds",
CLOSED_STATUS AS "status",
COUNT(ID) AS "count"
FROM project
WHERE
DEL_FLAG = '0'
AND ORIGIN = 'issue'
AND STATUS = 'closed'
AND CUSTOMER_ID = #{customerId}
AND DATE_FORMAT(UPDATED_TIME, '%Y-%m-%d') = #{date}
GROUP BY
AGENCY_ID, CLOSED_STATUS
</select>
<select id="selectGridClosedProjectTotal" resultType="com.epmet.dto.project.ProjectGridDTO">
SELECT
ID AS "projectId",
AGENCY_ID AS "agencyId",
ORIGIN_ID AS "issueId",
CLOSED_STATUS AS "status"
FROM project
WHERE
DEL_FLAG = '0'
AND ORIGIN = 'issue'
AND STATUS = 'closed'
AND CUSTOMER_ID = #{customerId}
AND DATE_FORMAT(UPDATED_TIME, '%Y-%m-%d') <![CDATA[ <= ]]> #{date}
</select>
<select id="selectGridClosedProjectInc" resultType="com.epmet.dto.project.ProjectGridDTO">
SELECT
ID AS "projectId",
AGENCY_ID AS "agencyId",
ORIGIN_ID AS "issueId",
CLOSED_STATUS AS "status"
FROM project
WHERE
DEL_FLAG = '0'
AND ORIGIN = 'issue'
AND STATUS = 'closed'
AND CUSTOMER_ID = #{customerId}
AND DATE_FORMAT(UPDATED_TIME, '%Y-%m-%d') = #{date}
</select>
<select id="selectProjectInfo" resultType="com.epmet.dto.ProjectDTO">
SELECT
ID,
CUSTOMER_ID,
AGENCY_ID,
ORIGIN_ID,
STATUS,
CLOSED_STATUS,
ORG_ID_PATH,
CREATED_TIME,
UPDATED_TIME
FROM project
WHERE
DEL_FLAG = '0'
AND ORIGIN = 'issue'
AND CUSTOMER_ID = #{customerId}
<if test="date != null and date.trim() != ''">
AND DATE_FORMAT(CREATED_TIME, '%Y%m%d') = #{date}
</if>
</select>
<select id="selectParameterValueByKey" resultType="java.lang.String">
select
PARAMETER_VALUE
from
customer_project_parameter
where DEL_FLAG = '0'
and CUSTOMER_ID = #{customerId}
and PARAMETER_KEY ='detention_days'
</select>
<select id="selectOvertimeProjectIds" resultType="string">
SELECT
DISTINCT
project.ID
FROM
project project
WHERE
project.del_flag = '0'
AND project.customer_id = #{customerId}
<if test="null != exclude and exclude.size() > 0">
<foreach collection="exclude" item="id" open="AND ( " separator=" OR " close=" ) ">
project.ID <![CDATA[ <> ]]> #{id}
</foreach>
</if>
AND EXISTS (
SELECT
stff.ID
FROM
project_staff stff
LEFT JOIN project_org_relation period ON stff.ID = period.PROJECT_STAFF_ID
AND period.DEL_FLAG = '0'
WHERE
stff.DEL_FLAG = '0'
AND stff.CUSTOMER_ID = #{customerId}
AND project.ID = stff.PROJECT_ID
AND ABS(
TIMESTAMPDIFF(
DAY,
period.INFORMED_DATE,
IF
(
period.HANDLED_DATE IS NULL,
IF
( project.`STATUS` = 'closed', project.UPDATED_TIME, NOW( ) ),
period.HANDLED_DATE
)
)
) > #{value}
)
</select>
</mapper>