企业内部行文管理MySQL_GitHub - Paulpaulzmx/-Java-mysql-: 企业内部行文管理系统

本文主要是介绍企业内部行文管理MySQL_GitHub - Paulpaulzmx/-Java-mysql-: 企业内部行文管理系统,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

本地留言系统

一、项目简介

由于自己的需求分析有偏差,对企业内部的行文批准流程不熟悉,本系统只能当作一个普通的本地留言系统使用。

由于是数据库设计,系统具有基本的CRUD功能。

12.png

二、设计内容

1、需求分析

内部行文管理系统需要完成功能主要有以下几点:

行文管理信息系统使用人员的用户名和密码信息,每个部门有—位管理员,具体负责行文管理信息系统的使用,该管理员的用户名和密码由后台的数据库管理员(就是我)预先设定。

文稿的撰写,包括行文号、拟稿人、行文标题、时间、正文信息的输入,输入后选样要发送的部门。

对所保存的未发送文稿的修改、发送功能。

对方部门、管理员所发文的接收、查看以及评论回复功能。

行文查询,可以查询本部门所发送的行文、末发送的行文以及别的部门所发送过来的行文。

总的来说就是:登陆、注销、写、发、收、查询功能

2、系统功能模块设计

根据系统功能要求,可以将系统分解成几个模块来分别设计应用程序界面,如图所示:

1.png

3、与其它系统的关系

可接入人事管理系统(如果有的话(~ ̄▽ ̄)~)

4、数据流程图

2.png

三、 数据库设计

1、数据库需求分析

通过对企业内部行文管理的内容和数据流程分析,设计的数据项和数据结构如下:

用户口令信息。包括的数据项有用户名和口令

内部行文信息。包括的数据项有文件号、撰写人、标题、正文、日期、行文状态标志(0未发送,1发送成功,2已删除)、是否已读标志(0未读,1已读)

内部行文处理信息。包括的数据项有文件号、撰写人、接收人、标题、正文、日期、审核意见等。

2、数据库概念结构设计

本系统所需数据的 E-R 模型图。

8451c3235511bb31eff81a9ae1642b29.png

3、数据库逻辑结构设计

在上面实体以及实体之间关系的基础上,形成数据库中的表格以及各个表格之间的关系。内部行文管理系统数据库中各个表格的设计结果如下所示。

USER_PSWD 用户登陆信息表:

cd740684436c0b496cd40057bfa99eb4.png

表 2 XWCL 行文处理信息表

5.png

4、数据库的建立

向表USER_PSWD输入初始数据

d5c96e87e28574fb5a0a952e9eac6bdd.png

四、各功能模块的设计与实现

软件主要采用JavaFX和MySQL进行设计。JavaFX是基于Java的GUI设计框架,用它设计出的界面较为现代,且其内部UI控件可用CSS进行进一步的美化,所以我选择了它。但本人之前未接触过JavaFX,且课设时间只有两周,光是基本逻辑的实现和学习JavaFX基本功能就花费大量时间,故没有进一步美化界面(当时我也不会CSS)。下面是具体模块的设计与实现:

1、登陆模块:

(1)、分析与设计

ca177ff8579bc636b0e0a030f676cf33.png

​此模块实现进入系统管理前的验证操作,只有正确的用户名和密码才能进入系统并进行各种操作。其结构如图4所示

(2)、实现:通过JDBC连接数据库

通过抓取用户输入的用户名和密码,并将其与数据库中录入的用户信息进行比对。若合法,则进入主界面,不合法则提示信息有误。

(3)、效果展示

98f29772086668ca3f22621c5e65acc7.png

58b2c446937101671e4cc76a9a07402d.png

2、主页面模块

(1)、分析与设计

主页面是用户通过身份认证后的界面,也是操作行文系统各个功能的平台。

主页面模块的结构图:

96f877b6b98138e5e7af59054b261712.png

(2)、实现

采用JavaFX作为GUI设计框架,主界面采用BorderPane边界布局。上部分和左部分是不变的,中部分和右部分随着所选功能的不同而变化。

