科室数据聚合系统优化
2025/06/10·StepFun can make mistakes, check important info.
非常好,但是相同的科室有多组数据为什么不添加在一起
思考过程
我们之前的设计是每次添加数据都会创建一条新的记录,即使同一个科室同一个月的数据也是独立记录。根据用户需求,现在需要将相同科室、相同月份的数据进行合并(累加错误数量并重新计算错误率)。
解决方案:
- 在添加数据时,先检查是否已存在相同科室、相同年份、相同月份的数据
- 如果存在,则更新现有记录(累加错误数量,重新计算错误率)
- 如果不存在,则创建新记录
修改位置:add_data路由的POST处理部分
注意:重新计算错误率时,需要根据累加后的错误数量和当月天数计算
步骤:
- 获取表单数据后,先查询是否存在相同科室、年份、月份的记录
- 如果存在:
记录.overdue_count += 新逾期错误数量
记录.numerical_error_count += 新数字错误数量
重新计算错误率(使用累加后的错误数量和当月天数)
- 如果不存在,则创建新记录
另外,在仪表盘显示时,同一个科室同一个年月只会显示一条记录(因为数据库里已经合并了)
修改后的add_data路由代码:
科室指标统计系统 - 数据聚合优化版
我理解了问题:系统应该自动聚合相同科室、相同月份的数据,而不是创建多条独立记录。以下是完整的优化方案:
优化后的 app.py(主程序)
关键优化点
1. 数据库模型优化
2. 数据聚合逻辑
3. 用户反馈系统
更新 base.html(添加消息显示)
添加消息样式(在base.html的style部分添加)
更新后的功能说明
数据聚合逻辑
-
添加新数据时:
- 系统首先检查是否已存在相同科室、相同年份、相同月份的数据
- 如果存在:
- 将新数据中的错误数量累加到现有记录
- 重新计算错误率(基于累计值)
- 更新现有记录
- 如果不存在:
-
结果展示:
- 每个科室每个月只显示一条记录
- 显示的是该科室该月份的错误总数和平均错误率
用户反馈系统
-
操作反馈:
- 添加/更新数据成功时显示成功消息
- 删除数据时显示删除消息
- 添加重复科室时显示警告
-
消息特点:
- 不同状态不同颜色(成功/警告/错误)
- 5秒后自动消失
- 可手动关闭
使用流程
-
添加科室:
-
添加/更新数据:
- 访问
/add_data
- 选择科室、年份、月份
- 输入错误数量
- 提交后:
- 如果是新月份:创建新记录
- 如果是已有月份:累加错误数量并更新记录
-
查看数据:
- 首页显示所有科室的月度聚合数据
- 每个科室每个月只显示一条记录
部署步骤
-
删除旧项目(如果存在):
-
创建新项目:
-
创建文件:
- 将上述优化后的代码复制到对应文件中
- 确保文件结构如下:
-
运行应用:
-
访问系统:
- 打开浏览器访问:
http://localhost:5000
这个优化版系统解决了数据聚合问题,相同科室相同月份的数据会自动累加并更新,同时添加了用户反馈系统,使操作更加直观和友好。