基于SSM制造型企业管理流程系统的设计与实现-附源码40723

摘要

随着互联网趋势的到来,各行各业都在考虑利用互联网将自己推广出去,最好方式
就是建立自己的互联网系统,并对其进行维护和管理。在现实运用中,应用软件的工作
规则和开发步骤,采用 Java 技术建设制造企业管理流程系统。

本设计主要实现集人性化、高效率、便捷等优点于一身的制造企业管理流程系统,完成系统用户、任务类型管理、任务分配管理、进度追踪管理、意见反馈管理、供应商信息管理、物料信息管理、物料出库管理、用户交流管理等功能模块。系统通过浏览器与服务器进行通信,实现数据的交互与变更。只需通过一台电脑,动动手指就可以操作系统,实现数据通信管理。整个系统的设计过程都充分考虑了数据的安全、稳定及可靠等问题,而且操作过程简单。

本系统通过科学的管理方式、便捷的服务提高了工作效率,减少了数据存储上的错误和遗漏。制造企业管理流程系统使用 Java 语言,采用基于 MVC 模式的 JavaEE 技术进行开发,使用 MyEclipse 2017 CI 10 编译器编写,数据方面主要采用的是微软的 MySQL 关系型数据库来作为数据存储媒介,配合前台 HTML+CSS 技术完成系统的开发。

关键词:Java编程语言;SSM技术;制造企业管理

Ssm manufacturing enterprise management process system

ABSTRACT

With the arrival of the internet trend, various industries are considering using the internet to promote themselves, which is the best way It is to establish one's own internet system and maintain and manage it. In practical applications, the work of application software Rules and development steps, using Java technology to build a manufacturing enterprise management process system.

This design mainly implements a manufacturing enterprise management process system that combines the advantages of humanization, efficiency, and convenience. It completes functional modules such as system user, task type management, task allocation management, progress tracking management, feedback management, supplier information management, material information management, material outbound management, and user communication management. The system communicates with the server through a browser to achieve data interaction and changes. You only need to use a computer and move your fingers to operate the system, achieving data communication management. The entire system design process fully considers issues such as data security, stability, and reliability, and the operation process is simple.

This system improves work efficiency and reduces errors and omissions in data storage through scientific management and convenient services. The manufacturing enterprise management process system is developed using Java language and Java EE technology based on MVC mode. It is written using the MyEclipse 2017 CI 10 compiler, and the data is mainly stored in Microsoft's MySQL relational database. The system is developed in conjunction with front-end HTML+CSS technology.

Keywords: Ssm manufacturing enterprise management process system

目  录

1 绪论

1.1研究背景与意义

1.2研究现状

1.3论文组成结构

2系统分析

2.1需求分析

2.2 系统可行性分析

2.2.1技术可行性

2.2.2经济可行性

2.2.3操作可行性

2.3 项目设计目标与原则

2.4系统流程分析

2.4.1操作流程

2.4.2添加信息流程

2.4.3删除信息流程

3系统设计

3.1系统设计的原理

3.2系统功能设计

3.3数据库设计

3.3.1概念模型设计

3.3.2逻辑结构设计

4系统实现

4.1员工功能模块实现

4.1.1登录模块 23

4.1.2任务分配模块 24

4.1.3进度追踪模块 24

4.1.4意见反馈模块 25

4.1.5物料出库模块 26

4.2管理员功能模块实现

4.2.1管理员登录模块

4.2.2系统用户管理模块

4.2.3任务分配列表模块 28

4.2.4任务分配添加模块

4.2.5供应商信息列表模块 29

4.2.6物料入库管理模块

4.2.7用户交流管理模块 30

4.2.8通知公告管理模块 30

5系统测试 31

5.1测试目的 31

5.2测试方法 31

5.3测试过程 32

5.3.1系统测试计划 33

5.3.2系统测试用例

5.4测试结果

6结论

参考文献

致 谢

1 绪论

1.1研究背景与意义

随着全球经济一体化的不断深入,制造业企业面临着激烈的市场竞争。为了提高企业的竞争力,降低生产成本,提高生产效率,企业对管理流程系统的需求越来越迫切。在这种背景下,SSM(Spring、SpringMVC、MyBatis)框架应运而生,为企业提供了一种高效、灵活、可扩展的管理流程系统解决方案。 SSM框架是一种基于Java语言的企业级应用开发框架,它集成了Spring、SpringMVC和MyBatis三大开源框架,实现了数据访问层、业务逻辑层和展示层的分离,降低了各层之间的耦合度,提高了系统的可维护性和可扩展性。在制造业企业管理流程系统中,SSM框架可以帮助企业实现用户交流管理、物料信息管理、物料出库管理、任务分配管理等多个模块的集成,提高企业的管理水平和生产效率。

本研究旨在探讨如何利用SSM框架构建制造业企业管理流程系统,以满足企业在市场竞争中的需求。通过对SSM框架的研究和应用,本论文将为企业提供一套完整的管理流程系统解决方案,有助于企业实现信息化管理,提高企业的核心竞争力。

1.2研究现状

在现代制造业中,企业管理流程系统的设计与实现已经成为了一个重要的研究领域。随着科技的不断发展和市场竞争的日益激烈,企业对于提高生产效率、降低成本、优化资源配置等方面的需求越来越迫切。因此,如何设计并实现一个高效、灵活、可扩展的制造企业管理流程系统,以满足企业在不断变化的市场环境中的需求,已经成为了学术界和企业界关注的焦点。

在过去的几十年里,已经有许多学者和研究者对制造企业管理流程系统进行了深入的研究。他们从不同的角度出发,探讨了管理流程系统的设计方法、实现技术以及应用案例等方面的问题。其中,一些研究关注于如何通过对企业内部各个环节的优化,提高企业的生产效率和产品质量。例如,通过引入精益生产理念、采用先进的生产调度算法等方法,可以有效地降低生产过程中的浪费,提高资源利用率。

