APP下载

基于Django的施工数据共享平台设计与实现

2022-04-14刘艳雯杨金栋

现代计算机 2022年2期
关键词:报表管线数据库

刘艳雯,吴 涛,沈 彬,杨金栋,庞 达

(海洋石油工程(青岛)有限公司,青岛 266100)

0 引言

近些年来,海洋石油工程建造技术取得了突破性的进展与成效,在建造管理方面也积极的向数字化与智能化转型。目前,海洋石油工程承揽的多个项目都应用了工程项目管理软件,实现了工程建造施工数据管理标准化与规范化。但是从设计到现场施工,数据在系统当中形成了一个闭环,对项目其他管理人员来说,获取数据的时间周期长,数据时效性与准确性无法保证。其中一个LNG项目应用PCMS系统管理结构与电仪专业的施工,应用CMS/VM管理管线专业施工,两个系统运行在不同的局域网下,获取数据的沟通成本以及数据处理的人力成本较高。所以结合实际需求,深化推广施工管理系统应用,在实际管理层面推进数字化建设,在某大型LNG项目中设计一个施工数据的共享平台,方便项目管理施工数据获取。

1 需求分析

1.1 设计目标

工程项目管理系统在施工管理上具有特有的优势,但是缺少数据共享以及可视化的平台,施工数据封闭在系统内,增加管理人员和施工人员获取数据的沟通成本。所以平台建设的主要目的是实现跨局域网抽取PCMS、CMS这两个工程项目管理系统中的结构、管线和电仪专业核心施工数据,将其分析处理后,输出为可读性高,能够用于实际工作中分析使用的报表。

1.2 性能需求

1.2.1 数据准确性

系统数据库的结构复杂,直接访问后台数据库对普通用户来说有一定难度,对访问者要求较高,并且可能引起安全问题。高效准确的方式是向用户直接提供经过简化的,可读性高的数据表。杜绝人为干预,有效保证数据的准确性。

1.2.2 数据时效性

由于平台承载了上百万数据的分析、处理和下载。所以为了保证平台的响应速度,该平台抽取施工管理系统的核心数据,进行分析处理。并且大部分的数据同步以及数据处理的工作都设定在非工作时间运行,保证提供给用户的数据具有高时效性,节约用户获取数据的时间,提高效率。

1.2.3 网站并发性

该平台的用户较多,并且集中在工作日早上,所以确保多用户同时下载访问的系统的稳定性以及响应速度。

1.2.4 界面友好

保证应用界面简洁易操作。

2 设计实现

2.1 系统架构

该平台开发使用的语言是Python,Python作为一种胶水语言,支持多种平台,开发时间短,成本低,功能强大,简单易学,可读性高,并且可以使用庞大的第三方库来处理大部分的问题。Django 1.11.12 MVT模式充当了项目整体骨架,其扩展性强,更容易重构代码,后续维护成本低。Django框架接收了用户请求和参数后,再匹配URL,转发给对应视图(view.py)进行处理,View是开发框架中的核心,负责接收请求、获取数据、返回结果。视图调用Model处理数据,再调用template返回界面给浏览器(如图1)。

图1 Django MVT模式

数据共享平台的系统架构如图2所示。

图2 数据共享平台系统架构

系统架构从下向上分为运行环境、数据库、业务层、展示层、用户界面和访问层。业务层实现包括结构,管线在内等多个专业的常用报表等基础信息的下载以及结构、管线、涂装专业进度数据的处理、查看下载功能。展示层提供浏览器访问页面时的AJAX(异步的JavaScript和XML)请求;前端界面采用最新的UI技术,保证功能性、美观性,以及良好的用户体验;最上面为访问层系统采用HTTP(Hyper Text Transfer Protocol,超文本传输协议),为用户提供实时响应。

2.2 数据库设计

该平台采用的是体积小、速度快、总体拥有成本低的关系型数据库MySQL数据库。

