| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384 |
- <?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.iotrydailyreport.IotRyDailyReportMapper">
- <!-- 基础结果映射 -->
- <resultMap id="BaseResultMap" type="cn.iocoder.yudao.module.pms.dal.dataobject.iotrydailyreport.IotRyDailyReportDO">
- <!-- 根据实际字段配置 -->
- <id column="id" property="id" />
- <result column="dept_id" property="deptId" />
- <result column="project_id" property="projectId" />
- <result column="task_id" property="taskId" />
- <result column="rig_status" property="rigStatus" />
- <result column="construction_start_date" property="constructionStartDate" />
- <result column="construction_end_date" property="constructionEndDate" />
- <result column="relocation_days" property="relocationDays" />
- <!-- 其他字段映射 -->
- </resultMap>
- <select id="selectListGrouped" resultMap="BaseResultMap"
- parameterType="cn.iocoder.yudao.module.pms.controller.admin.iotrhdailyreport.vo.IotRhDailyReportPageReqVO">
- SELECT t1.*, g.min_start_date
- FROM rq_iot_ry_daily_report t1
- INNER JOIN (
- SELECT
- rig_status,
- MIN(construction_start_date) as min_start_date
- FROM rq_iot_ry_daily_report
- <where>
- <if test="reqVO.deptId != null">
- AND dept_id = #{reqVO.deptId}
- </if>
- <if test="reqVO.projectId != null">
- AND project_id = #{reqVO.projectId}
- </if>
- <if test="reqVO.taskId != null">
- AND task_id = #{reqVO.taskId}
- </if>
- </where>
- GROUP BY rig_status
- ) g ON t1.rig_status = g.rig_status
- AND t1.construction_start_date = g.min_start_date
- WHERE NOT EXISTS (
- SELECT 1 FROM rq_iot_ry_daily_report t2
- WHERE t2.rig_status = t1.rig_status
- AND t2.construction_start_date < t1.construction_start_date
- <if test="reqVO.deptId != null">
- AND t2.dept_id = #{reqVO.deptId}
- </if>
- <if test="reqVO.projectId != null">
- AND t2.project_id = #{reqVO.projectId}
- </if>
- <if test="reqVO.taskId != null">
- AND t2.task_id = #{reqVO.taskId}
- </if>
- )
- <if test="reqVO.deptId != null">
- AND t1.dept_id = #{reqVO.deptId}
- </if>
- <if test="reqVO.projectId != null">
- AND t1.project_id = #{reqVO.projectId}
- </if>
- <if test="reqVO.taskId != null">
- AND t1.task_id = #{reqVO.taskId}
- </if>
- ORDER BY g.min_start_date ASC
- </select>
- <select id="latestWellDoneTimes" resultMap="BaseResultMap"
- parameterType="cn.iocoder.yudao.module.pms.controller.admin.iotrydailyreport.vo.IotRyDailyReportPageReqVO">
- SELECT r1.dept_id,
- r1.task_id,
- r1.construction_start_date
- FROM rq_iot_ry_daily_report r1
- INNER JOIN (
- SELECT
- dept_id,
- MAX(create_time) AS max_create_time
- FROM rq_iot_ry_daily_report
- WHERE rig_status = 12
- GROUP BY dept_id
- ) r2 ON r1.dept_id = r2.dept_id AND r1.create_time = r2.max_create_time
- WHERE r1.rig_status = 12;
- </select>
- </mapper>
|