一、摘要
1.1 項(xiàng)目介紹
基于JAVA+Vue+SpringBoot+MySQL的學(xué)生綜合素質(zhì)評(píng)價(jià)系統(tǒng),包含了成績查詢模塊、學(xué)生自評(píng)模塊、教師評(píng)價(jià)模塊和教務(wù)打分模塊,還包含系統(tǒng)自帶的用戶管理、班級(jí)管理、角色管理、菜單管理、日志管理、數(shù)據(jù)字典管理、文件管理、圖表展示等基礎(chǔ)模塊,學(xué)生綜合素質(zhì)評(píng)價(jià)系統(tǒng)基于角色的訪問控制,給學(xué)生、教師和教務(wù)管理員使用,可將權(quán)限精確到按鈕級(jí)別,您可以自定義角色并分配權(quán)限,系統(tǒng)適合設(shè)計(jì)精確的權(quán)限約束需求。
1.2 項(xiàng)目錄屏
二、功能模塊
2.1 學(xué)生功能
登錄:勾選學(xué)生登錄
學(xué)業(yè)發(fā)展水平(分三個(gè)部分,第一個(gè)是上學(xué)期均分(教師端填寫,填寫3門課語數(shù)外,然后自動(dòng)計(jì)算)學(xué)生端只能查看,第二個(gè)部分是個(gè)自評(píng)問卷(內(nèi)容和分值我會(huì)給),第三個(gè)部分是獲獎(jiǎng)情況(用下拉菜單之類的實(shí)現(xiàn)等級(jí)的區(qū)分,國家級(jí),省級(jí)之類的,加分和這個(gè)有關(guān)),對(duì)應(yīng)的加分?jǐn)?shù)值我會(huì)給),前兩個(gè)滿分都是一百分,最后的得分取均分加上獲獎(jiǎng)情況的額外加分。
品德與社會(huì)化水平(分兩個(gè)部分,第一部分是自評(píng)問卷,第二部分是教師填寫的問卷(教師端填寫)自己只能查看填寫結(jié)果)。滿分都是一百分,最后的得分取均分。
身心健康水平(分兩個(gè)部分,第一部分是自評(píng)問卷,第二部分是教師填寫的問卷,(教師端填寫)自己只能查看填寫結(jié)果,第三部分是教務(wù)處填寫的體育考試分?jǐn)?shù))。三個(gè)滿分都是一百分,最后的得分取均分。
分?jǐn)?shù)查看功能:查看三個(gè)部分的分?jǐn)?shù)和綜合分?jǐn)?shù)(綜合分?jǐn)?shù)就是三個(gè)部分的均分)
2.2 教師功能
登錄(選擇教師登錄)
修改個(gè)人信息
評(píng)價(jià)學(xué)生學(xué)業(yè)發(fā)展水平(填寫學(xué)生上學(xué)期分?jǐn)?shù)),沒填寫的學(xué)生會(huì)留存在這個(gè)頁面,直到填寫完畢為止。
評(píng)價(jià)學(xué)生品德與社會(huì)化水平(填寫問卷),沒填寫的學(xué)生會(huì)留存在這個(gè)頁面,直到評(píng)價(jià)完畢為止。
查詢學(xué)生信息,只能查詢屬于自己的班級(jí)的(通過姓名或者學(xué)號(hào),或者該學(xué)生是否評(píng)價(jià)完的狀態(tài)(這里的評(píng)價(jià)完就是指自己有沒有評(píng)價(jià)完,不管學(xué)生自評(píng)和教務(wù)處填寫的東西),或者綜合成績的區(qū)間)。信息包括學(xué)號(hào),姓名,班級(jí),分?jǐn)?shù)的查看(包括學(xué)業(yè)、品德、身心健康和綜合成績等四項(xiàng))和是否已經(jīng)完成評(píng)價(jià)。
2.3 教務(wù)處功能
登錄(選擇教務(wù)處登錄)
修改個(gè)人信息
評(píng)價(jià)學(xué)生身心健康水平(填寫體育考試分?jǐn)?shù)),沒填寫的學(xué)生會(huì)留存在這個(gè)頁面,直到評(píng)價(jià)完畢為止。
查詢學(xué)生信息(通過姓名或者學(xué)號(hào),或者班級(jí),或者該學(xué)生是否評(píng)價(jià)完的狀態(tài)(這里的評(píng)價(jià)完就是指自己有沒有評(píng)價(jià)完,不管學(xué)生自評(píng)和教師填寫的東西),或者綜合成績的區(qū)間),信息包括學(xué)號(hào),姓名,分?jǐn)?shù)的查看(包括學(xué)業(yè)、品德、身心健康和綜合成績等四項(xiàng))和是否已經(jīng)完成評(píng)價(jià)。
三、系統(tǒng)展示
四、核心代碼
4.1 查詢我的學(xué)科競(jìng)賽
@RequestMapping(value = "/getMyPage", method = RequestMethod.GET)
@ApiOperation(value = "查詢我的學(xué)科競(jìng)賽")
public Result<IPage<Competition>> getMyPage(@ModelAttribute Competition competition ,@ModelAttribute PageVo page){
User currUser = securityUtil.getCurrUser();
QueryWrapper<StudentEvaluate> seQw = new QueryWrapper<>();
seQw.eq("user_id",currUser.getId());
List<StudentEvaluate> evaluateList = iStudentEvaluateService.list(seQw);
StudentEvaluate se = null;
if(evaluateList.size() < 1) {
se = EvaluateUtils.getBlackStudentEvaluate(currUser.getId());
iStudentEvaluateService.saveOrUpdate(se);
} else {
se = evaluateList.get(0);
}
QueryWrapper<Competition> qw = new QueryWrapper<>();
qw.eq("evaluate_id",se.getId());
if(!ZwzNullUtils.isNull(competition.getLevel())) {
qw.like("level",competition.getLevel());
}
if(!ZwzNullUtils.isNull(competition.getTitle())) {
qw.like("title",competition.getTitle());
}
if(!ZwzNullUtils.isNull(competition.getValue())) {
qw.like("value",competition.getValue());
}
IPage<Competition> data = iCompetitionService.page(PageUtil.initMpPage(page),qw);
return new ResultUtil<IPage<Competition>>().setData(data);
}
4.2 保存單個(gè)問卷
@RequestMapping(value = "/saveOneByType", method = RequestMethod.GET)
@ApiOperation(value = "保存單個(gè)問卷")
public Result<Object> getOneByType(@RequestParam int type, @RequestParam String value){
StudentEvaluate studentEvaluate = evaluateUtils.getMyStudentEvaluate();
QueryWrapper<Questionnaire> qw = new QueryWrapper<>();
qw.eq("evaluate_id",studentEvaluate.getId());
qw.eq("type",type);
List<Questionnaire> questionnaireList = iQuestionnaireService.list(qw);
if(questionnaireList.size() < 1) {
Questionnaire qu = new Questionnaire();
qu.setType(type);
qu.setValue(value);
qu.setEvaluateId(studentEvaluate.getId());
qu.setStatus(1);
iQuestionnaireService.saveOrUpdate(qu);
} else {
Questionnaire questionnaire = questionnaireList.get(0);
questionnaire.setValue(value);
questionnaire.setStatus(1);
iQuestionnaireService.saveOrUpdate(questionnaire);
}
return ResultUtil.success();
}
4.3 根據(jù)類型查詢學(xué)生問卷
@RequestMapping(value = "/getOneByType", method = RequestMethod.GET)
@ApiOperation(value = "根據(jù)類型查詢學(xué)生問卷")
public Result<List<String>> getOneByType(@RequestParam int type){
StudentEvaluate se = evaluateUtils.getMyStudentEvaluate();
QueryWrapper<Questionnaire> qw = new QueryWrapper<>();
qw.eq("evaluate_id",se.getId());
qw.eq("type",type);
List<Questionnaire> questionnaireList = iQuestionnaireService.list(qw);
if(questionnaireList.size() < 1) {
return new ResultUtil<List<String>>().setData(new ArrayList<>());
}
return new ResultUtil<List<String>>().setData(StrToListUtils.getListByStr(questionnaireList.get(0).getValue()));
}
4.4 填寫語數(shù)外評(píng)價(jià)
@RequestMapping(value = "/editYuShuWai", method = RequestMethod.GET)
@ApiOperation(value = "填寫語數(shù)外評(píng)價(jià)")
public Result<StudentEvaluate> editYuShuWai(@RequestParam String id,@RequestParam float yu,@RequestParam float shu,@RequestParam float wai){
StudentEvaluate evaluate = iStudentEvaluateService.getById(id);
if(evaluate == null) {
return ResultUtil.error("評(píng)價(jià)單不存在");
}
evaluate.setAchievementOne(BigDecimal.valueOf(yu));
evaluate.setAchievementTwo(BigDecimal.valueOf(shu));
evaluate.setAchievementThree(BigDecimal.valueOf(wai));
evaluate.setAchievementSum(BigDecimal.valueOf((yu + shu + wai) / 3));
double oneSum = (evaluate.getAchievementSum().floatValue() + evaluate.getQuestionnaireOne().floatValue()) / 2 + evaluate.getCompetitionMine().floatValue();
evaluate.setAnsOne(BigDecimal.valueOf(oneSum));
double ansSum = (evaluate.getAnsOne().floatValue() + evaluate.getAnsTwo().floatValue() + evaluate.getAnsThree().floatValue()) / 3;
evaluate.setAnsSum(BigDecimal.valueOf(ansSum));
iStudentEvaluateService.saveOrUpdate(evaluate);
return new ResultUtil<StudentEvaluate>().setData(iStudentEvaluateService.getById(id));
}
4.5 填寫品德自評(píng)問卷分
@RequestMapping(value = "/editPinDeZiPing", method = RequestMethod.GET)
@ApiOperation(value = "填寫品德自評(píng)問卷分")
public Result<Object> editPinDeZiPing(@RequestParam float grade){
StudentEvaluate evaluate = evaluateUtils.getMyStudentEvaluate();
evaluate.setQuestionnaireTwo(BigDecimal.valueOf(grade));
double twoSum = (evaluate.getQuestionnaireTwo().floatValue() + evaluate.getQuestionnaireThree().floatValue()) / 2;
evaluate.setAnsTwo(BigDecimal.valueOf(twoSum));
double ansSum = (evaluate.getAnsOne().floatValue() + evaluate.getAnsTwo().floatValue() + evaluate.getAnsThree().floatValue()) / 3;
evaluate.setAnsSum(BigDecimal.valueOf(ansSum));
iStudentEvaluateService.saveOrUpdate(evaluate);
return ResultUtil.success();
}
五、免責(zé)說明
- 本項(xiàng)目僅供個(gè)人學(xué)習(xí)使用,商用授權(quán)請(qǐng)聯(lián)系博主,否則后果自負(fù)。
- 博主擁有本軟件構(gòu)建后的應(yīng)用系統(tǒng)全部內(nèi)容所有權(quán)及獨(dú)立的知識(shí)產(chǎn)權(quán),擁有最終解釋權(quán)。
- 如有問題,歡迎在倉庫 Issue 留言,看到后會(huì)第一時(shí)間回復(fù),相關(guān)意見會(huì)酌情考慮,但沒有一定被采納的承諾或保證。
下載本系統(tǒng)代碼或使用本系統(tǒng)的用戶,必須同意以下內(nèi)容,否則請(qǐng)勿下載!文章來源:http://www.zghlxwxcb.cn/news/detail-857971.html
- 出于自愿而使用/開發(fā)本軟件,了解使用本軟件的風(fēng)險(xiǎn),且同意自己承擔(dān)使用本軟件的風(fēng)險(xiǎn)。
- 利用本軟件構(gòu)建的網(wǎng)站的任何信息內(nèi)容以及導(dǎo)致的任何版權(quán)糾紛和法律爭(zhēng)議及后果和博主無關(guān),博主對(duì)此不承擔(dān)任何責(zé)任。
- 在任何情況下,對(duì)于因使用或無法使用本軟件而導(dǎo)致的任何難以合理預(yù)估的損失(包括但不僅限于商業(yè)利潤損失、業(yè)務(wù)中斷與業(yè)務(wù)信息丟失),博主概不承擔(dān)任何責(zé)任。
- 必須了解使用本軟件的風(fēng)險(xiǎn),博主不承諾提供一對(duì)一的技術(shù)支持、使用擔(dān)保,也不承擔(dān)任何因本軟件而產(chǎn)生的難以預(yù)料的問題的相關(guān)責(zé)任。
文章來源地址http://www.zghlxwxcb.cn/news/detail-857971.html
到了這里,關(guān)于【開源】SpringBoot框架開發(fā)學(xué)生綜合素質(zhì)評(píng)價(jià)系統(tǒng)的文章就介紹完了。如果您還想了解更多內(nèi)容,請(qǐng)?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!