教務管理系統工作總結[何思勇]
教務管理系統工作總結
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框架有了更深一層的理解。
同時,也感到了壓力,很多東西都從未接觸過,生怕自己完不成而耽誤專案進度。幸運的是有一幫樂於助人的隊員,互相幫忙,共度難關。