Browse Source

F10实时表,同时增加复旧(认为是自动恢复)

master
review512jwy@163.com 1 month ago
parent
commit
7a7420a2be
  1. 2
      src/main/java/com/techsor/datacenter/sender/dao/DashboardAlertDao.java
  2. 142
      src/main/java/com/techsor/datacenter/sender/dao/F10Dao.java
  3. 13
      src/main/java/com/techsor/datacenter/sender/service/F10Service.java

2
src/main/java/com/techsor/datacenter/sender/dao/DashboardAlertDao.java

@ -217,7 +217,7 @@ public class DashboardAlertDao {
Long alertHistoryId = alertHistoryDTO.getId();
// 更新 alert_history
String updateAlertHistorySql = "UPDATE alert_history SET handle_status = 4, alert_status = 1 WHERE id = ?";
String updateAlertHistorySql = "UPDATE alert_history SET handle_status = 4, alert_status = 1 WHERE id = ? and handle_status != 3 ";
jdbcTemplate.update(updateAlertHistorySql, alertHistoryId);
// 更新 alert_handle_history

142
src/main/java/com/techsor/datacenter/sender/dao/F10Dao.java

@ -6,6 +6,8 @@ import jakarta.annotation.Resource;
import org.springframework.jdbc.core.JdbcTemplate;
import org.springframework.stereotype.Component;
import java.sql.Timestamp;
@Component
public class F10Dao {
@ -81,6 +83,146 @@ public class F10Dao {
);
}
public void saveOrUpdateF10Realtime(F10JournalLog f10JournalLog) {
String sql =
"INSERT INTO f10_journal_realtime (" +
"device_id, company_id, raw_hex, raw_text, serial_no, mode, " +
"signal_seq, receive_date, receive_time, receive_timestamp, " +
"channel_no, test_flag, block_no, block_name, " +
"signal_type1, signal_type2, signal_label, signal_status, " +
"course_no, area_code, course_code, standby_name, physical_addr, " +
"customer_name, phone, remark, display_color, error_reason, line_type, area_name, " +
"send_date, send_time, customer_no, display_data1, display_data2, " +
"instruction_flag, signal_code, card_no, card_type, mansion_building, mansion_room, option_field, " +
"expired_flag, alert_history_id, created_at, created_time, update_at, update_time" +
") VALUES (" +
"?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?" +
")" +
" ON DUPLICATE KEY UPDATE " +
"company_id = VALUES(company_id), " +
"raw_hex = VALUES(raw_hex), " +
"raw_text = VALUES(raw_text), " +
"serial_no = VALUES(serial_no), " +
"mode = VALUES(mode), " +
"signal_seq = VALUES(signal_seq), " +
"receive_date = VALUES(receive_date), " +
"receive_time = VALUES(receive_time), " +
"receive_timestamp = VALUES(receive_timestamp), " +
"channel_no = VALUES(channel_no), " +
"test_flag = VALUES(test_flag), " +
"block_no = VALUES(block_no), " +
"block_name = VALUES(block_name), " +
"signal_type1 = VALUES(signal_type1), " +
"signal_type2 = VALUES(signal_type2), " +
"signal_label = VALUES(signal_label), " +
"signal_status = VALUES(signal_status), " +
"course_no = VALUES(course_no), " +
"area_code = VALUES(area_code), " +
"course_code = VALUES(course_code), " +
"standby_name = VALUES(standby_name), " +
"physical_addr = VALUES(physical_addr), " +
"customer_name = VALUES(customer_name), " +
"phone = VALUES(phone), " +
"remark = VALUES(remark), " +
"display_color = VALUES(display_color), " +
"error_reason = VALUES(error_reason), " +
"line_type = VALUES(line_type), " +
"area_name = VALUES(area_name), " +
"send_date = VALUES(send_date), " +
"send_time = VALUES(send_time), " +
"customer_no = VALUES(customer_no), " +
"display_data1 = VALUES(display_data1), " +
"display_data2 = VALUES(display_data2), " +
"instruction_flag = VALUES(instruction_flag), " +
"signal_code = VALUES(signal_code), " +
"card_no = VALUES(card_no), " +
"card_type = VALUES(card_type), " +
"mansion_building = VALUES(mansion_building), " +
"mansion_room = VALUES(mansion_room), " +
"option_field = VALUES(option_field), " +
"expired_flag = VALUES(expired_flag), " +
// alert_history_id:null 不覆盖原值
"alert_history_id = IFNULL(VALUES(alert_history_id), alert_history_id), " +
// 创建时间只在首次INSERT生效(不更新)
"created_at = created_at, " +
"created_time = created_time, " +
// 每次都更新
"update_at = VALUES(update_at), " +
"update_time = VALUES(update_time)";
long now = System.currentTimeMillis();
Timestamp nowTime = new Timestamp(now);
jdbcTemplate.update(sql,
f10JournalLog.getDeviceId(),
f10JournalLog.getCompanyId(),
f10JournalLog.getRawHex(),
f10JournalLog.getRawText(),
f10JournalLog.getSerialNo(),
f10JournalLog.getMode(),
f10JournalLog.getSignalSeq(),
f10JournalLog.getReceiveDate(),
f10JournalLog.getReceiveTime(),
f10JournalLog.getReceiveTimestamp(),
f10JournalLog.getChannelNo(),
f10JournalLog.getTestFlag(),
f10JournalLog.getBlockNo(),
f10JournalLog.getBlockName(),
f10JournalLog.getSignalType1(),
f10JournalLog.getSignalType2(),
f10JournalLog.getSignalLabel(),
f10JournalLog.getSignalStatus(),
f10JournalLog.getCourseNo(),
f10JournalLog.getAreaCode(),
f10JournalLog.getCourseCode(),
f10JournalLog.getStandbyName(),
f10JournalLog.getPhysicalAddr(),
f10JournalLog.getCustomerName(),
f10JournalLog.getPhone(),
f10JournalLog.getRemark(),
f10JournalLog.getDisplayColor(),
f10JournalLog.getErrorReason(),
f10JournalLog.getLineType(),
f10JournalLog.getAreaName(),
f10JournalLog.getSendDate(),
f10JournalLog.getSendTime(),
f10JournalLog.getCustomerNo(),
f10JournalLog.getDisplayData1(),
f10JournalLog.getDisplayData2(),
f10JournalLog.getInstructionFlag(),
f10JournalLog.getSignalCode(),
f10JournalLog.getCardNo(),
f10JournalLog.getCardType(),
f10JournalLog.getMansionBuilding(),
f10JournalLog.getMansionRoom(),
f10JournalLog.getOptionField(),
f10JournalLog.getExpiredFlag(),
f10JournalLog.getAlertHistoryId(),
// created_at / created_time(仅首次插入生效)
now,
nowTime,
// update_at / update_time(每次更新)
now,
nowTime
);
}
public void insertF10ProcessingData(F10ProcessingData f10ProcessingData) {
String sql = "INSERT IGNORE INTO f10_processing_log (" +

13
src/main/java/com/techsor/datacenter/sender/service/F10Service.java

@ -201,9 +201,16 @@ public class F10Service {
if (!isExpired){
DynamodbEntity entity = new DynamodbEntity();
entity.setDeviceId(f10JournalLog.getDeviceId());
entity.setReceive_ts(currentTs);
Long dbId = dashboardAlertDao.insertAlertHistory(entity, 2);
f10JournalLog.setAlertHistoryId(dbId);
if ("1".equals(f10JournalLog.getInstructionFlag())){
entity.setReceive_ts(currentTs);
Long dbId = dashboardAlertDao.insertAlertHistory(entity, 2);
f10JournalLog.setAlertHistoryId(dbId);
} else {
dashboardAlertDao.updateLatestAlertToAutoRecovered(entity);
}
//实时表
f10Dao.saveOrUpdateF10Realtime(f10JournalLog);
}

Loading…
Cancel
Save