基于springboot+vue实现的中药材进存销管理系统 (源码+L文+ppt)4-079
4 系统总体设计
4.1系统功能结构设计图
根据需求说明设计系统各功能模块。采用模块化设计方法实现一个复杂结构进行简化,分成一个个小的容易解决的板块,然后再将小的板块继续分化成功能单一的更小模块。模块化设计方法使测试调试、维护更容易,减少模块间的干扰。各模块可以同时开发提高开发效率。本系统功能结构图:
图 4-1系统功能结构图
4.2 数据库设计与实现
在进行信息管理类型的系统的开发中,都是需要以数据库的设计为基础来进行详细的设计与开发的。
4.2.1 E-R模型简介
一般在进行数据库结构的划分时,常使用到E-R图来进行直观的展示。在一个图中有三种元素,分别为实体、属性,以及两者之间的联系。
(1)实体指的是一种具体的事务,可以是任何东西。
(2)联系指的是实体与它的属性之间的关系,可以有不同种类的联系。
(3)属性指的是一个实体本身的特点。
4.2.2 系统E-R图
E-R图是由实体及其关系构成的图,通过E-R图可以清楚地描述系统涉及到的实体之间的相互关系。将"客户信息、供应商、中药材、员工、药材入库"等作为实体,它们的局部E-R图,如图4-2所示:
图4-2局部E-R图
4.2.3 系统数据表设计 (共13张表)
数据库表的设计通常是根据业务逻辑设置的。数据库模型在数据库中设计,并根据模型创建数据库表。数据库包含以下数据表来实现对数据库的存储和调用。以下是每个数据表的字段名称、类型、长度、字段说明、主键和默认值。
表4-1:客户信息
|---------------|-----------|------------|------|----|-------------------|
| 字段名称 | 类型 | 长度 | 字段说明 | 主键 | 默认值 |
| id | bigint | | 主键 | 主键 | |
| addtime | timestamp | | 创建时间 | | CURRENT_TIMESTAMP |
| kehubianhao | varchar | 200 | 客户编号 | | |
| kehumingcheng | varchar | 200 | 客户名称 | | |
| kehudizhi | longtext | 4294967295 | 客户地址 | | |
| fuzeren | varchar | 200 | 负责人 | | |
| lianxifangshi | varchar | 200 | 联系方式 | | |
| dengjishijian | datetime | | 登记时间 | | |
| kehuxiangqing | longtext | 4294967295 | 客户详情 | | |
此处省略11张表。。。
表4-13:token表
|---------------|-----------|-----|------|----|-------------------|
| 字段名称 | 类型 | 长度 | 字段说明 | 主键 | 默认值 |
| id | bigint | | 主键 | 主键 | |
| userid | bigint | | 用户id | | |
| username | varchar | 100 | 用户名 | | |
| tablename | varchar | 100 | 表名 | | |
| role | varchar | 100 | 角色 | | |
| token | varchar | 200 | 密码 | | |
| addtime | timestamp | | 新增时间 | | CURRENT_TIMESTAMP |
| expiratedtime | timestamp | | 过期时间 | | CURRENT_TIMESTAMP |
4.3小结
本章刚开始总结了整个系统的总体功能,以树型图展示出来,使得看上去更加清晰明朗,而后介绍了每一个模型的属性和对数据库表的设计。
5 系统详细设计与实现
按照软件工程的流程来说,在系统的详细设计与实现阶段,要把模块、视图、模板进行相应的组合完成一个个所需的功能,此章将会把设计中模块一一说明如何设计和实现的。
5.1系统注册登录功能实现
在注册流程中,用户在Vue前端填写必要信息(如用户名、密码等)并提交。前端将这些信息通过HTTP请求发送到Java后端。后端处理这些信息,检查用户名是否唯一,并将新用户数据存入MySQL数据库。完成后,后端向前端发送注册成功的确认,前端随后通知用户完成注册。这个过程实现了新用户的数据收集、验证和存储。注册页面如图5-1所示:
图5-1 系统注册界面
在登录流程中,用户首先在Vue前端界面输入用户名和密码。这些信息通过HTTP请求发送到Java后端。后端接收请求,通过与MySQL数据库交互验证用户凭证。如果认证成功,后端会返回给前端,允许用户访问系统。这个过程涵盖了从用户输入到系统验证和响应的全过程。如图5-2所示:
图5-2系统登录页面
5.2管理员功能实现
管理员进入主页面,主要功能包括对个人中心、员工管理、供应商管理、客户信息管理、中药材类型管理、中药材管理、药材出库管理、药材入库管理、销售信息管理、采购信息管理、系统管理等进行操作。如图5-3所示。
图5-3 管理员主界面
员工功能在视图层(view层)进行交互,比如点击"查询、添加或删除"按钮或填写员工表单。这些员工表单动作被视图层捕获并作为请求发送给相应的控制器层(controller层)。控制器接收到这些请求后,调用服务层(service层)以执行相关的业务逻辑,例如验证输入数据的有效性和与数据库的交互。服务层处理完这些逻辑后,进一步与数据访问对象层(DAO层)交互,后者负责具体的数据操作如查看、修改或删除员工信息,并将操作结果返回给控制器。最终,控制器根据这些结果更新视图层,以便员工功能可以看到最新的信息或相应的操作反馈。如图5-4所示:
图5-4员工界面
供应商功能在视图层(view层)进行交互,比如点击"查询、添加或删除"按钮或填写供应商信息表单。这些供应商信息动作被视图层捕获并作为请求发送给相应的控制器层(controller层)。控制器接收到这些请求后,调用服务层(service层)以执行相关的业务逻辑,例如验证输入数据的有效性和与数据库的交互。服务层处理完这些逻辑后,进一步与数据访问对象层(DAO层)交互,后者负责具体的数据操作如查看、修改或删除供应商信息,并将操作结果返回给控制器。最终,控制器根据这些结果更新视图层,以便供应商功能可以看到最新的信息或相应的操作反馈。如图5-5所示:
图5-5供应商界面
客户信息功能在视图层(view层)进行交互,比如点击"查询、添加或删除"按钮或填写客户信息表单。这些客户信息动作被视图层捕获并作为请求发送给相应的控制器层(controller层)。控制器接收到这些请求后,调用服务层(service层)以执行相关的业务逻辑,例如验证输入数据的有效性和与数据库的交互。服务层处理完这些逻辑后,进一步与数据访问对象层(DAO层)交互,后者负责具体的数据操作如查看、修改或删除客户信息,并将操作结果返回给控制器。最终,控制器根据这些结果更新视图层,以便客户信息功能可以看到最新的信息或相应的操作反馈。如图5-6所示:
图5-6客户信息界面
中药材类型功能在视图层(view层)进行交互,比如点击"查询、添加或删除"按钮或填写中药材类型信息表单。这些中药材类型信息动作被视图层捕获并作为请求发送给相应的控制器层(controller层)。控制器接收到这些请求后,调用服务层(service层)以执行相关的业务逻辑,例如验证输入数据的有效性和与数据库的交互。服务层处理完这些逻辑后,进一步与数据访问对象层(DAO层)交互,后者负责具体的数据操作如查看、修改或删除中药材类型信息,并将操作结果返回给控制器。最终,控制器根据这些结果更新视图层,以便中药材类型信息功能可以看到最新的信息或相应的操作反馈。如图5-7所示:
图5-7中药材类型界面
中药材功能在视图层(view层)进行交互,比如点击"查询、添加或删除"按钮或填写中药材信息表单。这些中药材信息动作被视图层捕获并作为请求发送给相应的控制器层(controller层)。控制器接收到这些请求后,调用服务层(service层)以执行相关的业务逻辑,例如验证输入数据的有效性和与数据库的交互。服务层处理完这些逻辑后,进一步与数据访问对象层(DAO层)交互,后者负责具体的数据操作如查看、修改或删除中药材信息,并将操作结果返回给控制器。最终,控制器根据这些结果更新视图层,以便中药材信息功能可以看到最新的信息或相应的操作反馈。如图5-8所示:
图5-8中药材界面
5.3员工功能实现
员工进入主页面,主要功能包括对个人中心、中药材管理、药材出库管理、药材入库管理、销售信息管理、采购信息管理等进行操作。如图5-9所示。
图5-9员工主界面