另一些研究则关注于如何通过对企业外部供应链的管理,降低企业的运营成本和风险。例如,通过采用供应链协同设计、实时库存管理等技术,可以实现企业与供应商、客户之间的信息共享和资源整合,从而提高整个供应链的运作效率。此外,还有一些研究关注于如何通过对企业内部组织结构和文化的改革,提高企业的创新能力和市场竞争力。例如,通过实施扁平化管理、推行跨部门协作等措施,可以激发员工的创新精神,提高企业的应变能力。

1.3论文组成结构

论文整体分为六个章节模块:引言部分介绍研究背景以及意义,第二章主要是介绍系统分析,第三章的系统的功能等设计,第四章主要是整个系统的实现过程及关键代码,最后一章是系统测试方法以及测试结果的记录与描述

2系统分析

2.1需求分析

制造企业管理流程系统主要是为了提高工作人员的工作效率和更方便快捷的满足用户,更好存储所有数据信息及快速方便的检索功能,对系统的各个模块是通过许多今天的发达系统做出合理的分析来确定考虑用户的可操作性,遵循开发的系统优化的原则,经过全面的调查和研究。

系统所要实现的功能分析,对于现在网络方便的管理,系统要实现用户可以直接在平台上进行查看所有数据信息,根据需求可以进行在线添加,删除或修改制造企业管理流程系统信息,这样既能节省时间,不用再像传统的方式耽误时间,真的很难去满足用户的各种需求。所以制造企业管理流程系统的开发不仅仅是能满足用户的需求,还能提高管理员的工作效率,减少原有不必要的工作量。

2.2 系统可行性分析

2.2.1技术可行性

制造企业管理流程系统存储所使用的是mysql数据库以及开发中所使用的是IDEA、Tomcat这些开发工具的使用,能够给我们的编写工作带来许多的便利。系统使用SSM框架进行开发,使系统的可扩展性和维护性更佳,减少java配置代码,简化编程代码,目前SSM框架也是很多企业选择的框架之一。

2.2.2经济可行性

在开发制造企业管理流程系统中所使用的开发软件像IDEA开发工具、Tomcat8.0服务器、MySQL5.7数据库、Photoshop图片处理软件等,这些都是开源免费的,这些环境在学校都进行了系统的学习,自己能够独立操作完成,不需要额外花费,而且系统的开发工具从网上都可以直接下载,因此在经济方面是可行的。

2.2.3操作可行性

此次项目设计的时候我参考了很多类似系统的成功案例,对它们的操作界面以及功能都进行了系统的分析,将众多案例结合在一起,突出以人为本简化操作,所以具有基本计算机知识的人都会操作本项目。因此操作可行性也没有问题。

2.3 系统功能分析

制造企业管理流程系统中采用了Java的SSM框架进行开发,在数据库上选择MYSQL,在功能上制造企业管理流程系统我划分为了员工管理模块和管理员模块这两大部分。

员工管理模块:

(1)员工的账号是由管理员直接添加的,员工可以同样可通过用户名和密码,然后完成输入验证码后登录。

(2)任务分配列表:可以查看任务名称、任务类型、分配用户、任务内容等详情,并可以对其进行进度记录、意见反馈,还可以进行查询、重置等操作。

(3)进度追踪:可以查看进度追踪任务名称、分配用户、任务类型、记录日期、问题反馈等详情,可以进行查询、重置、导出和删除等操作。

(4)意见反馈:可以查看意见反馈分配用户、任务名称、相关图片、反馈内容等详情,可以进行查询、重置和删除等操作。

(5)物料信息:可以查看物料信息物料编号、物料名称、供应商、采购数量、采购价格、总金额、采购用户、采购备注等详情,可以进行查询、重置、导出和删除等操作。

(6)通知公告:可以查看通知公告标题、发布人、发布时间、相关附件、内容等详情,可以进行查询和重置等操作。

管理员管理模块:

(1)登录:管理员在后台可以输入用户名和密码进行登录,管理员的用户名和密码是在数据库中直接设定好的。

(2)系统用户:管理员点击“系统用户”菜单可以对系统中存在的用户进行管理,包含了管理员用户和员工。

(3)任务分配列表:可以查看任务名称、任务类型、分配用户、任务内容等详情,并可以对其进行进度记录、意见反馈,还可以进行查询、重置、删除等操作。

(4)任务分配添加;管理员可以对任务名称、任务类型、分配用户、任务内容、完成时间进行添加提交。

(5)供应商信息列表:管理员可以查看供应商名称、负责人、联系电话、地址、主供商品等详情,并可以进行查询、重置、删除等操作。

(6)供应商信息添加;管理员可以对供应商名称、负责人、联系电话、地址、主供商品进行添加提交。

7)物料信息列表:可以查看物料编号、物料名称、供应商、库存、图片、备注等详情,并可以对其进行采购入库、物料出库,还可以进行查询、重置、删除等操作

(8)物料信息添加;管理员可以对物料编号、物料名称、供应商、库存、图片、备注进行添加提交。

2.4系统用例分析

系统的用例展示的是系统功能与用户之间的关系,通过用例的方式能够直观的展示出来,本制造企业管理流程系统的完整UML用例图分别是图2-1、图2-2。

图2-1 制造企业管理流程系统员工角色用例图

图2-2 制造企业管理流程系统后台管理员角色用例

2.5 项目设计目标与原则

1、关于制造企业管理流程系统的基本要求

(1)功能要求:可以管理后台首页、系统用户(管理员、员工)、任务类型管理(任务类型列表、任务类型添加)、任务分配管理(任务分配列表、任务分配添加)、进度追踪管理(进度追踪列表)、意见反馈管理(意见反馈列表)、供应商信息管理(超供应商信息列表、供应商信息添加)、物料信息管理(物料信息列表、物料信息添加)、物料入库管理(物料入库列表)、物料出库管理(物料出库列表)、用户交流管理(用户交流列表、用户交流添加)、通知公告管理(通知公告列表、通知公告添加)等功能模块。

