DriverMapper.xml 16.8 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.driver.mapper.DriverMapper">

    <resultMap type="Driver" id="DriverResult">
        <result property="id" column="id"/>
        <result property="jobCode" column="job_code"/>
        <result property="companyCode" column="company_code"/>
        <result property="brancheCompanyCode" column="branche_company_code"/>
        <result property="personnelName" column="personnel_name"/>
        <result property="papersCode" column="papers_code"/>
        <result property="icCardCode" column="ic_card_code"/>
        <result property="personnelType" column="personnel_type"/>
        <result property="posts" column="posts"/>
        <result property="card" column="card"/>
        <result property="telphone" column="telphone"/>
        <result property="icRfid" column="ic_rfid"/>
        <result property="idRfid" column="id_rfid"/>
        <result property="tagRfid" column="tag_rfid"/>
        <result property="remark" column="remark"/>
        <result property="lineName" column="line_name"/>
        <result property="lineCode" column="line_code"/>
        <result property="updateTime" column="update_time"/>
    </resultMap>

    <sql id="selectDriverVo">
        select id,
               job_code,
               company_code,
               branche_company_code,
               personnel_name,
               papers_code,
               ic_card_code,
               personnel_type,
               posts,
               card,
               telphone,
               ic_rfid,
               id_rfid,
               tag_rfid,
               remark,
               line_name,
               line_code,
               face_sign_in,
               image,
               update_time,
               sign_in_equipment
        from driver
    </sql>
    <sql id="insertDriverVo">
        job_code
        , company_code, branche_company_code, personnel_name, papers_code, ic_card_code, personnel_type, posts, card, telphone, ic_rfid, id_rfid, tag_rfid, remark, line_name, line_code,face_sign_in,image,update_time,sign_in_equipment
    </sql>

    <select id="selectDriverList" parameterType="Driver" resultMap="DriverResult">
        <include refid="selectDriverVo"/>
        <where>
            <if test="jobCode != null  and jobCode != ''">and job_code = #{jobCode}</if>
            <if test="companyCode != null  and companyCode != ''">and company_code = #{companyCode}</if>
            <if test="brancheCompanyCode != null  and brancheCompanyCode != ''">and branche_company_code =
                #{brancheCompanyCode}
            </if>
            <if test="personnelName != null  and personnelName != ''">and personnel_name like concat('%',
                #{personnelName}, '%')
            </if>
            <if test="papersCode != null  and papersCode != ''">and papers_code = #{papersCode}</if>
            <if test="icCardCode != null  and icCardCode != ''">and ic_card_code = #{icCardCode}</if>
            <if test="personnelType != null  and personnelType != ''">and personnel_type = #{personnelType}</if>
            <if test="posts != null  and posts != ''">and posts = #{posts}</if>
            <if test="card != null  and card != ''">and card = #{card}</if>
            <if test="telphone != null  and telphone != ''">and telphone = #{telphone}</if>
            <if test="icRfid != null  and icRfid != ''">and ic_rfid = #{icRfid}</if>
            <if test="idRfid != null  and idRfid != ''">and id_rfid = #{idRfid}</if>
            <if test="tagRfid != null  and tagRfid != ''">and tag_rfid = #{tagRfid}</if>
            <if test="lineName != null  and lineName != ''">and line_name like concat('%', #{lineName}, '%')</if>
            <if test="lineCode != null  and lineCode != ''">and line_code = #{lineCode}</if>
            <if test="faceSignIn != null  and faceSignIn != ''">and face_sign_in = #{faceSignIn}</if>
        </where>
    </select>

    <select id="selectDriverById" parameterType="Long" resultMap="DriverResult">
        <include refid="selectDriverVo"/>
        where id = #{id}
    </select>
    <select id="getDriverSchedulingList" resultType="com.ruoyi.pojo.response.ResponseScheduling">
        select id, scheduleDate, lineName, lineCode, lpName,
               nbbm, job_code as jobCode,jsy, spy, upDown, qdzCode,
               qdzName, zdzCode, zdzName, fcsjT, dfsjT,
               zdsjT, fcsjActualTime, zdsjActualTime,
               jhlc, jhlcOrig, bcsj, bcType, status, adjustExps,
               sflj, remarks
        from driver_scheduling
        where scheduleDate = #{date} and job_code = #{jobCode}
    </select>
    <select id="getNameByJobCode" resultMap="DriverResult">
        select personnel_name,job_code
            from driver

        <if test="jobCodes != null and jobCodes.size() > 0">
        <where>
            job_code IN
            <foreach collection="jobCodes" item="item" open="(" separator="," close=")" >
                #{item}
            </foreach>
        </where>
        </if>
    </select>
    <select id="jobCodeIsEmpty" resultType="java.lang.Integer">
        select count(*)
       from driver
        where job_code = #{jobCode}
    </select>
    <select id="getDriverImageByJobCode" resultType="String">
        select image from driver
        where job_code = #{jobCode}
    </select>
    <select id="getDrivers" resultType="com.ruoyi.driver.domain.Driver">
        <include refid="selectDriverVo"/>
        <where>
            <if test="jobCode != null  and jobCode != ''">and job_code = #{jobCode}</if>
            <if test="companyCode != null  and companyCode != ''">and company_code = #{companyCode}</if>
            <if test="brancheCompanyCode != null  and brancheCompanyCode != ''">and branche_company_code =
                #{brancheCompanyCode}
            </if>
            <if test="personnelName != null  and personnelName != ''">and personnel_name like concat('%',
                #{personnelName}, '%')
            </if>
            <if test="papersCode != null  and papersCode != ''">and papers_code = #{papersCode}</if>
            <if test="icCardCode != null  and icCardCode != ''">and ic_card_code = #{icCardCode}</if>
            <if test="personnelType != null  and personnelType != ''">and personnel_type = #{personnelType}</if>
            <if test="posts != null  and posts != ''">and posts = #{posts}</if>
            <if test="card != null  and card != ''">and card = #{card}</if>
            <if test="telphone != null  and telphone != ''">and telphone = #{telphone}</if>
            <if test="icRfid != null  and icRfid != ''">and ic_rfid = #{icRfid}</if>
            <if test="idRfid != null  and idRfid != ''">and id_rfid = #{idRfid}</if>
            <if test="tagRfid != null  and tagRfid != ''">and tag_rfid = #{tagRfid}</if>
            <if test="lineName != null  and lineName != ''">and line_name like concat('%', #{lineName}, '%')</if>
            <if test="lineCode != null  and lineCode != ''">and line_code = #{lineCode}</if>
            <if test="faceSignIn != null  and faceSignIn != ''">and face_sign_in = #{faceSignIn}</if>
        </where>
    </select>
    <select id="getDriverInfoByJobCode" resultType="com.ruoyi.driver.domain.Driver">
        <include refid="selectDriverVo"></include>
        where job_code = #{jobCode}
    </select>

    <insert id="insertDriver" parameterType="Driver" useGeneratedKeys="true" keyProperty="id">
        insert into driver
        <trim prefix="(" suffix=")" suffixOverrides=",">
            <if test="jobCode != null and jobCode != ''">job_code,</if>
            <if test="companyCode != null and companyCode != ''">company_code,</if>
            <if test="brancheCompanyCode != null">branche_company_code,</if>
            <if test="personnelName != null">personnel_name,</if>
            <if test="papersCode != null">papers_code,</if>
            <if test="icCardCode != null">ic_card_code,</if>
            <if test="personnelType != null">personnel_type,</if>
            <if test="posts != null">posts,</if>
            <if test="card != null">card,</if>
            <if test="telphone != null">telphone,</if>
            <if test="icRfid != null">ic_rfid,</if>
            <if test="idRfid != null">id_rfid,</if>
            <if test="tagRfid != null">tag_rfid,</if>
            <if test="remark != null">remark,</if>
            <if test="lineName != null">line_name,</if>
            <if test="lineCode != null">line_code,</if>
            <if test="faceSignIn != null">face_sign_in,</if>
            <if test="image != null">image,</if>
            <if test="updateTime != null">update_time</if>
        </trim>
        <trim prefix="values (" suffix=")" suffixOverrides=",">
            <if test="jobCode != null and jobCode != ''">#{jobCode},</if>
            <if test="companyCode != null and companyCode != ''">#{companyCode},</if>
            <if test="brancheCompanyCode != null">#{brancheCompanyCode},</if>
            <if test="personnelName != null">#{personnelName},</if>
            <if test="papersCode != null">#{papersCode},</if>
            <if test="icCardCode != null">#{icCardCode},</if>
            <if test="personnelType != null">#{personnelType},</if>
            <if test="posts != null">#{posts},</if>
            <if test="card != null">#{card},</if>
            <if test="telphone != null">#{telphone},</if>
            <if test="icRfid != null">#{icRfid},</if>
            <if test="idRfid != null">#{idRfid},</if>
            <if test="tagRfid != null">#{tagRfid},</if>
            <if test="remark != null">#{remark},</if>
            <if test="lineName != null">#{lineName},</if>
            <if test="lineCode != null">#{lineCode},</if>
            <if test="faceSignIn != null">#{faceSignIn},</if>
            <if test="image != null">#{image},</if>
            <if test="updateTime != null">#{updateTime}</if>
        </trim>
        on duplicate key update
        job_code = values(job_code)
    </insert>

    <update id="updateDriver" parameterType="Driver">
        update driver
        <trim prefix="SET" suffixOverrides=",">
            <if test="jobCode != null and jobCode != ''">job_code = #{jobCode},</if>
            <if test="companyCode != null and companyCode != ''">company_code = #{companyCode},</if>
            <if test="brancheCompanyCode != null">branche_company_code = #{brancheCompanyCode},</if>
            <if test="personnelName != null">personnel_name = #{personnelName},</if>
            <if test="papersCode != null">papers_code = #{papersCode},</if>
            <if test="icCardCode != null">ic_card_code = #{icCardCode},</if>
            <if test="personnelType != null">personnel_type = #{personnelType},</if>
            <if test="posts != null">posts = #{posts},</if>
            <if test="card != null">card = #{card},</if>
            <if test="telphone != null">telphone = #{telphone},</if>
            <if test="icRfid != null">ic_rfid = #{icRfid},</if>
            <if test="idRfid != null">id_rfid = #{idRfid},</if>
            <if test="tagRfid != null">tag_rfid = #{tagRfid},</if>
            <if test="remark != null">remark = #{remark},</if>
            <if test="lineName != null">line_name = #{lineName},</if>
            <if test="lineCode != null">line_code = #{lineCode},</if>
            <if test="faceSignIn != null">face_sign_in = #{faceSignIn},</if>
            <if test="image != null">image = #{image}</if>
            <if test="signInEquipment != null">sign_in_equipment = #{signInEquipment}</if>
        </trim>
        where id = #{id}
    </update>
    <update id="updateDriverByComputed">
        update driver set face_sign_in = 0
        WHERE face_sign_in != 1 and job_code in (
            SELECT job_code
            FROM driver_face_device_id,equipment
            WHERE equipment.`status` = 1 and driver_face_device_id.device_id = equipment.device_id
            GROUP BY job_code
            HAVING COUNT(*) = #{count}
        );
        update driver set face_sign_in = 0
        WHERE face_sign_in = 1 and job_code in (
            SELECT job_code
            FROM driver_face_device_id,equipment
            WHERE equipment.`status` = 1 and driver_face_device_id.device_id = equipment.device_id
            GROUP BY job_code
            HAVING COUNT(*) = #{count}
        );
        update driver set face_sign_in = 2
        WHERE face_sign_in != 1 and job_code not in (
            SELECT job_code
            FROM driver_face_device_id,equipment
            WHERE equipment.`status` = 1 and driver_face_device_id.device_id = equipment.device_id
            GROUP BY job_code
            HAVING COUNT(*) = #{count}
        );
    </update>
    <update id="updateDriversByJobCodes">
        <foreach collection="list" item="item" separator=";">
            update driver set face_sign_in = 1,
                              personnel_name = #{item.personnelName,jdbcType=VARCHAR},posts = #{item.posts,jdbcType=VARCHAR},image = #{item.image,jdbcType=VARCHAR},update_time = #{item.updateTime}
            where job_code = #{item.jobCode,jdbcType=VARCHAR}
        </foreach>
    </update>
    <insert id="saveDriverScheduling">
        INSERT INTO driver_scheduling (
        id, scheduleDate, lineName, lineCode, lpName,
        nbbm, job_code,jsy, spy, upDown, qdzCode,
        qdzName, zdzCode, zdzName, fcsjT, dfsjT,
        zdsjT, fcsjActualTime, zdsjActualTime,
        jhlc, jhlcOrig, bcsj, bcType, status, adjustExps,
        sflj, remarks)
        values
        <foreach collection="responseSchedulings" item="item" index="index" separator=",">
            (
            #{item.id},
            #{item.scheduleDate},
            #{item.lineName,jdbcType=VARCHAR},
            #{item.lineCode,jdbcType=VARCHAR},
            #{item.lpName,jdbcType=VARCHAR},
            #{item.nbbm,jdbcType=VARCHAR},
            #{item.jobCode,jdbcType=VARCHAR},
            #{item.jsy,jdbcType=VARCHAR},
            #{item.spy,jdbcType=VARCHAR},
            #{item.upDown,jdbcType=VARCHAR},
            #{item.qdzCode,jdbcType=VARCHAR},
            #{item.qdzName,jdbcType=VARCHAR},
            #{item.zdzCode,jdbcType=VARCHAR},
            #{item.zdzName,jdbcType=VARCHAR},
            #{item.fcsjT},
            #{item.dfsjT},
            #{item.zdsjT},
            #{item.fcsjActualTime},
            #{item.zdsjActualTime},
            #{item.jhlc,jdbcType=VARCHAR},
            #{item.jhlcOrig,jdbcType=VARCHAR},
            #{item.bcsj,jdbcType=VARCHAR},
            #{item.bcType,jdbcType=VARCHAR},
            #{item.status,jdbcType=VARCHAR},
            #{item.adjustExps,jdbcType=VARCHAR},
            #{item.sflj,jdbcType=VARCHAR},
            #{item.remarks,jdbcType=VARCHAR}
            )
        </foreach>
        on duplicate key update
        job_code = values(job_code)
    </insert>

    <delete id="deleteDriverById" parameterType="Long">
        delete
        from driver
        where id = #{id}
    </delete>

    <delete id="deleteDriverByIds" parameterType="String">
        delete from driver where id in
        <foreach item="id" collection="array" open="(" separator="," close=")">
            #{id}
        </foreach>
    </delete>
    <delete id="deleteDeviceIdAssociatedJobCode">
        delete from driver where
   job_code in
   ( <foreach collection="jobCodes" item="item" separator=",">
        #{item}
    </foreach> )
    </delete>


    <insert id="saveDrivers">

        INSERT INTO driver (
        <include refid="insertDriverVo"></include>
        )
        VALUES
        <foreach collection="drivers" item="item" index="index" separator=",">
            (
            #{item.jobCode,jdbcType=VARCHAR},
            #{item.companyCode,jdbcType=VARCHAR},
            #{item.brancheCompanyCode,jdbcType=VARCHAR},
            #{item.personnelName,jdbcType=VARCHAR},
            #{item.papersCode,jdbcType=VARCHAR},
            #{item.icCardCode,jdbcType=VARCHAR},
            #{item.personnelType,jdbcType=VARCHAR},
            #{item.posts,jdbcType=VARCHAR},
            #{item.card,jdbcType=VARCHAR},
            #{item.telphone,jdbcType=VARCHAR},
            #{item.icRfid,jdbcType=VARCHAR},
            #{item.idRfid,jdbcType=VARCHAR},
            #{item.tagRfid,jdbcType=VARCHAR},
            #{item.remark,jdbcType=VARCHAR},
            #{item.lineName,jdbcType=VARCHAR},
            #{item.lineCode,jdbcType=VARCHAR},
            #{item.faceSignIn},
            #{item.image},
            #{item.updateTime},
            #{item.signInEquipment}
            )
        </foreach>
        on duplicate key update
        job_code = values(job_code)
    </insert>
    <insert id="insertDriverFace">
        INSERT INTO driver_face_device_id ( job_code,device_id )
        values
        <foreach collection="jobCodes" item="item" index="index" separator=",">
            (
            #{item},#{deviceId}
            )
        </foreach>
        on duplicate key update
        job_code = values(job_code),
        device_id = values(device_id)
    </insert>

</mapper>