EvaluateResultMapper.xml 11 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228
  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.xjrsoft.module.evaluate.mapper.EvaluateResultMapper">
  6. <select id="getIndexPage" parameterType="com.xjrsoft.module.evaluate.dto.EvaluateResultIndexPageDto" resultType="com.xjrsoft.module.evaluate.vo.EvaluateResultIndexPageVo">
  7. SELECT
  8. t.id AS evaluateManageId,
  9. t1.name AS semesterName,
  10. t2.name AS orgName,
  11. t4.name AS evaluateTypeCN,
  12. t.name,
  13. t.start_time,
  14. t.end_time,
  15. t.status
  16. FROM evaluate_manage t
  17. LEFT JOIN base_semester t1 ON (t1.id = t.base_semester_id)
  18. LEFT JOIN xjr_department t2 ON (t2.id = t.org_id)
  19. LEFT JOIN evaluate_template t3 ON (t3.id = t.evaluate_template_id)
  20. LEFT JOIN xjr_dictionary_detail t4 ON (t4.code = t3.evaluate_type)
  21. WHERE t.delete_mark = 0
  22. and t.status != -1
  23. <if test="dto.baseSemesterId != null and dto.baseSemesterId > 0">
  24. AND t.base_semester_id = #{dto.baseSemesterId}
  25. </if>
  26. <if test="dto.orgId != null and dto.orgId > 0">
  27. AND t.org_id = #{dto.orgId}
  28. </if>
  29. <if test="dto.evaluateType != null and dto.evaluateType != ''">
  30. AND t3.evaluate_type = #{dto.evaluateType}
  31. </if>
  32. <if test="dto.name != null and dto.name != ''">
  33. AND t.name like CONCAT('%',#{dto.name},'%')
  34. </if>
  35. <if test="dto.startTime != null and dto.startTime != ''">
  36. AND t.start_time &gt;= #{dto.startTime}
  37. </if>
  38. <if test="dto.endTime != null and dto.endTime != ''">
  39. AND t.end_time &lt;= #{dto.endTime}
  40. </if>
  41. ORDER BY t.id DESC
  42. </select>
  43. <select id="getDetailPage" parameterType="com.xjrsoft.module.evaluate.dto.EvaluateResultDetailPageDto" resultType="com.xjrsoft.module.evaluate.vo.EvaluateResultDetailPageVo">
  44. select
  45. t.evaluate_manage_id as evaluateManageId,
  46. t.evaluate_object_id as evaluatedObjectId,
  47. t.id as evaluatedExecuterId,
  48. ifnull(t1.name, t2.name) as ObjectIdCN,
  49. t4.name as userIdCN,
  50. t.status,
  51. ifnull(t5.comprehensiveScore, 0) as comprehensiveScore
  52. from evaluate_executer t
  53. inner join evaluate_object t3 on t3.id = t.evaluate_object_id
  54. left join xjr_user t1 on t1.id = t3.object_id
  55. left join base_class t2 on t2.id = t3.object_id
  56. left join xjr_user t4 on t4.id = t.user_id
  57. left join (select
  58. t.evaluated_object_id, t.user_id, sum(t.score) as comprehensiveScore
  59. from evaluate_result t
  60. group by t.evaluated_object_id, t.user_id) t5 on t5.evaluated_object_id = t.evaluate_object_id and t5.user_id = t.id
  61. where t.evaluate_manage_id = #{dto.evaluateManageId}
  62. AND t3.delete_mark = 0
  63. AND t.delete_mark = 0
  64. <if test="dto.baseGradeId != null and dto.baseGradeId > 0">
  65. AND t3.base_grade_id = #{dto.baseGradeId}
  66. </if>
  67. <if test="dto.status != null">
  68. AND t.status = #{dto.status}
  69. </if>
  70. <if test="dto.classId != null and dto.classId > 0">
  71. AND t3.object_id = #{dto.classId}
  72. </if>
  73. <if test="dto.teacherId != null and dto.teacherId > 0 and (dto.checkObject == null or dto.checkObject == 0)">
  74. AND (t3.object_id = #{dto.teacherId}
  75. or t.user_id = #{dto.teacherId})
  76. </if>
  77. <if test="dto.teacherId != null and dto.teacherId > 0 and dto.checkObject != null and dto.checkObject == 1">
  78. AND t3.object_id = #{dto.teacherId}
  79. </if>
  80. <if test="dto.teacherId != null and dto.teacherId > 0 and dto.checkObject != null and dto.checkObject == 2">
  81. AND t.user_id = #{dto.teacherId}
  82. </if>
  83. <if test="dto.name != null and dto.name != '' and (dto.checkObject == null or dto.checkObject == 0)">
  84. AND (t1.name like CONCAT('%',#{dto.name},'%')
  85. or t2.name like CONCAT('%',#{dto.name},'%')
  86. or t4.name like CONCAT('%',#{dto.name},'%'))
  87. </if>
  88. <if test="dto.name != null and dto.name != '' and dto.checkObject != null and dto.checkObject == 1">
  89. AND (t1.name like CONCAT('%',#{dto.name},'%')
  90. or t2.name like CONCAT('%',#{dto.name},'%'))
  91. </if>
  92. <if test="dto.name != null and dto.name != '' and dto.checkObject != null and dto.checkObject == 2">
  93. AND t4.name like CONCAT('%',#{dto.name},'%')
  94. </if>
  95. </select>
  96. <select id="getDetailPageDetail" parameterType="com.xjrsoft.module.evaluate.dto.EvaluateResultDetailPageDetailDto" resultType="com.xjrsoft.module.evaluate.vo.EvaluateResultDetailPageDetailVo">
  97. select
  98. ifnull(t1.name, t2.name) as ObjectIdCN,
  99. t4.name as userIdCN,
  100. ifnull(t5.comprehensiveScore, 0) as actulTotal,
  101. t6.name,
  102. t7.total
  103. from evaluate_object t
  104. left join xjr_user t1 on t1.id = t.object_id
  105. left join base_class t2 on t2.id = t.object_id
  106. left join evaluate_executer t3 on t3.evaluate_object_id = t.id
  107. left join xjr_user t4 on t4.id = t3.user_id
  108. left join (select
  109. t.evaluated_object_id, t.user_id, sum(t.score) as comprehensiveScore
  110. from evaluate_result t
  111. group by t.evaluated_object_id, t.user_id) t5 on t5.evaluated_object_id = t.id and t5.user_id = t3.id
  112. left join evaluate_manage t6 on t6.id = t.evaluate_manage_id
  113. left join evaluate_template t7 on t7.id = t6.evaluate_template_id
  114. where t.delete_mark = 0
  115. and t.evaluate_manage_id = #{dto.evaluateManageId}
  116. and t.id = #{dto.evaluatedObjectId}
  117. and t3.id = #{dto.evaluatedExecuterId}
  118. </select>
  119. <select id="getDetailPageDetailList" parameterType="com.xjrsoft.module.evaluate.dto.EvaluateResultDetailPageDetailDto" resultType="com.xjrsoft.module.evaluate.vo.EvaluateResultDetailPageDetailList">
  120. select
  121. t.score,
  122. t.problem,
  123. t.topic,
  124. t1.score as actualScore,
  125. t1.opinion,t1.option_content
  126. from evaluate_manage_item t
  127. left join evaluate_result t1 on t1.evaluate_item_id = t.id
  128. where t.delete_mark = 0
  129. and t.evaluate_manage_id = #{dto.evaluateManageId}
  130. and t1.evaluated_object_id = #{dto.evaluatedObjectId}
  131. and t1.user_id = #{dto.evaluatedExecuterId}
  132. </select>
  133. <select id="listByObjectIdAndEvaluateItemId" resultType="com.xjrsoft.module.evaluate.vo.ResultViewingPageVo">
  134. select
  135. sum(t.score) as sumScore,
  136. t.evaluate_item_id as evaluateManageItemId,
  137. t1.object_id as objectId
  138. from evaluate_result t
  139. left join evaluate_object t1 on t1.id = t.evaluated_object_id
  140. where 1 = 1
  141. <if test="evaluateObjectIdList != null and evaluateObjectIdList.size() > 0">
  142. and t.evaluate_item_id in
  143. <foreach item="evaluateManageItemId" index="index" collection="evaluateManageItemIdList" open="(" close=")" separator=",">
  144. #{evaluateManageItemId}
  145. </foreach>
  146. </if>
  147. <if test="evaluateObjectIdList != null and evaluateObjectIdList.size() > 0">
  148. and t1.object_id in
  149. <foreach item="evaluateObjectId" index="index" collection="evaluateObjectIdList" open="(" close=")" separator=",">
  150. #{evaluateObjectId}
  151. </foreach>
  152. </if>
  153. group by t1.object_id, t.evaluate_item_id;
  154. </select>
  155. <select id="listTopicScoreByObjectIdAndTopic" resultType="com.xjrsoft.module.evaluate.vo.ResultViewingPageVo">
  156. select sum(t.score) as topicScore,
  157. t1.object_id as objectId,
  158. t2.topic
  159. from evaluate_result t
  160. left join evaluate_object t1 on t1.id = t.evaluated_object_id
  161. left join evaluate_manage_item t2 on t2.id = t.evaluate_item_id
  162. where 1 = 1
  163. <if test="evaluateObjectIdList != null and evaluateObjectIdList.size() > 0">
  164. and t.evaluate_item_id in
  165. <foreach item="evaluateManageItemId" index="index" collection="evaluateManageItemIdList" open="(" close=")" separator=",">
  166. #{evaluateManageItemId}
  167. </foreach>
  168. </if>
  169. <if test="evaluateObjectIdList != null and evaluateObjectIdList.size() > 0">
  170. and t1.object_id in
  171. <foreach item="evaluateObjectId" index="index" collection="evaluateObjectIdList" open="(" close=")" separator=",">
  172. #{evaluateObjectId}
  173. </foreach>
  174. </if>
  175. group by t1.object_id, t2.topic;
  176. </select>
  177. <select id="listSynthesisScore" resultType="com.xjrsoft.module.evaluate.vo.ResultViewingPageVo">
  178. select sum(t.score) as synthesisScore,
  179. t1.object_id as objectId
  180. from evaluate_result t
  181. left join evaluate_object t1 on t1.id = t.evaluated_object_id
  182. where 1 = 1
  183. <if test="evaluateObjectIdList != null and evaluateObjectIdList.size() > 0">
  184. and t.evaluate_item_id in
  185. <foreach item="evaluateManageItemId" index="index" collection="evaluateManageItemIdList" open="(" close=")" separator=",">
  186. #{evaluateManageItemId}
  187. </foreach>
  188. </if>
  189. <if test="evaluateObjectIdList != null and evaluateObjectIdList.size() > 0">
  190. and t1.object_id in
  191. <foreach item="evaluateObjectId" index="index" collection="evaluateObjectIdList" open="(" close=")" separator=",">
  192. #{evaluateObjectId}
  193. </foreach>
  194. </if>
  195. group by t1.object_id;
  196. </select>
  197. <select id="getTeaEvaluateClassList" parameterType="com.xjrsoft.module.evaluate.dto.TeaEvaluateClassDto" resultType="com.xjrsoft.module.evaluate.vo.TeaEvaluateClassListVo">
  198. SELECT t2.evaluate_item_id as id, t2.problem,t1.score,t1.user_id,t5.object_id as evaluated_object_id FROM evaluate_result t1
  199. INNER JOIN evaluate_manage_item t2 ON t1.evaluate_item_id = t2.id
  200. INNER JOIN evaluate_manage t3 ON t3.id = t2.evaluate_manage_id
  201. INNER JOIN evaluate_template t4 ON t3.evaluate_template_id = t4.id
  202. inner join evaluate_object t5 on t1.evaluated_object_id = t5.id
  203. WHERE t1.delete_mark = 0 AND t2.delete_mark = 0 AND t3.delete_mark = 0
  204. AND t4.delete_mark = 0 AND t5.delete_mark = 0
  205. AND t3.year = #{dto.year}
  206. AND t3.month = #{dto.month}
  207. AND t4.evaluate_type = #{dto.evaluateType}
  208. </select>
  209. <select id="getResultViewingList" parameterType="com.xjrsoft.module.evaluate.dto.ResultViewingPageDto" resultType="com.xjrsoft.module.evaluate.vo.ResultViewingListVo">
  210. SELECT t1.id,t2.object_id,t3.id as evaluate_manage_item_id,t1.score,t1.user_id FROM evaluate_result t1
  211. INNER JOIN evaluate_object t2 ON t1.evaluated_object_id = t2.id
  212. INNER JOIN evaluate_manage_item t3 ON t3.id = t1.evaluate_item_id
  213. INNER JOIN evaluate_submit_record t4 ON t1.submit_record_id = t4.id
  214. WHERE t3.evaluate_manage_id = #{dto.evaluateManageId}
  215. and t4.status = 2
  216. <if test="dto.teacherId != null">
  217. AND t2.object_id = #{dto.teacherId}
  218. </if>
  219. </select>
  220. </mapper>