当前位置: 首页 > news >正文

OA项目值用户登入首页展示

1.什么是OA

办公自动化(Office Automation,简称OA)是将现代化办公和计算机技术结合起来的一种新型的办公方式。办公自动化没有统一的定义,凡是在传统的办公室中采用各种新技术、新机器、新设备从事办公业务,都属于办公自动化的领域。通过实现办公自动化,或者说实现数字化办公,可以优化现有的管理组织结构,调整管理体制,在提高效率的基础上,增加协同办公能力,强化决策的一致性 。

OA软件的核心应用是:流程审批、协同工作、公文管理(国企和政府机关)、沟通工具、文档管理、信息中心、电子论坛、计划管理、项目管理、任务管理、会议管理、关联人员、系统集成、门户定制、通讯录、工作便签、问卷调查、常用工具(计算器、万年历等)。

2.初始化数据库及数据

表名说明
t_oa_meeting_info会议信息表
t_oa_meeting_feedback会议通知反馈表
t_oa_meeting_audit会议审批信息表
t_oa_meeting_option会议投票标题选项表
t_oa_meeting_room会议室信息表
t_oa_permission权限信息表
t_oa_role_permission角色权限表
t_oa_user用户信息表

 下面是创建数据库所有的数据库脚本:

/*Navicat Premium Data TransferSource Server         : localhostSource Server Type    : MySQLSource Server Version : 50723Source Host           : localhost:3306Source Schema         : oaTarget Server Type    : MySQLTarget Server Version : 50723File Encoding         : 65001Date: 25/02/2022 10:41:07
*/SET NAMES utf8mb4;
SET FOREIGN_KEY_CHECKS = 0;-- ----------------------------
-- Table structure for t_oa_meeting_audit
-- ----------------------------
DROP TABLE IF EXISTS `t_oa_meeting_audit`;
CREATE TABLE `t_oa_meeting_audit`  (`id` int(11) NOT NULL AUTO_INCREMENT COMMENT '主键,唯一标识',`meetingId` bigint(11) NOT NULL COMMENT '外键,会议编号',`auditor` varchar(50) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL COMMENT '审批人',`sign` varchar(200) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL COMMENT '审批签字',`createdate` timestamp(0) null DEFAULT NULL COMMENT '审批时间',PRIMARY KEY (`id`) USING BTREE
) ENGINE = InnoDB AUTO_INCREMENT = 2 CHARACTER SET = utf8 COLLATE = utf8_general_ci COMMENT = '会议审批信息表' ROW_FORMAT = Dynamic;-- ----------------------------
-- Table structure for t_oa_meeting_feedback
-- ----------------------------
DROP TABLE IF EXISTS `t_oa_meeting_feedback`;
CREATE TABLE `t_oa_meeting_feedback`  (`id` varchar(100) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL COMMENT '主键,唯一标识',`meetingId` bigint(11) NOT NULL COMMENT '外键,会议编号',`personType` int(2) NOT NULL COMMENT '人员类别:1参会2列席',`personId` bigint(11) NOT NULL COMMENT '人员ID',`result` int(2) NOT NULL COMMENT '反馈结果:1参加0不参加',`reason` varchar(200) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL COMMENT '不参与会议的原因',PRIMARY KEY (`id`) USING BTREE
) ENGINE = InnoDB CHARACTER SET = utf8 COLLATE = utf8_general_ci COMMENT = '会议通知反馈表' ROW_FORMAT = Dynamic;-- ----------------------------
-- Table structure for t_oa_meeting_info
-- ----------------------------
DROP TABLE IF EXISTS `t_oa_meeting_info`;
CREATE TABLE `t_oa_meeting_info`  (`id` bigint(11) NOT NULL AUTO_INCREMENT COMMENT '主键,唯一标识',`title` varchar(100) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL COMMENT '会议标题',`content` varchar(2000) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL COMMENT '会议内容',`canyuze` varchar(500) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL COMMENT '参与人员',`liexize` varchar(500) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL COMMENT '列席人员',`zhuchiren` varchar(20) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL COMMENT '主持人',`location` varchar(100) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL COMMENT '会议地点',`startTime` datetime(0) NOT NULL COMMENT '开始时间',`endTime` datetime(0) NOT NULL COMMENT '结束时间',`fujian` varchar(200) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL COMMENT '附件',`state` int(2) NOT NULL DEFAULT 1 COMMENT '状态:0取消会议1待审核2驳回3待开4进行中5开启投票6结束会议,默认值为1',`seatPic` varchar(200) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL COMMENT '会议排座图片地址',`remark` varchar(200) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL COMMENT '备注',`auditor` varchar(20) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL COMMENT '审批人',PRIMARY KEY (`id`) USING BTREE
) ENGINE = InnoDB AUTO_INCREMENT = 6 CHARACTER SET = utf8 COLLATE = utf8_general_ci COMMENT = '会议信息表' ROW_FORMAT = Dynamic;-- ----------------------------
-- Table structure for t_oa_meeting_option
-- ----------------------------
DROP TABLE IF EXISTS `t_oa_meeting_option`;
CREATE TABLE `t_oa_meeting_option`  (`id` varchar(100) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL COMMENT '主键,唯一标识',`meetingId` bigint(11) NOT NULL COMMENT '会议ID',`optionValue` varchar(10) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL COMMENT '选项标识(A/B/C/D)',`optionText` varchar(200) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL COMMENT '选项描述',PRIMARY KEY (`id`) USING BTREE
) ENGINE = InnoDB CHARACTER SET = utf8 COLLATE = utf8_general_ci COMMENT = '会议投票标题选项表' ROW_FORMAT = Dynamic;-- ----------------------------
-- Table structure for t_oa_meeting_room
-- ----------------------------
DROP TABLE IF EXISTS `t_oa_meeting_room`;
CREATE TABLE `t_oa_meeting_room`  (`id` int(11) NOT NULL AUTO_INCREMENT COMMENT '主键',`name` varchar(50) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL COMMENT '会议室名称',`equipment` varchar(100) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL COMMENT '会议设备',PRIMARY KEY (`id`) USING BTREE
) ENGINE = InnoDB AUTO_INCREMENT = 1 CHARACTER SET = utf8 COLLATE = utf8_general_ci COMMENT = '会议室信息表' ROW_FORMAT = Dynamic;-- ----------------------------
-- Table structure for t_oa_permission
-- ----------------------------
DROP TABLE IF EXISTS `t_oa_permission`;
CREATE TABLE `t_oa_permission`  (`id` bigint(20) NOT NULL AUTO_INCREMENT COMMENT '主键,标识列',`name` varchar(50) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL COMMENT '权限名称',`description` varchar(20) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL COMMENT '权限描述',`url` varchar(50) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL COMMENT '菜单路径',`pid` bigint(20) DEFAULT NULL COMMENT '父权限',`ismenu` int(11) DEFAULT NULL COMMENT '是否为菜单 1、菜单  2、按钮',`displayno` bigint(20) DEFAULT NULL COMMENT '展现顺序',PRIMARY KEY (`id`) USING BTREE
) ENGINE = InnoDB AUTO_INCREMENT = 1305 CHARACTER SET = utf8 COLLATE = utf8_general_ci COMMENT = '权限信息表' ROW_FORMAT = Dynamic;-- ----------------------------
-- Records of t_oa_permission
-- ----------------------------
INSERT INTO `t_oa_permission` VALUES (10, '会议管理', NULL, NULL, -1, 1, 1);
INSERT INTO `t_oa_permission` VALUES (11, '投票管理', NULL, NULL, -1, 1, 9);
INSERT INTO `t_oa_permission` VALUES (12, '会议室管理', NULL, 'jsp/meeting/meetingRoom.jsp', -1, 1, 14);
INSERT INTO `t_oa_permission` VALUES (13, '系统管理', NULL, NULL, -1, 1, 15);
INSERT INTO `t_oa_permission` VALUES (1001, '会议发布', '发起会议', 'jsp/meeting/addMeeting.jsp', 10, 1, 2);
INSERT INTO `t_oa_permission` VALUES (1002, '会议通知', '别人发起的会议,需要你确认是否参加', 'jsp/meeting/meetingNotify.jsp', 10, 1, 3);
INSERT INTO `t_oa_permission` VALUES (1003, '我的会议', '我发起的,未审核->已审核', 'jsp/meeting/myMeeting.jsp', 10, 1, 4);
INSERT INTO `t_oa_permission` VALUES (1004, '我的审批', '我审批的会议', 'jsp/meeting/myAudit.jsp', 10, 1, 5);
INSERT INTO `t_oa_permission` VALUES (1005, '待开会议', '我参与的,但是还未开始的', 'jsp/meeting/meetingWaiting.jsp', 10, 1, 6);
INSERT INTO `t_oa_permission` VALUES (1006, '历史会议', '已经参与的', 'jsp/meeting/meetingHistory.jsp', 10, 1, 7);
INSERT INTO `t_oa_permission` VALUES (1007, '所有会议', '对所有会议进行汇总', 'jsp/meeting/meetingAll.jsp', 10, 1, 8);
INSERT INTO `t_oa_permission` VALUES (1101, '投票标题', '需要关联到会议标题(议题)', NULL, 11, 1, 10);
INSERT INTO `t_oa_permission` VALUES (1102, '投票选项', '需要关联到投票标题', NULL, 11, 1, 11);
INSERT INTO `t_oa_permission` VALUES (1103, '投票结果', '需要保留数据,可以看到谁投了什么票', NULL, 11, 1, 12);
INSERT INTO `t_oa_permission` VALUES (1104, '投票报表', '哪标题的哪个选项共投了多少票', NULL, 11, 1, 13);
INSERT INTO `t_oa_permission` VALUES (1301, '用户管理', NULL, 'jsp/system/userManage.jsp', 13, 1, 16);
INSERT INTO `t_oa_permission` VALUES (1302, '角色管理', NULL, NULL, 13, 1, 17);
INSERT INTO `t_oa_permission` VALUES (1303, '权限管理', NULL, NULL, 13, 1, 18);
INSERT INTO `t_oa_permission` VALUES (1304, '数据字典', NULL, NULL, 13, 1, 19);-- ----------------------------
-- Table structure for t_oa_role_permission
-- ----------------------------
DROP TABLE IF EXISTS `t_oa_role_permission`;
CREATE TABLE `t_oa_role_permission`  (`rid` bigint(20) NOT NULL AUTO_INCREMENT COMMENT '主键,标识列',`pid` bigint(20) NOT NULL COMMENT '权限ID',PRIMARY KEY (`rid`) USING BTREE
) ENGINE = InnoDB AUTO_INCREMENT = 1 CHARACTER SET = utf8 COLLATE = utf8_general_ci COMMENT = '角色权限表' ROW_FORMAT = Dynamic;-- ----------------------------
-- Table structure for t_oa_user
-- ----------------------------
DROP TABLE IF EXISTS `t_oa_user`;
CREATE TABLE `t_oa_user`  (`id` bigint(20) NOT NULL AUTO_INCREMENT COMMENT '主键,标识列',`name` varchar(50) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL COMMENT '用户名: 唯一键 登陆时使用 禁止修改',`loginName` varchar(50) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL COMMENT '登录名',`pwd` varchar(50) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL COMMENT '密码',`rid` bigint(11) DEFAULT NULL COMMENT '用户角色:1 管理员 2 发起者 3 审批者 4 参与者 5 会议室管理员',PRIMARY KEY (`id`) USING BTREE
) ENGINE = InnoDB AUTO_INCREMENT = 6 CHARACTER SET = utf8 COLLATE = utf8_general_ci COMMENT = '用户信息表' ROW_FORMAT = Dynamic;-- ----------------------------
-- Records of t_oa_user
-- ----------------------------
INSERT INTO `t_oa_user` VALUES (1, '张三', 'zhangsan', '1234', 4);
INSERT INTO `t_oa_user` VALUES (2, '李四', 'lisi', '1234', 4);
INSERT INTO `t_oa_user` VALUES (3, '王五', 'wangwu', '1234', 4);
INSERT INTO `t_oa_user` VALUES (4, '赵六', 'zhaoliu', '1234', 4);
INSERT INTO `t_oa_user` VALUES (5, '管理员', 'admin', '1234', 1);SET FOREIGN_KEY_CHECKS = 1;

