技术架构图

前端工具及环境
| 名称 | 版本 | 介绍 |
|---|---|---|
| NodeJS | 16.13.2 | 开源、跨平台的 JavaScript 运行时环境 |
| Npm | 8.1.2 | npm包管理工具可以快速引入别人开发好的工具包进行使用 |
| Webpack | 4.0.0 | 打包工具 |
| Vue | 2.6.14 | Vue 的核心库只关注视图层,易于上手,便于与第三方库或既有项目整合。 |
| Vue-element-admin | 3.11.0 | 为了加快项目的开发,前端项目直接使用开源的优秀管理系统前端模板vue-element-admin,其内置了动态路由,权限验证,提炼了典型的业务模型,封装了快捷的请求方法,提供了丰富的功能组件,可以帮助我们快速搭建管理系统。 |
| Echarts | 4.2.1 | Echarts是一款基于JavaScript的数据可视化图表库,提供直观,生动,可交互,可个性化定制的数据可视化图表,系统首页的柱形图、饼图 、条形图、折线图……需要使用Echarts来进行绘制。 |
| dhtmlx-gantt | 7.1.13 | dhtmlx-gantt提供了一套完整的Ajax驱动的UI 组件,可以帮助我们简洁地绘制每日排班对应甘特图。 |
| tinymce | 5.8.2 | tinymce是一款易用、组件丰富、支持多语言的富文本编辑器,可以帮助企业、门店管理员编辑出更加美观的文本通知。 |
小程序工具及环境
| 名称 | 版本 | 介绍 |
|---|---|---|
| uni-app | 3.7.9 | Uni-app 使用 Vue.js 开发所有前端应用,基于通用的前端技术栈,采用 vue 语法+微信小程序 api,无额外学习成本,开发成本低。 |
| 微信开发者工具 | 1.06.2303220 | 微信开发者工具,开发人员可以简单和高效地开发和调试微信小程序。 |
| Vant Weapp | 1.10.15 | Vant 是一个轻量、可靠的移动端组件库,提供优美高质量的组件,性能极佳。 |
后端工具及环境
| 名称 | 版本 | 介绍 |
|---|---|---|
| Java | 1.8 | Java语言功能强大和简单易用,拥有众多成熟的web开发工具,非常适合用来写后台服务 |
| Maven | 3.6.3 | 通过pom.xml文件的配置获取jar包,不用手动添加jar包,提高开发效率,同时帮助团队将项目进行打包 |
| MySql | 8.0.27 | 一种关系型数据库管理系统,关系数据库将数据保存在不同的表中,而不是将所有数据放在一个大仓库内,增加了速度并提高了灵活性 |
| SpringBoot | 2.1.8.RELEASE | Spring Boot是Spring的一套快速配置脚手架,抛弃了繁琐的xml配置过程,使用默认大于配置的理念,可基于Spring Boot快速开发单个微服务 |
| MyBatis Plus | 3.2.0 | 内置通用 Mapper、通用 Service,通过少量配置即可实现数据表的大部分增删改查操作,将开发人员从繁琐的简单代码中解放出来,开发人员可以将更多精力投入到复杂的业务代码实现中 |
| Swagger | 2.9.2 | 使用 Swagger 可以直接通过代码生成文档,不需要手动编写接口文档;支持接口在线测试,请求参数和格式都定义好了,只需要输入参数对应的值即可完成测试,提高接口测试效率,同时提高前后端的对接效率 |
| Redis | 6.0.10 | Redis是支持网络交互的、基于内存、可持久化的键值对数据库,用来实现数据缓存 |
| Redisson | 3.17.5 | 用来实现分布式锁 |
| SpringSecurity | 2.1.8.RELEASE | 登录验证、权限验证、防止常见攻击 |
| SpringCloud | Greenwich.SR6 | 很多技术框架的集合,帮助开发者方便、快捷地实现微服务操作 |
| SpringCloud Alibaba | 2.1.0.RELEASE | SpringCloud部分组件停止维护更新,给开发带来不便,且部分环境搭建复杂,没有完善的可视化界面。SpringCloud Alibaba的组件经历了大量的考验,性能强悍,设计更加合理,且组件搭配完善的可视化界面,给开发运维带来了便利 |
| SpringCloud Gateway | 2.1.0.RELEASE | 可用来做请求转发、负载均衡、流量限制、熔断降级、黑白名单、流量染色、统一接口保护、灰色发布、统一业务处理、统一处理跨域 |
| SpringCloud Seata | 2.1.0.RELEASE | 分布式事务的解决方案 |
| Nacos | 2.0.3 | 服务注册、服务发现、配置中心 |
| Spring Cache | 2.1.8.RELEASE | 允许使用注解的方式来使用缓存,提高开发效率 |
| WebSocket | 9.0.39 | 用来解决服务端主动向客户端推送数据的问题,任务计算成功通知前端 |
| RabbitMq | 5.9.0 | 帮助我们进行应用解耦、流量削峰 |
| Jwt | 0.7.0 | JWT的本质就是一个字符串,它是将用户信息保存到一个Json字符串中,然后进行编码后得到一个token,并且这个token带有签名信息,接收后可以校验是否被篡改,可以用于在各方之间安全地将信息传输 |
| Fastjson | 1.2.80 | FastJson是阿里巴巴的开源库,支持将java bean序列化为json字符串,也支持将json字符串反序列化成java bean,且速度非常快 |
| Lombok | 1.18.8 | 可以通过注解的方式减少get、set方法、构造方法的代码。让代码更加简洁,同时让后台开发更加高效 |
| Calendarist | 1.0.9 | 日历工具,帮助我们进行新历、农历转换 |
| Quartz | 2.1.8.RELEASE | @Schedule注解不能处理复杂定时任务,Quartz具有更高的灵活性,可以处理复杂业务 |
| Druid | 1.1.10 | Druid 是阿里巴巴开源的数据库连接池,它是一个高效的并发连接管理工具,可大幅提升应用程序的数据库访问效率,且功能丰富,含有防火墙、拦截器、监控、监测慢SQL等功能。在使用Quartz配置文件中使用 |
| Hikari | 3.2.0 | Hikari连接池的特点就是快,虽然功能少于Druid,但是速度比Druid快。本系统中的服务模块连接数据库都是使用Hikari,Hikari也是SpringBoot推荐的数据库连接池 |
| Poi | 4.0.0 | 一个读写xlsx文件的工具,帮助我们从excel表格中导入不同时间段的客流量数据 |
| Cron-utils | 9.2.0 | Cron-utils可以根据传入的时间参数生成cron表达式,与SpringQuartz配合来帮助我们完成定时通知业务的开发 |
| Devtools | 2.1.8.RELEASE | 项目热部署工具,用debug方式启动,修改代码之后无需重启服务,重新编译代码即可,帮助团队提高开发效率,减少服务重启所浪费的时间 |
| Oshi | 6.0.0 | Oshi是一个免费的基于 JNA(本机)的 Java 操作系统和硬件信息库。可以获取操作系统版本、进程、内存和 CPU 使用率、磁盘和分区等信息。帮助我们在web端系统完成对服务器的监控 |
第三方服务
| 名称 | 版本 | 介绍 |
|---|---|---|
| OSS | 2.2.0.RELEASE | 帮助我们更高效地存储图片资源,降低服务器的压力 |
| SpringMail | 2.1.8.RELEASE | 相较于短信发送服务,邮件发送服务免费,可以降低系统的通知成本 |
| 微信登录 | OAuth2.0是一个关于授权的开放网络标准,允许用户授权第三方应用访问他们所开放的信息,而不需要提供用户名和密码。通过绑定系统账户和微信账号,web用户可以通过微信扫码快捷登录智能排班系统,小程序用户可以快速获取微信信息登录小程序,无需进行账号密码的输入 |





![[组合数学] 排列组合](https://img-blog.csdnimg.cn/d90a375b08144ba18b660c491d036e2c.png)












