基于MVC架构的港口预约提货系统的设计和实现

2021-10-17 09:35傅海洋林戒培
中国水运 2021年9期

傅海洋 林戒培

摘 要:随着国民经济的快速发展,为客户提供高效、便捷的服务是每个港口企业不断追求的目标。港口企业通过现代信息技术手段对资源进行有效整合,扩展线上快捷服务,可以极大的提升效率,增强企业运营能力。本文针对港口企业预约提货业务环节的组织、管理和实施工作,利用.NET运行环境、C#开发语言、数据库系统、IIS服务、微信公众平台等WEB信息技术和互联网应用,设计并实现了一种基于MVC架构的业务预约系统,应用于港口企业的客户预约提货环节。应用结果显示,本系统可以很好的解决港口企业货物车提出库作业中的客户、港口业务受理人员、卡车司机等角色在日常操作和管理中存在的问题,极大的提高了车提出库业务办理效率和港口信息化水平。

关键词:港口提货业务;WEB信息技术;MVC架构;业务系统设计

中图分类号:TP31       文献标识码:A            文章编号:1006—7973(2021)09-0064-04

港口为船舶、汽车、火车、飞机、货物、集装箱提供中转运输、装卸仓储等综合物流服务,货物车提出库业务是港口企业生产经营活动中最基本的环节,货物车提出库指的是港口货物的所有者向港口发送提货指令,在约定的时间通过指定车辆将货物从港口提取出库的过程。近年来,由于国际贸易的繁荣发展,港口企业商务部门受理出库业务的种类、数量不断攀升,给客户、港口商务管理人员的业务操作和执行带来新的挑战。港口的货物出库业务种类多、过程繁杂,而传统的人工管理效率较低,极易引发错乱,造成经济纠纷。在全球数字化建设的背景下,港口企业需从自身的实际情况出发,利用先进的信息技术手段,对预约提货过程进行优化设计,并结合设计结果加以实现。

1 系统分析

1.1系统需求分析

本系统主要针对港口车提出库手续办理环节,利用Internet信息服务技术和微信公众号工具,为客户提供移动终端和计算机终端相结合的业务办理方式,客户通过移动终端或者计算机端发送提货指令,港口管理人员在系统后台进行客户业务授权、提货审核、加车审核、受理结果反馈、记录车提出库数量、船名航次管理、提货公司管理、货权管理等业务受理,實现车提出库业务的智能化和信息化。

1.2系统功能分析

1.2.1系统角色功能分析

本系统的登录账户分为外部客户、企业用户和系统管理员三类,主要是为了区分提货业务申请人员、企业后台业务办理人员和系统管理人员,关联关系如下图:

系统功能包含:提货申请,加车申请,记录查询。企业用户的系统功能包含:业务办理、数据修改、货权管理、查询报表、车辆黑名单管理等。系统管理员的系统功能:拥有系统最高权限,主要包含:提货管理、加车管理、黑名单管理、货物管理、操作日志管理、客户管理、报表管理、角色管理等。

1.2.2微信公众号端功能分析

本系统在企业微信公众号端提供一个登录入口,为外部客户提供如下功能:

(1)“提货申请”功能分析:已授权的客户在公众号界面通过提货功能提交申请,系统对客户填写的信息进行必要的非空和合法性校验。

(2)“加车申请”功能分析:当天已申请的提货业务,客户可追加提货车辆,用于提高提货效率。

(3)“业务查询”功能分析:已授权的客户可在系统中查询业务申请历史记录和货权余量。

1.2.3系统后台相关功能分析

系统后台功能主要包含客户授权、提货审核、货权管理、微信公众号管理、角色和权限管理等:

(1)“客户授权”功能分析:为确保港口货物安全出库,客户在获取系统提货权限之前,必须到港口办理获取提货资格的手续(例如:加盖客户公司公章的提货授权书),企业后台业务办理人员在系统管理界面根据客户的货权信息对指定人员进行货权授权操作。

(2)“业务受理”功能分析:企业后台业务办理人员实时接收到已授权客户提交的指令,根据指令进行提货放行操作。

(3)“货权管理”功能分析:客户根据商务合同,在港口获得货物的所属权,系统提供对货权的管理功能,包括货权的创建、增加、转让、终止等。

(4)“微信公众号管理”功能分析:企业后台业务办理人员可以在系统后台管理企业微信公众号相关信息,例如:新闻、公司介绍、招聘等。

(5)“角色和权限管理”功能分析:建立用户、角色、权限的特权分离系统,用户对应各个角色,并相应的获得角色所拥有的权限,实现各个账号系统功能的差异化,操作行为可管、可控、可溯源,达到强化信息系统生命周期内数据安全的目标。

2系统设计

2.1架构设计

从运行、管理、使用和维护的角度出发,本系统采用B/S网络结构模式,使用.NET Framework运行环境,通过ASP.NET开发平台实现,ASP.NET是一种开源、跨平台、高性能、轻量级的Web应用程序开发技术,符合“高内聚,低耦合”思想,其ASP.NET MVC插件技术把各个功能模块划分为模型、视图、控制器3个逻辑层,各层之间采用接口相互访问,并通过对象模型的实体类(Model)作为数据传递的载体,不同的对象模型的实体类对应于数据库的不同数据表,实体类的属性与数据库表的字段名一致,极大的丰富了测试驱动的开发、对HTML标记的控制、对URL的控制,从而保证系统的稳定性和可靠性,系统架构设计图如下:

2.2数据库设计

为确保港口预约提货系统稳定、高效、安全的运行,系统需将预约信息、加车信息、船名航次、授权信息、用户角色等重要信息进行分类,相应数据存储在数据库表中,各类信息之间建立相应的关联和约束,以确保数据之间的关联性和完整性。同时,为确保系统的数据安全,本系统设计了严密的角色和用户关联关系。

