会议OA之待开会议所有会议
目录
一、待开会议
1、SQL语句
2、dao方法
3、web层
4、js代码
5、jsp文件
6、运行效果
二、所有会议
1、SQL语句
2、dao方法
3、web层
4、js代码
5、jsp
6、运行效果
待开会议:登录人员,属于参与者列席者或者主人其中一个时,并且会议状态为待开时,要将数据查询出来。
所有会议:登录人员,属于参与者列席者或者主人其中一个时,要将数据查询出来。
一、待开会议
1、SQL语句
待开会议
与我的会议的区别在于,待开会议需要匹配3个数据库列段
SELECT CONCAT(a.canyuze,',',a.liexize,',',a.zhuchiren),a.id,a.title,a.content,a.canyuze,a.liexize,a.zhuchiren,
b.name zhuchirenname ,
a.location,
DATE_FORMAT(a.startTime,'%Y-%m-%d %H-%m-%s') startTime,
DATE_FORMAT(a.endTime,'%Y-%m-%d %H-%m-%s') endTime,a.state
,(case a.state
when 0 then'取消会议'
when 1 then'新建'
when 2 then'待审核'
when 3 then'驳回'
when 4 then'待开'
when 5 then'进行中'
when 6 then'开启投票'
when 7 then'结束会议'
else '其他' end) meetingstate,
a.seatPic,a.remark,a.auditor,
c.name auditorname from t_oa_meeting_info a
inner join t_oa_user b on a.zhuchiren =b.id
left join t_oa_user c on a.auditor = c.id where 1=1
and a.state=4 and FIND_IN_SET
(6,CONCAT(a.canyuze,',',a.liexize,',',a.zhuchiren))
2、dao方法
// 通用的会议查询SQL语句,包含会议信息表数据,主持人姓名、审批人姓名、会议状态private String getSQL() {return "SELECT a.id,a.title,a.content,a.canyuze,a.liexize,a.zhuchiren,b.`name`,a.location\r\n" + ",DATE_FORMAT(a.startTime,'%Y-%m-%d %H:%i:%s') as startTime\r\n" + ",DATE_FORMAT(a.endTime,'%Y-%m-%d %H:%i:%s') as endTime\r\n" + ",a.state\r\n" + ",(case a.state\r\n" + "when 0 then '取消会议'\r\n" + "when 1 then '新建'\r\n" + "when 2 then '待审核'\r\n" + "when 3 then '驳回'\r\n" + "when 4 then '待开'\r\n" + "when 5 then '进行中'\r\n" + "when 6 then '开启投票'\r\n" + "else '结束会' end\r\n" + ") as meetingState\r\n" + ",a.seatPic,a.remark,a.auditor,c.`name` as auditorName\r\n" + "FROM t_oa_meeting_info a\r\n" + "inner join t_oa_user b on a.zhuchiren = b.id\r\n" + "left JOIN t_oa_user c on a.auditor = c.id where 1=1 ";}// 待开会议public List<Map<String,Object>> queryMeetingInfoByState(MeetingInfo info,PageBean pageBean) throws Exception{String sql=this.getSQL();String title = info.getTitle();//按照会议标题模糊查询if(StringUtils.isNotBlank(title))sql+=" and title like '%"+title+"%'";//根据当前登陆用户ID作为主持人字段的条件String zhuchiren = info.getZhuchiren();if(StringUtils.isNotBlank(zhuchiren)) {sql+="and FIND_IN_SET('"+zhuchiren+"',CONCAT(a.canyuze,',',a.liexize,',',a.zhuchiren))";}//根据会议状态,查询会议信息Integer state = info.getState();if(state != null) {sql+=" and state = " + state;}//按照会议ID降序排序sql+=" order by a.id desc";return super.executeQuery(sql, pageBean);}
3、web层
// 待开会议public String queryMeetingInfoByState(HttpServletRequest req, HttpServletResponse resp) {try {PageBean pageBean = new PageBean();pageBean.setRequest(req);List<Map<String, Object>> infos = meetingInfoDao.queryMeetingInfoByState(info, pageBean);ResponseUtil.writeJson(resp, R.ok(0, "会议查询成功!!!", pageBean.getTotal(), infos));} catch (Exception e) {e.printStackTrace();try {ResponseUtil.writeJson(resp, R.error(0, "会议查询失败"));} catch (Exception e1) {e1.printStackTrace();}}return null;}
4、js代码
let layer,form,table,$;
var row;
layui.use(['layer','form','table'],function(){layer=layui.layer,form=layui.form,table=layui.table,$=layui.jquery;//初始化会议列表initMeeting();//绑定查询按钮的点击事件$('#btn_meeting_search').click(function(){query();});
});//1.初始化会议列表
function initMeeting(){table.render({ //执行渲染elem: '#tb_meeting', //指定原始表格元素选择器(推荐id选择器)height: 400, //自定义高度loading: false, //是否显示加载条(默认 true)cols: [[ //设置表头{field: 'title', title: '会议标题', width: 180},{field: 'location', title: '会议地点', width: 120},{field: 'startTime', title: '开始时间', width: 180},{field: 'endTime', title: '结束时间', width: 180},{field: 'meetingState', title: '会议状态', width: 90},{field: 'name', title: '主持人', width: 120},//{field: '', title: '操作', width: 260, toolbar: '#tbMeeting'}]]});
}//2.待开会议
function query(){table.reload('tb_meeting', {url: 'info.action', //请求地址method: 'POST', //请求方式,GET或者POSTloading: true, //是否显示加载条(默认 true)page: true, //是否分页where: { //设定异步数据接口的额外参数,任意设'methodName':'queryMeetingInfoByState','title':$('#title').val(),'zhuchiren':$('#userid').val(),'state':4},request: { //自定义分页请求参数名pageName: 'page', //页码的参数名称,默认:pagelimitName: 'rows' //每页数据量的参数名,默认:limit},done: function (res, curr, count) {//查询完成的回调函数}});
}
5、jsp文件
<%@ page language="java" contentType="text/html; charset=UTF-8"pageEncoding="UTF-8"%>
<%@include file="/common/header.jsp"%>
<!DOCTYPE html>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<script type="text/javascript" src="${pageContext.request.contextPath }/static/js/meeting/meetingWaiting.js"></script>
</head>
<style>
body{margin:15px;
}
.layui-table-cell {height: inherit;}
.layui-layer-page .layui-layer-content { overflow: visible !important;}
</style>
<body><div class="layui-form-item"><div class="layui-inline"><label class="layui-form-label">会议标题:</label><div class="layui-input-inline"><input type="hidden" id="userid" value="${sessionScope.user.id }"/><input type="text" id="title" autocomplete="off"class="layui-input"></div></div><div class="layui-inline"><button id="btn_meeting_search" class="layui-btn layui-btn-normal"><i class="layui-icon"></i> 查询</button></div></div><table style="margin-top: -15px;" id="tb_meeting" lay-filter="tb_meeting"></table>
</body>
</html>
6、运行效果
二、所有会议
1、SQL语句
SELECT a.id,a.title,a.content,a.canyuze,a.liexize,a.zhuchiren,
b.name zhuchirenname ,
a.location,
DATE_FORMAT(a.startTime,'%Y-%m-%d %H-%m-%s') startTime,
DATE_FORMAT(a.endTime,'%Y-%m-%d %H-%m-%s') endTime,a.state
,(case a.state
when 0 then'取消会议'
when 1 then'新建'
when 2 then'待审核'
when 3 then'驳回'
when 4 then'待开'
when 5 then'进行中'
when 6 then'开启投票'
when 7 then'结束会议'
else '其他' end) meetingstate,
a.seatPic,a.remark,a.auditor,
c.name auditorname from t_oa_meeting_info a
inner join t_oa_user b on a.zhuchiren =b.id
left join t_oa_user c on a.auditor = c.id where 1=1
and FIND_IN_SET
(6,CONCAT(a.canyuze,',',a.liexize,',',a.zhuchiren,',',IFNULL(a.auditor,-1)))
2、dao方法
// 通用的会议查询SQL语句,包含会议信息表数据,主持人姓名、审批人姓名、会议状态private String getSQL() {return "SELECT a.id,a.title,a.content,a.canyuze,a.liexize,a.zhuchiren,b.`name`,a.location\r\n" + ",DATE_FORMAT(a.startTime,'%Y-%m-%d %H:%i:%s') as startTime\r\n" + ",DATE_FORMAT(a.endTime,'%Y-%m-%d %H:%i:%s') as endTime\r\n" + ",a.state\r\n" + ",(case a.state\r\n" + "when 0 then '取消会议'\r\n" + "when 1 then '新建'\r\n" + "when 2 then '待审核'\r\n" + "when 3 then '驳回'\r\n" + "when 4 then '待开'\r\n" + "when 5 then '进行中'\r\n" + "when 6 then '开启投票'\r\n" + "else '结束会' end\r\n" + ") as meetingState\r\n" + ",a.seatPic,a.remark,a.auditor,c.`name` as auditorName\r\n" + "FROM t_oa_meeting_info a\r\n" + "inner join t_oa_user b on a.zhuchiren = b.id\r\n" + "left JOIN t_oa_user c on a.auditor = c.id where 1=1 ";}// 所有会议public List<Map<String,Object>> allInfos(MeetingInfo info,PageBean pageBean) throws Exception{String sql=this.getSQL();String title = info.getTitle();//按照会议标题模糊查询if(StringUtils.isNotBlank(title))sql+=" and title like '%"+title+"%'";//根据当前登陆用户ID作为主持人字段的条件String zhuchiren = info.getZhuchiren();if(StringUtils.isNotBlank(zhuchiren)) {sql+="and FIND_IN_SET('"+zhuchiren+"',CONCAT(a.canyuze,',',a.liexize,',',a.zhuchiren,',',IFNULL(a.auditor,-1)))";}//按照会议ID降序排序sql+=" order by a.id desc";System.out.println(sql);return super.executeQuery(sql, pageBean);}
3、web层
// 所有会议public String allInfos(HttpServletRequest req, HttpServletResponse resp) {try {PageBean pageBean = new PageBean();pageBean.setRequest(req);List<Map<String, Object>> infos = meetingInfoDao.allInfos(info, pageBean);ResponseUtil.writeJson(resp, R.ok(0, "会议查询成功!!!", pageBean.getTotal(), infos));} catch (Exception e) {e.printStackTrace();try {ResponseUtil.writeJson(resp, R.error(0, "会议查询失败"));} catch (Exception e1) {e1.printStackTrace();}}return null;}
4、js代码
let layer,form,table,$;
var row;
layui.use(['layer','form','table'],function(){layer=layui.layer,form=layui.form,table=layui.table,$=layui.jquery;//初始化会议列表initMeeting();//绑定查询按钮的点击事件$('#btn_meeting_search').click(function(){query();});
});//1.初始化会议列表
function initMeeting(){table.render({ //执行渲染elem: '#tb_meeting', //指定原始表格元素选择器(推荐id选择器)height: 400, //自定义高度loading: false, //是否显示加载条(默认 true)cols: [[ //设置表头{field: 'title', title: '会议标题', width: 180},{field: 'location', title: '会议地点', width: 120},{field: 'startTime', title: '开始时间', width: 180},{field: 'endTime', title: '结束时间', width: 180},{field: 'meetingState', title: '会议状态', width: 90},{field: 'name', title: '主持人', width: 120},//{field: '', title: '操作', width: 260, toolbar: '#tbMeeting'}]]});
}//2.查询所有会议
function query(){table.reload('tb_meeting', {url: 'info.action', //请求地址method: 'POST', //请求方式,GET或者POSTloading: true, //是否显示加载条(默认 true)page: true, //是否分页where: { //设定异步数据接口的额外参数,任意设'methodName':'allInfos','title':$('#title').val(),'zhuchiren':$('#userid').val()},request: { //自定义分页请求参数名pageName: 'page', //页码的参数名称,默认:pagelimitName: 'rows' //每页数据量的参数名,默认:limit},done: function (res, curr, count) {//查询完成的回调函数}});
}
5、jsp
<%@ page language="java" contentType="text/html; charset=UTF-8"pageEncoding="UTF-8"%>
<%@include file="/common/header.jsp"%>
<!DOCTYPE html>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<script type="text/javascript" src="${pageContext.request.contextPath }/static/js/meeting/meetingAll.js"></script>
</head>
<style>
body{margin:15px;
}
.layui-table-cell {height: inherit;}
.layui-layer-page .layui-layer-content { overflow: visible !important;}
</style>
<body><div class="layui-form-item"><div class="layui-inline"><label class="layui-form-label">会议标题:</label><div class="layui-input-inline"><input type="hidden" id="userid" value="${sessionScope.user.id }"/><input type="text" id="title" autocomplete="off"class="layui-input"></div></div><div class="layui-inline"><button id="btn_meeting_search" class="layui-btn layui-btn-normal"><i class="layui-icon"></i> 查询</button></div></div><table style="margin-top: -15px;" id="tb_meeting" lay-filter="tb_meeting"></table>
</body>
</html>
6、运行效果
会议OA之待开会议所有会议相关推荐
- 会议OA项目(待开会议历史会议所有会议)
文章目录 一.会议OA项目名词介绍 二.SQL编写 待开会议SQL 所有 ...
- 会议OA(待开会议所有会议)
目录 待开会议: 所有会议 编辑 待开和所有会议功能实现 前台 哈喽大家好~~我来啦~~今天给大家分享我们会议0A的最后一期啦!!! 是我们会议的待开会议和我们的所有会议!!! 待开会议: 与我的会 ...
- 会议OA之会议排座送审
目录 最近这段时间一直都在与大家分享会议OA项目,今天继续分享关于会议OA项目的一个亮点功能,会议排座.以及一个送审功能. 一.会议排座 二.送审 最近这段时间一直都在与大家分享会议OA项目,今天继续 ...
- 会议OA项目(六)--- (待开会议、历史会议、所有会议)
前言 上一篇分享了会议通知以及会议反馈,根据需求来今天应该到了,历史会议.待开会议以及所有会议了. 一.需求分析 历史会议:登录人员,属于参与者列席者或者主人其中一个时,并且会议状态为已结束时,要将数 ...
- 会议OA项目之待开会议所有会议
目录 一.待开和所有会议SQL语句编 二.待开和所有会议功能实现 1.待开会议 后台 前台 2.所有会议 后台 前台 一.待开和所有会议SQL语句编写 1.待开会议 待开会议: 与我的会议的区别在于, ...
- 会议OA项目(三)---我的会议(会议排座、送审)
目录 前言 一.需求分析 二.准备工作 三.编码 1.后台编码 2.前端编码 四.效果展示 前言 上篇分享了会议OA项目的我的会议功能的查询.取消会议.本篇文章将完善我的会议功能. 我的会议功能有一个 ...
- 会议OA项目(项目原型图介绍发布会议功能)
目录 一.会议OA项目介绍 为什么要开发OA会议管理 会议OA管理的作用 二.项目原型图介绍 1)会议管理 2)投票管理 3)会议室管理 三.数据库表结构 四.发布会议功能&多功能下拉框 La ...
- 微信小程序:会议OA项目-首页
目录 一.flex布局 Flex布局简介 什么是flex布局? flex属性 flex的属性 二.轮播图组件及mockjs的使用 三.会议OA小程序首页布局 一.flex布局 Flex布局简介 布局的 ...
- 会议OA项目之会议通知会议反馈反馈详情功能
目录 一.需要的SQL语句 1.1 会议通知查询的SQL 1.2 反馈详情的SQL 二.会议通知的前台代码 2.1 会议通知的jsp文件 2.2 要封装的js文件 三.会议通知查询的后台代码 2.1 ...
最新文章
- glance-50(秒解秒懂)
- android 定时器5秒执行一次,如何在android中每30秒执行一次查询?
- Vmware虚拟机中CentOS7与Docker安装图文教程
- java 并发模型总类_java并发编程系列-内存模型基础
- vim如何自动补全,ycm配置
- SpringCloud创建Eureka模块集群
- Unity枚举和字符串的相互转换
- java 判断object类型_Java多态的6大特性|乐字节
- python+tensorflow+captcha库:基于TF快速破解验证码
- 《嵌入式系统可靠性设计技术及案例解析》读书笔记(七)
- 华为鸿蒙os2.0公测结果,网友收到华为鸿蒙 OS 2.0 手机开发者 Beta 公测邮件
- 前端 JavaScript 复制粘贴的奥义——Clipboard 对象概述
- 非酋用计算机弹唱,非酋简谱 薛明媛/朱贺 听说爱情就是这样子
- matlab使用xlsread报错,matlab的IO操作复习
- python编写一个汽车类_python实现汽车管理系统
- swing宾馆客房管理系统(文档)
- 怎么给照片加眼镜(二):3D眼镜模型合成法
- QGraphicsView 如何实现百度地图按照鼠标点进行放大缩小效果
- Oracle常用文档整理
- 关于密钥和密钥管理的常见问题及解答