RepairRecordMapper.xml 90 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495969798991001011021031041051061071081091101111121131141151161171181191201211221231241251261271281291301311321331341351361371381391401411421431441451461471481491501511521531541551561571581591601611621631641651661671681691701711721731741751761771781791801811821831841851861871881891901911921931941951961971981992002012022032042052062072082092102112122132142152162172182192202212222232242252262272282292302312322332342352362372382392402412422432442452462472482492502512522532542552562572582592602612622632642652662672682692702712722732742752762772782792802812822832842852862872882892902912922932942952962972982993003013023033043053063073083093103113123133143153163173183193203213223233243253263273283293303313323333343353363373383393403413423433443453463473483493503513523533543553563573583593603613623633643653663673683693703713723733743753763773783793803813823833843853863873883893903913923933943953963973983994004014024034044054064074084094104114124134144154164174184194204214224234244254264274284294304314324334344354364374384394404414424434444454464474484494504514524534544554564574584594604614624634644654664674684694704714724734744754764774784794804814824834844854864874884894904914924934944954964974984995005015025035045055065075085095105115125135145155165175185195205215225235245255265275285295305315325335345355365375385395405415425435445455465475485495505515525535545555565575585595605615625635645655665675685695705715725735745755765775785795805815825835845855865875885895905915925935945955965975985996006016026036046056066076086096106116126136146156166176186196206216226236246256266276286296306316326336346356366376386396406416426436446456466476486496506516526536546556566576586596606616626636646656666676686696706716726736746756766776786796806816826836846856866876886896906916926936946956966976986997007017027037047057067077087097107117127137147157167177187197207217227237247257267277287297307317327337347357367377387397407417427437447457467477487497507517527537547557567577587597607617627637647657667677687697707717727737747757767777787797807817827837847857867877887897907917927937947957967977987998008018028038048058068078088098108118128138148158168178188198208218228238248258268278288298308318328338348358368378388398408418428438448458468478488498508518528538548558568578588598608618628638648658668678688698708718728738748758768778788798808818828838848858868878888898908918928938948958968978988999009019029039049059069079089099109119129139149159169179189199209219229239249259269279289299309319329339349359369379389399409419429439449459469479489499509519529539549559569579589599609619629639649659669679689699709719729739749759769779789799809819829839849859869879889899909919929939949959969979989991000100110021003100410051006100710081009101010111012101310141015101610171018101910201021102210231024102510261027102810291030103110321033103410351036103710381039104010411042104310441045104610471048104910501051105210531054105510561057105810591060106110621063106410651066106710681069107010711072107310741075107610771078107910801081108210831084108510861087108810891090109110921093109410951096109710981099110011011102110311041105110611071108110911101111111211131114111511161117111811191120112111221123112411251126112711281129113011311132113311341135113611371138113911401141114211431144114511461147114811491150115111521153115411551156115711581159116011611162116311641165116611671168116911701171117211731174117511761177117811791180118111821183118411851186118711881189119011911192119311941195119611971198119912001201120212031204120512061207120812091210121112121213121412151216121712181219122012211222122312241225122612271228122912301231123212331234123512361237123812391240124112421243124412451246124712481249125012511252125312541255125612571258125912601261126212631264126512661267126812691270127112721273127412751276127712781279128012811282128312841285128612871288128912901291129212931294129512961297129812991300130113021303130413051306130713081309131013111312131313141315131613171318131913201321132213231324132513261327132813291330133113321333133413351336133713381339134013411342134313441345134613471348134913501351135213531354135513561357135813591360136113621363136413651366136713681369137013711372137313741375137613771378137913801381138213831384138513861387138813891390139113921393139413951396139713981399140014011402140314041405140614071408140914101411141214131414141514161417141814191420142114221423142414251426142714281429143014311432143314341435143614371438143914401441144214431444144514461447144814491450145114521453145414551456145714581459146014611462146314641465146614671468146914701471147214731474147514761477147814791480148114821483148414851486148714881489149014911492149314941495149614971498149915001501150215031504150515061507150815091510151115121513
  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="com.repair.mapper.RepairRecordMapper">
  4. <<<<<<< HEAD
  5. =======
  6. <resultMap type="com.repair.model.vo.RepairRecordCountVo" id="repairRecordCountMap">
  7. <result property="Incomplete" column="Incomplete"/>
  8. <result property="Confirmed" column="Confirmed"/>
  9. <result property="Finished" column="Finished"/>
  10. </resultMap>
  11. <select id="queryRepairRecordCount" resultType="com.repair.model.vo.RepairRecordCountVo"
  12. resultMap="repairRecordCountMap">
  13. SELECT COUNT(IF(maintenance_state &lt; 7 or maintenance_state = 11,1, NULL))
  14. Incomplete,COUNT(IF(maintenance_state=4,1, NULL))
  15. Confirmed,COUNT(IF(maintenance_state &gt;=7 and maintenance_state &lt;= 10 ,1, NULL)) Finished FROM
  16. `repair_record`
  17. <where>
  18. and deleted = 0
  19. <if test="userId != null and userId != ''">
  20. and user_id = #{userId}
  21. </if>
  22. </where>
  23. </select>
  24. <resultMap type="com.repair.model.vo.MyRepairRecordVo" id="repairRecordOwnMap">
  25. <result property="id" column="id"/>
  26. <result property="recordNo" column="record_no"/>
  27. <result property="reportTime" column="report_time"/>
  28. <result property="userName" column="user_name"/>
  29. <result property="userPhone" column="user_phone"/>
  30. <result property="areaName" column="area_name"/>
  31. <result property="address" column="address"/>
  32. <result property="articleName" column="article_name"/>
  33. <result property="descript" column="description"/>
  34. <result property="image" column="image"/>
  35. <result property="stateId" column="state_id"/>
  36. <result property="price" column="price"/>
  37. <result property="maintenancerName" column="maintenancer_name"/>
  38. <result property="maintenancerPhone" column="maintenancer_phone"/>
  39. <result property="timeoutDispStr" column="timeout_disp_str"/>
  40. <result property="timeoutReceStr" column="timeout_rece_str"/>
  41. <result property="voice" column="voice"/>
  42. <result property="voiceLength" column="voice_length"/>
  43. <result property="finishVoice" column="finish_voice"/>
  44. <result property="finishVoiceLength" column="finish_voice_length"/>
  45. </resultMap>
  46. <select id="queryMyRepairRecordList" resultType="com.repair.model.vo.MyRepairRecordVo"
  47. resultMap="repairRecordOwnMap">
  48. select
  49. case ((date_add(rdr.assigned_time , interval rdr.acceptance_assess_time minute) &lt;= NOW() and
  50. rdr.receiving_time is null) or date_add(rdr.assigned_time , interval rdr.acceptance_assess_time minute) &lt;=
  51. rdr.receiving_time) and rr.maintenance_state &lt;= 7 and rr.is_duty = 0 when true then '超时未接'
  52. else null end as timeout_disp_str,
  53. case ((date_add(rdv.receiving_time, interval rdv.maintenance_assess_time minute) &lt;= NOW() and
  54. rdv.maintenance_assess_time is null) or date_add(rdv.receiving_time , interval rdv.maintenance_assess_time
  55. minute) &lt;= rdv.finish_time) and rr.maintenance_state &lt;= 7 and rr.is_duty = 0 when true then '维修超时'
  56. else null end as timeout_rece_str,rr.user_class,
  57. rr.voice,rr.voice_length,rr.finish_voice,rr.finish_voice_length,rr.id,rr.price,
  58. rr.maintenancer_name,rr.maintenancer_phone,rr.record_no,rr.report_time,rr.user_name,rr.user_phone,rr.area_id
  59. as area_name,rr.address,rr.description,rat.name as article_name,rr.image,rr.maintenance_state as state_id from
  60. repair_record rr
  61. left join repair_article_type rat on rat.id = rr.article_id
  62. left join repair_dispatch_record rdr on rdr.deleted = 0 and rdr.record_id = rr.id and rdr.is_lose_efficacy = 0
  63. left join repair_receiving rdv on rdv.deleted = 0 and rdv.record_id = rr.id and rdv.is_lose_efficacy = 0
  64. <where>
  65. and rr.deleted = 0
  66. <if test="stateStr != null and stateStr != ''">
  67. and (rr.maintenance_state ${stateStr}
  68. </if>
  69. <if test="userId != null and userId != ''">
  70. and rr.user_id = #{userId}
  71. </if>
  72. </where>
  73. GROUP BY rr.id
  74. order by rr.report_time DESC
  75. </select>
  76. <resultMap type="com.repair.model.vo.MaintenanceTechnicianVo" id="repairRecordTechnicianMap">
  77. <result property="receivingCount" column="receiving_count"/>
  78. <result property="maintenanceCount" column="maintenance_count"/>
  79. <result property="timeoutCount" column="timeout_count"/>
  80. <result property="examineCount" column="examine_count"/>
  81. </resultMap>
  82. <select id="queryRepairTechnicianCount" resultType="com.repair.model.vo.MaintenanceTechnicianVo"
  83. resultMap="repairRecordTechnicianMap">
  84. select (select Count(*) from repair_record rr
  85. inner join repair_dispatch_record rdr on rdr.deleted = 0 and rdr.is_lose_efficacy = 0 and rdr.record_id = rr.id and rdr.receiving_time is null and rdr.users_id = #{userId}
  86. where rr.deleted = 0 and rr.school_id = #{schoolId} and rr.maintenance_state = 1) as receiving_count ,
  87. (select Count(*) from repair_record rr2
  88. inner join repair_receiving rdv on rdv.deleted = 0 and rdv.user_id = #{userId} and rdv.record_id = rr2.id and rdv.is_lose_efficacy = 0
  89. where rr2.maintenance_state = 2 and rr2.school_id = #{schoolId} and rr2.deleted = 0) as maintenance_count,
  90. (select Count(*) as cs from (select rr3.*
  91. from repair_record rr3
  92. inner join repair_dispatch_record rdr on rdr.deleted = 0 and rdr.users_id = #{userId} and rdr.record_id = rr3.id and
  93. rdr.is_lose_efficacy = 0
  94. and ((date_add(rdr.assigned_time , interval rdr.acceptance_assess_time minute) &lt;= #{dateNow} and rdr.receiving_time is null) or date_add(rdr.assigned_time , interval rdr.acceptance_assess_time minute) &lt;= rdr.receiving_time)
  95. where rr3.is_duty = 0 and rr3.school_id = #{schoolId} and rr3.maintenance_state &lt;= 7 and rr3.deleted = 0
  96. UNION
  97. select rr4.* from repair_record rr4
  98. inner join repair_receiving rdv on rdv.deleted = 0 and rdv.user_id = #{userId} and rdv.record_id = rr4.id and
  99. rdv.is_lose_efficacy = 0
  100. and ((date_add(rdv.receiving_time , interval rdv.maintenance_assess_time minute) &lt;= #{dateNow} and rdv.maintenance_assess_time is null) or date_add(rdv.receiving_time , interval rdv.maintenance_assess_time minute) &lt;= rdv.finish_time)
  101. where rr4.is_duty = 0 and rr4.school_id = #{schoolId} and rr4.maintenance_state &lt;= 7 and rr4.deleted = 0) c) as timeout_count,
  102. (select Count(*) as sh from (
  103. select rr5.* from repair_record rr5
  104. inner join repair_collaborate_record rcr on rcr.deleted = 0 and rcr.user_id = #{userId} and rcr.record_id = rr5.id and
  105. rcr.approval_statu = 2
  106. where rr5.maintenance_state = 6 and rr5.school_id = #{schoolId} and rr5.deleted = 0
  107. UNION ALL
  108. select rr.* from repair_record rr
  109. inner join repair_transfer_record rtr on rtr.deleted = 0 and rtr.user_id = #{userId} and rtr.record_id = rr.id and
  110. rtr.approval_statu = 2
  111. where rr.maintenance_state = 5 and rr.school_id = #{schoolId} and rr.deleted = 0
  112. UNION ALL
  113. select rr.* from repair_record rr
  114. inner join repair_offline_record ror on ror.deleted = 0 and ror.user_id = #{userId} and ror.record_id = rr.id and
  115. ror.approval_statu = 2
  116. where rr.maintenance_state = 11 and rr.school_id = #{schoolId} and rr.deleted = 0
  117. ) a) as examine_count
  118. </select>
  119. <resultMap type="com.repair.model.vo.RepairTechnicianVo" id="repairRecordTechnicianDataMap">
  120. <result property="id" column="id"/>
  121. <result property="recordNo" column="record_no"/>
  122. <result property="reportTime" column="report_time"/>
  123. <result property="userName" column="user_name"/>
  124. <result property="userPhone" column="user_phone"/>
  125. <result property="areaName" column="area_name"/>
  126. <result property="address" column="address"/>
  127. <result property="articleName" column="article_name"/>
  128. <result property="description" column="description"/>
  129. <result property="image" column="image"/>
  130. <result property="state" column="state"/>
  131. <result property="maintenanceState" column="maintenance_state"/>
  132. <result property="timeoutStr" column="timeout_str"/>
  133. <result property="maintenanceTimeout" column="maintenance_timeout"/>
  134. <result property="maintenancerName" column="maintenancer_name"/>
  135. <result property="maintenancerPhone" column="maintenancer_phone"/>
  136. <result property="voice" column="voice"/>
  137. <result property="voiceLength" column="voice_length"/>
  138. <result property="finishVoice" column="finish_voice"/>
  139. <result property="finishVoiceLength" column="finish_voice_length"/>
  140. <result property="price" column="price"/>
  141. </resultMap>
  142. <!--待接单-->
  143. <select id="queryPendingOrderList" resultType="com.repair.model.vo.RepairTechnicianVo"
  144. resultMap="repairRecordTechnicianDataMap">
  145. select t.*,ru.user_name as maintenancer_name,ru.user_phone as maintenancer_phone from (
  146. select case ((date_add(rdr.assigned_time , interval rdr.acceptance_assess_time minute) &lt;= #{dateNow} and rdr.receiving_time is null) or date_add(rdr.assigned_time , interval rdr.acceptance_assess_time minute) &lt;= rdr.receiving_time) and rr.is_duty = 0 when true then '超时未接' else null end as timeout_str,
  147. rr.voice,rr.voice_length,rr.finish_voice,rr.finish_voice_length,rr.id,rr.record_no,rr.report_time,rr.user_name,rr.user_phone,rr.area_id as area_name,rr.address,rat.name as article_name,rr.description,rr.image,'待接单' as state,rr.price,
  148. rr.user_class
  149. from repair_record rr
  150. inner join repair_dispatch_record rdr on rdr.deleted = 0 and rdr.users_id = #{userId} and rdr.record_id = rr.id and rdr.is_lose_efficacy = 0 and rdr.receiving_time is null
  151. left join repair_article_type rat on rat.deleted = 0 and rat.id = rr.article_id
  152. where rr.maintenance_state = 1 and rr.deleted = 0 and rr.school_id = #{schoolId}
  153. ) t
  154. left join repair_user ru on ru.id = #{userId}
  155. order by t.report_time DESC
  156. </select>
  157. <!--维修中-->
  158. <select id="queryRepairOrderList" resultType="com.repair.model.vo.RepairTechnicianVo"
  159. resultMap="repairRecordTechnicianDataMap">
  160. select t.*,ru.user_name as maintenancer_name,ru.user_phone as maintenancer_phone from (
  161. select case ((date_add(rdv.receiving_time, interval rdv.maintenance_assess_time minute) &lt;= #{dateNow} and rdv.maintenance_assess_time is null) or date_add(rdv.receiving_time , interval rdv.maintenance_assess_time minute) &lt;= rdv.finish_time) and rr.is_duty = 0 when true then '维修超时' else null end as timeout_str,
  162. rr.voice,rr.voice_length,rr.finish_voice,rr.finish_voice_length,rr.id,rr.record_no,rr.report_time,rr.user_name,rr.user_phone,rr.area_id as area_name,rr.address,rat.name as article_name ,rr.description,rr.image,'维修中' as state,rr.price,
  163. rr.user_class
  164. from repair_record rr
  165. inner join repair_receiving rdv on rdv.deleted = 0 and rdv.user_id = #{userId} and rdv.record_id = rr.id and rdv.is_lose_efficacy = 0
  166. left join repair_article_type rat on rat.deleted = 0 and rat.id = rr.article_id
  167. where rr.maintenance_state = 2 and rr.deleted = 0 and rr.school_id = #{schoolId}
  168. ) t
  169. left join repair_user ru on ru.id = #{userId}
  170. order by t.report_time DESC
  171. </select>
  172. <!--已超时-->
  173. <select id="queryTimeoutOrderList" resultType="com.repair.model.vo.RepairTechnicianVo"
  174. resultMap="repairRecordTechnicianDataMap">
  175. SELECT case ((date_add(rdr.assigned_time , interval rdr.acceptance_assess_time minute) &lt;= NOW() and rdr.receiving_time is null) or date_add(rdr.assigned_time , interval rdr.acceptance_assess_time minute) &lt;= rdr.receiving_time) when true then '超时未接' else null end as timeout_str,case ((date_add(rdv.receiving_time, interval rdv.maintenance_assess_time minute) &lt;= NOW() and rdv.maintenance_assess_time is null) or date_add(rdv.receiving_time , interval rdv.maintenance_assess_time minute) &lt;= rdv.finish_time) when true then '维修超时' else null end as maintenance_timeout,rat.name as article_name,t.* FROM (
  176. select rr.voice,rr.voice_length,rr.finish_voice,rr.finish_voice_length,rr.maintenance_state,rr.article_id,rr.id,rr.record_no,rr.report_time,rr.user_name,rr.user_phone,rr.area_id as area_name,rr.address,rr.description,rr.image,rr.maintenancer_name,rr.maintenancer_phone,rr.price,rr.user_class
  177. from repair_record rr
  178. inner join repair_dispatch_record rdr on rdr.deleted = 0 and rdr.users_id = #{userId} and rdr.record_id = rr.id and rdr.is_lose_efficacy = 0
  179. and ((date_add(rdr.assigned_time , interval rdr.acceptance_assess_time minute) &lt;= NOW() and rdr.receiving_time is null) or date_add(rdr.assigned_time , interval rdr.acceptance_assess_time minute) &lt;= rdr.receiving_time)
  180. where rr.is_duty = 0 and rr.maintenance_state &lt;= 7 and rr.school_id = #{schoolId} and rr.deleted = 0
  181. UNION
  182. select rr.voice,rr.voice_length,rr.finish_voice,rr.finish_voice_length,rr.maintenance_state,rr.article_id,rr.id,rr.record_no,rr.report_time,rr.user_name,rr.user_phone,rr.area_id as area_name,rr.address,rr.description,rr.image,rr.maintenancer_name,rr.maintenancer_phone,rr.price,rr.user_class
  183. from repair_record rr
  184. inner join repair_receiving rdv on rdv.deleted = 0 and rdv.user_id = #{userId} and rdv.record_id = rr.id and rdv.is_lose_efficacy = 0
  185. and ((date_add(rdv.receiving_time , interval rdv.maintenance_assess_time minute) &lt;= NOW() and rdv.maintenance_assess_time is null) or date_add(rdv.receiving_time , interval rdv.maintenance_assess_time minute) &lt;= rdv.finish_time)
  186. where rr.is_duty = 0 and rr.maintenance_state &lt;= 7 and rr.school_id = #{schoolId} and rr.deleted = 0) t
  187. left join repair_dispatch_record rdr on rdr.deleted = 0 and rdr.users_id = #{userId} and rdr.record_id = t.id and rdr.is_lose_efficacy = 0
  188. left join repair_receiving rdv on rdv.deleted = 0 and rdv.user_id = #{userId} and rdv.record_id = t.id and rdv.is_lose_efficacy = 0
  189. left join repair_article_type rat on rat.deleted = 0 and rat.id = t.article_id
  190. order by t.report_time desc
  191. </select>
  192. <!--待审核-->
  193. <select id="queryExamineOrderList" resultType="com.repair.model.vo.RepairTechnicianVo"
  194. resultMap="repairRecordTechnicianDataMap">
  195. select rr.voice,rr.voice_length,rr.finish_voice,rr.finish_voice_length,rr.id,rr.record_no,rr.report_time,rr.user_name,rr.user_phone,rr.area_id as area_name,rr.address,rat.name as article_name ,rr.description,rr.image,'协作待审核' as state,rr.maintenancer_name,rr.maintenancer_phone,rr.price,rr.user_class
  196. from repair_record rr
  197. inner join repair_collaborate_record rcr on rcr.deleted = 0 and rcr.user_id = #{userId} and rcr.record_id = rr.id and rcr.approval_statu = 2
  198. left join repair_article_type rat on rat.deleted = 0 and rat.id = rr.article_id
  199. where rr.maintenance_state = 6 and rr.deleted = 0 and rr.school_id = #{schoolId}
  200. UNION ALL
  201. select rr.voice,rr.voice_length,rr.finish_voice,rr.finish_voice_length,rr.id,rr.record_no,rr.report_time,rr.user_name,rr.user_phone,rr.area_id as area_name,rr.address,rat.name as article_name ,rr.description,rr.image,'转单待审核' as state,rr.maintenancer_name,rr.maintenancer_phone,rr.price,rr.user_class
  202. from repair_record rr
  203. inner join repair_transfer_record rtr on rtr.deleted = 0 and rtr.user_id = #{userId} and rtr.record_id = rr.id and rtr.approval_statu = 2
  204. left join repair_article_type rat on rat.deleted = 0 and rat.id = rr.article_id
  205. where rr.maintenance_state = 5 and rr.deleted = 0 and rr.school_id = #{schoolId}
  206. UNION ALL
  207. select rr.voice,rr.voice_length,rr.finish_voice,rr.finish_voice_length,rr.id,rr.record_no,rr.report_time,rr.user_name,rr.user_phone,rr.area_id as area_name,rr.address,rat.name as article_name ,rr.description,rr.image,'转线下待审核' as state,rr.maintenancer_name,rr.maintenancer_phone,rr.price,rr.user_class
  208. from repair_record rr
  209. inner join repair_offline_record ror on ror.deleted = 0 and ror.user_id = #{userId} and ror.record_id = rr.id and ror.approval_statu = 2
  210. left join repair_article_type rat on rat.deleted = 0 and rat.id = rr.article_id
  211. where rr.maintenance_state = 11 and rr.deleted = 0 and rr.school_id = #{schoolId}
  212. </select>
  213. <resultMap type="com.repair.model.vo.RepairManageCountVo" id="repairManageCountMap">
  214. <result property="dispatchCount" column="dispatch_count"/>
  215. <result property="maintenanceCount" column="maintenance_count"/>
  216. <result property="logisticsCount" column="logistics_count"/>
  217. <result property="examineCount" column="examine_count"/>
  218. <result property="finishedCount" column="finished_count"/>
  219. <result property="canceledCount" column="canceled_count"/>
  220. <result property="closedCount" column="closed_count"/>
  221. <result property="timeoutCount" column="timeout_count"/>
  222. <result property="offlineCount" column="offline_count"/>
  223. </resultMap>
  224. <select id="queryManageCount" resultType="com.repair.model.vo.RepairManageCountVo" resultMap="repairManageCountMap">
  225. select
  226. (select Count(*) from (select rdr.users_id from repair_record rr
  227. left join repair_dispatch_record rdr on rdr.deleted = 0 and rdr.is_lose_efficacy = 0 and rdr.record_id = rr.id
  228. and rr.maintenance_state = 1
  229. where rr.deleted = 0 and rr.maintenance_state = 1
  230. <if test="keyWord != null and keyWord != ''">
  231. and (rr.record_no like '%' #{keyWord} '%' or rr.area_id like '%' #{keyWord} '%' or rr.user_name like '%'
  232. #{keyWord} '%' or rr.user_phone like '%'
  233. #{keyWord} '%')
  234. </if>
  235. <if test="startTime != null and startTime != '' and endTime != null and endTime != ''">
  236. and rr.report_time between #{startTime} and #{endTime}
  237. </if>
  238. <if test="schoolId != null and schoolId != ''">
  239. and rr.school_id = #{schoolId}
  240. </if>
  241. ) t
  242. <if test="maintenanceName != null and maintenanceName != ''">
  243. where t.users_id in (select id from repair_user where user_name like '%' #{maintenanceName} '%' and deleted
  244. = 0)
  245. </if>) as dispatch_count,
  246. (select Count(*) from (select rdv.user_id from repair_record rr
  247. left join repair_receiving rdv on rdv.deleted = 0 and rdv.record_id = rr.id and rdv.is_lose_efficacy = 0 and
  248. rr.maintenance_state = 2
  249. where rr.deleted = 0 and rr.maintenance_state = 2
  250. <if test="keyWord != null and keyWord != ''">
  251. and (rr.record_no like '%' #{keyWord} '%' or rr.area_id like '%' #{keyWord} '%' or rr.user_name like '%'
  252. #{keyWord} '%' or rr.user_phone like '%'
  253. #{keyWord} '%')
  254. </if>
  255. <if test="startTime != null and startTime != '' and endTime != null and endTime != ''">
  256. and rr.report_time between #{startTime} and #{endTime}
  257. </if>
  258. <if test="schoolId != null and schoolId != ''">
  259. and rr.school_id = #{schoolId}
  260. </if>
  261. ) t
  262. <if test="maintenanceName != null and maintenanceName != ''">
  263. where t.user_id in (select id from repair_user where user_name like '%' #{maintenanceName} '%' and deleted =
  264. 0)
  265. </if>) as maintenance_count,
  266. (select Count(*) from repair_record rr
  267. inner join repair_dispatch_record rdr on rdr.deleted = 0 and rdr.is_lose_efficacy = 0 and rdr.record_id = rr.id
  268. <if test="maintenanceName != null and maintenanceName != ''">
  269. and rdr.users_id in (select id from repair_user where user_name like '%' #{maintenanceName} '%' and deleted
  270. = 0)
  271. </if>
  272. where rr.deleted = 0 and rr.maintenance_state = 3
  273. <if test="keyWord != null and keyWord != ''">
  274. and (rr.record_no like '%' #{keyWord} '%' or rr.area_id like '%' #{keyWord} '%' or rr.user_name like '%'
  275. #{keyWord} '%' or rr.user_phone like '%' #{keyWord}
  276. '%')
  277. </if>
  278. <if test="startTime != null and startTime != '' and endTime != null and endTime != ''">
  279. and rr.report_time between #{startTime} and #{endTime}
  280. </if>
  281. <if test="schoolId != null and schoolId != ''">
  282. and rr.school_id = #{schoolId}
  283. </if>
  284. ) as logistics_count,
  285. (select Count(*) from repair_record where deleted = 0 and (maintenance_state = 5 or maintenance_state = 6 or
  286. maintenance_state = 11)
  287. <if test="keyWord != null and keyWord != ''">
  288. and (area_id like '%' #{keyWord} '%' or user_name like '%' #{keyWord} '%' or user_phone like '%' #{keyWord}
  289. '%')
  290. </if>
  291. <if test="startTime != null and startTime != '' and endTime != null and endTime != ''">
  292. and report_time between #{startTime} and #{endTime}
  293. </if>
  294. <if test="schoolId != null and schoolId != ''">
  295. and school_id = #{schoolId}
  296. </if>
  297. <if test="maintenanceName != null and maintenanceName != ''">
  298. and maintenancer_name like '%' #{maintenanceName} '%'
  299. </if>) as examine_count,
  300. (select Count(*) from repair_record rr
  301. where rr.deleted = 0 and rr.maintenance_state = 7
  302. <if test="keyWord != null and keyWord != ''">
  303. and (rr.record_no like '%' #{keyWord} '%' or rr.area_id like '%' #{keyWord} '%' or rr.user_name like '%'
  304. #{keyWord} '%' or rr.user_phone like '%' #{keyWord}
  305. '%')
  306. </if>
  307. <if test="startTime != null and startTime != '' and endTime != null and endTime != ''">
  308. and rr.report_time between #{startTime} and #{endTime}
  309. </if>
  310. <if test="schoolId != null and schoolId != ''">
  311. and rr.school_id = #{schoolId}
  312. </if>
  313. <if test="maintenanceName != null and maintenanceName != ''">
  314. and rr.maintenancer_name like '%' #{maintenanceName} '%'
  315. </if>
  316. ) as finished_count,
  317. (select Count(*) from repair_record rr
  318. where rr.deleted = 0 and rr.maintenance_state = 8
  319. <if test="keyWord != null and keyWord != ''">
  320. and (rr.record_no like '%' #{keyWord} '%' or rr.area_id like '%' #{keyWord} '%' or rr.user_name like '%'
  321. #{keyWord} '%' or rr.user_phone like '%' #{keyWord}
  322. '%')
  323. </if>
  324. <if test="startTime != null and startTime != '' and endTime != null and endTime != ''">
  325. and rr.report_time between #{startTime} and #{endTime}
  326. </if>
  327. <if test="schoolId != null and schoolId != ''">
  328. and rr.school_id = #{schoolId}
  329. </if>
  330. <if test="maintenanceName != null and maintenanceName != ''">
  331. and rr.maintenancer_name like '%' #{maintenanceName} '%'
  332. </if>
  333. ) as canceled_count,
  334. (select Count(*) from repair_record rr
  335. where rr.deleted = 0 and rr.maintenance_state = 9
  336. <if test="keyWord != null and keyWord != ''">
  337. and (rr.record_no like '%' #{keyWord} '%' or rr.area_id like '%' #{keyWord} '%' or rr.user_name like '%'
  338. #{keyWord} '%' or rr.user_phone like '%' #{keyWord}
  339. '%')
  340. </if>
  341. <if test="startTime != null and startTime != '' and endTime != null and endTime != ''">
  342. and rr.report_time between #{startTime} and #{endTime}
  343. </if>
  344. <if test="schoolId != null and schoolId != ''">
  345. and rr.school_id = #{schoolId}
  346. </if>
  347. <if test="maintenanceName != null and maintenanceName != ''">
  348. and rr.maintenancer_name like '%' #{maintenanceName} '%'
  349. </if>) as closed_count,
  350. (SELECT count(*) as cs FROM (
  351. select rdr.users_id as
  352. user_id,rr.maintenance_state,rr.article_id,rr.id,rr.record_no,rr.report_time,rr.user_name,rr.user_phone,rr.area_id
  353. as area_name,rr.address,rr.description,rr.image,rr.maintenancer_name,rr.maintenancer_phone,rr.price from
  354. repair_record rr
  355. inner join repair_dispatch_record rdr on rdr.deleted = 0 and rdr.record_id = rr.id and rdr.is_lose_efficacy = 0
  356. and ((date_add(rdr.assigned_time , interval rdr.acceptance_assess_time minute) &lt;= NOW() and
  357. rdr.receiving_time is null) or date_add(rdr.assigned_time , interval rdr.acceptance_assess_time minute) &lt;=
  358. rdr.receiving_time)
  359. where rr.is_duty = 0 and rr.maintenance_state &lt;= 7 and rr.deleted = 0
  360. <if test="keyWord != null and keyWord != ''">
  361. and (rr.record_no like '%' #{keyWord} '%' or rr.area_id like '%' #{keyWord} '%' or rr.user_name like '%'
  362. #{keyWord} '%' or rr.user_phone like '%'
  363. #{keyWord} '%')
  364. </if>
  365. <if test="startTime != null and startTime != '' and endTime != null and endTime != ''">
  366. and rr.report_time between #{startTime} and #{endTime}
  367. </if>
  368. <if test="schoolId != null and schoolId != ''">
  369. and rr.school_id = #{schoolId}
  370. </if>
  371. UNION
  372. select
  373. rdv.user_id,rr.maintenance_state,rr.article_id,rr.id,rr.record_no,rr.report_time,rr.user_name,rr.user_phone,rr.area_id
  374. as area_name,rr.address,rr.description,rr.image,rr.maintenancer_name,rr.maintenancer_phone,rr.price from
  375. repair_record rr
  376. inner join repair_receiving rdv on rdv.deleted = 0 and rdv.record_id = rr.id and rdv.is_lose_efficacy = 0
  377. and ((date_add(rdv.receiving_time , interval rdv.maintenance_assess_time minute) &lt;= NOW() and
  378. rdv.maintenance_assess_time is null) or date_add(rdv.receiving_time , interval rdv.maintenance_assess_time
  379. minute) &lt;= rdv.finish_time)
  380. where rr.is_duty = 0 and rr.maintenance_state &lt;= 7 and rr.deleted = 0
  381. <if test="keyWord != null and keyWord != ''">
  382. and (rr.record_no like '%' #{keyWord} '%' or rr.area_id like '%' #{keyWord} '%' or rr.user_name like '%'
  383. #{keyWord} '%' or rr.user_phone like '%'
  384. #{keyWord} '%')
  385. </if>
  386. <if test="startTime != null and startTime != '' and endTime != null and endTime != ''">
  387. and rr.report_time between #{startTime} and #{endTime}
  388. </if>
  389. <if test="schoolId != null and schoolId != ''">
  390. and rr.school_id = #{schoolId}
  391. </if>
  392. ) t
  393. <if test="maintenanceName != null and maintenanceName != ''">
  394. where t.user_id in (select id from repair_user where user_name like '%' #{maintenanceName} '%' and deleted =
  395. 0)
  396. </if>
  397. ) as timeout_count,
  398. (select Count(*) from repair_record rr
  399. where rr.deleted = 0 and rr.maintenance_state = 10
  400. <if test="keyWord != null and keyWord != ''">
  401. and (rr.record_no like '%' #{keyWord} '%' or rr.area_id like '%' #{keyWord} '%' or rr.user_name like '%'
  402. #{keyWord} '%' or rr.user_phone like '%' #{keyWord}
  403. '%')
  404. </if>
  405. <if test="startTime != null and startTime != '' and endTime != null and endTime != ''">
  406. and rr.report_time between #{startTime} and #{endTime}
  407. </if>
  408. <if test="schoolId != null and schoolId != ''">
  409. and rr.school_id = #{schoolId}
  410. </if>
  411. <if test="maintenanceName != null and maintenanceName != ''">
  412. and rr.maintenancer_name like '%' #{maintenanceName} '%'
  413. </if>
  414. ) as offline_count
  415. </select>
  416. <!--管理端工单分页数据-->
  417. <resultMap type="com.repair.model.vo.RepairRecordPageVo" id="repairRecordPageMap">
  418. <result property="id" column="id"/>
  419. <result property="recordNo" column="record_no"/>
  420. <result property="schoolId" column="school_id"/>
  421. <result property="userName" column="user_name"/>
  422. <result property="userPhone" column="user_phone"/>
  423. <result property="articleName" column="article_name"/>
  424. <result property="areaName" column="area_name"/>
  425. <result property="description" column="description"/>
  426. <result property="reportTime" column="report_time"/>
  427. <result property="maintenancerName" column="maintenancer_name"/>
  428. <result property="details" column="details"/>
  429. <result property="rdvName" column="rdvName"/>
  430. <result property="rdrName" column="rdrName"/>
  431. <result property="rorName" column="rorName"/>
  432. <result property="userId" column="user_id"/>
  433. </resultMap>
  434. <!--除已超时外的其他数据获取方式-->
  435. <select id="queryNotTimeout" resultType="com.repair.model.vo.RepairRecordPageVo" resultMap="repairRecordPageMap">
  436. select * from (select rr.school_id,rr.user_id,1 as details,rr.id,rr.record_no,rr.area_id as
  437. area_name,rr.user_name,rr.user_phone,rat.name as
  438. article_name,
  439. rr.description,rr.report_time,rr.maintenancer_name,rr.maintenance_state,(select user_name from repair_user where
  440. id = rdv.user_id and deleted = 0) as rdvName,(select user_name from repair_user where id = rdr.users_id and
  441. deleted = 0) as rdrName,(select user_name from repair_user where id = ror.user_id and
  442. deleted = 0) as rorName
  443. from repair_record rr
  444. left join repair_receiving rdv on rdv.deleted = 0 and rdv.record_id = rr.id and rdv.is_lose_efficacy = 0 and
  445. rdv.finish_time is null and rr.maintenance_state = 2
  446. left join repair_dispatch_record rdr on rdr.deleted = 0 and rdr.is_lose_efficacy = 0 and rdr.record_id = rr.id
  447. and rdr.receiving_time is null and rr.maintenance_state = 1
  448. left join repair_offline_record ror on ror.deleted = 0 and ror.record_id = rr.id and ror.approval_statu != 0
  449. <if test="stateStr != null and stateStr != ''">
  450. and (rr.maintenance_state ${stateStr}
  451. </if>
  452. left join repair_article_type rat on rat.deleted = 0 and rat.id = rr.article_id
  453. <where>
  454. and rr.deleted = 0
  455. <if test="schoolId != null and schoolId != ''">
  456. and rr.school_id = #{schoolId}
  457. </if>
  458. <if test="stateStr != null and stateStr != ''">
  459. and (rr.maintenance_state ${stateStr}
  460. </if>
  461. <if test="stateStr == null or stateStr == ''">
  462. and rr.maintenance_state != 4
  463. </if>
  464. <if test="keyWord != null and keyWord != ''">
  465. and (rr.record_no like '%' #{keyWord} '%' or rr.area_id like '%' #{keyWord} '%' or rr.user_name like '%'
  466. #{keyWord} '%' or rr.user_phone like
  467. '%' #{keyWord} '%')
  468. </if>
  469. <if test="startTime != null and startTime != '' and endTime != null and endTime != ''">
  470. and rr.report_time between #{startTime} and #{endTime}
  471. </if>
  472. </where>
  473. ) t
  474. <if test="maintenanceName != null and maintenanceName != ''">
  475. where t.maintenancer_name like '%' #{maintenanceName} '%' or t.rdvName like '%' #{maintenanceName} '%' or
  476. t.rdrName like '%' #{maintenanceName} '%'
  477. </if>
  478. order by t.report_time desc
  479. </select>
  480. <resultMap type="com.repair.model.vo.RepairRecordTimeoutPageVo" id="repairRecordTimeoutPageMap">
  481. <result property="id" column="id"/>
  482. <result property="recordNo" column="record_no"/>
  483. <result property="schoolId" column="school_id"/>
  484. <result property="userName" column="user_name"/>
  485. <result property="userPhone" column="user_phone"/>
  486. <result property="articleName" column="article_name"/>
  487. <result property="areaName" column="area_name"/>
  488. <result property="description" column="description"/>
  489. <result property="reportTime" column="report_time"/>
  490. <result property="maintenancerName" column="maintenancer_name"/>
  491. <result property="details" column="details"/>
  492. <result property="maintenanceState" column="maintenance_state"/>
  493. <result property="timeoutStr" column="timeout_str"/>
  494. <result property="maintenanceTimeout" column="maintenance_timeout"/>
  495. <result property="userId" column="user_id"/>
  496. </resultMap>
  497. <!--#已超时获取方式-->
  498. <select id="queryTimeout" resultType="com.repair.model.vo.RepairRecordTimeoutPageVo"
  499. resultMap="repairRecordTimeoutPageMap">
  500. select * from (select
  501. t.school_id,t.user_id,t.details,t.id,t.record_no,t.area_name,t.user_name,t.user_phone,rat.name as
  502. article_name,t.description,t.report_time,t.maintenance_state,ru.user_name as maintenancer_name,ru.user_phone as
  503. maintenancer_phone,
  504. case ((date_add(rdr.assigned_time , interval rdr.acceptance_assess_time minute) &lt;= NOW() and
  505. rdr.receiving_time is null) or date_add(rdr.assigned_time , interval rdr.acceptance_assess_time minute) &lt;=
  506. rdr.receiving_time) when true then '超时未接' else null end as timeout_str,
  507. case ((date_add(rdv.receiving_time, interval rdv.maintenance_assess_time minute) &lt;= NOW() and
  508. rdv.maintenance_assess_time is null) or date_add(rdv.receiving_time , interval rdv.maintenance_assess_time
  509. minute) &lt;= rdv.finish_time) when true then '维修超时' else null end as maintenance_timeout
  510. FROM (
  511. select rr.school_id,rdr.users_id as user_id,1 as details,rr.id,rr.record_no,rr.area_id as
  512. area_name,rr.user_name,rr.user_phone,rr.price,rr.maintenance_state,rr.article_id,rr.report_time,rr.description
  513. from repair_record rr
  514. inner join repair_dispatch_record rdr on rdr.deleted = 0 and rdr.record_id = rr.id and rdr.is_lose_efficacy = 0
  515. and ((date_add(rdr.assigned_time , interval rdr.acceptance_assess_time minute) &lt;= NOW() and
  516. rdr.receiving_time is null) or date_add(rdr.assigned_time , interval rdr.acceptance_assess_time minute) &lt;=
  517. rdr.receiving_time)
  518. <where>
  519. and rr.deleted = 0 and rr.is_duty = 0 and rr.maintenance_state &lt;= 7
  520. <if test="keyWord != null and keyWord != ''">
  521. and (rr.record_no like '%' #{keyWord} '%' or rr.area_id like '%' #{keyWord} '%' or rr.user_name like '%'
  522. #{keyWord} '%' or rr.user_phone like
  523. '%' #{keyWord} '%')
  524. </if>
  525. <if test="startTime != null and startTime != '' and endTime != null and endTime != ''">
  526. and rr.report_time between #{startTime} and #{endTime}
  527. </if>
  528. <if test="schoolId != null and schoolId != ''">
  529. and rr.school_id = #{schoolId}
  530. </if>
  531. </where>
  532. UNION
  533. select rr.school_id,rdv.user_id,1 as details,rr.id,rr.record_no,rr.area_id as
  534. area_name,rr.user_name,rr.user_phone,rr.price,rr.maintenance_state,rr.article_id,rr.report_time,rr.description
  535. from repair_record rr
  536. inner join repair_receiving rdv on rdv.deleted = 0 and rdv.record_id = rr.id and rdv.is_lose_efficacy = 0
  537. and ((date_add(rdv.receiving_time , interval rdv.maintenance_assess_time minute) &lt;= NOW() and
  538. rdv.maintenance_assess_time is null) or date_add(rdv.receiving_time , interval rdv.maintenance_assess_time
  539. minute) &lt;= rdv.finish_time)
  540. <where>
  541. and rr.deleted = 0 and rr.is_duty = 0 and rr.maintenance_state &lt;= 7
  542. <if test="keyWord != null and keyWord != ''">
  543. and (rr.record_no like '%' #{keyWord} '%' or rr.area_id like '%' #{keyWord} '%' or rr.user_name like '%'
  544. #{keyWord} '%' or rr.user_phone like
  545. '%' #{keyWord} '%')
  546. </if>
  547. <if test="startTime != null and startTime != '' and endTime != null and endTime != ''">
  548. and rr.report_time between #{startTime} and #{endTime}
  549. </if>
  550. <if test="schoolId != null and schoolId != ''">
  551. and rr.school_id = #{schoolId}
  552. </if>
  553. </where>
  554. ) t
  555. left join repair_dispatch_record rdr on rdr.users_id =t.user_id and rdr.deleted = 0 and rdr.record_id = t.id and
  556. rdr.is_lose_efficacy = 0
  557. left join repair_receiving rdv on rdv.user_id =t.user_id and rdv.deleted = 0 and rdv.record_id = t.id and
  558. rdv.is_lose_efficacy = 0
  559. left join repair_article_type rat on rat.deleted = 0 and rat.id = t.article_id
  560. left join repair_user ru on ru.deleted = 0 and ru.id = t.user_id) d
  561. <if test="maintenanceName != null and maintenanceName != ''">
  562. where d.maintenancer_name like '%' #{maintenanceName} '%'
  563. </if>
  564. order by d.report_time desc
  565. </select>
  566. >>>>>>> 1e8a464588113a3afc236ee3f004f164bb7128ff
  567. <!--#获取待处理池数据-->
  568. <resultMap type="com.repair.model.vo.pendingOrderVo" id="repairPendingOrderMap">
  569. <result property="id" column="id"/>
  570. <result property="userId" column="user_id"/>
  571. <result property="schoolId" column="school_id"/>
  572. <result property="reportTime" column="report_time"/>
  573. <<<<<<< HEAD
  574. <result property="articleId" column="article_id"/>
  575. <result property="buildId" column="build_id"/>
  576. </resultMap>
  577. <select id="queryPendingOrder" resultType="com.repair.model.vo.pendingOrderVo" resultMap="repairPendingOrderMap">
  578. select * from (select (select Count(*) from repair_dispatch_record where is_lose_efficacy = 0 and record_id = rr.id and receiving_time is null) as disp_count,rr.id,
  579. rr.article_id,rr.user_id,rr.school_id,rr.report_time,rr.build_id
  580. from repair_record rr
  581. where rr.maintenance_state = 1 and rr.deleted = 0) t where t.disp_count &lt;= 0
  582. order by t.report_time desc
  583. </select>
  584. =======
  585. <result property="userName" column="user_name"/>
  586. <result property="userPhone" column="user_phone"/>
  587. <result property="areaName" column="area_name"/>
  588. <result property="address" column="address"/>
  589. <result property="articleName" column="article_name"/>
  590. <result property="description" column="description"/>
  591. <result property="image" column="image"/>
  592. <result property="state" column="state"/>
  593. <result property="voice" column="voice"/>
  594. <result property="voiceLength" column="voice_length"/>
  595. <result property="finishVoice" column="finish_voice"/>
  596. <result property="finishVoiceLength" column="finish_voice_length"/>
  597. </resultMap>
  598. <select id="queryPendingOrder" resultType="com.repair.model.vo.pendingOrderVo" resultMap="repairPendingOrderMap">
  599. select * from (select (select Count(*) from repair_dispatch_record where is_lose_efficacy = 0 and record_id = rr.id and receiving_time is null) as disp_count,rr.id,rr.record_no,
  600. rr.voice,rr.voice_length,rr.finish_voice,rr.finish_voice_length,rr.report_time,rr.user_name,rr.user_phone,rr.area_id as area_name,rr.address,rat.name as article_name,rr.description,rr.image,'待接单' as state
  601. from repair_record rr
  602. left join repair_article_type rat on rat.id = rr.article_id
  603. where rr.maintenance_state = 1 and rr.deleted = 0 and rr.school_id = #{schoolId}) t where t.disp_count &lt;= 0
  604. order by t.report_time desc
  605. </select>
  606. <!--郭师傅维修 团队工单 头部数量-->
  607. <resultMap type="com.repair.model.vo.TeamWorkCountVo" id="teamWorkOrderMap">
  608. <result property="examineCount" column="examine_count"/>
  609. <result property="receivingCount" column="receiving_count"/>
  610. <result property="maintenanceCount" column="maintenance_count"/>
  611. <result property="finishedCount" column="finished_count"/>
  612. <result property="logisticsCount" column="logistics_count"/>
  613. <result property="timeoutCount" column="timeout_count"/>
  614. <result property="closedCount" column="closed_count"/>
  615. <result property="offlineCount" column="offline_count"/>
  616. </resultMap>
  617. <select id="queryTeamWorkCount" resultType="com.repair.model.vo.TeamWorkCountVo" resultMap="teamWorkOrderMap">
  618. select
  619. (select Count(*) as sh from (
  620. select rr5.* from repair_record rr5
  621. inner join repair_collaborate_record rcr on rcr.deleted = 0 and rcr.record_id = rr5.id and
  622. rcr.approval_statu = 2
  623. where rr5.maintenance_state = 6 and rr5.school_id = #{schoolId} and rr5.deleted = 0
  624. UNION ALL
  625. select rr.* from repair_record rr
  626. inner join repair_transfer_record rtr on rtr.deleted = 0 and rtr.record_id = rr.id and
  627. rtr.approval_statu = 2
  628. where rr.maintenance_state = 5 and rr.school_id = #{schoolId} and rr.deleted = 0
  629. UNION ALL
  630. select rr.* from repair_record rr
  631. inner join repair_offline_record ror on ror.deleted = 0 and ror.record_id = rr.id and ror.approval_statu = 2
  632. where rr.maintenance_state = 11 and rr.school_id = #{schoolId} and rr.deleted = 0
  633. ) a) as examine_count,
  634. (select Count(*) from repair_record rr1
  635. inner join repair_dispatch_record rdr on rdr.deleted = 0 and rdr.record_id = rr1.id and
  636. rdr.is_lose_efficacy = 0 and rdr.receiving_time is null
  637. where rr1.maintenance_state = 1 and rr1.school_id = #{schoolId} and rr1.deleted = 0) as receiving_count,
  638. (select Count(*) from repair_record rr
  639. where rr.deleted = 0 and rr.school_id = #{schoolId} and rr.maintenance_state = 10) as offline_count,
  640. (select Count(*) from repair_record rr2
  641. inner join repair_receiving rdv on rdv.deleted = 0 and rdv.record_id = rr2.id and
  642. rdv.is_lose_efficacy = 0
  643. where rr2.maintenance_state = 2 and rr2.school_id = #{schoolId} and rr2.deleted = 0) as maintenance_count,
  644. (select Count(*) from repair_record rr7
  645. where rr7.deleted = 0 and rr7.school_id = #{schoolId} and rr7.maintenance_state = 7) as finished_count,
  646. (select Count(*) from repair_record rr9
  647. where rr9.deleted = 0 and rr9.school_id = #{schoolId} and rr9.maintenance_state = 3) as logistics_count,
  648. (SELECT count(*) as cs FROM (
  649. select rdr.users_id as user_id,rr.maintenance_state,rr.article_id,rr.id,rr.record_no,rr.report_time,rr.user_name,rr.user_phone,rr.area_id as area_name,rr.address,rr.description,rr.image,rr.maintenancer_name,rr.maintenancer_phone,rr.price from repair_record rr
  650. inner join repair_dispatch_record rdr on rdr.deleted = 0 and rdr.record_id = rr.id and rdr.is_lose_efficacy = 0
  651. and ((date_add(rdr.assigned_time , interval rdr.acceptance_assess_time minute) &lt;= NOW() and rdr.receiving_time is null) or date_add(rdr.assigned_time , interval rdr.acceptance_assess_time minute) &lt;= rdr.receiving_time)
  652. where rr.is_duty = 0 and rr.maintenance_state &lt;= 7 and rr.deleted = 0 and rr.school_id = #{schoolId}
  653. UNION
  654. select rdv.user_id,rr.maintenance_state,rr.article_id,rr.id,rr.record_no,rr.report_time,rr.user_name,rr.user_phone,rr.area_id as area_name,rr.address,rr.description,rr.image,rr.maintenancer_name,rr.maintenancer_phone,rr.price from repair_record rr
  655. inner join repair_receiving rdv on rdv.deleted = 0 and rdv.record_id = rr.id and rdv.is_lose_efficacy = 0
  656. and ((date_add(rdv.receiving_time , interval rdv.maintenance_assess_time minute) &lt;= NOW() and rdv.maintenance_assess_time is null) or date_add(rdv.receiving_time , interval rdv.maintenance_assess_time minute) &lt;= rdv.finish_time)
  657. where rr.is_duty = 0 and rr.maintenance_state &lt;= 7 and rr.deleted = 0 and rr.school_id = #{schoolId}) t) as timeout_count,
  658. (select Count(*) from repair_record rr8
  659. where rr8.deleted = 0 and rr8.school_id = #{schoolId} and rr8.maintenance_state = 9) as closed_count
  660. </select>
  661. <!--待审核-->
  662. <select id="queryTeamWorkExamine" resultType="com.repair.model.vo.RepairTechnicianVo"
  663. resultMap="repairRecordTechnicianDataMap">
  664. select rr5.id,rr5.record_no,rr5.report_time,rr5.user_name,rr5.user_phone,rr5.area_id as area_name,rr5.address,rat.name as article_name ,rr5.description,rr5.image,'协作待审核' as state,rr5.maintenancer_name,rr5.maintenancer_phone,rr5.price from repair_record rr5
  665. inner join repair_collaborate_record rcr on rcr.deleted = 0 and rcr.record_id = rr5.id and rcr.approval_statu = 2
  666. left join repair_article_type rat on rat.deleted = 0 and rat.id = rr5.article_id
  667. where rr5.maintenance_state = 6 and rr5.school_id = #{schoolId} and rr5.deleted = 0
  668. UNION ALL
  669. select rr.id,rr.record_no,rr.report_time,rr.user_name,rr.user_phone,rr.area_id as area_name,rr.address,rat.name as article_name ,rr.description,rr.image,'转单待审核' as state,rr.maintenancer_name,rr.maintenancer_phone,rr.price from repair_record rr
  670. inner join repair_transfer_record rtr on rtr.deleted = 0 and rtr.record_id = rr.id and rtr.approval_statu = 2
  671. left join repair_article_type rat on rat.deleted = 0 and rat.id = rr.article_id
  672. where rr.maintenance_state = 5 and rr.school_id = #{schoolId} and rr.deleted = 0
  673. UNION ALL
  674. select rr.id,rr.record_no,rr.report_time,rr.user_name,rr.user_phone,rr.area_id as area_name,rr.address,rat.name as article_name ,rr.description,rr.image,'转线下待审核' as state,rr.maintenancer_name,rr.maintenancer_phone,rr.price from repair_record rr
  675. inner join repair_offline_record ror on ror.deleted = 0 and ror.record_id = rr.id and ror.approval_statu = 2
  676. left join repair_article_type rat on rat.deleted = 0 and rat.id = rr.article_id
  677. where rr.maintenance_state = 11 and rr.school_id = #{schoolId} and rr.deleted = 0
  678. </select>
  679. <!--待接单-->
  680. <select id="queryTeamWorkPending" resultType="com.repair.model.vo.RepairTechnicianVo"
  681. resultMap="repairRecordTechnicianDataMap">
  682. select t.*,ru.user_name as maintenancer_name,ru.user_phone as maintenancer_phone from
  683. (select case ((date_add(rdr.assigned_time , interval rdr.acceptance_assess_time minute) &lt;= #{dateNow} and rdr.receiving_time is null) or date_add(rdr.assigned_time , interval rdr.acceptance_assess_time minute) &lt;= rdr.receiving_time) when true then '超时未接' else null end as timeout_str,
  684. rr.voice,rr.voice_length,rr.finish_voice,rr.finish_voice_length,rr.id,rr.record_no,rr.report_time,rr.user_name,rr.user_phone,rr.area_id as area_name,rr.address,rat.name as article_name,rr.description,rr.image,'待接单' as state,rdr.users_id as rdrUId,rr.price,rr.user_class
  685. from repair_record rr
  686. inner join repair_dispatch_record rdr on rdr.deleted = 0 and rdr.record_id = rr.id and rdr.is_lose_efficacy = 0
  687. left join repair_article_type rat on rat.deleted = 0 and rat.id = rr.article_id
  688. where rr.maintenance_state = 1 and rr.school_id = #{schoolId} and rr.deleted = 0
  689. ) t
  690. left join repair_user ru on ru.id = t.rdrUId
  691. order by t.report_time DESC
  692. </select>
  693. <!--维修中-->
  694. <select id="queryTeamWorkMaintenance" resultType="com.repair.model.vo.RepairTechnicianVo"
  695. resultMap="repairRecordTechnicianDataMap">
  696. select t.*,ru.user_name as maintenancer_name,ru.user_phone as maintenancer_phone from
  697. (select case ((date_add(rdv.receiving_time, interval rdv.maintenance_assess_time minute) &lt;= #{dateNow} and rdv.maintenance_assess_time is null) or date_add(rdv.receiving_time , interval rdv.maintenance_assess_time minute) &lt;= rdv.finish_time) when true then '维修超时' else null end as timeout_str,
  698. rr.voice,rr.voice_length,rr.finish_voice,rr.finish_voice_length,rr.id,rr.record_no,rr.report_time,rr.user_name,rr.user_phone,rr.area_id as area_name,rr.address,rat.name as article_name ,rr.description,rr.image,'维修中' as state,rdv.user_id as rdrUId,rr.price,rr.user_class
  699. from repair_record rr
  700. inner join repair_receiving rdv on rdv.deleted = 0 and rdv.record_id = rr.id and rdv.is_lose_efficacy = 0
  701. left join repair_article_type rat on rat.deleted = 0 and rat.id = rr.article_id
  702. where rr.maintenance_state = 2 and rr.school_id = #{schoolId} and rr.deleted = 0
  703. ) t
  704. left join repair_user ru on ru.id = t.rdrUId
  705. order by t.report_time DESC
  706. </select>
  707. <!--已完成-->
  708. <select id="queryTeamWorkFinished" resultType="com.repair.model.vo.RepairTechnicianVo"
  709. resultMap="repairRecordTechnicianDataMap">
  710. select rr.voice,rr.voice_length,rr.finish_voice,rr.finish_voice_length,rr.id,rr.record_no,rr.report_time,rr.user_name,rr.user_phone,rr.area_id as area_name,rr.address,rat.name as article_name ,rr.description,rr.image,'已完成' as state,rr.maintenancer_name,rr.maintenancer_phone,rr.price,rr.user_class
  711. from repair_record rr
  712. left join repair_article_type rat on rat.deleted = 0 and rat.id = rr.article_id
  713. where rr.deleted = 0 and rr.school_id = #{schoolId} and rr.maintenance_state = 7
  714. order by rr.report_time DESC
  715. </select>
  716. <!--待处理-->
  717. <select id="queryTeamWorkLogistics" resultType="com.repair.model.vo.RepairTechnicianVo"
  718. resultMap="repairRecordTechnicianDataMap">
  719. select rr.voice,rr.voice_length,rr.finish_voice,rr.finish_voice_length,rr.id,rr.record_no,rr.report_time,rr.user_name,rr.user_phone,rr.area_id as area_name,rr.address,rat.name as article_name ,rr.description,rr.image,'待处理' as state,rr.maintenancer_name,rr.maintenancer_phone,rr.price,rr.user_class
  720. from repair_record rr
  721. left join repair_article_type rat on rat.deleted = 0 and rat.id = rr.article_id
  722. where rr.deleted = 0 and rr.school_id = #{schoolId} and rr.maintenance_state = 3
  723. order by rr.report_time DESC
  724. </select>
  725. <!--已超时-->
  726. <select id="queryTeamWorkTimeout" resultType="com.repair.model.vo.RepairTechnicianVo"
  727. resultMap="repairRecordTechnicianDataMap">
  728. SELECT t.voice,t.voice_length,t.finish_voice,t.finish_voice_length,ru.user_name as maintenancer_name,ru.user_phone as maintenancer_phone,case ((date_add(rdr.assigned_time , interval rdr.acceptance_assess_time minute) &lt;= NOW() and rdr.receiving_time is null) or date_add(rdr.assigned_time , interval rdr.acceptance_assess_time minute) &lt;= rdr.receiving_time) when true then '超时未接' else null end as timeout_str,case ((date_add(rdv.receiving_time, interval rdv.maintenance_assess_time minute) &lt;= NOW() and rdv.maintenance_assess_time is null) or date_add(rdv.receiving_time , interval rdv.maintenance_assess_time minute) &lt;= rdv.finish_time) when true then '维修超时' else null end as maintenance_timeout,rat.name as article_name,
  729. t.id,t.maintenance_state,t.record_no,t.report_time,t.user_name,t.user_phone,t.area_name,t.address,t.description,t.image,t.price FROM (
  730. select rr.voice,rr.voice_length,rr.finish_voice,rr.finish_voice_length,rdr.users_id as user_id,rr.maintenance_state,rr.article_id,rr.id,rr.record_no,rr.report_time,rr.user_name,rr.user_phone,rr.area_id as area_name,rr.address,rr.description,rr.image,rr.maintenancer_name,rr.maintenancer_phone,rr.price,rr.user_class
  731. from repair_record rr
  732. inner join repair_dispatch_record rdr on rdr.deleted = 0 and rdr.record_id = rr.id and rdr.is_lose_efficacy = 0
  733. and ((date_add(rdr.assigned_time , interval rdr.acceptance_assess_time minute) &lt;= NOW() and rdr.receiving_time is null) or date_add(rdr.assigned_time , interval rdr.acceptance_assess_time minute) &lt;= rdr.receiving_time)
  734. where rr.is_duty = 0 and rr.maintenance_state &lt;= 7 and rr.deleted = 0 and rr.school_id = #{schoolId}
  735. UNION
  736. select rr.voice,rr.voice_length,rr.finish_voice,rr.finish_voice_length,rdv.user_id,rr.maintenance_state,rr.article_id,rr.id,rr.record_no,rr.report_time,rr.user_name,rr.user_phone,rr.area_id as area_name,rr.address,rr.description,rr.image,rr.maintenancer_name,rr.maintenancer_phone,rr.price,rr.user_class
  737. from repair_record rr
  738. inner join repair_receiving rdv on rdv.deleted = 0 and rdv.record_id = rr.id and rdv.is_lose_efficacy = 0
  739. and ((date_add(rdv.receiving_time , interval rdv.maintenance_assess_time minute) &lt;= NOW() and rdv.maintenance_assess_time is null) or date_add(rdv.receiving_time , interval rdv.maintenance_assess_time minute) &lt;= rdv.finish_time)
  740. where rr.is_duty = 0 and rr.maintenance_state &lt;= 7 and rr.deleted = 0 and rr.school_id = #{schoolId}) t
  741. left join repair_dispatch_record rdr on rdr.users_id =t.user_id and rdr.deleted = 0 and rdr.record_id = t.id and rdr.is_lose_efficacy = 0
  742. left join repair_receiving rdv on rdv.user_id =t.user_id and rdv.deleted = 0 and rdv.record_id = t.id and rdv.is_lose_efficacy = 0
  743. left join repair_article_type rat on rat.deleted = 0 and rat.id = t.article_id
  744. left join repair_user ru on ru.deleted = 0 and ru.id = t.user_id
  745. order by t.report_time desc
  746. </select>
  747. <!--已关单-->
  748. <select id="queryTeamWorkClosed" resultType="com.repair.model.vo.RepairTechnicianVo"
  749. resultMap="repairRecordTechnicianDataMap">
  750. select rr.voice,rr.voice_length,rr.finish_voice,rr.finish_voice_length,rr.id,rr.record_no,rr.report_time,rr.user_name,rr.user_phone,rr.area_id as area_name,rr.address,rat.name as article_name ,rr.description,rr.image,'已关单' as state,rr.maintenancer_name,rr.maintenancer_phone,rr.price,rr.user_class
  751. from repair_record rr
  752. left join repair_article_type rat on rat.deleted = 0 and rat.id = rr.article_id
  753. where rr.deleted = 0 and rr.school_id = #{schoolId} and rr.maintenance_state = 9
  754. order by rr.report_time DESC
  755. </select>
  756. <!--转线下-->
  757. <select id="queryTeamWorkOffline" resultType="com.repair.model.vo.RepairTechnicianVo"
  758. resultMap="repairRecordTechnicianDataMap">
  759. select rr.voice,rr.voice_length,rr.finish_voice,rr.finish_voice_length,rr.id,rr.record_no,rr.report_time,rr.user_name,rr.user_phone,rr.area_id as area_name,rr.address,rat.name as article_name ,rr.description,rr.image,'转线下' as state,rr.maintenancer_name,rr.maintenancer_phone,rr.price,rr.user_class
  760. from repair_record rr
  761. left join repair_article_type rat on rat.deleted = 0 and rat.id = rr.article_id
  762. where rr.deleted = 0 and rr.school_id = #{schoolId} and rr.maintenance_state = 10
  763. order by rr.report_time DESC
  764. </select>
  765. <!-- 报表导出获取除已超时外的其他数据获取方式-->
  766. <select id="queryNotTimeoutReportExport" resultType="com.repair.model.vo.ReportExportVo">
  767. select rr.user_id,1 as details,rr.id,rr.record_no,rr.area_id as area_name,rr.user_name,rr.user_phone,rat.name as
  768. article_name,
  769. rr.description,rr.report_time,rr.maintenancer_name,rr.maintenance_state
  770. from repair_record rr
  771. left join repair_article_type rat on rat.deleted = 0 and rat.id = rr.article_id
  772. <where>
  773. and rr.deleted = 0
  774. <if test="schoolId != null and schoolId != ''">
  775. and rr.school_id = #{schoolId}
  776. </if>
  777. <if test="stateStr != null and stateStr != ''">
  778. and (rr.maintenance_state ${stateStr}
  779. </if>
  780. <if test="keyWord != null and keyWord != ''">
  781. and (rr.record_no like '%' #{keyWord} '%' or rr.area_id like '%' #{keyWord} '%' or rr.user_name like '%'
  782. #{keyWord} '%' or rr.user_phone like
  783. '%' #{keyWord} '%')
  784. </if>
  785. <if test="startTime != null and startTime != '' and endTime != null and endTime != ''">
  786. and rr.report_time between #{startTime} and #{endTime}
  787. </if>
  788. </where>
  789. order by rr.report_time desc
  790. </select>
  791. <!-- 报表导出获取除已超时数据获取方式-->
  792. <select id="queryTimeoutReportExport" resultType="com.repair.model.vo.ReportExportVo">
  793. SELECT * FROM (
  794. select rr3.user_id,1 as details,rr3.id,rr3.record_no,rr3.area_id as
  795. area_name,rr3.user_name,rr3.user_phone,rat.name as article_name,
  796. rr3.description,rr3.report_time,(select user_name from repair_user where id = rdr.users_id) as
  797. maintenancer_name,rr3.maintenance_state
  798. from repair_record rr3
  799. left join repair_article_type rat on rat.deleted = 0 and rat.id = rr3.article_id
  800. inner join repair_dispatch_record rdr on rdr.deleted = 0 and rdr.record_id = rr3.id and
  801. rdr.is_lose_efficacy = 0
  802. and ((date_add(rdr.assigned_time , interval rdr.acceptance_assess_time minute) &lt;= NOW() and
  803. rdr.receiving_time is null) or date_add(rdr.assigned_time , interval rdr.acceptance_assess_time minute) &lt;=
  804. rdr.receiving_time)
  805. <where>
  806. and rr3.deleted = 0 and rr3.is_duty = 0 and rr3.maintenance_state &lt;= 7
  807. <if test="keyWord != null and keyWord != ''">
  808. and (rr3.record_no like '%' #{keyWord} '%' or rr3.area_id like '%' #{keyWord} '%' or rr3.user_name like
  809. '%' #{keyWord} '%' or rr3.user_phone like
  810. '%' #{keyWord} '%')
  811. </if>
  812. <if test="startTime != null and startTime != '' and endTime != null and endTime != ''">
  813. and rr3.report_time between #{startTime} and #{endTime}
  814. </if>
  815. <if test="schoolId != null and schoolId != ''">
  816. and rr3.school_id = #{schoolId}
  817. </if>
  818. </where>
  819. UNION ALL
  820. select rr4.user_id,1 as details,rr4.id,rr4.record_no,rr4.area_id as
  821. area_name,rr4.user_name,rr4.user_phone,rat.name as
  822. article_name,
  823. rr4.description,rr4.report_time,(select user_name from repair_user where id = rdv.user_id) as
  824. maintenancer_name,rr4.maintenance_state
  825. from repair_record rr4
  826. left join repair_article_type rat on rat.deleted = 0 and rat.id = rr4.article_id
  827. inner join repair_receiving rdv on rdv.deleted = 0 and rdv.record_id = rr4.id and
  828. rdv.is_lose_efficacy = 0
  829. and ((date_add(rdv.receiving_time , interval rdv.maintenance_assess_time minute) &lt;= NOW() and
  830. rdv.maintenance_assess_time is null) or date_add(rdv.receiving_time , interval rdv.maintenance_assess_time
  831. minute) &lt;= rdv.finish_time)
  832. <where>
  833. and rr4.deleted = 0 and rr4.is_duty = 0 and rr4.maintenance_state &lt;= 7
  834. <if test="keyWord != null and keyWord != ''">
  835. and (rr4.record_no like '%' #{keyWord} '%' or rr4.area_id like '%' #{keyWord} '%' or rr4.user_name like
  836. '%' #{keyWord} '%' or rr4.user_phone like
  837. '%' #{keyWord} '%')
  838. </if>
  839. <if test="startTime != null and startTime != '' and endTime != null and endTime != ''">
  840. and rr4.report_time between #{startTime} and #{endTime}
  841. </if>
  842. <if test="schoolId != null and schoolId != ''">
  843. and rr4.school_id = #{schoolId}
  844. </if>
  845. </where>
  846. ) t
  847. order by t.report_time desc
  848. </select>
  849. <!--维修师傅首页头部数量-->
  850. <resultMap type="com.repair.model.vo.MasterHomepageVo" id="masterHomepageMap">
  851. <result property="workCount" column="work_count"/>
  852. <result property="processCount" column="process_count"/>
  853. <result property="finishCount" column="finish_count"/>
  854. <result property="timeoutCount" column="timeout_count"/>
  855. <result property="offlineCount" column="offline_count"/>
  856. </resultMap>
  857. <!--说明:-->
  858. <!--#work_count 工单数:维修师傅的工单总数,只计算维修师傅的接单数,待接单不用计算进去-->
  859. <!--#process_count 处理中:维修中没有完成的工单,包含维修中,待接单,待审核-->
  860. <!--#finish_count 已完成:已取消 已完成 已关单-->
  861. <!--#timeout_count 已超时:包含接单超时 维修超时-->
  862. <select id="queryMasterHomeCount" resultType="com.repair.model.vo.MasterHomepageVo" resultMap="masterHomepageMap">
  863. select
  864. (select count(*) from repair_receiving rc
  865. inner join repair_record rr on rr.deleted = 0 and rr.school_id = #{schoolId} and rr.id = rc.record_id
  866. where rc.deleted = 0 and rc.user_id = #{userId}) as work_count,
  867. (select
  868. (select Count(*) as rc from repair_record rr
  869. inner join repair_dispatch_record rdr on rdr.deleted = 0 and rdr.is_lose_efficacy = 0 and rdr.record_id = rr.id and rdr.users_id = #{userId}
  870. where rr.deleted = 0 and rr.school_id = #{schoolId} and rr.maintenance_state = 1) +
  871. (select Count(*) as wx from repair_record rr2
  872. inner join repair_receiving rdv on rdv.deleted = 0 and rdv.user_id = #{userId} and rdv.record_id = rr2.id and
  873. rdv.is_lose_efficacy = 0
  874. where rr2.maintenance_state = 2 and rr2.school_id = #{schoolId} and rr2.deleted = 0) +
  875. (select Count(*) as sh from (
  876. select rr5.* from repair_record rr5
  877. inner join repair_collaborate_record rcr on rcr.deleted = 0 and rcr.user_id = #{userId} and rcr.record_id = rr5.id and
  878. rcr.approval_statu = 2
  879. where rr5.maintenance_state = 6 and rr5.deleted = 0 and rr5.school_id = #{schoolId}
  880. UNION ALL
  881. select rr.* from repair_record rr
  882. inner join repair_transfer_record rtr on rtr.deleted = 0 and rtr.user_id = #{userId} and rtr.record_id = rr.id and
  883. rtr.approval_statu = 2
  884. where rr.maintenance_state = 5 and rr.deleted = 0 and rr.school_id = #{schoolId}) a) as process_count) as process_count,
  885. (select Count(*) from repair_record rr
  886. inner join repair_dispatch_record rdr on rdr.deleted = 0 and rdr.is_lose_efficacy = 0 and rdr.record_id = rr.id and rdr.users_id = #{userId}
  887. where rr.deleted = 0 and rr.school_id = #{schoolId} and rr.maintenance_state >= 7) as finish_count,
  888. (select Count(*) as cs from (select rr3.*
  889. from repair_record rr3
  890. inner join repair_dispatch_record rdr on rdr.deleted = 0 and rdr.users_id = #{userId} and rdr.record_id = rr3.id and
  891. rdr.is_lose_efficacy = 0
  892. and ((date_add(rdr.assigned_time , interval rdr.acceptance_assess_time minute) &lt;= NOW() and rdr.receiving_time is null) or date_add(rdr.assigned_time , interval rdr.acceptance_assess_time minute) &lt;= rdr.receiving_time)
  893. where rr3.maintenance_state &lt;= 7 and rr3.is_duty = 0 and rr3.school_id = #{schoolId} and rr3.deleted = 0
  894. UNION
  895. select rr4.* from repair_record rr4
  896. inner join repair_receiving rdv on rdv.deleted = 0 and rdv.user_id = #{userId} and rdv.record_id = rr4.id and
  897. rdv.is_lose_efficacy = 0
  898. and ((date_add(rdv.receiving_time , interval rdv.maintenance_assess_time minute) &lt;= NOW() and rdv.maintenance_assess_time is null) or date_add(rdv.receiving_time , interval rdv.maintenance_assess_time minute) &lt;= rdv.finish_time)
  899. where rr4.maintenance_state &lt;= 7 and rr4.is_duty = 0 and rr4.school_id = #{schoolId} and rr4.deleted = 0) c) as timeout_count
  900. </select>
  901. <!--后勤人员和郭师傅首页头部数量-->
  902. <!--说明:-->
  903. <!--#work_count 工单数:对应校区的工单总数,只计算对应人员校区的接单数,待接单不用计算进去-->
  904. <!--#process_count 处理中:维修中没有完成的工单,包含维修中,待接单,待审核-->
  905. <!--#finish_count 已完成:已取消 已完成 已关单-->
  906. <!--#timeout_count 已超时:包含接单超时 维修超时-->
  907. <select id="queryLogisticHomeCount" resultType="com.repair.model.vo.MasterHomepageVo" resultMap="masterHomepageMap">
  908. select
  909. (select Count(*) from repair_record rr
  910. where rr.deleted = 0 and rr.maintenance_state = 10) as offline_count,
  911. (select Count(*) from repair_receiving rc
  912. inner join repair_record rr on rr.deleted = 0 and rr.school_id = #{schoolId} and rr.id = rc.record_id
  913. where rc.deleted = 0) as work_count,
  914. (select
  915. (select Count(*) as rc from repair_record rr
  916. inner join repair_dispatch_record rdr on rdr.deleted = 0 and rdr.is_lose_efficacy = 0 and rdr.record_id = rr.id
  917. where rr.deleted = 0 and rr.maintenance_state = 1 and rr.school_id = #{schoolId}) +
  918. (select Count(*) as wx from repair_record rr2
  919. inner join repair_receiving rdv on rdv.deleted = 0 and rdv.record_id = rr2.id and
  920. rdv.is_lose_efficacy = 0
  921. where rr2.maintenance_state = 2 and rr2.deleted = 0 and rr2.school_id = #{schoolId}) +
  922. (select Count(*) as sh from (
  923. select rr5.* from repair_record rr5
  924. inner join repair_collaborate_record rcr on rcr.deleted = 0 and rcr.record_id = rr5.id and
  925. rcr.approval_statu = 2
  926. where rr5.maintenance_state = 6 and rr5.deleted = 0 and rr5.school_id = #{schoolId}
  927. UNION
  928. select rr.* from repair_record rr
  929. inner join repair_transfer_record rtr on rtr.deleted = 0 and rtr.record_id = rr.id and
  930. rtr.approval_statu = 2
  931. where rr.maintenance_state = 5 and rr.deleted = 0 and rr.school_id = #{schoolId}) a) as process_count) as process_count,
  932. (select Count(*) from repair_record rr
  933. inner join repair_dispatch_record rdr on rdr.deleted = 0 and rdr.is_lose_efficacy = 0 and rdr.record_id = rr.id
  934. where rr.deleted = 0 and rr.maintenance_state >= 7 and rr.school_id = #{schoolId}) as finish_count,
  935. (SELECT count(*) as cs FROM (
  936. select rdr.users_id as user_id,rr.maintenance_state,rr.article_id,rr.id,rr.record_no,rr.report_time,rr.user_name,rr.user_phone,rr.area_id as area_name,rr.address,rr.description,rr.image,rr.maintenancer_name,rr.maintenancer_phone,rr.price from repair_record rr
  937. inner join repair_dispatch_record rdr on rdr.deleted = 0 and rdr.record_id = rr.id and rdr.is_lose_efficacy = 0
  938. and ((date_add(rdr.assigned_time , interval rdr.acceptance_assess_time minute) &lt;= NOW() and rdr.receiving_time is null) or date_add(rdr.assigned_time , interval rdr.acceptance_assess_time minute) &lt;= rdr.receiving_time)
  939. where rr.is_duty = 0 and rr.maintenance_state &lt;= 7 and rr.deleted = 0 and rr.school_id = #{schoolId}
  940. UNION
  941. select rdv.user_id,rr.maintenance_state,rr.article_id,rr.id,rr.record_no,rr.report_time,rr.user_name,rr.user_phone,rr.area_id as area_name,rr.address,rr.description,rr.image,rr.maintenancer_name,rr.maintenancer_phone,rr.price from repair_record rr
  942. inner join repair_receiving rdv on rdv.deleted = 0 and rdv.record_id = rr.id and rdv.is_lose_efficacy = 0
  943. and ((date_add(rdv.receiving_time , interval rdv.maintenance_assess_time minute) &lt;= NOW() and rdv.maintenance_assess_time is null) or date_add(rdv.receiving_time , interval rdv.maintenance_assess_time minute) &lt;= rdv.finish_time)
  944. where rr.is_duty = 0 and rr.maintenance_state &lt;= 7 and rr.deleted = 0 and rr.school_id = #{schoolId}) t) as timeout_count
  945. </select>
  946. <resultMap type="com.repair.model.vo.RepairCampusRecordVo" id="repairCampusMap">
  947. <result property="id" column="id"/>
  948. <result property="price" column="price"/>
  949. <result property="schoolId" column="school_id"/>
  950. <result property="maintenanceState" column="maintenance_state"/>
  951. </resultMap>
  952. <select id="repairCampusTotal" resultType="com.repair.model.vo.RepairCampusRecordVo" resultMap="repairCampusMap">
  953. SELECT rr.id,rr.price,rr.school_id,rr.maintenance_state
  954. FROM `repair_record` rr
  955. left join repair_dispatch_record rdr on rdr.deleted = 0 and rdr.is_lose_efficacy = 0 and rdr.receiving_time is null and rdr.record_id = rr.id and rr.maintenance_state = 1
  956. left join repair_receiving rre on rre.deleted = 0 and rre.is_lose_efficacy = 0 and rre.finish_time is null and rre.record_id = rr.id and rr.maintenance_state = 2
  957. where rr.deleted = 0
  958. </select>
  959. <select id="repairCampus" resultType="com.repair.model.vo.RepairCampusRecordVo" resultMap="repairCampusMap">
  960. SELECT rr.id,rr.price,rr.school_id,rr.maintenance_state
  961. FROM `repair_record` rr
  962. left join repair_dispatch_record rdr on rdr.deleted = 0 and rdr.is_lose_efficacy = 0 and rdr.receiving_time is
  963. null and rdr.record_id = rr.id and rr.maintenance_state = 1
  964. left join repair_receiving rre on rre.deleted = 0 and rre.is_lose_efficacy = 0 and rre.finish_time is null and
  965. rre.record_id = rr.id and rr.maintenance_state = 2
  966. <where>
  967. and rr.deleted = 0
  968. <if test="startTime != null and startTime != '' and endTime != null and endTime != ''">
  969. and rr.report_time between #{startTime} and #{endTime}
  970. </if>
  971. </where>
  972. </select>
  973. <select id="repairAreaTotal" resultType="com.repair.model.vo.RepairAreaVo">
  974. SELECT row_number() over ( ORDER BY ra.area_name ) AS id, ra.*
  975. FROM (SELECT count(rr.area_id) AS orders_total,
  976. rs.`name` AS school_name,
  977. rr.area_id AS area_name,
  978. (SELECT COUNT(area_id)
  979. FROM `repair_record`
  980. WHERE price > 0
  981. AND rr.area_id = area_id
  982. AND deleted = 0) AS orders_compensation,
  983. (SELECT COUNT(area_id)
  984. FROM `repair_record`
  985. WHERE (price IS NULL OR price = 0)
  986. AND rr.area_id = area_id
  987. AND deleted = 0) AS orders_gratis,
  988. SUM(rr.price) AS total_price
  989. FROM `repair_record` rr
  990. LEFT JOIN repair_school rs ON rs.deleted = 0
  991. AND rr.school_id = rs.id
  992. where rr.deleted = 0
  993. GROUP BY rr.area_id) ra
  994. </select>
  995. <select id="repairArea" resultType="com.repair.model.vo.RepairAreaVo">
  996. SELECT row_number() over ( ORDER BY ra.area_name ) AS id, ra.*
  997. FROM (SELECT count(rr.area_id) AS orders_total,
  998. rs.`name` AS school_name,
  999. rr.area_id AS area_name,
  1000. (SELECT COUNT(area_id)
  1001. FROM `repair_record`
  1002. <where>
  1003. AND price > 0
  1004. AND rr.area_id = area_id
  1005. AND deleted = 0
  1006. <if test="startTime != null and startTime != '' and endTime != null and endTime != ''">
  1007. and report_time between #{startTime} and #{endTime}
  1008. </if>
  1009. </where>
  1010. ) AS orders_compensation,
  1011. (SELECT COUNT(area_id)
  1012. FROM `repair_record`
  1013. <where>
  1014. AND (price IS NULL OR price = 0)
  1015. AND rr.area_id = area_id
  1016. AND deleted = 0
  1017. <if test="startTime != null and startTime != '' and endTime != null and endTime != ''">
  1018. and report_time between #{startTime} and #{endTime}
  1019. </if>
  1020. </where>
  1021. ) AS orders_gratis,
  1022. SUM(rr.price) AS total_price
  1023. FROM `repair_record` rr
  1024. LEFT JOIN repair_school rs ON rs.deleted = 0
  1025. AND rr.school_id = rs.id
  1026. <where>
  1027. AND rr.deleted=0
  1028. <if test="startTime != null and startTime != '' and endTime != null and endTime != ''">
  1029. and report_time between #{startTime} and #{endTime}
  1030. </if>
  1031. </where>
  1032. GROUP BY rr.area_id) ra
  1033. </select>
  1034. <select id="maintenanceGoodsTotal" resultType="com.repair.model.vo.MaintenanceGoodsVo">
  1035. SELECT row_number() over ( ORDER BY wx.article_name ) AS id, wx.*
  1036. FROM (SELECT rat.`name` AS article_name,
  1037. rat.school_id as school_id,
  1038. count(rr.article_id) AS orders_total,
  1039. (SELECT COUNT(article_id)
  1040. FROM `repair_record`
  1041. WHERE price > 0
  1042. AND rr.article_id = article_id
  1043. AND deleted = 0) AS orders_compensation,
  1044. (SELECT COUNT(article_id)
  1045. FROM `repair_record`
  1046. WHERE (price IS NULL OR price = 0)
  1047. AND rr.article_id = article_id
  1048. AND deleted = 0) AS orders_gratis,
  1049. SUM(rr.price) AS total_price
  1050. FROM `repair_record` rr
  1051. LEFT JOIN repair_article_type rat ON rr.article_id = rat.id
  1052. WHERE rr.deleted = 0
  1053. GROUP BY rr.article_id) wx
  1054. </select>
  1055. <select id="maintenanceGoods" resultType="com.repair.model.vo.MaintenanceGoodsVo">
  1056. SELECT row_number() over ( ORDER BY wx.article_name ) AS id, wx.*
  1057. FROM (SELECT rat.`name` AS article_name,
  1058. rat.school_id as school_id,
  1059. count(rr.article_id) AS orders_total,
  1060. (SELECT COUNT(article_id)
  1061. FROM `repair_record`
  1062. <where>
  1063. and price > 0 AND rr.article_id = article_id AND deleted = 0
  1064. <if test="startTime != null and startTime != '' and endTime != null and endTime != ''">
  1065. and report_time between #{startTime} and #{endTime}
  1066. </if>
  1067. </where>
  1068. ) AS orders_compensation,
  1069. (SELECT COUNT(article_id)
  1070. FROM `repair_record`
  1071. <where>
  1072. and (price IS NULL OR price = 0)
  1073. AND rr.article_id = article_id
  1074. AND deleted = 0
  1075. <if test="startTime != null and startTime != '' and endTime != null and endTime != ''">
  1076. and report_time between #{startTime} and #{endTime}
  1077. </if>
  1078. </where>
  1079. ) AS orders_gratis,
  1080. SUM(rr.price) AS total_price
  1081. FROM `repair_record` rr
  1082. LEFT JOIN repair_article_type rat ON rr.article_id = rat.id
  1083. <where>
  1084. and rr.deleted = 0
  1085. <if test="startTime != null and startTime != '' and endTime != null and endTime != ''">
  1086. and report_time between #{startTime} and #{endTime}
  1087. </if>
  1088. </where>
  1089. GROUP BY rr.article_id) wx
  1090. </select>
  1091. <select id="repairAreaExport" resultType="com.repair.model.vo.RepairAreaVo">
  1092. SELECT row_number() over ( ORDER BY ra.area_name ) AS id, ra.*
  1093. FROM (SELECT count(rr.area_id) AS orders_total,
  1094. rs.`name` AS school_name,
  1095. rr.area_id AS area_name,
  1096. (SELECT COUNT(area_id)
  1097. FROM `repair_record`
  1098. <where>
  1099. AND price > 0
  1100. AND rr.area_id = area_id
  1101. AND deleted = 0
  1102. <if test="startTime != null and startTime != '' and endTime != null and endTime != ''">
  1103. and report_time between #{startTime} and #{endTime}
  1104. </if>
  1105. </where>
  1106. ) AS orders_compensation,
  1107. (SELECT COUNT(area_id)
  1108. FROM `repair_record`
  1109. <where>
  1110. AND (price IS NULL OR price = 0)
  1111. AND rr.area_id = area_id
  1112. AND deleted = 0
  1113. <if test="startTime != null and startTime != '' and endTime != null and endTime != ''">
  1114. and report_time between #{startTime} and #{endTime}
  1115. </if>
  1116. </where>
  1117. ) AS orders_gratis,
  1118. SUM(rr.price) AS total_price
  1119. FROM `repair_record` rr
  1120. LEFT JOIN repair_school rs ON rs.deleted = 0
  1121. AND rr.school_id = rs.id
  1122. <where>
  1123. AND rr.deleted=0
  1124. <if test="startTime != null and startTime != '' and endTime != null and endTime != ''">
  1125. and report_time between #{startTime} and #{endTime}
  1126. </if>
  1127. </where>
  1128. GROUP BY rr.area_id) ra
  1129. </select>
  1130. <select id="maintenanceGoodsExport" resultType="com.repair.model.vo.MaintenanceGoodsVo">
  1131. SELECT row_number() over ( ORDER BY wx.article_name ) AS id, wx.*
  1132. FROM (SELECT rat.`name` AS article_name,
  1133. rat.school_id as school_id,
  1134. count(rr.article_id) AS orders_total,
  1135. (SELECT COUNT(article_id)
  1136. FROM `repair_record`
  1137. <where>
  1138. and price > 0 AND rr.article_id = article_id AND deleted = 0
  1139. <if test="startTime != null and startTime != '' and endTime != null and endTime != ''">
  1140. and report_time between #{startTime} and #{endTime}
  1141. </if>
  1142. </where>
  1143. ) AS orders_compensation,
  1144. (SELECT COUNT(article_id)
  1145. FROM `repair_record`
  1146. <where>
  1147. and (price IS NULL OR price = 0)
  1148. AND rr.article_id = article_id
  1149. AND deleted = 0
  1150. <if test="startTime != null and startTime != '' and endTime != null and endTime != ''">
  1151. and report_time between #{startTime} and #{endTime}
  1152. </if>
  1153. </where>
  1154. ) AS orders_gratis,
  1155. SUM(rr.price) AS total_price
  1156. FROM `repair_record` rr
  1157. LEFT JOIN repair_article_type rat ON rat.deleted = 0
  1158. AND rr.article_id = rat.id
  1159. <where>
  1160. and rr.deleted = 0
  1161. <if test="startTime != null and startTime != '' and endTime != null and endTime != ''">
  1162. and report_time between #{startTime} and #{endTime}
  1163. </if>
  1164. </where>
  1165. GROUP BY rr.article_id) wx
  1166. </select>
  1167. <!--报修详情-->
  1168. <resultMap type="com.repair.model.vo.DetailsVo" id="detailDatasMap">
  1169. <result property="id" column="id"/>
  1170. <result property="maintenanceState" column="maintenance_state"/>
  1171. <result property="recordNo" column="record_no"/>
  1172. <result property="reportTime" column="report_time"/>
  1173. <result property="userName" column="user_name"/>
  1174. <result property="userPhone" column="user_phone"/>
  1175. <result property="userClass" column="user_class"/>
  1176. <result property="areaName" column="area_name"/>
  1177. <result property="address" column="address"/>
  1178. <result property="articleName" column="article_name"/>
  1179. <result property="description" column="description"/>
  1180. <result property="voice" column="voice"/>
  1181. <result property="voiceLength" column="voice_length"/>
  1182. <result property="finishVoice" column="finish_voice"/>
  1183. <result property="finishVoiceLength" column="finish_voice_length"/>
  1184. <result property="image" column="image"/>
  1185. <result property="maintenancerName" column="maintenancer_name"/>
  1186. <result property="maintenancerPhone" column="maintenancer_phone"/>
  1187. <result property="price" column="price"/>
  1188. </resultMap>
  1189. <select id="queryDetailData" resultType="com.repair.model.vo.DetailsVo" resultMap="detailDatasMap">
  1190. select
  1191. rr.id,rr.maintenance_state,rr.record_no,rr.report_time,rr.user_name,rr.user_phone,rr.user_class,rr.area_id as
  1192. area_name,rr.address,rat.name as article_name,rr.description,rr.voice,rr.voice_length,
  1193. rr.finish_voice,finish_voice_length,rr.image,rr.maintenancer_name,rr.maintenancer_phone,rr.price
  1194. from repair_record rr
  1195. left join repair_article_type rat on rat.deleted = 0 and rat.id = rr.article_id
  1196. where rr.deleted = 0
  1197. <if test="recordId != null and recordId != ''">
  1198. and rr.id = #{recordId}
  1199. </if>
  1200. </select>
  1201. <select id="repairAnalysis" resultType="com.repair.model.vo.RepairAnalysisVo">
  1202. SELECT
  1203. (SELECT COUNT(*) FROM repair_record
  1204. <where>
  1205. AND deleted = 0
  1206. and (maintenance_state in (5,6,11))
  1207. <if test="startTime != null and startTime != '' and endTime != null and endTime != ''">
  1208. and report_time between #{startTime} and #{endTime}
  1209. </if>
  1210. </where>
  1211. ) as check_count ,
  1212. (SELECT COUNT(*) FROM repair_record rr
  1213. left join repair_dispatch_record rdr on rdr.deleted = 0 and rdr.is_lose_efficacy = 0 and rdr.record_id = rr.id
  1214. and rr.maintenance_state = 1
  1215. <where>
  1216. AND rr.deleted = 0
  1217. and rr.maintenance_state = 1
  1218. <if test="startTime != null and startTime != '' and endTime != null and endTime != ''">
  1219. and rr.report_time between #{startTime} and #{endTime}
  1220. </if>
  1221. </where>
  1222. ) as receiving_count ,
  1223. (SELECT COUNT(*) FROM repair_record rr
  1224. left join repair_receiving rdv on rdv.deleted = 0 and rdv.record_id = rr.id and rdv.is_lose_efficacy = 0 and
  1225. rr.maintenance_state = 2
  1226. <where>
  1227. AND rr.deleted = 0
  1228. and rr.maintenance_state = 2
  1229. <if test="startTime != null and startTime != '' and endTime != null and endTime != ''">
  1230. and rr.report_time between #{startTime} and #{endTime}
  1231. </if>
  1232. </where>
  1233. ) as maintain_count ,
  1234. (SELECT COUNT(*) FROM repair_record
  1235. <where>
  1236. AND deleted = 0
  1237. and maintenance_state = 7
  1238. <if test="startTime != null and startTime != '' and endTime != null and endTime != ''">
  1239. and report_time between #{startTime} and #{endTime}
  1240. </if>
  1241. </where>
  1242. ) as accomplish_count ,
  1243. (SELECT COUNT(*) FROM repair_record
  1244. <where>
  1245. AND deleted = 0
  1246. and maintenance_state = 9
  1247. <if test="startTime != null and startTime != '' and endTime != null and endTime != ''">
  1248. and report_time between #{startTime} and #{endTime}
  1249. </if>
  1250. </where>
  1251. ) as shut_count ,
  1252. (SELECT COUNT(*) FROM repair_record
  1253. <where>
  1254. AND deleted = 0
  1255. and maintenance_state = 8
  1256. <if test="startTime != null and startTime != '' and endTime != null and endTime != ''">
  1257. and report_time between #{startTime} and #{endTime}
  1258. </if>
  1259. </where>
  1260. ) as cancel_count ,
  1261. (SELECT COUNT(*) FROM repair_record
  1262. <where>
  1263. AND deleted = 0
  1264. and maintenance_state = 3
  1265. <if test="startTime != null and startTime != '' and endTime != null and endTime != ''">
  1266. and report_time between #{startTime} and #{endTime}
  1267. </if>
  1268. </where>
  1269. ) as dispose_count ,
  1270. (SELECT COUNT(*) FROM repair_record
  1271. <where>
  1272. AND deleted = 0
  1273. and maintenance_state = 4
  1274. <if test="startTime != null and startTime != '' and endTime != null and endTime != ''">
  1275. and report_time between #{startTime} and #{endTime}
  1276. </if>
  1277. </where>
  1278. )
  1279. as affirm_count
  1280. </select>
  1281. <select id="queryTimeOut" resultType="java.lang.Integer">
  1282. SELECT count(*) FROM (
  1283. select rdr.users_id as
  1284. user_id,rr.maintenance_state,rr.article_id,rr.id,rr.record_no,rr.report_time,rr.user_name,rr.user_phone,rr.area_id
  1285. as area_name,rr.address,rr.description,rr.image,rr.maintenancer_name,rr.maintenancer_phone,rr.price from
  1286. repair_record rr
  1287. inner join repair_dispatch_record rdr on rdr.deleted = 0 and rdr.record_id = rr.id and rdr.is_lose_efficacy = 0
  1288. and ((date_add(rdr.assigned_time , interval rdr.acceptance_assess_time minute) &lt;= NOW() and
  1289. rdr.receiving_time is null) or date_add(rdr.assigned_time , interval rdr.acceptance_assess_time minute) &lt;=
  1290. rdr.receiving_time)
  1291. where rr.is_duty = 0 and rr.maintenance_state &lt;= 7 and rr.deleted = 0
  1292. <if test="startTime != null and startTime != '' and endTime != null and endTime != ''">
  1293. and rr.report_time between #{startTime} and #{endTime}
  1294. </if>
  1295. UNION
  1296. select
  1297. rdv.user_id,rr.maintenance_state,rr.article_id,rr.id,rr.record_no,rr.report_time,rr.user_name,rr.user_phone,rr.area_id
  1298. as area_name,rr.address,rr.description,rr.image,rr.maintenancer_name,rr.maintenancer_phone,rr.price from
  1299. repair_record rr
  1300. inner join repair_receiving rdv on rdv.deleted = 0 and rdv.record_id = rr.id and rdv.is_lose_efficacy = 0
  1301. and ((date_add(rdv.receiving_time , interval rdv.maintenance_assess_time minute) &lt;= NOW() and
  1302. rdv.maintenance_assess_time is null) or date_add(rdv.receiving_time , interval rdv.maintenance_assess_time
  1303. minute) &lt;= rdv.finish_time)
  1304. where rr.is_duty = 0 and rr.maintenance_state &lt;= 7 and rr.deleted = 0
  1305. <if test="startTime != null and startTime != '' and endTime != null and endTime != ''">
  1306. and rr.report_time between #{startTime} and #{endTime}
  1307. </if>
  1308. ) t
  1309. </select>
  1310. <select id="repairSummarizing" resultType="com.repair.model.vo.RepairSummarizingVo">
  1311. SELECT
  1312. (SELECT COUNT(*) FROM repair_record
  1313. <where>
  1314. AND deleted = 0
  1315. and (maintenance_state in (5,6,11))
  1316. <if test="startTime != null and startTime != '' and endTime != null and endTime != ''">
  1317. and report_time between #{startTime} and #{endTime}
  1318. </if>
  1319. </where>
  1320. ) as check_count ,
  1321. (SELECT COUNT(*) FROM repair_record rr
  1322. left join repair_dispatch_record rdr on rdr.deleted = 0 and rdr.is_lose_efficacy = 0 and rdr.record_id = rr.id
  1323. and rr.maintenance_state = 1
  1324. <where>
  1325. AND rr.deleted = 0
  1326. and rr.maintenance_state = 1
  1327. <if test="startTime != null and startTime != '' and endTime != null and endTime != ''">
  1328. and rr.report_time between #{startTime} and #{endTime}
  1329. </if>
  1330. </where>
  1331. ) as receiving_count ,
  1332. (SELECT COUNT(*) FROM repair_record rr
  1333. left join repair_receiving rdv on rdv.deleted = 0 and rdv.record_id = rr.id and rdv.is_lose_efficacy = 0 and
  1334. rr.maintenance_state = 2
  1335. <where>
  1336. AND rr.deleted = 0
  1337. and rr.maintenance_state = 2
  1338. <if test="startTime != null and startTime != '' and endTime != null and endTime != ''">
  1339. and rr.report_time between #{startTime} and #{endTime}
  1340. </if>
  1341. </where>
  1342. ) as maintain_count ,
  1343. (SELECT COUNT(*) FROM repair_record
  1344. <where>
  1345. AND deleted = 0
  1346. and maintenance_state = 7
  1347. <if test="startTime != null and startTime != '' and endTime != null and endTime != ''">
  1348. and report_time between #{startTime} and #{endTime}
  1349. </if>
  1350. </where>
  1351. ) as accomplish_count ,
  1352. (SELECT COUNT(*) FROM repair_record
  1353. <where>
  1354. AND deleted = 0
  1355. and maintenance_state = 9
  1356. <if test="startTime != null and startTime != '' and endTime != null and endTime != ''">
  1357. and report_time between #{startTime} and #{endTime}
  1358. </if>
  1359. </where>
  1360. ) as shut_count ,
  1361. (SELECT COUNT(*) FROM repair_record
  1362. <where>
  1363. AND deleted = 0
  1364. and maintenance_state = 8
  1365. <if test="startTime != null and startTime != '' and endTime != null and endTime != ''">
  1366. and report_time between #{startTime} and #{endTime}
  1367. </if>
  1368. </where>
  1369. ) as cancel_count ,
  1370. (SELECT COUNT(*) FROM repair_record
  1371. <where>
  1372. AND deleted = 0
  1373. and maintenance_state = 3
  1374. <if test="startTime != null and startTime != '' and endTime != null and endTime != ''">
  1375. and report_time between #{startTime} and #{endTime}
  1376. </if>
  1377. </where>
  1378. ) as dispose_count ,
  1379. (SELECT COUNT(*) FROM repair_record
  1380. <where>
  1381. AND deleted = 0
  1382. and maintenance_state = 4
  1383. <if test="startTime != null and startTime != '' and endTime != null and endTime != ''">
  1384. and report_time between #{startTime} and #{endTime}
  1385. </if>
  1386. </where>
  1387. )
  1388. as affirm_count
  1389. </select>
  1390. <select id="repairTotalData" resultType="com.repair.model.vo.RepairTotalDataVo">
  1391. select (SELECT COUNT(*)
  1392. FROM repair_record
  1393. where deleted = 0
  1394. and (maintenance_state in (5, 6,11))) as check_count,
  1395. (SELECT COUNT(*)
  1396. FROM repair_record rr
  1397. left join repair_dispatch_record rdr on rdr.deleted = 0 and rdr.is_lose_efficacy = 0 and rdr.record_id = rr.id and rr.maintenance_state = 1
  1398. where rr.deleted = 0
  1399. and rr.maintenance_state = 1) as receiving_count,
  1400. (SELECT COUNT(*)
  1401. FROM repair_record rr
  1402. left join repair_receiving rdv on rdv.deleted = 0 and rdv.record_id = rr.id and rdv.is_lose_efficacy = 0 and rr.maintenance_state = 2
  1403. where rr.deleted = 0
  1404. and rr.maintenance_state = 2) as maintain_count,
  1405. (SELECT COUNT(*)
  1406. FROM repair_record
  1407. where deleted = 0
  1408. and maintenance_state = 7) as accomplish_count,
  1409. (SELECT COUNT(*)
  1410. FROM repair_record
  1411. where deleted = 0
  1412. and maintenance_state = 9) as shut_count,
  1413. (SELECT COUNT(*)
  1414. FROM repair_record
  1415. where deleted = 0
  1416. and maintenance_state = 8) as cancel_count,
  1417. (SELECT COUNT(*)
  1418. FROM repair_record
  1419. where deleted = 0
  1420. and maintenance_state = 3) as dispose_count,
  1421. (SELECT COUNT(*)
  1422. FROM repair_record
  1423. where deleted = 0
  1424. and maintenance_state = 4)
  1425. as affirm_count
  1426. </select>
  1427. <<<<<<< HEAD
  1428. <!--打印-->
  1429. <resultMap type="com.repair.model.vo.PrintVo" id="PrintDataMap">
  1430. <result property="recordNo" column="record_no"/>
  1431. <result property="userName" column="user_name"/>
  1432. <result property="userClass" column="user_class"/>
  1433. <result property="userPhone" column="user_phone"/>
  1434. <result property="areaId" column="area_id"/>
  1435. <result property="articleName" column="article_name"/>
  1436. <result property="reportTime" column="report_time"/>
  1437. <result property="description" column="description"/>
  1438. <result property="maintenancerName" column="maintenancer_name"/>
  1439. <result property="maintenancerPhone" column="maintenancer_phone"/>
  1440. <result property="maintenanceState" column="maintenance_state"/>
  1441. <result property="schoolId" column="school_id"/>
  1442. <result property="price" column="price"/>
  1443. <result property="refund" column="refund"/>
  1444. </resultMap>
  1445. <select id="queryPrintData" resultType="com.repair.model.vo.PrintVo" resultMap="PrintDataMap">
  1446. select rr.record_no,rr.user_name,rr.user_class,rr.user_phone,CONCAT(rr.area_id,rr.address) as area_id,rat.name
  1447. as
  1448. article_name,rr.report_time,rr.description,rr.maintenancer_name,rr.maintenancer_phone,rr.maintenance_state,rr.price,rr.school_id,
  1449. (select IFNULL(sum(refund_price),0) from repair_refund_record where deleted = 0 and record_id = rr.id and
  1450. approve = 2) as refund
  1451. from repair_record rr
  1452. left join repair_article_type rat on rat.deleted = 0 and rat.id = rr.article_id
  1453. where rr.deleted = 0
  1454. <if test="recordId != null and recordId != ''">
  1455. and rr.id = #{recordId}
  1456. </if>
  1457. </select>
  1458. =======
  1459. >>>>>>> 1e8a464588113a3afc236ee3f004f164bb7128ff
  1460. >>>>>>> ad80b4e35f8af32a80da24920b5f5775bb80cda3
  1461. </mapper>