12345 工单统计 · 群众诉求台账分析
规矩(每次都要遵守)
- 原文件只读。 脚本只读用户导出的工单表,统计 Excel、Word 简报一律另存新文件;重名自动加 _1、_2,绝不覆盖。不要用任何别的办法去改、移动、删除用户的原表。
- 先认列,请用户确认,再出结果。 第一次拿到表,先跑
check,把认列结果用大白话念给用户:- 标「认准了」的直接用;标「猜的」的要一条条问用户「『业主报修具体诉求』这一列就是诉求内容,对吗?」,用户说对,出结果时加
--cols-ok;不对就问清是哪一列,用--col 字段=列名指定。 - 没认到的列,告诉用户少了它会影响什么(脚本会写出来),问用户表里有没有、叫什么。
- 没认到「受理时间」就没法统计,一定要问出来。
- 体检发现的情况(受理时间认不出、工单号重复、办结时间早于受理时间、状态和办结时间对不上等)念给用户听。
- 标「认准了」的直接用;标「猜的」的要一条条问用户「『业主报修具体诉求』这一列就是诉求内容,对吗?」,用户说对,出结果时加
- 口径问清楚。 出结果前问用户两件事(用户不在意就用默认):办理时长按工作日还是自然日算(默认工作日,已内置 2026 年法定节假日和调休);超期时限是几天、不同类别是否不一样(默认 15 天)。未办结的工单默认算到现在,用户要按某个截止日看就加
--asof。 - 个人信息保护。 诉求人姓名、电话只在本机内存里用来找重复诉求,结果里不输出姓名,电话只留尾号;地址遮住门牌号;诉求内容里的手机号、身份证号自动打星号。提醒用户:结果要转发前,按本单位规定再检查一遍;用户要求把姓名、完整电话放进结果时,告诉用户这个工具不做,请按单位规定从原表里查。
- 涉密内容不得录入。 每次都提醒一句:涉密工单不要导出给这个工具处理。脚本发现内容里有「涉密、机密」等字样,会不输出这些工单的内容并在体检里列出,要念给用户听。
- 只说数据,不做评价。 「建议关注的区域」只按工单量、超期、办结率、重复诉求、不满意这些数字排列;跟用户讲的时候也只说数字,不评价任何单位、个人的工作好坏,不做政治性评价,不猜原因。用户问「为什么这个社区超期多」,就说数据里能看到的(哪些类别、哪个承办部门、哪几张单),原因请用户结合实际情况判断。
- 数字以脚本输出为准,不要心算、不要自己改。
- 组件缺了只提示,不自动装。
- 说人话。 跟用户说「按社区统计」「超过 15 个工作日算超期」「同一地址 30 天内又打来」,不说命令参数和程序里的名字;但用户问起在运行什么,就如实告诉他:在用本机的 Python 脚本读表、生成新的 Excel 和 Word 文件。
- 全部在本机处理,不联网、不上传、不调用任何在线服务(分词也是本地做的)。
用法
脚本:python {baseDir}/scripts/ticket_stats.py <子命令> ...,路径有空格要整个加引号。
| 子命令 | 做什么 | 会不会动原文件 |
|---|---|---|
| check 文件或文件夹… | 认列(标出哪些是猜的)+ 数据体检 | 只读,不生成文件 |
| report 文件或文件夹… | 生成统计 Excel,加 --docx 再生成 Word 简报 | 只读,另存新文件 |
| holidays | 列出内置的 2026 年法定节假日和调休上班日 | 不读不写 |
多个文件(比如 8 月、9 月各导出一份)一起给就行,同一个工单号只算一次(保留已办结的那条)。
check / report 共用的选项:
| 选项 | 意思 |
|---|---|
| --col 字段=列名 | 手动指定列,可写多个,如 --col 类别=问题分类,区域=所属网格 |
| --sheet 名称 | 只读这个工作表(默认每个文件取第一个有数据的) |
| --header-row N | 表头在第 N 行(自动找错了才用) |
| --recursive | 连子文件夹里的表一起读 |
能指定的字段:工单号、受理时间、诉求类别、区域、地址、诉求内容、承办部门、办结时间、状态、满意度、办理时限、截止时间、姓名、电话。
report 另外的选项:
| 选项 | 意思 |
|---|---|
| --cols-ok | 用户已确认「猜的」列没问题(有猜的列时不加这个不会出结果) |
| --days 工作日 / --days 自然日 | 办理时长口径,默认工作日 |
| --limit 默认=15,噪音=3,供水=1 | 超期时限(天,口径同上);按类别写的,类别名包含这个词就算 |
| --asof 2026-09-30 | 未办结工单算到哪天为止(默认现在) |
| --repeat-days 30 | 多少天内再次出现算重复诉求,默认 30 |
| --sim 0.3 | 内容相似门槛(0~1),默认 0.3,越大越严 |
| --words 鸽子笼,飞线充电 | 补充本地常说的问题词,让高频词统计更准 |
| --top 30 | 高频词列多少个 |
| --min-area 3 | 区域至少多少件才参与「建议关注」比较 |
| --no-content | 结果里一律不放诉求内容 |
| --docx | 另外生成 Word 简报 |
| --title 幸福街道9月工单简报 | Word 简报标题 |
| --out 路径 | Excel 保存位置(不能和原文件同名;已存在就加 _1) |
时限的先后:命令里按类别写的 → 表里的「截止时间」或「办理时限」列 → 默认天数。
大白话 → 怎么做
| 用户说 | 怎么做 |
|---|---|
| 「这是 9 月的 12345 工单,帮我统计一下」 | check 文件 → 念认列和体检结果、问口径 → report 文件 --docx |
| 「8 月、9 月两个表一起算」「这个文件夹里都是导出的工单」 | 把几个文件或整个文件夹一起给 check / report |
| 「办结率多少,平均几天办完」 | 看结果里的「已办结」「平均办理时长」,两种口径都有 |
| 「按自然日算」 | 加 --days 自然日 |
| 「一般诉求 15 个工作日,噪音 3 天,停水 1 天」 | --limit 默认=15,噪音=3,停水=1 |
| 「截至 9 月 30 日还有哪些没办完超期了」 | --asof 2026-09-30,看「超期工单」页里「未办结已超期」 |
| 「哪些人反复打电话」「同一个事反复投诉」 | 看「重复诉求」页;要放宽到 60 天就加 --repeat-days 60 |
| 「大家反映最多的是什么问题」 | 看「高频问题」页:类别前 10 + 内容关键词;本地说法认不出就用 --words 补 |
| 「出个简报给领导看」 | 加 --docx --title 某某街道9月工单简报 |
| 「列认错了,类别应该是『问题分类』那列」 | 加 --col 类别=问题分类 |
| 「物业报修单统计一下各小区、各维修班组」 | 照常 check → report;「维修班组」会当承办部门,「小区」当区域 |
| 「把诉求人名字和电话也列出来」 | 不做:结果不含个人信息,请按单位规定从原表里查 |
| 「哪个社区工作做得差」 | 只说数字(工单量、超期、办结率、不满意),不评价好坏 |
一步一步教用户(截图式说明)
- 从系统里导出工单:在工单系统里按时间筛选好 → 点「导出」→ 选 Excel 格式 → 存到桌面。导出前请把涉密工单去掉。
- 把文件位置告诉我:在文件上按住键盘 Shift 键,再点鼠标右键 → 选「复制为路径」→ 粘贴到对话框里发给我。多个文件就放进同一个文件夹,复制文件夹的路径。
- .xls 读不了时:双击用 Excel 打开 → 点左上角「文件」→「另存为」→ 「保存类型」选「Excel 工作簿(*.xlsx)」→ 保存。WPS 也一样。
- 结果文件打不开 / 提示被占用:先把 Excel、Word 里打开着的同名文件关掉,再让我重新生成一次。
- 找到结果:放在原文件旁边,名字是「原文件名_工单统计.xlsx」「原文件名_工单简报.docx」;多个文件一起统计时叫「工单_工单统计.xlsx」。
结果里有什么
- 数据概况:统计范围、工单总数、办结率、未办结(已超期 / 2 天内到期)、平均办理时长(工作日、自然日两种)、超期、满意度、重复诉求、工单最多的类别;建议关注的区域(只列数字理由);统计口径说明;个人信息和涉密提醒。
- 按类别 / 按区域 / 按部门 / 按月份:工单量、占比、已办结、办结率、平均办理时长、超期工单、超期率、不满意、满意率、重复诉求工单,每页一张图。
- 满意度:满意、基本满意、不满意、未评价的数量和饼图;原表写法怎么归类的(「非常满意」算满意,1~5 分 4 分以上算满意,「未回访」算未评价)。满意率不含未评价。
- 高频问题:工单最多的类别前 10;诉求内容高频词(按多少张工单提到)和条形图;词典外反复出现的两字说法。
- 超期工单:办结超期、未办结已超期,带时限、已用时长、超出天数,按超出多少排序。
- 重复诉求:每组几次、关联依据(同一地址 / 同一电话)、地址(遮门牌)、电话尾号、共同问题词。
- 工单明细:每张工单整理后的样子(不含姓名、电话),能筛选。
- 数据体检:每个文件的列是怎么认的、没认到的影响什么;发现的问题和处理方式。
- Word 简报:数据概况、TOP 问题、超期工单清单(前 20)、建议关注的区域、口径说明。
需要的组件
- 必须:Python 3.8+、openpyxl(读写 Excel)。缺了脚本会提示
pip install openpyxl。 - 可选:python-docx(Word 简报,缺了只是不生成简报);xlrd(读老版本 .xls,缺了就提示另存为 .xlsx)。
不做什么
- 不修改、不覆盖、不删除、不移动用户的原文件。
- 不联网、不上传,不调用任何在线服务或在线分词。
- 不输出诉求人姓名、完整电话;不处理涉密内容。
- 不评价单位或个人,不做政治性评价,不猜原因、不做预测;建议关注只按数字排列。
- 不自动安装任何组件;不破解有密码的文件;不读 WPS 的 .et 格式(请另存为 .xlsx)。
- 2027 年及以后的法定节假日国家公布前没有内置,那些年份按工作日算时只去掉周末,会在结果里提醒。
微信扫一扫