补充化成列表版本号以支持独立导出权限
列表携带当前保存版本身份,导出不再依赖额外的查看权限。服务测试覆盖列表版本号。
| | |
| | | Map<String, Map<String, BigDecimal>> metrics, List<CurrentBatteryField> businessFields, |
| | | Map<Integer, List<ChargeStep>> chargeSteps, Map<Integer, Curve> curves, Map<Integer, Map<Integer, Curve>> stepCurves) { } |
| | | public record Matrix(List<Item> items, List<Integer> cycleNos) { } |
| | | public record Summary(long id, String name, String creator, long createdAt, String testName, String batteryGroup) { } |
| | | public record Summary(long id, String name, String creator, long createdAt, String testName, String batteryGroup, int versionNo) { } |
| | | |
| | | /** 列表来源名称取自已保存版本,测试删除后仍保留筛选与识别信息。 */ |
| | | public List<Summary> list() |
| | | { |
| | | return reports.list().stream().map(summary -> { |
| | | var sources = items(JSON.parseObject(reports.get(summary.id()).snapshotJson())); |
| | | var version = reports.get(summary.id()); |
| | | var sources = items(JSON.parseObject(version.snapshotJson())); |
| | | return new Summary(summary.id(), summary.name(), summary.creator(), summary.createdAt(), |
| | | String.join("、", sources.stream().map(item -> item.source().name()).distinct().toList()), |
| | | String.join("、", sources.stream().map(item -> item.source().batteryGroup()).distinct().toList())); |
| | | String.join("、", sources.stream().map(item -> item.source().batteryGroup()).distinct().toList()), version.versionNo()); |
| | | }).toList(); |
| | | } |
| | | |
| | |
| | | assertEquals(250, values.getBigDecimal("1|11|1|capacity1v").intValueExact()); |
| | | assertEquals(50, values.getBigDecimal("1|11|1|capacity1vf").intValueExact()); |
| | | assertEquals(5, saved.getJSONArray("items").getJSONObject(0).getJSONArray("businessFields").size()); |
| | | assertEquals(1, service.list().get(0).versionNo()); |
| | | clearInvocations(tests, data); |
| | | assertEquals(values, JSON.parseObject(JSON.toJSONString(service.get(saved.getLongValue("id"), null))).getJSONObject("calculatedValues")); |
| | | verifyNoInteractions(tests, data); |