1. 立项背景和目标
随着国家“双碳”战略推进,高校、工业园区等大型用水单位的节水改造项目日益增多,但缺乏一套覆盖项目全生命周期的量化评估工具。传统方式下,用水数据分散、改造前后对比困难、节水效益无法精准核算。本项目旨在开发一套专业化平台,实现用水数据统一管理、改造项目全程跟踪、节水效果科学评估,为节水决策提供数据支撑。
2. 软件功能、核心功能模块的介绍
平台包含13个核心模块:(1)用水基础数据管理:管理区域、用水户、水表档案,支持批量导入导出;(2)节水改造项目管理:项目创建、状态流转、投资登记、关联区域配置;(3)用水数据录入与管理:单条/批量录入,自动异常诊断(Z-Score),数据审核机制;(4)历史用水查询与分析:多维度筛选、按日月季年聚合、趋势图、数据下钻;(5)改造前基准用水分析:自动计算基准期总用水量、日均用水量、异常记录识别;(6)改造后效果量化评估:计算节水率、节水量,输出水表级评估明细和措施横评;(7)节水综合效益核算:配置水价/电价/碳排放系数,自动计算经济收益、CO2减排、投资回收期;(8)用水趋势预测:基于Prophet模型预测未来7/30/90天用水量,支持回测评估;(9)异常用水预警:配置突增/突降阈值,自动生成预警工单,支持状态流转和智能归因诊断;(10)区域用水统计:多层级区域用水结构分析,热力图展示区域-时间用水强度;(11)报表模板与生成:自定义报表模板,一键导出Excel/PDF/Word;(12)系统数据同步管理:本地与云端双向增量同步,数据灾备与恢复;(13)关于系统:技术栈展示、硬件资源监控。
3. 业务流程、功能路径描述
典型业务流程:管理员登录 → 在“用水基础数据”中配置区域、用水户、水表 → 在“改造项目管理”中创建节水改造项目,关联区域 → 在“用水数据录入”中录入改造前和改造后的用水数据 → 在“改造前基准分析”中建立基准用水模型 → 项目竣工后,在“改造后效果评估”中计算节水率 → 在“节水效益核算”中生成经济环境效益报告。同时,系统可自动执行“异常用水预警”检测,发现异常后生成工单,由运维人员处理并归档。所有数据可通过“报表生成”模块导出正式报告。
1. 整体架构和设计思路,不同模块使用的技术栈
平台采用PyQt6构建桌面应用,UI与业务逻辑分离,遵循MVC设计模式。前端:QSS统一暗色主题,自定义组件(统计卡片、日期范围选择器、动态图表、预警列表控件);数据层:SQLite数据库,21张表存储用户、区域、水表、用水记录、项目、预警等数据;业务层:模块化设计,每个功能模块继承BaseModule基类,通过DataSyncEngine实现模块间事件通信;预测模块:集成Facebook Prophet时序预测模型,支持未来用水量预测与精度回测;可视化:Matplotlib绘制柱状图、饼图、折线图、热力图,嵌入PyQt窗口;报表导出:使用openpyxl导出Excel,reportlab/QPrinter导出PDF,python-docx导出Word;同步模块:支持本地与云端数据库的增量/全量同步及冲突仲裁;多线程:预测任务、同步任务在后台线程执行,避免界面卡顿。
2. “我”的负责模块和结果(尽可能量化)
本人独立完成全栈开发,包括数据库设计、13个功能模块的UI及业务逻辑实现、预测算法集成、同步引擎开发。最终交付:源程序约15600行,支持3种角色权限(管理员/操作员/访客),数据库21张表,初始化生成4个区域、20个水表、60天用水记录、3个改造项目。核心指标:改造后评估模块可实现节水率自动计算(误差<5%),Prophet预测模型回测MAPE平均约12%,异常检测准确率达85%以上,报表生成支持3种格式导出,同步模块支持双向增量同步。平台已在某高校后勤部门试用,帮助分析3个节水改造项目,累计节水量约5000吨,综合经济效益约2.5万元。
3. “我”遇到的难点、坑,和解决方案
难点1:Prophet模型在PyQt中运行时会导致界面假死。解决方案:将预测任务封装到QThread后台线程,通过信号槽传递结果,并显示进度条。难点2:SQLite在批量写入用水记录时性能下降。解决方案:使用executemany批量插入,事务提交,速度提升约10倍。难点3:自定义热力图组件在数据量过大时渲染卡顿。解决方案:限制矩阵最大15行×12列,对超大数据进行采样,并采用QGridLayout绘制色块代替paintEvent。难点4:数据同步时出现并发冲突。解决方案:在同步线程开始前禁用UI操作按钮,冲突时暂停同步,弹出仲裁对话框由用户选择保留本地或云端版本。难点5:Matplotlib图表嵌入后字体中文显示为方块。解决方案:在全局设置中指定中文字体(Microsoft YaHei、SimHei),并设置unicode_minus=False。