<?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.factory.wx.mapper.AbnormalStatisticsMapper">
    <!-- 获取放行异常计划列表 -->
    <select id="getReleasedAbnormalPlans" parameterType="com.factory.wx.entity.req.AbnormalPlanReq"
            resultType="com.factory.wx.entity.res.AbnormalPlanRes">
        SELECT DISTINCT
            bp.id AS plan_id,
            bp.`name` AS plan_name,
            bp.plan_type
        FROM
            onsite_task ot,
            onsite_calendar oc,
            benteler_plan bp
        WHERE
            ot.onsite_calendar_id = oc.id
            AND oc.benteler_plan_id = bp.id
            AND ot.`status` = 2
            <if test="name != ''">
                AND bp.`name` LIKE CONCAT('%',#{name},'%')
            </if>
            AND ot.task_time LIKE CONCAT(#{month},'%')
        UNION
        SELECT DISTINCT
            bp.id AS plan_id,
            bp.`name` AS plan_name,
            bp.plan_type
        FROM
            first_article_task ot,
            first_article_calendar oc,
            benteler_plan bp
        WHERE
            ot.first_article_calendar_id = oc.id
            AND oc.benteler_plan_id = bp.id
            AND ot.`status` = 2
            <if test="name != ''">
                AND bp.`name` LIKE CONCAT('%',#{name},'%')
            </if>
            AND ot.task_time LIKE CONCAT(#{month},'%');
    </select>
    <!-- 获取重检异常计划列表 -->
    <select id="getRecheckedAbnormalPlans" parameterType="com.factory.wx.entity.req.AbnormalPlanReq"
            resultType="com.factory.wx.entity.res.AbnormalPlanRes">
        SELECT DISTINCT
            bp.id,
            bp.`name`,
            bp.plan_type
        FROM
            onsite_task_his_blob othb,
            onsite_task ot,
            onsite_calendar oc,
            benteler_plan bp
        WHERE
            othb.onsite_task_id = ot.id
          AND ot.onsite_calendar_id = oc.id
          AND oc.benteler_plan_id = bp.id
        <if test="name != ''">
            AND bp.`name` LIKE CONCAT('%',#{name},'%')
        </if>
        AND ot.task_time LIKE CONCAT(#{month},'%');
        UNION
        SELECT DISTINCT
            bp.id,
            bp.`name`,
            bp.plan_type
        FROM
            first_article_task_his_blob othb,
            first_article_task ot,
            first_article_calendar oc,
            benteler_plan bp
        WHERE
            othb.first_article_task_id = ot.id
          AND ot.first_article_calendar_id = oc.id
          AND oc.benteler_plan_id = bp.id
        <if test="name != ''">
            AND bp.`name` LIKE CONCAT('%',#{name},'%')
        </if>
        AND ot.task_time LIKE CONCAT(#{month},'%');
    </select>

</mapper>