(2)性能:在不同操作系统上均能无差错实现在不同类型的用户登入相应界面后能不出差错、方便地进行预期操作。

(3)安全与保密要求:用户都必须通过身份验证才能进入系统,并且用户的权限也需要根据用户的类型进行限定。

(4)环境要求:支持多种平台,可在Windows系列、Vista系统等多种操作系统下使用。

2、开发目标

制造企业管理流程系统的主要开发目标如下:

(1)实现管理流程系统信息关系的系统化、规范化和自动化;

(2)减少维护人员的工作量以及实现用户对信息的控制和管理。

(3)方便查询信息及管理信息等;

(4)通过网络操作,改善处理问题的效率,提高操作人员利用率;

(5)考虑到用户多样性特点,要求界面简单,操作简便。

3、设计原则

本制造企业管理流程系统采用Java技术,Mysql数据库开发,充分保证了系统稳定性、完整性。

制造企业管理流程系统的设计与实现的设计思想如下:

操作简单方便、系统界面安全良、简单明了的页面布局、方便查询制造企业管理流程系统相关信息。

2、即时可见:对制造企业管理流程系统信息的处理将立马在对应地点可以查询到,从而实现“即时发布、即时见效”的系统功能。

3、功能的完善性:可以管理后台首页、系统用户(管理员、员工)、任务类型管理(任务类型列表、任务类型添加)、任务分配管理(任务分配列表、任务分配添加)、进度追踪管理(进度追踪列表)、意见反馈管理(意见反馈列表)、供应商信息管理(超供应商信息列表、供应商信息添加)、物料信息管理(物料信息列表、物料信息添加)、物料入库管理(物料入库列表)、物料出库管理(物料出库列表)、用户交流管理(用户交流列表、用户交流添加)、通知公告管理(通知公告列表、通知公告添加)等操作。

2.6系统流程分析

2.6.1操作流程

系统登录流程图,如图所示:

图2-3登录流程图

2.6.2添加信息流程

添加信息流程图,如图所示:

图2-4添加信息流程图

2.6.3删除信息流程

删除信息流程图,如图所示:

图2-5删除信息流程图

3 系统设计

3.1系统设计的原理

系统设计原理包括:

  1. 模块化。模块化就是把整个程序划分为多个模块,每个模块有自己的名字并可以被独立访问。所有模块的功能集合起来就可以满足用户需求。
  2. 抽象。抽象是暂时忽略软件的细节,集中精力将软件的本质特征提取出来。
  3. 逐步求精。总体设计需要先解决主要问题,再将问题一步步细化。
  4. 局部化和信息隐藏。不同模块之间,信息相互不能访问,是不能访问的;并且应该在相近的物理地址上放置关系较密切的软件元素。
  5. 模块独立。模块之间应该遵循高内聚,低耦合的原则。

3.2系统功能设计

制造企业管理流程系统从实际应用角度来说可以分成管理员管理模块、员工两大模块。

1.系统用户管理模块可以分成用户管理、个人信息管理和权限管理模块。用户管理是对用户的相关信息进行查阅、修改,删除等操作。个人信息管理可以对个人信息的情况进行添加、修改信息删除、个人信息修改和个人信息查询。

2.主要功能管理模块包括台首页、可以管理后台首页、系统用户(管理员、员工)、任务类型管理(任务类型列表、任务类型添加)、任务分配管理(任务分配列表、任务分配添加)、进度追踪管理(进度追踪列表)、意见反馈管理(意见反馈列表)、供应商信息管理(超供应商信息列表、供应商信息添加)、物料信息管理(物料信息列表、物料信息添加)、物料入库管理(物料入库列表)、物料出库管理(物料出库列表)、用户交流管理(用户交流列表、用户交流添加)、通知公告管理(通知公告列表、通知公告添加)。

3.系统管理模块系统管理模块分为数据备份。

系统的功能模块图如下图所示。

图3-1系统功能结构图

3.3数据库设计

数据库设计(DatabaseDesign)是指对一个给定的环境,构造良好的数据库模式,建立数据库系统,使之能够最有效地存储数据,满足各类用户的需求即处理要求和信息要求。在数据库应用范围内,经常把使用数据库的系统称为数据库的应用系统。

3.3.1概念模型设计

E-R设计方法是一种通过E-R图来描述现实世界信息结构的DB设计方法。E-R图由实体、属性、联系三部分组成。它有两个优点,即接近于人的思维,容易理解;与计算机无关,用户容易接受。

系统的主要实体间关系E-R图如下图所示:

图3-2系统E-R图

实体间可建立某种联系,大致可分为三种:(1)实体间一对一联系,这种关系可以独立也可与其他合并;(2)实体间是一对多联系,实体与另一个n端实体发生联系;(3)实体间为多对多联系,两个实体间存在某种关系。每个实体上码所具有的属性就是关系属性,实体码的组合就是关系码。

3.3.2逻辑结构设计

根据E-R模型,制造企业管理流程系统建立了以下逻辑数据结构,下面是各数据表的详细说明。

表employee_users (员工用户)

编号

名称

数据类型

长度

小数位

允许空值

主键

默认值

说明

1

employee_users_id

int

10

0

N

Y

员工用户ID

2

job_id

varchar

64

0

Y

N

工号

3

name

varchar

64

0

Y

N

姓名

4

department

varchar

64

0

Y

N

部门

5

post

varchar

64

0

Y

N

岗位

6

examine_state

varchar

16

0

N

N

已通过

审核状态

7

recommend

int

10

0

N

N

0

智能推荐

8

user_id

int

10

0

N

N

0

用户ID

9

create_time

datetime

19

0

N

N

CURRENT_TIMESTAMP

创建时间

10

update_time

timestamp

19

0

N

N

CURRENT_TIMESTAMP

更新时间

表feedback (意见反馈)

编号

名称

数据类型

长度

小数位

允许空值

主键

默认值

说明

1

feedback_id

int

10

0

N

Y

意见反馈ID

2

assign_users

int

10

0

