东莞东华升级内容 20251217 #145

Closed
opened 2025-12-17 01:20:12 +08:00 by bigtran · 0 comments
Owner

开发思路

  • 客户反馈,页面打开缓慢,每个月要导出数据
  • 数据内容包括:清洗信息 + 测漏信息 + 存储信息 + 诊疗信息
  • 以上这些数据散落在ect_actions表里,要把这个变为ect_cycles(即包含一次洗消从开始到结束的所有信息)
  • ect_cycles 除了 清洗信息以外,还有 这个cycle(循环)的最小id min_action_id,最大id max_action_id,以及 上一个流程的 最大id last_wash_id,下一个流程的 最小id next_wash_id
  • 存储 在清洗完成之后: 大于 max_action_id 并且小于 next_wash_id 的,最大的 action_id,action_type=8
  • 诊疗 在清洗完成之后: 大于 max_action_id 并且小于 next_wash_id 的,最大的 action_id,action_type=0
  • 测漏 在清洗完成之前: 小于 min_action_id 并且大于 last_wash_id 的,最大的 action_id,action_type=7
  • 还有一个情况,每天最早的清洗,没有last_wash_id,每天最后一次清洗,没有next_wash_id
  • 另外我们现在的时候,在全量查询的时候,速度非常慢 400-500s,在查询一个月的数据耗时16s,在查询一天的数据1-2秒
  • 整体的思路,是把view 变为 table,这个table定时去更新(没有就是insert,有就update)【这个地方要一个定时任务】

开发步骤

主线内容

  • 新建一个表 t_v_report_c_dgdh_qx_all,结构和 v_report_c_dgdh_qx_all 接近,另外按照页面显示内容,增加一些字段
  • 基于php-console,写了一个command —— EctCyclesDgdh.php
  • 整个过程,要把生成出来的数据,和最早的数据,进行对比,确保逻辑上有错误,通过excel对比
  • 借助webman插件的iadminer的定时任务管理,把 php webman ect_cycles:dgdh 【编译环境是 ./opm_ectms ect_cycles:dgdh】
  • 新增 TVReportCDgdhController.php 对应的 controller 和 view
  • 把controller中查询的视图,换成表格
  • 在后台修改对应的菜单链接

历史数据整理

  • 因为历史数据全量查询速度太慢了,所以考虑按月执行,写一个ect_cycles.sh来提前准备数据

其他要做的事情

  • dgdh的页面程序,还是2025-03-23 的版本
  • 使用navicat的数据库结构对比功能,比对结构差异 #144
  • 目前的数据库对比,是对比东莞东华现有数据库,以及六安人民最近的数据
  • 修改.env文件,比对一些差异

整理部署内容

部署内容

数据库层面

1、t_v_report_c_dgdh_qx_all 表结构
2、t_v_report_c_dgdh_qx_all 批量执行已经结算出来的数据
3、其他数据结构差异(dgdh.upgrade.20251217.sql)

文件

4、编译之后的opm_ectms;
5、新版的.env 文件

系统设置

6、后台菜单,定制报表的链接、图书馆

UPDATE `opm_ectms_dgdh_20251216`.`wa_rules` SET `title` = '月洗消诊疗报表', `icon` = '', `key` = 'tv-report-c-dgdh', `pid` = 557, `created_at` = '2024-12-11 01:22:03', `updated_at` = '2025-12-16 23:24:04', `href` = '/app/admin/tv-report-c-dgdh/index', `type` = 1, `weight` = 0, `hide` = 0 WHERE `id` = 569;

7、隐藏不必要的菜单

注意事项

  • 新旧版本可以同时并存
  • 所有文件,数据库,要提前备份
# 开发思路 * 客户反馈,页面打开缓慢,每个月要导出数据 * 数据内容包括:清洗信息 + 测漏信息 + 存储信息 + 诊疗信息 * 以上这些数据散落在ect_actions表里,要把这个变为ect_cycles(即包含一次洗消从开始到结束的所有信息) * ect_cycles 除了 清洗信息以外,还有 这个cycle(循环)的最小id min_action_id,最大id max_action_id,以及 上一个流程的 最大id last_wash_id,下一个流程的 最小id next_wash_id * 存储 在清洗完成之后: 大于 max_action_id 并且小于 next_wash_id 的,最大的 action_id,action_type=8 * 诊疗 在清洗完成之后: 大于 max_action_id 并且小于 next_wash_id 的,最大的 action_id,action_type=0 * 测漏 在清洗完成之前: 小于 min_action_id 并且大于 last_wash_id 的,最大的 action_id,action_type=7 * 还有一个情况,每天最早的清洗,没有last_wash_id,每天最后一次清洗,没有next_wash_id * 另外我们现在的时候,在全量查询的时候,速度非常慢 400-500s,在查询一个月的数据耗时16s,在查询一天的数据1-2秒 * 整体的思路,是把view 变为 table,这个table定时去更新(没有就是insert,有就update)【这个地方要一个定时任务】 # 开发步骤 ## 主线内容 * 新建一个表 t_v_report_c_dgdh_qx_all,结构和 v_report_c_dgdh_qx_all 接近,另外按照页面显示内容,增加一些字段 * 基于php-console,写了一个command —— EctCyclesDgdh.php * 整个过程,要把生成出来的数据,和最早的数据,进行对比,确保逻辑上有错误,通过excel对比 * 借助webman插件的iadminer的定时任务管理,把 php webman ect_cycles:dgdh 【编译环境是 ./opm_ectms ect_cycles:dgdh】 * 新增 TVReportCDgdhController.php 对应的 controller 和 view * 把controller中查询的视图,换成表格 * 在后台修改对应的菜单链接 ## 历史数据整理 * 因为历史数据全量查询速度太慢了,所以考虑按月执行,写一个ect_cycles.sh来提前准备数据 ## 其他要做的事情 * dgdh的页面程序,还是2025-03-23 的版本 * 使用navicat的数据库结构对比功能,比对结构差异 http://git.gh.opmonitor.com/temp-tickets/tickets/issues/144 * 目前的数据库对比,是对比东莞东华现有数据库,以及六安人民最近的数据 * 修改.env文件,比对一些差异 ## 整理部署内容 # 部署内容 ## 数据库层面 1、t_v_report_c_dgdh_qx_all 表结构 2、t_v_report_c_dgdh_qx_all 批量执行已经结算出来的数据 3、其他数据结构差异(dgdh.upgrade.20251217.sql) ## 文件 4、编译之后的opm_ectms; 5、新版的.env 文件 ## 系统设置 6、后台菜单,定制报表的链接、图书馆 ``` UPDATE `opm_ectms_dgdh_20251216`.`wa_rules` SET `title` = '月洗消诊疗报表', `icon` = '', `key` = 'tv-report-c-dgdh', `pid` = 557, `created_at` = '2024-12-11 01:22:03', `updated_at` = '2025-12-16 23:24:04', `href` = '/app/admin/tv-report-c-dgdh/index', `type` = 1, `weight` = 0, `hide` = 0 WHERE `id` = 569; ``` 7、隐藏不必要的菜单 # 注意事项 * 新旧版本可以同时并存 * 所有文件,数据库,要提前备份
bigtran added the 4-document label 2025-12-17 11:35:37 +08:00
Sign in to join this conversation.