会议OA系统会议管理模块开发思路(layui搭建)

目录

一.为什么要进行开发

1.开发目的

2.项目流程

A.发起会议请求过程

1.首先实现我们的多选下拉框功能!

2.时间组件功能,并且提交我们新增加的会议内容

3.在进行发起会议编码时遇到的问题,BUG

3.1.有点时候js访问不到路径

3.2在增加会议时,那个主持人获取不到

B:我的会议显示

我的会议显示BUG

发起新的会议时查询不到

总结AB两个阶段

C.会议排座(重点)

1.编写sql,定义变量调用方法达到随机生成任意的.png文件

2.在tomcat中需要配置图片映射关系,和定义配置文件用于映射

3.排座实现

总结

心得

会议排座遇到的问题

1.排座图片格式无法转换成png

2.排座图片转换成png,保留不了排座位置

D.会议送审

1.编写sql,实现servelt

2.通过多选下拉框实现审批

E.送审后的会议查询

1.编写sql,实现servelt

2.在界面的js文件实现功能,查询到数据

F.会议签字,审批

1.编写sql,实现servelt

2.导入签字资源,配置文件

G.会议通知(会议查询)

1.编写sql,实现servelt

2.加载资源

3.实现功能

H.是否参加会议,会议反馈

1.编写sql,实现servelt

2.实现功能

I.待开会议,历史会议,所有会议

1.编写sql,实现servelt

2.实现功能


一.为什么要进行开发

1.开发目的

通过引入信息化技术来提高企业办公效率和管理水平的项目。在会议OA项目中,主要目标是改进会议管理流程,提升会议效率和减少会议成本。

2.项目流程

登录任意一个用户来到会议发布界面,根据需求输入会议标题,会议内容,选择参与者,列席者,主持人就是登录自带的用户,在输入地点,选择时间,根据需求输入备注最后在点击提交!

A.发起会议请求过程

1.首先实现我们的多选下拉框功能!

搜索我们的layui官网,使用其官方文档的多选下拉框copy到搭建的js文件中,并且使用一个函数初始化,将官方的元素修改成参与者,列席者所对应的字段名。

然后在UserDao定义一个sql语句用来:查询所有用户 绑定多功能下拉框在进行配置。通过此方法和layui的下拉框的方法组合一起用来遍历出来参与者,列席者,实现过程中需要ajax来传递参数 queryUserAll。

2.时间组件功能,并且提交我们新增加的会议内容

搜索我们的layui官网,使用其官方文档的会议时间组件初始化copy到搭建的js文件中,并且时间模块初始化要放到layui自定义组件中,在将保存的时间范围进行处理,进行截取拿到开始时间,结束时间,去除空格放入json对象,其中主持人是在进行登录操作时进行数据的一个回显。

设置一个点击事件用于增加会议,发送ajax请求用于增加会议,携带参数add。

3.在进行发起会议编码时遇到的问题,BUG
3.1.有点时候js访问不到路径

(ctrl+鼠标可以点击进去,但是加载在网页中时访问不到),要通过路径前在添加${pageContext.request.contextPath }才行!

3.2在增加会议时,那个主持人获取不到

原因:在user.action中的login方法没有通过sesson保存用户

以为通过ResponseUtil.writeJson(resp, u);获取的u就已经保存了,其实ResponseUtil.writeJson(resp, u); 保存的是字符串

B:我的会议显示

首先编写一个通用的会议查询SQL语句,包含会议信息表数据,主持人姓名、审批人姓名、会议状态。然后在进行我的会议的sql语句编写:拼接一个会议主题,在根据当前登陆用户ID作为主持人字段的条件,最后按照会议ID降序排序。

写完我们的dao之在UserAction 实现/查询所有会议数据,并且要实现分页效果;

建立我们的jsp界面后,导入我们的js正式进入我们的会议显示操作。搜索我们的layui官网,使用其官方文档的数据表格(使用函数封装)并进行数据的初始化。

将其中的elem设置jsp中table设置(id),将field设置成为实体中的字段名,有某些字段名用别名来代替(用来回显会议的状态,以及审批人),在进行设置我们的数据访问路径info.action?methodName=myInfos,并且在将这个方法在layui自定义组件中进行调用。

然后在jsp界面中添加一个点击事件并调用一个方法于数据的查询,封装一个函数用于数据查询,目的是当点击查询时数据就会加载出来

我的会议显示BUG
发起新的会议时查询不到

在进行增加会议时,前端传递的一个主持人字段名在js文件中没有转换成为数据库的一个字段名,导致sql在查询时找不到数据,在将数据的字段名修改后发起会议的sql语句可以正常运行。

