Browse Source

调整cdsj数据入库

master
review512jwy@163.com 3 weeks ago
parent
commit
82aef1a75e
  1. 11
      src/main/java/com/techsor/datacenter/sender/controllers/MainReceiverController.java
  2. 5
      src/main/java/com/techsor/datacenter/sender/dao/CsdjDao.java
  3. 20
      src/main/java/com/techsor/datacenter/sender/dao/CsdjLogDao.java
  4. 2
      src/main/java/com/techsor/datacenter/sender/entitiy/csdj/CsdjEntity.java
  5. 48
      src/main/java/com/techsor/datacenter/sender/service/CsdjService.java

11
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.components.CommonOpt;
import com.techsor.datacenter.sender.config.DataSourceContextHolder; import com.techsor.datacenter.sender.config.DataSourceContextHolder;
import com.techsor.datacenter.sender.constants.CompanyConstants; 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.*;
import com.techsor.datacenter.sender.entitiy.csdj.CsdjEntity; import com.techsor.datacenter.sender.entitiy.csdj.CsdjEntity;
import com.techsor.datacenter.sender.entitiy.f10.RedisStreamEntity; import com.techsor.datacenter.sender.entitiy.f10.RedisStreamEntity;
@ -80,9 +79,6 @@ public class MainReceiverController {
@Resource @Resource
private IDataProcessService dataProcessService; private IDataProcessService dataProcessService;
@Resource
private CsdjLogDao csdjLogDao;
@RequestMapping(value = "generic/process", method = RequestMethod.POST) @RequestMapping(value = "generic/process", method = RequestMethod.POST)
public JsonResponse processReceiver(@RequestBody ProcessRAWEntity rawEntity){ public JsonResponse processReceiver(@RequestBody ProcessRAWEntity rawEntity){
logger.warn("DataSrcCode:{},Content:{}",new Object[]{rawEntity.getDataSrcCode(),rawEntity.getContent()}); logger.warn("DataSrcCode:{},Content:{}",new Object[]{rawEntity.getDataSrcCode(),rawEntity.getContent()});
@ -223,13 +219,6 @@ public class MainReceiverController {
//处理数据,转发数据 //处理数据,转发数据
String resultJson=""; String resultJson="";
try{ try{
//存入 csdj_log 表
csdjLogDao.insertCsdjLog(
csdjEntity.getTerminalId(),
csdjEntity.getData(),
System.currentTimeMillis()
);
csdjService.handle(csdjEntity); csdjService.handle(csdjEntity);
}catch (Exception e){ }catch (Exception e){
logger.error("csdjProcess error", e); logger.error("csdjProcess error", e);

5
src/main/java/com/techsor/datacenter/sender/dao/CsdjDao.java

@ -14,6 +14,11 @@ public class CsdjDao {
@Resource @Resource
private JdbcTemplate jdbcTemplate; 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告警历史记录 * 插入CSDJ告警历史记录
* @param csdjAlarmHistory 告警历史对象 * @param csdjAlarmHistory 告警历史对象

20
src/main/java/com/techsor/datacenter/sender/dao/CsdjLogDao.java

@ -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);
}
}

2
src/main/java/com/techsor/datacenter/sender/entitiy/csdj/CsdjEntity.java

@ -7,6 +7,6 @@ import java.io.Serializable;
@Data @Data
public class CsdjEntity implements Serializable { public class CsdjEntity implements Serializable {
private String terminalId; private String terminalId;
private String ts; private Long ts;
private String data; private String data;
} }

48
src/main/java/com/techsor/datacenter/sender/service/CsdjService.java

@ -59,6 +59,27 @@ public class CsdjService {
log.info("[CSDJ] 开始处理 CSDJ 数据,terminalId:{}, data:{}", log.info("[CSDJ] 开始处理 CSDJ 数据,terminalId:{}, data:{}",
csdjEntity.getTerminalId(), csdjEntity.getData()); 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. 解析通報数据 // 1. 解析通報数据
CsdjNotificationData notificationData = csdjNotificationParser.parse(csdjEntity.getData()); CsdjNotificationData notificationData = csdjNotificationParser.parse(csdjEntity.getData());
if (notificationData == null) { 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) { private void processDigitalTerminal(CsdjEntity csdjEntity, CsdjNotificationData notificationData, CsdjDigitalInputTerminal terminal) {
String terminalId = csdjEntity.getTerminalId(); String terminalId = csdjEntity.getTerminalId();
@ -116,15 +151,6 @@ public class CsdjService {
// terminalId, terminalNo, stateText); // 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> deviceEntity=this.deviceDao.getDeviceInfoByDeviceId(terminalId); List<DeviceEntity> deviceEntity=this.deviceDao.getDeviceInfoByDeviceId(terminalId);
this.guavaRedisCache.incrementDailyDeviceIdCount(terminalId); this.guavaRedisCache.incrementDailyDeviceIdCount(terminalId);
if (CollectionUtil.isEmpty(deviceEntity)){ if (CollectionUtil.isEmpty(deviceEntity)){
@ -132,8 +158,6 @@ public class CsdjService {
return; return;
} }
long currentTs = System.currentTimeMillis();
Long companyId = deviceEntity.get(0).getCompanyId(); Long companyId = deviceEntity.get(0).getCompanyId();
CsdjAlarmHistory csdjAlarmHistory = new CsdjAlarmHistory(); CsdjAlarmHistory csdjAlarmHistory = new CsdjAlarmHistory();
@ -162,7 +186,7 @@ public class CsdjService {
dataProcessService.setAlertBlock(deviceInfoVO); dataProcessService.setAlertBlock(deviceInfoVO);
entity.setAlertBlock(deviceInfoVO.getAlertBlock()); entity.setAlertBlock(deviceInfoVO.getAlertBlock());
entity.setReceive_ts(currentTs); entity.setReceive_ts(csdjEntity.getTs());
Long dbId = dashboardAlertDao.insertAlertHistory(entity, 3); Long dbId = dashboardAlertDao.insertAlertHistory(entity, 3);
csdjAlarmHistory.setAlertHistoryId(dbId); csdjAlarmHistory.setAlertHistoryId(dbId);

Loading…
Cancel
Save