栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

OA项目之待开会议&所有会议

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

OA项目之待开会议&所有会议

目录
  • 一、待开会议
    • ①实现思路
    • ②后端实现
    • ③前端实现
    • ④实现效果
  • 二、所有会议
    • ①实现思路
    • ②后端实现
    • ③前端实现
    • ④实现效果

一、待开会议 ①实现思路

这个跟前面写到我的会议很像,都要查询出登录人的所有会议,不过我的会议条件只有主持人,而待开会议不止条件有主持人,只要是参与者,列席者,主持人其中一个都要被查询出来,且会议状态要等于待开

②后端实现

首先我们写dao方法

//待开会议
	public List> queryMeetingInfoByState(MeetingInfo info, PageBean pageBean) throws InstantiationException, IllegalAccessException, SQLException {
		String sql = "SELECtrn" + 
				"	CONCAt(a.canyuze,',',a.liexize,',',a.zhuchiren),rn" + 
				"	a.id,rn" + 
				"	a.title,rn" + 
				"	a.content,rn" + 
				"	a.canyuze,rn" + 
				"	a.liexize,rn" + 
				"	a.zhuchiren,rn" + 
				"	b.`name`,rn" + 
				"	a.location,rn" + 
				"	DATE_FORMAT( a.startTime, '%Y-%m-%d %H-%m-%s' ) AS startTime,rn" + 
				"	DATE_FORMAT( a.endTime, '%Y-%m-%d %H-%m-%s' ) AS endTime,rn" + 
				"	a.state,rn" + 
				"	(rn" + 
				" CASErn" + 
				"	a.state rn" + 
				"	WHEN 0 THENrn" + 
				"	'取消会议' rn" + 
				"	WHEN 1 THENrn" + 
				"	'新建' rn" + 
				"	WHEN 2 THENrn" + 
				"	'待审核' rn" + 
				"	WHEN 3 THENrn" + 
				"	'驳回' rn" + 
				"	WHEN 4 THENrn" + 
				"	'待开' rn" + 
				"	WHEN 5 THENrn" + 
				"	'进行中' rn" + 
				"	WHEN 6 THENrn" + 
				"	'开启投票' rn" + 
				"	WHEN 7 THENrn" + 
				"	'结束会议' ELSE '其他' rn" + 
				" END rn" + 
				"	) meetingstate,rn" + 
				"	a.seatPic,rn" + 
				"	a.remark,rn" + 
				"	a.auditor,rn" + 
				"	c.`name` AS auditorName rn" + 
				" FROMrn" + 
				"	t_oa_meeting_info arn" + 
				"	INNER JOIN t_oa_user b ON a.zhuchiren = b.id rn" + 
				"	LEFT JOIN t_oa_user c ON a.auditor = c.id where 1=1rn" + 
				" and state = 4 and FIND_IN_SET("+info.getZhuchiren()+",CONCAt(a.canyuze,',',a.liexize,',',a.zhuchiren))";
		return super.executeQuery(sql, pageBean);
	}

然后写web层

//queryMeetingInfoByState 待开会议
		public String queryMeetingInfoByState(HttpServletRequest req, HttpServletResponse resp) {
			try {
				PageBean pageBean = new PageBean();
				//初始化pageBean
				pageBean.setRequest(req);
				//调用方法
				List> lst = infoDao.queryMeetingInfoByState(info, pageBean);
//				layui 的code 返回一定要是 0,不能是200,否者返回不了数据
				//传输到界面
				//pageBean.getTotal()总记录数
				ResponseUtil.writeJson(resp, R.ok(0, "待开会议数据查询成功",pageBean.getTotal(),lst));
			} catch (Exception e) {
				e.printStackTrace();
				try {
					ResponseUtil.writeJson(resp, R.error(0, "待开会议数据查询失败"));
				} catch (Exception e1) {
					e1.printStackTrace();
				}
			}
			return null;
		}

这个跟前端js要对应上

③前端实现

首先我们需要一个界面meetingWaiting.jsp

<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<%@include file="/common/header.jsp"%>








	

对应的js===meetingWaiting.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或者POST
        loading: true,                     //是否显示加载条(默认 true)
        page: true,                        //是否分页
        where: {                           //设定异步数据接口的额外参数,任意设
            'methodName':'queryMeetingInfoByState',
            'title':$('#title').val(),
            'zhuchiren':$('#userid').val(),
            'state':4
        },
        request: {                         //自定义分页请求参数名
            pageName: 'page', //页码的参数名称,默认:page
            limitName: 'rows' //每页数据量的参数名,默认:limit
        },
        done: function (res, curr, count) {
            //查询完成的回调函数
        }
    });
}
④实现效果

