配网客服工单分类统计归档程序的开发与应用

2022-08-24 06:14林少伟吕世杰
农村电气化 2022年8期
关键词:工单台区供电所

林少伟,吕世杰

(广东电网有限责任公司汕头供电局,广东 汕头 515041)

本项目旨在研制一种配网客服工单分类统计归档的使用工具,运用后期技术将其以一种小程序的形式呈现出来,操作起来方便迅速,分类之后的数据看起来更加直观,大大减少了人员的工作量,也降低了出错率,分类的数据更加清晰明了。

1 配网客服工单分类统计存在的问题

配网客服工单做日常分类统计工作中存在以下情况:(1)从系统内直接导出的故障报修工单数量过于庞大,很多大类都混在一块,一些具体分类无法清楚可见。(2)工作人员需要人工筛选各个小项的数目,工作量庞大易出错。(3)一些无法确定供电所的台区名称需要工作人员去其他数据库查验,有些实时更新的街道信息也需要人员查验,还有一些不熟悉地区情况的人员无法快速确定直接归属的供电所。(4)现使用的统计表杂乱,不便对工单完结、遗留问题进行分类统计和跟进后续处理。

拟设计一款自动分类归档程序,可以直接下载在桌面上,打开就可以使用的操作程序,能有效解决人员在日常分类统计中遇到的以上问题,为分类统计工作提供便利。

自动归档程序方便快捷,打开程序直接把表格文件输入快速生成分类表格,如业务子类统计表格、台区故障统计表格、紧急程度统计表格、当前环节统计表格、处理状态表格。表格清楚明了,节约时间成本,小程序生产的表格更加清晰地按照供电所、街道、台变的级别分类,数量清晰可见。能够实现关联几个数据库,快速根据街道地址确定所属供电所,如果街道地址不明确不清晰,还可以进行二次逻辑索引,根据台区所属街道数据库迅速锁定到具体街道,再迅速判断所属供电所。更加直观地观察到具体供电所具体街道发生的故障类型、故障频次,对后续开展工作具有重要意义。还能够按照所需实时关联其他数据库,具备后期更新升级优化的功能,在一定程度上解决工作中遇到的问题。

2 解决问题的技术方案

配网客服工单分类统计归档程序在研发过程中主要用到以下技术手段:(1)利用Python 语言在Jupyter Notebook平台上编写代码实现对工单数据的处理[1]。借助Tkinter 包工具设计生成交互的UI 界面,从而实现将前端面向用户的文件上传与结果下载等操作与后台数据分析功能连接贯通。(2)实现上述功能后,使用pyinstaller 命令将上述py 文件打包生成可执行的exe 文件,即可在其他设备终端直接使用。(3)小程序在对表格里面现有的内容进行分类的同时,小程序可将不能处理的数据保存下来,便于后续处理,确保数据的完整性、准确性。

本程序使用Python 语言编写代码完成,实现工单文件的上传、表格信息的清洗处理以及汇总、结果的本地保存等功能。

当点击bt1打开文件按钮控件并上传工单数据文件后,用户可点击bt2开始处理按钮控件执行工单数据的处理部分。该操作将调用bt2 按钮控件com‐mand 属性所对应的dataprocessing 函数,该函数主要完成的功能包括:(1)获取之前记录的上传工单数据文件路径,借助pandas 包的read_excel 函数以及openyxl 工具包读取表格数据。(2)调用trans‐form_data函数完成主要表格数据处理部分(包括删除原表格数据中不需要的列、判断工单所属街道/供电所)。(3)调用new_result函数对表格数据进行分类汇总,将汇总得到的业务子类统计、台区故障统计等5 项结果保存在result1、result2、result3、re‐sult4、result5 五个全局变量中,用于后续保存到本地[5]。在完成每个小功能的处理之后,均会在窗口的文本控件中提示用户当前的进度,便于用户掌握当前程序运行情况。程序如下:

2.1 业务数据处理

该部分对应调用的transform_data函数,该函数主要完成的功能是:对工单逐个调用streets 函数判断工单所属街道;对工单逐个调用part 函数判断工单所属供电所;记录无法处理的工单数据;删除原表格数据中如“诉求人”“归档人”等不必要的列,便于后续分类汇总。程序如下:

2.2 判断工单所属街道

判断工单所属街道调用了street函数,该函数将根据工单涉及到的台区名称以及用户地址来判断工单的街道信息。程序如下:

对每个工单调用该函数时,将自动获取该工单的台区名称、用户地址,分别传递给str1 和str2 中。具体的判断逻辑是:若工单的台区名称和用户地址均缺失(即为nan空值),则定义该工单所属街道为“其他街道”。否则,如果台区名称不缺失,将首先根据台区名称判断。在这里借助了额外的台区名称与所属街道关联数据(数据来源:内部文件),其相当于引入了一个外部数据库,该数据库中记录了每个街道安置的设备台区名称。由此,程序可以通过检索该外部数据,根据本工单的台区名称(即str1)确定本条工单所属的供电所。其次,若工单台区名称缺失,但用户地址不缺失,则将根据用户地址判断。这里如果用户地址(即str2)中不包含“街道”字符串,则将该工单所属街道判断为“其他街道”。如果用户地址明显包含“街道”字眼,则利用str2字符串类型数据自带的split 函数提取街道信息。

