1. 程式人生 > >教務管理系統工作總結[何思勇]

教務管理系統工作總結[何思勇]

教務管理系統工作總結

1.資料庫設計階段

1.參與資料庫欄位的設計,外來鍵的儲存方式,以及表之間的引用關係
2.根據建成的資料庫,編寫資料庫設計文件。

2.概要設計階段

1.參與編寫《教務系統-概要設計說明書》,分析教師許可權功能並設計功能流程圖。
用到的技術
使用visio完成功能流程圖的設計

3.編碼階段

我主要負責課程管理模組,選擇題題庫模組,技能完善模組,企業報名和報名結果模組,學生註冊功能,個人生涯,班級歷史變更

1.管理員:課程管理模組
在這裡插入圖片描述
1.點選新增課程按鈕,彈出課程新增模態框。填寫合理的課程名稱後點擊確定進行新增(如果是新增過的但是被刪除了,則將被刪除的記錄重新修改為可用狀態)
2.點選修改按鈕,彈出模態框。填寫正確的課程名稱後點擊確定按鈕進行修改(如果修改的名稱已經存在且處於可用狀態,提示修改失敗。如果修改的名稱已經存在但處於不可用狀態,將其狀態改為可用,將修改之前的設定為不可用狀態)
3.點選刪除(如果課程在被別處引用,提示不可刪除)
2.教師:選擇題題庫管理模組


在這裡插入圖片描述
1.點選檢視大題題庫 轉向大題題庫管理頁面
2.點選新增單選題 彈出模態框
3.可根據 課程名和題幹進行模糊查詢
4.點選匯出選擇題表頭,下載excel格式的表頭
5.選擇所屬科目後點擊匯入選擇題,可以批量匯入選擇題

遇到的問題:
1.匯入選擇題時 如果匯入出錯 無法將錯誤定位到單元格。
2.上傳檔案的同時傳遞其他引數
3.MySql5.7group by 問題[Err] 1055 - Expression #1 of ORDER BY clause is not in GROUP BY clause and contains nonaggregated column 'information_schema.PROFILING.SEQ' which is not functionally dependent on columns in GROUP BY clause; this is incompatible with sql_mode=only_full_group_by


解決:
1.使用孫士林修改後的匯入工具類(思路為將異常資訊獲取,在工具類中接收後獲取需要的資訊 (第i行j列出現…),然後放到map中,輸出到匯入失敗前端提示中)
2.建立一個空的FormData物件,然後再用append方法逐個新增鍵值對:
var data = new FormData();
data.append(‘uploadpic’, $(’#licensefile’)[0].files[0]);//可以是檔案
data.append(‘type’,“license”);

// 匯入選擇題題庫
function uploadCQ() {
	var data = new FormData();
	var courseId = vm.courseId;
	var difficulty = vm.difficulty;
	if (!checkFileExt(($('#uploadCQ')[0].files[0]).name)) {
		alert('檔案格式有誤,請匯入.xls或.xlsx字尾檔案。');
		return;
	}
	data.append('CQFile', $('#uploadCQ')[0].files[0]);
	data.append('courseId', vm.courseId);
	data.append('difficulty', vm.difficulty);
	$.ajax({
		type : "post",
		url : baseURL + "/teacher/choiceQuestion/uploadCQBatch",
		processData : false,
		contentType : false,
		data : data,
		success : function(data1) {
			if (data1.result > 0) {
				layer.msg('上傳成功!');
				$("#jqGrid").jqGrid("setGridParam").trigger("reloadGrid");
			} else {
				alert(data1.err);
			}
			$('#uploadCQ').val('');
		}
	});
}

3.去掉ONLY_FULL_GROUP_BY,重新設定值。

set @@global.sql_mode='STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,
NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION';

學生
1.完善技能模組
在這裡插入圖片描述
1.點選完善技能 進入技能完善標籤頁。左側顯示教師新增的技能名稱全部詞條;點選技能詞條可將技能加入到個人技能框中,下拉選擇好難度(難度最大為教師新增技能時設定的最大級別) 點選提交按鈕,將技能儲存到個人技能中(可回顯 也可以在個人生涯標籤頁中檢視)
在這裡插入圖片描述
2.在技能框中點選(x)可直接移除技能,在技能等級下拉中選擇級別然後點選提交按鈕 可以修改技能的等級。
遇到的問題
1.詞條用span標籤實現,開始只能存技能名稱,並不能將技能的最大等級隱藏在詞條中。
解決
1.用html5中新增的data-xxx屬性,將最大等級儲存在詞條的span標籤中然後在js中用var level = $("#spanid").attr(“data-xxx”)來獲取。

2.檢視班級模組
在這裡插入圖片描述
點開此標籤頁可以檢視學生自己的班級變動歷史和當前所在班級

3.企業報名模組
在這裡插入圖片描述
1.點選企業報名 彈出標籤頁
展示學生所選方向跟企業釋出的招聘資訊方向一致的招聘資訊(對於過期的招聘資訊 只顯示過期未超過兩週的資訊)
2.對於招聘已經開始的招聘 選擇崗位後可以點選報名 進行對相關招聘的報名。招聘未開始 和 招聘結束均不能點選
遇到的問題
1.sql語句出現問題
問題sql:

  select r.*,e.name eName,e.introduce eIntroduce,e.address
    		eAddress,d.name dName,s.sign_up_id sId,s.pass,s.position_id spid from recruitment r
    		LEFT
    		JOIN
    		direction d ON r.direction_id = d.direction_id
    		LEFT JOIN enterprise
    		e
    		ON e.enterprise_id = r.enterprise_id
    		LEFT JOIN sign_up s ON
    		s.recruitment_id = r.recruitment_id 
    		where s.student_id = #{stuId}

解決:

select r.*,e.name eName,e.introduce eIntroduce,e.address
		eAddress,d.name dName,s.sign_up_id sId,s.pass,s.position_id spid from recruitment r
		LEFT
		JOIN
		direction d ON r.direction_id = d.direction_id
		LEFT JOIN enterprise
		e
		ON e.enterprise_id = r.enterprise_id
		LEFT JOIN sign_up s ON
		s.recruitment_id = r.recruitment_id and s.student_id = #{stuId}

4.報名結果

1.點開標籤頁可以檢視自己報名的企業以及錄取結果(已經錄取,未錄取,等待錄取),根據請求的資料通過js進行顯示。

5.學生註冊

完成學生註冊功能,註冊後跳轉到登入頁面。

6.配置訪問出錯統一處理頁面

7.個人生涯

使用到的技術:

jQuery,SSM,Vue.js,Ajax
MySql,Html2canvas

收穫與不足

通過這個專案的磨練,意識到團隊協作的重要性。從專案一開始的不從下手,到最後專案成功完成。少不了團隊每個人的努力。
在這個過程中,我學到了很多新東西,一開始對於網站開發,完全是用jsp進行頁面渲染,這個專案教會我怎麼使用js和html完成來更高效的完成介面的渲染與值傳遞。對ssm框架有了更深一層的理解。

同時,也感到了壓力,很多東西都從未接觸過,生怕自己完不成而耽誤專案進度。幸運的是有一幫樂於助人的隊員,互相幫忙,共度難關。