<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.3//EN"
        "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
        <mapper namespace="com.zw.platform.repository.modules.InfoFastInputDao">
    <!-- 查询两表不匹配名字  -->
    <select id="getVehicleInfoList" resultType="com.zw.platform.domain.basicinfo.VehicleInfo">
         SELECT DISTINCT t.* FROM (
			 SELECT v2.id,v2.brand,v2.create_data_time,'0' monitorType 
				FROM zw_m_vehicle_info v2 
				INNER JOIN zw_m_assignment_vehicle av ON v2.id = av.vehicle_id AND av.flag = 1 AND av.monitor_type = '0'
				INNER JOIN zw_m_assignment a ON a.id = av.assignment_id AND a.flag = 1
				INNER JOIN zw_m_assignment_user au ON av.assignment_id =  au.assignment_id AND au.flag = 1
				INNER JOIN zw_m_assignment_group ag ON ag.assignment_id = au.assignment_id AND ag.flag = 1
				WHERE v2.flag =1
				AND  au.user_id = #{userId} 
				AND  ag.group_id IN
					<foreach item="item" collection="groupList" separator="," open="(" close=")">
						#{item}
					</foreach>
				 AND  NOT EXISTS (
					SELECT B.id FROM zw_m_config B WHERE v2.id = B.vehicle_id AND B.flag=1 AND B.monitor_type = '0'
					)
				 AND  brand NOT LIKE '扫%'
			UNION
			 SELECT v1.id,v1.brand,v1.create_data_time,'0' monitorType 
				FROM zw_m_vehicle_info v1
				WHERE v1.flag = 1 
				AND NOT EXISTS (SELECT id FROM zw_m_assignment_vehicle av1 WHERE v1.id = av1.vehicle_id AND av1.flag = 1)
				AND v1.group_id IN
					<foreach item="item" collection="groupList" separator="," open="(" close=")">
						#{item}
					</foreach>
				AND NOT EXISTS(
					SELECT B.id FROM zw_m_config B WHERE v1.id = B.vehicle_id AND B.flag=1 AND B.monitor_type = '0'
				)
				AND v1.brand NOT  LIKE '扫%'
			) t ORDER BY t.create_data_time DESC
    </select>
    <!-- 查询人员信息 -->
    <select id="getPeopleInfoList" resultType="com.zw.platform.domain.basicinfo.VehicleInfo">
       SELECT DISTINCT peo.id id,peo.people_number brand,'1' monitorType,peo.create_data_time createDataTime 
       FROM zw_m_people_info peo
       WHERE peo.flag=1 and  peo.id in (
        	SELECT p.id
			FROM zw_m_people_info p
			INNER JOIN zw_m_assignment_vehicle av ON p.id = av.vehicle_id AND av.flag = 1 AND av.monitor_type = '1'
			INNER JOIN zw_m_assignment a ON a.id = av.assignment_id AND a.flag = 1
			INNER JOIN zw_m_assignment_user au ON av.assignment_id =  au.assignment_id AND au.flag = 1
			INNER JOIN zw_m_assignment_group ag ON ag.assignment_id = au.assignment_id AND ag.flag = 1
			WHERE p.flag =1
			AND  au.user_id =  #{userId} 
	        AND  ag.group_id IN
	        <foreach collection="groupList" item = "item" separator="," open="(" close=")">
	        	#{item}
	        </foreach>
			UNION
			SELECT p1.id
			FROM zw_m_people_info p1
			WHERE  p1.flag = 1
			AND NOT EXISTS (SELECT id FROM zw_m_assignment_vehicle av1 WHERE p1.id = av1.vehicle_id AND av1.flag = 1)
			AND p1.org_id IN
			<foreach collection="groupList" item = "item" separator="," open="(" close=")">
				#{item}
			</foreach>
        )
        and peo.id NOT IN (
        SELECT
        peo.id
        FROM
        zw_m_config B WHERE peo.id = B.vehicle_id
        and B.flag=1 and B.monitor_type = '1'
        )
        ORDER BY peo.create_data_time DESC
    </select>
    <!-- 查询物品 -->
    <select id="getThingInfoList" resultType="com.zw.platform.domain.basicinfo.ThingInfo">
         SELECT DISTINCT
	    A.name
        FROM
	    zw_m_thing_info A
        left JOIN zw_m_config B ON A.id != B.thing_id
        WHERE
	    A.flag = 1
        ORDER BY
	    NAME ASC
    </select>
    <!-- 查询终端 -->
    <select id="getdeviceInfoList" resultType="com.zw.platform.domain.basicinfo.DeviceInfo">
        SELECT di.id,di.device_number,di.device_name,di.device_type,di.manu_facturer
      	FROM zw_m_device_info di
      	WHERE
      	di.org_id IN
		<foreach item="item" collection="groupList" separator=","
			open="(" close=")">
			#{item}
		</foreach>
		AND NOT EXISTS (
		SELECT B.device_id FROM zw_m_config B WHERE di.id = B.device_id AND B.flag = 1
      	)
    	and di.flag=1
    	AND di.device_type <![CDATA[<>]]> '5'
    	AND di.functional_type <![CDATA[<>]]> '4'
    </select>
    <!-- 查询终端（人员） -->
    <select id="getDeviceInfoListForPeople" resultType="com.zw.platform.domain.basicinfo.DeviceInfo">
        SELECT di.id,di.device_number
      	FROM zw_m_device_info di
      	WHERE
		di.org_id IN
		<foreach item="item" collection="groupList" separator=","
			open="(" close=")">
			#{item}
		</foreach>
      	and di.id NOT IN (
			SELECT A.id
			FROM zw_m_device_info A
			INNER JOIN zw_m_config B ON A.id = B.device_id
   			WHERE B.flag=1
		)
    	and di.flag=1
    	AND di.device_type = '5'
    	AND di.functional_type = '4'
    </select>
    <!-- simcard_number -->
    <!-- 查询SIM卡号 -->
    <select id="getSimcardInfoList" resultType="com.zw.platform.domain.basicinfo.SimcardInfo">
        SELECT sci.id,sci.simcard_number
        FROM zw_m_sim_card_info sci
        WHERE NOT EXISTS (
			SELECT B.sim_card_id
		 	FROM zw_m_config B WHERE sci.id = B.sim_card_id
		 	AND B.flag=1
		)
		AND sci.org_id IN
		<foreach item="item" collection="groupList" separator=","
			open="(" close=")">
			#{item}
		</foreach>
		AND sci.flag=1
    </select>
    <!-- 查询树形结构 -->
    <!-- <select id="getGroupList" parameterTycom.zw.platform.domain.core.queryuery.GroupQuery" resultType="com.zw.core.domain.ldap.Group">
        SELECT a.name,a.cid,a.pid,a.id FROM zw_c_group a
        WHERE a.flag = 1
        ORDER BY a.name ASC 
    </select>  -->
    <!-- 增加config -->
    <insert id="addConfigList" parameterType="com.zw.platform.domain.infoconfig.form.Config1Form">
         INSERT INTO zw_m_config (
        	id, vehicle_id, device_id, sim_card_id,service_lifecycle_id, create_data_time, create_data_username,monitor_type
       	)
        VALUES(
         #{id}, #{brandID}, #{deviceID}, #{simID},#{serviceLifecycleId},#{createDataTime},#{createDataUsername},#{monitorType}
        )
    </insert>

	<!-- 查询扫码车牌号(模糊查询) -->
	<select id="findScanVehicleByBrand" parameterType="String"
			resultType="String">
		SELECT brand FROM zw_m_vehicle_info WHERE brand LIKE
		CONCAT('扫_',#{afterFiveSims}) AND flag=1
	</select>

	<!-- 查询扫码车牌号(模糊查询) -->
	<select id="findScanPeopleByBrand" parameterType="String"
			resultType="String">
		SELECT people_number FROM zw_m_people_info WHERE people_number LIKE
		CONCAT('扫_',#{afterFiveSims}) AND flag=1
	</select>

	<!-- 查询扫码车牌号(模糊查询) -->
	<select id="findScanThingByBrand" parameterType="String"
			resultType="String">
		SELECT thing_number FROM zw_m_thing_info WHERE thing_number LIKE
		CONCAT('扫_',#{afterFiveSims}) AND flag=1
	</select>
</mapper>
        