当前位置: 首页 > news >正文

助力工业物联网,工业大数据之工单事实指标需求分析【二十】

文章目录

    • 1:工单事实指标需求分析
    • 2:工单事实指标构建

1:工单事实指标需求分析

  • 目标:掌握DWB层工单事实指标表的需求分析

  • 路径

    • step1:目标需求
    • step2:数据来源
  • 实施

    • 目标需求:基于工单信息统计等待分配工单数量、完成工单数量、处理工单数量、响应时长、服务时长等指标

      字段名说明数据来源
      wo_id工单idone_make_dwd.ciss_service_workorder
      callaccept_id来电受理单idone_make_dwd.ciss_service_workorder
      oil_station_id油站idone_make_dwd.ciss_service_workorder
      userids服务该工单用户id(注意:可能会有多个,以逗号分隔)one_make_dwd.ciss_service_workorder
      wo_num工单单据数量one_make_dwd.ciss_service_workorder
      back_num退回工单数量(如果工单没有被退回,数量是0)one_make_dwd.ciss_service_workorder、ciss_service_workorder_back
      abolished_num已作废工单数量one_make_dwd.ciss_service_workorder
      wait_dispatch_num待派工数量one_make_dwd.ciss_service_workorder、eos_dict_type、eos_dict_entry派工单状态:待派工(status=4)
      alread_complete_num已完工工单数量(已完工、已回访)派工单状态:已完工、已回访(status=5 || 6)
      processing_num正在处理工单数量(待离站、待完工)派工单状态:待离站、待完工(status=3 || 4)
      people_num工单人数数量(一个工单由多人完成)one_make_dwd.ciss_service_workorder、ciss_service_workorder_user默认为1数据预处理;工单用户id是否为空;工单用户id是否为空
      service_total_duration服务总时长(按小时)->从出发到完工时间(leave_time - start_time)one_make_dwd.ciss_service_workorder
      repair_service_duration报修响应时长(按小时)->呼叫中心受理到出发时间(start_time-submit_time)one_make_dwd.ciss_service_workorder
      customer_repair_num客户报修工单数量one_make_dwd.ciss_service_workorder;is_customer_repairs字段
      charg_num收费工单数量one_make_dwd.ciss_service_workorder;is_charg字段
      repair_device_num维修设备数量ciss_service_order、ciss_service_order_device;状态:维修(type=2)
      install_device_num安装设备数据量ciss_service_order、ciss_service_order_device;状态:安装(type=1)
      install_num安装单数量(以下四个单据的数量有可能会有重叠,例如:一个工单有可能有巡检、也有可能有维修)one_make_dwd.ciss_service_install
      repair_num维修单数量ciss4.ciss_service_repair
      remould_num巡检单数量ciss4.ciss_service_remould
      inspection_num改造单数量ciss4.ciss_service_inspection
      workorder_trvl_exp工单差旅费(通过工单id与ciss4.ciss_service_trvl_exp_dtl关联,取submoney5即可)ciss4.ciss_service_trvl_exp_dtl
    • 数据来源

      • ciss_service_workorder:工单详情事实表

        selectid,--工单idcallaccept_id,--来电受理idoil_station_id, --油站idservice_userid,--工程师idstatus,--工单状态submit_time,--提交时间start_time,--开始时间leave_time,--离开时间is_customer_repairs,--是否为报修工单is_charg --是否为收费工单
        from ciss_service_workorder;
        
      • ciss_service_workorder_back:回退工单信息表

        select id,              --回退idworkorder_id     --工单id
        from ciss_service_workorder_back;
        
      • ciss_service_workorder_user:工程师信息表

        selectworkorder_id,  --工单iduserid,        --工程师idusername       --工程师姓名
        from ciss_service_workorder_user; 
        
      • ciss_service_trvl_exp_dtl:差旅费用信息表

        selectwork_order_id, --工单idsubmoney5 --应收会计扣款金额
        from ciss_service_trvl_exp_dtl;
        
      • ciss_service_order:服务单信息表

        selectid,            --服务单idworkorder_id,  --工单idtype           --工单类型,1-安装,2-维修,3-巡检
        from ciss_service_order;
        
      • ciss_service_order_device:服务单设备信息表

        selectid,               --设备idservice_order_id  --服务单id
        from ciss_service_order_device;
        
      • 工单类型合并表

        • ciss_service_install:设备安装信息表

          • 服务单id、安装工单id
        • ciss_service_repair:设备维修信息表

        • 服务单id、维修工单id

        • ciss_service_remould:设备改造信息表

          - 服务单id、改造工单id
          
          • ciss_service_inspection:设备巡检信息表

            • 服务单id、巡检工单id

              selectso.id,                     --服务单idso.workorder_id,           --工单idinstall.id installid,      --安装单idrepair.id repairid,        --维修单idremould.id remouldid,      --改造单idinspection.id inspectionid --巡检单id--服务单信息表
              from one_make_dwd.ciss_service_order so
              left join one_make_dwd.ciss_service_install install on so.id = install.service_id
              left join one_make_dwd.ciss_service_repair repair on so.id = repair.service_idleft join one_make_dwd.ciss_service_remould remould on so.id = remould.service_idleft join one_make_dwd.ciss_service_inspection inspection on so.id = inspection.service_idwhere so.dt = '20210101';
              
  • 小结

    • 掌握DWB层呼叫中心事实指标表的需求分析