Y

N

0

分配用户

3

task_name

varchar

64

0

Y

N

任务名称

4

related_pictures

varchar

255

0

Y

N

相关图片

5

feedback_content

text

65535

0

Y

N

反馈内容

6

examine_state

varchar

16

0

N

N

未审核

审核状态

7

examine_reply

varchar

16

0

Y

N

审核回复

8

recommend

int

10

0

N

N

0

智能推荐

9

create_time

datetime

19

0

N

N

CURRENT_TIMESTAMP

创建时间

10

update_time

timestamp

19

0

N

N

CURRENT_TIMESTAMP

更新时间

表material_information (物料信息)

编号

名称

数据类型

长度

小数位

允许空值

主键

默认值

说明

1

material_information_id

int

10

0

N

Y

物料信息ID

2

material_number

varchar

64

0

Y

N

物料编号

3

material_name

varchar

64

0

Y

N

物料名称

4

supplier

varchar

64

0

Y

N

供应商

5

inventory

int

10

0

Y

N

0

库存

6

picture

varchar

255

0

Y

N

图片

7

remarks

text

65535

0

Y

N

备注

8

recommend

int

10

0

N

N

0

智能推荐

9

create_time

datetime

19

0

N

N

CURRENT_TIMESTAMP

创建时间

10

update_time

timestamp

19

0

N

N

CURRENT_TIMESTAMP

更新时间

表material_outbound (物料出库)

编号

名称

数据类型

长度

小数位

允许空值

主键

默认值

说明

1

material_outbound_id

int

10

0

N

Y

物料出库ID

2

material_number

varchar

64

0

Y

N

物料编号

3

material_name

varchar

64

0

Y

N

物料名称

4

supplier

varchar

64

0

Y

N

供应商

5

outbound_user

int

10

0

Y

N

0

出库用户

6

outbound_quantity

varchar

64

0

Y

N

出库数量

7

warehousing_purpose

text

65535

0

Y

N

出库用途

8

recommend

int

10

0

N

N

0

智能推荐

9

create_time

datetime

19

0

N

N

CURRENT_TIMESTAMP

创建时间

10

update_time

timestamp

19

0

N

N

CURRENT_TIMESTAMP

更新时间

表material_receipt (物料入库)

编号

名称

数据类型

长度

小数位

允许空值

主键

默认值

说明

1

material_receipt_id

int

10

0

N

Y

物料入库ID

2

material_number

varchar

64

0

Y

N

物料编号

3

material_name

varchar

64

0

Y

N

物料名称

4

supplier

varchar

64

0

Y

N

供应商

5

purchase_quantity

int

10

0

Y

N

0

采购数量

6

purchase_price

int

10

0

Y

N

0

采购价格

7

total_amount

varchar

64

0

Y

N

总金额

8

purchasing_users

int

10

0

Y

N

0

采购用户

9

procurement_remarks

varchar

64

0

Y

N

采购备注

10

recommend

int

10

0

N

N

0

智能推荐

11

create_time

datetime

19

0

N

N

CURRENT_TIMESTAMP

创建时间

12

update_time

timestamp

19

0

N

N

CURRENT_TIMESTAMP

更新时间

表notice_announcement (通知公告)

编号

名称

数据类型

长度

小数位

允许空值

主键

默认值

说明

1

notice_announcement_id

int

10

0

N

Y

通知公告ID

2

title

varchar

64

0

Y

N

标题

3

publisher

varchar

64

0

Y

N

发布人

4

published_on

date

10

0

Y

N

发布时间

5

relevant_attachments

varchar

255

0

Y

N

相关附件

6

content

text

65535

0

Y

N

内容

7

recommend

int

10

0

N

N

0

智能推荐

8

create_time

datetime

19

0

N

N

CURRENT_TIMESTAMP

创建时间

9

update_time

timestamp

19

0

N

N

CURRENT_TIMESTAMP

更新时间

表progress_tracking (进度追踪)

编号

名称

数据类型

长度

小数位

允许空值

主键

默认值

说明

1

progress_tracking_id

int

10

0

N

Y

进度追踪ID

2

task_name

varchar

64

0

Y

N

任务名称

3

assign_users

int

10

0

Y

N

0

分配用户

4

task_type

varchar

64

0

Y

N

任务类型

5

record_date

varchar

64

0

Y

N

记录日期

6

task_progress

text

65535

0

Y

N

任务进度

7

problem_feedback

text

65535

0

Y

N

问题反馈

8

recommend

int

10

0

N

N

0

智能推荐

9

create_time

datetime

19

0

N

N

CURRENT_TIMESTAMP

创建时间

10

update_time

timestamp

19

0

N

N

CURRENT_TIMESTAMP

更新时间

表supplier_information (供应商信息)

编号

名称

数据类型

长度

小数位

允许空值

主键

默认值

说明

1

supplier_information_id

int

10

0

N

Y

供应商信息ID

2

supplier_name

varchar

64

0

Y

N

供应商名称

3

responsible_person

varchar

64

0

Y

N

负责人

4

contact_number

varchar

64

0

Y

N

联系电话

5

address

varchar

64

0

Y

N

地址

6

main_supply_goods

varchar

64

0

Y

N

主供商品

7

recommend

int

10

0

N

N

0

智能推荐

8

create_time

datetime

19

0

N

N

CURRENT_TIMESTAMP

创建时间

9

update_time

timestamp

19

0

N

N

CURRENT_TIMESTAMP

更新时间

表task_allocation (任务分配)

编号

名称

数据类型

长度

小数位

允许空值

主键

默认值

说明

1

task_allocation_id

int

10

0

N

Y

任务分配ID

2

task_name

varchar

64

0

Y

N

任务名称

3

assign_users

int

10

0

Y

N

0

分配用户

4

task_type

varchar

64

0

Y

N

任务类型

5

completion_time

date

10

0

Y

N

完成时间

6

task_content

text

65535

0

Y

N

任务内容

7

recommend

int

10

0

N

N

