use of org.jumpmind.symmetric.model.OutgoingLoadSummary in project symmetric-ds by JumpMind.
the class OutgoingBatchService method getLoadSummaries.
public List<OutgoingLoadSummary> getLoadSummaries(boolean activeOnly) {
final Map<String, OutgoingLoadSummary> loadSummaries = new TreeMap<String, OutgoingLoadSummary>();
sqlTemplateDirty.query(getSql("getLoadSummariesSql"), new ISqlRowMapper<OutgoingLoadSummary>() {
public OutgoingLoadSummary mapRow(Row rs) {
long loadId = rs.getLong("load_id");
String nodeId = rs.getString("node_id");
String loadNodeId = String.format("%010d-%s", loadId, nodeId);
OutgoingLoadSummary summary = loadSummaries.get(loadNodeId);
if (summary == null) {
summary = new OutgoingLoadSummary();
summary.setLoadId(loadId);
summary.setNodeId(nodeId);
summary.setChannelId(rs.getString("channel_id"));
summary.setCreateBy(rs.getString("create_by"));
loadSummaries.put(loadNodeId, summary);
}
Status status = Status.valueOf(rs.getString("status"));
int count = rs.getInt("cnt");
Date lastUpdateTime = rs.getDateTime("last_update_time");
if (summary.getLastUpdateTime() == null || summary.getLastUpdateTime().before(lastUpdateTime)) {
summary.setLastUpdateTime(lastUpdateTime);
}
Date createTime = rs.getDateTime("create_time");
if (summary.getCreateTime() == null || summary.getCreateTime().after(createTime)) {
summary.setCreateTime(createTime);
}
summary.setReloadBatchCount(summary.getReloadBatchCount() + count);
if (status == Status.OK || status == Status.IG) {
summary.setFinishedBatchCount(summary.getFinishedBatchCount() + count);
} else {
summary.setPendingBatchCount(summary.getPendingBatchCount() + count);
boolean inError = rs.getBoolean("error_flag");
summary.setInError(inError || summary.isInError());
if (status != Status.NE && count == 1) {
summary.setCurrentBatchId(rs.getLong("current_batch_id"));
summary.setCurrentDataEventCount(rs.getLong("current_data_event_count"));
}
}
return null;
}
});
List<OutgoingLoadSummary> loads = new ArrayList<OutgoingLoadSummary>(loadSummaries.values());
Iterator<OutgoingLoadSummary> it = loads.iterator();
while (it.hasNext()) {
OutgoingLoadSummary loadSummary = it.next();
if (activeOnly && !loadSummary.isActive()) {
it.remove();
}
}
return loads;
}