顶部包括一个菜单栏和一个随功能变化内容的Title:菜单栏实现了程序退出和用户注销两个功能(点击注销后回到登陆界面);Title初始文本为Welcome,当用户选择写信息时,Title会变为Write,选择收件箱时会变为Receive...

左边从上到下为4个按钮,依次为:写信息、收件箱、草稿箱、垃圾箱。

3、行文撰写模块

(1)、分析与设计

此模块实现对行文的撰写,包括行文标题、内容、日期等基本资料,写完后可选择发送行文或另存为至草稿箱。模块结构如图所示

7c98ef0db505a18f1842d4284fb77fe2.png

(2)、实现

单击写信息按钮后,BorderPane的Center部分为内容编辑区,Right部分为发送区。

编辑区中的文稿号、作者、日期已经自动填好,作者为当前用户、日期为当前时间,只需填写标题和正文即可。

发送区上半部分为选择联系人区域,打勾即为选中,支持多选,下半部分有两个按钮,分别为另存为和发送。另存为会将1条行文存至数据库,行文发送标志写为0。而发送则会写入n条数据(n为收件人数)且将发送标志写为1。

(3)、效果展示

撰写文案

5695c23abe3360563f02cab234486208.png

另存文案

b6763c21cada322e01e5032c40d4486a.png

发送文案

27eb7b2bfe05eb7191d19aeaf84a8a8b.png

4、行文接收、修改、删除模块

这三个模块功能类似,只是有一些细小的差别,故放在一起

(1)、分析与设计

4e388ef07c443565ba77db7df2277acc.png

接收模块实现对收到行文的查看,并在查看后进行反馈。

修改模块实现对未发送行文的修改,并可在修改后发送。

删除模块实现对已收到行文的删除,误删除后也可还原。

(2)、实现

将BorderPane界面Right部分为null,Center部分建立查询区,构成主要界面。

查询区既可选择按日期、发件人、收件人、主题等进行条件查询,也可查询全部。当在接收模块查询时,SQL查询语句中要有"已发送标志为1且接收人为当前用户且删除标志为0"的条件。在草稿中查询语句有"已发送标志为0且发送人为当前用户且删除标志为0"的条件。在删除模块中条件则变为"删除标志为1且收件人为当前用户"。

(3)、效果展示:

首先将账户切换至研发部(刚刚总经理给他发信息了)

29884fe3dbaa52473f3f91884c205c60.png

点击收件箱

3ba0f71e042cacbef5a6ab28024eee4b.png

点击查询所有

单击查看

0b3c2304b2b98eccac67447ebb428ed7.png

单击保存

507a287f76dddf49262cc3c06fea52e2.png

返回到收件箱

51c8bb487e1e4714a0dcdfc65d655df8.png

点击删除后再刷新,行文信息消失在收件箱中,出现在垃圾箱中

8ba787847ffdbc480c56ae0e30c5e320.png

d003cb876161a1f9abc66aa7208a728c.png

5、其他功能的实现

(1)、数据库异常报错

当数据库操作出错时,会弹出对话框并有详细的错误提示(提示是给程序员看的...)

20bd18a5fb2e5de54b6c8a51daae9d21.png

详细信息如下图

6781ca3d8552a43b05ddc3822dcf45d2.png

(2)、用户不规范操作报错

用户不规范操作报错

比如用户在发送时未选择联系人会提示:

d0a58e50697ad989d30780833d66a72e.png

五、 总结和体会

软件的设计比具体的代码实现更重要。我在设计上花的时间要比实际写代码所花的时间多得多,其间还因为准备的不充分而大改了一次。

对企业内部的行文处理方式了解不够充分(需求分析不到位),导致只按自己的想法设计软件。企业内部处理行文方式大致为:一个部门再给另一个部门发送行文时,要通过审核才能发送出去,而不是想发就发。且撰写行文的人员不只是行文管理人员,其他的员工也可以撰写行文,行文管理人员负责审核和反馈。还有,普通员工和管理员登陆后所拥有的权限应该是不同的,看到的界面也应不同。

高冗余的代码会降低开发效率。

这篇关于企业内部行文管理MySQL_GitHub - Paulpaulzmx/-Java-mysql-: 企业内部行文管理系统的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/198427

相关文章

SpringBoot集成图片验证码框架easy-captcha的详细过程

