课程说明
▍1.1 课程实现功能
本课程为物联网应用平台设计一个仪表盘首页,包括以下内容:
-
卡片展示设备总数;
-
卡片展示网关总数;
-
卡片展示产品总数;
-
卡片展示产品分组总数;
-
图表展示各运营商的产品统计数量;
-
图表展示各云端协议的统计数量。
▍1.2 课程知识点
本课程涉及到的主要知识点包括:
-
非存储数据库对象的应用;
-
JavaAction中对非存储数据库对象赋值;
-
图表定义开发 (柱状图和饼图,更多图表类型读者自行查看文档);
-
自定义渲染器实现个性化组件。
▍1.3 卡片显示实现思路
-
创建包括4个属性的非存储数据库业务对象;
-
编写JavaAction来汇总业务对象的相关数量;
-
在数据源定义中调用JavaAction生成的逻辑流,自动执行查询获得汇总数量;
-
编写组件渲染器,将逻辑流返回的汇总数量信息显示为卡片的样式。
课程内容
01 创建业务对象
进入应用设计器定义业务对象:
-
名称:数量统计
-
编码:QTY_STATS
-
存储数据库:否
定义整数组件信息:
02 编写JavaAction获取统计数量
仪表盘中设备、网关、产品和产品组的数量需要实时统计出来,通过在逻辑流中的JavaAction统计得出各数量。
1. 定义JavaAction信息如下:
-
名称:汇总设备网关产品设备组数量
-
编码:AllProductsCount
-
返回值类型:List
-
业务对象:数量统计
-
暴露为逻辑流:是
-
逻辑流类型:DataSet
-
DataSet业务对象类型:数量统计
2. JavaAction汇总设备网关产品设备组数量的参数如下:
-
参数名称:dataSetConfig
-
类型:DataSetConfig
-
业务对象:数量统计
保存之后可以看到生成了逻辑流汇总设备网关产品设备组数量。
代码库中打开io/buildrun/engine/briotsrv/action/AllProductsCount.java(可以使用在线的Web IDE,也可以克隆到本地使用其他IDE工具完成),修改executeAction()方法为:
// BEGIN USER CODE ArrayList<QtyStats> qtyArrayList = new ArrayList<QtyStats>(); JavaActionHelper javaActionHelper = context.getCore().getRuntimeManager().getPersistenceManager().getJavaActionHelper(); Long groupQty = (long)javaActionHelper.selectCountByExample(context,new DeviceGroups()); Long productQty = (long)javaActionHelper.selectCountByExample(context,new Products()); Products deviceProduct = new Products(); deviceProduct.setPr