Honesty
文章33
标签33
分类4

文章归档

软件架构&数据安全说明

软件架构&数据安全说明

系统软件架构文档

本项目是一个单系统服务,旨在为客户提供一个销售自动核算管理系统,涵盖了用户需求和业务规则,以便他们能够更好地管理和组织销售业务。

该系统的背景是,为了更好地满足用户的需求,销售部门需要一套能够帮助他们管理销售订单和配件信息的系统。本系统的目标是提高销售部门的效率,减少错误率,提高客户满意度。

需求分析:

本系统主要包含以下功能:

  1. 产品部件管理:用于管理五金配件的信息,包括配件的名称、型号、规格、价格等。此模块与核算流程和报价单管理模块有交互关系,因为在发起核算流程和生成报价单时需要引用配件信息。
  2. 项目管理:用于管理销售部门接收到的各个项目的信息,包括客户信息、项目时间、项目状态等。此模块与核算流程和报价单管理模块有交互关系,因为在发起核算流程和生成报价单时需要引用项目信息。
  3. 核算流程:在销售部门接收到客户询价后,根据图纸内容发起一轮核算。此模块与产品部件管理、项目管理和财务确认核算单模块有交互关系,因为在核算过程中需要引用产品和项目信息,并在完成核算后需要提交核算单给财务审核。
  4. 核算单列表:用于显示所有的核算单列表,包括已提交的和未提交的。此模块与核算流程和财务确认核算单模块有交互关系,因为在查看核算单列表时需要显示核算单的状态,并提供提交核算单的操作。
  5. 财务确认核算单:用于对核算单进行审核和确认。此模块与核算流程和报价单管理模块有交互关系,因为在审核通过后需要生成报价单。
  6. 生成报价单:在完成核算并经过财务审核后,根据核算单信息生成报价单。此模块与核算流程、财务确认核算单和报价单管理模块有交互关系,因为在生成报价单时需要引用核算单信息,并将生成的报价单存储到报价单管理模块中。
  7. 报价单管理:用于管理生成的报价单,包括查看报价单、编辑报价单和删除报价单等操作。此模块与生成报价单和台账管理模块有交互关系,因为在编辑报价单后需要更新台账信息。
  8. 台账管理:用于记录销售部门的业务流水账,包括客户信息、销售额、毛利润等。此模块与报价单管理模块有交互关系,因为在编辑报价单后需要更新台账信息。

技术方案

技术选型

本系统的技术选型涉及到以下方面:

  • 前端框架:React
  • 后端框架:Spring Boot
  • 数据库:MySQL
  • 缓存:Ehcache
  • 安全框架:Spring Security + Jwt + Ehcache
  • 日志框架:Logback

技术架构

本系统采用三层架构:

  • 表现层:使用 SpringMVC 实现,处理用户请求。
  • 业务层:使用 Spring 实现,处理业务逻辑。
  • 持久层:使用 Spring Data JPA 实现,负责与数据库进行交互。

整个系统可以分为三个主要部分:前端、后端和数据库。

前端:采用 HTML、CSS 和 JavaScript 技术,使用 React 框架来实现页面的构建和交互。前端与后端通过 RESTful API 进行通信。

后端:采用 Java 语言和 Spring Boot 框架实现,主要包括以下模块:

  • 部件管理模块:用于管理所有的部件信息,包括部件的基本信息、价格、库存等。
  • 项目管理模块:用于管理所有的项目信息,包括项目的基本信息、部件清单、订单状态等。
  • 核算模块:用于自动计算部件价格,并生成核算单。
  • 报价模块:用于将核算单转化为报价单,并提交财务审核。
  • 台账模块:用于管理所有已生成的报价单,包括已确认的和未确认的。

数据库:采用 MySQL 关系型数据库管理系统,存储系统中所有的数据。

所有的模块都通过 Spring Boot 的 MVC 框架实现,将业务逻辑、数据访问和页面展示分离,提高了代码的可维护性和可扩展性。此外,系统采用 JWT 进行身份验证和授权,确保了系统的安全性。同时系统采用了多种措施来保障数据的安全性和完整性,包括数据库访问受到 Spring Security 的保护、敏感数据在存储和传输时进行加密、数据备份和恢复策略、实时监控和警报等

系统组织架构

根据系统的功能模块,可以归纳出以下几个角色:

  1. 产品部件管理员:负责产品部件的添加、编辑、删除等操作,属于产品部件管理模块。
  2. 项目管理员:负责项目的添加、编辑、删除等操作,属于项目管理模块。
  3. 核算员:负责发起新的自动核算流程、审核核算单等操作,属于核算单列表和财务确认核算单模块。
  4. 财务人员:负责审核核算单、生成报价单、报价单管理和台账管理等操作,属于财务确认核算单、生成报价单和台账管理模块。