经过上述操作,所有工单的所属街道将不存在空值,目的是为了尽可能保留原始工单记录。其中,无法准确判断街道信息的将对应“其他街道”。能够准确判断街道信息的将输出正确的街道信息。

2.3 判断工单所属供电所

由于工单的供电所列存在缺失为空值和“金平供电服务中心”的问题,所以设计调用了part 函数来根据工单所属街道信息判断工单所属供电所。与判断街道信息类似,对每个工单调用该函数时,将自动获取该工单原本的供电所信息、所属街道,分别传递给str1和str2中。程序如下:

这部分的处理逻辑是:只需要判断供电所列值为None(空值),或“金平供电服务中心”的工单,否则,将保留原来的供电所信息(即str1)。当工单的供电所涉及以上两种情况时,同样借助外部的街道与供电所对应关系信息(数据来源:内部文件),由上一步判断出的街道信息去匹配,从而得到工单所属供电所信息。在这里需要注意的是,若此时街道信息为“其他街道”,即上一步无法正确判断街道信息,则此时将该工单所属的供电所设置为空值输出。这样处理的目的在于,第一,输出空值而不是再次标记为“其他供电所”,有助于将空值代表的无法正确处理的工单数据保留,作为后续需要人工处理的备份数据。第二,空值也有助于后续在分类汇总时剔除这些无法正确处理的工单数据。

2.4 保留无法处理的工单数据并删除多余列

调用pandas 自带的isna 函数,提取所属供电所为空值的工单,保存为无法正确处理的数据集,并传递给save_file 函数(详见前文)中保存到本地文件。调用pandas自带的drop函数删除“当前处理人员”等不相关的列,精简表格,便于后续分类汇总。该列剔除操作不影响保存的无法正确处理数据集。

3 数据分组统计

该部分对应调用的new_result 函数,主要功能是对上述经过处理后的数据利用pandas 自带的groupby函数与size函数对工单数据进行分类统计[6]。程序如下:

以result1为例,groupby函数将按照“所属供电所”作为一级分类,“街道名称”作为二级分类,“业务子类”作为三级分类,对不同的业务子类工单数如低压一户停电、断杆断线等利用size 函数进行统计。由此,result1 将保存并传递给save_file 函数(详见前文),对应业务子类统计表,用于后续保存到本地文件中。result2、result3、result4、result5同理。

3.1 实施例

根据存在问题,研发的这种关联几个数据库可以快速对子项分类、快速智能识别分类的故障报修工单归档程序,其具体特征在于:

利用python 语言在jupyter notebook 上编写代码实现对工单数据的处理,以及生成可执行的exe文件。

程序界面清晰,加载完成后可以正常使用。

操作流程简单,通过三个步骤即可完成:第一步导入所需的工单统计表格;第二步点击开始处理,程序即自动迅速处理表格,处理完成后程序会有提示处理完毕;第三步点击保存文件,手动输入文件名选择保存位置,程序自动显示保存完毕后,可关闭程序去查看处理好的各个文件表格。

3.2 该分类归档程序的优点

小程序并不是单纯的按照表格里面现有的内容进行分类,而是根据表格里面缺少的内容直接关联其他数据库进行多次索引,最终确定结果。

小程序操作方便,界面清晰,共设置三个按键,使用简单,基本不需要讲解说明,适用体验良好。处理成千上万条数据时可以节省大量时间成本。

后期可继续关联其他数据库,做到实时更新,也可技术升级让小程序的性能变得越来越好。

4 结束语

从系统内导出的配网客服工单数据庞大和冗杂,给人员带来的工作量巨大且容易出错,配网客服工单分类统计归档程序操作简单、方便快捷,使用后可极大地减少工作量,提高工作效率,减少出错率,对于需要分析的数据种类可更加直观地查看。且后续可增添其他功能,关联其他数据,实现升级优化,运用逻辑程序实现对大量数据科学有序分类处理,对于日后工作的有序展开具有重要意义。

猜你喜欢
工单台区供电所
客服工单监控技术的开发与研究
配电台区变-户拓扑关系异常辨识方法
高职院校计算机类专业“工单制”教学的研究与探索
基于RPA技术的机器人在配网调度工单发布工作中的应用
“全能型”供电所建设存在的问题及对策
基于规范化与专业化的供电所管理优化探讨
基于分布式数据库Cedar的高效工单管理系统设计与实现
供电所管理中同业对标的实践研究
降低台区实时线损整治工作方法
关于供电所低压配电变压器的保护系统的设计问题分析