RuleSchedulingMapper.xml 14.3 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.ruoyi.scheduling.mapper.RuleSchedulingMapper">

    <resultMap type="com.ruoyi.pojo.dto.RuleSchedulingDto" id="RuleSchedulingDtoResult">
        <result property="id"    column="id"    />
        <result property="ruleName"    column="rule_name"    />
        <result property="workingHourPlan"    column="working_hour_plan"    />
        <result property="workingHourType"    column="working_hour_type"    />
        <result property="firstWorkSignInTime"    column="first_work_sign_in_time"    />
        <result property="firstSignInWorkingRange"    column="first_sign_in_working_range"    />
        <result property="firstQuittingSignInTime"    column="first_quitting_sign_in_time"    />
        <result property="firstSignInDayTomorrow"    column="first_sign_in_day_tomorrow"    />
        <result property="firstSignInQuittingRange"    column="first_sign_in_quitting_range"    />
        <result property="signInTimeOutRange"    column="sign_in_time_out_range"    />
        <result property="secondFlag"    column="second_flag"    />
        <result property="secondWorkSignInTime"    column="second_work_sign_in_time"    />
        <result property="secondSignInWorkingRange"    column="second_sign_in_working_range"    />
        <result property="secondQuittingSignInTime"    column="second_quitting_sign_in_time"    />
        <result property="secondSignInQuittingRange"    column="second_sign_in_quitting_range"    />
        <result property="secondSignDayTomorrow"    column="second_sign_day_tomorrow"    />
        <result property="settingId"    column="setting_id"    />
        <result property="sort"    column="sort"    />
        <result property="createTime"    column="create_time"    />
        <result property="updateTime"    column="update_time"    />
        <result property="createBy"    column="create_by"    />
        <result property="updateBy"    column="update_by"    />
    </resultMap>

    <resultMap type="RuleScheduling" id="RuleSchedulingResult">
        <result property="id"    column="id"    />
        <result property="ruleName"    column="rule_name"    />
        <result property="workingHourPlan"    column="working_hour_plan"    />
        <result property="workingHourType"    column="working_hour_type"    />
        <result property="firstWorkSignInTime"    column="first_work_sign_in_time"    />
        <result property="firstSignInWorkingRange"    column="first_sign_in_working_range"    />
        <result property="firstQuittingSignInTime"    column="first_quitting_sign_in_time"    />
        <result property="firstSignInDayTomorrow"    column="first_sign_in_day_tomorrow"    />
        <result property="firstSignInQuittingRange"    column="first_sign_in_quitting_range"    />
        <result property="signInTimeOutRange"    column="sign_in_time_out_range"    />
        <result property="secondFlag"    column="second_flag"    />
        <result property="secondWorkSignInTime"    column="second_work_sign_in_time"    />
        <result property="secondSignInWorkingRange"    column="second_sign_in_working_range"    />
        <result property="secondQuittingSignInTime"    column="second_quitting_sign_in_time"    />
        <result property="secondSignInQuittingRange"    column="second_sign_in_quitting_range"    />
        <result property="secondSignDayTomorrow"    column="second_sign_day_tomorrow"    />
        <result property="createTime"    column="create_time"    />
        <result property="updateTime"    column="update_time"    />
        <result property="createBy"    column="create_by"    />
        <result property="updateBy"    column="update_by"    />
    </resultMap>
    <resultMap id="AttendanceResult" type="com.ruoyi.pojo.dto.AttendanceDto">
        <result property="jobCode" column="job_code" jdbcType="VARCHAR"/>
        <result property="name" column="personnel_name" jdbcType="VARCHAR"/>
        <result property="posts" column="posts" jdbcType="VARCHAR"/>
        <result property="name" column="personnel_name" jdbcType="VARCHAR"/>
        <result property="settingId" column="setting_id" jdbcType="INTEGER"/>
        <result property="startDate" column="start_date" jdbcType="DATE"/>
        <result property="fleetName" column="fleet_name" jdbcType="VARCHAR"/>
    </resultMap>

    <sql id="selectRuleSchedulingVo">
        select id, rule_name, working_hour_plan, working_hour_type, first_work_sign_in_time, first_sign_in_working_range, first_quitting_sign_in_time, first_sign_in_day_tomorrow, first_sign_in_quitting_range, sign_in_time_out_range, second_flag, second_work_sign_in_time, second_sign_in_working_range, second_quitting_sign_in_time, second_sign_in_quitting_range, second_sign_day_tomorrow,update_by,update_time,create_by,create_time from rule_scheduling
    </sql>

    <select id="selectRuleSchedulingList" parameterType="RuleScheduling" resultMap="RuleSchedulingResult">
        <include refid="selectRuleSchedulingVo"/>
        <where>
            <if test="ruleName != null  and ruleName != ''"> and rule_name like concat('%', #{ruleName}, '%')</if>
            <if test="workingHourPlan != null "> and working_hour_plan = #{workingHourPlan}</if>
            <if test="workingHourType != null "> and working_hour_type = #{workingHourType}</if>
            <if test="firstWorkSignInTime != null "> and first_work_sign_in_time = #{firstWorkSignInTime}</if>
            <if test="firstSignInWorkingRange != null "> and first_sign_in_working_range = #{firstSignInWorkingRange}</if>
            <if test="firstQuittingSignInTime != null "> and first_quitting_sign_in_time = #{firstQuittingSignInTime}</if>
            <if test="firstSignInDayTomorrow != null "> and first_sign_in_day_tomorrow = #{firstSignInDayTomorrow}</if>
            <if test="firstSignInQuittingRange != null "> and first_sign_in_quitting_range = #{firstSignInQuittingRange}</if>
            <if test="signInTimeOutRange != null "> and sign_in_time_out_range = #{signInTimeOutRange}</if>
            <if test="secondFlag != null "> and second_flag = #{secondFlag}</if>
            <if test="secondWorkSignInTime != null "> and second_work_sign_in_time = #{secondWorkSignInTime}</if>
            <if test="secondSignInWorkingRange != null "> and second_sign_in_working_range = #{secondSignInWorkingRange}</if>
            <if test="secondQuittingSignInTime != null "> and second_quitting_sign_in_time = #{secondQuittingSignInTime}</if>
            <if test="secondSignInQuittingRange != null "> and second_sign_in_quitting_range = #{secondSignInQuittingRange}</if>
            <if test="secondSignDayTomorrow != null "> and second_sign_day_tomorrow = #{secondSignDayTomorrow}</if>
        </where>
    </select>

    <select id="selectRuleSchedulingById" parameterType="Long" resultMap="RuleSchedulingResult">
        <include refid="selectRuleSchedulingVo"/>
        where id = #{id}
    </select>
    <select id="selectRuleSchedulingListVoBySettingId" resultType="com.ruoyi.scheduling.domain.RuleScheduling">
        select rule_scheduling.*
        from rule_scheduling,rule_setting_scheduling
        where rule_scheduling.id = rule_setting_scheduling.rule_scheduling_id and
              rule_setting_scheduling.setting_id = #{settingId}
    </select>
    <select id="selectRuleSchedulingListVoBySettingIds"
            resultType="com.ruoyi.pojo.dto.RuleSchedulingDto" resultMap="RuleSchedulingDtoResult">
        select rule_scheduling.*,
        rule_setting_scheduling.setting_id,
        rule_setting_scheduling.sort
        from rule_scheduling,rule_setting_scheduling
        where rule_scheduling.id = rule_setting_scheduling.rule_scheduling_id
          and rule_setting_scheduling.setting_id in
        <foreach collection="list" item="item" index="index" separator="," open="(" close=")">
            #{item}
        </foreach>
    </select>
    <select id="getPeopleListByJobCodes" resultType="com.ruoyi.pojo.dto.AttendanceDto"  resultMap="AttendanceResult">
        SELECT
            driver.job_code,
            driver.personnel_name,
            driver.fleet_name,
            driver.posts,
            rule_setting_driver.setting_id,
            rule_setting_driver.start_date
        FROM
            driver,
            rule_setting_driver
        WHERE
            driver.job_code = rule_setting_driver.job_code
          AND rule_setting_driver.job_code  IN (
              <foreach collection="list" index="index" item="item" separator=",">
                  #{item}
              </foreach>
        )
    </select>

    <insert id="insertRuleScheduling" parameterType="RuleScheduling" useGeneratedKeys="true" keyProperty="id">
        insert into rule_scheduling
        <trim prefix="(" suffix=")" suffixOverrides=",">
            <if test="ruleName != null and ruleName != ''">rule_name,</if>
            <if test="workingHourPlan != null">working_hour_plan,</if>
            <if test="workingHourType != null">working_hour_type,</if>
            <if test="firstWorkSignInTime != null">first_work_sign_in_time,</if>
            <if test="firstSignInWorkingRange != null">first_sign_in_working_range,</if>
            <if test="firstQuittingSignInTime != null">first_quitting_sign_in_time,</if>
            <if test="firstSignInDayTomorrow != null">first_sign_in_day_tomorrow,</if>
            <if test="firstSignInQuittingRange != null">first_sign_in_quitting_range,</if>
            <if test="signInTimeOutRange != null">sign_in_time_out_range,</if>
            <if test="secondFlag != null">second_flag,</if>
            <if test="secondWorkSignInTime != null">second_work_sign_in_time,</if>
            <if test="secondSignInWorkingRange != null">second_sign_in_working_range,</if>
            <if test="secondQuittingSignInTime != null">second_quitting_sign_in_time,</if>
            <if test="secondSignInQuittingRange != null">second_sign_in_quitting_range,</if>
            <if test="secondSignDayTomorrow != null">second_sign_day_tomorrow,</if>
            <if test="updateTime != null">update_time,</if>
            <if test="createTime != null">create_time,</if>
            <if test="createBy != null">create_by,</if>
            <if test="updateBy != null">update_by,</if>
        </trim>
        <trim prefix="values (" suffix=")" suffixOverrides=",">
            <if test="ruleName != null and ruleName != ''">#{ruleName},</if>
            <if test="workingHourPlan != null">#{workingHourPlan},</if>
            <if test="workingHourType != null">#{workingHourType},</if>
            <if test="firstWorkSignInTime != null">#{firstWorkSignInTime},</if>
            <if test="firstSignInWorkingRange != null">#{firstSignInWorkingRange},</if>
            <if test="firstQuittingSignInTime != null">#{firstQuittingSignInTime},</if>
            <if test="firstSignInDayTomorrow != null">#{firstSignInDayTomorrow},</if>
            <if test="firstSignInQuittingRange != null">#{firstSignInQuittingRange},</if>
            <if test="signInTimeOutRange != null">#{signInTimeOutRange},</if>
            <if test="secondFlag != null">#{secondFlag},</if>
            <if test="secondWorkSignInTime != null">#{secondWorkSignInTime},</if>
            <if test="secondSignInWorkingRange != null">#{secondSignInWorkingRange},</if>
            <if test="secondQuittingSignInTime != null">#{secondQuittingSignInTime},</if>
            <if test="secondSignInQuittingRange != null">#{secondSignInQuittingRange},</if>
            <if test="secondSignDayTomorrow != null">#{secondSignDayTomorrow},</if>
            <if test="updateTime != null">#{updateTime},</if>
            <if test="createTime != null">#{createTime},</if>
            <if test="createBy != null">#{createBy},</if>
            <if test="updateBy != null">#{updateBy},</if>
        </trim>
    </insert>

    <update id="updateRuleScheduling" parameterType="RuleScheduling">
        update rule_scheduling
        <trim prefix="SET" suffixOverrides=",">
            <if test="ruleName != null and ruleName != ''">rule_name = #{ruleName},</if>
            <if test="workingHourPlan != null">working_hour_plan = #{workingHourPlan},</if>
            <if test="workingHourType != null">working_hour_type = #{workingHourType},</if>
            <if test="firstWorkSignInTime != null">first_work_sign_in_time = #{firstWorkSignInTime},</if>
            <if test="firstSignInWorkingRange != null">first_sign_in_working_range = #{firstSignInWorkingRange},</if>
            <if test="firstQuittingSignInTime != null">first_quitting_sign_in_time = #{firstQuittingSignInTime},</if>
            <if test="firstSignInDayTomorrow != null">first_sign_in_day_tomorrow = #{firstSignInDayTomorrow},</if>
            <if test="firstSignInQuittingRange != null">first_sign_in_quitting_range = #{firstSignInQuittingRange},</if>
            <if test="signInTimeOutRange != null">sign_in_time_out_range = #{signInTimeOutRange},</if>
            <if test="secondFlag != null">second_flag = #{secondFlag},</if>
            second_work_sign_in_time = #{secondWorkSignInTime},
           second_sign_in_working_range = #{secondSignInWorkingRange},
            second_quitting_sign_in_time = #{secondQuittingSignInTime},
            second_sign_in_quitting_range = #{secondSignInQuittingRange},
            second_sign_day_tomorrow = #{secondSignDayTomorrow},
            <if test="updateBy != null">update_by = #{updateBy},</if>
            <if test="updateTime != null">update_time = #{updateTime},</if>
        </trim>
        where id = #{id}
    </update>

    <delete id="deleteRuleSchedulingById" parameterType="Long">
        delete from rule_scheduling where id = #{id}
    </delete>

    <delete id="deleteRuleSchedulingByIds" parameterType="String">
        delete from rule_scheduling where id in
        <foreach item="id" collection="array" open="(" separator="," close=")">
            #{id}
        </foreach>
    </delete>
    <delete id="deletePeopleSchedule">
        DELETE
        FROM
            rule_attendance_main
        WHERE
        id IN (
        SELECT
        id
        FROM
            (
                SELECT id
                FROM rule_attendance_main
                WHERE job_code
                IN (
                    <foreach collection="list" item="item" index="index" separator=",">
                        #{item}
                    </foreach>
                ) AND scheduling_date &gt;= #{startDate} AND scheduling_date &lt;= #{endDate}
            ) t1
        )
    </delete>
</mapper>