总结AB两个阶段

是对于正常的Javamvc架构的使用,都是最基本操作。但是自己在操作的过程中还是会出现一些细节的地方不到位,在某些地方会有一定的欠缺,对于框架的理解还是有一定不足还需要加强!、

C.会议排座(重点)

1.编写sql,定义变量调用方法达到随机生成任意的.png文件

.首先编写一个sql语句用于根据会议ID更新会议的排座图片,然后在MeetingInfoAction.中实现这个方法的servelt,在这个servelt方法中调用 PropertiesUtil中的方法,用来生成存储本地图片的变量和存储在服务器的图片变量,其次定义一个变量用于随机生成图片名字,还要在后面拼接一个+".png"。接着调用 Base64ImageUtils中GenerateImage方法将Base64编码转换为图片文件,然后在进行拼接将存储本地图片的变量+"/"+用于随机生成图片名字变量,其次将setpic 的内容变成请求地址,最后在调用根据会议ID更新会议的排座图片的方法。

2.在tomcat中需要配置图片映射关系,和定义配置文件用于映射

在其中dirPath=后面的部分需要在自己的盘符中创建相对应的包,用于排座图片的保存。

serverPath=是需要配置在服务器的path中,document base中则是在自己的盘符中创建相对应的包!

3.排座实现

在我们的myMeeting.js中排座按钮添加一个点击事件,打开排座界面。点击事件通过封装一个函数打开会议排座对话框,在里面定义要弹出的jsp。在将我们的jQuery、html2canvas(排座插件)导入到项目中加载到弹出的jsp中。在这个jsp中我们可以将我们参与会议的人拖动来达到一个排座的目的,其次还准备了一个薪资会议成员的一个输入框其目的是指为了解决领导的突然参与会议,可以将座位重新排座!

总结
心得

是对于自己的一个尝试,之前没有听说过这种东西有一种感觉很难的心情。但是真正去做时并没有自己想的那么难,思路很重要。在有思路的领导下具体去实现功能也就是水到渠成的事情了

会议排座遇到的问题
1.排座图片格式无法转换成png

在定义一个变量用于随机生成图片名字,忘记拼接+".png"导致文件无法转换成png。

2.排座图片转换成png,保留不了排座位置

调用 Base64ImageUtils中GenerateImage方法将Base64编码转换为图片文件时,由于粗心将一个符号','忘记导致会议排座图片生成为空白,将符号加上即可解决问题

D.会议送审

1.编写sql,实现servelt

在MeetingInfoDao.java编写sql根据会议ID更新会议的审批人(送审)updateAuditorById,在MeetingInfoAction.java实现这个方法

2.通过多选下拉框实现审批

首先给我们的送审按钮增加一个点击事件,弹出一个下拉框,并通过ajax来传递一个参数来实现会议ID更新会议的审批人,并且获取会议id,会议主持人。

其次通过封装一个函数,通过ajax来传递参数queryUserAll,通过如此来遍历出来需要送审的人员,在进行提交即可

E.送审后的会议查询

1.编写sql,实现servelt

在MeetingInfoDao实现:我的审批sql在通用sql基础上进行拼接会议主题,凭借根据当前登陆用户ID作为审批人字段的条件,查询会议状态为待审核的会议信息

在servelt调用方法myAudit,设置分页

2.在界面的js文件实现功能,查询到数据

通过表格组件讲数据加载出来,在通过封装一个函数发送数据的请求路径myAudit,讲数据遍历出来

F.会议签字,审批

1.编写sql,实现servelt

编写新增会议审批记录,这给sql语句有点特殊,需要同时执行两个sql语句,来达到对于数据库数据的操作。

其次在MeetingInfoAction中实现我的审批方法:

a.保存会议签字的图片

定义保存路径,定义请求地址,定义会议签字图片名称(原图名称),定义会议签字图片名称(裁剪后的名称),拼接图片完成路径(原图),拼接裁剪图路径上传签字图片并保存到指定位置,裁剪原图替换sign的图片路径删除原图

b.新增会议审批记录及更新会议状态

2.导入签字资源,配置文件

凭借这个类,来实现通过 鼠标来进行签字功能;配置文件在最上面进行过一次这里就不再进行叙述

G.会议通知(会议查询)

1.编写sql,实现servelt

会议通知:查询出我(当前登陆用户)需要参与的会议及会议的反馈信息(参会、缺席以及未读)。在servelt中,实现会议通知的方法!

2.加载资源

配置xml文件,在header.jsp中导入config.js,在项目中导入test.js

3.实现功能

