APP下载

基于CAGT的监理公司管理系统设计

2020-04-23史俊沈洁胡蕴珊张孝庆周文杰

电子技术与软件工程 2020年8期
关键词:代码管理系统监理

史俊 沈洁 胡蕴珊 张孝庆 周文杰

(1.安徽省建科建设监理有限公司 安徽省合肥市 230000 2.合肥工业大学 安徽省合肥市 230000)

1 前言

随着互联网技术的发展,信息化与企业结合这一趋势已越发盛行。目前我国建设工程监理的信息化发展还处于初级阶段,一些发展较快的城市中,监理信息化系统已经在监理企业投入使用,很多企业仍在探索信息化与公司的具体业务和管理的高效结合。本文从某建筑工程监理公司的信息化现状出发,分析了其内部业务需求和管理需求,设计了监理公司信息化管理系统,利用信息技术的自动化、精确化等特性辅助公司内部各方面管理,同时通过对监理项目监管质量的分析和统计,帮助管理层对监理人员的业绩情况、建筑工程施工进度进行把控,提高公司监理水平,从而保证建筑施工的安全稳定开展。

监理公司管理系统的主要功能可以分成两部分:围绕公司内各部门日常管理需要,使管理系统能提升各部门管理层的日常工作效率;针对监理服务的质量监督,监理工作的日常统计分析,以及监理工作质量评定等。

在系统设计过程中,考虑到系统功能需求较多,且有近一半的功能是对数据库的增删改查操作,如果有一种能自动代码工具来生成重复性的后台服务代码,则可大大降低系统实现的工作量。目前,此类代码生成工具并不多见,同时从系统的框架特点分析,我们决定自主设计一种基于Java 语言的Spring 后台代码快速生成工具,取名为CAGT(Code Auto Generator Tool)。CAGT 可以通过数据库表结构,利用Java 的发射特性和预先设计好的代码模板,自动生成Spring 服务端中的增删改查功能代码(主要包括domain 文件、controller 文件和service 文件)。

综上,本文的主要工作:

(1)深入研究分析了典型监理公司的业务逻辑,遵循软件工程开发规范设计、实现了监理业务管理系统,提高了监理公司的管理效率和信息化水平;

(2)基于Java 的反射技术,针对监理业务管理系统研发了一个代码生成工具,既提高了系统的开发效率,又保证了代码的质量。

2 系统需求分析

2.1 功能需求分析

系统基于监理日常工作需求,同时考虑到平台的权限设置,以监理公司内部四个部门为主体,设计了四个主模块,如图1:

图2:代码自动生成工具CAGT 功能流程图

图3:项目地理可视化运行截图

(1)合同模块。该模块是经营部门日常工作所使用的模块,设计以下子模块:1.合同录入。对签订的合同进行记录,录入合同关键属性,并将合同签订过程中所产生的纸质附件,以照片的形式上传。2.合同管理。包括对合同基本信息和合同附件的详情查看功能,对合同基本信息的修改功能,以及附件的删除、重传功能。3.合同检索。按照合同关键属性进行的多关键字联合检索。4.付款提醒。合同关键付款节点的录入以及到达关键付款节点前的提醒。

(2)财务模块。该模块包括日常财务基础数据记录,财务收支分析,人员社保和保证金相关业务功能,主要有以下子模块:财务基础数据录入,对监理项目的开票到账以及项目进行过程中的开支进行录入登记;财务收支分析,根据录入的基本数据进行成本核算,可视化展示统计分析后的结果,提供财务收支分析报告;人员社保子模块,包含人员社保信息按月批量导入,根据项目人员分配查询人员社保情况;保证金子模块,包含单条保证金信息录入,多条保证金数据批量导入,保证金退还维护和保证金多条件联合检索功能。

(3)人力资源模块。该模块对公司内员工基本信息、资格证书进行维护,包含以下子模块:员工基本信息录入,录入员工基本信息,上传员工照片,登记员工工资结构;资格证书数据录入,录入员工资格证书,登记基本字段,上传证书原件照片;员工管理,查看员工详细信息,对员工信息和员工照片进行修改,增加员工项目经历,查看员工所获全部证书及证书附件,查看员工所参加的项目情况;证书过期提醒,对员工三个月内即将过期的证书和已过期的证书进行提醒,便于公司维护员工资质;按资历人员检索,根据员工的学历、资质证书获得情况和项目经历进行人员检索,快速选出符合新项目条件的监理人员。

(4)监理项目监管模块。该模块是公司管理层分析监理服务质量,对监理人员进行业绩评分的辅助工具,包括以下子模块:项目数据批量导入,提供导入接口,从外部业务系统中导入监理项目的属性数据和监理日志、监理月报、在监项目进度等流程数据;项目地理分布可视化,通过地图展示省内各地级市的项目数量;监理质量统计分析,统计导入的各种流程数据,分析日志上传情况,生成统计分析报告。

2.2 非功能性需求分析

