diff --git a/src/main/java/com/techsor/datacenter/sender/controllers/MainReceiverController.java b/src/main/java/com/techsor/datacenter/sender/controllers/MainReceiverController.java index a5bfcaa..33cc406 100644 --- a/src/main/java/com/techsor/datacenter/sender/controllers/MainReceiverController.java +++ b/src/main/java/com/techsor/datacenter/sender/controllers/MainReceiverController.java @@ -5,7 +5,6 @@ import com.google.gson.Gson; import com.techsor.datacenter.sender.components.CommonOpt; import com.techsor.datacenter.sender.config.DataSourceContextHolder; import com.techsor.datacenter.sender.constants.CompanyConstants; -import com.techsor.datacenter.sender.dao.CsdjLogDao; import com.techsor.datacenter.sender.entitiy.*; import com.techsor.datacenter.sender.entitiy.csdj.CsdjEntity; import com.techsor.datacenter.sender.entitiy.f10.RedisStreamEntity; @@ -80,9 +79,6 @@ public class MainReceiverController { @Resource private IDataProcessService dataProcessService; - @Resource - private CsdjLogDao csdjLogDao; - @RequestMapping(value = "generic/process", method = RequestMethod.POST) public JsonResponse processReceiver(@RequestBody ProcessRAWEntity rawEntity){ logger.warn("DataSrcCode:{},Content:{}",new Object[]{rawEntity.getDataSrcCode(),rawEntity.getContent()}); @@ -223,13 +219,6 @@ public class MainReceiverController { //处理数据,转发数据 String resultJson=""; try{ - //存入 csdj_log 表 - csdjLogDao.insertCsdjLog( - csdjEntity.getTerminalId(), - csdjEntity.getData(), - System.currentTimeMillis() - ); - csdjService.handle(csdjEntity); }catch (Exception e){ logger.error("csdjProcess error", e); diff --git a/src/main/java/com/techsor/datacenter/sender/dao/CsdjDao.java b/src/main/java/com/techsor/datacenter/sender/dao/CsdjDao.java index 3a9e8a3..a4440b9 100644 --- a/src/main/java/com/techsor/datacenter/sender/dao/CsdjDao.java +++ b/src/main/java/com/techsor/datacenter/sender/dao/CsdjDao.java @@ -14,6 +14,11 @@ public class CsdjDao { @Resource private JdbcTemplate jdbcTemplate; + public void insertCsdjLog(String terminalId, String rawHex, Long createdAt) { + String sql = "INSERT INTO csdj_log (terminal_id, raw_hex, created_at) VALUES (?, ?, ?)"; + jdbcTemplate.update(sql, terminalId, rawHex, createdAt); + } + /** * 插入CSDJ告警历史记录 * @param csdjAlarmHistory 告警历史对象 diff --git a/src/main/java/com/techsor/datacenter/sender/dao/CsdjLogDao.java b/src/main/java/com/techsor/datacenter/sender/dao/CsdjLogDao.java deleted file mode 100644 index d61627f..0000000 --- a/src/main/java/com/techsor/datacenter/sender/dao/CsdjLogDao.java +++ /dev/null @@ -1,20 +0,0 @@ - -package com.techsor.datacenter.sender.dao; - -import org.springframework.jdbc.core.JdbcTemplate; -import org.springframework.stereotype.Component; - -import jakarta.annotation.Resource; - -@Component -public class CsdjLogDao { - - @Resource - private JdbcTemplate jdbcTemplate; - - public void insertCsdjLog(String terminalId, String rawHex, Long createdAt) { - String sql = "INSERT INTO csdj_log (terminal_id, raw_hex, created_at) VALUES (?, ?, ?)"; - jdbcTemplate.update(sql, terminalId, rawHex, createdAt); - } -} - diff --git a/src/main/java/com/techsor/datacenter/sender/entitiy/csdj/CsdjEntity.java b/src/main/java/com/techsor/datacenter/sender/entitiy/csdj/CsdjEntity.java index 7c6d2f4..2631fdd 100644 --- a/src/main/java/com/techsor/datacenter/sender/entitiy/csdj/CsdjEntity.java +++ b/src/main/java/com/techsor/datacenter/sender/entitiy/csdj/CsdjEntity.java @@ -7,6 +7,6 @@ import java.io.Serializable; @Data public class CsdjEntity implements Serializable { private String terminalId; - private String ts; + private Long ts; private String data; } diff --git a/src/main/java/com/techsor/datacenter/sender/service/CsdjService.java b/src/main/java/com/techsor/datacenter/sender/service/CsdjService.java index 554ec19..f3f984d 100644 --- a/src/main/java/com/techsor/datacenter/sender/service/CsdjService.java +++ b/src/main/java/com/techsor/datacenter/sender/service/CsdjService.java @@ -59,6 +59,27 @@ public class CsdjService { log.info("[CSDJ] 开始处理 CSDJ 数据,terminalId:{}, data:{}", csdjEntity.getTerminalId(), csdjEntity.getData()); + String terminalId = csdjEntity.getTerminalId(); + + String topCompanyId= commonOpt.getTopCompanyId(terminalId); + if (topCompanyId==null || topCompanyId.equals("0")){ + log.error("no companyId is found========================>>>> {}",terminalId); + return; + } + DataSourceContextHolder.clearCurrentDataSourceKey(); + DataSourceContextHolder.setCurrentDataSourceKey("dataSourceForCompany_"+topCompanyId); + + log.info("Use datasource for company:"+topCompanyId); + + long currentTs = System.currentTimeMillis(); + + //存入 csdj_log 表 + csdjDao.insertCsdjLog( + csdjEntity.getTerminalId(), + csdjEntity.getData(), + csdjEntity.getTs() + ); + // 1. 解析通報数据 CsdjNotificationData notificationData = csdjNotificationParser.parse(csdjEntity.getData()); if (notificationData == null) { @@ -88,6 +109,20 @@ public class CsdjService { /** * 处理デジタル入力端子的告警/恢复 + * + * 告警: + * { + * "terminalId": "TEST002", + * "data": "00 0E 07 00 25 06 20 0E 00 00 00 C0 01 08 01 00 00 00 00", + * "ts": "1782272698000" + * } + * + * 恢复: + * { + * "terminalId": "TEST002", + * "data": "00 0E 07 00 25 06 20 0E 00 00 00 C0 01 00 01 00 00 00 00", + * "ts": "1782272698000" + * } */ private void processDigitalTerminal(CsdjEntity csdjEntity, CsdjNotificationData notificationData, CsdjDigitalInputTerminal terminal) { String terminalId = csdjEntity.getTerminalId(); @@ -116,23 +151,12 @@ public class CsdjService { // terminalId, terminalNo, stateText); // } - String topCompanyId= commonOpt.getTopCompanyId(terminalId); - if (topCompanyId==null || topCompanyId.equals("0")){ - log.error("no companyId is found========================>>>> {}",terminalId); - return; - } - DataSourceContextHolder.clearCurrentDataSourceKey(); - DataSourceContextHolder.setCurrentDataSourceKey("dataSourceForCompany_"+topCompanyId); - - log.info("Use datasource for company:"+topCompanyId); List deviceEntity=this.deviceDao.getDeviceInfoByDeviceId(terminalId); this.guavaRedisCache.incrementDailyDeviceIdCount(terminalId); if (CollectionUtil.isEmpty(deviceEntity)){ log.error("no deviceEntity is found========================>>>> {}",terminalId); return; } - - long currentTs = System.currentTimeMillis(); Long companyId = deviceEntity.get(0).getCompanyId(); @@ -162,7 +186,7 @@ public class CsdjService { dataProcessService.setAlertBlock(deviceInfoVO); entity.setAlertBlock(deviceInfoVO.getAlertBlock()); - entity.setReceive_ts(currentTs); + entity.setReceive_ts(csdjEntity.getTs()); Long dbId = dashboardAlertDao.insertAlertHistory(entity, 3); csdjAlarmHistory.setAlertHistoryId(dbId);