| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100 |
- <?xml version="1.0" encoding="UTF-8"?>
- <!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
- <mapper namespace="cn.iocoder.yudao.module.pms.dal.mysql.iotmainworkorder.IotMainWorkOrderMapper">
- <select id="allWorkOrderCountByResult" resultType="java.util.Map">
- SELECT 'all' result, COUNT(1) num FROM rq_iot_main_work_order
- UNION ALL
- SELECT 'todo' result, COUNT(1) num FROM rq_iot_main_work_order WHERE result=1
- UNION ALL
- SELECT 'done' result, COUNT(1) num FROM rq_iot_main_work_order WHERE result=2;
- </select>
- <select id="deviceOrderPage" resultType="cn.iocoder.yudao.module.pms.controller.admin.iotmainworkorder.vo.IotMainWorkOrderRespVO">
- SELECT *
- FROM rq_iot_main_work_order rimwo
- WHERE rimwo.id IN (
- SELECT rimwob.work_order_id
- FROM rq_iot_main_work_order_bom rimwob
- WHERE 1=1
- <if test="deviceId != null and deviceId != ''">
- AND rimwob.device_id = #{deviceId}
- </if>
- )
- AND rimwo.deleted = 0
- ORDER BY rimwo.id DESC
- </select>
- <!-- 按照最近保养时间排序的保养工单 列表 -->
- <select id="sortedMainWorkOrders"
- resultType="cn.iocoder.yudao.module.pms.controller.admin.iotmainworkorder.vo.IotMainWorkOrderRespVO">
- SELECT
- *
- FROM rq_iot_main_work_order mwo
- WHERE mwo.deleted = 0
- <if test="deptIds != null and deptIds.size > 0">
- AND mwo.dept_id IN
- <foreach collection="deptIds" index="index" item="key" open="(" separator="," close=")">
- #{key}
- </foreach>
- </if>
- <if test="eligibleWorkOrderIds != null and eligibleWorkOrderIds.size > 0">
- AND mwo.id IN
- <foreach collection="eligibleWorkOrderIds" index="index" item="key" open="(" separator="," close=")">
- #{key}
- </foreach>
- </if>
- <if test="reqVO.result != null and reqVO.result != 0 and reqVO.result != 3">
- AND mwo.result = #{reqVO.result}
- </if>
- <if test="reqVO.result != null and reqVO.result == 3">
- AND mwo.delay_reason <![CDATA[ <> ]]> ''
- </if>
- <if test="reqVO.createTime != null and reqVO.createTime.length > 0">
- <!-- 处理“开始时间”(数组第1位,如 createTime[0] = 2024-01-01 00:00:00) -->
- <if test="reqVO.createTime[0] != null">
- AND mwo.create_time >= #{reqVO.createTime[0]}
- </if>
- <!-- 处理“结束时间”(数组第2位,如 createTime[1] = 2024-01-31 23:59:59) -->
- <if test="reqVO.createTime.length > 1 and reqVO.createTime[1] != null">
- AND mwo.create_time <= #{reqVO.createTime[1]}
- </if>
- </if>
- ORDER BY
- <if test="alarmWorkOrderIds != null and alarmWorkOrderIds.size > 0">
- CASE WHEN mwo.id IN
- <foreach collection="alarmWorkOrderIds" index="index" item="key" open="(" separator="," close=")">
- #{key}
- </foreach>
- THEN 0 ELSE 1 END,
- FIELD(mwo.id,
- <foreach collection="alarmWorkOrderIds" index="index" item="key" separator=",">
- #{key}
- </foreach>),
- </if>
- mwo.id DESC;
- </select>
- <select id="selectStatusNumber" parameterType="cn.iocoder.yudao.module.pms.controller.admin.maintain.vo.IotMaintainPageReqVO"
- resultType="cn.iocoder.yudao.module.pms.controller.admin.stat.vo.AllOrderResp">
- SELECT status, COUNT(status) AS num FROM rq_iot_main_work_order a
- <where>
- a.deleted = 0
- <if test="reqVO.createTime[0] != null">
- AND a.create_time >= #{reqVO.createTime[0]}
- </if>
- <if test="reqVO.createTime.length > 1 and reqVO.createTime[1] != null">
- AND a.create_time <= #{reqVO.createTime[1]}
- </if>
- <if test="reqVO.deptIds != null and reqVO.deptIds.size > 0">
- AND a.dept_id IN
- <foreach collection="reqVO.deptIds" index="index" item="key" open="(" separator="," close=")">
- #{key}
- </foreach>
- </if>
- </where>
- GROUP BY status
- </select>
- </mapper>
|