yeg
2026-09-09 403eed51f3687479448ef31028004ee6f04e7bdc
补充化成列表版本号以支持独立导出权限

列表携带当前保存版本身份,导出不再依赖额外的查看权限。服务测试覆盖列表版本号。
2个文件已修改
8 ■■■■■ 已修改文件
battery-business/src/main/java/com/battery/business/report/FormationReportService.java 7 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-admin/src/test/java/com/battery/business/report/FormationRealReportTest.java 1 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
battery-business/src/main/java/com/battery/business/report/FormationReportService.java
@@ -51,16 +51,17 @@
            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();
    }
ruoyi-admin/src/test/java/com/battery/business/report/FormationRealReportTest.java
@@ -71,6 +71,7 @@
        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);