0

智能推荐

8

create_time

datetime

19

0

N

N

CURRENT_TIMESTAMP

创建时间

9

update_time

timestamp

19

0

N

N

CURRENT_TIMESTAMP

更新时间

表task_type (任务类型)

编号

名称

数据类型

长度

小数位

允许空值

主键

默认值

说明

1

task_type_id

int

10

0

N

Y

任务类型ID

2

task_type

varchar

64

0

Y

N

任务类型

3

recommend

int

10

0

N

N

0

智能推荐

4

create_time

datetime

19

0

N

N

CURRENT_TIMESTAMP

创建时间

5

update_time

timestamp

19

0

N

N

CURRENT_TIMESTAMP

更新时间

表user_communication (用户交流)

编号

名称

数据类型

长度

小数位

允许空值

主键

默认值

说明

1

user_communication_id

int

10

0

N

Y

用户交流ID

2

sending_users

int

10

0

Y

N

0

发送用户

3

receiving_users

int

10

0

Y

N

0

接收用户

4

related_images

varchar

255

0

Y

N

相关图片

5

communication_content

text

65535

0

Y

N

交流内容

6

recommend

int

10

0

N

N

0

智能推荐

7

create_time

datetime

19

0

N

N

CURRENT_TIMESTAMP

创建时间

8

update_time

timestamp

19

0

N

N

CURRENT_TIMESTAMP

更新时间

4 系统实现

4.1员工功能模块实现

4.1.1登录模块

登录模块,用户、管理员可以通过登录进入该系统,如果输入正确用户名和密码,则可以进入该系统,显示的结果如下。

用户登录界面如下图所示。

图4-1登录模块界面图

登录关键代码如下:

  /**

     * 登录

     * @param data

     * @param httpServletRequest

     * @return

     */

    @PostMapping("login")

    public Map<String, Object> login(@RequestBody Map<String, String> data, HttpServletRequest httpServletRequest) {

        log.info("[执行登录接口]");

        String username = data.get("username");

        String email = data.get("email");

        String phone = data.get("phone");

        String password = data.get("password");

        List resultList = null;

        QueryWrapper wrapper = new QueryWrapper<User>();

        Map<String, String> map = new HashMap<>();

        if(username != null && "".equals(username) == false){

            map.put("username", username);

            resultList = service.selectBaseList(service.select(map, new HashMap<>()));

        }

        else if(email != null && "".equals(email) == false){

            map.put("email", email);

            resultList = service.selectBaseList(service.select(map, new HashMap<>()));

        }

        else if(phone != null && "".equals(phone) == false){

            map.put("phone", phone);

            resultList = service.selectBaseList(service.select(map, new HashMap<>()));

        }else{

            return error(30000, "账号或密码不能为空");

        }

        if (resultList == null || password == null) {

            return error(30000, "账号或密码不能为空");

        }

        //判断是否有这个用户

        if (resultList.size()<=0){

            return error(30000,"用户不存在");

        }

        User byUsername = (User) resultList.get(0);

        Map<String, String> groupMap = new HashMap<>();

        groupMap.put("name",byUsername.getUserGroup());

        List groupList = userGroupService.selectBaseList(userGroupService.select(groupMap, new HashMap<>()));

        if (groupList.size()<1){

            return error(30000,"用户组不存在");

        }

        UserGroup userGroup = (UserGroup) groupList.get(0);

        //查询用户审核状态

        if (!StringUtils.isEmpty(userGroup.getSourceTable())){

            String res = service.selectExamineState(userGroup.getSourceTable(),byUsername.getUserId());

            if (res==null){

                return error(30000,"用户不存在");

            }

            if (!res.equals("已通过")){

                return error(30000,"该用户审核未通过");

            }

        }

        //查询用户状态

        if (byUsername.getState()!=1){

            return error(30000,"用户非可用状态,不能登录");

        }

        String md5password = service.encryption(password);

        if (byUsername.getPassword().equals(md5password)) {

            // 存储Token到数据库

            AccessToken accessToken = new AccessToken();

            accessToken.setToken(UUID.randomUUID().toString().replaceAll("-", ""));

            accessToken.setUser_id(byUsername.getUserId());

            tokenService.save(accessToken);

            // 返回用户信息

            JSONObject user = JSONObject.parseObject(JSONObject.toJSONString(byUsername));

            user.put("token", accessToken.getToken());

            JSONObject ret = new JSONObject();

            ret.put("obj",user);

            return success(ret);

        } else {

            return error(30000, "账号或密码不正确");

        }

}

    public String select(Map<String,String> query,Map<String,String> config){

        StringBuffer sql = new StringBuffer("select ");

        sql.append(config.get(FindConfig.FIELD) == null || "".equals(config.get(FindConfig.FIELD)) ? "*" : config.get(FindConfig.FIELD)).append(" ");

        sql.append("from ").append("`").append(table).append("`").append(toWhereSql(query, "0".equals(config.get(FindConfig.LIKE))));

        if (config.get(FindConfig.GROUP_BY) != null && !"".equals(config.get(FindConfig.GROUP_BY))){

            sql.append("group by ").append(config.get(FindConfig.GROUP_BY)).append(" ");

        }

        if (config.get(FindConfig.ORDER_BY) != null && !"".equals(config.get(FindConfig.ORDER_BY))){

            sql.append("order by ").append(config.get(FindConfig.ORDER_BY)).append(" ");

        }

        if (config.get(FindConfig.PAGE) != null && !"".equals(config.get(FindConfig.PAGE))){

            int page = config.get(FindConfig.PAGE) != null && !"".equals(config.get(FindConfig.PAGE)) ? Integer.parseInt(config.get(FindConfig.PAGE)) : 1;

            int limit = config.get(FindConfig.SIZE) != null && !"".equals(config.get(FindConfig.SIZE)) ? Integer.parseInt(config.get(FindConfig.SIZE)) : 10;

            sql.append(" limit ").append( (page-1)*limit ).append(" , ").append(limit);

        }

        log.info("[{}] - 查询操作,sql: {}",table,sql);

        return sql.toString();

}

    public List selectBaseList(String select) {

        List<Map<String,Object>> mapList = baseMapper.selectBaseList(select);

        List<E> list = new ArrayList<>();

        for (Map<String,Object> map:mapList) {

            list.add(JSON.parseObject(JSON.toJSONString(map),eClass));

        }

        return list;

}

