JEPaaS 社区

 找回密码
 立即注册
JECloud低代码平台-官网
查看: 4285|回复: 0

【图表系列】如何获取某个人在某段时间的平均审批时长

[复制链接]

75

主题

77

帖子

355

积分

中级会员

Rank: 3Rank: 3

积分
355
发表于 2021-9-7 15:32:23 | 显示全部楼层 |阅读模式
一、实现效果
如图1所示,展示某段时间的用户的审批效率柱状图,那么这个柱状图是怎么做出来的呢?

1.png
二、实现思路
文字描述,可以配图。
三、具体操作
1、创建JS数据源,如图2所示:
2.png
2、做一个柱状图,载入数据源,配置查询选择。如图3所示:
3.png
3、在创建数据源的时候,ajax调用后端,后端写controller,如图4所示,写controller,service,util:
4.png
4、创建一个菜单,类型是图表,将该图挂到该菜单上即可。
四、相关代码(可选)
1、创建数据源代码
  1. /*必须按照如下格式返回数据,否则数据出错,params(过滤条件)可以省略*/
  2. function(params){
  3.     debugger;
  4.     var results = new Array();
  5.     //获取查询条件
  6.     var startTime = Ext.value(params.startTime,"");
  7.     var endTime = Ext.value(params.endTime,"");
  8.     //如果条件为空,展示样例
  9.     if(JE.isEmpty(startTime) || JE.isEmpty(endTime)) {
  10.         var map = {
  11.         "人员": "张三",
  12.         "平均审批时长": 4.55
  13.         };
  14.         results.push(map);
  15.         var map = {
  16.             "人员": "李四",
  17.             "平均审批时长": 3.4
  18.         };
  19.         results.push(map);
  20.         return {fields: ["人员", "平均审批时长"], data: results};
  21.     }
  22.     //如果查询条件不为空
  23.     //获取全部需要展示的审批人
  24.     var approvers = JE.ajax ({
  25.         url:"/je/load",
  26.         params:{
  27.             tableCode:"JE_CORE_ENDUSER",
  28.             whereSql:"and instr(ROLECODES,'ROLE_2021090126')>0 "
  29.         }
  30.     }).rows;
  31.     //将要展示的人加入到结果集中
  32.     results = new Array();
  33.     var duration = "";
  34.     for (var i = 0; i < approvers.length; i++) {
  35.         //计算审批耗时

  36.         var userId = approvers[i].USERID;
  37.         //查询该用户在该时间段的平均审批时间 格式:小时
  38.         var duration = JE.ajax ({
  39.             url: "/je/project/bfsy/approveInfo/getWfDurationByUserId",
  40.             params: {
  41.                 userId: userId,
  42.                 startTime: startTime,
  43.                 endTime: endTime
  44.             }
  45.         });
  46.         var hours = (duration * 1).toFixed(2);
  47.         var map = {
  48.             "人员":approvers[i].USERNAME,
  49.             "平均审批时长":hours
  50.         }
  51.         results.push(map);
  52.     }

  53.     return {fields: ["人员", "平均审批时长"], data: results};
  54. }
复制代码

五、总结(可选)
这里面的具体步骤如果不会的话,可以根据关键字搜索帖子,具体的做法帖子里面都有。
六、关键字

柱状图,图表


回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|手机版|JEPaaS 低代码平台社区 ( 京ICP备18023569号 )

GMT+8, 2024-5-9 05:34 , Processed in 0.059869 second(s), 23 queries .

Powered by 北京凯特伟业科技有限公司

Copyright © 2001-2021, JEPaaS.COM

快速回复 返回顶部 返回列表