IotMainWorkOrderMapper.xml 4.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100
  1. <?xml version="1.0" encoding="UTF-8"?>
  2. <!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
  3. <mapper namespace="cn.iocoder.yudao.module.pms.dal.mysql.iotmainworkorder.IotMainWorkOrderMapper">
  4. <select id="allWorkOrderCountByResult" resultType="java.util.Map">
  5. SELECT 'all' result, COUNT(1) num FROM rq_iot_main_work_order
  6. UNION ALL
  7. SELECT 'todo' result, COUNT(1) num FROM rq_iot_main_work_order WHERE result=1
  8. UNION ALL
  9. SELECT 'done' result, COUNT(1) num FROM rq_iot_main_work_order WHERE result=2;
  10. </select>
  11. <select id="deviceOrderPage" resultType="cn.iocoder.yudao.module.pms.controller.admin.iotmainworkorder.vo.IotMainWorkOrderRespVO">
  12. SELECT *
  13. FROM rq_iot_main_work_order rimwo
  14. WHERE rimwo.id IN (
  15. SELECT rimwob.work_order_id
  16. FROM rq_iot_main_work_order_bom rimwob
  17. WHERE 1=1
  18. <if test="deviceId != null and deviceId != ''">
  19. AND rimwob.device_id = #{deviceId}
  20. </if>
  21. )
  22. AND rimwo.deleted = 0
  23. ORDER BY rimwo.id DESC
  24. </select>
  25. <!-- 按照最近保养时间排序的保养工单 列表 -->
  26. <select id="sortedMainWorkOrders"
  27. resultType="cn.iocoder.yudao.module.pms.controller.admin.iotmainworkorder.vo.IotMainWorkOrderRespVO">
  28. SELECT
  29. *
  30. FROM rq_iot_main_work_order mwo
  31. WHERE mwo.deleted = 0
  32. <if test="deptIds != null and deptIds.size &gt; 0">
  33. AND mwo.dept_id IN
  34. <foreach collection="deptIds" index="index" item="key" open="(" separator="," close=")">
  35. #{key}
  36. </foreach>
  37. </if>
  38. <if test="eligibleWorkOrderIds != null and eligibleWorkOrderIds.size &gt; 0">
  39. AND mwo.id IN
  40. <foreach collection="eligibleWorkOrderIds" index="index" item="key" open="(" separator="," close=")">
  41. #{key}
  42. </foreach>
  43. </if>
  44. <if test="reqVO.result != null and reqVO.result != 0 and reqVO.result != 3">
  45. AND mwo.result = #{reqVO.result}
  46. </if>
  47. <if test="reqVO.result != null and reqVO.result == 3">
  48. AND mwo.delay_reason <![CDATA[ <> ]]> ''
  49. </if>
  50. <if test="reqVO.createTime != null and reqVO.createTime.length > 0">
  51. <!-- 处理“开始时间”(数组第1位,如 createTime[0] = 2024-01-01 00:00:00) -->
  52. <if test="reqVO.createTime[0] != null">
  53. AND mwo.create_time &gt;= #{reqVO.createTime[0]}
  54. </if>
  55. <!-- 处理“结束时间”(数组第2位,如 createTime[1] = 2024-01-31 23:59:59) -->
  56. <if test="reqVO.createTime.length > 1 and reqVO.createTime[1] != null">
  57. AND mwo.create_time &lt;= #{reqVO.createTime[1]}
  58. </if>
  59. </if>
  60. ORDER BY
  61. <if test="alarmWorkOrderIds != null and alarmWorkOrderIds.size &gt; 0">
  62. CASE WHEN mwo.id IN
  63. <foreach collection="alarmWorkOrderIds" index="index" item="key" open="(" separator="," close=")">
  64. #{key}
  65. </foreach>
  66. THEN 0 ELSE 1 END,
  67. FIELD(mwo.id,
  68. <foreach collection="alarmWorkOrderIds" index="index" item="key" separator=",">
  69. #{key}
  70. </foreach>),
  71. </if>
  72. mwo.id DESC;
  73. </select>
  74. <select id="selectStatusNumber" parameterType="cn.iocoder.yudao.module.pms.controller.admin.maintain.vo.IotMaintainPageReqVO"
  75. resultType="cn.iocoder.yudao.module.pms.controller.admin.stat.vo.AllOrderResp">
  76. SELECT status, COUNT(status) AS num FROM rq_iot_main_work_order a
  77. <where>
  78. a.deleted = 0
  79. <if test="reqVO.createTime[0] != null">
  80. AND a.create_time &gt;= #{reqVO.createTime[0]}
  81. </if>
  82. <if test="reqVO.createTime.length > 1 and reqVO.createTime[1] != null">
  83. AND a.create_time &lt;= #{reqVO.createTime[1]}
  84. </if>
  85. <if test="reqVO.deptIds != null and reqVO.deptIds.size &gt; 0">
  86. AND a.dept_id IN
  87. <foreach collection="reqVO.deptIds" index="index" item="key" open="(" separator="," close=")">
  88. #{key}
  89. </foreach>
  90. </if>
  91. </where>
  92. GROUP BY status
  93. </select>
  94. </mapper>