3.项目OA功能需求流程及说明

  • 用户登录:后台采用MD5密码加密,前端采用ajax无刷新及json交互

  • 左侧菜单:登录成功后跳转到会议OA后台页面并完成左侧菜单初始化及动态选项卡绑定操作

  • 系统管理:用户管理模块增删改查实现

  • 会议发布:新增OA会议信息

  • 我的会议:完成我的会议信息展示、会议排座、送审、反馈详情及召开会议等功能

  • 我的审批:完成会议审批操作:审批通过和审批驳回

  • 会议通知:展示我需要参与的会议信息,并实现参会与不参会功能

  • 待开会议:展示会议状态为待开的所有会议信息

  • 历史会议:展示会议状态为已结束的所有会议信息

  • 所有会议:展示所有的会议信息

4.项目搭建

1、基于idea创建OA Web Project工程完成OA会议系统项目搭建

2、创建实体类

 3、创建UserDao,编写userLogin用户登入方法

 /*** 用户登入* @param t_oa_user* @return*/public T_oa_user userLogin(T_oa_user t_oa_user){String sql="select * from t_oa_user where loginName='"+t_oa_user.getLoginName()+"'";System.out.println(sql);List<T_oa_user> t = super.executeQuery(sql, null, new CallBack<T_oa_user>() {@Overridepublic List<T_oa_user> forEach(ResultSet rs) throws SQLException {return CommonUtils.toList(rs, T_oa_user.class);}});if(null!=t&&t.size()>0)return t.get(0);elsereturn null;}

