InspectionTaskMapper.xml 7.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200
  1. <?xml version="1.0" encoding="UTF-8"?>
  2. <!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
  3. "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
  4. <mapper namespace="cn.chinaunicom.omniFlowNetCompute.mapper.InspectionTaskMapper">
  5. <!-- InspectionItem结果映射 -->
  6. <resultMap id="InspectionItemResultMap" type="cn.chinaunicom.omniFlowNetCompute.domain.InspectionItem">
  7. <id column="id" property="id" />
  8. <result column="task_id" property="taskId" />
  9. <result column="item_name" property="itemName" />
  10. <result column="category" property="category" />
  11. <result column="check_method" property="checkMethod" />
  12. <result column="standard_value" property="standardValue" />
  13. <result column="sort_order" property="sortOrder" />
  14. <result column="create_time" property="createTime" />
  15. </resultMap>
  16. <!-- InspectionTask结果映射(基础) -->
  17. <resultMap id="InspectionTaskResultMap" type="cn.chinaunicom.omniFlowNetCompute.domain.InspectionTask">
  18. <id column="id" property="id" />
  19. <result column="task_name" property="taskName" />
  20. <result column="task_description" property="taskDescription" />
  21. <result column="baseline_image" property="baselineImage" />
  22. <result column="status" property="status" />
  23. <result column="create_time" property="createTime" />
  24. <result column="update_time" property="updateTime" />
  25. </resultMap>
  26. <!-- InspectionTask结果映射(包含巡检项) -->
  27. <resultMap id="InspectionTaskWithItemsResultMap" type="cn.chinaunicom.omniFlowNetCompute.domain.InspectionTask"
  28. extends="InspectionTaskResultMap">
  29. <collection property="items" resultMap="InspectionItemResultMap" columnPrefix="item_" />
  30. </resultMap>
  31. <!-- ========== 巡检任务SQL ========== -->
  32. <!-- 插入巡检任务 -->
  33. <insert id="insertTask" parameterType="cn.chinaunicom.omniFlowNetCompute.domain.InspectionTask"
  34. useGeneratedKeys="true" keyProperty="id">
  35. INSERT INTO inspection_task (
  36. task_name, task_description, baseline_image,
  37. status, create_time, update_time
  38. ) VALUES (
  39. #{taskName}, #{taskDescription}, #{baselineImage},
  40. #{status}, NOW(), NOW()
  41. )
  42. </insert>
  43. <!-- 更新巡检任务 -->
  44. <update id="updateTask" parameterType="cn.chinaunicom.omniFlowNetCompute.domain.InspectionTask">
  45. UPDATE inspection_task
  46. <set>
  47. <if test="taskName != null">task_name = #{taskName},</if>
  48. <if test="taskDescription != null">task_description = #{taskDescription},</if>
  49. <if test="baselineImage != null">baseline_image = #{baselineImage},</if>
  50. <if test="status != null">status = #{status},</if>
  51. update_time = NOW()
  52. </set>
  53. WHERE id = #{id}
  54. </update>
  55. <!-- 删除巡检任务 -->
  56. <delete id="deleteTask">
  57. DELETE FROM inspection_task WHERE id = #{id}
  58. </delete>
  59. <!-- 根据ID查询巡检任务(不包含巡检项) -->
  60. <select id="selectTaskById" resultMap="InspectionTaskResultMap">
  61. SELECT * FROM inspection_task WHERE id = #{id}
  62. </select>
  63. <!-- 查询所有巡检任务(不包含巡检项) -->
  64. <select id="selectAllTasks" resultMap="InspectionTaskResultMap">
  65. SELECT * FROM inspection_task
  66. ORDER BY create_time DESC
  67. </select>
  68. <!-- 根据状态查询巡检任务 -->
  69. <select id="selectTasksByStatus" resultMap="InspectionTaskResultMap">
  70. SELECT * FROM inspection_task
  71. WHERE status = #{status}
  72. ORDER BY create_time DESC
  73. </select>
  74. <!-- 根据任务名称模糊查询 -->
  75. <select id="selectTasksByName" resultMap="InspectionTaskResultMap">
  76. SELECT * FROM inspection_task
  77. WHERE task_name LIKE CONCAT('%', #{taskName}, '%')
  78. ORDER BY create_time DESC
  79. </select>
  80. <!-- ========== 巡检项SQL ========== -->
  81. <!-- 插入巡检项 -->
  82. <insert id="insertItem" parameterType="cn.chinaunicom.omniFlowNetCompute.domain.InspectionItem"
  83. useGeneratedKeys="true" keyProperty="id">
  84. INSERT INTO inspection_item (
  85. task_id, item_name, category, check_method,
  86. standard_value, sort_order, create_time
  87. ) VALUES (
  88. #{taskId}, #{itemName}, #{category}, #{checkMethod},
  89. #{standardValue}, #{sortOrder}, NOW()
  90. )
  91. </insert>
  92. <!-- 批量插入巡检项 -->
  93. <insert id="batchInsertItems" parameterType="list">
  94. INSERT INTO inspection_item (
  95. task_id, item_name, category, check_method,
  96. standard_value, sort_order, create_time
  97. ) VALUES
  98. <foreach collection="list" item="item" separator=",">
  99. (#{item.taskId}, #{item.itemName}, #{item.category}, #{item.checkMethod},
  100. #{item.standardValue}, #{item.sortOrder}, NOW())
  101. </foreach>
  102. </insert>
  103. <!-- 更新巡检项 -->
  104. <update id="updateItem" parameterType="cn.chinaunicom.omniFlowNetCompute.domain.InspectionItem">
  105. UPDATE inspection_item
  106. <set>
  107. <if test="itemName != null">item_name = #{itemName},</if>
  108. <if test="category != null">category = #{category},</if>
  109. <if test="checkMethod != null">check_method = #{checkMethod},</if>
  110. <if test="standardValue != null">standard_value = #{standardValue},</if>
  111. <if test="sortOrder != null">sort_order = #{sortOrder},</if>
  112. </set>
  113. WHERE id = #{id}
  114. </update>
  115. <!-- 删除巡检项 -->
  116. <delete id="deleteItem">
  117. DELETE FROM inspection_item WHERE id = #{id}
  118. </delete>
  119. <!-- 根据任务ID删除所有巡检项 -->
  120. <delete id="deleteItemsByTaskId">
  121. DELETE FROM inspection_item WHERE task_id = #{taskId}
  122. </delete>
  123. <!-- 根据任务ID查询巡检项 -->
  124. <select id="selectItemsByTaskId" resultMap="InspectionItemResultMap">
  125. SELECT * FROM inspection_item
  126. WHERE task_id = #{taskId}
  127. ORDER BY sort_order, id
  128. </select>
  129. <!-- 根据ID查询巡检项 -->
  130. <select id="selectItemById" resultMap="InspectionItemResultMap">
  131. SELECT * FROM inspection_item WHERE id = #{id}
  132. </select>
  133. <!-- ========== 统计查询SQL ========== -->
  134. <!-- 统计任务数量 -->
  135. <select id="countTasks" resultType="int">
  136. SELECT COUNT(*) FROM inspection_task
  137. </select>
  138. <!-- 统计指定状态的巡检任务数量 -->
  139. <select id="countTasksByStatus" resultType="int">
  140. SELECT COUNT(*) FROM inspection_task WHERE status = #{status}
  141. </select>
  142. <!-- 获取任务及其巡检项(关联查询) -->
  143. <select id="selectTaskWithItems" resultMap="InspectionTaskWithItemsResultMap">
  144. SELECT
  145. t.*,
  146. i.id as item_id,
  147. i.task_id as item_task_id,
  148. i.item_name as item_item_name,
  149. i.category as item_category,
  150. i.check_method as item_check_method,
  151. i.standard_value as item_standard_value,
  152. i.sort_order as item_sort_order,
  153. i.create_time as item_create_time
  154. FROM inspection_task t
  155. LEFT JOIN inspection_item i ON t.id = i.task_id
  156. WHERE t.id = #{id}
  157. ORDER BY i.sort_order, i.id
  158. </select>
  159. <!-- 获取所有任务及其巡检项(关联查询) -->
  160. <select id="selectAllTasksWithItems" resultMap="InspectionTaskWithItemsResultMap">
  161. SELECT
  162. t.*,
  163. i.id as item_id,
  164. i.task_id as item_task_id,
  165. i.item_name as item_item_name,
  166. i.category as item_category,
  167. i.check_method as item_check_method,
  168. i.standard_value as item_standard_value,
  169. i.sort_order as item_sort_order,
  170. i.create_time as item_create_time
  171. FROM inspection_task t
  172. LEFT JOIN inspection_item i ON t.id = i.task_id
  173. ORDER BY t.create_time DESC, i.sort_order, i.id
  174. </select>
  175. </mapper>