数据可视化-数据可视化数据获取示例

场景

根据测试商品,汇总数据通过测试统计商品透出到数据可视化图表数据;

  • 统计商品类目的最大库存以及平均售价信息

测试商品模型

@Model.model(DemoItem.MODEL_MODEL)
@Model(displayName = "测试商品", labelFields = "name")
@Model.Code(sequence = "SEQ", prefix = "IT", size = 8)
public class DemoItem extends CodeModel {

    private static final long serialVersionUID = -5104390780952631397L;

    public static final String MODEL_MODEL = "demo.DemoItem";

    @Field.String
    @Field(displayName = "商品名称")
    private String name;

    @Field.Html
    @Field(displayName = "商品描述")
    private String description;

    @Field.Money(D=2)
    @Field(displayName = "商品价格")
    private BigDecimal itemPrice;

    @Field.Integer
    @Field(displayName = "商品库存")
    private Long inventoryQuantity;

    ....

测试商品统计

@Model.model(DemoItemStatistics.MODEL_MODEL)
@Model(displayName = "测试商品统计", labelFields = "name")
public class DemoItemStatistics extends IdModel {

    private static final long serialVersionUID = 5626273740800455515L;

    public static final String MODEL_MODEL = "demo.DemoItemStatistics";

    @Field.String
    @Field(displayName = "类目名称")
    private String categoryName;

    @Field.Integer
    @Field(displayName = "商品库存")
    private Long inventoryQuantity;

    @Field.Money
    @Field(displayName = "商品价格")
    private BigDecimal itemPrice;
}

自定义商品类目统计数据

【注意】 图表设计器能获取到的接口需指定:category = FunctionCategoryEnum.QUERY_PAGE

@Function.Advanced(type = FunctionTypeEnum.QUERY, displayName = "商品统计列表", category = FunctionCategoryEnum.QUERY_PAGE)
@Function.fun(FunctionConstants.queryPage)
@Function(openLevel = {FunctionOpenEnum.LOCAL, FunctionOpenEnum.REMOTE, FunctionOpenEnum.API})
public Pagination<DemoItemStatistics> queryPage(Pagination<DemoItemStatistics> page, IWrapper<DemoItemStatistics> queryWrapper) {
    List<DemoItemStatistics> list = new ArrayList<>();

        List<DemoItem> items = demoItemService.queryListByWrapper(Pops.<DemoItem>lambdaQuery()
                .from(DemoItem.MODEL_MODEL)
                .eq(DemoItem::getStatus, ItemStatusEnum.ACTIVE));
        if(CollectionUtils.isEmpty(items)) return page;
        Map<Long, List<DemoItem>> itemMap = items.stream().collect(Collectors.groupingBy(DemoItem::getCategoryId));

        for (Map.Entry<Long, List<DemoItem>> longListEntry : itemMap.entrySet()) {
            long categoryId = longListEntry.getKey();
            List<DemoItem> demoItems = longListEntry.getValue();

            DemoItemCategory itemCategory = new DemoItemCategory().queryById(categoryId);
            DemoItemStatistics itemStatistics = new DemoItemStatistics();
            itemStatistics.setCategoryName(itemCategory.getName());
            //该类目商品的平均价
            itemStatistics.setItemPrice(BigDecimal.valueOf(demoItems.stream().mapToDouble(t->t.getItemPrice().floatValue()).average().getAsDouble()));
            //该类目商品的最大库存
            itemStatistics.setInventoryQuantity(demoItems.stream().mapToLong(t->t.getInventoryQuantity()).max().getAsLong());
            list.add(itemStatistics);
        }
        page.setContent(list);
        Integer count = CollectionUtils.isNotEmpty(list)?list.size():0;
        page.setSize(count.longValue());
    return page;
}

场景图表效果

数据可视化-数据可视化数据获取示例

Oinone社区 作者:数式-海波原创文章,如若转载,请注明出处:https://doc.oinone.top/designer/datadesigner/7349.html

访问Oinone官网:https://www.oinone.top获取数式Oinone低代码应用平台体验

(0)
数式-海波的头像数式-海波数式管理员
上一篇 2024年5月18日 上午10:33
下一篇 2024年5月18日 下午3:14

相关推荐

  • 数据可视化中图表的低无一体

    介绍 数据可视化提供了自定义图表模板的功能,以满足现有图表模板无法满足业务需求的情况。 如何使用 点击数据可视化页面头部的“图表模板” 点击创建按钮后弹出图表模板表单,填写后提交保存 找到刚刚创建的图表模板,点击操作栏中的“低无一体”按钮 点击弹窗底部的“生成sdk”按钮 上一步操作完成后会重新刷新页面,再次找到该条数据,点击“低无一体”按钮,再次进来可以看…

    2023年11月1日
    1600
  • 数据可视化的导入导出

    目录 依赖包安装GraphQL的工具登录gql导出生成json文件子业务工程中导入示例代码 简介 通过调用导出接口,将设计器的设计数据与元数据打包导出到文件中。提供了download/export两类接口。 依赖包 <dependency> <groupId>pro.shushi.pamirs.metadata.manager<…

    2024年5月16日
    2500
  • 如何添加数据可视化运行时依赖

    前端 package.json中新增依赖 @kunlun/data-designer-open-pc,版本跟@kunlun/dependencies的填一样 src/main.ts内导入依赖 // 导入代码放在VueOioProvider方法执行前即可 import '@kunlun/data-designer-open-pc'; 后端 …

    2024年5月15日
    1400
  • 数据可视化-项目中数据可视化的实现引入

    依赖包 在业务工程的pom中增加数据可视化运行的依赖包 pro.shushi.pamirs.data.visualization pamirs-data-visualization-core 数据可视化设计图表、报表和数据大屏 在数据可视化中设计好业务合适的图表,并且发布以后,在界面设计器中可以嵌入该图表同样处理的还有报表 在界面设计器中在页面中透出图表、报…

    2024年5月18日
    1600

发表回复

登录后才能评论