一、概述
上海天马Portal管理系统是为了在公司内部整合所有业务系统,规范统一入口,消息通知,业务处理,是业务统一入口,用户无需牢记各个应用系统的地址,降低用户使用时的困难,避免用户来回切换业务系统,提升用户工作效率。
二、范围定义
2.1 目标
Portal系统作为天马所有业务系统的门户集成者,主要覆盖人员管理系统,设备点检系统,设备管理系统,MES系统,产品品质管理系统等,需要各个业务系统信息数据展现,业务消息推送,业务办理。
2.2 原则
Portal门户不承担业务数据的持久化(或少量承担),为做到Portal信息的规范,我们必须制定Portal业务数据格式,消息格式的标准,Portal实现了用户一次登录后就能使用Potral中其他业务系统,用户不再进行登录操作。
2.3 系统功能
2.3.1 常规登录
通过输入用户名密码的方式,进行登录。该方式是最为常规的登录方式,为系统保留。
2.3.2 快捷登录
为了提高使用效率,系统提供快捷登录方式。在手机APP(NFC扫描工作卡)和工作站(读卡器扫描工作卡)的计算机上应用此方式。
2.3.3 用户信息显示
用户登录后,主要页面会显示用户的基本信息(文本)。
用户头像:由于用户信息不由本portal系统产生和维护,故仅显示用户头像,头像数据由甲方提供。
2.3.4 事件提醒
由于portal和多个系统有数据对接,当有新的事件发生时,应该主动提示用户:客户端程序通过闪烁或者弹出窗口的方式来主动提醒。
2.3.5 异常反馈
对接异常系统,获取异常信息并显示,提供反馈处理的跳转(URL方式,直接跳转到异常系统的对应界面)。
2.3.6 活动追踪
提供登录用户的活动追踪功能,通过点击某个活动按钮,以开始某个活动,此时系统开始针对改活动进行时间记录。需要切换活动时,点击对应活动按钮即可,系统自动记录前一个活动结束, 后一个活动开始。
最后一个活动的结束由用户的“注销”操作,或者“用户切换”操作界定。
注意:由于活动开始和结束需要通知给活动业务系统,故存在着对接工作,portal系统主动调用业务系统活动相关接口。
2.3.7 历史活动查询和统计
仅实现简单的查询和统计功能。
仅提供以日为单位查询某一日的活动记录表格,以及当日活动时间比例饼图。
2.3.8 任务列表
与任务的来源业务系统对接,获取并显示当前用户的任务列表。
此处仅提供未完成任务列表,列表由业务系统调用portal系统的接口进行添加。当任务完成后,任务产生的业务系统亦需要调用portal系统的接口从列表移除。
2.3.9 待办列表
与待办事务的来源业务系统对接,获取并显示当前用户的待办列表。
此处仅提待办的列表,列表由业务系统调用portal系统的接口进行添加。当待办完成后,业务系统亦需要调用portal系统的接口从列表移除。Portal只缓存待办事务。
2.3.10 业务系统跳转
2.3.10.1 跳转授权
概念:IT行业的OAuth或者OAuth2的授权方式是指,系统通过此种方式,授权外部访问系统保护资源,而不用直接验证用户名和密码。
从内容上讲,portal对其他系统只提供用户基本信息,没有更多的资源和服务需要授权给第三方系统,故不太适用于此范畴。且采用OAuth或者OAuth2的授权对系统的工作量和对接难度,大大提升,更是没有必要。
此处所谓的跳转授权,其实只需要让各业务系统知晓是从portal跳转过来的,而且知晓是哪个用户便可。
他因此,在portal跳转到各业务系统的信息中,portal会带上2个信息:
portal系统的固定标识:告诉业务系统是来自于portal系统的跳转。
跳转用户的工号:告诉业务系统是哪个用户跳转
业务系统在检查跳转信息时,除了上述两个信息,还应该检查跳转请求的源IP地址和MAC地址,以确定是portal系统的请求,借此提高安全性。
跳转之后,各业务系统后台直接从中间数据库拉取用户信息,或者调用portal系统的接口,以获取用户信息。
2.3.10.2 跳转方式
为了方便使用各业务系统,portal提供系统的跳转。
Web跳转:如果以web的方式使用portal,则跳转至业务系统的web页面 APP跳转:若果以app方式使用portal,则打开对应业务系统的app
客户端跳转:若依客户端方式使用portal,则打开对应业务系统的客户端程序
若在某种类型的portal终端程序上(web、app或客户端),无对应业务系统的跳转方式,则尝试以web方式跳转。
2.3.10.3 业务系统列表显示
Portal系统存储各个业务系统的访问权限设置,并在用户登录portal之后,只显示拥有访问权限的业务系统的跳转按钮。
2.3.11 注销
已登录的用户,直接点击注销按钮进行注销,同时系统自动完成与注销相关的业务操作和数据记录。
2.3.11 切换登录
与常规登录和快捷登录的使用方式完全相同,不同之处在于,常规登录或者快捷登录的时候,当前已有用户登录。如果切换登录的用户与当前用户相同, 则不产生任何状态变更和多余的处理;若不同,则属于真正的切换,此时相当于执行了前一个用户的注销动作,和后一个用户的登录动作。
2.4 访问终端程序
系统提供三种访问终端程序:
2.4.1 Web页面
提供Web服务器,通过常用浏览器在PC上进行访问。
2.4.2 手机App访问
提供App在手机上进行访问。App实现NFC登录功能。通过NFC扫描员工卡,获得工号,以实现快捷登录。
2.4.3 客户端程序访问
在工作站中,一般只提供了PC作为访问终端,此时我方提供一套基于Windows系统的客户端程序,以实现访问。
登录后,该客户端程序需常驻系统通知栏,当有新的消息时,需要使得通知栏闪动或主动弹出窗口,达到消息及时提醒用户的目的。
该客户端程序提供读卡器登录功能:工作站计算机连接读卡器,用户通过再读卡器上刷员工卡,或得工号,以实现快捷登录。
2.5 对外接口
对外接口指:portal系统提供并开发,供各个业务系统来调用,完成某一个具体业务的接口。
所有接口均使用近年最为主流的Restful接口,数据均使用json格式传递。
所有的接口均需要带上业务系统编号(届时需要统一约定),用于portal识别是哪个业务系统调用了接口。待定:所有接口的具体调用地址、参数、返回值等内容待以后确定。
2.5.1 用户登录验证
传递工号和密码,返回登录是否成功,若成功,则同时返回用户基本信息。
业务系统仍然可以绕过该接口,自行从中间数据库获取数据,实现登录验证。
2.5.2 用户信息获取
传递工号,若用户存在,在直接返回用户信息;若不存在,则返回错误。
2.5.3 事件通知
各个业务系统把事件按照工号和分类(如异常、任务、待办等)来通知给portal系统;portal系统返回事件ID给各业务系统,并暂存事件;在事件消失前,各个业务系统需要暂存业务ID及其他相关信息,便于信息缓存。
2.5.4 事件消失通知
当事件消失时(如异常关闭、任务完成、待办完成),各业务系统需要向portal取消事件,通过调用此接口,并传递事件ID的方式,以确定具体要取消的事件。
2.6 业务系统接口
业务系统接口指:相关的所有业务系统均需要提供的接口,供portal系统调用。需要业务系统主动对接各个业务系统, 故工作量对比对外接口更多。
所有接口均使用近年最为主流的Restful接口,数据均使用json格式传递。
所有的接口均需要带上业务系统编号(届时需要统一约定),用于portal识别是哪个业务系统调用了接口。
待定:所有接口的具体调用地址、参数、返回值等内容待以后确定。
2.6.1活动开始
用户在portal系统中的活动操作,需要通知给业务系统,以便业务系统做相应处理。
Portal需要调用业务系统的接口,传递自身系统编号、用户工号、活动类型、开始时间等参数。
2.7 不包含的
2.7.1 用户数据的来源和管理
数据由甲方自行同步到中间数据库,并进行数据的管理。需提供相关说明或文档,来解释数据结构、数据含义等,便于我方的使用。(我方仅根据自身存储附加和辅助的数据)
2.7.2 用户头像数据
同上,用户数据来源于中间数据库,故系统也不提供用用户头像数据,而是甲方自行同步到中间服务器,并提供访问方式(通常是一个图片文件的URL)以供portal系统访问。
三、解决方案
3.1系统信息表
3.1.1提供用户表,统一登录
3.1.2建立异常表,记录一般异常信息和统计异常信息
3.1.3建立活动表,记录相关活动信息
3.1.4建立任务表,统一任务功能
3.1.5建立代办表,统一代办功能
3.1.6建立业务表,统一业务管理功能
3.2权限系统
3.2.1建立人员业务表,对人员的业务进行统一管理
3.3其他子系统需提供接口
3.3.1每一套系统提供一套OAuth或者OAuth2的授权方式Api,并能获取人员的详细信息
3.3.2根据提供时间查询异常接口
3.3.3根据提供时间查询异常接口
3.3.4根据人员和时间查询活动信息列表接口
3.3.5根据人员和时间查询任务信息列表接口
3.3.6根据人员和时间查询代办信息列表接口
3.4三种产品:PC版、Android版本、Web
3.4.1 PC版对桌面程序和Web进行操作
3.4.2 Android版本对Android应用控制和Web进行操作
3.4.3 Web版
3.5服务器配置和技术架构

3.5.1采用以上体系架构,其中客户端有window桌面程序、Html网页程序、android应用程序。
3.5.2Web服务器(rest)作用有两个
1.定期从各应用服务器获取数据。
2.给客户端提供数据。其中给客户端提供数据也有两种方式:
A、客户端通过接口和从Web服务器获取数据。
B、通过当Web服务器数据发生变化时,通过socket向客户端推送数据
3.6使用到的技术
3.6.1 程序window面板要使用VC++(尽量使用C#),方便对其他桌面程序和Web程序控制
3.6.2 Web网页使用html、css、es6、react.js等前端技术
3.6.3 Android程序需要Android编程相关技术,可能会使用综合开发,比如rn
3.6.4 后端服务器采用Java开发,数据库是Oracle
3.6.5 Web服务器和各种客户端socket通讯技术
3.7界面信息
界面适合桌面版和App版本,桌面版可以在任务栏托盘区显示
四、作品截屏



