基于B/S的通用航空运行管理系统设计与实现
2023-02-28赵富强朱小波罗伍周舒炎昕
赵富强 朱小波 罗伍周 舒炎昕
摘 要:针对通用航空企业业务数据分散、部门间信息协同程度低、数据缺少统计分析等问题,提出了一种通用的信息化解決方案,系统采用B/S架构,使用Spring Boot框架,前端使用Layui框架,数据库使用MySQL,开发工具使用IntelliJIDEA,系统实现了生产、工程、飞行、航务、安全等多部门业务的数据协同处理与分析,包括线上业务管理、流程发起和审批、数据处理与统计分析、信息推送与预警、可视化展示等功能。经过通用航空公司应用验证,该系统可有效提升通用航空企业的信息化管理水平和运营效率。
关键词:B/S;Layui;MySQL;通用航空
中图分类号:TP393 文献标识码:A 文章编号:2096-4706(2023)20-0010-09
Design and Implementation of General Aviation Operation Management System Based on B/S
ZHAO Fuqiang, ZHU Xiaobo, LUO Wuzhou, SHU Yanxin
(The Second Research Institute of CAAC, Chengdu 610041, China)
Abstract: In view of the problems of business data dispersion, low level of information collaboration among departments, lack of data statistical analysis in general aviation enterprises, this paper proposes a general information solution. The system uses B/S architecture, Spring Boot framework, Layui framework in front-end, MySQL in database, IntelliJIDEA in development tools. It implements collaborative data processing and analysis of production, engineering, flight, navigation, safety and other multi-department business, including online business management, process initiation and approval, data processing and statistical analysis, information push and early warning, visual display and other functions. The system can effectively improve the information management level and operational efficiency of general aviation enterprises, which has been verified by the application of general aviation companies.
Keywords: B/S; Layui; MySQL; general aviation
0 引 言
通用航空产业属于国家战略性新兴产业,是推动低空经济发展的重要产业之一,在工农业生产、抢险救灾、医疗救援、娱乐飞行等方面能够发挥重要作用。近年来通用航空发展态势良好,据《2021年民航行业发展统计公报》统计,截至2021年底,获得通用航空经营许可证的传统通用航空企业共599家,全国通用航空器在册总数为3 018架。从企业层面来看,通用航空业务管理包含人员管理、航空器管理、机场管理、作业管理、运行保障管理等多种业务类型[1],每种业务类型不仅涉及信息指标众多,同时还包括信息采集、校核、流转、共享、发布等诸多环节。随着通用航空业务范围的拓展和业务量的增长,对通用航空企业的运营管理难度也将越来越大,在管理和决策过程中需要掌握和处理的信息越来越多,各部门之间协同工作的要求越来越高,对信息化管理的需求也越来越迫切,而目前大部分通航企业依靠纸质流转数据、适航维修与飞行运行信息协同低、运营与管理效率低等难题。如何提升通用航空企业的业务信息协同处理水平,进而为企业运营管理提供降本增效的方案是本文关注的重点。
随着信息技术的不断发展,国内学者对通用航空的信息化领域开展了一些相关研究。路晶[2]等提出了一种通用航空飞行数据监控系统,对Garmin1000训练飞机的训练数据进行分析挖掘,提高飞行训练品质;李国玲[3]等提出一种通用航空应急计划管理系统,探索建立融合申请、调度、救援等要素的系统平台;吴仁彪[4]等提出一种通航飞行计划评估系统,从关键指标、垂直飞行剖面以及三维可视化3个方面评估,为通用航空飞行计划的制订和审批提供依据;李传岚[5]提出一种通用航空飞行器智能维修管理系统,提高通航企业维修管理工作的效率;张雷等[6]提出一种基于闭环工作流引擎的通用航空安全管理信息系统,上述研究只解决通用航空适航维修管理和飞行运行管理某个环节的局部问题,缺少从整体上研究通用航空业务的方案,而适航维修管理和飞行运行管理相关业务相辅相成,是通用航空企业高效运营的两翼,缺一不可,只有从整体上考虑,才能真正提高通用航空的信息化水平和运营效率。
本文提出了一种将多业务进行协同处理的通用航空业务运行管理方案,实现了多部门协作分工,将业务处理实现流程化、模块化、电子化,提高了信息流转效率,为通用航空信息化管理提供了一种新的思路和方法。经过实际应用表明,本方案可为通用航空企业的高效运行提供有效的技术支撑。
1 架构技术
1.1 Spring Boot框架
Spring Boot是由Pivotal团队提供的全新框架,其设计目的是用来简化新Spring应用的初始搭建以及开发过程[7]。通过简单的配置便可以实现不同功能的子框架,比如Druid数据库连接池实现对MySQL数据库的管理,整合Kafka来解决数据高并发的问题[8]。
1.2 Layui框架
Layui是一套开源的Web UI组件库[9],采用自身轻量级模块化规范,遵循原生态的 HTML/CSS/JavaScript开发模式。适合网页界面的快速构建。采用Layui可以有效缩短开发周期。
2 系统设计
2.1 需求分析设计
通用航空企业应当遵守国家法律、行政法规和规章的规定,在批准的经营范围内依法开展经营活动[10]。本系统结合民航相关规章和通航企业的实际业务需求进行设计,根据CCAR-91部《一般运行和飞行规则》、CCAR-135部《小型商业运输和空中游览运营人运行合格审定规则》、CCAR-145部《民用航空器维修单位合格审定规则》、CCAR-43部《维修和改装一般规则》等规章相关规定进行功能设计。
2.2 业务功能设计
系统包括登录模块、生产管理、工程管理、质量管理、航材航油管理、机务管理、航务管理、飞行管理、飞标管理、机务管理、安全管理等模块[11]。可以满足通用航空企业适航管理、飞行运行管理、航材航油、安全管理等信息化管理需求,相关部门之间共享基础数据。具体功能如图1所示。
2.3 系统架构设计
系统使用Spring Boot和Layui框架,基于B/S(Browser/Server)架构设计,系统架构如图2所示。
1)客户端。本系统客户端包括PC端(Web)和手机移动端,支持Android和iOS系统手机使用,网页端和移动端保持数据同步,可同时满足日常公司办公和管理人员、机务、飞行员移动办公需求。
2)用户层。系统的用户分为企业人员、企业管理人员、行业监管人员、系统管理员,用户权限通过数据库中的权限字段进行划分,不同权限对应不同的功能,其中,企业人员、企业管理人员、系统管理员为企业内部用户,行业监管人员账号可满足监管人员查看信息需求。所有用户的权限由系统管理员进行统一账号管理和权限分配,各用户根据各自权限对系统进行操作。
3)功能层。功能层包括个人中心、适航管理、安全管理、飞行运行管理、市场财务管理和平台管理六个部分。
4)支撑层。支撑层包括业务流程管理、数据统计分析、信息监控预警、数据存储转发、数据可视化展示、加密传输、数据解压缩等。
5)系统层。系统层包括数据库服务器、文件服务器和网络服务器。
2.4 系统开发环境
系统客户端包括网页端和移动端,移动端包括Android和IOS应用,其中网页端采用IntelliJ IDEA 开发工具开发,主要使用Java、JavaScript等编程语言;Android端采用谷歌公司推出的Android Studio工具进行开发;IOS应用采用苹果公司推出的XCode工具进行开发,数据库采用关系型数据库MySQL进行设计,系统应用部署于阿里云服务器。
3 关键算法与技术
3.1 SHA算法
SHA(Secure Hash Algorithm),即安全散列算法,该算法由美国国家安全局(NSA)和美国国家标准与技术研究院(NIST)在2002年发布,包括SHA-1、SHA-224、SHA-256、SHA-384和SHA-512共5个算法,后四者并称为SHA-2(Secure Hash Algorithm 2)[12,13]。其中,SHA256能将有限长度的输入消息(长度小于264位)转换为256位的输出信息摘要,可应用在注册登录、文件校验、数字签名、数字货币等场景。本系统采用在登录阶段对密码进行处理后密文传输。步骤分为信息预处理、数据扩充和数据压缩三个部分。如图3所示,用户输入密码后,经过信息预处理、数据扩充和数据压缩流程,形成密文,存入数据库。
加密算法的主要代码为:
public CommonResultlogin(BaseEmpbaseEmp, HttpServletRequest request) throws Exception {
//对输入的密码进行加密
if(baseEmp!=null
&&baseEmp.getPassword()!=null && !(
"".equals(baseEmp.getPassword()))) {
baseEmp.setPassword(EncryptUtils.getSHA256EncString(baseEmp.getPassword()));
}
// 根據用户名和密码创建 Token
UsernamePasswordToken token = new UsernamePasswordToken(baseEmp.getName(), baseEmp.getPassword());
// 获取 subject 认证主体
Subject subject = SecurityUtils.getSubject();
try {
// 登录认证
subject.login(token);
return CommonResult.success(
"登录成功");
} catch (Exception e) {
e.printStackTrace();
if(e.getCause()!=null&&e.getCause().getMessage().contains("已被冻结")) {
return
CommonResult.failed(e.getCause().getMessage());
}
return CommonResult.failed(
"登录失败,用户名或密码错误!");
}
}
3.2 飞机定检监控
定期检修(简称定检)是指根据适航性资料,在航空器或者航空器部件使用达到一定时限进行的检查和修理,定检是航空器持续适航的最低要求[14]。定检工作包括航线维护,所有按飞行小时、飞行起落、等效飞行循环、日历时限要求实施的维修检查工作。定检适用于機体和动力装置项目,不包括翻修。设计一种定检监控管理方法,经过配置并启动后可实现对飞行小时、飞行起落、等效飞行循环、日历实现的监控。
定检监控管理包括三个模块,分别是单机档案模块、定检级别模块和定检监控配置模块;1)单机档案记录航空的基础信息。2)定检级别设置并保存某型航空器的所有定检信息,如机体100小时定检、机体100小时定检,发动机200小时定检、发动机400小时定检等。3)在定检监控配置里设置定检的名称、类型、计算方式;配置完启动定检监控按钮即可执行监控。可根据日历时、飞行时间、起落次数、启动次数进行监控预警,当达到预警值时,系统提醒生产计划部相关人员,生产计划部根据需要下发定检生产指令。
定检管理主要代码如下:
ScheduleCheckInfo info = new ScheduleCheckInfo();
Aerobat aerobat = aerobatService.selectAerobatById(a_id);
List
BOConstants.SYSTEM_PRODUCE_PLAN,
BOConstants. SYSTEM_FIELD_PRODUCEPLAN_SCHEDULECHECK_LEVEL_TYPE);
List
BOConstants.SYSTEM_PRODUCE_PLAN,
BOConstants. SYSTEM_FIELD_PRODUCEPLAN_AEROBAT_TYPE);
Map
Collectors.toMap(SystemOption::getCode, (k) -> k));
info.setA_id(a_id);
info.setScl_id(scl_id.toString());
info.setA_number(
aerobat.getA_nationality());
info.setA_type_name(
typeMap.get(aerobat.getA_model_number()).getName());
info.setA_fly_time(
aerobat.getA_total_fly_time());
info.setA_total_start_times(
aerobat.getA_total_start_times() + "");
info.setA_total_up_down(
aerobat.getA_total_up_down() + "");
info.setA_use_total_life(
aerobat.getA_use_total_life( ));
info.setA_use_calender_year(
aerobat.getA_use_calender_year());
info.setA_left_engine_flytime(
aerobat.getA_total_left_engine_flytime());
info.setA_right_engine_flytime(
aerobat.getA_total_right_engine_flytime());
info.setA_single_engine_flytime(
aerobat.getA_total_single_engine_flytime());
model.addAttribute("obj", info);
ScheduleCheckLevel item = sclService.getScheduleCheckLevelById(scl_id);
List
if(configs == null || configs.size() <= 0) {
configs = Lists.newArrayList();
ScheduleCheckConfigcfg = new ScheduleCheckConfig();
cfg.setA_id(a_id);
cfg.setScl_id(item.getScl_id());
cfg.setScl_name(item.getScl_name());
cfg.setScl_type(item.getScl_type());
configs.add(cfg);
}
3.3 时控件监控
时控件(Life Limited Parts, LIP),也称时寿件,指在航空产品(航空器、发动机或者螺旋桨)持续适航文件中有强制更换要求的部件[15],通常包括寿命件和定期翻修件两种。时空件管理是飞机研制、适航审定、行业监管及企业运营的重要环节,关系到飞机的运行安全。对于机型多、机队庞大的通航企业,按照传统的卡片或Excel表格监控容易产生漏检或过期。时控件包括对发动机转动部件寿命控制,需要记录启动次数、飞行次数和各种参数的影响系数。
根据不同的机型、不同型号发动机进行相应的配置。对于其他时控件,通过飞行小时、起落数、飞行时间,通过人工设置参数后,系统自动计算返修剩余飞行时间、返修剩余使用天数、返修剩余起落数、剩余使用天数、剩余起落数、总等效循环数等参数。本模块实现时控件监控与预警,采用绿色、蓝色、红色分别标示时控件正常、将过期、过期三种预警状态,提醒相关人员根据预警情况下达拆装生产指令。时控件监控主要代码如下:
//添加配置公式参数
TimeControltc= tcService.getTimeControlsById(
timeControls.getTc_id());
tc.setTc_cycle_id(
timeControls.getTc_cycle_id());
tc.setTc_param1_value(
timeControls.getTc_param1_value());
tc.setTc_param2_value(timeControls.getTc_param2_value());
tc.setTc_param3_value(
timeControls.getTc_param3_value());
tcService.modifyTimeControlsById(tc);
//判断公式,计算等效参数
if(item!=null&&item.getTc_cycle_id()!=null){
//第一种计算方式
if(item.getTc_cycle_id()==1){
Integer qidong = (
aerobat.getA_total_start_times() == null ? 0 :aerobat.getA_total_start_times());
Integer feixing = (
aerobat.getA_total_up_down() == null ? 0 :
aerobat.getA_total_up_down());
Double a=(
qidong+(feixing-qidong)/item.getTc_param1_value())*item.getTc_param2_value(); item.setTc_cycle_no(
MathUtils.doubleKeepDecimal(a,2));
}else if(item.getTc_cycle_id()==2){
//第二種计算方式
Integer NS = (
aerobat.getA_total_start_times() == null ? 0 :
aerobat.getA_total_start_times());
Integer NV = (
aerobat.getA_total_up_down() == null ? 0 :aerobat.getA_total_up_down());;
Integer NP = NV;
Double a=(
NS+item.getTc_param1_value()*(NV-NS-NP)+item.getTc_param2_value()*NP)*item.getTc_param3_value(); item.setTc_cycle_no(
MathUtils.doubleKeepDecimal(a,2));
}else if (item.getTc_cycle_id() == 3){
Integer qidong= (
aerobat.getA_total_start_times() == null ? 0 :aerobat.getA_total_start_times());
Double a = qidong+(
qidong*item.getTc_param1_value()*item.getTc_param2_value()); item.setTc_cycle_no(
MathUtils.doubleKeepDecimal(a,2));
}
}
//时间计算-
int fly_hour = fly[0], fly_m = fly[1];
int lmt_hour = limit[0], lmt_m = limit[1];
int[] cur_fly = getFlytime(info.getA_fly_time().contains(":") ? info.getA_fly_time().split(":") : info.getA_fly_time().split(":"));
int fly_data = fly_hour * 60 + fly_m;
int lmt_data = lmt_hour * 60 + lmt_m;
int cur_data = cur_fly[0] * 60 + cur_fly[1];
if(fly_data return false; } else { if(fly_data>lmt_data&&lmt_data return true; } } 3.4 工卡与指令管理 工卡是指为执行各类维修工作而编制的工作单/卡,是航空器例行和特殊维修工作的基本依据。工程指令是指工程技术部门编写的工程指令。工程技术部会依据CAD(适航指令)、服务通告(SB)和服务信函(SL)的内容,其中SB、SL经过评估确认本公司是否执行,若执行则编写的相应的工卡文件,通过系统下发给生产计划部,生产计划部再下发生产指令,机械师接收生产指令并执行相关工作,工程指令和生产指令的审批流程如图4所示。 首先,工程技术工程师根据工作需要提交工程两类工程指令文档(分为135部工程指令和非135部工程指令两种类型),135部是指CCAR-135《小型航空器商业运输运营人运行合格审定规则》[16],经工程技术部审批,质量管理部审批后,根据工程指令类型分别由质量经理和135部维修负责人进行审批,流程结束。生产计划工程师在编写生产指令时选择所需工卡、航油申请单、航材申请单,分别经批准人、接收人、放行人确认,并经机务机械师录入数据后,经质量审核人审批,流程结束,审批通过的生产指令回收至生产指令编写人员。通过跨部门流程有助于部门间的数据共享并提高了协作效率。 3.5 飞行计划与数据管理 通航企业执行飞行作业任务,需要多个部门协同参与保障,比如上报飞行计划,相关保障部门需要做好保障工作,确保飞机处于适航且可以作业状态。机组填写飞行日计划,运控部门审批,保障部门准备保障工作,確认飞机保险、人员、天气情况是否符合要求,符合要求则执行外场作业或本场训练任务,执行任务结束后填报经营性数据和非经营性数据,如图5所示。 4 系统功能设计 4.1 个人中心模块 个人中心主要包括个人信息、通讯录、流程审批、文档中心、气象服务、飞行计划等模块。 4.2 适航管理模块 航空器定检维修是飞行活动和安全高效作业的重要保障,本系统通过适航管理模块实现包括生产计划管理、工程技术管理、质量管理、航材供应管理、航油供应管理、机务管理,其中,生产计划管理包括单机档案、指令管理、定检监控、飞行时间统计等;工程技术包括适航性资料、AD/SB/SL评估、EO管理、培训与考试管理等;质量管理包括航空器三证管理、人员三证管理、维修验收管理、质量审核管理、风险管理等;航材供应管理包括采购管理、仓库管理、库存管理;航油供应管理包括航油申请管理、仓库管理、库存管理;机务管理包括生产指令、航空器故障信息、工作日志等。 4.3 安全管理模块 安全管理模块包括安全通知管理、安全培训管理、不安全事件管理、隐患检查与整改等。 4.4 飞行运行管理模块 飞行运行管理模块包括飞行管理、航务管理、运控管理、飞标管理,其中,飞行管理包括开/停飞、非经营性飞行计划、经营性数据、非经营性数据等;航务管理包括非经营性数据录入、管制员指挥时间管理、135部飞行时间记录等;运控管理包括飞行日计划管理、开/停飞管理、经营性/非经营性数据看板等;飞标管理包括飞行员资质管理、EFB管理、考试管理等。 4.5 市场财务管理模块 市场财务管理包括对外保障计划、经营性飞行计划、合同管理、飞机保险管理等。 4.6 平台管理 平台管理主要包括账号管理、日志管理、数据字典、部门管理、岗位权限管理、流程管理。 5 系统页面展示 5.1 生产计划功能界面 生产计划管理如图6所示,页面采用侧边导航栏(抽屉式)设计,左侧显示单机档案、指令管理、监控管理等功能模块,点击左侧相应的功能模块,右侧同步显示对应的功能界面。其中,定检监控管理模块可以对时控件的预警状态进行监控,系统根据配置的定检项目、预警值、工差时间计算航空器日历时、飞行时间、起落次数和启动次数,并显示预警状态,提醒机械师执行相关工作。 5.2 工程技术功能展示 工程技术功能页面如图7所示,包括适航性资料查询、AD/SB/SL评估管理、EO管理、培训管理等功能。其中,培训管理主要针对教员授权、机务人员考试和人员技术档案进行监控管理。 5.3 飞行标准功能界面展示 飞行标准模块如图8所示,包括飞行资质管理、机组排班管理、EFB管理和考试管理,其中个人基础源数据可以记录飞行员基本信息、执照权力等级、飞行经历时间(包括总飞行时间、总机长时间、总副驾时间、总带飞时间、总夜航时间、总仪表时间、总教员时间、总转场时间、总起落架次)、各机型总时间等,可有效记录飞行员的飞行经历基础源数据。 5.4 平台管理功能展示 平台管理功能界面如图9所示,主要包括账号管理、日志管理、数据字典等模块,其中流程管理可以对审批流程可根据企业审批流程变化进行发布、修改、作废,并可对申请表单进行设置,有一定的灵活性。 6 性能测试 系统部署于阿里云服务器,并通过Nginx实现负载均衡,提高了系统的响应速度和抗压能力。通过对事务数/秒和响应时间测试,可以反映系统的整体性能。事务数/秒简称TPS(TransactionsPerSecond),客户机在发送请求时开始计时,收到服务器响应后结束计时,以此来计算使用的时间和完成的事务个数[17]。响应时间RT(Response-time)是执行一个请求从开始到最后收到响应数据所花费的总体时间,即从客户端发起请求到收到服务器响应结果的时间,该数值大小可直接反映系统快慢,通常情况当用户能够在2秒以内得到响应时,用户会认为系统的响应很快。系统经过阿里云性能测试(Performance Testing Service,简称 PTS)),测试结果如图10~12所示。 测试结果表明,平均响应时间RT值为290 ms,TPS(平均/峰值)为68/129,请求成功率100%,可以发现系统性能良好,可有效满足用户运行要求。 7 结 论 本文提出了一种基于SpringBoot框架的通用航空运行管理系统,将适航维修、飞行运行、市场等业务的形成闭环进行管理,实现业务协同、数据共享共用、实时掌握运营数据等功能。该系统在某通用航空公司进行了成功应用、可靠运行,不仅打通业务数据壁垒,实现互联互通,规范了通用航空部门间的协同,提高了工作效率,可為通用航空企业业务协同管理提供借鉴。 参考文献: [1] 张宪民,于智博.综合业务管理平台在机场行业的应用 [J].中国航班,2021(18):37-38. [2] 路晶,王合超,王永根,等.通用航空飞行数据监控系统设计与实现 [J].科技和产业,2022,22(7):295-299. [3] 李国玲,严欢,刘明,等.通用航空应急计划管理系统的设计与实现 [J].中国新通信,2021,23(23):39-41. [4] 吴仁彪,马亚冰,王晓亮.通航飞行计划评估系统设计与实现 [J].中国民航大学学报,2016,34(6):1-5+54. [5] 李传岚.通用航空飞行器智能维修管理系统设计与实现 [D].北京:北京邮电大学,2019. [6] 张雷,刘晓东,路晶.基于闭环工作流引擎的通用航空安全管理信息系统的设计与实现 [J].中国民航飞行学院学报,2019,30(3):35-38. [7] 杨敏,徐万明,田新宇,等.基于Spring Boot框架和Android的会议管理系统设计与实现 [J].信息与电脑:理论版,2022,34(12):94-96. [8] 韩佳彤,杜芳,甄必鑫,等.基于SpringBoot的分布式市政运维分析平台 [J].内蒙古大学学报:自然科学版,2022,53(3):309-316. [9] 曹灿,刘志刚.基于SSH和Layui的工程科学前沿与实践系统 [J].工业控制计算机,2019,32(2):91-92+96. [10] 通用航空经营许可管理规定 [J].中华人民共和国国务院公报,2020(33):63-68. [11] 张宪民,于智博.综合业务管理平台在机场行业的应用 [J].中国航班,2021(18):37-38. [12] 陈镇江,张寅,张志文,等.一种基于数据存储的流水SHA256硬件实现电路 [J].电子技术应用,2019,45(7):44-49. [13] 张大松,姜洪朝,刘智国.基于SHA-256的可信启动完整性校验程序设计与验证 [J].网络安全技术与应用,2022(3):49-51. [14] 郭萍. 国内民航维修业(MRO)的产业化发展研究 [D].昆明:云南大学,2010. [15] 交通运输部关于修改《维修和改装一般规则》的决定 [J].中华人民共和国国务院公报,2019(7):85-91. [16] 交通运输部关于修改《小型航空器商业运输运营人运行合格审定规则》的决定 [J].中华人民共和国国务院公报,2019(11):45-46. [17] 张帅峰,周昕,刘继兴,等.基于TCP服务器的并发方案 [J].科技创新与应用,2022,12(24):18-20+24. 作者简介:赵富强(1987—),男,汉族,河南周口人,工程师,硕士,研究方向:通用航空信息化、信号与信息处理;通讯作者:朱小波(1982—),男,汉族,四川成都人,高级工程师,硕士,研究方向:通用航空信息化、通用航空装备研发;舒炎昕(1995—),男,汉族,陕西汉中人,工程师,硕士,研究方向:通用航空信息化;罗伍周(1990—),男,汉族,四川达州人,工程师,学士,研究方向:通用航空信息化、通用航空装备研发。 收稿日期:2023-02-14