wordpress logo替換網(wǎng)絡(luò)優(yōu)化工程師吃香嗎
1.什么是OA
辦公自動(dòng)化(Office Automation,簡(jiǎn)稱(chēng)OA)是將現(xiàn)代化辦公和計(jì)算機(jī)技術(shù)結(jié)合起來(lái)的一種新型的辦公方式。辦公自動(dòng)化沒(méi)有統(tǒng)一的定義,凡是在傳統(tǒng)的辦公室中采用各種新技術(shù)、新機(jī)器、新設(shè)備從事辦公業(yè)務(wù),都屬于辦公自動(dòng)化的領(lǐng)域。通過(guò)實(shí)現(xiàn)辦公自動(dòng)化,或者說(shuō)實(shí)現(xiàn)數(shù)字化辦公,可以優(yōu)化現(xiàn)有的管理組織結(jié)構(gòu),調(diào)整管理體制,在提高效率的基礎(chǔ)上,增加協(xié)同辦公能力,強(qiáng)化決策的一致性 。
OA軟件的核心應(yīng)用是:流程審批、協(xié)同工作、公文管理(國(guó)企和政府機(jī)關(guān))、溝通工具、文檔管理、信息中心、電子論壇、計(jì)劃管理、項(xiàng)目管理、任務(wù)管理、會(huì)議管理、關(guān)聯(lián)人員、系統(tǒng)集成、門(mén)戶定制、通訊錄、工作便簽、問(wèn)卷調(diào)查、常用工具(計(jì)算器、萬(wàn)年歷等)。
2.初始化數(shù)據(jù)庫(kù)及數(shù)據(jù)
表名 | 說(shuō)明 |
---|---|
t_oa_meeting_info | 會(huì)議信息表 |
t_oa_meeting_feedback | 會(huì)議通知反饋表 |
t_oa_meeting_audit | 會(huì)議審批信息表 |
t_oa_meeting_option | 會(huì)議投票標(biāo)題選項(xiàng)表 |
t_oa_meeting_room | 會(huì)議室信息表 |
t_oa_permission | 權(quán)限信息表 |
t_oa_role_permission | 角色權(quán)限表 |
t_oa_user | 用戶信息表 |
下面是創(chuàng)建數(shù)據(jù)庫(kù)所有的數(shù)據(jù)庫(kù)腳本:
/*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 '主鍵,唯一標(biāo)識(shí)',`meetingId` bigint(11) NOT NULL COMMENT '外鍵,會(huì)議編號(hào)',`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 '審批時(shí)間',PRIMARY KEY (`id`) USING BTREE
) ENGINE = InnoDB AUTO_INCREMENT = 2 CHARACTER SET = utf8 COLLATE = utf8_general_ci COMMENT = '會(huì)議審批信息表' 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 '主鍵,唯一標(biāo)識(shí)',`meetingId` bigint(11) NOT NULL COMMENT '外鍵,會(huì)議編號(hào)',`personType` int(2) NOT NULL COMMENT '人員類(lèi)別:1參會(huì)2列席',`personId` bigint(11) NOT NULL COMMENT '人員ID',`result` int(2) NOT NULL COMMENT '反饋結(jié)果:1參加0不參加',`reason` varchar(200) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL COMMENT '不參與會(huì)議的原因',PRIMARY KEY (`id`) USING BTREE
) ENGINE = InnoDB CHARACTER SET = utf8 COLLATE = utf8_general_ci COMMENT = '會(huì)議通知反饋表' 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 '主鍵,唯一標(biāo)識(shí)',`title` varchar(100) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL COMMENT '會(huì)議標(biāo)題',`content` varchar(2000) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL COMMENT '會(huì)議內(nèi)容',`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 '會(huì)議地點(diǎn)',`startTime` datetime(0) NOT NULL COMMENT '開(kāi)始時(shí)間',`endTime` datetime(0) NOT NULL COMMENT '結(jié)束時(shí)間',`fujian` varchar(200) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL COMMENT '附件',`state` int(2) NOT NULL DEFAULT 1 COMMENT '狀態(tài):0取消會(huì)議1待審核2駁回3待開(kāi)4進(jìn)行中5開(kāi)啟投票6結(jié)束會(huì)議,默認(rèn)值為1',`seatPic` varchar(200) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL COMMENT '會(huì)議排座圖片地址',`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 = '會(huì)議信息表' 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 '主鍵,唯一標(biāo)識(shí)',`meetingId` bigint(11) NOT NULL COMMENT '會(huì)議ID',`optionValue` varchar(10) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL COMMENT '選項(xiàng)標(biāo)識(shí)(A/B/C/D)',`optionText` varchar(200) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL COMMENT '選項(xiàng)描述',PRIMARY KEY (`id`) USING BTREE
) ENGINE = InnoDB CHARACTER SET = utf8 COLLATE = utf8_general_ci COMMENT = '會(huì)議投票標(biāo)題選項(xiàng)表' 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 '會(huì)議室名稱(chēng)',`equipment` varchar(100) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL COMMENT '會(huì)議設(shè)備',PRIMARY KEY (`id`) USING BTREE
) ENGINE = InnoDB AUTO_INCREMENT = 1 CHARACTER SET = utf8 COLLATE = utf8_general_ci COMMENT = '會(huì)議室信息表' 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 '主鍵,標(biāo)識(shí)列',`name` varchar(50) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL COMMENT '權(quán)限名稱(chēng)',`description` varchar(20) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL COMMENT '權(quán)限描述',`url` varchar(50) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL COMMENT '菜單路徑',`pid` bigint(20) DEFAULT NULL COMMENT '父權(quán)限',`ismenu` int(11) DEFAULT NULL COMMENT '是否為菜單 1、菜單 2、按鈕',`displayno` bigint(20) DEFAULT NULL COMMENT '展現(xiàn)順序',PRIMARY KEY (`id`) USING BTREE
) ENGINE = InnoDB AUTO_INCREMENT = 1305 CHARACTER SET = utf8 COLLATE = utf8_general_ci COMMENT = '權(quán)限信息表' ROW_FORMAT = Dynamic;-- ----------------------------
-- Records of t_oa_permission
-- ----------------------------
INSERT INTO `t_oa_permission` VALUES (10, '會(huì)議管理', NULL, NULL, -1, 1, 1);
INSERT INTO `t_oa_permission` VALUES (11, '投票管理', NULL, NULL, -1, 1, 9);
INSERT INTO `t_oa_permission` VALUES (12, '會(huì)議室管理', NULL, 'jsp/meeting/meetingRoom.jsp', -1, 1, 14);
INSERT INTO `t_oa_permission` VALUES (13, '系統(tǒng)管理', NULL, NULL, -1, 1, 15);
INSERT INTO `t_oa_permission` VALUES (1001, '會(huì)議發(fā)布', '發(fā)起會(huì)議', 'jsp/meeting/addMeeting.jsp', 10, 1, 2);
INSERT INTO `t_oa_permission` VALUES (1002, '會(huì)議通知', '別人發(fā)起的會(huì)議,需要你確認(rèn)是否參加', 'jsp/meeting/meetingNotify.jsp', 10, 1, 3);
INSERT INTO `t_oa_permission` VALUES (1003, '我的會(huì)議', '我發(fā)起的,未審核->已審核', 'jsp/meeting/myMeeting.jsp', 10, 1, 4);
INSERT INTO `t_oa_permission` VALUES (1004, '我的審批', '我審批的會(huì)議', 'jsp/meeting/myAudit.jsp', 10, 1, 5);
INSERT INTO `t_oa_permission` VALUES (1005, '待開(kāi)會(huì)議', '我參與的,但是還未開(kāi)始的', 'jsp/meeting/meetingWaiting.jsp', 10, 1, 6);
INSERT INTO `t_oa_permission` VALUES (1006, '歷史會(huì)議', '已經(jīng)參與的', 'jsp/meeting/meetingHistory.jsp', 10, 1, 7);
INSERT INTO `t_oa_permission` VALUES (1007, '所有會(huì)議', '對(duì)所有會(huì)議進(jìn)行匯總', 'jsp/meeting/meetingAll.jsp', 10, 1, 8);
INSERT INTO `t_oa_permission` VALUES (1101, '投票標(biāo)題', '需要關(guān)聯(lián)到會(huì)議標(biāo)題(議題)', NULL, 11, 1, 10);
INSERT INTO `t_oa_permission` VALUES (1102, '投票選項(xiàng)', '需要關(guān)聯(lián)到投票標(biāo)題', NULL, 11, 1, 11);
INSERT INTO `t_oa_permission` VALUES (1103, '投票結(jié)果', '需要保留數(shù)據(jù),可以看到誰(shuí)投了什么票', NULL, 11, 1, 12);
INSERT INTO `t_oa_permission` VALUES (1104, '投票報(bào)表', '哪標(biāo)題的哪個(gè)選項(xiàng)共投了多少票', 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, '權(quán)限管理', NULL, NULL, 13, 1, 18);
INSERT INTO `t_oa_permission` VALUES (1304, '數(shù)據(jù)字典', 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 '主鍵,標(biāo)識(shí)列',`pid` bigint(20) NOT NULL COMMENT '權(quán)限ID',PRIMARY KEY (`rid`) USING BTREE
) ENGINE = InnoDB AUTO_INCREMENT = 1 CHARACTER SET = utf8 COLLATE = utf8_general_ci COMMENT = '角色權(quán)限表' 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 '主鍵,標(biāo)識(shí)列',`name` varchar(50) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL COMMENT '用戶名: 唯一鍵 登陸時(shí)使用 禁止修改',`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 發(fā)起者 3 審批者 4 參與者 5 會(huì)議室管理員',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.項(xiàng)目OA功能需求流程及說(shuō)明
-
用戶登錄:后臺(tái)采用MD5密碼加密,前端采用ajax無(wú)刷新及json交互
-
左側(cè)菜單:登錄成功后跳轉(zhuǎn)到會(huì)議OA后臺(tái)頁(yè)面并完成左側(cè)菜單初始化及動(dòng)態(tài)選項(xiàng)卡綁定操作
-
系統(tǒng)管理:用戶管理模塊增刪改查實(shí)現(xiàn)
-
會(huì)議發(fā)布:新增OA會(huì)議信息
-
我的會(huì)議:完成我的會(huì)議信息展示、會(huì)議排座、送審、反饋詳情及召開(kāi)會(huì)議等功能
-
我的審批:完成會(huì)議審批操作:審批通過(guò)和審批駁回
-
會(huì)議通知:展示我需要參與的會(huì)議信息,并實(shí)現(xiàn)參會(huì)與不參會(huì)功能
-
待開(kāi)會(huì)議:展示會(huì)議狀態(tài)為待開(kāi)的所有會(huì)議信息
-
歷史會(huì)議:展示會(huì)議狀態(tài)為已結(jié)束的所有會(huì)議信息
-
所有會(huì)議:展示所有的會(huì)議信息
4.項(xiàng)目搭建
1、基于idea創(chuàng)建OA Web Project工程完成OA會(huì)議系統(tǒng)項(xiàng)目搭建
2、創(chuàng)建實(shí)體類(lèi)
3、創(chuàng)建UserDao,編寫(xiě)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、創(chuàng)建UserAction并登錄實(shí)現(xiàn),使用MD5對(duì)用戶密碼進(jìn)行加密處理
1、MD5
package com.zking.oa.util;/*** 使用MD5算法對(duì)字符串進(jìn)行加密的工具類(lèi)。 MD5即Message-Digest* Algorithm5(信息-摘要算法5),是一種用于產(chǎn)生數(shù)字簽名的單項(xiàng)散列算法, 這個(gè)算法是不可逆的,* 也就是說(shuō)即使你看到源程序和算法描述,也無(wú)法將一個(gè)MD5的值變換回原始的字符串* */
public class MD5 {/** 下面這些S11-S44實(shí)際上是一個(gè)4*4的矩陣,在原始的C實(shí)現(xiàn)中是用#define 實(shí)現(xiàn)的, 這里把它們實(shí)現(xiàn)成為static* final是表示了只讀,切能在同一個(gè)進(jìn)程空間內(nèi)的多個(gè) 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 };/** 下面的三個(gè)成員是MD5計(jì)算過(guò)程中用到的3個(gè)核心數(shù)據(jù),在原始的C實(shí)現(xiàn)中 被定義到MD5_CTX結(jié)構(gòu)中* */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,是最新一次計(jì)算結(jié)果的2進(jìn)制內(nèi)部表示,表示128bit的MD5值.*/private byte[] digest = new byte[16];public MD5() {md5Init();}/** getMD5ofStr是類(lèi)MD5最主要的公共方法,入口參數(shù)是你想要進(jìn)行MD5變換的字符串* 返回的是變換完的結(jié)果,這個(gè)結(jié)果是從公共成員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是一個(gè)初始化函數(shù),初始化核心變量,裝入標(biāo)準(zhǔn)的幻數(shù) */private void md5Init() {count[0] = 0L;count[1] = 0L;// /* Load magic initialization constants.state[0] = 0x67452301L;state[1] = 0xefcdab