rms(Repair Management System)
整体架构
1 | rms |
架构介绍
mysql模块
- 1.使用pooledDB连接池
- 2.在外部定义一个总的MySQL的大类
- 3.在各个模块分别继承MySQL
- 4.在views视图中按照模块单例导入
- 5.testSQL用户测试某些表
redis模块
类似于mysql架构
- 1.使用connectionPool定义一个类,并写一些常用方法
- 2.在views视图中模块单例导入
- 3.用于缓存(str)、排行榜(zset)、开关(str)、计数器(网站访问次数之类的)
urls模块
用的普通django路由系统加include外部囊括
views和forms模块
- 1.使用的rest_framework.decorators.api_view FBV
- 2.使用django.forms.Form进行校验
cron.py
执行一些定时任务
- 使用linux的单机crontab执行某些定时任务
utils
存放一些小工具比如:
- 发送邮件
- 转义字符
- 获取时间
- 数据库插入
tests.py
用于自定义一些小的测试接口
celery.py
- 1.使用redis作为消息列表和结果存储工具
- 2.某些工具接口异步任务,定时任务加入task
- 3.为分布式架构做准备
config
一些本项目的相关配置
权限模块
按照客户要求做数据本项目自己的权限模块
- 用户表
- 权限表
- 关联表
- 前后端限制
模块介绍
materialManagement
物料管理模块主要分为两个部分数据可视化和用户操作部分
数据可视化
- 1.主要是根据客户需求进行数据的可视化显示一些按周,月显示的柱状图、折线图、列表
- 2.按照权限划分不同的可视权限
- 3.对接别的系统接口解析一些数据进行可视化
- 4.解析某些log文件的相关可视化
- 5.显示物料库存、不良物料等
- 6.物料差异分析
用户操作
- 1.用户物料申请、入库、退料、领料
- 2.老板签核
- 3.公告发布、文件上传
Performance
绩效模块主要部分绩效可视化和用户操作
首先对接产线斯科系统定时获取源数据,对接人资系统获取工时人员信息
可视化
- 1.通过分析源数据按照客户的逻辑对工程师进行周、月、年的绩效数据获取并显示
- 2.分析一些按部门的绩效,作为部门绩效评比
- 3.按照权限可视化
用户操作
- 1.工程师对比源数据,某些异常物料进行申请销料
- 2.管理者按照职位层级层层签核通过
- 3.管理者上传工程师月、年加分信息原因并按层级签核
- 4.管理者上传某些公告显示
Rework
重工模块主要包括重工系统数据可视、重工系统用户操作
重工系统数据维护可视化
由于各个部门开发的重工系统不一致,导致需要申请多个api显示
- 整合各个部门开发重工系统数据
- 按照相应逻辑按年月日进行显示
- wip分析显示
用户操作
- 整合用户操作统一到当前系统
- 兼容各个系统旧数据
- 用户相关checkout、checkin操作
smartDebug
主要是一些提前报警功能,比如一块料只能用5次,根据
源数据计算得到使用了四次了就报警表示更换报废该料
sso(单点登录系统)
整个测试平台为一个大的项目其中分为多个项目,为整个测试平台实现单点登录
架构
1 | sso |
架构概述
通过人资系统的第三方登录对接(和github第三方类似)
- 1.申请secretKey、appid放在config中
- 2.带必填参数访问xxxxxx/login?response_type=code&client_id=xxxx&redirect_uri=xxxxx&state=xxxxx&continue=oauth2
- 3.登录成功后有回调函数,第三方会带着生成的code调用回调函数
- 4.回调函数中拿着code和state、appid、secretKey、grant_type去访问xxxxxxx/oauth/access_token拿到access_token
- 5.然后带着access_token访问xxxxx/user_info获取一部分返回的用户信息
- 6.解析该用户是否在我们的用户组里
- 1.存在可以获取到email、full_name检测更新数据库
- 2.使用jwt生成token
- 3.不存在,先按照人资的认证信息简单在数据增加此人,并生成jwt
jwt实现单点登录
- jwt放置在sessionStorage
- 通过简单中间件实现验证和续签,续签是每次访问完接口process_response时
如果该token的创建时间没有超过7.5h就生成一个新的1小时为过期的token(这里其实可以用redis存储黑名单,但使token有了状态)
权限
- 初始化为每个项目客户的管理者申请好权限
- 权限申请按照层级签署、驳回生效
- 主要用来前端根据权限限制用户访问某些网页
人员信息可视化
相关离职人员、出差人员、调动人员、角色人员按时间显示
一些小的项目、脚本和窗口
- 帮各个部门的助理写的一些处理文件、excel之类的和简单的数据显示的网站
- 帮同事写的一些pyside2、wxpython的简单gui处理接口