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}