OA项目之会议通知(查询&是否参会&反馈详情)(一)

简介: OA项目之会议通知(查询&是否参会&反馈详情)

讲解思路

  • 会议通知SQL语句分析
  • 反馈详情SQL语句分析
  • 后台代码编写
  • 前端代码编写
    效果预览



会议查询

MeetingFeedBack.java

package com.zking.oa.model;
import org.lisen.mvc.util.AutoIncrement;
import org.lisen.mvc.util.Key;
import org.lisen.mvc.util.Table;
import com.zking.oa.util.CacheUtil;
@Table("t_oa_meeting_feedback")
public class MeetiingFeedback {
  @AutoIncrement
  @Key
  private Integer id;
  private Integer meetingId;
  private int personType;
  private int personId;
  private int result;
  private String reason;
  public Integer getId() {
    return id;
  }
  public void setId(Integer id) {
    this.id = id;
  }
  public Integer getMeetingId() {
    return meetingId;
  }
  public void setMeetingId(Integer meetingId) {
    this.meetingId = meetingId;
  }
  public int getPersonType() {
    return personType;
  }
  public void setPersonType(int personType) {
    this.personType = personType;
  }
  public int getPersonId() {
    return personId;
  }
  public void setPersonId(int personId) {
    this.personId = personId;
  }
  public int getResult() {
    return result;
  }
  public void setResult(int result) {
    this.result = result;
  }
  public String getReason() {
    return reason;
  }
  public void setReason(String reason) {
    this.reason = reason;
  }
  public MeetiingFeedback(Integer id, Integer meetingId, int personType, int personId, int result, String reason) {
    super();
    this.id = id;
    this.meetingId = meetingId;
    this.personType = personType;
    this.personId = personId;
    this.result = result;
    this.reason = reason;
  }
  public MeetiingFeedback() {
    super();
    // TODO Auto-generated constructor stub
  }
  @Override
  public String toString() {
    return "MeetiingFeedback [id=" + id + ", meetingId=" + meetingId + ", personType=" + personType + ", personId="
        + personId + ", result=" + result + ", reason=" + reason + "]";
  }
  /**
   * 获取参与人员类型描述,是参与者还是列席者
   * @return
   */
  public String getMeetingJoinTypeName() {
    return CacheUtil.getMeetingJoinType(this.personId);
  }
  /**
   * 获取参与者名称
   * @return
   */
  public String getPersonName() {
    return CacheUtil.getUser(this.getPersonId()).getName();
  }
}

MeetingFeedBackDao.java

/**
   * 会议通知:查询出我(当前登陆用户)需要参与的会议及会议的反馈信息(参会、缺席以及未读)
   * @param back
   * @param pageBean
   * @return
   * @throws SQLException 
   * @throws IllegalAccessException 
   * @throws InstantiationException 
   */
@Override
  public List<MeetiingFeedback> listMeetingFeedback(MeetiingFeedback meetingFeedback, PageBean pageBean) {
    String sql = "SELECT t1.id,t1.meetingId, t1.personType, t1.personId, t1.result, t1.reason\r\n" + 
        "   FROM t_oa_meeting_feedback t1\r\n"  +
        "   WHERE 1=1 ";
    List<Object> param = new ArrayList<Object>();
    if(meetingFeedback != null && meetingFeedback.getResult()+"" != null) {
      sql += " and t1.result = ? ";
      param.add(meetingFeedback.getResult());
    }
    if(meetingFeedback != null && meetingFeedback.getMeetingId() != null) {
      sql += " and t1.meetingId = ? ";
      param.add(meetingFeedback.getMeetingId());
    }
    return DbTemplate.query(sql, param.toArray(), pageBean, MeetiingFeedback.class);
  }

MeetingFeedBackAction.java

/**
   * 查询会议相关人员的反馈信息
   * @param req
   * @param resp
   */
  public void listMeetingFeedback(HttpServletRequest req, HttpServletResponse resp) {
    try {
      PageBean pageBean = new PageBean();
      pageBean.setRequest(req);
      List<MeetiingFeedback> list = service.listMeetingFeedback(meetingFeedback, pageBean);
      CommonUtil.sendResponse(0, "会议反馈查询成功", pageBean.getTotal(), list, resp);
    } catch (Exception e) {
      e.printStackTrace();
      CommonUtil.sendResponse(0, "会议反馈查失败", resp);
    }
  }

config.xml

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE config[
  <!ELEMENT config (action*)>
  <!ELEMENT action (forward*)>
  <!ELEMENT forward EMPTY>
  <!ATTLIST action
    path CDATA #REQUIRED
    type CDATA #REQUIRED
  >
  <!ATTLIST forward
    name CDATA #REQUIRED
    path CDATA #REQUIRED
    redirect (true|false) "false"
  >
]>
<config>
  <action type="com.zking.oa.action.UserAction" path="/userAction"> </action>
  <action type="com.zking.oa.action.PermissionAction" path="/permissionAction"> </action>
  <action type="com.zking.oa.action.MeetinginfoAction" path="/meetinginfoAction"> </action>
  <action type="com.zking.oa.action.MeetingAuditAction" path="/meetingAuditAction"> </action>
  <action type="com.zking.oa.action.meetingFeedbackAction" path="/meetingFeedbackAction"> </action>
