PushUserMapper.xml 11 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300
  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="cn.com.ty.lift.business.push.mapper.PushUserMapper">
  4. <!-- 通用查询映射结果 -->
  5. <resultMap id="BaseResultMap" type="cn.com.ty.lift.common.model.PushUserInfo">
  6. <id column="user_id" property="userId"/>
  7. <result column="username" property="userName"/>
  8. <result column="mobile" property="mobile"/>
  9. <result column="device_model" property="deviceModel"/>
  10. <result column="device_flag" property="deviceFlag"/>
  11. <result column="role_name" property="roleName"/>
  12. </resultMap>
  13. <select id="listByUserId" resultMap="BaseResultMap">
  14. SELECT
  15. ui.user_id,
  16. ui.NAME AS username,
  17. ua.mobile,
  18. ua.device_model,
  19. ua.device_flag,
  20. ro.NAME AS role_name
  21. FROM
  22. user_info ui
  23. LEFT JOIN user_account ua ON ui.user_id = ua.user_id
  24. LEFT JOIN user_role ur ON ui.user_id = ur.user_id
  25. LEFT JOIN role ro ON ro.id = ur.role_id
  26. <where>
  27. <if test="mtCompanyId != null and mtCompanyId > 0">
  28. AND ur.company_id = #{mtCompanyId}
  29. </if>
  30. <if test="userId != null and userId > 0">
  31. AND ui.user_id = #{userId}
  32. </if>
  33. </where>
  34. </select>
  35. <select id="listByUserIds" resultMap="BaseResultMap">
  36. SELECT
  37. ui.user_id,
  38. ui.NAME AS username,
  39. ua.mobile,
  40. ua.device_model,
  41. ua.device_flag,
  42. ro.NAME AS role_name
  43. FROM
  44. user_info ui
  45. LEFT JOIN user_account ua ON ui.user_id = ua.user_id
  46. LEFT JOIN user_role ur ON ui.user_id = ur.user_id
  47. LEFT JOIN role ro ON ro.id = ur.role_id
  48. <where>
  49. <if test="mtCompanyId != null and mtCompanyId > 0">
  50. AND ur.company_id = #{mtCompanyId}
  51. </if>
  52. <if test="userIds != null and userIds.size > 0">
  53. AND ui.user_id IN
  54. <foreach collection="userIds" item="userId" open="(" separator="," close=")">
  55. #{userId, jdbcType=BIGINT}
  56. </foreach>
  57. </if>
  58. </where>
  59. </select>
  60. <select id="listByRoleCodes" resultMap="BaseResultMap">
  61. SELECT
  62. ui.user_id,
  63. ui.NAME AS username,
  64. ua.mobile,
  65. ua.device_model,
  66. ua.device_flag,
  67. ro.NAME AS role_name
  68. FROM
  69. user_info ui
  70. LEFT JOIN user_account ua ON ui.user_id = ua.user_id
  71. LEFT JOIN user_role ur ON ui.user_id = ur.user_id
  72. LEFT JOIN role ro ON ro.id = ur.role_id
  73. <where>
  74. <if test="mtCompanyId != null and mtCompanyId > 0">
  75. AND ur.company_id = #{mtCompanyId}
  76. </if>
  77. <if test="roleCodes != null">
  78. AND ro.code IN
  79. <foreach collection="roleCodes" item="roleCode" open="(" separator="," close=")">
  80. #{roleCode, jdbcType=VARCHAR}
  81. </foreach>
  82. </if>
  83. </where>
  84. </select>
  85. <select id="listByRoleCode" resultMap="BaseResultMap">
  86. SELECT
  87. ui.user_id,
  88. ui.NAME AS username,
  89. ua.mobile,
  90. ua.device_model,
  91. ua.device_flag,
  92. ro.NAME AS role_name
  93. FROM
  94. user_info ui
  95. LEFT JOIN user_account ua ON ui.user_id = ua.user_id
  96. LEFT JOIN user_role ur ON ui.user_id = ur.user_id
  97. LEFT JOIN role ro ON ro.id = ur.role_id
  98. <where>
  99. <if test="mtCompanyId != null and mtCompanyId > 0">
  100. AND ur.company_id = #{mtCompanyId}
  101. </if>
  102. <if test="roleCode != null and roleCode != ''">
  103. AND ro.code = #{roleCode, jdbcType=VARCHAR}
  104. </if>
  105. </where>
  106. </select>
  107. <select id="findRegionByEmergencyRepair" resultType="cn.com.ty.lift.business.project.dao.entity.Region">
  108. SELECT
  109. re.user_id,
  110. re.clerk
  111. FROM emergency_repair er
  112. LEFT JOIN project pr ON pr.id = er.project_id
  113. LEFT JOIN region re ON re.id = pr.region_id
  114. <where>
  115. <if test="id != null and id > 0">
  116. AND er.id = #{id}
  117. </if>
  118. <if test="mtCompanyId != null and mtCompanyId > 0">
  119. AND er.mt_company_id = #{mtCompanyId}
  120. </if>
  121. </where>
  122. </select>
  123. <select id="findRegionByAnnualInspection" resultType="cn.com.ty.lift.business.project.dao.entity.Region">
  124. SELECT
  125. re.user_id,
  126. re.clerk
  127. FROM annual_inspection ai
  128. LEFT JOIN project_lift_relevance plr ON plr.lift_id = ai.lift_id AND plr.mt_company_id = ai.mt_company_id
  129. LEFT JOIN project pr ON pr.id = plr.project_id
  130. LEFT JOIN region re ON re.id = pr.region_id
  131. <where>
  132. <if test="id != null and id > 0">
  133. AND ai.id = #{id}
  134. </if>
  135. <if test="mtCompanyId != null and mtCompanyId > 0">
  136. AND ai.mt_company_id = #{mtCompanyId}
  137. </if>
  138. </where>
  139. </select>
  140. <select id="findRegionByProject" resultType="cn.com.ty.lift.business.project.dao.entity.Region">
  141. SELECT
  142. re.user_id,
  143. re.clerk
  144. FROM project pr
  145. LEFT JOIN region re ON re.id = pr.region_id
  146. <where>
  147. <if test="id != null and id > 0">
  148. AND pr.id = #{id}
  149. </if>
  150. <if test="mtCompanyId != null and mtCompanyId > 0">
  151. AND pr.mt_company_id = #{mtCompanyId}
  152. </if>
  153. </where>
  154. </select>
  155. <select id="pageMtCompanyByAnnualInspection" resultType="cn.com.ty.lift.business.push.entity.InspectionTips">
  156. SELECT
  157. mc.id AS mt_company_id,
  158. plr.worker_id,
  159. pr.project_name,
  160. li.device_position,
  161. li.registration_code,
  162. re.user_id AS director_id,
  163. re.clerk
  164. FROM
  165. maintenance_company mc
  166. LEFT JOIN annual_inspection ai ON ai.mt_company_id = mc.id
  167. LEFT JOIN project_lift_relevance plr ON plr.lift_id = ai.lift_id AND ai.mt_company_id = plr.mt_company_id
  168. LEFT JOIN lift li ON li.id = ai.lift_id
  169. LEFT JOIN project pr ON pr.id = plr.project_id
  170. LEFT JOIN region re ON pr.region_id = re.id
  171. WHERE
  172. ai.id > 0
  173. AND plr.project_id > 0
  174. AND re.id > 0
  175. AND li.id > 0
  176. AND li.annual_inspection_date &lt;= date_add(CURDATE(), INTERVAL #{days} DAY)
  177. AND li.annual_inspection_date >= CURDATE()
  178. </select>
  179. <select id="listMtCompanyByEmergencyRepairForRegion" resultType="cn.com.ty.lift.business.push.entity.RepairTips">
  180. SELECT
  181. t.mt_company_id,
  182. t.area_name,
  183. t.director_id,
  184. t.clerk,
  185. SUM(t.total) AS total,
  186. SUM( CASE t.STATUS WHEN '1' THEN t.total ELSE 0 END ) AS repairing,
  187. SUM( CASE t.STATUS WHEN '2' THEN t.total ELSE 0 END ) AS finish
  188. FROM
  189. (
  190. SELECT
  191. mc.id AS mt_company_id,
  192. er.`status`,
  193. re.area_name,
  194. re.user_id AS director_id,
  195. re.clerk,
  196. count( * ) AS total
  197. FROM
  198. maintenance_company mc
  199. LEFT JOIN emergency_repair er ON er.mt_company_id = mc.id
  200. LEFT JOIN project_lift_relevance plr ON plr.project_id = er.project_id
  201. AND plr.mt_company_id = er.mt_company_id
  202. LEFT JOIN project pr ON pr.id = er.project_id
  203. LEFT JOIN region re ON pr.region_id = re.id
  204. WHERE
  205. er.id > 0
  206. AND re.id > 0
  207. AND TO_DAYS( er.create_date ) = TO_DAYS( NOW( ) )
  208. GROUP BY
  209. mc.id,
  210. re.id,
  211. er.`status`
  212. HAVING
  213. count( * ) > 0
  214. ) t
  215. GROUP BY
  216. t.mt_company_id,t.director_id
  217. </select>
  218. <select id="listMtCompanyByEmergencyRepairForDirector" resultType="cn.com.ty.lift.business.push.entity.RepairTips">
  219. SELECT
  220. t.mt_company_id,
  221. t.area_name,
  222. t.director_id,
  223. t.clerk,
  224. SUM(t.total) AS total,
  225. SUM( CASE t.STATUS WHEN '1' THEN t.total ELSE 0 END ) AS repairing,
  226. SUM( CASE t.STATUS WHEN '2' THEN t.total ELSE 0 END ) AS finish
  227. FROM
  228. (
  229. SELECT
  230. mc.id AS mt_company_id,
  231. er.`status`,
  232. re.area_name,
  233. re.user_id AS director_id,
  234. re.clerk,
  235. count( * ) AS total
  236. FROM
  237. maintenance_company mc
  238. LEFT JOIN emergency_repair er ON er.mt_company_id = mc.id
  239. LEFT JOIN project_lift_relevance plr ON plr.project_id = er.project_id AND plr.mt_company_id = er.mt_company_id
  240. LEFT JOIN project pr ON pr.id = er.project_id
  241. LEFT JOIN region re ON pr.region_id = re.id
  242. WHERE
  243. er.id > 0
  244. AND re.id > 0
  245. AND TO_DAYS( er.create_date ) = TO_DAYS( NOW( ) )
  246. GROUP BY
  247. mc.id,
  248. re.id,
  249. er.`status`
  250. HAVING
  251. count( * ) > 0
  252. ) t
  253. GROUP BY
  254. t.mt_company_id
  255. </select>
  256. <select id="pageRepairAndMaintainForClerk" resultType="cn.com.ty.lift.business.push.entity.TaskTips">
  257. SELECT
  258. mp.mt_company_id,
  259. pu.user_id,
  260. count(*) AS maintain_total,
  261. (SELECT count(*) FROM emergency_repair WHERE STATUS &lt; 2 AND mt_company_id = mp.mt_company_id ) AS repair_total
  262. FROM
  263. maintenance_plan mp
  264. LEFT JOIN project_user pu ON mp.mt_company_id = pu.mt_company_id
  265. AND mp.project_id = pu.project_id
  266. AND pu.user_role = 'CLERK'
  267. WHERE
  268. mp.STATUS = 0
  269. AND mp.plan_date = curdate()
  270. GROUP BY
  271. mp.mt_company_id,
  272. pu.user_id
  273. </select>
  274. <select id="listMaintainForEnterpriseAdmin" resultType="cn.com.ty.lift.business.push.entity.TaskTips">
  275. SELECT
  276. p.mt_company_id,
  277. count(*) AS maintain_total
  278. FROM
  279. maintenance_plan mp
  280. LEFT JOIN project p ON mp.project_id = p.id
  281. WHERE
  282. mp.plan_date = curdate()
  283. AND mp.`status` = 0
  284. GROUP BY
  285. p.mt_company_id
  286. </select>
  287. </mapper>