<?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.ycl.mapper.ProjectProcessMapper">
|
|
<!-- 通用查询映射结果 -->
|
<resultMap id="BaseResultMap" type="com.ycl.domain.vo.ProjectProcessVO">
|
<id column="id" property="id"/>
|
<result column="project_name" property="projectName" />
|
<result column="project_code" property="projectCode" />
|
<result column="content" property="content" />
|
<result column="project_type" property="projectType" />
|
<result column="investmentAmount" property="investmentAmount" />
|
<result column="project_status" property="projectStatus" />
|
<result column="fund_type" property="fundType" />
|
<result column="invest_type" property="investType" />
|
<result column="project_phase" property="projectPhase" />
|
<result column="tag" property="tag" />
|
<result column="project_approval_type" property="projectApprovalType" />
|
<result column="importance_type" property="importanceType" />
|
<result column="create_project_time" property="createProjectTime" />
|
<result column="plan_start_time" property="planStartTime" />
|
<result column="plan_complete_time" property="planCompleteTime" />
|
<result column="project_address" property="projectAddress" />
|
<result column="longitude" property="longitude" />
|
<result column="latitude" property="latitude" />
|
<result column="project_owner_unit" property="projectOwnerUnit" />
|
<result column="project_owner_unit_name" property="projectOwnerUnitName" />
|
<result column="project_contact_person" property="projectContactPerson" />
|
<result column="contact" property="contact" />
|
<result column="update_by" property="updateBy" />
|
<result column="create_by" property="createBy" />
|
<result column="process_def_id" property="processDefId" />
|
<result column="process_ins_id" property="processInsId" />
|
</resultMap>
|
|
<resultMap id="PageResultMap" type="com.ycl.domain.vo.ProjectProcessVO">
|
<id column="id" property="id"/>
|
<result column="project_name" property="projectName" />
|
<result column="project_code" property="projectCode" />
|
<result column="content" property="content" />
|
<result column="project_type" property="projectType" />
|
<result column="investmentAmount" property="investmentAmount" />
|
<result column="project_status" property="projectStatus" />
|
<result column="fund_type" property="fundType" />
|
<result column="invest_type" property="investType" />
|
<result column="project_phase" property="projectPhase" />
|
<result column="tag" property="tag" />
|
<result column="project_approval_type" property="projectApprovalType" />
|
<result column="importance_type" property="importanceType" />
|
<result column="create_project_time" property="createProjectTime" />
|
<result column="plan_start_time" property="planStartTime" />
|
<result column="plan_complete_time" property="planCompleteTime" />
|
<result column="project_address" property="projectAddress" />
|
<result column="longitude" property="longitude" />
|
<result column="latitude" property="latitude" />
|
<result column="project_owner_unit" property="projectOwnerUnit" />
|
<result column="project_owner_unit_name" property="projectOwnerUnitName" />
|
<result column="project_contact_person" property="projectContactPerson" />
|
<result column="competent_department" property="competentDepartment" />
|
<result column="competent_department_name" property="competentDepartmentName" />
|
<result column="contact" property="contact" />
|
<result column="update_by" property="updateBy" />
|
<result column="create_by" property="createBy" />
|
<result column="process_def_id" property="processDefId" />
|
<result column="process_ins_id" property="processInsId" />
|
</resultMap>
|
|
<resultMap id="EngineeringMap" type="com.ycl.domain.vo.ProjectEngineeringVO">
|
<id column="id" property="id"/>
|
<result column="project_name" property="projectName" />
|
<result column="project_type" property="projectType" />
|
<result column="investment_amount" property="investmentAmount" />
|
<result column="status" property="status" />
|
<result column="unit" property="projectOwnerUnit" />
|
<result column="department" property="competentDepartment" />
|
<result column="year" property="year" />
|
<result column="parent_id" property="parent" />
|
<result column="project_owner_unit_name" property="projectOwnerUnitName" />
|
<result column="competent_department_name" property="competentDepartmentName" />
|
<result column="process_ins_id" property="processInsId" />
|
<result column="process_def_id" property="processDefId" />
|
</resultMap>
|
|
<select id="getProjectEngineeringList" parameterType="string" resultMap="EngineeringMap">
|
SELECT TPE.project_info_id,
|
TPE.project_name,
|
TPE.project_type,
|
TPE.investment_amount,
|
TPE.status,
|
TPE.id,
|
TPE.unit,
|
TPE.department,
|
TPE.parent_id,
|
TPE.year,
|
(SELECT SD.dept_name FROM sys_dept SD WHERE SD.dept_id = TPE.unit) AS unit_name,
|
(SELECT SD.dept_name FROM sys_dept SD WHERE SD.dept_id = TPE.department) AS department_name
|
FROM t_project_engineering TPE
|
INNER JOIN t_project_info TPI ON TPI.id = TPE.project_info_id AND TPI.deleted = 0
|
WHERE
|
TPE.parent_id = #{id} and TPE.deleted = 0
|
ORDER BY
|
TPE.gmt_create
|
</select>
|
|
<select id="getEngineeringList" parameterType="long" resultMap="EngineeringMap">
|
WITH RECURSIVE temp_table AS (
|
SELECT
|
id, project_info_id, project_name, project_type, investment_amount, status, unit, department, parent_id, year, gmt_create FROM t_project_engineering WHERE project_info_id = #{projectId} AND parent_id = '0' AND deleted = 0
|
UNION ALL
|
SELECT
|
TPE.id, TPE.project_info_id, TPE.project_name, TPE.project_type, TPE.investment_amount, TPE.status, TPE.unit, TPE.department, TPE.parent_id, TPE.year, TPE.gmt_create FROM t_project_engineering TPE INNER JOIN temp_table tb ON TPE.parent_id = tb.id AND TPE.deleted = 0
|
)
|
SELECT
|
TT.id, TT.project_info_id, TT.project_name, TT.project_type, TT.investment_amount, TT.status, TT.unit, TT.department, TT.parent_id, TT.year, TT.gmt_create,
|
(SELECT SD.dept_name FROM sys_dept SD WHERE SD.dept_id = TT.unit) AS project_owner_unit_name,
|
(SELECT SD.dept_name FROM sys_dept SD WHERE SD.dept_id = TT.department) AS competent_department_name,
|
TPP.process_ins_id, TPP.process_def_id
|
FROM
|
temp_table TT
|
LEFT JOIN t_project_process TPP ON TPP.project_id = TT.id AND TPP.deleted = 0 AND TPP.project_type = 'ENGINEERING'
|
ORDER BY
|
TT.gmt_create DESC
|
</select>
|
|
|
<select id="getById" resultMap="BaseResultMap">
|
SELECT
|
TPP.project_id,
|
TPP.process_def_id,
|
TPP.id
|
FROM
|
t_project_process TPP
|
WHERE
|
TPP.id = #{id} AND TPP.deleted = 0
|
</select>
|
|
|
<select id="getPage" resultMap="PageResultMap">
|
SELECT
|
PI.*,
|
TPP.process_def_id,
|
TPP.process_ins_id,
|
TPIF.total_investment as investmentAmount,
|
(SELECT SD.dept_name FROM sys_dept SD WHERE SD.dept_id = PI.project_owner_unit) AS project_owner_unit_name,
|
(SELECT SD.dept_name FROM sys_dept SD WHERE SD.dept_id = PI.competent_department) AS competent_department_name,
|
d.dept_name as project_owner_unit_name
|
FROM
|
t_project_info PI
|
LEFT JOIN t_project_investment_funding TPIF ON TPIF.project_id = PI.id AND TPIF.deleted = 0
|
LEFT JOIN t_project_process TPP ON TPP.project_id = PI.id AND TPP.deleted = 0
|
LEFT JOIN sys_dept d ON d.dept_id = PI.project_owner_unit
|
<where>
|
AND PI.used_status = 2 AND PI.deleted = 0
|
<if test="query.projectName != null and query.projectName != ''">
|
AND PI.project_name like concat('%', #{query.projectName}, '%')
|
</if>
|
<if test="query.projectCode != null and query.projectCode != ''">
|
AND PI.project_code like concat('%', #{query.projectCode}, '%')
|
</if>
|
${query.params.dataScope}
|
</where>
|
|
</select>
|
|
|
<select id="getProjectInfo" parameterType="string" resultType="com.ycl.domain.entity.ProjectInfo">
|
SELECT
|
PI.id, PI.project_name
|
FROM
|
t_project_process PP
|
INNER JOIN t_project_info PI ON PP.project_id = PI.id AND PI.deleted = 0 AND PP.process_ins_id = #{processInsId}
|
</select>
|
|
|
<select id="getNormalInsIds" resultType="string">
|
SELECT TPP.process_ins_id FROM t_project_info TPI INNER JOIN t_project_process TPP ON TPI.id = TPP.project_id AND TPI.deleted = 0
|
</select>
|
|
</mapper>
|