QualificationLevelIndicatorMapper.xml 1.8 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546
  1. <?xml version="1.0" encoding="UTF-8" ?>
  2. <!DOCTYPE mapper
  3. PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
  4. "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
  5. <mapper namespace="com.sundot.airport.system.mapper.portrait.QualificationLevelIndicatorMapper">
  6. <resultMap type="com.sundot.airport.system.domain.portrait.QualificationStats" id="QualificationStatsResult">
  7. <result property="levelName" column="level_name"/>
  8. <result property="count" column="count"/>
  9. <result property="totalCount" column="total_count"/>
  10. <result property="percentage" column="percentage"/>
  11. </resultMap>
  12. <!-- 定义用户ID列表的SQL片段 -->
  13. <sql id="userIdsCondition">
  14. <foreach collection="userIds" item="item" open="(" separator="," close=")">
  15. #{item}
  16. </foreach>
  17. </sql>
  18. <!-- 查询个人资质等级 -->
  19. <select id="queryPersonalQualificationLevel" parameterType="Long" resultType="String">
  20. SELECT qualification_level
  21. FROM sys_user
  22. WHERE user_id = #{userId}
  23. </select>
  24. <!-- 查询组织资质等级统计 -->
  25. <select id="queryOrgQualificationLevelStats" resultMap="QualificationStatsResult">
  26. SELECT
  27. qualification_level as level_name,
  28. COUNT(*) as count,
  29. (SELECT COUNT(*) FROM sys_user WHERE user_id in
  30. <include refid="userIdsCondition"/>
  31. and del_flag='0' and status='0' ) as total_count,
  32. ROUND(COUNT(*) * 100.0 / (SELECT COUNT(*) FROM sys_user WHERE user_id in<include refid="userIdsCondition"/>), 2)
  33. as percentage
  34. FROM sys_user
  35. WHERE user_id in
  36. <include refid="userIdsCondition"/>
  37. and del_flag='0' and status='0'
  38. AND qualification_level IS NOT NULL
  39. GROUP BY qualification_level
  40. </select>
  41. </mapper>