根据以上角色和模块的划分,他们的具体操作如下:

  1. 产品部件管理员:添加、编辑、删除产品部件信息,查看产品部件列表,属于产品部件管理模块。
  2. 项目管理员:添加、编辑、删除项目信息,查看项目列表,属于项目管理模块。
  3. 核算员:发起新的自动核算流程,查看核算单列表,审核核算单信息,属于核算单列表和财务确认核算单模块。
  4. 财务人员:审核核算单信息,生成报价单,查看报价单列表,进行报价单管理,管理台账信息,属于财务确认核算单、生成报价单和台账管理模块。

数据权限

岗位部门的数据权限,可以通过以下几个步骤来实现:

  1. 在系统中定义各个部门和岗位,同时将用户分配到相应的部门和岗位中。
  2. 在系统中定义数据权限规则,将不同的数据权限规则与不同的部门和岗位相关联。
  3. 在系统中实现数据权限控制,根据当前登录用户的部门和岗位信息,判断该用户是否有权限访问某些数据,从而控制用户对数据的访问。

具体实现上,可以将数据权限规则定义为一组访问规则,每个规则包含以下信息:

  1. 数据对象:需要控制访问权限的数据对象,如产品部件、项目、核算单等。
  2. 访问类型:允许的访问类型,如查看、编辑、删除等。
  3. 部门或岗位:与该规则相关联的部门或岗位。
  4. 数据范围:允许访问的数据范围,如所有数据、所在部门的数据、所在部门及下级部门的数据等。

在实现数据权限控制时,可以将数据权限规则保存在数据库中,每次用户访问数据时,系统根据当前用户的部门和岗位信息以及数据权限规则,来判断该用户是否有权限访问数据。同时,也可以在系统中实现数据过滤功能,只显示用户有权限访问的数据,从而提高系统的安全性和可用性。

💡 基于所属人和所属部门实现数据权限控制的思路如下:

  1. 在数据库中创建用户表和部门表,建立用户和部门的关联关系。

  2. 创建数据权限规则表,包含数据对象、访问类型、部门、数据范围等字段。

  3. 将不同的数据权限规则与不同的部门和岗位相关联,建立部门和数据权限规则之间的关联关系。

  4. 在用户表中添加所属部门和所属人字段,分别表示用户所属的部门和所属的人。

  5. 在数据表中添加所属部门和所属人字段,分别表示数据所属的部门和所属的人。

  6. 当用户访问数据时,系统根据当前用户的所属部门和所属人信息以及数据权限规则,来判断该用户是否有权限访问数据。

  7. 如果该用户有权限访问数据,则系统返回数据;否则,系统返回错误信息。

通过这种方式,可以实现基于所属人和所属部门的数据权限控制,确保只有授权用户才能访问数据。同时,系统还可以实现数据过滤功能,只显示用户有权限访问的数据,从而提高系统的安全性和可用性。

基于所属人和所属部门实现数据权限控制的思路如下:

1. 在数据库中创建用户表和部门表,建立用户和部门的关联关系。
2. 创建数据权限规则表,包含数据对象、访问类型、部门、数据范围等字段。
3. 将不同的数据权限规则与不同的部门和岗位相关联,建立部门和数据权限规则之间的关联关系。
4. 在用户表中添加所属部门和所属人字段,分别表示用户所属的部门和所属的人。
5. 在数据表中添加所属部门和所属人字段,分别表示数据所属的部门和所属的人。
6. 当用户访问数据时,系统根据当前用户的所属部门和所属人信息以及数据权限规则,来判断该用户是否有权限访问数据。
7. 如果该用户有权限访问数据,则系统返回数据;否则,系统返回错误信息。

通过这种方式,可以实现基于所属人和所属部门的数据权限控制,确保只有授权用户才能访问数据。同时,系统还可以实现数据过滤功能,只显示用户有权限访问的数据,从而提高系统的安全性和可用性。

数据安全

本系统采用了多种措施来保障数据的安全性和完整性。具体而言,我们有以下几个方面的措施:

  1. 数据库访问受到 Spring Security 的保护,只有经过身份验证的用户才能访问数据库。数据库密码采用复杂的加密算法,以确保密码的安全性。此外,我们还对数据库连接进行了加密以提高数据传输的安全性。
  2. 敏感数据在存储和传输时都会进行加密。我们采用了标准的加密算法(如 AES,RSA 等),以确保数据在存储和传输时的安全性。此外,我们还对敏感数据进行了分散存储,以增强数据的安全性。
  3. 数据备份和恢复策略。我们的系统采用了定期备份的方式来保障数据的安全性。备份数据存储在不同的地点,以防止数据丢失。在系统发生故障或灾难事件时,我们可以快速地恢复数据。
  4. 实时监控和警报。我们的系统采用了实时监控的方式来保障数据的安全性。一旦系统出现异常情况,我们会立即发出警报并采取相应的措施,以保障用户数据的安全性。

综上所述,我们的系统采用了多种措施来保障数据的安全性和完整性。我们将不断地更新和改进安全措施,以确保用户数据的安全性。

本文作者:Honesty
本文链接:https://docs.hehouhui.cn/archives/20230417.html
版权声明:本文采用 CC BY-NC-SA 3.0 CN 协议进行许可
×