管理系统的用户多为监理公司内员工,对计算机的掌握程度不高,在以往的工作中,多使用传统办公软件进行数据交流,考虑到这些实际情况,平台要具备较高的易用性,要满足界面简洁、操作简单,尽量将对数据的各种维护操作开发成类似传统办公软件的模样。

3 系统关键模块设计

针对系统中的核心功能和关键技术,以下给出具体实现思路和方法。

3.1 代码自动生成工具CAGT

CAGT 是实现监理公司管理系统的基础辅助模块,通过使用该代码生成工具,为项目进度的推进节省了大量的时间。该工具的核心思路:事先设计好相应代码的模板文件,模板文件中预设了代码的重复性部分,对重复性且与具体数据表结构相关的部分使用占位符暂替,后续在工具的主方法里使用java 的IO 操作、反射特性,根据数据库中的表结构对模板代码中进行自动替换,实现代码的自动生成。

CAGT 功能实现的流程图如图2 所示。

CAGT 不仅能提高编码效率,更重要的是能通过CAGT 生成统一风格的代码,避免因为编码人员的失误导致的功能错误,能有效提高项目的健壮性和可维护性。

(1)Domain 文件生成方法。Domain 指的是数据库中的表对应的实体类,应包含数据表的所有属性和参数的get/set 方法。基于此,我们的模板文件中使用占位符#Domain#替换类名,使用JDBC 技术,查询表的meta-column 属性集,将其作为Domain 类的成员变量写入实体类文件。最后通过Eclipse 的generate 工具可自动生成Domain 类成员变量的getter 和setter 方法。

(2)Controller 文件生成方法。Controller 文件是服务端处理前端请求的文件,由于这些重复性请求处理代码的相似度很大,我们抽象出四个方法:增加domainAdd、删除domainDelete、修改domainEdit、查询domainQuery,用来完成所有控制器都应具有的增删改查功能,它们的URL 和方法名统一使用占位符的形式设置,在接受到映射后,会调用相应的Service 文件对应该请求的具体数据库查询服务方法。

对Controller 模板文件的替换有三部分:第一,将类名占位符替换为前一步生成的Domain 文件的名称;第二,将增删改查方法前和URL 前的占位符改为实例对象的名称;第三,将该文件的整体URL 映射名改成该模块的名称。

(3)Service 文件生成方法。Service 文件提供请求处理后需调用的JDBC 操作,对Controller 中的每一个模板方法,在Service 文件中都有对应的JDBC 操作方法,在该文件中,主要的占位符是数据表名称。在主方法中修改占位符的参数值,便能根据模板文件生成对应具体表结构的Service 文件。

3.2 身份验证功能

监理业务管理系统中,用户访问系统需先经过身份验证。系统采用了基于角色的访问控制策略,主要分为两部分完成:

(1)在数据库中为不同的用户按部门赋予角色;

(2)在服务端编写过滤器,当用户访问页面时,过滤器会对访问请求进行拦截,并按照权限策略控制用户的访问请求。

首先根据浏览器中的session判断用户是否登录,判断已登录后,从session 中抽取用户对应的角色,从而判断当前用户角色是否拥有对该资源URL 的访问权限。

3.3 项目地理分布可视化功能

图4:监理质量统计分析功能运行截图

为了更加直观地展示监理项目的地理分布,系统设计了项目按照地市分布的可视化功能,该功能基于流行的可视化图表工具Echarts 进行设计。该功能需要对地图中的地级市进行数据渲染:首先通过异步数据请求,依据项目所在地分组查询出项目的数量,得到以所在地和项目数量为关键字的多个Map 数据,再将Map 数据解析成格式化JSON 数据格式异步发给前端,前端收到数据后渲染地图控件。项目地理分布可视化功能运行截图如图3 所示:

3.4 监理质量统计分析功能

监理日志是监理公司的核心业务,为了让公司管理层及时、准确掌握员工的监理日志的上传记录,以及基于日志内容分析监理服务质量,在监理信息平台中设置监理质量统计分析功能。该功能的实现需要从外部系统导入的监理日志、监理月报、在监项目进度等流程数据。通过分析数据上传的频率、次数,得到在监项目的负责人员是否按时、按质地完成了监理工作。监理日志数据在界面中以柱状图的方式,提供分析的结果。监理质量统计分析功能运行截图如图4 所示。

4 总结

推动信息化发展对于提高监理企业的竞争力有着重要的影响,在当前互联网迅速发展的前提下,与互联网技术靠拢,对公司内数据的维护和管理有着极大的帮助。本文基于Java 反射技术,研发了一种适配Spring MVC 架构的代码自动生成工具CAGT,并基于该工具实现了监理业务软件快速开发,为加速我国监理行业的信息化提供了一种很好的实践。

猜你喜欢

代码管理系统监理
基于James的院内邮件管理系统的实现
基于LED联动显示的违停管理系统
创世代码
创世代码
创世代码
创世代码
关于建设工程监理发展趋势的探讨
海盾压载水管理系统
工程监理管理模式创新探索
基于RFID的仓储管理系统实现