首先给我们的查询按钮增加一个点击事件,并通过ajax来传递一个参数查询出我(当前登陆用户)需要参与的会议及会议的反馈信息,其次通过封装一个函数,通过ajax来传递参数queryMeetingFeedBackByUserId,通过如此来遍历出来需要通知的函数在进行提交即可

H.是否参加会议,会议反馈

1.编写sql,实现servelt

编写新增会议反馈记录sql,编写据会议ID查询会议参与人员的反馈信息sql

在servelt分别实现这两个方法

2.实现功能

是否参加会议:在js文件中通过封装一个函数,在进行调用。传递一个add的参数,并且来回显数据。

会议反馈:在js文件中通过封装一个函数,在进行调用。传递一个queryMeetingBackByMeetingId的参数,并且来回显数据从而打开查看本会议的反馈详情!

I.待开会议,历史会议,所有会议

1.编写sql,实现servelt

在其中待开会议、历史会议的sql语句时相同的,在通用sql的基础上拼接+按照会议标题模糊查询+根据当前登陆用户ID作为主持人字段的条件+根据会议状态,查询会议信息+按照会议ID降序排序,在servelt实现此方法queryMeetingInfoByState即可

所有会议:在通用sql的基础上拼接+按照会议标题模糊查询+根据当前登陆用户ID作为主持人字段的条件+根据会议状态,查询会议信息+按照会议ID降序排序,在servelt实现此方法allInfos即可

2.实现功能

我们的jsp界面后,导入我们的js正式进入我们的会议显示操作。搜索我们的layui官网,使用其官方文档的数据表格(使用函数封装)并进行数据的初始化。

将其中的elem设置jsp中table设置(id),将field设置成为实体中的字段名,有某些字段名用别名来代替(用来回显会议的状态,以及审批人),在进行设置我们的数据通过ajax来传递方法的参数(allInfos,queryMeetingInfoByState),并且在将这个方法在layui自定义组件中进行调用。

然后在jsp界面中添加一个点击事件并调用一个方法于数据的查询,封装一个函数用于数

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/15449.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

高级 IO

目录 前言 什么是IO? 有哪些IO的的方式呢? 五种IO模型 这五种模型在特性有什么差别呢? 其他高级IO 非阻塞IO fcntl 实现函数SetNonBlock I/O多路转接之select 初识select select函数 参数说明: 关于timeval结构 函数…

通过一次线上问题,讲下Ribbon重试机制

前言 前段时间,产品经理在线上验证产品功能的时候,发现某个功能不符合需求预期,后来测试验证发现是服务端的一个接口大概率偶现超时,前端做了兜底处理,所以对线上用户么有太大影响。 问题排查过程 由于服务端的接口…

测试平台——项目工程创建和配置

这里写目录标题 一、配置开发环境二、配置MySql数据库三、配置工程日志 一、配置开发环境 项目的环境分为开发环境和生产环境。 开发环境:用于编写和调试项目代码。 生产环境:用于项目线上部署运行。 base.py 修改BASE_DIR:拼接.parent 原因:原BASE_D…

如何评判算法好坏?复杂度深度解析

如何评判算法好坏?复杂度深度解析 1. 算法效率1.1 如何衡量一个算法好坏1.2 算法的复杂度 2 时间复杂度2.1 时间复杂度的概念2.1.1 实例 2.2 大O的渐进表示法2.3 常见时间复杂度计算举例 3 空间复杂度4 常见复杂度对比5 结尾 1. 算法效率 1.1 如何衡量一个算法好坏 …

shell脚本练习--安全封堵脚本,使用firewalld实现

一.什么是安全封堵 安全封堵(security hardening)是指采取一系列措施来增强系统的安全性,防止潜在的攻击和漏洞利用。以下是一些常见的安全封堵措施: 更新和修补系统:定期更新操作系统和软件包以获取最新的安全补丁和修…

Java并发系列之一:JVM线程模型

什么是线程模型: Java字节码运行在JVM中,JVM运行在各个操作系统上。所以当JVM想要进行线程创建回收这种操作时,势必需要调用操作系统的相关接口。也就是说,JVM线程与操作系统线程之间存在着某种映射关系,这两种不同维…

在OK3588板卡上部署模型实现OCR应用

一、主机模型转换 我们依旧采用FastDeploy来部署应用深度学习模型到OK3588板卡上 进入主机Ubuntu的虚拟环境 conda activate ok3588 安装rknn-toolkit2(该工具不能在OK3588板卡上完成模型转换) git clone https://github.com/rockchip-linux/rknn-to…

基于Java+spring+springMvc+mybatis+jsp学生选课管理系统

