<?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.vas.RealTimeCommandDao">
<!-- 新增通讯参数 -->
	<insert id="addCommunicationParam" parameterType="com.zw.platform.domain.param.CommunicationParam">
		INSERT INTO zw_m_communication_param (
		id, main_server_apn, main_server_call_user_name, main_server_call_user_pwd, main_server_address, backup_server_apn,backup_server_call_user_name,
		backup_server_call_user_pwd, backup_server_address, server_tcp_port,server_udp_port, flag, create_data_time,
		create_data_username
		)
		VALUES(
		#{id}, #{mainServerAPN}, #{mainServerCallUserName}, #{mainServerCallUserPwd}, #{mainServerAddress},#{backupServerAPN},
		#{backupServerCallUserName},
		#{backupServerCallUserPwd}, #{backupServerAddress}, #{serverTCPPort},#{serverUDPPort},#{flag}, #{createDataTime},
		#{createDataUsername}
		)
	</insert>
	<!-- 新增视频拍照参数 -->
	<insert id="addCameraParam" parameterType="com.zw.platform.domain.param.CameraParam">
		INSERT INTO zw_m_camera_param (
		id, camera_timer_open_flag1, camera_timer_open_flag2, camera_timer_open_flag3, camera_timer_open_flag4, camera_timer_open_flag5,camera_timer_save_flag1,
		camera_timer_save_flag2, camera_timer_save_flag3,camera_timer_save_flag4,camera_timer_save_flag5, timing_unit,timing_space,camera_distance_open_flag1,
		camera_distance_open_flag2,camera_distance_open_flag3,camera_distance_open_flag4,camera_distance_open_flag5,camera_distance_save_flag1,camera_distance_save_flag2,
		camera_distance_save_flag3,camera_distance_save_flag4,camera_distance_save_flag5,distance_unit,distance_space,picture_quality,luminance,contrast,
		saturation,chroma,flag,create_data_time,
		create_data_username
		)
		VALUES(
		#{id}, #{cameraTimerOpenFlag1}, #{cameraTimerOpenFlag2}, #{cameraTimerOpenFlag3}, #{cameraTimerOpenFlag4},#{cameraTimerOpenFlag5},
		#{cameraTimerSaveFlag1},
		#{cameraTimerSaveFlag2}, #{cameraTimerSaveFlag3}, #{cameraTimerSaveFlag4},#{cameraTimerSaveFlag5},
		#{timingUnit}, #{timingSpace}, #{cameraDistanceOpenFlag1},#{cameraDistanceOpenFlag2},
		#{cameraDistanceOpenFlag3}, #{cameraDistanceOpenFlag4}, #{cameraDistanceOpenFlag5},#{cameraDistanceSaveFlag1},
		#{cameraDistanceSaveFlag2}, #{cameraDistanceSaveFlag3}, #{cameraDistanceSaveFlag4},#{cameraDistanceSaveFlag5},
		#{distanceUnit}, #{distanceSpace}, #{pictureQuality},#{luminance},#{contrast}, #{saturation},#{chroma},
		#{flag}, #{createDataTime},
		#{createDataUsername}
		)
	</insert>
	<!-- 新增终端参数 -->
	<insert id="addDeviceParam" parameterType="com.zw.platform.domain.param.DeviceParam">
		INSERT INTO zw_m_device_param (
		id, heart_space, tcp_ack_time_out, tcp_re_up_times, udp_ack_time_out, udp_re_up_times,sms_ack_time_out,
		sms_re_up_times, flag, create_data_time,
		create_data_username
		)
		VALUES(
		#{id}, #{heartSpace}, #{tcpAckTimeOut}, #{tcpReUpTimes}, #{udpAckTimeOut},#{udpReUpTimes},
		#{smsAckTimeOut},
		#{smsReUpTimes},#{flag}, #{createDataTime},
		#{createDataUsername}
		)
	</insert>
	<!-- 新增GNSS参数 -->
	<insert id="addGNSSParam" parameterType="com.zw.platform.domain.param.GNSSParam">
		INSERT INTO zw_m_gnss_param (
		id, beidou_flag, GPS_flag, GLONASS_flag, Galileo_flag, GNSS_baud_rate,GNSS_position_output_rate,
		GNSS_position_collect_rate, GNSS_position_upload_type, flag, create_data_time,
		create_data_username
		)
		VALUES(
		#{id}, #{beidouFlag}, #{GPSFlag}, #{GLONASSFlag}, #{GalileoFlag},#{GNSSBaudRate},
		#{GNSSPositionOutputRate},
		#{GNSSPositionCollectRate}, #{GNSSPositionUploadType}, #{flag}, #{createDataTime},
		#{createDataUsername}
		)
	</insert>
	<!-- 新增电话参数 -->
	<insert id="addPhoneParam" parameterType="com.zw.platform.domain.param.PhoneParam">
		INSERT INTO zw_m_phone_param (
		id, platform_phone_number, reset_phone_number, re_initial_phone_number, platform_sms_phone_number, receive_device_sms_txt_alarm_phone_number,device_answer_phone_type,
		times_max_call_time, monthly_max_call_time, listen_phone_number,platform_privilege_sms_number, flag, create_data_time,
		create_data_username
		)
		VALUES(
		#{id}, #{platformPhoneNumber}, #{resetPhoneNumber}, #{reInitialPhoneNumber}, #{platformSMSPhoneNumber},#{receiveDeviceSMSTxtAlarmPhoneNumber},
		#{deviceAnswerPhoneType},
		#{timesMaxCallTime}, #{monthlyMaxCallTime}, #{listenPhoneNumber},#{platformPrivilegeSMSNumber},#{flag}, #{createDataTime},
		#{createDataUsername}
		)
	</insert>
	<!-- 新增位置汇报参数 -->
	<insert id="addPositionParam" parameterType="com.zw.platform.domain.param.PositionParam">
		INSERT INTO zw_m_position_param (
		id, position_up_tactics, position_up_scheme, driver_logging_out_up_time_space, dormancy_up_time_space, emergency_alarm_up_time_space,default_time_up_space,
		default_distance_up_space, driver_logging_out_up_distance_space, dormancy_up_distance_space,emergency_alarm_up_distance_space, flag, create_data_time,
		create_data_username
		)
		VALUES(
		#{id}, #{positionUpTactics}, #{positionUpScheme}, #{driverLoggingOutUpTimeSpace}, #{dormancyUpTimeSpace},#{emergencyAlarmUpTimeSpace},
		#{defaultTimeUpSpace},#{defaultDistanceUpSpace},
		#{driverLoggingOutUpDistanceSpace}, #{dormancyUpDistanceSpace}, #{emergencyAlarmUpDistanceSpace},#{flag}, #{createDataTime},
		#{createDataUsername}
		)
	</insert>
	<!-- 新增终端控制-无线升级参数 -->
	<insert id="addWirelessUpdateParam" parameterType="com.zw.platform.domain.param.WirelessUpdateParam">
		INSERT INTO zw_m_wireless_update (
		id, w_access_control, w_dail_name, w_dail_user_name, w_dail_pwd, w_address,w_tcp_port,
		w_udp_port, manufactor_id, hardware_version,firmware_version, url,w_time_limit,flag, create_data_time,
		create_data_username
		)
		VALUES(
		#{id}, #{wAccessControl}, #{wDailName}, #{wDailUserName}, #{wDailPwd},#{wAddress},
		#{wTcpPort},#{wUdpPort},
		#{manufactorId}, #{hardwareVersion}, #{firmwareVersion},#{url}, #{wTimeLimit},#{flag}, #{createDataTime},
		#{createDataUsername}
		)
	</insert>
	<!-- 新增终端控制-终端控制连接指定服务器参数 -->
	<insert id="addDeviceConnectServerParam" parameterType="com.zw.platform.domain.param.DeviceConnectServerParam">
		INSERT INTO zw_m_device_connect_param (
		id, c_access_control, c_dail_name, c_dail_user_name, c_dail_pwd, c_address,c_tcp_port,
		c_udp_port, c_time_limit,flag, create_data_time,
		create_data_username
		)
		VALUES(
		#{id}, #{cAccessControl}, #{cDailName}, #{cDailUserName}, #{cDailPwd},#{cAddress},
		#{cTcpPort},#{cUdpPort},
	    #{cTimeLimit},#{flag}, #{createDataTime},
		#{createDataUsername}
		)
	</insert>
	<!-- 新增事件设置 -->
	<insert id="addEventSetParam" parameterType="com.zw.platform.domain.param.EventSetParam">
		INSERT INTO zw_m_event_set_param (
		id, operation_type,event_id, event_content,flag, create_data_time,create_data_username
		)
		VALUES(
		#{id},#{operationType}, #{eventId}, #{eventContent}, #{flag}, #{createDataTime},#{createDataUsername}
		)
	</insert>
	<!-- 新增信息点播菜单设置 -->
	<insert id="addInformationParam" parameterType="com.zw.platform.domain.param.InformationParam">
		INSERT INTO zw_m_information_param (
		id, operation_type,info_id, info_content,flag, create_data_time,create_data_username
		)
		VALUES(
		#{id},#{operationType}, #{infoId}, #{infoContent}, #{flag}, #{createDataTime},#{createDataUsername}
		)
	</insert>
	<!-- 新增电话本设置 -->
	<insert id="addPhoneBookParam" parameterType="com.zw.platform.domain.param.PhoneBookParam">
		INSERT INTO zw_m_phone_book_param (
		id, operation_type,phone_book_id, contact,phone_no,call_type,flag, create_data_time,create_data_username
		)
		VALUES(
		#{id},#{operationType}, #{phoneBookId}, #{contact}, #{phoneNo},#{callType}, #{flag}, #{createDataTime},#{createDataUsername}
		)
	</insert>

	<!-- 新增 F3超待设备基站参数设置 -->
	<insert id="addStationParam" parameterType="com.zw.platform.domain.param.StationParam">
		INSERT INTO zw_m_station_param (
		id, vehicle_number,requite_pattern, location_pattern,requite_time,location_number,location_time,flag, create_data_time,create_data_username
		)
		VALUES(
		#{id},#{vehicleNumber}, #{requitePattern}, #{locationPattern}, #{requiteTime},#{locationNumber},#{locationTime}, #{flag}, #{createDataTime},#{createDataUsername}
		)
	</insert>

	<!-- 新增绑定关系 -->
	<insert id="addCommandBind" parameterType="com.zw.platform.domain.vas.monitoring.MonitorCommandBindForm">
		INSERT INTO zw_m_realtime_command_setting (
		id, vid, param_id, command_type, flag, create_data_time,create_data_username,upgrade_type
		)
		VALUES
		<foreach collection="list" item="item" index="index"
			separator=",">
		(#{item.id}, #{item.vid}, #{item.paramId}, #{item.commandType}, #{item.flag},#{item.createDataTime},#{item.createDataUsername},#{item.upgradeType})
		</foreach>
	</insert>
	<!-- 查询车辆与指令类型的绑定关系 -->
	<select id="findRealTimeCommand"  resultType="java.util.HashMap">
		select DISTINCT cs.id,cs.param_id as paramId,d.id as dId,v.id as vehicleId,cs.command_type as commandType,v.brand,d.status,reply_code as replyCode,d.create_data_time as createDataTime,GROUP_CONCAT(DISTINCT a.name SEPARATOR ';') as groupName from zw_m_realtime_command_setting cs
			left join zw_m_vehicle_info v on cs.vid = v.id and v.flag = 1
			left join zw_m_directive d on cs.id = d.parameter_name and cs.vid = d.monitor_object_id  and d.flag = 1
			inner join zw_m_assignment_vehicle av on cs.vid = av.vehicle_id and av.flag = 1
			inner join zw_m_assignment a on a.id = av.assignment_id and a.flag = 1
			where cs.flag = 1
			and cs.vid in
			<foreach item="item" collection="vehicleList" separator=","
			open="(" close=")">
				#{item}
			</foreach>
			group by v.brand,cs.command_type,cs.param_id
			order by cs.create_data_time desc
	</select>
	<!-- 根据绑定表参数id查询各种指令类型参数 -->
	<select id="findCommunicationParam"  resultType="com.zw.platform.domain.param.CommunicationParam">
		select cs.id, main_server_apn, main_server_call_user_name, main_server_call_user_pwd, main_server_address, backup_server_apn as backupServerAPN,backup_server_call_user_name as backupServerCallUserName,
		backup_server_call_user_pwd as backupServerCallUserPwd, backup_server_address as backupServerAddress, server_tcp_port,server_udp_port
		from zw_m_communication_param cp
		inner join zw_m_realtime_command_setting cs on cp.id = cs.param_id and cs.flag = 1
		where cs.id = #{id}
		and cp.flag = 1
	</select>
	<select id="findCommunicationByParamId"  resultType="com.zw.platform.domain.param.CommunicationParam">
		select * from zw_m_communication_param where id = #{id} and flag = 1
	</select>
	<select id="findCameraParam"  resultType="com.zw.platform.domain.param.CameraParam">
		select * from zw_m_camera_param cp
		inner join zw_m_realtime_command_setting cs on cp.id = cs.param_id and cs.flag = 1
		where cs.id = #{id}
		and cp.flag = 1
	</select>
	<select id="findDeviceParam" resultType="com.zw.platform.domain.param.DeviceParam">
		select * from zw_m_device_param dp
		inner join zw_m_realtime_command_setting cs on dp.id = cs.param_id and cs.flag = 1
		where cs.id = #{id}
		and dp.flag = 1
	</select>
	<select id="findGNSSParam" resultType="com.zw.platform.domain.param.GNSSParam">
		select * from zw_m_gnss_param gp
		inner join zw_m_realtime_command_setting cs on gp.id = cs.param_id and cs.flag = 1
		where cs.id = #{id}
		and gp.flag = 1
	</select>
	<select id="findPhoneParam" resultType="com.zw.platform.domain.param.PhoneParam">
		select * from zw_m_phone_param gp
		inner join zw_m_realtime_command_setting cs on gp.id = cs.param_id and cs.flag = 1
		where cs.id = #{id}
		and gp.flag = 1
	</select>

	<select id="findStationParam" resultType="com.zw.platform.domain.param.StationParam">
		select * from zw_m_station_param gp
		inner join zw_m_realtime_command_setting cs on gp.id = cs.param_id and cs.flag = 1
		where cs.id = #{id}
		and gp.flag = 1
	</select>

	<select id="findPositionParam" resultType="com.zw.platform.domain.param.PositionParam">
		select * from zw_m_position_param gp
		inner join zw_m_realtime_command_setting cs on gp.id = cs.param_id and cs.flag = 1
		where cs.id = #{id}
		and gp.flag = 1
	</select>
	<select id="findWirelessUpdateParam" resultType="com.zw.platform.domain.param.WirelessUpdateParam">
		select * from zw_m_wireless_update gp
		inner join zw_m_realtime_command_setting cs on gp.id = cs.param_id and cs.flag = 1
		where cs.id = #{id}
		and gp.flag = 1
	</select>
	<select id="findDeviceConnectServerParam" resultType="com.zw.platform.domain.param.DeviceConnectServerParam">
		select
		cs.vid,
		gp.c_access_control AS accessControl,
		gp.c_authCode AS authCode,
		gp.c_dail_name AS dailName,
		gp.c_dail_user_name dailUserName,
		gp.c_dail_pwd dailPwd,
		gp.c_address address,
		gp.c_tcp_port tcpPort,
		gp.c_udp_port udpPort,
		gp.c_time_limit timeLimit,
		gp.flag,
		gp.create_data_time,
		gp.create_data_username,
		gp.update_data_time,
		gp.update_data_username
		from zw_m_device_connect_param gp
		inner join zw_m_realtime_command_setting cs on gp.id = cs.param_id and cs.flag = 1
		where
		cs.id = #{id}
		and gp.flag = 1
	</select>
	<select id="findEventParam" resultType="com.zw.platform.domain.param.EventSetParam">
		select * from zw_m_event_set_param gp
		where gp.id in
		<foreach item="item" collection="paramId" separator=","
			open="(" close=")">
				#{item}
			</foreach>
		and gp.flag = 1 order by gp.event_id
	</select>
	<select id="findInformationParam" resultType="com.zw.platform.domain.param.InformationParam">
		select * from zw_m_information_param gp
		where gp.id in
		<foreach item="item" collection="paramId" separator=","
			open="(" close=")">
				#{item}
			</foreach>
		and gp.flag = 1 order by gp.info_id
	</select>
	<select id="findPhoneBookParam" resultType="com.zw.platform.domain.param.PhoneBookParam">
		select * from zw_m_phone_book_param gp
		where  gp.id in
		<foreach item="item" collection="paramId" separator=","
			open="(" close=")">
				#{item}
			</foreach>
		and gp.flag = 1 order by gp.phone_book_id
	</select>
	<!-- 根据车辆id和指令类型删除绑定表中数据，一个车，一个指令类型在绑定表中对应唯一一条数据 -->
	<update id="deleteParamSetting">
		update  zw_m_realtime_command_setting set flag = 0 WHERE flag = 1 and vid = #{vehicleId} and command_type = #{commandType}
	</update>
	<!-- 根据id删除参数绑定表 -->
	<update id="deleteCommandBind">
	    update zw_m_realtime_command_setting
	    set flag = 0
	    where flag = 1
	    and id = #{id}
	</update>
	<!-- 根据id批量删除参数绑定表 -->
	<update id="deleteCommandBindByBatch">
	    update zw_m_realtime_command_setting
	    set flag = 0
	    where flag = 1
	    and id in
		<foreach item="item" collection="array" open="(" separator=","
			close=")">
			#{item}
		</foreach>
	</update>
	<!-- 根据车辆id和指令类型查询各种指令类型参数 -->
	<select id="getCommunicationParam"  resultType="com.zw.platform.domain.param.CommunicationParam">
		select cp.id, cp.main_server_apn,  cp.main_server_call_user_name,  cp.main_server_call_user_pwd,  cp.main_server_address,  cp.backup_server_apn as backupServerAPN, cp.backup_server_call_user_name as backupServerCallUserName,
		 cp.backup_server_call_user_pwd as backupServerCallUserPwd,  cp.backup_server_address as backupServerAddress,  cp.server_tcp_port, cp.server_udp_port,
		 cp.slave_server_apn as slaveServerAPN,cp.slave_server_address as slaveServerAddress,
		 cp.slave_server_call_user_name as slaveServerCallUserName,cp.slave_server_call_user_pwd as slaveServerCallUserPwd
		from zw_m_communication_param cp
		inner join zw_m_realtime_command_setting cs on cp.id = cs.param_id and cs.flag = 1
		where cs.vid = #{id} and cs.command_type = #{commandType}
		and cp.flag = 1
	</select>

	<select id="getCameraParam"  resultType="com.zw.platform.domain.param.CameraParam">
		select * from zw_m_camera_param cp
		inner join zw_m_realtime_command_setting cs on cp.id = cs.param_id and cs.flag = 1
		where cs.vid = #{id} and cs.command_type = #{commandType}
		and cp.flag = 1
	</select>
	<!--获取 F3超待设备基站参数-->
	<select id="getStationParam"  resultType="com.zw.platform.domain.param.StationParam">
		select * from zw_m_station_param cp
		inner join zw_m_realtime_command_setting cs on cp.id = cs.param_id and cs.flag = 1
		where cs.vid = #{vehicleId} and cs.command_type = #{commandType}
		and cp.flag = 1
	</select>
	<select id="getDeviceParam" resultType="com.zw.platform.domain.param.DeviceParam">
		select * from zw_m_device_param dp
		inner join zw_m_realtime_command_setting cs on dp.id = cs.param_id and cs.flag = 1
		where cs.vid = #{id} and cs.command_type = #{commandType}
		and dp.flag = 1
	</select>
	<select id="getGNSSParam" resultType="com.zw.platform.domain.param.GNSSParam">
		select * from zw_m_gnss_param gp
		inner join zw_m_realtime_command_setting cs on gp.id = cs.param_id and cs.flag = 1
		where cs.vid = #{id} and cs.command_type = #{commandType}
		and gp.flag = 1
	</select>
	<select id="getPhoneParam" resultType="com.zw.platform.domain.param.PhoneParam">
		select * from zw_m_phone_param gp
		inner join zw_m_realtime_command_setting cs on gp.id = cs.param_id and cs.flag = 1
		where cs.vid = #{id} and cs.command_type = #{commandType}
		and gp.flag = 1
	</select>
	<select id="getPositionParam" resultType="com.zw.platform.domain.param.PositionParam">
		select * from zw_m_position_param gp
		inner join zw_m_realtime_command_setting cs on gp.id = cs.param_id and cs.flag = 1
		where cs.vid = #{id} and cs.command_type = #{commandType}
		and gp.flag = 1
	</select>
	<select id="getWirelessUpdateParam" resultType="com.zw.platform.domain.param.WirelessUpdateParam">
		select * from zw_m_wireless_update gp
		inner join zw_m_realtime_command_setting cs on gp.id = cs.param_id and cs.flag = 1
		where cs.vid = #{id} and cs.command_type = #{commandType}
		and gp.flag = 1
	</select>
	<select id="getDeviceConnectServerParam" resultType="com.zw.platform.domain.param.DeviceConnectServerParam">
		select
		cs.vid,
		gp.c_access_control AS accessControl,
		gp.c_authCode AS authCode,
		gp.c_dail_name AS dailName,
		gp.c_dail_user_name dailUserName,
		gp.c_dail_pwd dailPwd,
		gp.c_address address,
		gp.c_tcp_port tcpPort,
		gp.c_udp_port udpPort,
		gp.c_time_limit timeLimit,
		gp.flag,
		gp.create_data_time,
		gp.create_data_username,
		gp.update_data_time,
		gp.update_data_username
		from zw_m_device_connect_param gp
		inner join zw_m_realtime_command_setting cs on gp.id = cs.param_id and cs.flag = 1
		where
		cs.vid = #{id} and cs.command_type = #{commandType}
		and gp.flag = 1
	</select>
	<select id="findBind" resultType="com.zw.platform.domain.vas.monitoring.MonitorCommandBindForm">
		select * from zw_m_realtime_command_setting cs
		where  cs.flag = 1 and
		cs.vid = #{id} and cs.command_type = #{commandType}
	</select>
	<select id="findReferVehicle" resultType="com.zw.platform.domain.vas.monitoring.MonitorCommandBindForm">
		select cs.*,v.brand as brand from zw_m_realtime_command_setting cs inner join
		(select vi.id,vi.brand as brand from zw_m_vehicle_info vi where vi.flag = 1
		union all
		select ti.id,ti.thing_number as brand from zw_m_thing_info ti where ti.flag = 1
		union all
		select pi.id,pi.people_number as brand from zw_m_people_info pi where pi.flag = 1
		)
		v on cs.vid = v.id
		inner join zw_m_config cf ON cf.vehicle_id = v.id and cf.flag = 1
     	inner join zw_m_device_info df ON df.id = cf.device_id and df.flag = 1
		where  cs.flag = 1 and cs.command_type = #{commandType}
		<if test="deviceType != null and deviceType != ''">
			and df.device_type = #{deviceType}
		</if>
		<if test="vid != null and vid != ''">
			and v.id != #{vid}
		</if>
	</select>
	<select id="findReferVehicleExcept" resultType="com.zw.platform.domain.vas.monitoring.MonitorCommandBindForm">
		select cs.*,v.brand as brand from zw_m_realtime_command_setting cs inner join
		(select vi.id,vi.brand as brand from zw_m_vehicle_info vi where vi.flag = 1
		union all
		select ti.id,ti.thing_number as brand from zw_m_thing_info ti where ti.flag = 1
		union all
		select pi.id,pi.people_number as brand from zw_m_people_info pi where pi.flag = 1
		) v on cs.vid = v.id
		where  cs.flag = 1 and cs.command_type = #{commandType} and  v.id != #{vid}
	</select>

	<select id="getMonitorParamId" resultType="com.zw.platform.domain.vas.monitoring.MonitorCommandBindForm">
		SELECT cs.* FROM zw_m_realtime_command_setting cs
		WHERE cs.flag = 1
		AND cs.param_id IS NOT NULL
		AND cs.command_type = #{commandType}
		<if test="upgradeType != null and upgradeType != ''">
			And upgrade_type =#{upgradeType}
		</if>
		<if test="monitorIdList != null and monitorIdList.size() > 0">
			AND cs.vid IN
			<foreach item="item" collection="monitorIdList" open="(" separator=","
					 close=")">
				#{item}
			</foreach>
		</if>
	</select>

	<select id="findDeviceUpgradeDaoByIds"  resultType="com.zw.platform.domain.systems.DeviceUpgrade">
		SELECT de.*,zmrcs.vid,ma.url,ma.manufacturer_id,ma.soft_version,ma.file_name,de.create_data_username FROM zw_m_vehicle_upgrade de
		inner join zw_m_upgrade_file_manager ma on ma.id =de.file_id
		LEFT JOIN zw_m_realtime_command_setting zmrcs ON find_in_set(de.id,zmrcs.param_id) > 0
		WHERE de.flag = 1 and schedule_upgrade_time is null
		AND zmrcs.flag = 1
		AND ma.flag =1
		AND zmrcs.vid IS NOT NULL
		AND de.id IN
		<foreach item="item" collection="paramIdList" open="(" separator=","
				 close=")">
			#{item}
		</foreach>
	</select>

	<select id="findCommunicationParamByParamIds"  resultType="com.zw.platform.domain.param.CommunicationParam">
		SELECT zmcp.*,zmrcs.vid FROM zw_m_communication_param zmcp
		LEFT JOIN zw_m_realtime_command_setting zmrcs ON find_in_set(zmcp.id,zmrcs.param_id) > 0
		WHERE zmcp.flag = 1
		AND zmrcs.flag = 1
		AND zmrcs.vid IS NOT NULL
		AND zmcp.id IN
		<foreach item="item" collection="paramIdList" open="(" separator=","
				 close=")">
			#{item}
		</foreach>
	</select>


	<select id="findDeviceParamByParamIds" resultType="com.zw.platform.domain.param.DeviceParam">
		SELECT param.*,zmrcs.vid FROM zw_m_device_param param
		LEFT JOIN zw_m_realtime_command_setting zmrcs ON find_in_set(param.id,zmrcs.param_id) > 0
		WHERE param.flag = 1
		AND zmrcs.flag = 1
		AND zmrcs.vid IS NOT NULL
		AND param.id IN
		<foreach item="item" collection="paramIdList" open="(" separator=","
				 close=")">
			#{item}
		</foreach>
	</select>

	<select id="findWirelessUpgradeParamByParamIds" resultType="com.zw.platform.domain.param.WirelessUpdateInfoParam">
		SELECT param.*,zmrcs.vid FROM zw_m_wireless_update param
		LEFT JOIN zw_m_realtime_command_setting zmrcs ON find_in_set(param.id,zmrcs.param_id) > 0
		WHERE param.flag = 1
		AND zmrcs.flag = 1
		AND zmrcs.vid IS NOT NULL
		AND param.id IN
		<foreach item="item" collection="paramIdList" open="(" separator=","
				 close=")">
			#{item}
		</foreach>
	</select>

	<select id="findDeviceConnectServerParamByParamIds" resultType="com.zw.platform.domain.param.DeviceConnectServerParam">
		SELECT
		param.c_access_control AS accessControl,
		param.c_authCode AS authCode,
		param.c_dail_name AS dailName,
		param.c_dail_user_name dailUserName,
		param.c_dail_pwd dailPwd,
		param.c_address address,
		param.c_tcp_port tcpPort,
		param.c_udp_port udpPort,
		param.c_time_limit timeLimit,
		param.flag,
		param.create_data_time,
		param.create_data_username,
		param.update_data_time,
		param.update_data_username,
		zmrcs.vid
		FROM zw_m_device_connect_param param
		LEFT JOIN zw_m_realtime_command_setting zmrcs ON find_in_set(param.id,zmrcs.param_id) > 0
		WHERE param.flag = 1
		AND zmrcs.flag = 1
		AND zmrcs.vid IS NOT NULL
		AND param.id IN
		<foreach item="item" collection="paramIdList" open="(" separator=","
				 close=")">
			#{item}
		</foreach>
	</select>
	<select id="findPositionParamByParamIds" resultType="com.zw.platform.domain.param.PositionParam">
		SELECT param.*,zmrcs.vid FROM zw_m_position_param param
		LEFT JOIN zw_m_realtime_command_setting zmrcs ON find_in_set(param.id,zmrcs.param_id) > 0
		WHERE param.flag = 1
		AND zmrcs.flag = 1
		AND zmrcs.vid IS NOT NULL
		AND param.id IN
		<foreach item="item" collection="paramIdList" open="(" separator=","
				 close=")">
			#{item}
		</foreach>
	</select>
	<select id="findPhoneParamByParamIds" resultType="com.zw.platform.domain.param.PhoneParam">
		SELECT param.*,zmrcs.vid FROM zw_m_phone_param param
		LEFT JOIN zw_m_realtime_command_setting zmrcs ON find_in_set(param.id,zmrcs.param_id) > 0
		WHERE param.flag = 1
		AND zmrcs.flag = 1
		AND zmrcs.vid IS NOT NULL
		AND param.id IN
		<foreach item="item" collection="paramIdList" open="(" separator=","
				 close=")">
			#{item}
		</foreach>
	</select>

	<select id="findCameraParamByParamIds"  resultType="com.zw.platform.domain.param.CameraParam">
		SELECT param.*,zmrcs.vid FROM zw_m_camera_param param
		LEFT JOIN zw_m_realtime_command_setting zmrcs ON find_in_set(param.id,zmrcs.param_id) > 0
		WHERE param.flag = 1
		AND zmrcs.flag = 1
		AND zmrcs.vid IS NOT NULL
		AND param.id IN
		<foreach item="item" collection="paramIdList" open="(" separator=","
				 close=")">
			#{item}
		</foreach>
	</select>

	<select id="findGNSSParamByParamIds" resultType="com.zw.platform.domain.param.GNSSParam">
		SELECT param.*,zmrcs.vid FROM zw_m_gnss_param param
		LEFT JOIN zw_m_realtime_command_setting zmrcs ON find_in_set(param.id,zmrcs.param_id) > 0
		WHERE param.flag = 1
		AND zmrcs.flag = 1
		AND zmrcs.vid IS NOT NULL
		AND param.id IN
		<foreach item="item" collection="paramIdList" open="(" separator=","
				 close=")">
			#{item}
		</foreach>
	</select>

	<select id="findEventParamByParamIds" resultType="com.zw.platform.domain.param.EventSetParam">
		SELECT param.*,zmrcs.vid FROM zw_m_event_set_param param
		LEFT JOIN zw_m_realtime_command_setting zmrcs ON find_in_set(param.id,zmrcs.param_id) > 0
		WHERE param.flag = 1
		AND zmrcs.flag = 1
		AND zmrcs.vid IS NOT NULL
		AND param.id IN
		<foreach item="item" collection="paramIdList" open="(" separator=","
				 close=")">
			#{item}
		</foreach>
	</select>

	<select id="findPhoneBookParamByParamIds" resultType="com.zw.platform.domain.param.PhoneBookParam">
		SELECT param.*,zmrcs.vid FROM zw_m_phone_book_param param
		LEFT JOIN zw_m_realtime_command_setting zmrcs ON find_in_set(param.id,zmrcs.param_id) > 0
		WHERE param.flag = 1
		AND zmrcs.flag = 1
		AND zmrcs.vid IS NOT NULL
		AND param.id IN
		<foreach item="item" collection="paramIdList" open="(" separator=","
				 close=")">
			#{item}
		</foreach>
		order by param.phone_book_id
	</select>

	<select id="findInformationParamByParamIds" resultType="com.zw.platform.domain.param.InformationParam">
		SELECT param.*,zmrcs.vid FROM zw_m_information_param param
		LEFT JOIN zw_m_realtime_command_setting zmrcs ON find_in_set(param.id,zmrcs.param_id) > 0
		WHERE param.flag = 1
		AND zmrcs.flag = 1
		AND zmrcs.vid IS NOT NULL
		AND param.id IN
		<foreach item="item" collection="paramIdList" open="(" separator=","
				 close=")">
			#{item}
		</foreach>
		order by param.info_id
	</select>

	<select id="findStationParamByParamIds" resultType="com.zw.platform.domain.param.StationParam">
		SELECT param.*,zmrcs.vid FROM zw_m_station_param param
		LEFT JOIN zw_m_realtime_command_setting zmrcs ON find_in_set(param.id,zmrcs.param_id) > 0
		WHERE param.flag = 1
		AND zmrcs.flag = 1
		AND zmrcs.vid IS NOT NULL
		AND param.id IN
		<foreach item="item" collection="paramIdList" open="(" separator=","
				 close=")">
			#{item}
		</foreach>
	</select>

	<select id="findSerialPortParamByParamIds" resultType="com.zw.platform.domain.param.SerialPortParam">
		SELECT param.*,zmrcs.vid FROM zw_m_serial_port_param param
		LEFT JOIN zw_m_realtime_command_setting zmrcs ON find_in_set(param.id,zmrcs.param_id) > 0
		WHERE param.flag = 1
		AND zmrcs.flag = 1
		AND zmrcs.vid IS NOT NULL
		AND param.id IN
		<foreach item="item" collection="paramIdList" open="(" separator=","
				 close=")">
			#{item}
		</foreach>
	</select>

	<insert id="addCommunicationParamByBatch" parameterType="com.zw.platform.domain.param.CommunicationParam">
		INSERT INTO zw_m_communication_param (
		id, main_server_apn, main_server_call_user_name, main_server_call_user_pwd, main_server_address, backup_server_apn,backup_server_call_user_name,
		backup_server_call_user_pwd, backup_server_address, server_tcp_port,server_udp_port, flag, create_data_time,
		create_data_username,slave_server_apn,slave_server_address,slave_server_call_user_name,slave_server_call_user_pwd
		)
		VALUES
		<foreach collection="list" item="item"  separator=",">
			(#{item.id}, #{item.mainServerAPN}, #{item.mainServerCallUserName}, #{item.mainServerCallUserPwd}, #{item.mainServerAddress},#{item.backupServerAPN},
			#{item.backupServerCallUserName},
			#{item.backupServerCallUserPwd}, #{item.backupServerAddress}, #{item.serverTCPPort},#{item.serverUDPPort},#{item.flag}, #{item.createDataTime},
			#{item.createDataUsername},#{item.slaveServerAPN},#{item.slaveServerAddress},#{item.slaveServerCallUserName},#{item.slaveServerCallUserPwd})
		</foreach>
	</insert>

	<update id="delCommunicationParamByIds">
		UPDATE zw_m_communication_param
		SET flag = 0
		WHERE flag = 1
		AND id IN
		<foreach item="item" collection="list" open="(" separator="," close=")">
			#{item}
		</foreach>
	</update>

	<insert id="addDeviceParamByBatch" parameterType="com.zw.platform.domain.param.DeviceParam">
		INSERT INTO zw_m_device_param (
		id, heart_space, tcp_ack_time_out, tcp_re_up_times, udp_ack_time_out, udp_re_up_times,sms_ack_time_out,
		sms_re_up_times, flag, create_data_time,
		create_data_username,inflection_point_additional,electronic_fence_radius
		)
		VALUES
		<foreach collection="list" item="item"  separator=",">
			(#{item.id}, #{item.heartSpace}, #{item.tcpAckTimeOut}, #{item.tcpReUpTimes}, #{item.udpAckTimeOut},#{item.udpReUpTimes},
			#{item.smsAckTimeOut},
			#{item.smsReUpTimes},#{item.flag}, #{item.createDataTime},
			#{item.createDataUsername},#{item.inflectionPointAdditional},#{item.electronicFenceRadius})
		</foreach>
	</insert>

	<update id="delDeviceParamByIds">
		UPDATE zw_m_device_param
		SET flag = 0
		WHERE flag = 1
		AND id IN
		<foreach item="item" collection="list" open="(" separator="," close=")">
			#{item}
		</foreach>
	</update>

	<insert id="addWirelessUpdateParamByBatch" parameterType="com.zw.platform.domain.param.WirelessUpdateParam">
		INSERT INTO zw_m_wireless_update (
		id, w_access_control, w_dail_name, w_dail_user_name, w_dail_pwd, w_address,w_tcp_port,
		w_udp_port, manufactor_id, hardware_version,firmware_version, url,w_time_limit,flag, create_data_time,
		create_data_username
		)
		VALUES
		<foreach collection="list" item="item"  separator=",">
			(
			#{item.id}, #{item.wAccessControl}, #{item.wDailName}, #{item.wDailUserName}, #{item.wDailPwd},#{item.wAddress},
			#{item.wTcpPort},#{item.wUdpPort},
			#{item.manufactorId}, #{item.hardwareVersion}, #{item.firmwareVersion},#{item.url}, #{item.wTimeLimit},#{item.flag}, #{item.createDataTime},
			#{item.createDataUsername}
			)
		</foreach>
	</insert>

	<update id="delWirelessUpdateParamByIds">
		UPDATE zw_m_wireless_update
		SET flag = 0
		WHERE flag = 1
		AND id IN
		<foreach item="item" collection="list" open="(" separator="," close=")">
			#{item}
		</foreach>
	</update>

	<insert id="addDeviceConnectServerParamByBatch" parameterType="com.zw.platform.domain.param.DeviceConnectServerParam">
		INSERT INTO zw_m_device_connect_param (
		id, c_access_control, c_dail_name, c_dail_user_name, c_dail_pwd, c_address,c_tcp_port,
		c_udp_port, c_time_limit,flag, create_data_time,create_data_username, c_authCode
		)
		VALUES
		<foreach collection="list" item="item"  separator=",">
			(
			#{item.id}, #{item.accessControl}, #{item.dailName}, #{item.dailUserName}, #{item.dailPwd},#{item.address},
			#{item.tcpPort},#{item.udpPort},
			#{item.timeLimit},#{item.flag}, #{item.createDataTime},
			#{item.createDataUsername},#{item.authCode}
			)
		</foreach>
	</insert>

	<update id="delDeviceConnectServerParamByIds">
		UPDATE zw_m_device_connect_param
		SET flag = 0
		WHERE flag = 1
		AND id IN
		<foreach item="item" collection="list" open="(" separator="," close=")">
			#{item}
		</foreach>
	</update>

	<insert id="addPositionParamByBatch" parameterType="com.zw.platform.domain.param.PositionParam">
		INSERT INTO zw_m_position_param (
		id, position_up_tactics, position_up_scheme, driver_logging_out_up_time_space, dormancy_up_time_space, emergency_alarm_up_time_space,default_time_up_space,
		default_distance_up_space, driver_logging_out_up_distance_space, dormancy_up_distance_space,emergency_alarm_up_distance_space, flag, create_data_time,
		create_data_username
		)
		VALUES
		<foreach collection="list" item="item"  separator=",">
			(
			#{item.id}, #{item.positionUpTactics}, #{item.positionUpScheme}, #{item.driverLoggingOutUpTimeSpace}, #{item.dormancyUpTimeSpace},#{item.emergencyAlarmUpTimeSpace},
			#{item.defaultTimeUpSpace},#{item.defaultDistanceUpSpace},
			#{item.driverLoggingOutUpDistanceSpace}, #{item.dormancyUpDistanceSpace}, #{item.emergencyAlarmUpDistanceSpace},#{item.flag}, #{item.createDataTime},
			#{item.createDataUsername}
			)
		</foreach>
	</insert>

	<update id="delPositionParamByIds">
		UPDATE zw_m_position_param
		SET flag = 0
		WHERE flag = 1
		AND id IN
		<foreach item="item" collection="list" open="(" separator="," close=")">
			#{item}
		</foreach>
	</update>

	<insert id="addPhoneParamByBatch" parameterType="com.zw.platform.domain.param.PhoneParam">
		INSERT INTO zw_m_phone_param (
		id, platform_phone_number, reset_phone_number, re_initial_phone_number, platform_sms_phone_number, receive_device_sms_txt_alarm_phone_number,device_answer_phone_type,
		times_max_call_time, monthly_max_call_time, listen_phone_number,platform_privilege_sms_number, flag, create_data_time,
		create_data_username
		)
		VALUES
		<foreach collection="list" item="item"  separator=",">
			(
			#{item.id}, #{item.platformPhoneNumber}, #{item.resetPhoneNumber}, #{item.reInitialPhoneNumber}, #{item.platformSMSPhoneNumber},#{item.receiveDeviceSMSTxtAlarmPhoneNumber},
			#{item.deviceAnswerPhoneType},
			#{item.timesMaxCallTime}, #{item.monthlyMaxCallTime}, #{item.listenPhoneNumber},#{item.platformPrivilegeSMSNumber},#{item.flag}, #{item.createDataTime},
			#{item.createDataUsername}
			)
		</foreach>
	</insert>

	<update id="delPhoneParamByIds">
		UPDATE zw_m_phone_param
		SET flag = 0
		WHERE flag = 1
		AND id IN
		<foreach item="item" collection="list" open="(" separator="," close=")">
			#{item}
		</foreach>
	</update>

	<insert id="addCameraParamByBatch" parameterType="com.zw.platform.domain.param.CameraParam">
		INSERT INTO zw_m_camera_param (
		id, camera_timer_open_flag1, camera_timer_open_flag2, camera_timer_open_flag3, camera_timer_open_flag4, camera_timer_open_flag5,camera_timer_save_flag1,
		camera_timer_save_flag2, camera_timer_save_flag3,camera_timer_save_flag4,camera_timer_save_flag5, timing_unit,timing_space,camera_distance_open_flag1,
		camera_distance_open_flag2,camera_distance_open_flag3,camera_distance_open_flag4,camera_distance_open_flag5,camera_distance_save_flag1,camera_distance_save_flag2,
		camera_distance_save_flag3,camera_distance_save_flag4,camera_distance_save_flag5,distance_unit,distance_space,picture_quality,luminance,contrast,
		saturation,chroma,flag,create_data_time,
		create_data_username, video_tactics
		)
		VALUES
		<foreach collection="list" item="item"  separator=",">
			(
			#{item.id}, #{item.cameraTimerOpenFlag1}, #{item.cameraTimerOpenFlag2}, #{item.cameraTimerOpenFlag3}, #{item.cameraTimerOpenFlag4},#{item.cameraTimerOpenFlag5},
			#{item.cameraTimerSaveFlag1},
			#{item.cameraTimerSaveFlag2}, #{item.cameraTimerSaveFlag3}, #{item.cameraTimerSaveFlag4},#{item.cameraTimerSaveFlag5},
			#{item.timingUnit}, #{item.timingSpace}, #{item.cameraDistanceOpenFlag1},#{item.cameraDistanceOpenFlag2},
			#{item.cameraDistanceOpenFlag3}, #{item.cameraDistanceOpenFlag4}, #{item.cameraDistanceOpenFlag5},#{item.cameraDistanceSaveFlag1},
			#{item.cameraDistanceSaveFlag2}, #{item.cameraDistanceSaveFlag3}, #{item.cameraDistanceSaveFlag4},#{item.cameraDistanceSaveFlag5},
			#{item.distanceUnit}, #{item.distanceSpace}, #{item.pictureQuality},#{item.luminance},#{item.contrast}, #{item.saturation},#{item.chroma},
			#{item.flag}, #{item.createDataTime},
			#{item.createDataUsername}, #{item.videoTactics}
			)
		</foreach>
	</insert>

	<update id="delCameraParamByIds">
		UPDATE zw_m_camera_param
		SET flag = 0
		WHERE flag = 1
		AND id IN
		<foreach item="item" collection="list" open="(" separator="," close=")">
			#{item}
		</foreach>
	</update>

	<insert id="addGNSSParamByBatch" parameterType="com.zw.platform.domain.param.GNSSParam">
		INSERT INTO zw_m_gnss_param (
		id, beidou_flag, GPS_flag, GLONASS_flag, Galileo_flag, GNSS_baud_rate,GNSS_position_output_rate,
		GNSS_position_collect_rate, GNSS_position_upload_type, flag, create_data_time,
		create_data_username
		)
		VALUES
		<foreach collection="list" item="item"  separator=",">
			(
			#{item.id}, #{item.beidouFlag}, #{item.GPSFlag}, #{item.GLONASSFlag}, #{item.GalileoFlag},#{item.GNSSBaudRate},
			#{item.GNSSPositionOutputRate},
			#{item.GNSSPositionCollectRate}, #{item.GNSSPositionUploadType}, #{item.flag}, #{item.createDataTime},
			#{item.createDataUsername}
			)
		</foreach>
	</insert>

	<update id="delGNSSParamByIds">
		UPDATE zw_m_gnss_param
		SET flag = 0
		WHERE flag = 1
		AND id IN
		<foreach item="item" collection="list" open="(" separator="," close=")">
			#{item}
		</foreach>
	</update>

	<insert id="addEventSetParamByBatch" parameterType="com.zw.platform.domain.param.EventSetParam">
		INSERT INTO zw_m_event_set_param (
		id, operation_type,event_id, event_content,flag, create_data_time,create_data_username
		)
		VALUES
		<foreach collection="list" item="item"  separator=",">
			(
			#{item.id},#{item.operationType}, #{item.eventId}, #{item.eventContent}, #{item.flag}, #{item.createDataTime},#{item.createDataUsername}
			)
		</foreach>
	</insert>

	<update id="delEventSetParamByIds">
		UPDATE zw_m_event_set_param
		SET flag = 0
		WHERE flag = 1
		AND id IN
		<foreach item="item" collection="list" open="(" separator="," close=")">
			#{item}
		</foreach>
	</update>

	<insert id="addPhoneBookParamByBatch" parameterType="com.zw.platform.domain.param.PhoneBookParam">
		INSERT INTO zw_m_phone_book_param (
		id, operation_type,phone_book_id, contact,phone_no,call_type,flag, create_data_time,create_data_username
		)
		VALUES
		<foreach collection="list" item="item"  separator=",">
			(
			#{item.id},#{item.operationType}, #{item.phoneBookId}, #{item.contact}, #{item.phoneNo},#{item.callType}, #{item.flag}, #{item.createDataTime},#{item.createDataUsername}
			)
		</foreach>
	</insert>

	<update id="delPhoneBookParamByIds">
		UPDATE zw_m_phone_book_param
		SET flag = 0
		WHERE flag = 1
		AND id IN
		<foreach item="item" collection="list" open="(" separator="," close=")">
			#{item}
		</foreach>
	</update>

	<insert id="addInformationParamByBatch" parameterType="com.zw.platform.domain.param.InformationParam">
		INSERT INTO zw_m_information_param (
		id, operation_type,info_id, info_content,flag, create_data_time,create_data_username,send_frequency, message_content
		)
		VALUES
		<foreach collection="list" item="item"  separator=",">
			(
			#{item.id},#{item.operationType}, #{item.infoId}, #{item.infoContent}, #{item.flag}, #{item.createDataTime},#{item.createDataUsername},#{item.sendFrequency},#{item.messageContent}
			)
		</foreach>
	</insert>

	<update id="delInformationParamByIds">
		UPDATE zw_m_information_param
		SET flag = 0
		WHERE flag = 1
		AND id IN
		<foreach item="item" collection="list" open="(" separator="," close=")">
			#{item}
		</foreach>
	</update>

	<insert id="addSerialPortParamByBatch" parameterType="com.zw.platform.domain.param.SerialPortParam">
		INSERT INTO zw_m_serial_port_param (
		id, serial_port_number,baud_rate,data_bits,stop_bit, parity_bit,flow_control, data_acceptance_timeout_time,
		type,flag, create_data_time,create_data_username
		)
		VALUES
		<foreach collection="list" item="item"  separator=",">
			(
			#{item.id},#{item.serialPortNumber},#{item.baudRate} , #{item.dataBits}, #{item.stopBit},
			#{item.parityBit},#{item.flowControl}, #{item.dataAcceptanceTimeoutTime},
			#{item.type}, #{item.flag}, #{item.createDataTime},#{item.createDataUsername}
			)
		</foreach>
	</insert>

	<update id="delSerialPortParamByIds">
		UPDATE zw_m_serial_port_param
		SET flag = 0
		WHERE flag = 1
		AND id IN
		<foreach item="item" collection="list" open="(" separator="," close=")">
			#{item}
		</foreach>
	</update>

	<insert id="addStationParamByBatch" parameterType="com.zw.platform.domain.param.StationParam">
		INSERT INTO zw_m_station_param (
		id, vehicle_number,requite_pattern,requite_interval, location_pattern,requite_time,location_number,location_time,flag, create_data_time,create_data_username
		)
		VALUES
		<foreach collection="list" item="item"  separator=",">
			(
			#{item.id},#{item.vehicleNumber}, #{item.requitePattern},#{item.requiteInterval}, #{item.locationPattern}, #{item.requiteTime},#{item.locationNumber},#{item.locationTime}, #{item.flag}, #{item.createDataTime},#{item.createDataUsername}
			)
		</foreach>
	</insert>

	<update id="delStationParamByIds">
		UPDATE zw_m_station_param
		SET flag = 0
		WHERE flag = 1
		AND id IN
		<foreach item="item" collection="list" open="(" separator="," close=")">
			#{item}
		</foreach>
	</update>

	<update id="delCommandBindByIds">
		UPDATE zw_m_realtime_command_setting
		SET flag = 0
		WHERE flag = 1
		AND id IN
		<foreach item="item" collection="list" open="(" separator="," close=")">
			#{item}
		</foreach>
	</update>

	<!--获取串口参数-->
	<select id="getSerialPortParam"  resultType="com.zw.platform.domain.param.SerialPortParam">
		select * from zw_m_serial_port_param cp
		where id IN
		<foreach item="item" collection="id" open="(" separator="," close=")">
			#{item}
		</foreach>
		and cp.flag = 1
	</select>

	<select id="getCommandBindInfoById" resultType="com.zw.platform.domain.vas.monitoring.MonitorCommandBindForm">
		SELECT * FROM zw_m_realtime_command_setting
		WHERE flag = 1 AND id = #{id}
	</select>

	<select id="getRealTimeCommand" resultType="com.zw.platform.domain.vas.monitoring.MonitorCommandBindForm">
		select cs.param_id FROM zw_m_realtime_command_setting cs
		where cs.vid = #{vehicleId} and cs.command_type = #{commandType}
		and cs.flag = 1
	</select>

	<select id="getInformationParamsByParamId" resultType="com.zw.platform.domain.param.InformationParam">
		SELECT * FROM zw_m_information_param ip
		WHERE ip.flag = 1
		AND  ip.info_id = #{infoType}
		AND ip.id IN
		<foreach collection="paramIds" item="id" open="(" separator="," close=")">
			#{id}
		</foreach>
	</select>
</mapper>