From 7a7420a2be0f03f80492ddbd5a129a37cc682897 Mon Sep 17 00:00:00 2001 From: "review512jwy@163.com" <“review512jwy@163.com”> Date: Sun, 14 Jun 2026 17:45:50 +0800 Subject: [PATCH] =?UTF-8?q?F10=E5=AE=9E=E6=97=B6=E8=A1=A8=EF=BC=8C?= =?UTF-8?q?=E5=90=8C=E6=97=B6=E5=A2=9E=E5=8A=A0=E5=A4=8D=E6=97=A7=EF=BC=88?= =?UTF-8?q?=E8=AE=A4=E4=B8=BA=E6=98=AF=E8=87=AA=E5=8A=A8=E6=81=A2=E5=A4=8D?= =?UTF-8?q?=EF=BC=89?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../sender/dao/DashboardAlertDao.java | 2 +- .../techsor/datacenter/sender/dao/F10Dao.java | 142 ++++++++++++++++++ .../datacenter/sender/service/F10Service.java | 13 +- 3 files changed, 153 insertions(+), 4 deletions(-) diff --git a/src/main/java/com/techsor/datacenter/sender/dao/DashboardAlertDao.java b/src/main/java/com/techsor/datacenter/sender/dao/DashboardAlertDao.java index bf065d7..3c9230a 100644 --- a/src/main/java/com/techsor/datacenter/sender/dao/DashboardAlertDao.java +++ b/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 diff --git a/src/main/java/com/techsor/datacenter/sender/dao/F10Dao.java b/src/main/java/com/techsor/datacenter/sender/dao/F10Dao.java index 800ec90..3240d47 100644 --- a/src/main/java/com/techsor/datacenter/sender/dao/F10Dao.java +++ b/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 (" + diff --git a/src/main/java/com/techsor/datacenter/sender/service/F10Service.java b/src/main/java/com/techsor/datacenter/sender/service/F10Service.java index 7d3498a..82cc18c 100644 --- a/src/main/java/com/techsor/datacenter/sender/service/F10Service.java +++ b/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); }