| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164 |
- <?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.inspect.IotInspectOrderDetailMapper">
- <!--
- 一般情况下,尽可能使用 Mapper 进行 CRUD 增删改查即可。
- 无法满足的场景,例如说多表关联查询,才使用 XML 编写 SQL。
- 代码生成器暂时只生成 Mapper XML 文件本身,更多推荐 MybatisX 快速开发插件来生成查询。
- 文档可见:https://www.iocoder.cn/MyBatis/x-plugins/
- -->
- <select id="getDeviceStatusWei"
- resultType="cn.iocoder.yudao.module.pms.controller.admin.inspect.order.vo.IotInspectDeviceVo">
- select * from(select order_id, device_id,create_time, if_normal,dept_id,
- (select inspect_order_title from rq_iot_inspect_order aa where aa.id = fin.order_id) order_name,
- (select device_name from rq_iot_device aa where aa.id = fin.device_id) device_name,
- (select device_code from rq_iot_device aa where aa.id = fin.device_id) device_code
- from (SELECT
- order_id,
- device_id,
- max(create_time) create_time,
- max(dept_id) dept_id,
- '未填写' AS if_normal
- FROM
- rq_iot_inspect_order_detail de where de.deleted=0 and de.ignore_reason = false
- GROUP BY
- order_id, device_id
- HAVING
- SUM(CASE WHEN if_normal IS NULL THEN 1 ELSE 0 END)> 0) fin)finall
- <where>
- <if test="reqVO.deviceName!=null and reqVO.deviceName!=''">
- and finall.device_name LIKE CONCAT('%',#{reqVO.deviceName},'%')
- </if>
- <if test="reqVO.deviceCode!=null and reqVO.deviceCode!=''">
- and finall.device_code LIKE CONCAT('%',#{reqVO.deviceCode},'%')
- </if>
- <if test="reqVO.createTime != null and reqVO.createTime.length > 0">
- <choose>
- <when test="reqVO.createTime.length == 1">
- AND finall.create_time = #{reqVO.createTime[0],typeHandler=org.apache.ibatis.type.LocalDateTimeTypeHandler}
- </when>
- <otherwise>
- AND finall.create_time BETWEEN #{reqVO.createTime[0],typeHandler=org.apache.ibatis.type.LocalDateTimeTypeHandler} AND #{reqVO.createTime[1],typeHandler=org.apache.ibatis.type.LocalDateTimeTypeHandler}
- </otherwise>
- </choose>
- </if>
- <if test="deptIds != null and deptIds.size > 0">
- AND finall.dept_id IN
- <foreach collection="deptIds" index="index" item="key" open="(" separator="," close=")">
- #{key}
- </foreach>
- </if>
- </where>
- order by create_time desc
- </select>
- <select id="getDeviceStatusYi"
- resultType="cn.iocoder.yudao.module.pms.controller.admin.inspect.order.vo.IotInspectDeviceVo">
- select * from(select order_id, device_id,create_time, if_normal,dept_id,
- (select inspect_order_title from rq_iot_inspect_order aa where aa.id = fin.order_id) order_name,
- (select device_name from rq_iot_device aa where aa.id = fin.device_id) device_name,
- (select device_code from rq_iot_device aa where aa.id = fin.device_id) device_code
- from (SELECT
- order_id,
- device_id,
- max(create_time) create_time,
- max(dept_id) dept_id,
- '已填写' AS if_normal
- FROM
- rq_iot_inspect_order_detail de where de.deleted=0 and de.ignore_reason = false
- GROUP BY
- order_id, device_id
- HAVING
- SUM(CASE WHEN if_normal IS NULL THEN 1 ELSE 0 END)= 0) fin)finall
- <where>
- <if test="reqVO.deviceName!=null and reqVO.deviceName!=''">
- and finall.device_name LIKE CONCAT('%',#{reqVO.deviceName},'%')
- </if>
- <if test="reqVO.deviceCode!=null and reqVO.deviceCode!=''">
- and finall.device_code LIKE CONCAT('%',#{reqVO.deviceCode},'%')
- </if>
- <if test="reqVO.createTime != null and reqVO.createTime.length > 0">
- <choose>
- <when test="reqVO.createTime.length == 1">
- AND finall.create_time = #{reqVO.createTime[0],typeHandler=org.apache.ibatis.type.LocalDateTimeTypeHandler}
- </when>
- <otherwise>
- AND finall.create_time BETWEEN #{reqVO.createTime[0],typeHandler=org.apache.ibatis.type.LocalDateTimeTypeHandler} AND #{reqVO.createTime[1],typeHandler=org.apache.ibatis.type.LocalDateTimeTypeHandler}
- </otherwise>
- </choose>
- </if>
- <if test="deptIds != null and deptIds.size > 0">
- AND finall.dept_id IN
- <foreach collection="deptIds" index="index" item="key" open="(" separator="," close=")">
- #{key}
- </foreach>
- </if>
- </where>
- order by create_time desc
- </select>
- <select id="getDeviceStatusIgnore"
- resultType="cn.iocoder.yudao.module.pms.controller.admin.inspect.order.vo.IotInspectDeviceVo">
- select * from(select order_id, device_id,create_time, if_normal,dept_id,
- (select inspect_order_title from rq_iot_inspect_order aa where aa.id = fin.order_id) order_name,
- (select device_name from rq_iot_device aa where aa.id = fin.device_id) device_name,
- (select device_code from rq_iot_device aa where aa.id = fin.device_id) device_code
- from (SELECT
- order_id,
- device_id,
- max(create_time) create_time,
- max(dept_id) dept_id,
- '忽略' AS if_normal
- FROM
- rq_iot_inspect_order_detail de where de.deleted=0 and de.ignore_reason = true
- GROUP BY
- order_id, device_id
- ) fin)finall
- <where>
- <if test="reqVO.deviceName!=null and reqVO.deviceName!=''">
- and finall.device_name LIKE CONCAT('%',#{reqVO.deviceName},'%')
- </if>
- <if test="reqVO.deviceCode!=null and reqVO.deviceCode!=''">
- and finall.device_code LIKE CONCAT('%',#{reqVO.deviceCode},'%')
- </if>
- <if test="reqVO.createTime != null and reqVO.createTime.length > 0">
- <choose>
- <when test="reqVO.createTime.length == 1">
- AND finall.create_time = #{reqVO.createTime[0],typeHandler=org.apache.ibatis.type.LocalDateTimeTypeHandler}
- </when>
- <otherwise>
- AND finall.create_time BETWEEN #{reqVO.createTime[0],typeHandler=org.apache.ibatis.type.LocalDateTimeTypeHandler} AND #{reqVO.createTime[1],typeHandler=org.apache.ibatis.type.LocalDateTimeTypeHandler}
- </otherwise>
- </choose>
- </if>
- <if test="deptIds != null and deptIds.size > 0">
- AND finall.dept_id IN
- <foreach collection="deptIds" index="index" item="key" open="(" separator="," close=")">
- #{key}
- </foreach>
- </if>
- </where>
- order by create_time desc
- </select>
- <select id="getExceptionDevicePage" resultType="cn.iocoder.yudao.module.pms.controller.admin.vo.IotDeviceSimple">
- select b.device_code as deviceCode, b.device_name as deviceName, a.orderCount,a.dept_id as deptId, from (select device_id,count(distinct order_id) as orderCount from rq_iot_inspect_order_detail c
- <where>
- c.if_normal = false and c.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 device_id)a
- left join rq_iot_device b on a.device_id=b.id
- </select>
- </mapper>
|