MySQL数据库的建立是为了兼容来源于施工管理系统的Oracle数据库以及SQL Server数据库数据。由于读取的数据在施工管理系统中经过组织,所以数据中心平台的后台数据库无需再次组织数据结构与表关系。这些数据有一部分可以直接使用,另外一部分则需要根据实际的需求做数据清洗工作。虽然Python在数据处理方面具有独特的优势,但是为了便于管理以及统一维护,设计一些视图来实现简单的数据分析处理。

2.3 系统解决方案

该平台的数据更新和数据分析依靠部署服务器和Python脚本保证正常运行,所以在网站以及数据库搭建完成之后,需要通过对支持网站的服务器和Python脚本进行部署来实现PCMS和CMS/VM数据集成以及数据更新自动化。

由于PCMS和CMS/VM两个施工管理系统分管不同的专业,这两个系统不在同一局域网下,所以使网站能够覆盖全专业数据,首先需要解决跨局域网读取CMS数据的问题。为了解决该问题,单独设立了一台具有VPN权限的服务器,该服务器既能够访问CMS数据库,也能够访问网站后台数据库。在该服务器中利用任务管理器,建立两个定时任务,无限期每隔12小时重复运行一次,通过运行脚本,定时访问CMS数据库读取最新数据,将读取数据表写进网站后台MySQL数据库中。

但是除了更新同步数据,还在脚本中嵌入了进度数据分析计算的程序代码,这样就能够在自动更新数据的同时,计算出施工进度,并将进度报表同样写入网站后台MySQL数据库中,实现智能化数据分析。

除了迁移CMS的脚本,网站还开发部署了三个脚本用来同步PCMS数据。这三个脚本同样嵌入了各自进度计算的程序代码,能够在分别同步结构、涂装、电仪专业的基础信息和施工数据的同时处理数据,生产进度分析报表。

3 模块展示

3.1 常用下载模块

常用下载页面(图3)中根据项目各个专业的具体需求,提供了26个报表,包括材料、结构、管线、试压包与电仪专业的基础施工数据,并对报表内容进行了简单的描述,访问者可以选择需要的报表,点击下载。报表通常是.xlsx和.csv格式输出。

图3 常用下载页面

3.2 进度数据模块

通过和管理人员的沟通,了解到进度统计每周都需要重复相同的数据处理工作。所以该平台利用自身的数据优势,深入挖掘数据特点,通过定制网站后台数据库视图、开发脚本使进度统计工作在每日数据更新之后依靠Python脚本自动执行完成。目前提供的进度数据包括结构、管线专业的预制与安装这两个施工阶段。

此处以管线安装的进度计算报表的输出为例展现进度计算逻辑(图4)。先将管线安装状态跟踪表与管线安装工步权重表映射合并。然后将FIELD_ID(该管的总焊接量)的值替换掉工部完成日期,如果该工步完成时间为空,则填充为0。这样每个单管每个工部完成焊接寸径与其对应权重相乘再累加的值,即该管线工作完成量。根据模块号、层号和管线材质分组求和,得出最终进度计算表。进度统计报表既结合SQL Server和MySQL的数据,同时也应用了SQL语句和Python语言,通过自动更新与计算运行,减少了计划团队每周的结算工作量,准确性较高。

图4 进度数据分析模块

3.3 数据可视化模块

为了补充施工结构化数据不直观的短板,在现有数据基础上补充了数据可视化图表模块,直观展现施工状态。

图5 试压包状态跟踪统计图

4 结语

该平台通过同步PCMS系统和CMSVM系统数据,集成材料采办专业、结构专业、管线专业、电仪专业的核心施工数据,分享给项目管理人员,实现共享,减少沟通成本。目前,平台所提供的数据已经能够满足项目运行大部分需求,为管理人员了解施工情况,并根据施工现状调整管理策略提供了数据支持。除了上述功能已经实现的功能之外,网站也将会随着项目的不断深入而做出数据的改进与调整。

猜你喜欢

报表管线数据库
1,4-丁二醇加氢进料泵管线改造
城市地下管线探查技术及方法研究
数据库
数据库
镇长看报表
数据库
市政施工过程中的地下管线保护措施探讨
数据库
关于地下管线探测方法的探讨
月度报表