2:工单事实指标构建

  • 目标:实现DWB层工单事实指标表的构建

  • 实施

    • 建表

      drop table if exists one_make_dwb.fact_worker_order;
      create table if not exists one_make_dwb.fact_worker_order(wo_id string comment '工单id', callaccept_id string comment '来电受理单id', oil_station_id string comment '油站id', userids string comment '服务该工单用户id(注意:可能会有多个,以逗号分隔)', wo_num bigint comment '工单单据数量', back_num bigint comment '退回工单数量,默认为0', abolished_num bigint comment '已作废工单数量', wait_dispatch_num bigint comment '待派工数量', wait_departure_num bigint comment '待出发数量', alread_complete_num bigint comment '已完工工单数量(已完工、已回访)', processing_num bigint comment '正在处理工单数量(待离站、待完工)', people_num int comment '工单人数数量(一个工单由多人完成)', service_total_duration int comment '服务总时长(按小时),(leave_time - start_time)', repair_service_duration int comment '报修响应时长(按小时),(start_time-submit_time)', customer_repair_num bigint comment '客户报修工单数量', charg_num bigint comment '收费工单数量', repair_device_num bigint comment '维修设备数量', install_device_num bigint comment '安装设备数据量', install_num bigint comment '安装单数量', repair_num bigint comment '维修单数量', remould_num bigint comment '改造单数量', inspection_num bigint comment '巡检单数量', workorder_trvl_exp decimal(20,1) comment '工单差旅费'
      )
      partitioned by (dt string)
      stored as orc
      location '/data/dw/dwb/one_make/fact_worker_order'
      ;
      
    • 抽取

      insert overwrite table one_make_dwb.fact_worker_order partition(dt = '20210101')
      select--工单idwo.id wo_id--来电受理单id, max(callaccept_id) callaccept_id--油站id, max(oil_station_id) oil_station_id--工程师id, max(case when wo.service_userids is not null then concat_ws(',', wo.service_userid, wo.service_userids) else wo.service_userid end) userids--工单单据数量:安装单、维修单……, count(wo.id) wo_num--退回工单数量, count(wob.id) back_num--已作废工单数量, sum(case when status = '-1' then 1 else 0 end) abolished_num--待派发工单数量, sum(case when status = '4' then 1 else 0 end) wait_dispatch_num--待出发工单数量, sum(case when status = '2' then 1 else 0 end) wait_departure_num--已完工工单数量, sum(case when status = '5' then 1 when status = '6' then 1 else 0 end) alread_complete_num--处理中工单数量, sum(case when status = '3' then 1 when status = '4' then 1 else 0 end) processing_num--工单人数, case when count(usr.id) = 0 then 1 else count(usr.id) end people_num--服务总时长, max((wo.leave_time - wo.start_time) / 3600000) service_total_duration--报修响应时长, max((wo.start_time - wo.submit_time) / 3600000) repair_service_duration--客户报修工单数量, sum(case when wo.is_customer_repairs = '2' then 1 else 0 end) customer_repairs--收费工单数量, sum(case when wo.is_charg = '1' then 1 else 0 end) charg_num--维修设备数量, max(case when sod.repair_device_num = 0 then 1 when sod.repair_device_num is null then 0 else sod.repair_device_num end) repair_device_num--安装设备数量, max(case when sod2.install_device_num = 0 then 1 when sod2.install_device_num is null then 0 else sod2.install_device_num end) install_device_num--安装单数量, sum(case when sertype.installid is not null then 1 else 0 end) install_num--维修单数量, sum(case when sertype.repairid is not null then 1 else 0 end) repair_num--改造单数量, sum(case when sertype.remouldid is not null then 1 else 0 end) remould_num--巡检单数量, sum(case when sertype.inspectionid is not null then 1 else 0 end) inspection_num--工单差旅费, max(case when ed.submoney5 is null then 0.0 else ed.submoney5 end) workorder_trvl_exp
      -- 工单信息表
      from one_make_dwd.ciss_service_workorder wo--关联回退工单:回退工单个数left join one_make_dwd.ciss_service_workorder_back wob on wo.id = wob.workorder_id--关联工程师信息表:工程师人数left join one_make_dwd.ciss_service_workorder_user usr on wo.id = usr.workorder_id--关联差旅费用信息表:工单差旅费用left join one_make_dwd.ciss_service_trvl_exp_dtl ed on wo.id = ed.work_order_id--关联维修设备个数信息left join (--统计每个工单的维修设备个数selectso.workorder_id, count(sod.id) repair_device_num--服务单表关联设备表:每个工单对应的设备idfrom one_make_dwd.ciss_service_order soleft join one_make_dwd.ciss_service_order_device sodon so.id = sod.service_order_idwhere so.type = '2' and so.dt='20210101'group by so.workorder_id) sod on wo.id = sod.workorder_id--关联安装设备个数信息left join (--统计每个工单的安装设备个数selectso.workorder_id, count(sod.id) install_device_numfrom one_make_dwd.ciss_service_order soleft join one_make_dwd.ciss_service_order_device sodon so.id = sod.service_order_id--过滤服务单的类型为安装类型的服务单where so.type = '1' and so.dt='20210101'group by so.workorder_id) sod2 on wo.id = sod2.workorder_id--工单类型合并表:安装、维修、改造、巡检单idleft join (selectso.id, so.workorder_id, install.id installid, repair.id repairid, remould.id remouldid, inspection.id inspectionidfrom one_make_dwd.ciss_service_order soleft join one_make_dwd.ciss_service_install install on so.id = install.service_idleft join one_make_dwd.ciss_service_repair repair on so.id = repair.service_idleft join one_make_dwd.ciss_service_remould remould on so.id = remould.service_idleft join one_make_dwd.ciss_service_inspection inspection on so.id = inspection.service_idwhere so.dt = '20210101') sertype on wo.id = sertype.workorder_id
      where wo.dt='20210101'
      group by wo.id
      ;
      
  • 小结

    • 实现DWB层呼叫中心事实指标表的构建

