perf: 使用tableName和devId替换sensor

iec104
huangfeng 8 months ago
parent e955f12817
commit 262f0dfcc4

@ -14,13 +14,13 @@ public interface DataService {
List<ColumnModel> getDataTableColumns(String tableName) throws Exception;
OnePage<Map<String, Object>> getData(NSensor sensor, List<ModevTypePoint> points, ConditionModel model) throws Exception;
OnePage<Map<String, Object>> getData(String tableName, Integer devId, List<ModevTypePoint> points, ConditionModel model) throws Exception;
void clearAllBind();
List<Map<String, Object>> getLatestData(NSensor sensor, List<ModevTypePoint> points, Date start) throws Exception;
List<Map<String, Object>> getLatestData(String tableName, Integer devId, List<ModevTypePoint> points, Date start) throws Exception;
Map<String, Object> getLastOneData(NSensor sensor, ModevTypePoint point) throws Exception;
Map<String, Object> getLastOneData(String tableName, Integer devId, ModevTypePoint point) throws Exception;
void insertData(String tableName, Integer eqmid, String time, String colname, String value);
void insertData(String tableName, Integer devId, String time, String colname, String value);
}

@ -110,7 +110,7 @@ public class DataServiceImpl implements DataService {
@Override
public OnePage<Map<String, Object>> getData(NSensor sensor, List<ModevTypePoint> points, ConditionModel model) throws Exception {
public OnePage<Map<String, Object>> getData(String tableName, Integer devId, List<ModevTypePoint> points, ConditionModel model) throws Exception {
if (model.getNumPerDay() != null && model.getNumPerDay() > 0) {
OnePage<Map<String, Object>> page;
long totalDays = 0;
@ -167,12 +167,12 @@ public class DataServiceImpl implements DataService {
}
// 查询
page = this.doSqlData(sensor, points, newmodel);
page = this.doSqlData(tableName, devId, points, newmodel);
page.setTotal(totalDays * model.getNumPerDay());
} else {
// 全量
page = this.doSqlData(sensor, points, model);
page = this.doSqlData(tableName, devId, points, model);
}
// 从数据里每天抽取num条
@ -184,18 +184,18 @@ public class DataServiceImpl implements DataService {
return page;
} else {
// 不抽取数据
OnePage<Map<String, Object>> page = this.doSqlData(sensor, points, model);
OnePage<Map<String, Object>> page = this.doSqlData(tableName, devId, points, model);
return page;
}
}
private OnePage<Map<String, Object>> doSqlData(NSensor sensor, List<ModevTypePoint> points, ConditionModel model) {
String devField = DataTable.getDevidField(sensor.getTableName());
String timeField = this.getTimeField(sensor.getTableName());
private OnePage<Map<String, Object>> doSqlData(String tableName, Integer devId, List<ModevTypePoint> points, ConditionModel model) {
String devField = DataTable.getDevidField(tableName);
String timeField = this.getTimeField(tableName);
OnePage result = new OnePage();
String sqlFrom = " FROM " + sensor.getTableName();
String sqlWhere = " WHERE " + devField + "=" + sensor.getDevId();
String sqlFrom = " FROM " + tableName;
String sqlWhere = " WHERE " + devField + "=" + devId;
if (model.getStartTime() != null) {
if (model.isExcludeStartTime()) {
sqlWhere = sqlWhere + " AND " + timeField + " > '" + DateUtil.format(model.getStartTime()) + "'";
@ -244,7 +244,7 @@ public class DataServiceImpl implements DataService {
}
@Override
public List<Map<String, Object>> getLatestData(NSensor sensor, List<ModevTypePoint> points, Date start) throws Exception {
public List<Map<String, Object>> getLatestData(String tableName, Integer devId, List<ModevTypePoint> points, Date start) throws Exception {
ConditionModel model = new ConditionModel();
model.setPageSize(1000);
model.setPageNum(1);
@ -252,12 +252,12 @@ public class DataServiceImpl implements DataService {
model.setExcludeStartTime(true);
model.setTimeAsc(true);
OnePage<Map<String, Object>> page = this.doSqlData(sensor, points, model);
OnePage<Map<String, Object>> page = this.doSqlData(tableName, devId, points, model);
return page.getContent();
}
@Override
public Map<String, Object> getLastOneData(NSensor sensor, ModevTypePoint point) throws Exception {
public Map<String, Object> getLastOneData(String tableName, Integer devId, ModevTypePoint point) throws Exception {
List<ModevTypePoint> points = new ArrayList<>();
points.add(point);
@ -265,7 +265,7 @@ public class DataServiceImpl implements DataService {
model.setPageSize(1);
model.setPageNum(1);
OnePage<Map<String, Object>> page = this.doSqlData(sensor, points, model);
OnePage<Map<String, Object>> page = this.doSqlData(tableName, devId, points, model);
if (CollectionUtils.isEmpty(page.getContent())) {
return null;
} else {
@ -275,11 +275,11 @@ public class DataServiceImpl implements DataService {
}
@Override
public void insertData(String tableName, Integer eqmid, String time, String colname, String value) {
public void insertData(String tableName, Integer devId, String time, String colname, String value) {
String devField = DataTable.getDevidField(tableName);
String timeField = this.getTimeField(tableName);
String sqlFrom = " FROM " + tableName;
String sqlWhere = " WHERE " + devField + "=" + eqmid + " AND " + timeField + " = '" + time + "'";
String sqlWhere = " WHERE " + devField + "=" + devId + " AND " + timeField + " = '" + time + "'";
String sqlCount = "SELECT count(*)" + sqlFrom + sqlWhere;
Long count = jdbcTemplate.queryForObject(sqlCount, Long.class);
@ -289,7 +289,7 @@ public class DataServiceImpl implements DataService {
jdbcTemplate.execute(sql);
} else {
String sql = "INSERT INTO " + tableName + " (" + devField + ", " + timeField + "," + colname
+ ") VALUES (" + eqmid + ", '" + time + "', " + value + ")";
+ ") VALUES (" + devId + ", '" + time + "', " + value + ")";
jdbcTemplate.execute(sql);
}
}

@ -218,7 +218,7 @@ public class NSensorServiceImpl implements NSensorService {
SensorDetail<Map<String, Object>> result = new SensorDetail();
result.setSensor(sensor);
OnePage<Map<String, Object>> page = dataService.getData(sensor, pointList, model);
OnePage<Map<String, Object>> page = dataService.getData(sensor.getTableName(), sensor.getDevId(), pointList, model);
result.initFrom(page);
for (ModevTypePoint point : pointList) {

@ -58,7 +58,7 @@ public class WarnRuleServiceImpl implements WarnRuleService {
item.setId(null);
item.setLastDTime(null);
NSensor sensor = sensorService.detail(item.getSensorId());
if (sensor == null){
if (sensor == null) {
throw new BusinessException("未找到该装置id=" + item.getSensorId());
}
Optional<ModevTypePoint> optionalModevTypePoint = typePointRepository.findById(item.getModevtypePointId());
@ -66,7 +66,7 @@ public class WarnRuleServiceImpl implements WarnRuleService {
throw new BusinessException("未找到该监测装置类型(" + sensor.getTypeName() + ")的属性点" + item.getModevtypePointId());
}
ModevTypePoint typePoint = optionalModevTypePoint.get();
Map<String, Object> map = dataService.getLastOneData(sensor, typePoint);
Map<String, Object> map = dataService.getLastOneData(sensor.getTableName(), sensor.getDevId(), typePoint);
if (map != null) {
String str = (String) map.get("acquisitionTime");
item.setLastDTime(DateUtil.parse(str));

@ -114,7 +114,7 @@ public class I2syncTask {
}
// 查询最新数据
List<Map<String, Object>> dataList = dataService.getLatestData(sensor, points, record.getLastDTime());
List<Map<String, Object>> dataList = dataService.getLatestData(sensor.getTableName(), sensor.getDevId(), points, record.getLastDTime());
if (CollectionUtils.isEmpty(dataList)) {
return;
}

@ -65,7 +65,7 @@ public class RuleCheckTask {
ModevTypePoint typePoint = rule.getTypePoint();
List<ModevTypePoint> points = new ArrayList<>();
points.add(typePoint);
List<Map<String, Object>> list = dataService.getLatestData(sensor, points, rule.getLastDTime());
List<Map<String, Object>> list = dataService.getLatestData(sensor.getTableName(), sensor.getDevId(), points, rule.getLastDTime());
List<TriggerModel> warnList = rule.checkData(list);
if (warnList != null) {
ruleRepository.save(rule);

Loading…
Cancel
Save