ProjectRequirementMapper.xml 5.1 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394959697
  1. <?xml version="1.0" encoding="UTF-8"?>
  2. <!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
  3. <mapper namespace="com.management.platform.mapper.ProjectRequirementMapper">
  4. <!-- 通用查询映射结果 -->
  5. <resultMap id="BaseResultMap" type="com.management.platform.entity.ProjectRequirement">
  6. <id column="id" property="id" />
  7. <result column="project_id" property="projectId" />
  8. <result column="memb_req" property="membReq" />
  9. <result column="task_req" property="taskReq" />
  10. <result column="start_date" property="startDate" javaType="java.util.Date"/>
  11. <result column="end_date" property="endDate" javaType="java.util.Date"/>
  12. </resultMap>
  13. <resultMap id="RichMap" type="com.management.platform.entity.ProjectRequirement">
  14. <id column="id" property="id" />
  15. <result column="project_id" property="projectId" />
  16. <result column="memb_req" property="membReq" />
  17. <result column="task_req" property="taskReq" />
  18. <result column="project_code" property="projectCode" />
  19. <result column="project_name" property="projectName" />
  20. <result column="active_users" property="activeUsers" />
  21. <result column="start_date" property="startDate" javaType="java.util.Date"/>
  22. <result column="end_date" property="endDate" javaType="java.util.Date"/>
  23. </resultMap>
  24. <!-- 通用查询结果列 -->
  25. <sql id="Base_Column_List">
  26. id, project_id, memb_req, task_req
  27. </sql>
  28. <select id="customSelect" resultMap="RichMap">
  29. 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,
  30. (SELECT GROUP_CONCAT(
  31. <choose>
  32. <when test="key==1">
  33. DISTINCT user.`corpwx_userid`
  34. </when>
  35. <otherwise>
  36. DISTINCT user.`name`
  37. </otherwise>
  38. </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
  39. <if test="refTaskGroupUserIdList!=null">
  40. and user.`id` in
  41. <foreach collection="refTaskGroupUserIdList" open="(" close=")" separator="," item="item">
  42. #{item}
  43. </foreach>
  44. </if> ) AS active_users
  45. FROM project LEFT JOIN project_requirement ON project.id = project_requirement.`project_id`
  46. WHERE project.`company_id` = #{companyId}
  47. <if test="projectId != null">
  48. and project.id = #{projectId}
  49. </if>
  50. <if test="refProjectIdList != null">
  51. and project.id in
  52. <foreach collection="refProjectIdList" index="index" close=")" open="(" separator="," item="item">
  53. #{item}
  54. </foreach>
  55. </if>
  56. <if test="reStartDate != null and reEndDate !=null">
  57. and project_requirement.start_date>=#{reStartDate} and project_requirement.end_date&lt;=#{reEndDate}
  58. </if>
  59. order by project.id asc
  60. <if test="startIndex!=null and startIndex!='' and pageSize!=null and pageSize!=''">
  61. limit #{startIndex}, #{pageSize}
  62. </if>
  63. </select>
  64. <select id="selectCountByDate" resultType="java.lang.Long">
  65. select count(*)
  66. 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,
  67. (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
  68. <if test="refTaskGroupUserIdList!=null">
  69. and user.`id` in
  70. <foreach collection="refTaskGroupUserIdList" open="(" close=")" separator="," item="item">
  71. #{item}
  72. </foreach>
  73. </if> ) AS active_users
  74. FROM project LEFT JOIN project_requirement ON project.id = project_requirement.`project_id`
  75. WHERE project.`company_id` = #{companyId}
  76. <if test="projectId != null">
  77. and project.id = #{projectId}
  78. </if>
  79. <if test="refProjectIdList != null">
  80. and project.id in
  81. <foreach collection="refProjectIdList" index="index" close=")" open="(" separator="," item="item">
  82. #{item}
  83. </foreach>
  84. </if>
  85. <if test="reStartDate != null and reEndDate !=null">
  86. and project_requirement.start_date>=#{reStartDate} and project_requirement.end_date&lt;=#{reEndDate}
  87. </if>
  88. order by project.id asc
  89. <if test="startIndex!=null and startIndex!='' and pageSize!=null and pageSize!=''">
  90. limit #{startIndex}, #{pageSize}
  91. </if>) as total
  92. </select>
  93. </mapper>