| 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394959697 |
- <?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.management.platform.mapper.ProjectRequirementMapper">
- <!-- 通用查询映射结果 -->
- <resultMap id="BaseResultMap" type="com.management.platform.entity.ProjectRequirement">
- <id column="id" property="id" />
- <result column="project_id" property="projectId" />
- <result column="memb_req" property="membReq" />
- <result column="task_req" property="taskReq" />
- <result column="start_date" property="startDate" javaType="java.util.Date"/>
- <result column="end_date" property="endDate" javaType="java.util.Date"/>
- </resultMap>
- <resultMap id="RichMap" type="com.management.platform.entity.ProjectRequirement">
- <id column="id" property="id" />
- <result column="project_id" property="projectId" />
- <result column="memb_req" property="membReq" />
- <result column="task_req" property="taskReq" />
- <result column="project_code" property="projectCode" />
- <result column="project_name" property="projectName" />
- <result column="active_users" property="activeUsers" />
- <result column="start_date" property="startDate" javaType="java.util.Date"/>
- <result column="end_date" property="endDate" javaType="java.util.Date"/>
- </resultMap>
- <!-- 通用查询结果列 -->
- <sql id="Base_Column_List">
- id, project_id, memb_req, task_req
- </sql>
- <select id="customSelect" resultMap="RichMap">
- SELECT project_requirement.id, project.id AS project_id, project.`project_name`, project.`project_code`, project_requirement.`memb_req`, project_requirement.`task_req`,project_requirement.contract_req,project_requirement.department_speed,project_requirement.start_date,project_requirement.end_date,
- (SELECT GROUP_CONCAT(
- <choose>
- <when test="key==1">
- DISTINCT user.`corpwx_userid`
- </when>
- <otherwise>
- DISTINCT user.`name`
- </otherwise>
- </choose>) FROM report LEFT JOIN `user` ON user.`id` = report.`creator_id` WHERE report.company_id=#{companyId} AND report.create_time >= #{startDate} AND report.`project_id` = project.id
- <if test="refTaskGroupUserIdList!=null">
- and user.`id` in
- <foreach collection="refTaskGroupUserIdList" open="(" close=")" separator="," item="item">
- #{item}
- </foreach>
- </if> ) AS active_users
- FROM project LEFT JOIN project_requirement ON project.id = project_requirement.`project_id`
- WHERE project.`company_id` = #{companyId}
- <if test="projectId != null">
- and project.id = #{projectId}
- </if>
- <if test="refProjectIdList != null">
- and project.id in
- <foreach collection="refProjectIdList" index="index" close=")" open="(" separator="," item="item">
- #{item}
- </foreach>
- </if>
- <if test="reStartDate != null and reEndDate !=null">
- and project_requirement.start_date>=#{reStartDate} and project_requirement.end_date<=#{reEndDate}
- </if>
- order by project.id asc
- <if test="startIndex!=null and startIndex!='' and pageSize!=null and pageSize!=''">
- limit #{startIndex}, #{pageSize}
- </if>
- </select>
- <select id="selectCountByDate" resultType="java.lang.Long">
- select count(*)
- from ( SELECT project_requirement.id, project.id AS project_id, project.`project_name`, project.`project_code`, project_requirement.`memb_req`, project_requirement.`task_req`,project_requirement.contract_req,project_requirement.department_speed,project_requirement.start_date,project_requirement.end_date,
- (SELECT GROUP_CONCAT(DISTINCT user.`name`) FROM report LEFT JOIN `user` ON user.`id` = report.`creator_id` WHERE report.company_id=#{companyId} AND report.create_time >= #{startDate} AND report.`project_id` = project.id
- <if test="refTaskGroupUserIdList!=null">
- and user.`id` in
- <foreach collection="refTaskGroupUserIdList" open="(" close=")" separator="," item="item">
- #{item}
- </foreach>
- </if> ) AS active_users
- FROM project LEFT JOIN project_requirement ON project.id = project_requirement.`project_id`
- WHERE project.`company_id` = #{companyId}
- <if test="projectId != null">
- and project.id = #{projectId}
- </if>
- <if test="refProjectIdList != null">
- and project.id in
- <foreach collection="refProjectIdList" index="index" close=")" open="(" separator="," item="item">
- #{item}
- </foreach>
- </if>
- <if test="reStartDate != null and reEndDate !=null">
- and project_requirement.start_date>=#{reStartDate} and project_requirement.end_date<=#{reEndDate}
- </if>
- order by project.id asc
- <if test="startIndex!=null and startIndex!='' and pageSize!=null and pageSize!=''">
- limit #{startIndex}, #{pageSize}
- </if>) as total
- </select>
- </mapper>
|