TreeviewCopyright © aleen42 all right reserved, powered by aleen42
计量设备管理应用
1.创建业务对象以及实体
按照如下表格中的信息创建对应的业务对象、实体、枚举。
1.1.枚举
1.1.1.设备分类
枚举值 | 枚举名称 |
---|---|
1 | 几何量计量 |
2 | 温度计量 |
3 | 力学计量 |
4 | 电磁计量 |
5 | 无线电计量 |
6 | 时间频率计量 |
7 | 电离辐射计量 |
8 | 光学计量 |
9 | 声学计量 |
10 | 化学计量 |
1.1.2.巡检方式
枚举值 | 枚举名称 |
---|---|
1 | 现场 |
2 | 邮寄 |
1.2.设备信息
表名称 | 设备信息 | 表编码 | device_info | |
---|---|---|---|---|
字段描述 | ||||
行号 | 编码 | 名称 | 类型 | 引用 |
1 | device_name | 设备名称 | 文本 | |
2 | device_class | 设备分类 | 单选 | 设备分类枚举 |
3 | device_sf | 设备所在省 | 文本 |
1.3.巡检计划
表名称 | 巡检计划 | 表编码 | inspect_plan | |
---|---|---|---|---|
字段描述 | ||||
行号 | 编码 | 名称 | 类型 | 引用 |
1 | device_name | 设备名称 | 单选引用 | 设备信息 |
2 | plan_name | 计划名称 | 文本 | |
3 | start_date | 计划开始日期 | 日期 | |
4 | end_date | 计划结束日期 | 日期 | |
5 | period | 周期 | 数值 |
表名称 | 计划详情 | 表编码 | plan_detail | |
---|---|---|---|---|
字段描述 | ||||
行号 | 编码 | 名称 | 类型 | 引用 |
1 | inspect_date | 巡检日期 | 日期 | |
2 | inspect_person | 巡检人 | 单选引用 | 员工 |
3 | inspect_type | 巡检方式 | 单选 | 巡检方式枚举 |
4 | inspect_plan_id | 巡检计划 | 单选引用 |
2.创建页面
2.1.设备信息
2.1.1.创建单卡页面、参照
2.1.2.设置字段不为空
2.2.巡检计划
2.2.1.创建主子页面
2.2.2.设置子表以及字段不为空
2.2.3.添加页面规则
规则一:开始日期和结束日期值变化时,自动计算周期
规则二:保存时,巡检日期必须位于计划期间
3.调度任务
每天早晨八点执行调度任务。
任务内容:巡检日期前一天给巡检人发送友空间待办消息,提醒需要巡检。
由于培训环境没有许可录入员工信息,无法实现发送消息功能,此处只需要实现将符合条件的数据查询出来即可。没有调度任务权限的同学可以通过添加按钮触发后端函数3.1.创建调度任务
3.2.创建后端函数
后代函数代码示例:
let AbstractTrigger = require('AbstractTrigger');
class MyTrigger extends AbstractTrigger {
execute(context,param){
//查询所有计划信息
var sql = "select t.plan_name,t.id,inspect_date,inspect_person from AT1782356C1DD80005.AT1782356C1DD80005.plan_detail inner join"
+ " AT1782356C1DD80005.AT1782356C1DD80005.inspect_plan t on t.id=inspect_plan_id"
var res = ObjectStore.queryByYonQL(sql);
//找出所有离巡检日期还有一天的记录
var arr = [];
for (var i = 0; i < res.length; i++) {
var inspectDate = res[i].inspect_date;
//获取当前时间
var inspectTime = Date.parse(new Date(inspectDate));
var nowtime = Date.parse(new Date());
if(inspectTime-nowtime > 0){
const days = parseInt((inspectTime-nowtime)/(1000*3600*24))
if(1>=days){
res[i].days = days;
arr.push(res[i]);
}
}
}
//抛出异常信息,可用作调试
//throw new Error(JSON.stringify(arr));
return {};
}
}
exports({"entryPoint":MyTrigger});
4.创建语义模型
4.1.导入分析数据
点击下载:设备信息数据.xlsx 、巡检计划数据.xlsx
通过页面导入功能将数据导入即可,也可以自己手动录入数据。
4.2.业务对象支持报表场景
此处有几分钟的延迟,如果业务对象中查不到,稍微等几分钟再查看4.3.选择字段
4.4.语义模型新增字段(枚举转换)
枚举字段必须新增转换字段,否则显示的都是枚举值
CASE [巡检方式] WHEN '1' THEN '邮寄' WHEN '2' THEN '现场' ELSE '无' END
CASE [设备分类] WHEN '1' THEN '几何量计量' WHEN '2' THEN '温度计量' WHEN '3' THEN '力学计量'
WHEN '4' THEN '电磁计量' WHEN '5' THEN '无线电计量' WHEN '6' THEN '时间频率计量'
WHEN '7' THEN '电离辐射计量' WHEN '8' THEN '光学计量' WHEN '9' THEN '声学计量' WHEN '10' THEN '化学计量'
ELSE '无' END
5.创建仪表板
5.1 报表
设置扩展区域、交叉点
设置数据格式
设置筛选条件
设置过滤条件
设置样式
5.2.仪表板
饼图:巡检计划按设备分类比例
指标卡:巡检计划总数
时钟:当前时间
地图:巡检计划按设备地图分布
折线图:巡检计划按设备统计
分组表:巡检计划明细
环图:巡检方式比例
柱图:巡检人比例