4.1.2任务分配模块

点击“任务分配”可以查看任务分配任务名称、分配用户、任务类型、完成时间、任务内容等详情,并可以进行进度记录、意见反馈,可以进行查询和重置等操作。如下图所示。

图4-2任务分配界面图

4.1.3进度追踪模块

点击“进度追踪”可以查看进度追踪任务名称、分配用户、任务类型、记录日期、任务进度、问题反馈等详情,可以进行查询、重置、导出和删除等操作。如下图所示。

图4-3进度追踪界面图

4.1.4意见反馈模块

点击“意见反馈”可以查看意见反馈的分配用户、任务名称、相关图片、反馈内容等详细信息,可以进行查询、重置和删除等操作。如下图所示。

图4-4意见反馈界面图

4.1.5物料出库模块

点击“物料出库”可以查看物料出库的物料编号、物料名称、供应商、采购数量、采购价格、总金额、采购用户等详细信息,可以进行查询、重置、导出和删除等操作。如下图所示。

4-5物料出库界面图

4.2管理员功能模块实现

4.2.1管理员登录模块

  管理员输入账号、密码、验证码点击“登录”按钮就会跳转到登录界面。如下图所示。

图4-6管理员登录界面图

4.2.2系统用户管理模块

管理员可以对系统中所有的用户角色进行管控,包含了管理员、员工用户这两种角色,如果需要添加新的用户,点击页面中的“添加”按钮根据提示输入上用户信息,点击“提交”以后在对应的用户界面就可以查看到了,可以点击用户后面的“删除”按钮直接删除某一用户。如下图所示。

图4-7系统用户界面图

系统用户关键代码如下:

@PostMapping("/add")

    @Transactional

    public Map<String, Object> add(HttpServletRequest request) throws IOException {

        service.insert(service.readBody(request.getReader()));

        return success(1);

    }

    @Transactional

    public Map<String, Object> addMap(Map<String,Object> map){

        service.insert(map);

        return success(1);

}

4.2.3任务分配列表模块

点击“任务分配列表”管理员可以查看任务名称、分配用户、任务类型、完成时间、任务内容等详情,并可以对其进行进度记录、意见反馈,还可以进行查询、重置、删除等操作。如下图所示。

图4-8任务分配列表界面图

任务分配关键代码如下:

   @RequestMapping("/get_obj")

    public Map<String, Object> obj(HttpServletRequest request) {

        List resultList = service.selectBaseList(service.select(service.readQuery(request), service.readConfig(request)));

        if (resultList.size() > 0) {

            JSONObject jsonObject = new JSONObject();

            jsonObject.put("obj",resultList.get(0));

            return success(jsonObject);

        } else {

            return success(null);

        }

}

4.2.4任务分配添加模块

点击“任务分配添加”管理员可以对任务名称、分配用户、任务类型、完成时间、任务内容进行添加提交。如下图所示。

图4-9任务分配添加界面图

4.2.5供应商信息列表模块

点击“供应商信息列表”管理员可以查看供应商名称、负责人、联系电话、地址、主供商品等详情,并可以进行查询、重置、删除等操作。如下图所示。

图4-10供应商信息列表界面图

供应商信息关键代码如下:

 @RequestMapping(value = "/del")

    @Transactional

    public Map<String, Object> del(HttpServletRequest request) {

        service.delete(service.readQuery(request), service.readConfig(request));

        return success(1);

}

4.2.6物料入库管理模块

点击“物料入库”管理员可以查看物料编号、物料名称、供应商、采购数量、采购价格、总金额、采购用户等详情,并可以进行查询、重置、导出和删除等操作。如下图所示。

4-11物料入库管理界面图

4.2.7用户交流列表模块

点击“用户交流列表”管理员可以查看发送用户、接收用户、相关图片、交流内容等详情、并可以进行查询、重置、删除等操作。如下图所示。

图4-12用户交流列表界面图

4.2.8通知公告管理模块

点击“通知公告”管理员可以查看标题、发布人、发布时间、相关附件、内容等详细信息,并可以进行查询、重置、删除等操作。如下图所示。

图4-13通知公告界面图

通知公告关键代码如下:

 @PostMapping("/set")

@Transactional

    public Map<String, Object> set(HttpServletRequest request) throws IOException {

        service.update(service.readQuery(request), service.readConfig(request), service.readBody(request.getReader()));

        return success(1);

}

系统测试

5.1测试目的

测试的目的不仅要如何去组织测试,通过分析错误的产生原因以及结果,以便改进。在系统测试中,第一个目的就是检验系统在完成过程中的逻辑问题和系统可能存在的问题。然后通过测试修正原本的错误,提高系统的质量。第二个目的就是检测系统的安全性、可靠性也就是说系统的内容是不是安全的,会不会出现遗失等情况,系统是否能很好的正常的运行。

从制造企业管理流程系统的实际情况来考虑,系统测试的根本就是:各项功能是否能够正常运行,不同的用户可以通过系统都做出哪些操作。能否对系统的数据进行调用,对表的增删改查操作,并且系统数据和数据库的数据是否一致。

5.2测试方法

一个业务模块应该由许多功能单元共同实现,黑盒测试针对业务功能是否能按计划完成,并且不考虑系统内部的结构和效率问题,白盒测试的要求就是要尽可能的测试到所有的组成结构,即要尽量包含所有的功能模块、覆盖全部路径。这种测试要求测试人员必须完全了解系统的业务逻辑及处理过程。但是完成上面的要求是一件很难的事,并且若程序中含有循环之后,路径的数量会越来越大,执行每一条路径都将会变得极不现实。

