DriverMapper.xml 15.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"/>
        <result property="fleetName" column="fleet_name"/>
    </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,
               fleet_name
        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,fleet_name
    </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>
            <if test="fleetName != null  and fleet_name != ''">and fleet_name = #{fleetName}</if>
        </where>
    </select>

    <select id="selectDriverById" parameterType="Long" resultMap="DriverResult">
        <include refid="selectDriverVo"/>
        where id = #{id}
    </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>
    <select id="queryJobCodesIsExists" resultType="java.lang.String">
        select job_code
        from driver
        where job_code in
            <foreach collection="jobCodes" item="item" open="(" separator="," close=")">
                #{item}
            </foreach>
    </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>
            <if test="fleetName != null">fleet_name</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>
            <if test="fleetName != null">#{fleetName}</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>
            <if test="fleetName != null">fleet_name = #{fleetName}</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="updateSignStatusDriversByJobCodes">
        <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},fleet_name = #{item.fleetName},line_name = #{item.lineName}
            where job_code = #{item.jobCode,jdbcType=VARCHAR}
        </foreach>
    </update>
    <update id="updateDriverInfoByJobCodes">
        <foreach collection="drivers" item="item" separator=";">
            update driver set
            line_name=#{item.lineName,jdbcType=VARCHAR},fleet_name=#{item.fleetName,jdbcType=VARCHAR},personnel_name = #{item.personnelName,jdbcType=VARCHAR},posts = #{item.posts,jdbcType=VARCHAR}
            where job_code = #{item.jobCode,jdbcType=VARCHAR}
        </foreach>
    </update>

    <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_face_device_id 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},
             #{item.fleetName}
            )
        </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>