主要数据库信息表如下:预约信息表PickupRecord、加车信息表AddCarrRecord、货权管理信息表CargoOwnerShip。通过设计PickupRecordID来唯一确定一条具体的预约记录,客户在预约后,企业后台业务办理人员通过OwnerID核实该用户的提货权限,如需要针对本次预约进行加车号业务,则通过AddCarrRecord表来实现加车,两者之间通过PickupRecordID进行唯一关联,从而保证预约和加车号的一对多关系,实现多次加车号的动态变化,有效满足客户需求。

各功能模块与数据库交互逻辑结构图如下:

3系统关键技术

3.1微软Entity Framework框架技术

本系统采用Entity Framework实体框架,实体框架(EF)是一个对象关系映射程序,是微软官方提供的ORM工具,可以让开发人员节省数据库访问的代码时间,将更多的时间放到业务逻辑层代码上。EF提供变更跟踪、唯一性约束、惰性加载、查询事物等。

3.2 ASP.NET MVC和ASP.NET动态数据

ASP.NET MVC的核心思想是将应用程序分解为3个逻辑部分,模型包含应用程序特定的业务代码,视图通过把模型呈现为HTML页面而创建模型的恰当表现,控制器协调整体的显示,处理用户交互,更新模型并向视图传送信息。

3.3 TypeScript技術

TypeScript是微软开发的一个开源的编程语言,通过在JavaScript的基础上添加静态类型定义构建而成。TypeScript通过专用编译器或Babel转译为JavaScript代码,可在任何浏览器、任何操作系统运行。TypeScript扩展了JavaScript的语法,所以任何现有的JavaScript程序可以运行在TypeScript环境中。

3.4其他相关技术

采用Epplus技术实现xlsx文件的导入导出,Epplus是一个使用Open Office XML(Xlsx)文件格式,通过引用dll文件实现系统对于xlsx文件的导入及导出功能。

采用log4net实现日志记录,log4net库是Apache log4j框架在Microsoft .NET平台的实现,是一个帮助程序员将日志信息输出到各种目标(控制台、文件、数据库等)的工具,可输出日志到多种目标,实现多层次的日志体系,可动态配置,记录上下文信息,采用模块化和可扩展化设计,使得整个系统灵活、高性能。

4系统部署

本系统采用集中式部署方案,实施时须确保网络环境畅通,在局域网与广域网间用防火墙隔离,保障数据安全,部署要点如下:

(1)网络部署:采用企业局域网,数据库采用主干网络,中间层采用单独的vlan,为确保数据安全,企业内网客户端网络无法直接访问数据库网络,只能访问中间层网络,从策略上确保数据安全;

(2)中间件部署:采用Internet Information Services(即:IIS,互联网信息服务),是由微软公司提供的基于运行Microsoft Windows的互联网基本服务。IIS依托.Net Framework 4.7.2,创建相应的应用程序池,选择集成托管模式,为了提高访问速度,建议把进程池的回收时间间隔设置为100,身份验证的属性修改为匿名身份验证,将标识改为应用程序池标识;

(3)数据库部署:采用SQL Server 2014数据库系统,将预约提货系统基础数据库的备份还原至数据库系统中,新增一个预约提货系统专用的数据库登录名,将该登录名映射为预约提货系统基础数据库的db_owner角色成员身份。

(4)微信端的部署:在微信公众号后台,进行自定义菜单设定,在微信公众号会话界面底部可以显示已设定的菜单,菜单项可按需设定,并可为其设置响应动作。用户可以通过点击菜单项,收到设定的响应,本系统设定为跳转到登录界面。

部署成功后的微信公众号界面如下:

5结论

本文针对港口企业货物车提出库业务,对业务流程、工作要求、系统架构、业务逻辑进行了梳理和分析,运用信息技术手段在PC端和手机端实现了预约提货业务的相关功能,给客户提供了多元化的提货方式,极大的提高了货物车提出库业务办理效率。运用.NET开发平台、C#开发语言、数据库系统、互联网信息服务等WEB技术框架,实现用户登录、预约申请、加车申请、后台审批、货权控制、提货车辆管理、提货实际数量反馈等功能,实现客户线上业务实时高效办理。本系统自2018年应用至今,累计实现货物预约提货近50000次,加车申请近80000次,服务各类港口客户1900家,应用效果显著,能很好的满足客户业务安全、快速办理的要求。

参考文献:

[1]赵显峰,王福斋,高学英.区域一体化交通运输安全应急指挥平台设计与实现[J].中国水运,2020(08) : 53-55.

[2]Matthew MacDonald,Adam Freeman,Mario Szpuszta.ASP.NET 4高级程序设计[M].北京:人民邮电出版社, 2013. 12-14.

[3]边蓓蓓,于萍.MVC模式在Web中的应用研究[J].数字技术与应用,2015(10) :136.

[4]李子乾,王乐之,张云志等.电网大规模数据库仓库的数据接入研究与设计[J].计算机应用与软件,2018(8) :181-185.

[5]潘雷.基于SOA架构的共享短信平台系统设计[J].中国水运. 2018,(09):19-20.

[6]贾顺贺,陈建飞,陈古运等.基于MVC架构的个人监控信息管理系统设计和实现[J].计算机应用与软件,2018(3) :43-48.

[7]林子雨,邹权,赖永炫.关系数据库库中的关键词查询结果动态优化[J].软件学报,2014,25(3) :528-546.

[8]刘玉佳.微信“小程序”开发的系统实现及前景分析[J].信息通讯,2017(1) :260-261.

[9] 李瀚.GBase8aMPP.一种新型关系数据库的设计和实践[J].电信网技术,2016(4) :23-24.