|
|
@ -86,8 +86,66 @@ public class DataServiceImpl implements DataService {
|
|
|
|
schema = list.get(0);
|
|
|
|
schema = list.get(0);
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
@Override
|
|
|
|
@Override
|
|
|
|
public OnePage<Map<String, Object>> getData(NSensor sensor, List<ModevTypePoint> points, ConditionModel model) {
|
|
|
|
public OnePage<Map<String, Object>> getData(NSensor sensor, List<ModevTypePoint> points, ConditionModel model) throws Exception {
|
|
|
|
|
|
|
|
if (model.getNumPerDay() != null && model.getNumPerDay() > 0) {
|
|
|
|
|
|
|
|
OnePage<Map<String, Object>> page;
|
|
|
|
|
|
|
|
long totalDays = 0;
|
|
|
|
|
|
|
|
// 需要抽取数据
|
|
|
|
|
|
|
|
if (model.getPageNum() != null || model.getPageSize() != null) {
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
// 当前一页
|
|
|
|
|
|
|
|
int dayPerPage = model.getPageSize() / model.getNumPerDay();
|
|
|
|
|
|
|
|
if (dayPerPage < 1) {
|
|
|
|
|
|
|
|
dayPerPage = 1;
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
// 处理开始和结束时间
|
|
|
|
|
|
|
|
Date end = model.getEndTime();
|
|
|
|
|
|
|
|
if (end == null) {
|
|
|
|
|
|
|
|
end = new Date();
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
end = DateUtil.addDay(end, 1);
|
|
|
|
|
|
|
|
end = DateUtil.getDayZero(end);
|
|
|
|
|
|
|
|
model.setEndTime(end);
|
|
|
|
|
|
|
|
if (model.getStartTime() != null) {
|
|
|
|
|
|
|
|
totalDays = DateUtil.getDifferenceInDays(model.getStartTime(), model.getEndTime());
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
if (model.getPageNum() > 1) {
|
|
|
|
|
|
|
|
int p = model.getPageNum() - 1;
|
|
|
|
|
|
|
|
end = DateUtil.addDay(end, -dayPerPage * p);
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
model.setEndTime(end);
|
|
|
|
|
|
|
|
Date start = DateUtil.addDay(end, -dayPerPage);
|
|
|
|
|
|
|
|
if (model.getStartTime() == null || start.compareTo(model.getStartTime()) > 0) {
|
|
|
|
|
|
|
|
model.setStartTime(start);
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
page = this.doSqlData(sensor, points, model);
|
|
|
|
|
|
|
|
page.setTotal(totalDays * model.getNumPerDay());
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
} else {
|
|
|
|
|
|
|
|
// 全量
|
|
|
|
|
|
|
|
page = this.doSqlData(sensor, points, model);
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
// 从数据里每天抽取num条
|
|
|
|
|
|
|
|
List<Map<String, Object>> content = DataUtil.pickNumPerDay(page.getContent(), model.getNumPerDay());
|
|
|
|
|
|
|
|
page.setContent(content);
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
page.setPageNum(model.getPageNum());
|
|
|
|
|
|
|
|
page.setPageSize(content.size());
|
|
|
|
|
|
|
|
return page;
|
|
|
|
|
|
|
|
} else {
|
|
|
|
|
|
|
|
// 不抽取数据
|
|
|
|
|
|
|
|
OnePage<Map<String, Object>> page = this.doSqlData(sensor, points, model);
|
|
|
|
|
|
|
|
return page;
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
private OnePage<Map<String, Object>> doSqlData(NSensor sensor, List<ModevTypePoint> points, ConditionModel model) {
|
|
|
|
String devField = DataTable.getDevidField(sensor.getTableName());
|
|
|
|
String devField = DataTable.getDevidField(sensor.getTableName());
|
|
|
|
String timeField = DataTable.getTimeField(sensor.getTableName());
|
|
|
|
String timeField = DataTable.getTimeField(sensor.getTableName());
|
|
|
|
OnePage result = new OnePage();
|
|
|
|
OnePage result = new OnePage();
|
|
|
@ -126,54 +184,6 @@ public class DataServiceImpl implements DataService {
|
|
|
|
return result;
|
|
|
|
return result;
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
@Override
|
|
|
|
|
|
|
|
public OnePage<Map<String, Object>> getDataByDate(NSensor sensor, List<ModevTypePoint> points, ConditionModel model, int dayPerPage) throws Exception {
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
// 处理开始和结束时间
|
|
|
|
|
|
|
|
Date end = model.getEndTime();
|
|
|
|
|
|
|
|
if (end == null) {
|
|
|
|
|
|
|
|
end = new Date();
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
end = DateUtil.addDay(end, 1);
|
|
|
|
|
|
|
|
end = DateUtil.getDayZero(end);
|
|
|
|
|
|
|
|
model.setEndTime(end);
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Date start = model.getStartTime();
|
|
|
|
|
|
|
|
if (start == null) {
|
|
|
|
|
|
|
|
start = DateUtil.addMonth(new Date(), -1);
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
start = DateUtil.getDayZero(start);
|
|
|
|
|
|
|
|
model.setStartTime(start);
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
long daysBetweenDates = DateUtil.getDifferenceInDays(start, end);
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
// 本次查询的时间范围
|
|
|
|
|
|
|
|
ConditionModel newmodel = new ConditionModel();
|
|
|
|
|
|
|
|
if (daysBetweenDates > dayPerPage) {
|
|
|
|
|
|
|
|
if (model.getPageNum() > 1) {
|
|
|
|
|
|
|
|
int p = model.getPageNum() - 1;
|
|
|
|
|
|
|
|
end = DateUtil.addDay(end, -dayPerPage * p);
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
newmodel.setEndTime(end);
|
|
|
|
|
|
|
|
start = DateUtil.addDay(end, -dayPerPage);
|
|
|
|
|
|
|
|
if (start.compareTo(model.getStartTime()) > 0) {
|
|
|
|
|
|
|
|
newmodel.setStartTime(start);
|
|
|
|
|
|
|
|
} else {
|
|
|
|
|
|
|
|
newmodel.setStartTime(model.getStartTime());
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
OnePage<Map<String, Object>> page = this.getData(sensor, points, newmodel);
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
// 从数据里每天抽取num条
|
|
|
|
|
|
|
|
List<Map<String, Object>> content = DataUtil.pickNumPerDay(page.getContent(), model.getNumPerDay());
|
|
|
|
|
|
|
|
page.setContent(content);
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
page.setPageNum(model.getPageNum());
|
|
|
|
|
|
|
|
page.setPageSize(model.getPageSize());
|
|
|
|
|
|
|
|
page.setTotal(daysBetweenDates * model.getPageSize());
|
|
|
|
|
|
|
|
return page;
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
@Override
|
|
|
|
@Override
|
|
|
|
public void clearAllBind() {
|
|
|
|
public void clearAllBind() {
|
|
|
|
String sql = "UPDATE n_sensor SET icd_id=null";
|
|
|
|
String sql = "UPDATE n_sensor SET icd_id=null";
|
|
|
|