MaintainPlanDetailMapper.xml 2.52 KB
<?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="com.zteits.urbanops.module.garden.dal.mysql.maintainplan.MaintainPlanDetailMapper">

    <!--
        一般情况下,尽可能使用 Mapper 进行 CRUD 增删改查即可。
        无法满足的场景,例如说多表关联查询,才使用 XML 编写 SQL。
        代码生成器暂时只生成 Mapper XML 文件本身,更多推荐 MybatisX 快速开发插件来生成查询。
        文档可见:https://www.iocoder.cn/MyBatis/x-plugins/
     -->

    <delete id="deleteByBatchNo">
        delete from garden_maintain_plan_detail where batch_no =#{batchNo}
    </delete>

    <select id="appMaintainPlanDetailListByRoad" resultType="com.zteits.urbanops.module.garden.controller.app.maintainplan.vo.AppMaintainPlanDetailRespVO">
        SELECT
        c.batch_no,
        c.plan_no,
        a.plan_name,
        a.plan_type_id,
        a.rate,
        a.cycle_id,
        c.plan_num,
        c.finish_percent,
        c.finish_state,
        c.begin_time,
        c.end_time,
        c.sort_num
        FROM
        garden_maintain_plan a,
        garden_maintain_plan_role b,
        garden_maintain_plan_detail c
        WHERE
        a.batch_no = b.batch_no
        and a.batch_no=b.batch_no
        AND a.dept_id =b.dept_id
        AND a.deleted=0
        AND a.company_id = #{companyId}
        AND a.road_id = #{roadId}
        <if test="planName != null and planName !=''">
            AND a.plan_name LIKE CONCAT('%',#{planName},'%')
        </if>
        <if test="roleIds != null and roleIds.size() > 0">
            AND b.role_id IN
            <foreach collection="roleIds" item="roleId" open="(" separator="," close=")">
                #{roleId}
            </foreach>
        </if>
        <if test="busiLineList != null and busiLineList.size() > 0">
            AND a.busi_line IN
            <foreach collection="busiLineList" item="busiLine" open="(" separator="," close=")">
                #{busiLine}
            </foreach>
        </if>
        <!--状态 1:未完成;2:已完成;3:已失效-->
        <if test="finishState == 3">
            <![CDATA[and c.end_time < #{localDate}]]>
        </if>
        <if test="finishState == 2">
            and c.finish_state = #{finishState}
        </if>
        <if test="finishState == 1">
            and c.finish_state = #{finishState}
            <![CDATA[and c.end_time >= #{localDate}]]>
        </if>
    </select>
</mapper>