5.3测试过程

5.3.1系统测试计划

通过这个测试体现了此系统的功能比较完善,系统运行比较稳定,足以证明此系统具有安全性和完整性。测试计划进度表在测试之前用来计划测试目的于测试的范围,并且计划出测试的方法以及测试的时间。软件的质量是我们的追求,所以测试的过程是十分重要的,测试计划因此也成为了测试工作的基础。

系统测试计划如下表所示。

表6-1系统测试计划表

测试任务

工作描述

计划开始日期

计划结束日期

测试策划阶段

制定测试的计划、时间和预测效果

测试设计阶段

选定测试用例,回顾测试覆盖

测试实现阶段

开发测试用例/脚本

测试执行阶段

测试用例/脚本执行

测试总结阶段

生成测试和缺陷填写报告

5.3.2系统测试用例

1.用户登录模块测试用例,用户登录系统时须要输入用户名和密码,用户名和密码输入正确则登录成功,否则将会给会相应提示。对用户登录输入用户名和密码设计详细测试用例。

用户登录测试用例如下表所示。

表6-2用户登录测试用例表

设计人

测试人

功能编号

1

功能组

登录界面

功能点

用户登录

测试日期

测试环境及前提

测试条件

已添加用户A用户:1,密码:

B用户:2,密码:

测试项目及内容

测试步骤

输入项

预期输出项

实际输出

1

空值/空值

提示“用户名或密码不能为空!”

提示“用户名或密码不能为空!”

2

空值/123

3

123/空值

4

1/1

成功登录到主程序,“系统设置”菜单中拥有所有权限

成功登录到主程序,“系统设置”菜单中拥有所有权限

111/1

提示“用户名或密码错误,请重新输入”

提示“用户名或密码错误,请重新输入”

5

2/2

成功登录到主程序,在“系统设置”菜单中只能修改自己的密码

成功登录到主程序,在“系统设置”菜单中只能修改自己的密码

测试结论

用户登录功能可以正常使用

总体结论

基本通过

测试结论

功能可正常使用

总体结论

基本通过

2.用户管理测试用例,添加用户时须要输入用户的详细信息,当用户信息输入正确时则输入成功,当用户信息输入不正确时则给出相应提示。

添加用户测试用例表如下表所示。

表6-3用户管理测试用例表

设计人

测试人

功能编号

2

功能组

系统设置

功能点

添加用户

测试日期

测试环境及前提

测试条件

系统中存在欲创建人的基本信息

测试项目及内容

测试步骤

输入项

预期输出项

实际输出

1

选择一条记录点击创建用户按钮

提示“用户创建成功!”

提示“用户创建成功!”

2

使用管理员权限登录为刚刚创建的用户授权

提示“授权成功!”

提示“授权成功!”

3

实用刚刚创建的用户登录系统

提示“登录成功!”

提示“登录成功!”

测试结论

添加用户功能可以正常使用

总体结论

基本通过

3.物料信息测试用例,对物料信息功能模块进行增删改查的测试。

物料信息测试用例如下表所示。

表6-4添加物料信息测试用例

设计人

测试人

功能编号

3

功能组

物料信息库存界面

功能点

添加物料信息

测试日期

测试环境及前提

测试条件

进入物料信息库存模块

测试项目及内容

测试步骤

输入项

预期输出项

实际输出

1

添加物料信息时,没有输入任何物料信息

提示“物料信息添加失败!”

提示“物料信息添加失败!”

2

添加物料信息时,输入带*号的文本框,并且符合格式要求

提示“物料信息添加成功!”

提示“物料信息添加成功!”

3

添加物料信息时,输入所有文本框,并且格式符合要求

提示“物料信息添加成功!”

提示“物料信息添加成功!”

4

添加物料信息时,只输入没有带*号的文本框

提示“物料信息添加失败!”

提示“物料信息添加失败!”

4.物料入库管理测试用例,物料入库测试物料入库情况,可以选择一个商品进行入库,可以选则多个商品进行入库。

物料入库用例表如下表所示。

表6-5物料入库管理测试用例表

设计人

测试人

功能编号

4

功能组

入库

功能点

物料入库

测试日期

测试环境及前提

测试条件

已录入物料信息

测试项目及内容

测试步骤

输入项

预期输出项

实际输出

1

选择一个物料,点击入库按钮,输入该物料入库数量

入库成功

入库成功

2

选择一个物料,点击入库按钮,没有输入该物料入库数量

请输入入库数量

请输入入库数量

测试结论

物料入库功能可以正常使用

总体结论

基本通过

5.4测试结果

测试结果包括界面及功能测试和代码测试两部分,本系统对每个功能点做了详细的测试,测试结果正常。

测试结果表如下表所示。

表6-6系统功能测试结果表

序号

测试模块

功能点

质量保证标准

问题属性

测试结果

F1

系统用户管理模块

修改密码

正确性

故障

正常

权限设置

正确性

故障

正常

角色管理

正确性

缺陷

正常

用户信息添加

正确性

故障

正常

用户信息修改

正确性

故障

正常

用户信息查询

正确性

故障

正常

用户信息删除

正确性

故障

正常

退出系统

正确性

故障

正常

F2

功能管理模块

物料信息添加

正确性

故障

正常

物料信息修改

正确性

故障

正常

物料信息删除

正确性

故障

正常

入库信息添加

正确性

故障

正常

入库信息修改

正确性

故障

正常

入库信息删除

正确性

故障

正常

出库信息添加

正确性

故障

正常

出库信息修改

正确性

故障

正常

出库信息删除

正确性

故障

正常

任务分配添加

正确性

故障

正常

任务分配修改

正确性

故障

正常

任务分配删除

正确性

故障

正常

结论

经过了几个月的努力,本制造企业管理流程系统终于完成了,虽然在校期间也开发过一些小型的系统,但是都是在老师的讲解以及辅助下完成的,没有经历过开发之前的需求分析、系统分析,都是直接从系统设计开始的,因此本次开发的制造企业管理流程系统对我意义重大。

