乐琪药品流向数据查询管理系统(二)系统架构篇
一、超乎想象
一入佛门深似海
,这个系统刚开始做时只是觉得就一个普通的爬虫项目,有近百个爬虫项目经验的我,自然认为小菜一碟。当入坑后才发现事情没那么简单。商业公司提供流向查询的方式主要有:
网站查询
提供地址和账号密码,可随时查询,但是近500个网站登录方式==简直就是百花齐放,多姿多彩==,有的要验证码,有的还需要手机短信验证,有的还要扫码验证,而且导出的数据还不一定是标准的excel格式。有不少网站登录密码还进行了加密,花了不少时间才分析出加密算法。
软件查询
需安装客户端软件,大概50多个。系统要求还有区别,有的要求win7,有的要求win10,各种环境要求,.net frameWork ,java JDK等,有的还在用foxpro...
数据直连
对方不提供网站查询,也没有客户端,但允许你在他们内网电脑或服务器上安装一个数据直连插件,定时向我们的后台上报流向数据。大概有70多家商业公司采用这种方式对接,需要一家一家的沟通联系,有的还不一定配合,浪费不少时间。
直连插件需要自己开发,要求适应不同的系统,不同的环境,还要熟悉对方的ERP系统及数据库(oracle,sql Server,mySql等),通常要自己分析出库、入库、库存查询的sql语句。有的商业公司没有IT人员,连ERP用的是什么都不知道,数据库信息更别谈了,需要自己
想办法
获取。虽然签了保密协议,但是这种对接方式其实不安全,插件在对方服务器里运行着,要是给心术不正的人,那真的可以说是==为所欲为了==。当然,部分有专业IT人员的商业公司,还会通过视图和权限做限制,这个相对安全很多。
这种方式对接稳定性还是可以的,除非对方服务器较较差,或者对方不配合,把插件关了。
- API接口,大概10来个,这种最方便,拿到文档和密钥可以直接开干。但是也遇到了一些问题,比如
广州交通物流有限公司
做的接口很烂,对接文档连时间格式也没有说明,只能靠猜,提供的密钥信息也不完整(实际上对方没配置好权限,让我折腾了很久),还只能查询一个月内的数据! 其它
小程序、邮件、FTP等,这些对接方式不超过10家,可忽略。
上面这些五花八门的对接方式,做起来非常耗时,既是脑力劳动,要分析各平台情况,又是体力活,一一核对字段,数据的准确性。曾经,我都想放弃了:cry:,还好坚持了下来!
二、系统架构
前面说的只是前端的数据来源,还需要后端的数据处理。比如说采集到的数据,导入到系统里,每家商业公司流向数据里的字段名称都不一样,需要跟系统里的标准字段一一对应,产品名称也各有各的写法,甚至有的公司连规格都不没有!下面是简单的系统架构图吧:
系统看起来很简单,但是实际上要做的东西比较多。系统后台用的是Java,springBoot+Vue,验证码识别模块,用的是python开发,有的验证码还需要自己训练。直连插件服务端用的是.net Core、客户端用的是.net winForm。
评论已关闭