a.ID as "id" ,a.TENANT_ID as "tenantId" ,a.DEVICE_ID as "deviceId" ,a.COMPANY_ORG_ID as "companyOrgId" ,a.DEPT_ORG_ID as "deptOrgId" ,a.ALARM_TYPE as "alarmType" ,a.ATTRIBUTE_ID as "attributeId" ,a.ALARM_VALUE as "alarmValue" ,a.ALARM_CONTENT as "alarmContent" ,a.ALARM_START_TIME as "alarmStartTime" ,a.ALARM_END_TIME as "alarmEndTime" ,a.STATE as "state" ,a.OP_STATE as "opState" ,a.REMARK as "remark" ,a.STATUS as "status" ,a.DATE_CREATE as "dateCreate" ,a.CREATE_BY as "createBy" ,a.DATE_UPDATE as "dateUpdate" ,a.UPDATE_BY as "updateBy" ,a.MIN_VALUE as "minValue" ,a.MAX_VALUE as "maxValue" ,timestampdiff(MINUTE,ifnull(a.ALARM_END_TIME,now()),a.ALARM_START_TIME) as "duration" /*,(case when ALARM_END_TIME is not null then timestampdiff(MINUTE,a.ALARM_END_TIME,a.ALARM_START_TIME) else null end ) as "duration"*/ ,att.`NAME` as "attributeName" ,a.SCENE_NAME as "sceneName" ,d.DEVICE_NAME as "deviceName" ,t.DEVICE_TYPE as "deviceType" ,d.ADDRESS as "address" ,d.POINT_X as "pointX" ,d.POINT_Y as "pointY" ,ast.id as "alarmSettingId" /*,ast.ALARM_CONDITION +" " +ast.ALARM_VALUE as "alermRule"*/ ,concat(ifnull(ast.ALARM_CONDITION,''),ifnull(ast.ALARM_VALUE,'')) as "alermRule" ,att.UNIT as "unit" a.ID as "id" ,a.STATE as "state" ,a.OP_STATE as "opState" ,a.SCENE_NAME as "sceneName" ,d.DEVICE_NAME as "deviceName" ,t.DEVICE_TYPE as "deviceType" ,a.ALARM_TYPE as "alarmType" ,att.`NAME` as "attributeName" ,a.ALARM_START_TIME as "alarmStartTime" ,d.ADDRESS as "address" ,d.POINT_X as "pointX" ,d.POINT_Y as "pointY" ,concat(a.ALARM_VALUE,ifnull(att.unit,'')) as "alarmValue" ,a.ALARM_CONTENT as "alarmContent" a.ID as "id" ,a.STATE as "state" ,a.OP_STATE as "opState" ,a.SCENE_NAME as "sceneName" ,d.DEVICE_NAME as "deviceName" ,t.DEVICE_TYPE as "deviceType" ,a.ALARM_TYPE as "alarmType" ,att.`NAME` as "attributeName" ,a.ALARM_START_TIME as "alarmStartTime" ,d.ADDRESS as "address" ,d.POINT_X as "pointX" ,d.POINT_Y as "pointY" ,concat(a.MIN_VALUE,ifnull(att.unit,'')) as "minValue" ,concat(a.MAX_VALUE,ifnull(att.unit,''))as "maxValue" ,ast.id as "alarmSettingId" ,concat(ifnull(ast.ALARM_CONDITION,''),ifnull(ast.ALARM_VALUE,''),ifnull(att.unit,'')) as "alermRule" ,a.ALARM_END_TIME as "alarmEndTime" ,concat(concat(timestampdiff(SECOND,a.ALARM_START_TIME,ifnull(a.ALARM_END_TIME,now())) div 3600,'时'), concat(timestampdiff(SECOND,a.ALARM_START_TIME,ifnull(a.ALARM_END_TIME,now())) mod 3600 div 60,'分'), concat(timestampdiff(SECOND,a.ALARM_START_TIME,ifnull(a.ALARM_END_TIME,now())) mod 60,'秒')) as "duration" left join sms_device d on a.DEVICE_ID =d.id and d.`STATUS` = 1 left join sms_device_type t on d.DEVICE_TYPE_ID =t.ID left join sms_alarm_setting ast on ast.id= a.alarm_setting_id left join sms_device_attribute att on att.id=a.ATTRIBUTE_ID INSERT INTO sms_alarm_details ( TENANT_ID , PARENT_SCENE_ID, PARENT_SCENE_NAME, SCENE_ID, SCENE_NAME, DEVICE_ID , COMPANY_ORG_ID , DEPT_ORG_ID , ALARM_TYPE , ATTRIBUTE_ID , ALARM_VALUE , ALARM_CONTENT , ALARM_START_TIME , ALARM_END_TIME , STATE , OP_STATE , REMARK , STATUS , DATE_CREATE , CREATE_BY , DATE_UPDATE , UPDATE_BY , MIN_VALUE, MAX_VALUE, ALARM_SETTING_ID ) VALUES ( #{tenantId} , #{parentSceneId} ,#{parentSceneName} ,#{sceneId} ,#{sceneName} , #{deviceId} , #{companyOrgId} , #{deptOrgId} , #{alarmType} , #{attributeId} , #{alarmValue} , #{alarmContent} , #{alarmStartTime} , #{alarmEndTime} , #{state} , #{opState} , #{remark} , #{status} , #{dateCreate} , #{createBy} , #{dateUpdate} , #{updateBy},#{minValue} ,#{maxValue}, #{alarmSettingId} ) INSERT INTO sms_alarm_details ( TENANT_ID , PARENT_SCENE_ID, PARENT_SCENE_NAME, SCENE_ID, SCENE_NAME, DEVICE_ID , COMPANY_ORG_ID , DEPT_ORG_ID , ALARM_TYPE , ATTRIBUTE_ID , ALARM_VALUE , ALARM_CONTENT , ALARM_START_TIME , ALARM_END_TIME , STATE , OP_STATE , REMARK , STATUS , DATE_CREATE , CREATE_BY , DATE_UPDATE , UPDATE_BY, MIN_VALUE, MAX_VALUE,ALARM_SETTING_ID ) values ( #{item.tenantId} , #{item.parentSceneId} ,#{item.parentSceneName} ,#{item.sceneId} ,#{item.sceneName} , #{item.deviceId} , #{item.companyOrgId} , #{item.deptOrgId} , #{item.alarmType} , #{item.attributeId} , #{item.alarmValue} , #{item.alarmContent} , #{item.alarmStartTime} , #{item.alarmEndTime} , #{item.state} , #{item.opState} , #{item.remark} , #{item.status} , #{item.dateCreate} , #{item.createBy} , #{item.dateUpdate} , #{item.updateBy} ,#{item.minValue} ,#{item.maxValue},#{item.alarmSettingId}) UPDATE sms_alarm_details TENANT_ID = #{tenantId}, DEVICE_ID = #{deviceId}, COMPANY_ORG_ID = #{companyOrgId}, DEPT_ORG_ID = #{deptOrgId}, ALARM_TYPE = #{alarmType}, ATTRIBUTE_ID = #{attributeId}, ALARM_VALUE = #{alarmValue}, ALARM_CONTENT = #{alarmContent}, ALARM_START_TIME = #{alarmStartTime}, ALARM_START_TIME = #{alarmStartTime}, ALARM_END_TIME = #{alarmEndTime}, STATE = #{state}, OP_STATE = #{opState}, REMARK = #{remark}, STATUS = #{status}, DATE_UPDATE = #{dateUpdate}, UPDATE_BY = #{updateBy}, MIN_VALUE = #{minValue}, MAX_VALUE = #{maxValue}, ALARM_SETTING_ID = #{alarmSettingId} WHERE ID = #{id}; UPDATE sms_alarm_details set STATUS = 0 where id = #{id} UPDATE sms_alarm_details set STATUS = 0 where id in #{item} UPDATE sms_alarm_details set op_state = #{opState} , DATE_UPDATE = #{dateUpdate}, UPDATE_BY = #{updateBy} where id = #{id} update sms_device set LAST_UPDATE_TIME =#{lastUpdateTime} where id=#{deviceId} update sms_alarm_details set is_send_message =1 where id in #{item.alarmId}