<?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.RiskEventConfigDao">
	<!-- 查询 -->
	<select id="findRiskVehicleList"
			parameterType="com.zw.platform.domain.riskManagement.query.RiskEventConfigQuery"
			resultType="java.util.HashMap">
		select DISTINCT rvc.id,v.id as vehicleId,v.brand,
		v.create_data_time as createDataTime,GROUP_CONCAT(DISTINCT a.name SEPARATOR ',') as groupName,
		GROUP_CONCAT(DISTINCT vc.id SEPARATOR ',') AS vehicleConfigId
		from zw_m_vehicle_info v
		inner join zw_m_config c ON c.vehicle_id = v.id AND c.flag = 1
		inner join zw_m_assignment_vehicle av on v.id = av.vehicle_id and av.flag = 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_device_info de ON de.id = c.device_id AND de.flag = 1
		left join zw_m_risk_vehicle rvc on v.id = rvc.vehicle_id and rvc.flag = 1
		LEFT JOIN zw_m_risk_vehicle_config_zh vc ON v.id = vc.vehicle_id AND vc.flag = 1
		where v.flag = 1
		AND de.device_type = 1
		AND au.user_id = #{userId}
		AND a.org_id IN
		<foreach item="item" collection="groupList" open="(" separator=","
				 close=")">
			#{item}
		</foreach>
		<if test="param != null">
			<if test="param.simpleQueryParam != null and param.simpleQueryParam!=''">
				AND v.brand LIKE CONCAT('%',#{param.simpleQueryParam},'%')
			</if>
			<if test="param.groupId != null and param.groupId!=''">
				AND ag.group_id = #{param.groupId}
			</if>
			<if test="param.assignmentId != null and param.assignmentId!=''">
				AND a.id = #{param.assignmentId}
			</if>
		</if>
		group by v.id
		ORDER BY v.create_data_time DESC,v.id DESC
	</select>
	<select id="findRiskVehicleListRedis"
			parameterType="list"
			resultType="java.util.Map">
		select DISTINCT rvc.id,v.id as vehicleId,v.brand,
		v.create_data_time as createDataTime,
		GROUP_CONCAT(DISTINCT vc.id SEPARATOR ',') AS vehicleConfigId
		from zw_m_vehicle_info v
		left join zw_m_risk_vehicle rvc on v.id = rvc.vehicle_id and rvc.flag = 1
		LEFT JOIN zw_m_risk_vehicle_config_zh vc ON v.id = vc.vehicle_id AND vc.flag = 1
		where v.flag = 1
		AND v.id IN
		<foreach item="item" collection="list" open="(" separator=","
				 close=")">
			#{item}
		</foreach>
		group by v.id
		ORDER BY v.create_data_time DESC,v.id DESC
	</select>
	<!-- 新增车辆事件绑定表 （平台风险计算相关）-->
	<insert id="addRiskVehicle" parameterType="com.zw.platform.domain.riskManagement.form.RiskEventVehicleForm">
		INSERT INTO zw_m_risk_vehicle (
		id, vehicle_id, fatigue_p, fatigue_t, distract_p, distract_t,collision_p,
		collision_t, abnormal_p, abnormal_t,flag, create_data_time,
		create_data_username
		)
		VALUES(
		#{id}, #{vehicleId}, #{fatigueP}, #{fatigueT}, #{distractP},#{distractT},
		#{collisionP},
		#{collisionT}, #{abnormalP}, #{abnormalT},#{flag}, #{createDataTime},
		#{createDataUsername}
		)
	</insert>

	<select id="findAllRiskConfig" resultType="String">
		select distinct  v.id from zw_m_risk_vehicle_config_zh r
			inner join zw_m_vehicle_info v on v.id  = r.vehicle_id and r.flag=1 and v.flag =1
	</select>

	<!-- 新增车辆事件绑定表 （下发参数相关）-->
	<insert id="addRiskVehicleConfig"
			parameterType="com.zw.platform.domain.riskManagement.form.RiskEventVehicleConfigForm">
		INSERT INTO zw_m_risk_vehicle_config_zh (id,vehicle_id,risk_id,low_speed_level,low_speed,
		high_speed_level,high_speed,
		low_speed_recording,high_speed_recording,video_recording_time,photograph_number ,photograph_time
		,one_level_alarm_enable ,
		two_level_alarm_enable ,road_mark_alarm_enable ,initiative_capture_alarm_enable ,one_level_voice_enable ,
		two_level_voice_enable,voice_enable ,initiative_capture_voice_enable ,time_interval ,check_switch,
		timing_photo_interval ,distance_photo_interval,timing_photo
		,distance_capture,timing_capture,number_threshold,dsm_adas_time_interval,
		flag,create_data_time,create_data_username )
		VALUES
		<foreach collection="list" item="item" index="index"
				 separator=",">
			(#{item.id}, #{item.vehicleId}, #{item.riskId}, #{item.lowSpeedLevel}, #{item.lowSpeed},
			#{item.highSpeedLevel}, #{item.highSpeed},
			#{item.lowSpeedRecording},#{item.highSpeedRecording},#{item.videoRecordingTime}, #{item.photographNumber},
			#{item.photographTime},#{item.oneLevelAlarmEnable},
			#{item.twoLevelAlarmEnable},#{item.roadMarkAlarmEnable},#{item.initiativeCaptureAlarmEnable},#{item.oneLevelVoiceEnable},
			#{item.twoLevelVoiceEnable},#{item.voiceEnable},#{item.initiativeCaptureVoiceEnable},#{item.timeInterval},#{item.checkSwitch},#{item.timingPhotoInterval},
			#{item.distancePhotoInterval},#{item.timingPhoto},#{item.distanceCapture},#{item.timingCapture},#{item.numberThreshold},#{item.dsmAdasTimeInterval},
			1,#{item.createDataTime}, #{item.createDataUsername})
		</foreach>
	</insert>

	<!-- 查询 -->
	<select id="findRiskSettingByVid"
			parameterType="string"
			resultType="com.zw.platform.domain.riskManagement.form.RiskEventVehicleConfigForm">
		select c.id,c.vehicle_id,c.risk_id,c.low_speed_level,c.low_speed, c.high_speed_level,c.high_speed,c.low_speed_recording,
		c.high_speed_recording,c.video_recording_time,c.photograph_number ,c.photograph_time ,c.one_level_alarm_enable ,
		c.two_level_alarm_enable ,c.road_mark_alarm_enable ,c.initiative_capture_alarm_enable ,c.one_level_voice_enable ,
		c.two_level_voice_enable,c.voice_enable ,c.initiative_capture_voice_enable ,c.time_interval ,c.check_switch,
		c.timing_photo_interval ,c.distance_photo_interval,c.timing_photo ,c.distance_capture,c.timing_capture ,c.number_threshold,c.dsm_adas_time_interval,
		r.id riskVehicleId, r.fatigue_p,r.fatigue_t,r.distract_p,r.distract_t,r.collision_p,r.collision_t,r.abnormal_p,r.abnormal_t,r.camera_resolution,r.video_resolution,
		r.alarm_volume,r.sensitivity
		FROM zw_m_risk_vehicle_config_zh c
		INNER JOIN zw_m_risk_vehicle r ON c.vehicle_id = r.vehicle_id AND r.flag=1
		WHERE c.flag=1  and c.vehicle_id = #{vehicleId}
	</select>

	<!-- 查询 -->
	<select id="findReferVehicle"
			parameterType="string"
			resultType="com.zw.platform.domain.riskManagement.form.RiskEventVehicleConfigForm">
		SELECT DISTINCT con.vehicle_id,v.brand
		FROM zw_m_risk_vehicle_config_zh con
		INNER JOIN zw_m_risk_vehicle r ON con.vehicle_id = r.vehicle_id AND r.flag=1
		INNER JOIN zw_m_vehicle_info v ON con.vehicle_id = v.id AND v.flag = 1
		INNER JOIN zw_m_config c ON c.vehicle_id = v.id AND c.flag = 1
		INNER JOIN zw_m_assignment_vehicle av ON v.id = av.vehicle_id AND av.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 a ON a.id = au.assignment_id AND a.flag = 1
		WHERE con.flag=1
		AND au.user_id = #{userId}
		AND a.org_id IN
		<foreach item="item" collection="groupList" open="(" separator="," close=")">
			#{item}
		</foreach>
		ORDER BY v.create_data_time DESC
	</select>

	<!-- 批量删除 -->
	<delete id="deleteRiskVehicleByBatch">
		update zw_m_risk_vehicle set flag = 0 WHERE vehicle_id in
		<foreach item="idItem" collection="vehicleIds" open="(" separator=","
				 close=")">
			#{idItem}
		</foreach>
	</delete>

	<!-- 批量删除 -->
	<delete id="deleteRiskVehicleConfigByBatch">
		update zw_m_risk_vehicle_config_zh set flag =0 WHERE vehicle_id in
		<foreach item="idItem" collection="vehicleIds" open="(" separator=","
				 close=")">
			#{idItem}
		</foreach>
	</delete>

	<!-- 新增车辆风险设置绑定表-->
	<insert id="addRiskVehicleByBatch" parameterType="com.zw.platform.domain.riskManagement.form.RiskEventVehicleForm">
		INSERT INTO zw_m_risk_vehicle (
		id, vehicle_id, fatigue_p, fatigue_t, distract_p, distract_t,
		collision_p,collision_t, abnormal_p, abnormal_t,camera_resolution,video_resolution,alarm_volume,sensitivity,
		flag, create_data_time,
		create_data_username
		)
		VALUES
		<foreach collection="list" item="item" index="index"
				 separator=",">
			(#{item.id}, #{item.vehicleId}, #{item.fatigueP}, #{item.fatigueT}, #{item.distractP}, #{item.distractT},
			#{item.collisionP}, #{item.collisionT},#{item.abnormalP},
			#{item.abnormalT},#{item.cameraResolution},#{item.videoResolution},#{item.alarmVolume},#{item.sensitivity},
			1,#{item.createDataTime},
			#{item.createDataUsername})
		</foreach>
	</insert>

	<select id="findRiskAllSetting"
			parameterType="string"
			resultType="com.zw.platform.domain.riskManagement.form.RiskEventVehicleConfigForm">
		SELECT  c.id,c.vehicle_id,c.risk_id,c.low_speed_level,c.low_speed, c.high_speed_level,c.high_speed,c.video_recording_time,c.photograph_number,
		c.photograph_time,r.id riskVehicleId, r.fatigue_p,r.fatigue_t,r.distract_p,r.distract_t,r.collision_p,r.collision_t,r.abnormal_p,r.abnormal_t
		FROM zw_m_risk_vehicle_config_zh c
		INNER JOIN zw_m_risk_vehicle r ON c.vehicle_id = r.vehicle_id AND r.flag=1
		WHERE c.flag=1
	</select>

	<select id="findRiskEventConfigByMap" parameterType="map"
			resultType="com.zw.platform.domain.riskManagement.form.RiskEventVehicleConfigForm">
		select * from zw_m_risk_vehicle_config_zh where 1=1
		<if test="vehicleId !=null and vehicleId != ''">
			and vehicle_id = #{vehicleId}
		</if>
		<if test="riskId !=null and riskId != ''">
			and risk_id =#{riskId}
		</if>
		<if test="id !=null and id != ''">
			and id =#{id}
		</if>
		and flag=1
	</select>

	<select id="findDsmRiskSettingByVid"
			resultType="com.zw.platform.domain.riskManagement.form.RiskEventVehicleConfigForm">
		select c.id,c.vehicle_id,c.risk_id,c.low_speed_level,c.low_speed, c.high_speed_level,c.high_speed,c.low_speed_recording,
		c.high_speed_recording,c.video_recording_time,c.photograph_number ,c.photograph_time ,c.one_level_alarm_enable ,
		c.two_level_alarm_enable ,c.road_mark_alarm_enable ,c.initiative_capture_alarm_enable ,c.one_level_voice_enable ,
		c.two_level_voice_enable,c.voice_enable ,c.initiative_capture_voice_enable ,c.time_interval ,c.check_switch,
		c.timing_photo_interval ,c.distance_photo_interval,c.timing_photo ,c.distance_capture,c.timing_capture ,c.number_threshold,c.dsm_adas_time_interval,
		r.id riskVehicleId, r.fatigue_p,r.fatigue_t,r.distract_p,r.distract_t,r.collision_p,r.collision_t,r.abnormal_p,r.abnormal_t,r.camera_resolution,r.video_resolution,
		r.alarm_volume,r.sensitivity
		FROM zw_m_risk_vehicle_config_zh c
		INNER JOIN zw_m_risk_vehicle r ON c.vehicle_id = r.vehicle_id AND r.flag=1
		WHERE c.flag=1  and c.vehicle_id = #{vehicleId} and c.risk_id BETWEEN 6502 and 6512
	</select>

	<select id="findAdasRiskSettingByVid"
			resultType="com.zw.platform.domain.riskManagement.form.RiskEventVehicleConfigForm">
		select c.id,c.vehicle_id,c.risk_id,c.low_speed_level,c.low_speed, c.high_speed_level,c.high_speed,c.low_speed_recording,
		c.high_speed_recording,c.video_recording_time,c.photograph_number ,c.photograph_time ,c.one_level_alarm_enable ,
		c.two_level_alarm_enable ,c.road_mark_alarm_enable ,c.initiative_capture_alarm_enable ,c.one_level_voice_enable ,
		c.two_level_voice_enable,c.voice_enable ,c.initiative_capture_voice_enable ,c.time_interval ,c.check_switch,
		c.timing_photo_interval ,c.distance_photo_interval,c.timing_photo ,c.distance_capture,c.timing_capture ,c.number_threshold,c.dsm_adas_time_interval,
		r.id riskVehicleId, r.fatigue_p,r.fatigue_t,r.distract_p,r.distract_t,r.collision_p,r.collision_t,r.abnormal_p,r.abnormal_t,r.camera_resolution,r.video_resolution,
		r.alarm_volume,r.sensitivity
		FROM zw_m_risk_vehicle_config_zh c
		INNER JOIN zw_m_risk_vehicle r ON c.vehicle_id = r.vehicle_id AND r.flag=1
		WHERE c.flag=1  and c.vehicle_id = #{vehicleId} and c.risk_id BETWEEN 6401 and 6410
	</select>
	<!-- 批量删除dsm的参数设置信息-->
	<delete id="deleteDsmRiskVehicleConfig">
		update zw_m_risk_vehicle_config_zh set flag =0 WHERE vehicle_id =#{vehicleId}
		and risk_id like '65%'

	</delete>

	<!--删除车辆绑定信息公共属性分辨率等-->
	<delete id="deleteDsmRiskVehicleBind">
		update zw_m_risk_vehicle set flag = 0 WHERE vehicle_id =#{vehicleId}

	</delete>

	<!-- 批量删除adas的参数设置信息-->
	<delete id="deleteAdasRiskVehicleConfig">
		update zw_m_risk_vehicle_config_zh set flag =0 WHERE vehicle_id =#{vehicleId}
		and risk_id like '64%'

	</delete>

	<select id="getRiskEventVehicleConfigFormByVehicleId" parameterType="string"
			resultType="int">
		SELECT COUNT(*) FROM zw_m_risk_vehicle_config_zh c WHERE c.flag = 1 AND c.vehicle_id = #{vehicleId}
	</select>
</mapper>