相关文章:

助力工业物联网,工业大数据之工单事实指标需求分析【二十】

文章目录 1:工单事实指标需求分析2:工单事实指标构建 1:工单事实指标需求分析 目标:掌握DWB层工单事实指标表的需求分析 路径 step1:目标需求step2:数据来源 实施 目标需求:基于工单信息统计等…...

python_PyQt5开发工具结构基础

写在前面: 考虑已经陆陆续续在平台写了几篇PyQt5开发的小工具,后续还会继续发布新的新工具,这些工具都基于一个基础结构往上构建,这个基础结构是本人自己开发的习惯,在这里把工具的基础结构代码抽取出来,后…...

【C++】入门基础2

引用 概念 引用不是新定义一个变量,而是给已存在变量取了一个别名,编译器不会为引用变量开辟内存空 间,它和它引用的变量共用同一块内存空间 类型& 引用变量名(对象名) 引用实体; 注意:引用类型必须和引用实体是…...

Reinforcement Learning with Code 【Chapter 8. Value Funtion Approximation】

Reinforcement Learning with Code This note records how the author begin to learn RL. Both theoretical understanding and code practice are presented. Many material are referenced such as ZhaoShiyu’s Mathematical Foundation of Reinforcement Learning, . 文章…...

常用InnoDB参数介绍

常用InnoDB参数介绍 1 状态参数1.1 InnoDB 缓冲池状态监控1.1.1 Innodb_buffer_pool_pages_total1.1.2 Innodb_buffer_pool_pages_data1.1.3 Innodb_buffer_pool_bytes_data1.1.4 Innodb_buffer_pool_pages_dirty1.1.5 Innodb_buffer_pool_bytes_dirty1.1.6 Innodb_buffer_pool…...

云原生网关部署新范式丨 Higress 发布 1.1 版本,支持脱离 K8s 部署

