EquipmentMapper.xml 12.1 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.equipment.mapper.EquipmentMapper">
    
    <resultMap type="com.ruoyi.equipment.domain.Equipment" id="EquipmentResult">
        <id column ="device_id" jdbcType="VARCHAR" property="deviceId" />
        <result column="id" jdbcType="INTEGER" property="id" />
        <result column="address" jdbcType="VARCHAR" property="address" />
        <result column="ip" jdbcType="VARCHAR" property="ip" />
        <result column="status" jdbcType="TINYINT" property="status" />
        <result column="promise" jdbcType="VARCHAR" property="promise" />
        <result column="image" jdbcType="VARCHAR" property="image" />
        <result column="create_time" jdbcType="TIMESTAMP" property="createTime" />
        <result column="update_time" jdbcType="TIMESTAMP" property="updateTime" />
        <result column="create_by" jdbcType="VARCHAR" property="createBy" />
        <result column="update_by" jdbcType="VARCHAR" property="updateBy" />
        <result column="remark" jdbcType="VARCHAR" property="remark" />
        <result column="last_heart_res" jdbcType="TIMESTAMP" property="lastHeartRes" />
        <result column="online_client" jdbcType="VARCHAR" property="onlineClient" />
        <result column="lattice_number" jdbcType="INTEGER" property="latticeNumber" />
        <result column="name" jdbcType="VARCHAR" property="name" />
        <result column="yard_Id" jdbcType="INTEGER" property="yardId" />
    </resultMap>

    <sql id="selectEquipmentVo">
        select id, name, address, ip, status, promise, image, device_id, create_time, update_time, create_by, update_by, remark,last_heart_res,online_client,lattice_number,yard_Id from equipment
    </sql>

    <select id="selectEquipmentList" parameterType="com.ruoyi.equipment.domain.Equipment" resultMap="EquipmentResult">
        <include refid="selectEquipmentVo"/>
        <where>
            <if test="address != null  and address != ''"> and address = #{address}</if>
            <if test="ip != null  and ip != ''"> and ip = #{ip}</if>
            <if test="status != null "> and status = #{status}</if>
            <if test="promise != null  and promise != ''"> and promise = #{promise}</if>
            <if test="image != null  and image != ''"> and image = #{image}</if>
            <if test="deviceId != null  and deviceId != ''"> and device_id = #{deviceId}</if>
            <if test="onlineClient != null  and onlineClient != ''"> and online_client = #{onlineClient}</if>
            <if test="null!=name">and name =#{name}</if>
            <if test="null!=yardId">and yard_Id =#{yardId}</if>
        </where>
        order by id desc
    </select>
    
    <select id="selectEquipmentById" parameterType="Long" resultMap="EquipmentResult">
        <include refid="selectEquipmentVo"/>
        where id = #{id}
    </select>
    <select id="selectEquipmentByDeviceId" resultType="com.ruoyi.equipment.domain.Equipment">
        <if test="deviceId !=null and deviceId != ''">
        <include refid="selectEquipmentVo"></include>
        where device_id = #{deviceId}
        </if>
    </select>
    <select id="count" resultType="java.lang.Integer">
        select count(*) from equipment
        where status = 1
    </select>
    <select id="querySignListByJobCode" resultType="com.ruoyi.domain.EquipmentDriverExpand">
        select driver_face_device_id.* from driver_face_device_id,equipment
        where driver_face_device_id.device_id = equipment.device_id
        <if test="drivers != null and drivers.size() > 0">
            and job_code in
            <foreach collection="drivers" item="item" open="(" separator="," close=")">
                #{item.jobCode}
            </foreach>
        </if>

    </select>
    <select id="queryEquipmentByDeviceId" resultType="com.ruoyi.equipment.domain.Equipment">
        select * from equipment
        where device_id = #{deviceId}
    </select>
    <select id="queryLog" resultType="com.ruoyi.equipment.domain.EquipmentLog">
        select * from equipment_log
        where device_id = #{deviceId}
        order by off_line_time desc
    </select>
    
    <select id="queryIdsiteNameBypromise"  resultType="com.ruoyi.equipment.domain.Equipment">
        SELECT id,name,promise FROM equipment WHERE FIND_IN_SET(#{promise},promise) >0
    </select>
    <insert id="insertEquipment" parameterType="Equipment" useGeneratedKeys="true" keyProperty="id">
        insert into equipment
        <trim prefix="(" suffix=")" suffixOverrides=",">
            <if test="address != null and address != ''">address,</if>
            <if test="ip != null and ip != ''">ip,</if>
            <if test="status != null">status,</if>
            <if test="promise != null and promise != ''">promise,</if>
            <if test="image != null">image,</if>
            <if test="deviceId != null">device_id,</if>
            <if test="createTime != null">create_time,</if>
            <if test="updateTime != null">update_time,</if>
            <if test="createBy != null">create_by,</if>
            <if test="updateBy != null">update_by,</if>
            <if test="remark != null">remark,</if>
            <if test="lastHeartRes != null">last_heart_res,</if>
            <if test="onlineClient != null">online_client,</if>
            <if test="null!=latticeNumber">lattice_number,</if>
            <if test="null!=name">name,</if>
            <if test="null!=yardId">yard_Id,</if>
         </trim>
        <trim prefix="values (" suffix=")" suffixOverrides=",">
            <if test="address != null and address != ''">#{address},</if>
            <if test="ip != null and ip != ''">#{ip},</if>
            <if test="status != null">#{status},</if>
            <if test="promise != null and promise != ''">#{promise},</if>
            <if test="image != null">#{image},</if>
            <if test="deviceId != null">#{deviceId},</if>
            <if test="createTime != null">#{createTime},</if>
            <if test="updateTime != null">#{updateTime},</if>
            <if test="createBy != null">#{createBy},</if>
            <if test="updateBy != null">#{updateBy},</if>
            <if test="remark != null">#{remark},</if>
            <if test="lastHeartRes != null">#{lastHeartRes},</if>
            <if test="onlineClient != null">#{online_client},</if>
            <if test="null!=latticeNumber">#{latticeNumber,jdbcType=INTEGER},</if>
            <if test="null!=name">#{name},</if>
            <if test="null!=yardId">#{yardId},</if>
         </trim>
    </insert>
    <insert id="insertEquipmentOffLineLog">
        insert into equipment_log (device_id,off_line_time,recovery_flag)
        values
            <foreach collection="list" item="item" separator=",">
                (
                #{item.deviceId},
                #{item.lastHeartRes},
                2
                )
            </foreach>
        on duplicate key update
        device_id = values(device_id)

    </insert>

    <update id="updateEquipment" parameterType="Equipment">
        update equipment
        <trim prefix="SET" suffixOverrides=",">
            <if test="address != null and address != ''">address = #{address},</if>
            <if test="ip != null and ip != ''">ip = #{ip},</if>
            <if test="status != null">status = #{status},</if>
            <if test="promise != null and promise != ''">promise = #{promise},</if>
            <if test="image != null">image = #{image},</if>
            <if test="createTime != null">create_time = #{createTime},</if>
            <if test="updateTime != null">update_time = #{updateTime},</if>
            <if test="createBy != null">create_by = #{createBy},</if>
            <if test="updateBy != null">update_by = #{updateBy},</if>
            <if test="remark != null">remark = #{remark},</if>
            <if test="lastHeartRes != null">last_heart_res = #{lastHeartRes},</if>
            <if test="onlineClient != null">online_client = #{onlineClient},</if>
            <if test="null!=latticeNumber"> lattice_number = #{latticeNumber},</if>
            <if test="null!=name"> name = #{name},</if>
            <if test="null!=yardId"> yard_Id = #{yardId},</if>
        </trim>
        where 1 = 1
        <if test="id !=null">
            and id = #{id}
        </if>
        <if test="deviceId !=null and id == null">
            and device_id = #{deviceId}
        </if>
    </update>
    <update id="updateEquipments">
        <foreach collection="list" item="item">
            update equipment set last_heart_res = #{item.lastHeartRes}, online_client = #{item.onlineClient}
            where device_id = #{item.deviceId};
        </foreach>
    </update>
    <update id="updateEquipmentByDeviceId">
        update equipment
        <trim prefix="SET" suffixOverrides=",">
            <if test="address != null and address != ''">address = #{address},</if>
            <if test="ip != null and ip != ''">ip = #{ip},</if>
            <if test="status != null">status = #{status},</if>
            <if test="promise != null and promise != ''">promise = #{promise},</if>
            <if test="image != null">image = #{image},</if>
            <if test="createTime != null">create_time = #{createTime},</if>
            <if test="updateTime != null">update_time = #{updateTime},</if>
            <if test="createBy != null">create_by = #{createBy},</if>
            <if test="updateBy != null">update_by = #{updateBy},</if>
            <if test="remark != null">remark = #{remark},</if>
            <if test="lastHeartRes != null">last_heart_res = #{lastHeartRes},</if>
            <if test="onlineClient != null">online_client = #{onlineClient},</if>
            <if test="null!=latticeNumber"> lattice_number = #{latticeNumber},</if>
            <if test="null!=name"> name = #{name},</if>
            <if test="null!=yardId"> yard_Id = #{yardId},</if>
        </trim>
        where device_id = #{deviceId}
    </update>
    <update id="updateEquipmentLog">
        <foreach collection="recoveryList" item="item" separator=";" index="index">
            update equipment_log set recovery_time = #{item.recoveryTime},recovery_flag = #{item.recoveryFlag}
            where device_id = #{item.deviceId} and  recovery_flag = 2
        </foreach>
    </update>

    <delete id="deleteEquipmentById" parameterType="Long">
        delete from equipment where id = #{id}
    </delete>

    <delete id="deleteEquipmentByIds" parameterType="String">
        delete from equipment where id in 
        <foreach item="id" collection="array" open="(" separator="," close=")">
            #{id}
        </foreach>
    </delete>
    <delete id="deleteExRecord">
        DELETE
        FROM
            equipment_exception
        WHERE
                id IN (
                SELECT
                    ee.id
                FROM
                    (
                        SELECT
                            id
                        FROM
                            equipment_exception
                        WHERE
                            create_time LIKE CONCAT( DATE_FORMAT( NOW(), "%Y-%m-%d" ), "%" )
                          AND job_code IN (
                            SELECT
                                s1.job_code
                            FROM
                                scheduling s1
                                    INNER JOIN (
                                    SELECT
                                        job_code,
                                        schedule_date,
                                        MIN( fcsj_t ) AS min_fcsj_t
                                    FROM
                                        scheduling
                                    WHERE
                                        bc_type = 'out'
                                      AND schedule_date = DATE_FORMAT( NOW(), '%Y-%m-%d' )
                                    GROUP BY
                                        job_code,
                                        schedule_date
                                ) s2 ON s1.job_code = s2.job_code
                                    AND s1.schedule_date = s2.schedule_date
                                    AND s1.fcsj_t = s2.min_fcsj_t
                        )
                    ) as ee
            )
    </delete>
</mapper>