IotDeviceRunLogMapper.xml 1.6 KB

12345678910111213141516171819202122232425262728293031
  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.iotdevicerunlog.IotDeviceRunLogMapper">
  4. <!--
  5. 一般情况下,尽可能使用 Mapper 进行 CRUD 增删改查即可。
  6. 无法满足的场景,例如说多表关联查询,才使用 XML 编写 SQL。
  7. 代码生成器暂时只生成 Mapper XML 文件本身,更多推荐 MybatisX 快速开发插件来生成查询。
  8. 文档可见:https://www.iocoder.cn/MyBatis/x-plugins/
  9. -->
  10. <select id="distinctDevices"
  11. resultType="cn.iocoder.yudao.module.pms.controller.admin.iotdevicerunlog.vo.IotDeviceRunLogRespVO">
  12. SELECT drl.device_id,
  13. MAX(CASE WHEN mta.`code` = 'sc' THEN drl.total_run_time ELSE 0 END) AS total_run_time,
  14. MAX(CASE WHEN mta.`code` = 'gls' THEN drl.total_run_time ELSE 0 END) AS total_mileage,
  15. MAX(drl.point_name) point_name,
  16. mta.`code` point_code
  17. FROM rq_iot_device_run_log drl
  18. LEFT JOIN rq_iot_model_template_attrs mta ON (mta.`name` = drl.point_name AND (mta.`code` ='sc' OR mta.`code`='gls'))
  19. WHERE drl.deleted = 0
  20. <if test="deviceIds != null and deviceIds.size &gt; 0">
  21. AND drl.device_id IN
  22. <foreach collection="deviceIds" index="index" item="key" open="(" separator="," close=")">
  23. #{key}
  24. </foreach>
  25. </if>
  26. AND (mta.`code` = 'sc' OR mta.`code` = 'gls')
  27. GROUP BY drl.device_id, mta.`code`
  28. </select>
  29. </mapper>