目录

EHS_Scrutinizer开发者文档

EHS_Scrutinizer开发者文档

招贤纳士

目前,项目处于起步阶段,需要各方面的能人巧匠,你可以通过主页的联系方式或线下咨询详情。

前提条件:有相关的EHS工作经验。

职位 技术栈
Python工程师 Peewee, Sqlite, Pytest
C/C++工程师 Qt, CMake, GUI设计
核对校审 录入、核对、同步GBZ相关信息,表格设计

原理

流程图如下:

  1. 从用户填写的EXCEL表格(模板.xlsx)中获取信息。
  2. 通过预处理过滤器清洗数据,出现概念问题(如同一操作位接害时间不同)提醒用户,并决定是否继续流程。并进行专门化的数据处理。
  3. 通过通用预处理过滤器清洗数据,确保数据原子性。
  4. 数据入Sqlite数据库。
  5. Sql查询,通过后处理过滤器清洗数据,并进行专门化的数据处理。
  6. 通过通用后处理过滤器清洗数据。
  7. 数据写入EXCEL表格。

测试

命令

pytest test.py

用例

  • 测试用例路径:/test/test-NUM.xlsx /test/res-NUM.xlsx

注意事项

  • 所有PR在合并主线前先Approve,后过CI,如果CI未过,请自行check。
  • 涉及到新表格(Sqlite和EXCEL)的开发,请在测试目录下的测试EXCEL中新增相应的测试sheet;其他开发能过CI即可。
  • 确保EXCEL Sheet名称Sqlite table名称一致,便于分辨和开发。
  • ⚠️禁止EXCEL Sheet名称、Sqlite table名称、字段名有任何的中文字符,请翻译为英文;输出结果的pd.Dataframe{}和EXCEL除外。

常见问题

Q:为什么要用Sqlite,不能直接内存中读写吗?

A:SQL使得许多的逻辑无须自己实现,在代码结构上更加易读、便于分层设计。在多表联查等复杂环境中,SQL的优势更加明显。

Q:我不懂技术,想参与项目,该做些什么准备?

A:你可以参与核对校审工作,对GBZ相关信息进行录入、核对、同步(比如GBZ 2.1 / GBZ 2.2),设计程序输出表格。在开展工作前,你需要了解一些Git的概念,掌握Git的基本使用方法(比如上文提到的PR、CI,以及Merge、Commit、Push等)。当然如果你想参与技术开发,需要自学一下相关的技术栈