4、创建UserAction并登录实现,使用MD5对用户密码进行加密处理

 1、MD5

package com.zking.oa.util;/*** 使用MD5算法对字符串进行加密的工具类。 MD5即Message-Digest* Algorithm5(信息-摘要算法5),是一种用于产生数字签名的单项散列算法, 这个算法是不可逆的,* 也就是说即使你看到源程序和算法描述,也无法将一个MD5的值变换回原始的字符串* */
public class MD5 {/** 下面这些S11-S44实际上是一个4*4的矩阵,在原始的C实现中是用#define 实现的, 这里把它们实现成为static* final是表示了只读,切能在同一个进程空间内的多个 Instance间共享*/private static final int S11 = 7;private static final int S12 = 12;private static final int S13 = 17;private static final int S14 = 22;private static final int S21 = 5;private static final int S22 = 9;private static final int S23 = 14;private static final int S24 = 20;private static final int S31 = 4;private static final int S32 = 11;private static final int S33 = 16;private static final int S34 = 23;private static final int S41 = 6;private static final int S42 = 10;private static final int S43 = 15;private static final int S44 = 21;private static final byte[] PADDING = { -128, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,0, 0, 0, 0, 0, 0, 0, 0, 0 };/** 下面的三个成员是MD5计算过程中用到的3个核心数据,在原始的C实现中 被定义到MD5_CTX结构中* */private long[] state = new long[4]; // state (ABCD)private long[] count = new long[2];// number of bits, modulo 2^64(lsbfirst)private byte[] buffer = new byte[64]; // input buffer/** digest,是最新一次计算结果的2进制内部表示,表示128bit的MD5值.*/private byte[] digest = new byte[16];public MD5() {md5Init();}/** getMD5ofStr是类MD5最主要的公共方法,入口参数是你想要进行MD5变换的字符串* 返回的是变换完的结果,这个结果是从公共成员digestHexStr取得的.*/public String getMD5ofStr(String inbuf) {md5Init();md5Update(inbuf.getBytes(), inbuf.length());md5Final();String digestHexStr = "";for (int i = 0; i < 16; i++) {digestHexStr += byteHEX(digest[i]);}return digestHexStr;}/* md5Init是一个初始化函数,初始化核心变量,装入标准的幻数 */private void md5Init() {count[0] = 0L;count[1] = 0L;// /* Load magic initialization constants.state[0] = 0x67452301L;state[1] = 0xefcdab

相关文章:

  • 北京网站建设多少钱?
  • 辽宁网页制作哪家好_网站建设
  • 高端品牌网站建设_汉中网站制作
  • docker镜像源更换
  • 华为云分布式缓存服务DCS 8月新特性发布
  • uniapp业务实现
  • 快速完成论文初稿写作的ChatGPT提示词分享
  • 前端三件套
  • Qt-QPushButton按钮类控件(22)
  • 联合仿真(FMI,FMU)资料收集
  • 【三】TDengine 3.3.2 生产级别集群搭建
  • 非线性规划及其MATLAB实现
  • 2024世界技能大赛某省选拔赛“网络安全项目”B模块--数字取证解析②(超详细~)
  • Linux:命令行参数
  • 微服务CI/CD实践(五)Jenkins Docker 自动化构建部署Java微服务
  • 使用 .NET 6 构建跨平台 Worker Service 服务:跨越平台的 C# 服务开发——解决Windows服务跨平台问题
  • 企业数字化转型建设方案(数据中台、业务中台、AI中台)(可编辑的188页WORD)
  • Thinkphp5 + Swoole实现邮箱异步通知
  • 【RocksDB】TransactionDB源码分析
  • 【笔记】你不知道的JS读书笔记——Promise
  • export和import的用法总结
  • iOS帅气加载动画、通知视图、红包助手、引导页、导航栏、朋友圈、小游戏等效果源码...
  • passportjs 源码分析
  • 阿里云爬虫风险管理产品商业化,为云端流量保驾护航
  • 包装类对象
  • 关于字符编码你应该知道的事情
  • 排序算法之--选择排序
  • 学习Vue.js的五个小例子
  • ​ ​Redis(五)主从复制:主从模式介绍、配置、拓扑(一主一从结构、一主多从结构、树形主从结构)、原理(复制过程、​​​​​​​数据同步psync)、总结
  • ​【原创】基于SSM的酒店预约管理系统(酒店管理系统毕业设计)
  • ​LeetCode解法汇总2808. 使循环数组所有元素相等的最少秒数
  • ​力扣解法汇总1802. 有界数组中指定下标处的最大值
  • # 再次尝试 连接失败_无线WiFi无法连接到网络怎么办【解决方法】
  • #100天计划# 2013年9月29日
  • #HarmonyOS:Web组件的使用
  • #Z0458. 树的中心2
  • #进阶:轻量级ORM框架Dapper的使用教程与原理详解
  • #我与Java虚拟机的故事#连载17:我的Java技术水平有了一个本质的提升
  • ()、[]、{}、(())、[[]]命令替换
  • (003)SlickEdit Unity的补全
  • (9)YOLO-Pose:使用对象关键点相似性损失增强多人姿态估计的增强版YOLO
  • (9)目标检测_SSD的原理
  • (C语言)输入一个序列,判断是否为奇偶交叉数
  • (delphi11最新学习资料) Object Pascal 学习笔记---第5章第5节(delphi中的指针)
  • (DFS + 剪枝)【洛谷P1731】 [NOI1999] 生日蛋糕
  • (PyTorch)TCN和RNN/LSTM/GRU结合实现时间序列预测
  • (二十四)Flask之flask-session组件
  • (附源码)spring boot球鞋文化交流论坛 毕业设计 141436
  • (蓝桥杯每日一题)love
  • (三)centos7案例实战—vmware虚拟机硬盘挂载与卸载
  • (生成器)yield与(迭代器)generator
  • (一)Mocha源码阅读: 项目结构及命令行启动
  • (一)python发送HTTP 请求的两种方式(get和post )
  • (转)淘淘商城系列——使用Spring来管理Redis单机版和集群版
  • ./mysql.server: 没有那个文件或目录_Linux下安装MySQL出现“ls: /var/lib/mysql/*.pid: 没有那个文件或目录”...
  • .bat批处理(七):PC端从手机内复制文件到本地
  • .NET Framework 和 .NET Core 在默认情况下垃圾回收(GC)机制的不同(局部变量部分)
  • .NET MAUI Sqlite程序应用-数据库配置(一)