基于JavaspringspringMvcmybatisjsp学生选课管理系统 一、系统介绍二、功能展示1.课程列表(学生)2.已选课程(学生)3.已修课程(学生)4.我的课程(老师)5.课程打分(老师)6.课程管理、学生管理、教师管理(系统管理员&#…

stm32读取DHT11温湿度传感器

stm32读取DHT11温湿度传感器 一.序言二.DHT11响应数据格式三.DHT11通讯过程3.1 产生起始信号3.2 读取数据03.3 读取数据1DHT11停止信号 四.代码实例4.1读取DHT11源文件4.2 读取DHT11头文件 五.结语5.1 总结整体思路5.2 对读者的期望 一.序言 我们知道DHT11是单总线协议&#x…

Ceph入门到精通- Linux 磁盘管理(block 与 inode)

1 硬盘 block 与 inode 详解 1.1 Sector(扇区)与 Block(块) 1) 硬盘的最小存储单位:sector(扇区),每个扇区储存 512 字节;操作系统会一次性连续读取多个…

大语言模型LLM

目录 一、语言模型的发展 语言模型(Language Model,LM)目标是建模自然语言的概率分布,具体目标是构建词序列w1,w2,...,wm的概率分布,即计算给定的词序列作为一个句子出现可能的大小P(w1w2...wm)。但联合概率P的参数量…

【C++入门到精通】C++入门 —— 类和对象(初始化列表、Static成员、友元、内部类、匿名对象)

目录 一、初始化列表 ⭕初始化列表概念 ⭕初始化列表的优点 ⭕使用场景 ⭕explicit关键字 二、Static成员 ⭕Static成员概念 🔴静态数据成员: 🔴静态函数成员: ⭕使用静态成员的优点 ⭕使用静态成员的注意事项 三、友…

go 中的代码漏洞检查

前言 不知道大家在开发 go 项目中有没有遇到过一些第三方包或者官方包中出现漏洞的问题,这些漏洞可能会影响到代码的功能、性能或者安全性。 现在针对这一问题,go 团队提供了 govulncheck 工具,帮助开发者快速地发现和修复这些漏洞。 什么…

C/C++开发,opencv与qt结合播放视频

目录 一、qt_ui创建 1.1 ui设置 1.2 ui及代码输出保存 二、创建工程 2.1 工程目录及编译设置 2.2 源码设计 三、编译及测试 3.1 程序编译 3.2 程序运行 首先声明,这是一个OpenCV 3学习文档的案例,但是说明有些过于省略,只有一些简短的代码…

计算机毕设 深度学习人体跌倒检测 -yolo 机器视觉 opencv python

文章目录 0 前言1.前言2.实现效果3.相关技术原理3.1卷积神经网络3.1YOLOV5简介3.2 YOLOv5s 模型算法流程和原理4.数据集处理3.1 数据标注简介3.2 数据保存 5.模型训练 6 最后 0 前言 🔥 这两年开始毕业设计和毕业答辩的要求和难度不断提升,传统的毕设题…

Clion开发Stm32之温湿度传感器(DS18B20)驱动编写和测试

前言 涵盖之前文章: Clion开发STM32之HAL库GPIO宏定义封装(最新版)Clion开发stm32之微妙延迟(采用nop指令实现)Clion开发STM32之日志模块(参考RT-Thread) DSP18B20驱动文件 头文件 /*******************************************************************************Copy…

OAuth机制_web站点接入微软azure账号进行三方登录

文章目录 ⭐前言⭐微软三方登录流程💖 web站点获取微软账号流程💖 node封装微软登录接口💖 webapp 自定义code换token💖 调用 Microsoft Graph API💖 前端唤醒authlink进行登录回调逻辑 ⭐结束 ⭐前言 大家好&#xf…

sublime配置less的一些坑(1)

仅在sublime的Install Package安装保存less报错 在sublime的Install Package安装less 打开sublime软件,按住CtrlShiftP组合键,弹出的界面中选择Install Package 选中后enter或者回车。等会弹出一个弹窗,大致意思是说你已经成功安装了package control。如果你在此之前已经安装了…

【论文精读】MemSum: 基于历史决策的多步长文本抽取式摘要方法

前言 论文分享 来自2022ACL的长文本抽取式摘要方法论文 MemSum: Extractive Summarization of Long Documents Using Multi-Step Episodic Markov Decision Processes 自动文本摘要抽取可以分为抽取式(extractive)和抽象性式(abstractive),抽取式方法将摘要抽取任…

【Uniapp】支付链转二维码

前言 提示:这个是一个很小的项目,大概30分钟就能搞定 实现方式:输入支付代码,存储到对应的数据库表中,二维码访问一个PHP文件通过id来进行重定向,这样就可以使每张二维码都是固定的,替换二维码…