device_id, `days`, start_date, last_error_type, end_date, `status`, date_create, date_update, create_by, update_by, valve_status, valve_button_status INSERT INTO sc_water_meter_error_days ( device_id, `days`, start_date, last_error_type, end_date, `status`, date_create, date_update, create_by, update_by, valve_status, valve_button_status ) VALUES ( #{waterMeterErrorDays.deviceId,jdbcType=BIGINT}, #{waterMeterErrorDays.days,jdbcType=INTEGER}, #{waterMeterErrorDays.startDate,jdbcType=INTEGER}, #{waterMeterErrorDays.lastErrorType,jdbcType=VARCHAR}, #{waterMeterErrorDays.endDate,jdbcType=INTEGER}, #{waterMeterErrorDays.status,jdbcType=INTEGER}, #{waterMeterErrorDays.dateCreate,jdbcType=TIMESTAMP}, #{waterMeterErrorDays.dateUpdate,jdbcType=TIMESTAMP}, #{waterMeterErrorDays.createBy,jdbcType=VARCHAR}, #{waterMeterErrorDays.updateBy,jdbcType=VARCHAR}, #{waterMeterErrorDays.valveStatus,jdbcType=INTEGER}, #{waterMeterErrorDays.valveButtonStatus,jdbcType=INTEGER} ) INSERT INTO sc_water_meter_error_days device_id, `days`, start_date, last_error_type, end_date, `status`, date_create, date_update, create_by, update_by, valve_status, valve_button_status, VALUES #{waterMeterErrorDays.deviceId,jdbcType=BIGINT}, #{waterMeterErrorDays.days,jdbcType=INTEGER}, #{waterMeterErrorDays.startDate,jdbcType=INTEGER}, #{waterMeterErrorDays.lastErrorType,jdbcType=VARCHAR}, #{waterMeterErrorDays.endDate,jdbcType=INTEGER}, #{waterMeterErrorDays.status,jdbcType=INTEGER}, #{waterMeterErrorDays.dateCreate,jdbcType=TIMESTAMP}, #{waterMeterErrorDays.dateUpdate,jdbcType=TIMESTAMP}, #{waterMeterErrorDays.createBy,jdbcType=VARCHAR}, #{waterMeterErrorDays.updateBy,jdbcType=VARCHAR}, #{waterMeterErrorDays.valveStatus,jdbcType=INTEGER}, #{waterMeterErrorDays.valveButtonStatus,jdbcType=INTEGER}, INSERT INTO sc_water_meter_error_days ( device_id, `days`, start_date, last_error_type, end_date, `status`, date_create, date_update, create_by, update_by, valve_status, valve_button_status )VALUES ( #{waterMeterErrorDays.deviceId,jdbcType=BIGINT}, #{waterMeterErrorDays.days,jdbcType=INTEGER}, #{waterMeterErrorDays.startDate,jdbcType=INTEGER}, #{waterMeterErrorDays.lastErrorType,jdbcType=VARCHAR}, #{waterMeterErrorDays.endDate,jdbcType=INTEGER}, #{waterMeterErrorDays.status,jdbcType=INTEGER}, #{waterMeterErrorDays.dateCreate,jdbcType=TIMESTAMP}, #{waterMeterErrorDays.dateUpdate,jdbcType=TIMESTAMP}, #{waterMeterErrorDays.createBy,jdbcType=VARCHAR}, #{waterMeterErrorDays.updateBy,jdbcType=VARCHAR}, #{waterMeterErrorDays.valveStatus,jdbcType=INTEGER}, #{waterMeterErrorDays.valveButtonStatus,jdbcType=INTEGER} ) UPDATE sc_water_meter_error_days `days`= #{waterMeterErrorDays.days,jdbcType=INTEGER}, start_date= #{waterMeterErrorDays.startDate,jdbcType=INTEGER}, last_error_type= #{waterMeterErrorDays.lastErrorType,jdbcType=VARCHAR}, end_date= #{waterMeterErrorDays.endDate,jdbcType=INTEGER}, `status`= #{waterMeterErrorDays.status,jdbcType=INTEGER}, date_create= #{waterMeterErrorDays.dateCreate,jdbcType=TIMESTAMP}, date_update= #{waterMeterErrorDays.dateUpdate,jdbcType=TIMESTAMP}, create_by= #{waterMeterErrorDays.createBy,jdbcType=VARCHAR}, update_by= #{waterMeterErrorDays.updateBy,jdbcType=VARCHAR}, valve_status= #{waterMeterErrorDays.valveStatus,jdbcType=INTEGER}, valve_button_status= #{waterMeterErrorDays.valveButtonStatus,jdbcType=INTEGER} WHERE device_id = #{waterMeterErrorDays.deviceId,jdbcType=BIGINT} UPDATE sc_water_meter_error_days SET days = CASE end_date WHEN DATE_FORMAT(NOW(), '%Y%m%d' ) THEN days WHEN DATE_FORMAT(date_add(NOW(), interval -1 day), '%Y%m%d' ) THEN (days + 1) ELSE 1 END, start_date = CASE WHEN start_date is null THEN DATE_FORMAT(NOW(), '%Y%m%d' ) WHEN end_date DATE_FORMAT(date_add(NOW(), interval -1 day), '%Y%m%d' ) THEN DATE_FORMAT(NOW(), '%Y%m%d' ) ELSE start_date END, end_date = DATE_FORMAT(NOW(), '%Y%m%d' ) ,last_error_type = #{lastErrorType} WHERE device_id = #{deviceId} and status = 1; update sc_water_meter_error_days set days = 0,start_date = null,end_date = null, last_error_type = '' where status = 1 and device_id = #{deviceId} update sc_water_meter_error_days set days = days+1,end_date=DATE_FORMAT(NOW(), '%Y%m%d') where status = 1 and device_id = #{deviceId}