在开发系统最初,首先对各个制造企业管理流程系统方面的需求进行调研,了解对于企业来说,开发的系统需要实现哪些功能才能满足企业的管理需求,对需求进行分析;其次选择自己比较熟悉的JAVA语言,MYSQL数据库,使用SSM框架来设计开发,通过知网库、学校图书馆等地方查阅、学习这些技术,掌握编程的思想和方法,然后就是对系统进行分析,从系统开发的可行性、系统实现的功能、系统应该具备的性能以及系统的操作流程方面,对系统进行全方位的分析,确定系统的最终功能,从而对系统的功能和数据库进行设计,最后就是系统的实现以及对实现的功能的测试,确保系统能够稳定的运行。

在开发的过程中暴露出了自己的很多问题,比如前期的准备还是不够充分,不能完全掌握其操作流程;在开发过程中对JAVA的编程掌握的还不够熟练以及对系统的环境配置上还存在很多问题,经常会导致项目在运行的时候出现错误。学无止境,通过一边查阅资料一边向导师请教,慢慢的解决了这些问题,在以后的学习、工作者我会更加严谨,通过本项目的开发,我将会收益终生!

参考文献

[1]Xiao Z,Ali Y,Xin W, et al. Sports Work Strategy of College Counselors Based on MySQL Database Big Data Analysis[J]. International Journal of Information Technology and Web Engineering (IJITWE),2023,18(1).

[2]杨华,徐扬.MySQL数据库对中文编码支持的探讨[J].网络安全和信息化,2023(10):157-160.

[3]乔卫东.智能流程系统为基层卫生高质量发展按下加速键[J].中国农村卫生,2023,15(09):33-34.

[4]袁琳琳.浅析Java语言在计算机软件开发中的应用[J].信息记录材料,2023,24(09):81-83.DOI:10.16009/j.cnki.cn13-1295/tq.2023.09.006.

[5]王珂,王亚楠.MySQL数据库应用课程的TPACK教学实践[J].电子技术,2023,52(07):39-41.

[6]Karthik G,Debashish M,Jagoda C, et al. Developing a MySQL Database for the Provenance of Black Tiger Prawns (Penaeus monodon).[J]. Foods (Basel, Switzerland),2023,12(14).

[7]毛天宇,王星宇,常瑞等.面向Java语言生态的软件供应链安全分析技术[J].软件学报,2023,34(06):2628-2640.DOI:10.13328/j.cnki.jos.006852.

[8]朱金波.Java编程语言在计算机软件开发中的应用优势分析[J].信息记录材料,2023,24(05):68-70.DOI:10.16009/j.cnki.cn13-1295/tq.2023.05.062.

[9]程书玲.基于SSM框架的健康管理系统的设计及实现[J].黑龙江科学,2023,14(08):140-143.

[10]邓阳名,顾潇,梁爱媚.基于Java语言的数据库访问技术应用研究[J].中国新通信,2023,25(08):83-85.

[11]付恩狄,姚明亮,梁宇柔等.基于JAVA技术的设备绝缘状态自动化监控方法[J].电气自动化,2023,45(02):36-38+41.

[12]张浩.SSM框架在Web应用开发中的设计与实现研究[J].电脑知识与技术,2023,19(08):52-54.DOI:10.14004/j.cnki.ckt.2023.0353.

[13]曹泽翰.基于SSM框架的流体力学课程虚拟仿真实验平台设计[J].信息与电脑(理论版),2022,34(20):34-36.

[14]王棋.基于SSM框架的网上摄影系统设计与实现[J].电子质量,2022(10):89-93.

[15]李曜彤. KJ集团内部办公流程系统的设计与实现[D].大连海事大学,2021.DOI:10.26989/d.cnki.gdlhu.2021.001417.

[16]孙子尧. 某整车制造企业质量管理信息系统研究与实现[D].山东建筑大学,2021.DOI:10.27273/d.cnki.gsajc.2021.000177.

[17]余军.基于流程驱动的高端复杂离散型制造企业问题管理系统[J].机械制造,2020,58(10):76-80.

[18]李宗辉,肖炯恩,林阳春.“互联网+”背景下的制造企业库存管理流程优化研究——基于过程链网络的优化策略[J].未来与发展,2020,44(08):22-31.

[19]龙绪明,闫明,李巍俊等. 虚拟电子智能制造工厂控制系统及其控制方法[P]. 江苏省:CN109782714A,2019-05-21.

[20]殷雄.动态业务流程管理在发电机组制造企业中的运用[J].中国集体经济,2018(05):69-70.

致 谢

“致谢”意味着论文的结束,也意味着自己的毕业设计顺利完成,同时也代表了自己的大学生涯即将结束,我即将要离开自己敬爱的老师和亲爱的同学们,在这里我首先要感谢的就是所有的老师,“春满江山绿满园,桃李争春露笑颜,东西南北春常在,唯有师恩留心间”,他们无论在我的学业还是在我的生活上付出了所有,对我谆谆教诲;其次我要感谢我的指导老师,他在我的整个毕业设计当中起着引导作用,每当我有困难的时候,他总会第一时间帮助我,引导我进行解决问题,而不是直接告诉我答案,“授人以鱼不如授人以渔”,指导老师的这种做法让我受益终生,同时我也从指导老师身上学习到了许多的开发技巧以及检验,这对我今后的开发起着十分重要的作用;再次,我需要感谢我的同学、室友,他们不仅仅在毕业设计上给我许多帮助意见,在大学同窗四年,他们给过我的帮助太多了,我对他们有太多的不舍,无法用言语表示,我相信在以后的人生道路上只要想到他们,我心里就会很温暖,这种友情是任何感情替代不了的;最后我还要感谢家人,感谢自己,感谢家人对我的支持,感谢自己在学业上的坚持,我相信我以后的道路会越来越好。

点赞+收藏+关注  →私信领取本源代码、数据库

  • 30
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值