博客
关于我
OA项目之会议通知(查询&是否参会&反馈详情)
阅读量:796 次
发布时间:2023-02-17

本文共 3908 字,大约阅读时间需要 13 分钟。

会议反馈功能实现

一、会议通知查询SQL

分析数据:

  • 需要查询陈冬丽(ID=3)参与、列席或主持会议时的所有记录
  • 使用表:t_oa_meeting_info(会议信息)、t_oa_meeting_feedback(会议反馈)
  • 查询条件:FIND_IN_SET(3, CONCAT(canyuze,',',liexize,',',zhuchiren)),表示陈冬丽在参与者、列席或主持人中
  • 会议状态:state = 4(1为未读,2为已读参加,4为已读不参加)

SQL实现:

SELECT IFNULL(f.result,-1) result, t1.* FROM   (SELECT * FROM t_oa_meeting_info    WHERE FIND_IN_SET(3, CONCAT(canyuze,',',liexize,',',zhuchiren))    AND state = 4) t1LEFT JOIN t_oa_meeting_feedback f ON t1.id = f.meetingId AND f.personId = 3ORDER BY result

二、会议反馈详情SQL

分析数据:

  • 查询某会议(ID=12)所有参与人员的姓名
  • 使用表:t_oa_user(用户)、t_oa_meeting_infot_oa_meeting_feedback
  • 查询条件:meetingId = 12

实现:

  • 获取会议参与人员ID:
  • SELECT CONCAT(canyuze,',',liexize,',',zhuchiren) FROM t_oa_meeting_info WHERE id = 12
    1. 获取对应人员姓名:
    2. SELECT * FROM t_oa_user WHERE FIND_IN_SET(id, (SELECT CONCAT(...)))
      1. 获取反馈详情:
      2. SELECT t1.name, IFNULL(f.result,-1) result FROM   (SELECT * FROM t_oa_user WHERE ...) t1LEFT JOIN t_oa_meeting_feedback f ON t1.id = f.personId AND f.meetingId = 12
        1. 分组连接姓名:
        2. SELECT t.result, GROUP_CONCAT(t.name) names FROM   (SELECT t1.name, IFNULL(f.result,-1) result FROM ...) tGROUP BY t.result

          三、数据库实现

          实体类:MeetingFeedBack

          package com.zking.entity;public class MeetingFeedBack implements Serializable {    private String id;    private Long meetingId;    private Integer personType;    private Long personId;    private Integer result;    private String reason;    private String title;    // setter方法省略}

          DAO实现

          package com.zking.dao;public class MeetingFeedBackDao extends BaseDao {    public List
          > queryMeetingFeedBackByUserId(MeetingFeedBack back, PageBean pageBean) throws Exception { String sql = "SELECT IFNULL(f.result,-1) result, t1.* FROM (SELECT * FROM t_oa_meeting_info WHERE FIND_IN_SET(" + back.getPersonId() + ", CONCAT(canyuze,',',liexize,',',zhuchiren)) AND state = 4) t1 LEFT JOIN t_oa_meeting_feedback f ON t1.id = f.meetingId AND f.personId = " + back.getPersonId() + " ORDER BY result"; return super.executeQuery(sql, pageBean); } public int add(MeetingFeedBack back) throws Exception { back.setId(UUID.randomUUID().toString().replaceAll("-", "")); String sql = "INSERT INTO t_oa_meeting_feedback VALUES (?, ?, ?, ?, ?, ?)"; return super.executeUpdate(sql, back, new String[]{"id", "meetingId", "personType", "personId", "result", "reason"}); }}

          后台代码

          package com.zking.web;public class MeetingFeedBackAction extends ActionSupport implements ModelDriver {    private MeetingFeedBack back = new MeetingFeedBack();    private MeetingFeedBackDao backDao = new MeetingFeedBackDao();    @Override    public MeetingFeedBack getModel() {        return back;    }    public String queryMeetingFeedBackByUserId(HttpServletRequest req, HttpServletResponse resp) throws Exception {        PageBean pageBean = new PageBean();        pageBean.setRequest(req);        List
          > lst = backDao.queryMeetingFeedBackByUserId(back, pageBean); ResponseUtil.writeJson(resp, R.ok(0, "会议通知查询成功", pageBean.getTotal(), lst)); return null; } public String add(HttpServletRequest req, HttpServletResponse resp) throws Exception { try { int rs = backDao.add(back); if (rs > 0) { ResponseUtil.writeJson(resp, R.ok(200, "会议反馈成功")); } else { ResponseUtil.writeJson(resp, R.error(0, "会议反馈失败")); } } catch (Exception e) { e.printStackTrace(); try { ResponseUtil.writeJson(resp, R.error(0, "会议信息新增失败")); } catch (Exception e1) { e1.printStackTrace(); } } return null; }}

          四、前端界面

          • 导入必要的CSS和JS文件
          • 使用layui框架构建表单和数据表格
          • 表单字段包括:会议标题、反馈结果、不参与原因等
          • 数据表格显示会议列表,支持筛选和分页

          五、数据库优化

          • 使用索引优化查询性能
          • 定期清理旧数据,减少占用空间
          • 加密敏感信息,保护数据安全

    转载地址:http://eunfk.baihongyu.com/

    你可能感兴趣的文章
    Node服务在断开SSH后停止运行解决方案(创建守护进程)
    查看>>
    node模块化
    查看>>
    node环境下使用import引入外部文件出错
    查看>>
    node编译程序内存溢出
    查看>>
    Node读取并输出txt文件内容
    查看>>
    node防xss攻击插件
    查看>>
    noi 1996 登山
    查看>>
    noi 7827 质数的和与积
    查看>>
    NOIp2005 过河
    查看>>
    NOIP2011T1 数字反转
    查看>>
    NOIP2014 提高组 Day2——寻找道路
    查看>>
    NOIp模拟赛二十九
    查看>>
    Nokia5233手机和我装的几个symbian V5手机软件
    查看>>
    Non-final field ‘code‘ in enum StateEnum‘
    查看>>
    none 和 host 网络的适用场景 - 每天5分钟玩转 Docker 容器技术(31)
    查看>>
    None还可以是函数定义可选参数的一个默认值,设置成默认值时实参在调用该函数时可以不输入与None绑定的元素...
    查看>>
    NOPI读取Excel
    查看>>
    NoSQL&MongoDB
    查看>>
    NoSQL介绍
    查看>>
    Notepad ++ 安装与配置教程(非常详细)从零基础入门到精通,看完这一篇就够了
    查看>>