《SpringBoot集成图片验证码框架easy-captcha的详细过程》本文介绍了如何将Easy-Captcha框架集成到SpringBoot项目中,实现图片验证码功能,Easy-Captcha是... 目录SpringBoot集成图片验证码框架easy-captcha一、引言二、依赖三、代码1. Ea

Springboot控制反转与Bean对象的方法

《Springboot控制反转与Bean对象的方法》文章介绍了SpringBoot中的控制反转(IoC)概念,描述了IoC容器如何管理Bean的生命周期和依赖关系,它详细讲解了Bean的注册过程,包括... 目录1 控制反转1.1 什么是控制反转1.2 SpringBoot中的控制反转2 Ioc容器对Bea

MySQL 日期时间格式化函数 DATE_FORMAT() 的使用示例详解

《MySQL日期时间格式化函数DATE_FORMAT()的使用示例详解》`DATE_FORMAT()`是MySQL中用于格式化日期时间的函数,本文详细介绍了其语法、格式化字符串的含义以及常见日期... 目录一、DATE_FORMAT()语法二、格式化字符串详解三、常见日期时间格式组合四、业务场景五、总结一、

mysql线上查询之前要性能调优的技巧及示例

《mysql线上查询之前要性能调优的技巧及示例》文章介绍了查询优化的几种方法,包括使用索引、避免不必要的列和行、有效的JOIN策略、子查询和派生表的优化、查询提示和优化器提示等,这些方法可以帮助提高数... 目录避免不必要的列和行使用有效的JOIN策略使用子查询和派生表时要小心使用查询提示和优化器提示其他常

Spring Cloud Hystrix原理与注意事项小结

《SpringCloudHystrix原理与注意事项小结》本文介绍了Hystrix的基本概念、工作原理以及其在实际开发中的应用方式,通过对Hystrix的深入学习,开发者可以在分布式系统中实现精细... 目录一、Spring Cloud Hystrix概述和设计目标(一)Spring Cloud Hystr

grom设置全局日志实现执行并打印sql语句

《grom设置全局日志实现执行并打印sql语句》本文主要介绍了grom设置全局日志实现执行并打印sql语句,包括设置日志级别、实现自定义Logger接口以及如何使用GORM的默认logger,通过这些... 目录gorm中的自定义日志gorm中日志的其他操作日志级别Debug自定义 Loggergorm中的

MySQL InnoDB引擎ibdata文件损坏/删除后使用frm和ibd文件恢复数据

《MySQLInnoDB引擎ibdata文件损坏/删除后使用frm和ibd文件恢复数据》mysql的ibdata文件被误删、被恶意修改,没有从库和备份数据的情况下的数据恢复,不能保证数据库所有表数据... 参考:mysql Innodb表空间卸载、迁移、装载的使用方法注意!此方法只适用于innodb_fi

Spring Boot整合消息队列RabbitMQ的实现示例

《SpringBoot整合消息队列RabbitMQ的实现示例》本文主要介绍了SpringBoot整合消息队列RabbitMQ的实现示例,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的... 目录RabbitMQ 简介与安装1. RabbitMQ 简介2. RabbitMQ 安装Spring

mysql通过frm和ibd文件恢复表_mysql5.7根据.frm和.ibd文件恢复表结构和数据

《mysql通过frm和ibd文件恢复表_mysql5.7根据.frm和.ibd文件恢复表结构和数据》文章主要介绍了如何从.frm和.ibd文件恢复MySQLInnoDB表结构和数据,需要的朋友可以参... 目录一、恢复表结构二、恢复表数据补充方法一、恢复表结构(从 .frm 文件)方法 1:使用 mysq

mysql8.0无备份通过idb文件恢复数据的方法、idb文件修复和tablespace id不一致处理

《mysql8.0无备份通过idb文件恢复数据的方法、idb文件修复和tablespaceid不一致处理》文章描述了公司服务器断电后数据库故障的过程,作者通过查看错误日志、重新初始化数据目录、恢复备... 周末突然接到一位一年多没联系的妹妹打来电话,“刘哥,快来救救我”,我脑海瞬间冒出妙瓦底,电信火苲马扁.