| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382 |
- package com.template.controller;
- import com.alibaba.fastjson.JSON;
- import com.alibaba.fastjson.JSONObject;
- import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
- import com.baomidou.mybatisplus.core.toolkit.ObjectUtils;
- import com.template.annotation.DESRespondSecret;
- import com.template.annotation.PassToken;
- import com.template.api.SmartEvaluateTeacherControllerAPI;
- import com.template.common.utils.ExcelUtils;
- import com.template.common.utils.UUIDUtil;
- import com.template.model.evaluate.teacher.*;
- import com.template.model.pojo.SmartSemester;
- import com.template.model.result.CommonResult;
- import com.template.model.result.PageUtils;
- import com.template.model.vo.EvaluateTeacherVo;
- import com.template.model.vo.RankingVo;
- import com.template.services.SmartEvaluateTdetailService;
- import com.template.services.SmartEvaluateTeacherService;
- import com.template.services.SmartScoreManageService;
- import com.template.services.SmartSemesterService;
- import org.apache.poi.ss.usermodel.Row;
- import org.apache.poi.ss.usermodel.Sheet;
- import org.apache.poi.ss.usermodel.Workbook;
- import org.apache.poi.xssf.usermodel.XSSFWorkbook;
- import org.springframework.beans.factory.annotation.Autowired;
- import org.springframework.web.bind.annotation.RestController;
- import javax.servlet.http.HttpServletResponse;
- import java.time.LocalDateTime;
- import java.util.*;
- import java.util.stream.Collectors;
- @RestController
- //返回参数加密注解
- @DESRespondSecret
- public class SmartEvaluateTeacherController implements SmartEvaluateTeacherControllerAPI {
- @Autowired
- public SmartEvaluateTdetailService smartEvaluateTdetailService;
- @Autowired
- public SmartEvaluateTeacherService smartEvaluateTeacherService;
- @Autowired
- public SmartScoreManageService smartScoreManageService;
- @Autowired
- SmartSemesterService smartSemesterService;
- @PassToken
- public CommonResult operateSmartScoreManage(JSONObject jsonObject) {
- SimpleScore simpleScoreLists = null;
- try {
- simpleScoreLists = JSONObject.parseObject(jsonObject.toString(), SimpleScore.class);
- } catch (Exception e) {
- return CommonResult.errorMsg("参数格式错误");
- }
- List<SmartScoreManageList> allList = simpleScoreLists.getSimpleScoreList();
- List<String> mainScoreItems = allList.stream().filter(e -> e.getDeleted() == 0).map(m -> m.getTerm() + m.getScoreItem()).collect(Collectors.toList());
- Set<String> mainScoreSet = new HashSet<>(mainScoreItems);
- if (mainScoreItems.size() != mainScoreSet.size()) {
- return CommonResult.fail("存在重复主项");
- }
- String term = allList.get(0).getTerm();
- QueryWrapper<SmartEvaluateTdetail> queryWrapper1 = new QueryWrapper<>();
- queryWrapper1.eq("deleted", 0);
- queryWrapper1.eq("term", term);
- List<SmartEvaluateTdetail> smartEvaluateTdetails = smartEvaluateTdetailService.getEvaluateTdetailByKey(queryWrapper1);
- if (smartEvaluateTdetails.size() > 0) {
- return CommonResult.fail("该学期已评分,不可再操作");
- }
- List<SmartScoreManage> smList = new ArrayList<>();
- for (int i = 0; i < allList.size(); i++) {
- SmartScoreManage mainScoreManage = new SmartScoreManage();
- double mainScoreNum = 0;
- if (allList.get(i).getId() == null) {
- allList.get(i).setId((int) UUIDUtil.generateID());
- }
- mainScoreManage.setId(allList.get(i).getId());
- mainScoreManage.setTerm(term);
- mainScoreManage.setScoreItem(allList.get(i).getScoreItem());
- mainScoreManage.setParentId(allList.get(i).getParentId());
- mainScoreManage.setDeleted(allList.get(i).getDeleted());
- List<SmartScoreManageList> childList = allList.get(i).getSmartScoreManageList();
- List<String> scoreItems = childList.stream().filter(e -> e.getDeleted() == 0).map(m -> term + m.getScoreItem()).collect(Collectors.toList());
- Set<String> ScoreSet = new HashSet<>(scoreItems);
- if (scoreItems.size() != ScoreSet.size()) {
- return CommonResult.fail("存在重复子项");
- }
- for (int j = 0; j < childList.size(); j++) {
- SmartScoreManage childScoreManage = new SmartScoreManage();
- if (childList.get(j).getId() == null) {
- childList.get(j).setId((int) UUIDUtil.generateID());
- }
- childScoreManage.setId(childList.get(j).getId());
- childScoreManage.setTerm(term);
- childScoreManage.setScoreItem(childList.get(j).getScoreItem());
- childScoreManage.setParentId(allList.get(i).getId());
- childScoreManage.setScoreNum(childList.get(j).getScoreNum());
- childScoreManage.setDeleted(childList.get(j).getDeleted());
- smList.add(childScoreManage);
- if (childList.get(j).getDeleted() == 0) {
- mainScoreNum += childList.get(j).getScoreNum();
- }
- }
- mainScoreManage.setScoreNum(mainScoreNum);
- smList.add(mainScoreManage);
- }
- for (int i = 0; i < smList.size(); i++) {
- // 相关判断
- SmartScoreManage scoreManage = smList.get(i);
- SmartScoreManage sc = smartScoreManageService.getSmartScoreManageById(scoreManage.getId());
- if (sc == null) {
- smartScoreManageService.insertSmartScoreManage(scoreManage);
- } else {
- smartScoreManageService.updateSmartScoreManage(scoreManage);
- }
- }
- return CommonResult.ok("操作成功");
- }
- @PassToken
- public CommonResult getScoreManage(String term) {
- if (term == null) {
- term = smartScoreManageService.getMaxTerm();
- }
- SimpleScore simpleScore = smartScoreManageService.queryScoreDetail(term);
- return CommonResult.ok(simpleScore);
- }
- @PassToken
- public CommonResult getTeacherScoreList(SmartEvaluateTeacher smartEvaluateTeacher, Integer currentPage, Integer pageCount) {
- QueryWrapper<SmartEvaluateTeacher> queryWrapper = new QueryWrapper<>();
- queryWrapper.eq("deleted", 0);
- if (smartEvaluateTeacher.getName() != null && !smartEvaluateTeacher.getName().trim().equals("")) {
- queryWrapper.and(qw -> qw.like("name", smartEvaluateTeacher.getName()).or().like("card_no", smartEvaluateTeacher.getName()));
- }
- if (smartEvaluateTeacher.getTerm() != null && !smartEvaluateTeacher.getTerm().trim().equals("")) {
- queryWrapper.like("term", smartEvaluateTeacher.getTerm());
- }
- if (smartEvaluateTeacher.getSubject() != null && !smartEvaluateTeacher.getSubject().trim().equals("")) {
- queryWrapper.eq("subject", smartEvaluateTeacher.getSubject());
- }
- if (smartEvaluateTeacher.getClassName() != null && !smartEvaluateTeacher.getClassName().trim().equals("")) {
- queryWrapper.eq("class_name", smartEvaluateTeacher.getClassName());
- }
- queryWrapper.orderByDesc("id");
- PageUtils<SmartEvaluateTeacher> list = smartEvaluateTeacherService.queryPageSmartEvaluateTeacher(currentPage, pageCount, queryWrapper);
- return CommonResult.ok(list);
- }
- @PassToken
- public void getTeacherScoreExcel(SmartEvaluateTeacher smartEvaluateTeacher, HttpServletResponse response) {
- String term = smartScoreManageService.getMaxTerm();
- QueryWrapper<SmartEvaluateTeacher> queryWrapper = new QueryWrapper<>();
- if (smartEvaluateTeacher.getName() != null && !smartEvaluateTeacher.getName().trim().equals("")) {
- queryWrapper.and(qw -> qw.like("name", smartEvaluateTeacher.getName()).or().like("card_no", smartEvaluateTeacher.getName()));
- }
- if (smartEvaluateTeacher.getTerm() != null && !smartEvaluateTeacher.getTerm().trim().equals("")) {
- queryWrapper.like("term", smartEvaluateTeacher.getTerm());
- } else {
- queryWrapper.like("term", term);
- }
- if (smartEvaluateTeacher.getSubject() != null && !smartEvaluateTeacher.getSubject().trim().equals("")) {
- queryWrapper.eq("subject", smartEvaluateTeacher.getSubject());
- }
- if (smartEvaluateTeacher.getClassName() != null && !smartEvaluateTeacher.getClassName().trim().equals("")) {
- queryWrapper.eq("class_name", smartEvaluateTeacher.getClassName());
- }
- List<SmartEvaluateTeacher> outlist = smartEvaluateTeacherService.getEvaluateTeacherByKey(queryWrapper);
- //导出
- Workbook workbook = new XSSFWorkbook();
- Sheet sheet = workbook.createSheet("教师评分明细");
- Row headerRow = sheet.createRow(0);
- headerRow.createCell(0).setCellValue("序号");
- headerRow.createCell(1).setCellValue("工号");
- headerRow.createCell(2).setCellValue("姓名");
- headerRow.createCell(3).setCellValue("学期");
- headerRow.createCell(4).setCellValue("学科");
- headerRow.createCell(5).setCellValue("班级");
- QueryWrapper<SmartScoreManage> queryWrapper1 = new QueryWrapper<>();
- queryWrapper1.eq("deleted", 0);
- queryWrapper1.eq("parent_id", 0);
- queryWrapper1.eq("term", term);
- List<SmartScoreManage> scoreManageList = smartScoreManageService.getScoreManageByKey(queryWrapper1);
- for (int i = 0; i < scoreManageList.size(); i++) {
- headerRow.createCell(i + 6).setCellValue(scoreManageList.get(i).getScoreItem());
- }
- headerRow.createCell(scoreManageList.size() + 6).setCellValue("总分");
- for (int i = 0; i < outlist.size(); i++) {
- SmartEvaluateTeacher teacherScore = outlist.get(i);
- Row dataRow = sheet.createRow(i + 1);
- dataRow.createCell(0).setCellValue(i + 1);
- dataRow.createCell(1).setCellValue(teacherScore.getCardNo());
- dataRow.createCell(2).setCellValue(teacherScore.getName());
- dataRow.createCell(3).setCellValue(teacherScore.getTerm());
- dataRow.createCell(4).setCellValue(teacherScore.getSubject());
- dataRow.createCell(5).setCellValue(teacherScore.getClassName());
- // 分数详情
- JSONObject scoreDetail = JSON.parseObject(teacherScore.getEvaluateDetail());
- for (int j = 0; j < scoreManageList.size(); j++) {
- for (Map.Entry entry : scoreDetail.entrySet()) {
- if (scoreManageList.get(j).getScoreItem().equals(entry.getKey())) {
- dataRow.createCell(j + 6).setCellValue(entry.getValue().toString());
- }
- }
- }
- }
- // 将工作簿写入文件
- ExcelUtils.excelDownload(workbook, "教师评测信息.xlsx", response);
- }
- @PassToken
- public CommonResult evaluateScore(JSONObject jsonObject) {
- SimpleEvaluateScore simpleEvaluateScore = null;
- try {
- simpleEvaluateScore = JSONObject.parseObject(jsonObject.toString(), SimpleEvaluateScore.class);
- } catch (Exception e) {
- return CommonResult.errorMsg("参数格式错误");
- }
- SmartEvaluateTeacher teacher = smartEvaluateTeacherService.getSmartEvaluateTeacherById(simpleEvaluateScore.getId());
- teacher.setLowingScore(simpleEvaluateScore.getLowingScore());
- teacher.setTotalScore(simpleEvaluateScore.getTotalScore());
- JSONObject desScore = new JSONObject();
- List<SmartEvaluateTdetailList> mainList = simpleEvaluateScore.getSimpleScoreList();
- List<SmartEvaluateTdetail> lse = new ArrayList<>();
- for (int i = 0; i < mainList.size(); i++) {
- if (mainList.get(i).getDeleted() == 0) {
- desScore.put(mainList.get(i).getScoreItem(), mainList.get(i).getOwnNum());
- }
- SmartEvaluateTdetail mainLse = new SmartEvaluateTdetail();
- mainLse.setId(mainList.get(i).getId() == null ? (int) UUIDUtil.generateID() : mainList.get(i).getId());
- mainLse.setCardNo(teacher.getCardNo());
- mainLse.setTerm(teacher.getTerm());
- mainLse.setScoreItem(mainList.get(i).getScoreItem());
- mainLse.setParentId(mainList.get(i).getParentId());
- mainLse.setScoreNum(mainList.get(i).getScoreNum());
- mainLse.setOwnNum(mainList.get(i).getOwnNum());
- mainLse.setDeleted(mainList.get(i).getDeleted());
- lse.add(mainLse);
- List<SmartEvaluateTdetailList> childScoreList = mainList.get(i).getEvaluateList();
- for (int j = 0; j < childScoreList.size(); j++) {
- SmartEvaluateTdetailList childScore = childScoreList.get(j);
- SmartEvaluateTdetail childLse = new SmartEvaluateTdetail();
- childLse.setId(childScore.getId() == null ? (int) UUIDUtil.generateID() : childScore.getId());
- childLse.setCardNo(teacher.getCardNo());
- childLse.setTerm(teacher.getTerm());
- childLse.setScoreItem(childScore.getScoreItem());
- childLse.setParentId(mainLse.getId());
- childLse.setScoreNum(childScore.getScoreNum());
- childLse.setOwnNum(childScore.getOwnNum());
- childLse.setDeleted(childScore.getDeleted());
- lse.add(childLse);
- }
- }
- for (int i = 0; i < lse.size(); i++) {
- SmartEvaluateTdetail scoreDetail = lse.get(i);
- SmartEvaluateTdetail listc = smartEvaluateTdetailService.getSmartEvaluateTdetailById(scoreDetail.getId());
- if (listc == null) {
- smartEvaluateTdetailService.insertSmartEvaluateTdetail(scoreDetail);
- } else {
- smartEvaluateTdetailService.updateSmartEvaluateTdetail(scoreDetail);
- }
- }
- teacher.setTotalScore(simpleEvaluateScore.getTotalScore());
- teacher.setLowingScore(simpleEvaluateScore.getLowingScore());
- teacher.setEvaluateDetail(desScore.toString());
- smartEvaluateTeacherService.updateSmartEvaluateTeacher(teacher);
- return CommonResult.ok();
- }
- @PassToken
- public CommonResult getTeacherScoreDetail(Integer id) {
- SmartEvaluateTeacher teacher = smartEvaluateTeacherService.getSmartEvaluateTeacherById(id);
- if (teacher == null) {
- return CommonResult.fail("该条记录已删除");
- }
- if (teacher.getEvaluateDetail() == null) {
- SimpleScoreDetailList simpleScoreDetailList = smartScoreManageService.queryNoTeacherScoreDetail(teacher.getTerm());
- JSONObject resultJson = new JSONObject();
- resultJson.put("id", teacher.getId());
- resultJson.put("totalScore", 0);
- resultJson.put("lowingScore", 0);
- resultJson.put("simpleScoreList", simpleScoreDetailList);
- return CommonResult.ok(resultJson);
- }
- QueryWrapper<SmartScoreManage> queryWrapper1 = new QueryWrapper<>();
- queryWrapper1.eq("deleted", 0);
- queryWrapper1.eq("parent_id", 0);
- queryWrapper1.eq("term", teacher.getTerm());
- List<SmartScoreManage> scoreManageList = smartScoreManageService.getScoreManageByKey(queryWrapper1);
- int totalScore = 0;
- for (int i = 0; i < scoreManageList.size(); i++) {
- totalScore += scoreManageList.get(i).getScoreNum();
- }
- QueryWrapper<SmartEvaluateTdetail> queryWrapper2 = new QueryWrapper<>();
- queryWrapper2.eq("deleted", 0);
- queryWrapper2.eq("parent_id", 0);
- queryWrapper2.eq("term", teacher.getTerm());
- List<SmartEvaluateTdetail> scoreDetailList = smartEvaluateTdetailService.getEvaluateTdetailByKey(queryWrapper2);
- int ownTotalScore = 0;
- int lowingScore = 0;
- for (int i = 0; i < scoreDetailList.size(); i++) {
- ownTotalScore += scoreDetailList.get(i).getOwnNum();
- }
- lowingScore = totalScore - ownTotalScore;
- SimpleScoreDetailList simpleScoreDetailList = smartScoreManageService.queryTeacherScoreDetail(teacher.getTerm(), teacher.getCardNo());
- JSONObject resultJson = new JSONObject();
- resultJson.put("id", teacher.getId());
- resultJson.put("totalScore", ownTotalScore);
- resultJson.put("lowingScore", lowingScore);
- resultJson.put("simpleScoreList", simpleScoreDetailList);
- return CommonResult.ok(resultJson);
- }
- @PassToken
- public CommonResult getScoreComparison(Integer id) {
- SmartEvaluateTeacher teacher = smartEvaluateTeacherService.getSmartEvaluateTeacherById(id);
- QueryWrapper<SmartEvaluateTdetail> queryWrapper1 = new QueryWrapper<>();
- queryWrapper1.eq("deleted", 0);
- queryWrapper1.eq("parent_id", 0);
- queryWrapper1.eq("term", teacher.getTerm());
- queryWrapper1.eq("card_no", teacher.getCardNo());
- List<SmartEvaluateTdetail> detailList = smartEvaluateTdetailService.getEvaluateTdetailByKey(queryWrapper1);
- List<JSONObject> resultJson = new ArrayList<>();
- for (int i = 0; i < detailList.size(); i++) {
- JSONObject jsonObject = new JSONObject();
- SmartEvaluateTdetail smartEvaluateTdetail = detailList.get(i);
- double avgScore = smartEvaluateTdetailService.getAvgEvaluateScore(teacher.getTerm(), smartEvaluateTdetail.getScoreItem());
- jsonObject.put("name", smartEvaluateTdetail.getScoreItem());
- jsonObject.put("ownScore", smartEvaluateTdetail.getOwnNum());
- jsonObject.put("avgScore", avgScore);
- resultJson.add(jsonObject);
- }
- JSONObject jsonObject = new JSONObject();
- jsonObject.put("name", "扣");
- jsonObject.put("ownScore", teacher.getLowingScore());
- jsonObject.put("avgScore", smartEvaluateTeacherService.getAvgLowingScore(teacher.getTerm()));
- resultJson.add(jsonObject);
- return CommonResult.ok(resultJson);
- }
- @PassToken
- public CommonResult getScoreRank(int currentPage, int pageCount, String subject) {
- QueryWrapper<SmartEvaluateTeacher> queryWrapper1 = new QueryWrapper<>();
- queryWrapper1.eq("term", smartScoreManageService.getMaxTerm());
- queryWrapper1.eq("deleted", 0);
- if (subject != null) {
- queryWrapper1.eq("subject", subject);
- }
- queryWrapper1.orderByDesc("total_score");
- PageUtils<SmartEvaluateTeacher> list = smartEvaluateTeacherService.queryPageSmartEvaluateTeacher(currentPage, pageCount, queryWrapper1);
- return CommonResult.ok(list);
- }
- @PassToken
- public CommonResult queryTopSixTeacher() {
- List<EvaluateTeacherVo> teachers = smartEvaluateTeacherService.smartTopTeacherList();
- return CommonResult.ok(teachers);
- }
- @Override
- @DESRespondSecret(validated = true)
- public CommonResult rankingList(String cardNo) {
- LocalDateTime now = LocalDateTime.now();
- SmartSemester smartSemester = smartSemesterService.getSemester(now);
- if (ObjectUtils.isEmpty(smartSemester)) {
- return CommonResult.ok("当前时间不属于任何学期");
- }
- String term = smartSemester.getName();
- List<RankingVo> rankingList=smartEvaluateTeacherService.getRankingList(term);
- RankingVo vo=smartEvaluateTeacherService.getRanking(term,cardNo);
- HashMap<String,Object> map = new HashMap<>();
- map.put("list",rankingList);
- map.put("single",vo);
- return CommonResult.ok(map);
- }
- }
|