</config>

DateUtil.java

package com.zking.oa.util;
import java.text.SimpleDateFormat;
import java.util.Date;
/**
 * 日期帮助类
 * @author lisensir
 */
public final class DateUtil {
  private DateUtil() {}
  private static final String FORMCAT_STR = "yyyy-MM-dd HH:mm:ss";
  /**
   * 将日期格式化为yyyy-MM-dd HH:mm:ss格式的字符串
   * @param date 需要格式化的日期
   * @return
   */
  public static String format(Date date) {
    if(date == null) return "";
    SimpleDateFormat sdf  = new SimpleDateFormat(FORMCAT_STR);
    return sdf.format(date);
  }
  /**
   * 将日期格式化为yyyy-MM-dd HH:mm:ss格式的字符串
   * @param date 需要格式化的日期
   * @param format 指定的格式字符串
   * @return
   */
  public static String format(Date date, String format) {
    if(date == null) return "";
    SimpleDateFormat sdf  = new SimpleDateFormat(format);
    return sdf.format(date);
  }
  public static void main(String[] args) {
    Date date = new Date(System.currentTimeMillis());
    String s = format(date);
    System.out.println(s);
  }
}

meetingNotify.jsp

<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>Insert title here</title>
<%@ include file="/common/head.jsp" %>
<title>会议通知</title>
<style>
.layui-inline {
  margin-top: 20px;
}
.seatPicDiv {
  height: 180px;
}
.seatPic:active {
  height: 360px;
}
.layui-layer-page .layui-layer-content {
  /* 解决送审对话框中人员选择下拉框不能完全显示问题 */
  overflow: visible;!important
}
</style>
</head>
<body>
    <!-- 查询条件 -->
  <div class="layui-inline">
    <label class="layui-form-label">标题:</label>
    <div class="layui-input-block">
      <input type="text" name="title" id="title" placeholder="会议标题" class="layui-input">
    </div>
  </div>
  <div class="layui-inline">
    <button class="layui-btn" id="queryMeetingInfo"><i class="layui-icon layui-icon-search"></i>查询</button>
  </div>
  <!-- 用户信息表格 -->
  <table class="layui-hide" id="meetingInfoTable" lay-filter="meetingInfoTable"></table>
  <!-- 使用了layui自定义语法,当会议不能送审或排座时将按钮显示为禁用状态 -->
  <script type="text/html" id="toolbar">
       <button class="layui-btn layui-btn-sm" lay-event="feeback">反馈</button>
  </script>
</body>
</html>


相关文章
|
BI 数据安全/隐私保护 UED
以产品经理的角度去讲解原型图---会议OA项目
以产品经理的角度去讲解原型图---会议OA项目
109 1
|
7月前
|
SQL 存储 JavaScript
Layui之OA会议增删改查
Layui之OA会议增删改查
69 0
|
开发框架 JavaScript 前端开发
J2EE项目部署与发布(Windows版本)->会议OA单体项目Windows部署,spa前后端分离项目Windows部署
J2EE项目部署与发布(Windows版本)->会议OA单体项目Windows部署,spa前后端分离项目Windows部署
68 0
会议OA项目-其它页面->自定义组件应用,其它界面的布局
会议OA项目-其它页面->自定义组件应用,其它界面的布局
44 0
|
容器
会议OA项目-首页->flex弹性布局,轮播图后台数据获取及组件使用(后台数据交互mockjs),首页布局
会议OA项目-首页->flex弹性布局,轮播图后台数据获取及组件使用(后台数据交互mockjs),首页布局
83 0
|
JSON 小程序 前端开发
小程序之自定义组件 结合案例(会议OA的会议/投票管理及个人中心的搭建)详解 (4)
小程序之自定义组件 结合案例(会议OA的会议/投票管理及个人中心的搭建)详解 (4)
|
JSON 小程序 前端开发
小程序之实例会议OA的首页 (3)
小程序之实例会议OA的首页 (3)
|
JavaScript 应用服务中间件 Linux
【Linux】部署单机OA项目及搭建spa前后端分离项目
【Linux】部署单机OA项目及搭建spa前后端分离项目
77 0
|
25天前
|
监控
点晴OA系统为企业的发展注入新的活力
点晴OA办公系统是真正完全免费的协同OA系统软件商,而且是不限使用时间,不限用户数,不限功能模块的免费OA办公系统,为企业全面实现行政办公一体化,深受众多企业的青睐。
26 5
|
1月前
|
安全 搜索推荐 数据安全/隐私保护
点晴免费OA办公系统:高效协同,安全易用
信息技术发展推动企业信息化,即企业利用现代技术提升生产、经营、管理效率,增强竞争力。点晴免费OA系统作为信息化管理的基础,是实现企业信息化的关键手段。
34 2