EvaluateManageMapper.xml 11 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219
  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.EvaluateManageMapper">
  6. <select id="getPage" parameterType="com.xjrsoft.module.evaluate.dto.EvaluateManagePageDto" resultType="com.xjrsoft.module.evaluate.vo.EvaluateManagePageVo">
  7. SELECT t1.id,t2.name AS semester_name,t4.name AS org_name,t3.evaluate_type,t5.name AS evaluate_type_cn,t1.name,t1.start_time,t1.end_time,t1.status FROM evaluate_manage t1
  8. LEFT JOIN base_semester t2 ON t2.id = t1.base_semester_id
  9. LEFT JOIN evaluate_template t3 ON t3.id = t1.evaluate_template_id
  10. LEFT JOIN xjr_department t4 ON t4.id = t1.org_id
  11. LEFT JOIN xjr_dictionary_detail t5 ON t5.code = t3.evaluate_type AND t5.item_id = 1746831039385366530
  12. WHERE t1.delete_mark = 0
  13. <if test="dto.semesterId != null">
  14. and t1.base_semester_id = #{dto.semesterId}
  15. </if>
  16. <if test="dto.orgId != null">
  17. and t1.org_id = #{dto.orgId}
  18. </if>
  19. <if test="dto.evaluateType != null and dto.evaluateType != ''">
  20. and t3.evaluate_type = #{dto.evaluateType}
  21. </if>
  22. <if test="dto.status != null">
  23. and t1.status = #{dto.status}
  24. </if>
  25. <if test="dto.startTime != null">
  26. and t1.start_time >= #{dto.startTime}
  27. </if>
  28. <if test="dto.endTime != null">
  29. and #{dto.endTime} >= t1.end_time
  30. </if>
  31. <if test="dto.name != null and dto.name != ''">
  32. and t1.name like concat('%', #{dto.name}, '%')
  33. </if>
  34. ORDER BY t1.create_date DESC
  35. </select>
  36. <select id="getList" parameterType="com.xjrsoft.module.room.dto.RoomPageDto" resultType="com.xjrsoft.module.room.vo.RoomExcelVo">
  37. </select>
  38. <select id="getMaxSortCode" resultType="java.lang.Integer">
  39. SELECT IFNULL(MAX(sort_code),1) FROM evaluate_manage WHERE delete_mark = 0
  40. </select>
  41. <select id="getMobileIndexPage" parameterType="com.xjrsoft.module.evaluate.dto.MobileIndexPageDto" resultType="com.xjrsoft.module.evaluate.vo.MobileIndexPageVo">
  42. select
  43. distinct
  44. t.id as evaluateManageId,
  45. t.name,
  46. t2.evaluate_type,
  47. t.status,
  48. t4.name as evaluateTypeCn,
  49. (select
  50. count(tb3.status)
  51. from evaluate_manage tb1
  52. left join evaluate_executer tb3 on tb3.evaluate_manage_id = tb1.id
  53. where tb1.delete_mark = 0
  54. and tb1.status = 1
  55. and tb3.status = 0
  56. and tb3.user_id = t3.user_id
  57. and tb1.id = t.id) as ratedCount
  58. from evaluate_manage t
  59. left join evaluate_template t2 on t2.id = t.evaluate_template_id
  60. left join evaluate_executer t3 on t3.evaluate_manage_id = t.id
  61. left join xjr_dictionary_detail t4 on t4.code = t2.evaluate_type
  62. where t.delete_mark = 0
  63. and t.status = 1
  64. and t3.user_id = #{dto.loginUserId}
  65. <if test="dto.keyword != null and dto.keyword != ''">
  66. and (t.name like concat('%', #{dto.keyword}, '%')
  67. or t4.name like concat('%', #{dto.keyword}, '%'))
  68. </if>
  69. </select>
  70. <select id="getMobileResultPage" parameterType="com.xjrsoft.module.evaluate.dto.MobileResultPageDto" resultType="com.xjrsoft.module.evaluate.vo.MobileResultPageVo">
  71. select
  72. t.id as evaluateSubmitRecordId,
  73. t.evaluate_manage_id as evaluateManageId,
  74. t1.name,
  75. t.evaluated_object_id as evaluateObjectId,
  76. t3.object_id as objectId,
  77. ifnull(t4.name, t5.name) as objectIdCn,
  78. t2.id as evaluateUserId,
  79. t2.user_id as userId,
  80. t6.name as userIdCn,
  81. t.create_date as startTime,
  82. t.status as evaluateStatus,
  83. t7.evaluate_type as evaluateType,
  84. t8.name as evaluateTypeCn
  85. from evaluate_submit_record t
  86. left join evaluate_manage t1 on t1.id = t.evaluate_manage_id
  87. left join evaluate_executer t2 on t2.id = t.evaluate_executer_id
  88. left join evaluate_object t3 on t3.id = t.evaluated_object_id
  89. left join xjr_user t4 on t4.id = t3.object_id
  90. left join base_class t5 on t5.id = t3.object_id
  91. left join xjr_user t6 on t6.id = t2.user_id
  92. left join evaluate_template t7 on t7.id = t1.evaluate_template_id
  93. left join xjr_dictionary_detail t8 on t8.code = t7.evaluate_type
  94. where t2.user_id = #{dto.loginUserId}
  95. and t.evaluate_manage_id = #{dto.evaluateManageId}
  96. AND t3.object_id IS NOT NULL
  97. <if test="dto.status != null">
  98. and t.status = #{dto.status}
  99. </if>
  100. <if test="dto.startTime != null and dto.startTime != '' and dto.endTime != null and dto.startTime != ''">
  101. AND (
  102. (t1.start_time BETWEEN #{dto.startTime} and #{dto.endTime})
  103. OR (t1.end_time BETWEEN #{dto.startTime} and #{dto.endTime})
  104. OR (t1.start_time > #{dto.startTime} and #{dto.endTime} > t1.end_time)
  105. OR (#{dto.startTime} > t1.start_time and t1.end_time > #{dto.endTime})
  106. )
  107. </if>
  108. order by t.status;
  109. </select>
  110. <select id="getDrillEvaluateClassList" parameterType="com.xjrsoft.module.evaluate.dto.DrillEvaluateClassListDto" resultType="com.xjrsoft.module.evaluate.vo.DrillEvaluateClassListVo">
  111. select
  112. t.id as evaluateSubmitRecordId,
  113. t.evaluate_manage_id as evaluateManageId,
  114. t1.name,
  115. t.evaluated_object_id as evaluateObjectId,
  116. t3.object_id as objectId,
  117. ifnull(t4.name, t5.name) as objectIdCn,
  118. t2.id as evaluateUserId,
  119. t2.user_id as userId,
  120. t6.name as userIdCn,
  121. t1.start_time,
  122. t1.end_time,
  123. t.status as evaluateStatus,
  124. t7.evaluate_type as evaluateType,
  125. t8.name as evaluateTypeCn
  126. from evaluate_submit_record t
  127. left join evaluate_manage t1 on t1.id = t.evaluate_manage_id
  128. left join evaluate_executer t2 on t2.id = t.evaluate_executer_id
  129. left join evaluate_object t3 on t3.id = t.evaluated_object_id
  130. left join xjr_user t4 on t4.id = t3.object_id
  131. left join base_class t5 on t5.id = t3.object_id
  132. left join xjr_user t6 on t6.id = t2.user_id
  133. left join evaluate_template t7 on t7.id = t1.evaluate_template_id
  134. left join xjr_dictionary_detail t8 on t8.code = t7.evaluate_type
  135. left join base_classroom t9 on t9.id = t5.classroom_id
  136. left join base_class_major_set t10 on t10.class_id = t5.id
  137. left join base_major_set t11 on t11.id = t10.major_set_id
  138. where t.create_date like concat('%', #{dto.todayDate}, '%')
  139. and t2.user_id = #{dto.loginUserId}
  140. and t.evaluate_manage_id = #{dto.evaluateManageId}
  141. <if test="dto.majorId != null and dto.majorId > 0">
  142. and t10.major_id = #{dto.majorId}
  143. </if>
  144. <if test="dto.officeBuildId != null and dto.officeBuildId > 0">
  145. and t8.officeBuildId = #{dto.officeBuildId}
  146. </if>
  147. order by t.status;
  148. </select>
  149. <select id="getWriteInfo" parameterType="com.xjrsoft.module.evaluate.dto.EvaluateWritePageDto" resultType="com.xjrsoft.module.evaluate.vo.EvaluateWriteVo">
  150. select t1.id, t1.name,t2.total as sumScore,t1.start_time,t1.end_time,
  151. (SELECT COUNT(id) FROM evaluate_manage_item a WHERE t1.delete_mark = 0 AND a.evaluate_manage_id = t1.id) AS item_count
  152. from evaluate_manage t1
  153. left join evaluate_template t2 on t2.id = t1.evaluate_template_id
  154. where t1.delete_mark = 0
  155. and t1.id = #{id}
  156. </select>
  157. <select id="getItemList" resultType="com.xjrsoft.module.evaluate.vo.EvaluateManageItemVo">
  158. SELECT * FROM evaluate_manage_item WHERE delete_mark = 0 AND evaluate_manage_id = #{id} ORDER BY sort_code
  159. </select>
  160. <select id="getResultList" parameterType="com.xjrsoft.module.evaluate.dto.ResultListDto" resultType="com.xjrsoft.module.evaluate.vo.EvaluateManageItemVo">
  161. SELECT t1.id,
  162. t1.sort_code,
  163. t1.evaluate_manage_id,
  164. t1.topic,
  165. t1.problem,
  166. t1.score,
  167. t2.score AS actualScore,
  168. t2.opinion,
  169. t1.input_not_null,
  170. t1.option_json,
  171. t1.type,
  172. t2.option_content
  173. FROM evaluate_submit_record t
  174. LEFT JOIN evaluate_result t2 ON t2.submit_record_id = t.id
  175. left join evaluate_manage_item t1 on t1.id = t2.evaluate_item_id
  176. LEFT JOIN evaluate_executer t3 ON t3.id = t.evaluate_executer_id
  177. WHERE t1.delete_mark = 0
  178. AND t.id = #{dto.evaluateSubmitRecordId}
  179. ORDER BY t1.sort_code
  180. </select>
  181. <select id="getScoreList" parameterType="com.xjrsoft.module.evaluate.dto.EvaluateManageScoreDto" resultType="com.xjrsoft.module.evaluate.vo.EvaluateManageScoreVo">
  182. select t.submit_record_id as submitRecordId,
  183. sum(t.score) as totalScore,
  184. count(t.score) as itemCount
  185. from evaluate_result t
  186. left join evaluate_submit_record t3 on t3.id = t.submit_record_id
  187. where t.delete_mark = 0
  188. and t.submit_record_id in
  189. <foreach item="submitRecordId" index="index" collection="dto.submitRecordIdList" open="(" close=")"
  190. separator=",">
  191. #{submitRecordId}
  192. </foreach>
  193. group by t.submit_record_id;
  194. </select>
  195. <insert id="insertEvaluateSubmitRecord" parameterType="java.lang.Long">
  196. insert into evaluate_submit_record (id, evaluate_manage_id, evaluate_executer_id, create_date, evaluated_object, evaluated_object_id, status)
  197. (SELECT
  198. UUID(),
  199. t.evaluate_manage_id,
  200. t.id,
  201. NOW(),
  202. if(t2.evaluate_type='dm_evaluate_class', 'class', 'teacher'),
  203. t.evaluate_object_id,
  204. 0
  205. FROM evaluate_executer t
  206. LEFT JOIN evaluate_manage t1 ON (t1.id = t.evaluate_manage_id)
  207. LEFT JOIN evaluate_template t2 ON (t2.id = t1.evaluate_template_id)
  208. WHERE t.delete_mark = 0
  209. AND t.evaluate_manage_id = #{evaluateManageId})
  210. </insert>
  211. </mapper>