二、所有会议 ①实现思路

所有会议跟待开会议也有些相同,不过所有会议是不管该会议如何都要查询出来,且所以会议审批人是该人也要查询出来,这里要注意,有些会议审批人是空的,所有我们在拼接是要给其空值设值

②后端实现

Dao方法层

//所有会议
	public List> allInfos(MeetingInfo info, PageBean pageBean) throws InstantiationException, IllegalAccessException, SQLException {
		String sql = "SELECtrn" + 
				"	CONCAt(a.canyuze,',',a.liexize,',',a.zhuchiren,',',IFNULL(a.auditor,-1)),rn" + 
				"	a.id,rn" + 
				"	a.title,rn" + 
				"	a.content,rn" + 
				"	a.canyuze,rn" + 
				"	a.liexize,rn" + 
				"	a.zhuchiren,rn" + 
				"	b.`name`,rn" + 
				"	a.location,rn" + 
				"	DATE_FORMAT( a.startTime, '%Y-%m-%d %H-%m-%s' ) AS startTime,rn" + 
				"	DATE_FORMAT( a.endTime, '%Y-%m-%d %H-%m-%s' ) AS endTime,rn" + 
				"	a.state,rn" + 
				"	(rn" + 
				" CASErn" + 
				"	a.state rn" + 
				"	WHEN 0 THENrn" + 
				"	'取消会议' rn" + 
				"	WHEN 1 THENrn" + 
				"	'新建' rn" + 
				"	WHEN 2 THENrn" + 
				"	'待审核' rn" + 
				"	WHEN 3 THENrn" + 
				"	'驳回' rn" + 
				"	WHEN 4 THENrn" + 
				"	'待开' rn" + 
				"	WHEN 5 THENrn" + 
				"	'进行中' rn" + 
				"	WHEN 6 THENrn" + 
				"	'开启投票' rn" + 
				"	WHEN 7 THENrn" + 
				"	'结束会议' ELSE '其他' rn" + 
				" END rn" + 
				"	) meetingstate,rn" + 
				"	a.seatPic,rn" + 
				"	a.remark,rn" + 
				"	a.auditor,rn" + 
				"	c.`name` AS auditorName rn" + 
				" FROMrn" + 
				"	t_oa_meeting_info arn" + 
				"	INNER JOIN t_oa_user b ON a.zhuchiren = b.idrn" + 
				"	LEFT JOIN t_oa_user c ON a.auditor = c.id where 1=1 rn" + 
				"	and FIND_IN_SET("+info.getZhuchiren()+",CONCAt(a.canyuze,',',a.liexize,',',a.zhuchiren,',',IFNULL(a.auditor,-1)))";
		return super.executeQuery(sql, pageBean);
	}

web层

//allInfo所有会议
		public String allInfos(HttpServletRequest req, HttpServletResponse resp) {
			try {
				PageBean pageBean = new PageBean();
				//初始化pageBean
				pageBean.setRequest(req);
				//调用方法
				List> lst = infoDao.allInfos(info, pageBean);
//				layui 的code 返回一定要是 0,不能是200,否者返回不了数据
				//传输到界面
				//pageBean.getTotal()总记录数
				ResponseUtil.writeJson(resp, R.ok(0, "所有会议数据查询成功",pageBean.getTotal(),lst));
			} catch (Exception e) {
				e.printStackTrace();
				try {
					ResponseUtil.writeJson(resp, R.error(0, "所有会议数据查询失败"));
				} catch (Exception e1) {
					e1.printStackTrace();
				}
			}
			return null;
		}
③前端实现

前端界面meetingAll.jsp

<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<%@include file="/common/header.jsp"%>








	

前端对应的meetingAll.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或者POST
        loading: true,                     //是否显示加载条(默认 true)
        page: true,                        //是否分页
        where: {                           //设定异步数据接口的额外参数,任意设
            'methodName':'allInfos',
            'title':$('#title').val(),
            'zhuchiren':$('#userid').val()
        },
        request: {                         //自定义分页请求参数名
            pageName: 'page', //页码的参数名称,默认:page
            limitName: 'rows' //每页数据量的参数名,默认:limit
        },
        done: function (res, curr, count) {
            //查询完成的回调函数
        }
    });
}
④实现效果

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/1031493.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号