作者:澄潭 版本特性 Higress 1.1.0 版本已经 Release,K8s 环境下可以使用以下命令将 Higress 升级到最新版本: kubectl apply -f https://github.com/alibaba/higress/releases/download/v1.1.0/customresourcedefinitions.gen.yaml helm …...

【通讯录】--C语言

💐 🌸 🌷 🍀 🌹 🌻 🌺 🍁 🍃 🍂 🌿 🍄🍝 🍛 🍤 📃个人主页 :阿然成长日记 …...

通过两种实现方式理解CANoe TC8 demo是如何判断接收的以太网报文里的字段的

假设有一个测试用例,需求是:编写一个测试用例,发送一条icmpv4 echo request报文给DUT,identifier字段设置为10。判断DUT能够回复icmpv4 echo reply报文,且identifier字段值为10。 实现:在canoe的simulation setup界面插入一个test节点,ip地址为:192.168.0.1,mac地址为…...

Mysql- 存储引擎

目录 1.Mysql体系结构 2.存储引擎简介 3.存储引擎特点 InnoDB MyISAM Memory 4.存储引擎选择 1.Mysql体系结构 MySQL整体的逻辑结构可以分为4层: 连接层:进行相关的连接处理、权限控制、安全处理等操作 服务层:服务层负责与客户层进行…...

vite / nuxt3 项目使用define配置/自定义,可以使用process.env.xxx获取的环境变量

每日鸡汤:每个你想要学习的瞬间,都是未来的你向自己求救 首先可以看一下我的这篇文章了解一下关于 process.env 的环境变量。 对于vite项目,在我们初始化项目之后,在浏览器中打印 process.env,只有 NODE_ENV这个变量&…...

在Linux、Ubuntu中跨平台编译ARM(AARCH64)平台的binutils

