| | |
| | | private String sql(String statement) { return statement.replace("t_compare_report", "t_" + type + "_report"); } |
| | | |
| | | public record Summary(long id, String name, String creator, long createdAt) { } |
| | | /** 仅供需要从快照提取列表展示字段的化成服务使用;普通报表列表不返回快照。 */ |
| | | public record SummarySnapshot(long id, String name, String creator, long createdAt, int versionNo, String snapshotJson) { } |
| | | public record Version(Summary report, int versionNo, String snapshotJson, String operatorName, long versionCreatedAt, String changeSummary) { } |
| | | public record History(int versionNo, String operatorName, long createdAt, String changeSummary) { } |
| | | |
| | |
| | | (rs, index) -> new Summary(rs.getLong(1), rs.getString(2), rs.getString(3), rs.getTimestamp(4).getTime())); |
| | | } |
| | | |
| | | public List<SummarySnapshot> listWithSnapshots() |
| | | { |
| | | return jdbc.query(sql("select r.report_id, r.report_name, r.creator_name, r.created_at_utc, v.version_no, v.snapshot_json " |
| | | + "from t_compare_report r join t_compare_report_version v on v.report_id=r.report_id " |
| | | + "and v.version_no=(select max(v2.version_no) from t_compare_report_version v2 where v2.report_id=r.report_id) " |
| | | + "order by r.created_at_utc desc, r.report_id desc"), |
| | | (rs, index) -> new SummarySnapshot(rs.getLong(1), rs.getString(2), rs.getString(3), rs.getTimestamp(4).getTime(), rs.getInt(5), rs.getString(6))); |
| | | } |
| | | |
| | | /** 重读最新完整版本;来源不存在不影响结果。 */ |
| | | public Version get(long id) |
| | | { return get(id, null); } |