Binutils 是GNU(https://www.gnu.org/)提供的一组二进制工具的集合。通常,在已经安装了Linux操作系统的个人电脑上,系统就已经自带了这个工具集。但在进行嵌入式开发的时候,可能会用到支持ARM64平台的Binutils,这时就需要用到交叉编译。 此前,在【1】我们已经介绍过Ubun…...

SpringCloudAlibaba微服务实战系列(五)Sentinel1.8.5+Nacos持久化

Sentinel数据持久化 前面介绍Sentinel的流控、熔断降级等功能,同时Sentinel应用也在面临着一个问题:我们在Sentinel后台管理界面中配置了一堆流控、降级规则,但是Sentinel一重启,这些规则全部消失了。那么我们就要考虑Sentinel的持…...

pytest中conftest的用法以及钩子基本使用

一、conftest是什么? conftest是pytest进阶中的高级应用,最近正好用到这一块儿,研究之后,向大家分享该高级应用。 二、使用步骤 1.conftest代码块 以全局性使用driver为主,只启动一次浏览器: pytest.fi…...

数据结构---顺序栈、链栈

特点 typedef struct Stack { int* base; //栈底 int* top;//栈顶 int stacksize //栈的容量; }SqStack; typedef struct StackNode { int data;//数据域 struct StackNode* next; //指针域 }StackNode,*LinkStack; 顺序栈 #define MaxSize 100 typedef struct Stack { int*…...

我的MacBook Pro:维护心得与实用技巧

文章目录 我的MacBook Pro:维护心得与实用技巧工作电脑概况:MacBook Pro 2019款 16 寸日常维护措施个人维护技巧其他建议 我的MacBook Pro:维护心得与实用技巧 无论是学习还是工作,电脑都是IT人必不可少的重要武器。一台好电脑除…...

Higress非K8S安装

Higress非K8S安装 文章目录 Higress非K8S安装环境安装安装higress进入到higress 的目录下修改下nacos的地址启动Higress登录higress管理页面 Higress 是基于阿里内部构建的下一代云原生网关,官网介绍:https://higress.io/zh-cn/docs/overview/what-is-hi…...

QT--day4(定时器事件、鼠标事件、键盘事件、绘制事件、实现画板、QT实现TCP服务器)

QT实现tcpf服务器代码:(源文件) #include "widget.h" #include "ui_widget.h"Widget::Widget(QWidget *parent): QWidget(parent), ui(new Ui::Widget) {ui->setupUi(this);//给服务器指针实例化空间server new QTc…...

hjm家族信托科技研究报告

目录 绪论 研究背景与意义 一、选题背景 二、选题意义 研究内容与主要研究方法 一、本文内容 二、研究方法 创新与不足 一、创新 二、不足之处 文献综述与理论基础 文献综述 国外研究现状国内研究现状国内外研究综述 理论基础 金融创新理论组合投资理论生命周期理论…...

[SQL挖掘机] - 视图相关操作

创建视图: create view view_name as select column1, column2, ... from table_name where condition;以上语句创建了一个名为view_name的视图,它基于table_name表格,并选择了列column1、column2等作为结果集。可以使用where子句来指定条件。 注意: 视…...

【Quartus FPGA】EMIF DDR3 读写带宽测试

在通信原理中,通信系统的有效性用带宽来衡量,带宽定义为每秒传输的比特数,单位 b/s,或 bps。在 DDR3 接口的产品设计中,DDR3 读/写带宽是设计者必须考虑的指标。本文主要介绍了 Quartus FPGA 平台 EMIF 参数配置&#…...

Spark 之 入门讲解详细版(1)

1、简介 1.1 Spark简介 Spark是加州大学伯克利分校AMP实验室(Algorithms, Machines, and People Lab)开发通用内存并行计算框架。Spark在2013年6月进入Apache成为孵化项目,8个月后成为Apache顶级项目,速度之快足见过人之处&…...

Vue3 + Element Plus + TypeScript中el-transfer穿梭框组件使用详解及示例

使用详解 Element Plus 的 el-transfer 组件是一个强大的穿梭框组件,常用于在两个集合之间进行数据转移,如权限分配、数据选择等场景。下面我将详细介绍其用法并提供一个完整示例。 核心特性与用法 基本属性 v-model:绑定右侧列表的值&…...

(二)TensorRT-LLM | 模型导出(v0.20.0rc3)

0. 概述 上一节 对安装和使用有个基本介绍。根据这个 issue 的描述,后续 TensorRT-LLM 团队可能更专注于更新和维护 pytorch backend。但 tensorrt backend 作为先前一直开发的工作,其中包含了大量可以学习的地方。本文主要看看它导出模型的部分&#x…...

【快手拥抱开源】通过快手团队开源的 KwaiCoder-AutoThink-preview 解锁大语言模型的潜力

引言: 在人工智能快速发展的浪潮中,快手Kwaipilot团队推出的 KwaiCoder-AutoThink-preview 具有里程碑意义——这是首个公开的AutoThink大语言模型(LLM)。该模型代表着该领域的重大突破,通过独特方式融合思考与非思考…...

工程地质软件市场:发展现状、趋势与策略建议

一、引言 在工程建设领域,准确把握地质条件是确保项目顺利推进和安全运营的关键。工程地质软件作为处理、分析、模拟和展示工程地质数据的重要工具,正发挥着日益重要的作用。它凭借强大的数据处理能力、三维建模功能、空间分析工具和可视化展示手段&…...

数据链路层的主要功能是什么

数据链路层(OSI模型第2层)的核心功能是在相邻网络节点(如交换机、主机)间提供可靠的数据帧传输服务,主要职责包括: 🔑 核心功能详解: 帧封装与解封装 封装: 将网络层下发…...

鱼香ros docker配置镜像报错:https://registry-1.docker.io/v2/

使用鱼香ros一件安装docker时的https://registry-1.docker.io/v2/问题 一键安装指令 wget http://fishros.com/install -O fishros && . fishros出现问题:docker pull 失败 网络不同,需要使用镜像源 按照如下步骤操作 sudo vi /etc/docker/dae…...

让AI看见世界:MCP协议与服务器的工作原理

让AI看见世界:MCP协议与服务器的工作原理 MCP(Model Context Protocol)是一种创新的通信协议,旨在让大型语言模型能够安全、高效地与外部资源进行交互。在AI技术快速发展的今天,MCP正成为连接AI与现实世界的重要桥梁。…...

Java面试专项一-准备篇

一、企业简历筛选规则 一般企业的简历筛选流程:首先由HR先筛选一部分简历后,在将简历给到对应的项目负责人后再进行下一步的操作。 HR如何筛选简历 例如:Boss直聘(招聘方平台) 直接按照条件进行筛选 例如&#xff1a…...

Element Plus 表单(el-form)中关于正整数输入的校验规则

目录 1 单个正整数输入1.1 模板1.2 校验规则 2 两个正整数输入&#xff08;联动&#xff09;2.1 模板2.2 校验规则2.3 CSS 1 单个正整数输入 1.1 模板 <el-formref"formRef":model"formData":rules"formRules"label-width"150px"…...