| 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394959697989910010110210310410510610710810911011111211311411511611711811912012112212312412512612712812913013113213313413513613713813914014114214314414514614714814915015115215315415515615715815916016116216316416516616716816917017117217317417517617717817918018118218318418518618718818919019119219319419519619719819920020120220320420520620720820921021121221321421521621721821922022122222322422522622722822923023123223323423523623723823924024124224324424524624724824925025125225325425525625725825926026126226326426526626726826927027127227327427527627727827928028128228328428528628728828929029129229329429529629729829930030130230330430530630730830931031131231331431531631731831932032132232332432532632732832933033133233333433533633733833934034134234334434534634734834935035135235335435535635735835936036136236336436536636736836937037137237337437537637737837938038138238338438538638738838939039139239339439539639739839940040140240340440540640740840941041141241341441541641741841942042142242342442542642742842943043143243343443543643743843944044144244344444544644744844945045145245345445545645745845946046146246346446546646746846947047147247347447547647747847948048148248348448548648748848949049149249349449549649749849950050150250350450550650750850951051151251351451551651751851952052152252352452552652752852953053153253353453553653753853954054154254354454554654754854955055155255355455555655755855956056156256356456556656756856957057157257357457557657757857958058158258358458558658758858959059159259359459559659759859960060160260360460560660760860961061161261361461561661761861962062162262362462562662762862963063163263363463563663763863964064164264364464564664764864965065165265365465565665765865966066166266366466566666766866967067167267367467567667767867968068168268368468568668768868969069169269369469569669769869970070170270370470570670770870971071171271371471571671771871972072172272372472572672772872973073173273373473573673773873974074174274374474574674774874975075175275375475575675775875976076176276376476576676776876977077177277377477577677777877978078178278378478578678778878979079179279379479579679779879980080180280380480580680780880981081181281381481581681781881982082182282382482582682782882983083183283383483583683783883984084184284384484584684784884985085185285385485585685785885986086186286386486586686786886987087187287387487587687787887988088188288388488588688788888989089189289389489589689789889990090190290390490590690790890991091191291391491591691791891992092192292392492592692792892993093193293393493593693793893994094194294394494594694794894995095195295395495595695795895996096196296396496596696796896997097197297397497597697797897998098198298398498598698798898999099199299399499599699799899910001001100210031004100510061007100810091010101110121013101410151016101710181019102010211022102310241025102610271028102910301031103210331034103510361037103810391040104110421043104410451046104710481049105010511052105310541055105610571058105910601061106210631064106510661067106810691070107110721073107410751076107710781079108010811082108310841085108610871088108910901091109210931094109510961097109810991100110111021103110411051106110711081109111011111112111311141115111611171118111911201121112211231124112511261127112811291130113111321133 |
- package com.xjrsoft.module.student.service.impl;
- import cn.dev33.satoken.stp.StpUtil;
- import cn.hutool.core.util.IdUtil;
- import cn.hutool.core.util.StrUtil;
- import com.alibaba.excel.EasyExcel;
- import com.alibaba.excel.ExcelWriter;
- import com.alibaba.excel.support.ExcelTypeEnum;
- import com.alibaba.excel.write.metadata.WriteSheet;
- import com.alibaba.fastjson.JSONObject;
- import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
- import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
- import com.baomidou.mybatisplus.core.metadata.IPage;
- import com.baomidou.mybatisplus.core.toolkit.Wrappers;
- import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
- import com.github.yulichang.base.MPJBaseServiceImpl;
- import com.github.yulichang.toolkit.MPJWrappers;
- import com.github.yulichang.wrapper.MPJLambdaWrapper;
- import com.xjrsoft.common.enums.AssessmentTypeEnum;
- import com.xjrsoft.common.enums.DeleteMark;
- import com.xjrsoft.common.enums.EnabledMark;
- import com.xjrsoft.common.enums.EvaluateTypeEnum;
- import com.xjrsoft.common.enums.ScoreTypeEnum;
- import com.xjrsoft.common.model.result.RT;
- import com.xjrsoft.common.utils.VoToColumnUtil;
- import com.xjrsoft.common.utils.excel.ExcelMergeUtil;
- import com.xjrsoft.module.base.entity.BaseClass;
- import com.xjrsoft.module.base.mapper.BaseClassMapper;
- import com.xjrsoft.module.evaluate.dto.TeaEvaluateClassDto;
- import com.xjrsoft.module.evaluate.mapper.EvaluateResultMapper;
- import com.xjrsoft.module.evaluate.vo.TeaEvaluateClassListVo;
- import com.xjrsoft.module.organization.dto.WeChatSendMessageDto;
- import com.xjrsoft.module.organization.entity.User;
- import com.xjrsoft.module.organization.service.IUserService;
- import com.xjrsoft.module.organization.service.IWeChatService;
- import com.xjrsoft.module.student.dto.BaseStudentAssessmentInspectionMobilePageDto;
- import com.xjrsoft.module.student.dto.BaseStudentAssessmentInspectionPageDto;
- import com.xjrsoft.module.student.dto.CalssQuantitativeAssessmentPageDto;
- import com.xjrsoft.module.student.dto.QuantitativeAssessmentExcelDto;
- import com.xjrsoft.module.student.dto.QuantitativeAssessmentSingleScoreDto;
- import com.xjrsoft.module.student.entity.BaseClassMajorSet;
- import com.xjrsoft.module.student.entity.BaseStudentAssessmentCategory;
- import com.xjrsoft.module.student.entity.BaseStudentAssessmentClassRelation;
- import com.xjrsoft.module.student.entity.BaseStudentAssessmentInspection;
- import com.xjrsoft.module.student.entity.BaseStudentAssessmentProject;
- import com.xjrsoft.module.student.entity.BaseStudentAssessmentStudentRelation;
- import com.xjrsoft.module.student.entity.BaseStudentSchoolRoll;
- import com.xjrsoft.module.student.mapper.BaseStudentAssessmentCategoryMapper;
- import com.xjrsoft.module.student.mapper.BaseStudentAssessmentClassRelationMapper;
- import com.xjrsoft.module.student.mapper.BaseStudentAssessmentInspectionMapper;
- import com.xjrsoft.module.student.mapper.BaseStudentAssessmentProjectMapper;
- import com.xjrsoft.module.student.mapper.BaseStudentAssessmentStudentRelationMapper;
- import com.xjrsoft.module.student.mapper.BaseStudentSchoolRollMapper;
- import com.xjrsoft.module.student.service.IBaseStudentAssessmentInspectionService;
- import com.xjrsoft.module.student.service.IQuotaFormulaRuleService;
- import com.xjrsoft.module.student.vo.BaseStudentAssessmentClassListVo;
- import com.xjrsoft.module.student.vo.BaseStudentAssessmentInspectionMobilePageVo;
- import com.xjrsoft.module.student.vo.BaseStudentAssessmentInspectionMobileVo;
- import com.xjrsoft.module.student.vo.BaseStudentAssessmentInspectionPageVo;
- import com.xjrsoft.module.student.vo.BaseStudentAssessmentInspectionVo;
- import com.xjrsoft.module.student.vo.CalssQuantitativeAssessmentPageVo;
- import com.xjrsoft.module.student.vo.QuantitativeAssessmentSingleScoreVo;
- import com.xjrsoft.module.student.vo.QuantitativeAssessmentSubTableExcelVo;
- import com.xjrsoft.module.system.entity.File;
- import com.xjrsoft.module.system.service.IFileService;
- import com.xjrsoft.module.teacher.entity.XjrUser;
- import lombok.AllArgsConstructor;
- import me.zhyd.oauth.log.Log;
- import org.apache.poi.ss.usermodel.Cell;
- import org.apache.poi.ss.usermodel.CellStyle;
- import org.apache.poi.ss.usermodel.Font;
- import org.apache.poi.ss.usermodel.HorizontalAlignment;
- import org.apache.poi.ss.usermodel.Row;
- import org.apache.poi.ss.usermodel.Sheet;
- import org.apache.poi.ss.usermodel.VerticalAlignment;
- import org.apache.poi.ss.usermodel.Workbook;
- import org.apache.poi.ss.util.CellRangeAddress;
- import org.apache.poi.xssf.usermodel.XSSFWorkbook;
- import org.springframework.beans.BeanUtils;
- import org.springframework.http.ResponseEntity;
- import org.springframework.stereotype.Service;
- import org.springframework.transaction.annotation.Transactional;
- import javax.script.ScriptEngine;
- import javax.script.ScriptEngineManager;
- import javax.script.ScriptException;
- import java.io.ByteArrayOutputStream;
- import java.io.IOException;
- import java.math.BigDecimal;
- import java.math.RoundingMode;
- import java.text.SimpleDateFormat;
- import java.time.LocalDate;
- import java.time.LocalDateTime;
- import java.time.temporal.TemporalAdjusters;
- import java.util.ArrayList;
- import java.util.HashMap;
- import java.util.List;
- import java.util.Map;
- import java.util.stream.Collectors;
- /**
- * @title: 学生班级巡查考核
- * @Author dzx
- * @Date: 2023-11-16
- * @Version 1.0
- */
- @Service
- @AllArgsConstructor
- public class BaseStudentAssessmentInspectionServiceImpl extends MPJBaseServiceImpl<BaseStudentAssessmentInspectionMapper, BaseStudentAssessmentInspection> implements IBaseStudentAssessmentInspectionService {
- private final BaseStudentAssessmentInspectionMapper assessmentInspectionMapper;
- private final BaseStudentAssessmentCategoryMapper categoryMapper;
- private final BaseStudentAssessmentProjectMapper projectMapper;
- private final BaseStudentAssessmentStudentRelationMapper assessmentStudentRelationMapper;
- private final BaseStudentAssessmentClassRelationMapper assessmentClassRelationMapper;
- private final BaseClassMapper baseClassMapper;
- private final BaseStudentSchoolRollMapper baseStudentSchoolRollMapper;
- private final IFileService fileService;
- private final IUserService userService;
- private final IWeChatService weChatService;
- private final EvaluateResultMapper evaluateResultMapper;
- private final IQuotaFormulaRuleService quotaFormulaRuleService;
- @Override
- public Page<BaseStudentAssessmentInspectionPageVo> getPage(Page<BaseStudentAssessmentInspectionPageDto> page, BaseStudentAssessmentInspectionPageDto dto) {
- Page<BaseStudentAssessmentInspectionPageVo> result = assessmentInspectionMapper.getPage(page, dto);
- // 处理加减分
- result.getRecords().forEach((node) -> {
- if (node.getScoreType().equals(ScoreTypeEnum.ScoreMinus.getCode())) {
- node.setScore(node.getScore() * -1);
- }
- });
- return result;
- }
- @Override
- public BaseStudentAssessmentInspectionVo getInfo(Long id) {
- BaseStudentAssessmentInspectionVo result = assessmentInspectionMapper.getInfo(id);
- // 获取班级信息
- List<BaseStudentAssessmentClassListVo> baseStudentAssessmentClassListVos = assessmentClassRelationMapper.selectJoinList(BaseStudentAssessmentClassListVo.class,
- MPJWrappers.<BaseStudentAssessmentClassRelation>lambdaJoin()
- .leftJoin(BaseClass.class, BaseClass::getId, BaseStudentAssessmentClassRelation::getClassId)
- .leftJoin(XjrUser.class, XjrUser::getId, BaseClass::getTeacherId)
- .eq(BaseStudentAssessmentClassRelation::getBaseStudentAssessmentInspectionId, id)
- .select(BaseStudentAssessmentClassRelation::getId)
- .selectAs(BaseClass::getName, BaseStudentAssessmentClassListVo::getClassName)
- .selectAs(XjrUser::getName, BaseStudentAssessmentClassListVo::getTeacherName)
- .selectAs(XjrUser::getMobile, BaseStudentAssessmentClassListVo::getMobile)
- .select(BaseStudentAssessmentClassRelation.class, x -> VoToColumnUtil.fieldsToColumns(BaseStudentAssessmentClassRelation.class).contains(x.getProperty()))
- );
- result.setClassList(baseStudentAssessmentClassListVos);
- // 获取学生信息
- result.setStudentList(assessmentInspectionMapper.getStudentListByInspectionId(id));
- // 获取文件列表
- result.setFileInfos(fileService.list(Wrappers.<File>query().lambda().eq(File::getFolderId, result.getFileId())));
- return result;
- }
- @Override
- public Page<BaseStudentAssessmentInspectionMobilePageVo> getMobilePage(Page<BaseStudentAssessmentInspectionMobilePageDto> page, BaseStudentAssessmentInspectionMobilePageDto dto) {
- if (dto.getClassIds() == null || dto.getClassIds().isEmpty()) {
- // 获取当前用户所管班级
- List<Long> classIds = baseClassMapper.selectList(
- Wrappers.<BaseClass>query().lambda()
- .eq(BaseClass::getTeacherId, StpUtil.getLoginIdAsLong())
- .select(BaseClass::getId)
- ).stream().map(BaseClass::getId).collect(Collectors.toList());
- dto.setClassIds(classIds);
- }
- if (dto.getClassIds() == null || dto.getClassIds().isEmpty()) {
- return null;
- }
- return assessmentInspectionMapper.getMobilePage(page, dto);
- }
- @Override
- public BaseStudentAssessmentInspectionMobileVo getMobileInfo(Long id) {
- BaseStudentAssessmentInspectionMobileVo result = assessmentInspectionMapper.getMobileInfo(id);
- // 处理加减分
- if (result.getScoreType().equals(ScoreTypeEnum.ScoreMinus.getCode())) {
- result.setScore(result.getScore() * -1);
- }
- MPJLambdaWrapper<BaseStudentAssessmentStudentRelation> baseStudentAssessmentStudentRelationWrapper = new MPJLambdaWrapper<>();
- baseStudentAssessmentStudentRelationWrapper
- .select(BaseStudentAssessmentStudentRelation::getId)
- .selectAs(XjrUser::getName,BaseStudentAssessmentStudentRelation::getName)
- .selectAs(XjrUser::getCredentialNumber,BaseStudentAssessmentStudentRelation::getStudentId)
- .eq(BaseStudentAssessmentStudentRelation::getBaseStudentAssessmentInspectionId, result.getBaseStudentAssessmentInspectionId())
- .eq(BaseStudentAssessmentStudentRelation::getClassId, result.getClassId())
- .leftJoin(XjrUser.class, XjrUser::getId, BaseStudentAssessmentStudentRelation::getUserId)
- .eq(BaseStudentAssessmentStudentRelation::getDeleteMark, DeleteMark.NODELETE.getCode())
- .eq(BaseStudentAssessmentStudentRelation::getEnabledMark, EnabledMark.ENABLED.getCode())
- ;
- // 获取学生信息
- List<BaseStudentAssessmentStudentRelation> baseStudentAssessmentStudentRelations = assessmentStudentRelationMapper.selectList(baseStudentAssessmentStudentRelationWrapper);
- result.setStudentList(baseStudentAssessmentStudentRelations);
- result.setStudentCount(baseStudentAssessmentStudentRelations.size());
- // 获取文件列表
- result.setFileInfos(fileService.list(Wrappers.<File>query().lambda().eq(File::getFolderId, result.getFileId())));
- return result;
- }
- @Override
- public ResponseEntity<byte[]> getQuantitativeAssessmentExcelByte(QuantitativeAssessmentExcelDto dto) {
- //导出的文件名,字节流
- String fileName = "StudentAssessmentInspection" + ExcelTypeEnum.XLSX.getValue();
- ByteArrayOutputStream bot = new ByteArrayOutputStream();
- //获取需要导出的子表
- List<Long> baseStudentAssessmentCategoryIdList = new ArrayList<>();
- baseStudentAssessmentCategoryIdList.add(1768178717588197377L);
- baseStudentAssessmentCategoryIdList.add(1768179375900987394L);
- baseStudentAssessmentCategoryIdList.add(1769927649167151105L);
- LambdaQueryWrapper<BaseStudentAssessmentCategory> baseStudentAssessmentCategoryLambdaQueryWrapper = new LambdaQueryWrapper<>();
- baseStudentAssessmentCategoryLambdaQueryWrapper
- .in(BaseStudentAssessmentCategory::getId, baseStudentAssessmentCategoryIdList);
- List<BaseStudentAssessmentCategory> baseStudentAssessmentCategorieList = categoryMapper.selectList(baseStudentAssessmentCategoryLambdaQueryWrapper);
- //导出子表
- if(!baseStudentAssessmentCategorieList.isEmpty()){
- //需要合并的列
- int[] mergeColumeIndex = {0, 1, 2, 3, 4};
- ExcelMergeUtil excelFillCellMergeStrategy = new ExcelMergeUtil(1, mergeColumeIndex);
- //开始处理写入
- try (ExcelWriter excelWriter = EasyExcel.write(bot, QuantitativeAssessmentSubTableExcelVo.class).registerWriteHandler(excelFillCellMergeStrategy).build()) {
- int no = 1;
- for (BaseStudentAssessmentCategory bsac : baseStudentAssessmentCategorieList) {
- dto.setBaseStudentAssessmentCategoryId(bsac.getId());
- //sheet名
- String sheetName = bsac.getName();
- WriteSheet writeSheet = EasyExcel.writerSheet(no++, sheetName ).build();
- //求所有的个人行为集合
- List<QuantitativeAssessmentSubTableExcelVo> quantitativeAssessmentSubTableExcelVoList = assessmentInspectionMapper.getQuantitativeAssessmentSubTableExcelVoList(dto);
- excelWriter.write(quantitativeAssessmentSubTableExcelVoList, writeSheet);
- }
- //TODO 班级量化考核统计表总
- //以班级为数据的基础进行数据的填充
- MPJLambdaWrapper<BaseClass> baseClassMPJLambdaWrapper = new MPJLambdaWrapper<>();
- baseClassMPJLambdaWrapper
- .selectAs(BaseClass::getTeacherId, CalssQuantitativeAssessmentPageVo::getHeadTeacherId)
- .selectAs(XjrUser::getUserName, CalssQuantitativeAssessmentPageVo::getOa)
- .selectAs(XjrUser::getName, CalssQuantitativeAssessmentPageVo::getHeadTeacherName)
- .selectAs(BaseClass::getId, CalssQuantitativeAssessmentPageVo::getClassId)
- .selectAs(BaseClass::getName, CalssQuantitativeAssessmentPageVo::getClassName)
- .selectAs(BaseClassMajorSet::getTotalStudent, CalssQuantitativeAssessmentPageVo::getStudentNum)
- .selectAs(BaseClass::getIsGraduate, CalssQuantitativeAssessmentPageVo::getClassStatus)
- .leftJoin(XjrUser.class, XjrUser::getId, BaseClass::getTeacherId)
- .leftJoin(BaseClassMajorSet.class, BaseClassMajorSet::getClassId, BaseClass::getId)
- .eq(dto.getGradeId() != null, BaseClass::getGradeId, dto.getGradeId())
- .eq(dto.getClassId() != null, BaseClass::getId, dto.getClassId())
- .eq(dto.getClassStatus() != null, BaseClass::getIsGraduate, dto.getClassStatus())
- .like(dto.getName() != null && !dto.getName().isEmpty(), XjrUser::getName, dto.getName());
- List<CalssQuantitativeAssessmentPageVo> resultList = baseClassMapper.selectJoinList(CalssQuantitativeAssessmentPageVo.class, baseClassMPJLambdaWrapper);
- //当前数据记录班级id
- List<Long> classIdList = new ArrayList<>();
- for(CalssQuantitativeAssessmentPageVo c: resultList){
- classIdList.add(Long.parseLong(c.getClassId()));
- }
- dto.setClassIdList(classIdList);
- if(dto.getStartTime() != null){
- // 获取上个月的最后一秒
- LocalDateTime lastMonthEnd = dto.getStartTime().minusMonths(1).with(TemporalAdjusters.lastDayOfMonth()).withHour(23).withMinute(59).withSecond(59);
- // 获取下个月的第一秒
- LocalDateTime nextMonthStart = dto.getStartTime().plusMonths(1).with(TemporalAdjusters.firstDayOfMonth()).withHour(0).withMinute(0).withSecond(0);
- dto.setStartTime(lastMonthEnd);
- dto.setEndTime(nextMonthStart);
- }
- if(!classIdList.isEmpty()){
- CalssQuantitativeAssessmentPageDto calssQuantitativeAssessmentPageDto = new CalssQuantitativeAssessmentPageDto();
- BeanUtils.copyProperties(dto, calssQuantitativeAssessmentPageDto);
- //学生个人行为
- dto.setBaseStudentAssessmentCategoryId(1782327704603373570L);
- Map<Long , QuantitativeAssessmentSingleScoreVo> individualBehaviorMap = getQuantitativeAssessmentSingleScoreMap(calssQuantitativeAssessmentPageDto);
- //常规管理
- dto.setBaseStudentAssessmentCategoryId(1782329720935329794L);
- Map<Long , QuantitativeAssessmentSingleScoreVo> conventionalManagementMap = getQuantitativeAssessmentSingleScoreMap(calssQuantitativeAssessmentPageDto);
- //获奖及荣誉奖彰
- dto.setBaseStudentAssessmentCategoryId(1787316203484131329L);
- Map<Long , QuantitativeAssessmentSingleScoreVo> awardsAndHonorableMap = getQuantitativeAssessmentSingleScoreMap(calssQuantitativeAssessmentPageDto);
- //准军事化考核
- dto.setBaseStudentAssessmentCategoryId(1868835208799236098L);
- Map<Long , QuantitativeAssessmentSingleScoreVo> paramilitaryMap = getQuantitativeAssessmentSingleScoreMap(calssQuantitativeAssessmentPageDto);
- //查询任课教师查询班级的数据
- TeaEvaluateClassDto evaluateClassDto = new TeaEvaluateClassDto();
- evaluateClassDto.setEvaluateType(EvaluateTypeEnum.TEACHER_EVALUATE_CLASS.getCode());
- evaluateClassDto.setYear(dto.getYear());
- LocalDate now = LocalDate.now();
- if(dto.getYear() == null){
- evaluateClassDto.setYear(now.getYear());
- }
- evaluateClassDto.setMonth(dto.getMonth());
- if(dto.getMonth() == null){
- evaluateClassDto.setMonth(now.getMonthValue());
- }
- List<TeaEvaluateClassListVo> teaEvaluateClassList = evaluateResultMapper.getTeaEvaluateClassList(evaluateClassDto);
- Map<Long, List<TeaEvaluateClassListVo>> classEvaluateMap = teaEvaluateClassList.stream().collect(Collectors.groupingBy(TeaEvaluateClassListVo::getEvaluatedObjectId));
- String jskhFormula = quotaFormulaRuleService.getFormulaByQuota("teacher_assessment");
- //将结果写进对应的班级里
- for(CalssQuantitativeAssessmentPageVo c: resultList){
- if(c.getOa() == null){
- c.setOa(" ");
- }
- if(c.getHeadTeacherName() == null){
- c.setHeadTeacherName(" ");
- }
- Long classId = Long.parseLong(c.getClassId());
- c.setStuPersonalBehaviorSubScore(" ");
- c.setStuPersonalBehaviorScore(" ");
- if(individualBehaviorMap.get(classId) != null){
- Double sumScore = individualBehaviorMap.get(classId).getSumScore();
- if(sumScore != null){
- c.setStuPersonalBehaviorSubScore(sumScore.toString());
- double v = (100 + sumScore) / 100 * 25;
- c.setStuPersonalBehaviorScore(v + "");
- }
- }
- c.setClassConventionalManageSubScore(" ");
- c.setClassConventionalManageScore(" ");
- if(conventionalManagementMap.get(classId) != null){
- Double sumScore = conventionalManagementMap.get(classId).getSumScore();
- if(sumScore != null){
- c.setClassConventionalManageSubScore(sumScore.toString());
- double v = (100 + sumScore) / 100 * 25;
- c.setClassConventionalManageScore(v + "");
- }
- }
- c.setHonorSumScore(" ");
- c.setHonorScore(" ");
- if(awardsAndHonorableMap.get(classId) != null){
- Double sumScore = awardsAndHonorableMap.get(classId).getSumScore();
- if(sumScore != null){
- c.setHonorSumScore(sumScore.toString());
- if(sumScore < 10){
- c.setHonorScore(sumScore.toString());
- }else {
- c.setHonorScore("10");
- }
- }
- }
- if(c.getClassStatus() != null){
- if(c.getClassStatus() == 1){
- c.setClassStatusCn("在读");
- }
- if(c.getClassStatus() == 2){
- c.setClassStatusCn("毕业");
- }
- }
- c.setTeacherAssessComprehensiveIndex(" ");
- c.setTeacherAssessScore(" ");
- if(classEvaluateMap.containsKey(classId)){
- Map<Long, List<TeaEvaluateClassListVo>> evaluateCategoryMap = classEvaluateMap.get(classId).stream().collect(Collectors.groupingBy(TeaEvaluateClassListVo::getId));
- int size = evaluateCategoryMap.size();
- List<Double> evaluateSocreList = new ArrayList<>();//存每个项的平均分
- for (Long id : evaluateCategoryMap.keySet()) {
- List<TeaEvaluateClassListVo> evaluateList = evaluateCategoryMap.get(id);
- int allSorce = evaluateList.stream().mapToInt(TeaEvaluateClassListVo::getScore).sum();
- double avgScore = BigDecimal.valueOf(allSorce).divide(BigDecimal.valueOf(resultList.size()),2, RoundingMode.HALF_UP).doubleValue();
- evaluateSocreList.add(avgScore);
- }
- double sum = evaluateSocreList.stream().mapToDouble(Double::doubleValue).sum();
- double jskhValue = BigDecimal.valueOf(sum).divide(BigDecimal.valueOf(size),2, RoundingMode.HALF_UP).doubleValue();
- c.setTeacherAssessComprehensiveIndex(jskhValue + "");
- String replacedExpression = jskhFormula.replace("JSKH", Double.toString(jskhValue));
- ScriptEngineManager manager = new ScriptEngineManager();
- ScriptEngine engine = manager.getEngineByName("JavaScript");
- try {
- double result = ((Number) engine.eval(replacedExpression)).doubleValue();
- c.setTeacherAssessScore(result + " ");
- } catch (ScriptException e) {
- Log.error(e.getMessage(), e);
- }
- }
- if(paramilitaryMap.get(classId) != null){
- Double sumScore = awardsAndHonorableMap.get(classId).getSumScore();
- if(sumScore != null){
- c.setMilitaryManageScore(sumScore.toString());
- if(sumScore < 10){
- c.setHonorScore(sumScore.toString());
- }else {
- c.setHonorScore("10");
- }
- double v = (100 + sumScore) / 100 * 25;
- c.setMilitaryManageComprehensiveIndex(v + "");
- }
- }
- c.setAssessMoney(" ");
- c.setAssessSumScore(" ");
- }
- }
- //sheet名
- String sheetName = "量化考核总表";
- WriteSheet writeSheet = EasyExcel.writerSheet(0, sheetName ).build();
- //
- excelWriter.write(resultList, writeSheet);
- }
- /*for (BaseStudentAssessmentCategory bsac : baseStudentAssessmentCategorieList) {
- dto.setBaseStudentAssessmentCategoryId(bsac.getId());
- //sheet名
- String sheetName = bsac.getName();
- //求所有的个人行为集合
- List<QuantitativeAssessmentSubTableExcelVo> quantitativeAssessmentSubTableExcelVoList = assessmentInspectionMapper.getQuantitativeAssessmentSubTableExcelVoList(dto);
- //需要合并的列
- int[] mergeColumeIndex = {0, 1, 2, 3, 4};
- //写字节流
- ExcelMergeUtil excelFillCellMergeStrategy = new ExcelMergeUtil(1, mergeColumeIndex);
- EasyExcel.write(bot, QuantitativeAssessmentSubTableExcelVo.class)
- .registerWriteHandler(excelFillCellMergeStrategy)
- .sheet(sheetName)
- .doWrite(quantitativeAssessmentSubTableExcelVoList);
- }*/
- }
- return RT.fileStream(bot.toByteArray(), fileName);
- }
- @Override
- public IPage<CalssQuantitativeAssessmentPageVo> getCalssQuantitativeAssessmentPage(Page<CalssQuantitativeAssessmentPageDto> page, CalssQuantitativeAssessmentPageDto dto) {
- //以班级为数据的基础进行数据的填充
- MPJLambdaWrapper<BaseClass> baseClassMPJLambdaWrapper = new MPJLambdaWrapper<>();
- baseClassMPJLambdaWrapper
- .selectAs(BaseClass::getTeacherId, CalssQuantitativeAssessmentPageVo::getHeadTeacherId)
- .selectAs(XjrUser::getUserName, CalssQuantitativeAssessmentPageVo::getOa)
- .selectAs(XjrUser::getName, CalssQuantitativeAssessmentPageVo::getHeadTeacherName)
- .selectAs(BaseClass::getId, CalssQuantitativeAssessmentPageVo::getClassId)
- .selectAs(BaseClass::getName, CalssQuantitativeAssessmentPageVo::getClassName)
- .selectAs(BaseClassMajorSet::getTotalStudent, CalssQuantitativeAssessmentPageVo::getStudentNum)
- .selectAs(BaseClass::getIsGraduate, CalssQuantitativeAssessmentPageVo::getClassStatus)
- .leftJoin(XjrUser.class, XjrUser::getId, BaseClass::getTeacherId)
- .leftJoin(BaseClassMajorSet.class, BaseClassMajorSet::getClassId, BaseClass::getId)
- .eq(dto.getGradeId() != null, BaseClass::getGradeId, dto.getGradeId())
- .eq(dto.getClassId() != null, BaseClass::getId, dto.getClassId())
- .eq(dto.getClassStatus() != null, BaseClass::getIsGraduate, dto.getClassStatus())
- .like(dto.getName() != null && !dto.getName().isEmpty(), XjrUser::getName, dto.getName());
- IPage<CalssQuantitativeAssessmentPageVo> resultPage = baseClassMapper.selectJoinPage(page, CalssQuantitativeAssessmentPageVo.class, baseClassMPJLambdaWrapper);
- //当前数据记录班级id
- List<Long> classIdList = new ArrayList<>();
- for(CalssQuantitativeAssessmentPageVo c: resultPage.getRecords()){
- classIdList.add(Long.parseLong(c.getClassId()));
- }
- dto.setClassIdList(classIdList);
- if(dto.getStartTime() != null){
- // 获取上个月的最后一秒
- LocalDateTime lastMonthEnd = dto.getStartTime().minusMonths(1).with(TemporalAdjusters.lastDayOfMonth()).withHour(23).withMinute(59).withSecond(59);
- // 获取下个月的第一秒
- LocalDateTime nextMonthStart = dto.getStartTime().plusMonths(1).with(TemporalAdjusters.firstDayOfMonth()).withHour(0).withMinute(0).withSecond(0);
- dto.setStartTime(lastMonthEnd);
- dto.setEndTime(nextMonthStart);
- }
- if(!classIdList.isEmpty()){
- //学生个人行为
- dto.setCategoryCode("student_behavior");
- Map<Long , QuantitativeAssessmentSingleScoreVo> individualBehaviorMap = getQuantitativeAssessmentSingleScoreMap(dto);
- //常规管理
- dto.setCategoryCode("convention_manage");
- Map<Long , QuantitativeAssessmentSingleScoreVo> conventionalManagementMap = getQuantitativeAssessmentSingleScoreMap(dto);
- //获奖及荣誉奖彰
- dto.setCategoryCode("awards_and_honors");
- Map<Long , QuantitativeAssessmentSingleScoreVo> awardsAndHonorableMap = getQuantitativeAssessmentSingleScoreMap(dto);
- //准军事化考核
- dto.setCategoryCode("militarize_manage");
- Map<Long , QuantitativeAssessmentSingleScoreVo> paramilitaryMap = getQuantitativeAssessmentSingleScoreMap(dto);
- //班级文化建设
- dto.setCategoryCode("classe_culture");
- Map<Long , QuantitativeAssessmentSingleScoreVo> classCultureMap = getQuantitativeAssessmentSingleScoreMap(dto);
- //查询任课教师查询班级的数据
- TeaEvaluateClassDto evaluateClassDto = new TeaEvaluateClassDto();
- evaluateClassDto.setEvaluateType(EvaluateTypeEnum.TEACHER_EVALUATE_CLASS.getCode());
- evaluateClassDto.setYear(dto.getYear());
- LocalDate now = LocalDate.now();
- if(dto.getYear() == null){
- evaluateClassDto.setYear(now.getYear());
- }
- evaluateClassDto.setMonth(dto.getMonth());
- if(dto.getMonth() == null){
- evaluateClassDto.setMonth(now.getMonthValue());
- }
- List<TeaEvaluateClassListVo> teaEvaluateClassList = evaluateResultMapper.getTeaEvaluateClassList(evaluateClassDto);
- Map<Long, List<TeaEvaluateClassListVo>> classEvaluateMap = teaEvaluateClassList.stream().collect(Collectors.groupingBy(TeaEvaluateClassListVo::getEvaluatedObjectId));
- String jskhFormula = quotaFormulaRuleService.getFormulaByQuota("teacher_assessment");
- String gfjyFormula = quotaFormulaRuleService.getFormulaByQuota("militarize_manage");
- String xsgrFormula = quotaFormulaRuleService.getFormulaByQuota("student_behavior");
- String cgglFormula = quotaFormulaRuleService.getFormulaByQuota("convention_manage");
- String huojiangFormula = quotaFormulaRuleService.getFormulaByQuota("awards_and_honors");
- String classCultureFormula = quotaFormulaRuleService.getFormulaByQuota("classe_culture");
- //将结果写进对应的班级里
- for(CalssQuantitativeAssessmentPageVo c: resultPage.getRecords()){
- Long classId = Long.parseLong(c.getClassId());
- //学生个人行为
- if(individualBehaviorMap.get(classId) != null && individualBehaviorMap.get(classId) != null){
- Double sumScore = individualBehaviorMap.get(classId).getSumScore();
- c.setStuPersonalBehaviorSubScore(sumScore==null?"":sumScore.toString());
- String replacedExpression = xsgrFormula.replace("xsgrKouFen", Double.toString(sumScore));
- ScriptEngineManager manager = new ScriptEngineManager();
- ScriptEngine engine = manager.getEngineByName("JavaScript");
- try {
- double result = ((Number) engine.eval(replacedExpression)).doubleValue();
- c.setStuPersonalBehaviorScore(BigDecimal.valueOf(result).setScale(2, RoundingMode.HALF_UP).doubleValue() + "");
- } catch (ScriptException e) {
- Log.error(e.getMessage(), e);
- }
- }
- //常规管理
- if(conventionalManagementMap.get(classId) != null && conventionalManagementMap.get(classId) != null){
- Double sumScore = conventionalManagementMap.get(classId).getSumScore();
- if(sumScore != null){
- String scoreStr = sumScore.toString();
- c.setClassConventionalManageSubScore(scoreStr);
- String replacedExpression = cgglFormula.replace("cgglKouFen", Double.toString(sumScore));
- ScriptEngineManager manager = new ScriptEngineManager();
- ScriptEngine engine = manager.getEngineByName("JavaScript");
- try {
- double result = ((Number) engine.eval(replacedExpression)).doubleValue();
- c.setClassConventionalManageScore(BigDecimal.valueOf(result).setScale(2, RoundingMode.HALF_UP).doubleValue() + "");
- } catch (ScriptException e) {
- Log.error(e.getMessage(), e);
- }
- }
- }
- //获奖和荣誉
- if(awardsAndHonorableMap.get(classId) != null && awardsAndHonorableMap.get(classId) != null){
- Double sumScore = awardsAndHonorableMap.get(classId).getSumScore();
- if(sumScore != null){
- c.setHonorSumScore(sumScore.toString());
- String replacedExpression = huojiangFormula.replace("HuoJiang", Double.toString(sumScore));
- ScriptEngineManager manager = new ScriptEngineManager();
- ScriptEngine engine = manager.getEngineByName("JavaScript");
- try {
- double result = ((Number) engine.eval(replacedExpression)).doubleValue();
- c.setHonorScore(BigDecimal.valueOf(result).setScale(2, RoundingMode.HALF_UP).doubleValue() + "");
- } catch (ScriptException e) {
- Log.error(e.getMessage(), e);
- }
- }
- }
- //军事化
- if(paramilitaryMap.get(classId) != null && paramilitaryMap.get(classId) != null){
- Double sumScore = paramilitaryMap.get(classId).getSumScore();
- if(sumScore != null){
- c.setMilitaryManageComprehensiveIndex(sumScore.toString());
- //此项得分
- String replacedExpression = gfjyFormula.replace("gfjyKouFen", Double.toString(sumScore));
- ScriptEngineManager manager = new ScriptEngineManager();
- ScriptEngine engine = manager.getEngineByName("JavaScript");
- try {
- double result = ((Number) engine.eval(replacedExpression)).doubleValue();
- c.setMilitaryManageScore(BigDecimal.valueOf(result).setScale(2, RoundingMode.HALF_UP).doubleValue() + "");
- } catch (ScriptException e) {
- Log.error(e.getMessage(), e);
- }
- }
- }
- //任课教师考核
- if(classEvaluateMap.containsKey(classId)){
- Map<Long, List<TeaEvaluateClassListVo>> evaluateCategoryMap = classEvaluateMap.get(classId).stream().collect(Collectors.groupingBy(TeaEvaluateClassListVo::getId));
- int size = evaluateCategoryMap.size();
- List<Double> evaluateSocreList = new ArrayList<>();//存每个项的平均分
- for (Long id : evaluateCategoryMap.keySet()) {
- List<TeaEvaluateClassListVo> resultList = evaluateCategoryMap.get(id);
- int allSorce = resultList.stream().mapToInt(TeaEvaluateClassListVo::getScore).sum();
- double avgScore = BigDecimal.valueOf(allSorce).divide(BigDecimal.valueOf(resultList.size()), 2, RoundingMode.HALF_UP).doubleValue();
- evaluateSocreList.add(avgScore);
- }
- double sum = evaluateSocreList.stream().mapToDouble(Double::doubleValue).sum();
- double jskhValue = BigDecimal.valueOf(sum).divide(BigDecimal.valueOf(size),2, RoundingMode.HALF_UP).doubleValue();
- c.setTeacherAssessComprehensiveIndex(jskhValue + "");
- String replacedExpression = jskhFormula.replace("JSKH", Double.toString(jskhValue));
- ScriptEngineManager manager = new ScriptEngineManager();
- ScriptEngine engine = manager.getEngineByName("JavaScript");
- try {
- double result = ((Number) engine.eval(replacedExpression)).doubleValue();
- c.setTeacherAssessScore(BigDecimal.valueOf(result).setScale(2, RoundingMode.HALF_UP).doubleValue() + "");
- } catch (ScriptException e) {
- Log.error(e.getMessage(), e);
- }
- }
- //班级文化建设
- if(classCultureMap.containsKey(classId) && classCultureMap.get(classId) != null){
- Double sumScore = classCultureMap.get(classId).getSumScore();
- if(sumScore != null){
- c.setClassCultureScore(sumScore.toString());
- String replacedExpression = classCultureFormula.replace("bjwhKouFen", Double.toString(sumScore));
- ScriptEngineManager manager = new ScriptEngineManager();
- ScriptEngine engine = manager.getEngineByName("JavaScript");
- try {
- double result = ((Number) engine.eval(replacedExpression)).doubleValue();
- c.setClassCultureIndex(BigDecimal.valueOf(result).setScale(2, RoundingMode.HALF_UP).doubleValue() + "");
- } catch (ScriptException e) {
- Log.error(e.getMessage(), e);
- }
- }
- }
- }
- }
- return resultPage;
- }
- private Map<Long, QuantitativeAssessmentSingleScoreVo> getQuantitativeAssessmentSingleScoreMap(CalssQuantitativeAssessmentPageDto dto){
- List<QuantitativeAssessmentSingleScoreVo> individualBehaviorList = assessmentInspectionMapper.getAssessmentInspectionByClassIdList(new QuantitativeAssessmentSingleScoreDto(){{
- setClassIdList(dto.getClassIdList());
- setBaseStudentAssessmentCategoryId(dto.getBaseStudentAssessmentCategoryId());
- setCategoryCode(dto.getCategoryCode());
- if(dto.getBaseSemesterId() != null){
- setBaseSemesterId(dto.getBaseSemesterId());
- }
- if(dto.getStartTime() != null){
- setStartTime(dto.getStartTime());
- }
- if(dto.getEndTime() != null){
- setStartTime(dto.getEndTime());
- }
- setYear(dto.getYear());
- setMonth(dto.getMonth());
- }});
- Map<Long , QuantitativeAssessmentSingleScoreVo> individualBehaviorMap = new HashMap<>();
- for (QuantitativeAssessmentSingleScoreVo q : individualBehaviorList) {
- if(q.getClassId() != null){
- individualBehaviorMap.put(q.getClassId(), q);
- }
- }
- return individualBehaviorMap;
- }
- @Override
- @Transactional
- public Boolean dataHandle(Long id) {
- //获取考核记录
- BaseStudentAssessmentInspection baseStudentAssessmentInspection = this.getById(id);
- if(baseStudentAssessmentInspection != null){
- double totalScore = 0d;
- if(StrUtil.isNotEmpty(baseStudentAssessmentInspection.getClassIds())) {
- //同步数据到考核关联班级表
- String[] classIds = baseStudentAssessmentInspection.getClassIds().split(",");
- for (String classId : classIds) {
- assessmentClassRelationMapper.insert(new BaseStudentAssessmentClassRelation() {{
- setClassId(Long.parseLong(classId));
- setBaseStudentAssessmentInspectionId(baseStudentAssessmentInspection.getId());
- QueryWrapper<BaseStudentAssessmentClassRelation> queryWrapperSortcode = new QueryWrapper<>();
- queryWrapperSortcode.select("IFNULL(MAX(sort_code),0) as sortCode");
- BaseStudentAssessmentClassRelation b = assessmentClassRelationMapper.selectOne(queryWrapperSortcode);
- setSortCode(b.getSortCode() + 1);
- }});
- }
- totalScore = baseStudentAssessmentInspection.getScore();
- }
- //同步数据到考核关联学生表
- if(StrUtil.isNotEmpty(baseStudentAssessmentInspection.getPersonalStudentUserIds())){
- String[] studentIds = baseStudentAssessmentInspection.getPersonalStudentUserIds().split(",");
- for (String studentId: studentIds) {
- assessmentStudentRelationMapper.insert(new BaseStudentAssessmentStudentRelation(){{
- MPJLambdaWrapper<BaseStudentSchoolRoll> baseStudentSchoolRollMPJLambdaWrapper = new MPJLambdaWrapper<>();
- baseStudentSchoolRollMPJLambdaWrapper
- .select(BaseStudentSchoolRoll::getId)
- .select(BaseStudentSchoolRoll.class, x -> VoToColumnUtil.fieldsToColumns(BaseStudentSchoolRoll.class).contains(x.getProperty()))
- .eq(BaseStudentSchoolRoll::getUserId, studentId);
- BaseStudentSchoolRoll baseStudentSchoolRoll = baseStudentSchoolRollMapper.selectOne(baseStudentSchoolRollMPJLambdaWrapper);
- if(baseStudentSchoolRoll != null){
- setClassId(baseStudentSchoolRoll.getClassId());
- }
- setUserId(Long.parseLong(studentId));
- setBaseStudentAssessmentInspectionId(baseStudentAssessmentInspection.getId());
- QueryWrapper<BaseStudentAssessmentStudentRelation> queryWrapperSortcode = new QueryWrapper<>();
- queryWrapperSortcode.select("IFNULL(MAX(sort_code),0) as sortCode");
- BaseStudentAssessmentStudentRelation b = assessmentStudentRelationMapper.selectOne(queryWrapperSortcode);
- setSortCode(b.getSortCode() + 1);
- setScore(baseStudentAssessmentInspection.getScore());
- }});
- }
- totalScore = studentIds.length * baseStudentAssessmentInspection.getScore();
- }
- baseStudentAssessmentInspection.setTotalScore(totalScore);
- this.updateById(baseStudentAssessmentInspection);
- }
- return true;
- }
- @Override
- public Boolean noticeTeacher(Long id) {
- try {
- BaseStudentAssessmentInspection inspection = this.getById(id);
- String classIds = inspection.getClassIds();
- BaseClass baseClass = baseClassMapper.selectById(classIds);
- User user = userService.getById(baseClass.getTeacherId());
- String wechatTemplate = "Xb21V8au0Ur9puQs4hIDJTl8LP6GTgVOHQtOeie1Oco";
- WeChatSendMessageDto weChatSendMessageDto = new WeChatSendMessageDto();
- weChatSendMessageDto.setUserId(user.getOpenId());
- weChatSendMessageDto.setTemplateId(wechatTemplate);
- weChatSendMessageDto.setMsgId(IdUtil.getSnowflakeNextId() + "");
- JSONObject data = new JSONObject();
- String thing4 = "";
- String thing1 = "";
- if(AssessmentTypeEnum.CLASS.getCode().equals(inspection.getAssessmentType())){
- data.put("const3", new JSONObject() {{
- put("value", AssessmentTypeEnum.CLASS.getValue());
- }});
- BaseStudentAssessmentProject project = projectMapper.selectById(inspection.getBaseStudentAssessmentProjectId());
- thing4 = project.getName();
- }else if(AssessmentTypeEnum.PERSONAL.getCode().equals(inspection.getAssessmentType())){
- data.put("const3", new JSONObject() {{
- put("value", AssessmentTypeEnum.PERSONAL.getValue());
- }});
- String[] studentUsers = inspection.getPersonalStudentUserIds().split(",");
- List<String> studentIds = new ArrayList<>();
- for (String studentUser : studentUsers) {
- studentIds.add(studentUser.trim());
- }
- List<User> userList = userService.listByIds(studentIds);
- for (int i = 0; i < userList.size(); i ++){
- if(i > 0){
- thing1 += ",";
- }
- thing1 += userList.get(i).getName();
- }
- if(thing1.length() > 20){
- thing1 = thing1.substring(0, 16) + "...";
- }
- BaseStudentAssessmentCategory category = categoryMapper.selectById(inspection.getBaseStudentAssessmentCategoryId());
- thing4 = category.getName();
- }
- //得分
- JSONObject thing4Json = new JSONObject();
- thing4Json.put("value", thing4);
- data.put("thing4", thing4Json);
- //学生
- JSONObject thing1Json = new JSONObject();
- thing1Json.put("value", thing1);
- data.put("thing1", thing1Json);
- //得分
- data.put("character_string5", new JSONObject() {{
- put("value", inspection.getScore());
- }});
- //考核时间
- SimpleDateFormat sdf = new SimpleDateFormat("yyyy年MM月dd日");
- data.put("time2", new JSONObject() {{
- put("value", sdf.format(inspection.getAssessmentDate()));
- }});
- weChatSendMessageDto.setContent(data);
- weChatService.sendTemplateMessage(weChatSendMessageDto);
- return true;
- }catch (Exception e){
- Log.error(e.getMessage(), e);
- return false;
- }
- }
- @Override
- public byte[] getExcelByte(CalssQuantitativeAssessmentPageDto dto) throws IOException {
- IPage<CalssQuantitativeAssessmentPageVo> page = this.getCalssQuantitativeAssessmentPage(new Page<>(1, 10000), dto);
- Workbook workbook = new XSSFWorkbook();
- // 创建一个工作表(sheet)
- String sheetName = "数据";
- Sheet sheet = workbook.createSheet(sheetName);
- createFirstTitle(workbook, sheet);
- createSecondTitle(workbook, sheet, 6);
- Font font = workbook.createFont();
- font.setBold(false);// 设置为粗体
- font.setFontName("宋体");
- CellStyle cellStyle = workbook.createCellStyle();
- cellStyle.setFont(font); // 将字体应用到样式
- cellStyle.setVerticalAlignment(VerticalAlignment.CENTER);
- int sortCode = 1;
- for (CalssQuantitativeAssessmentPageVo pageVo : page.getRecords()) {
- Row dataRow = sheet.createRow(sortCode + 1);
- int columnNumber = 0;
- Cell cell = dataRow.createCell(columnNumber);
- cell.setCellValue(sortCode + "");
- cell.setCellStyle(cellStyle);
- columnNumber ++;
- cell = dataRow.createCell(columnNumber);
- cell.setCellValue(pageVo.getOa());
- cell.setCellStyle(cellStyle);
- columnNumber ++;
- cell = dataRow.createCell(columnNumber);
- cell.setCellValue(pageVo.getClassName());
- cell.setCellStyle(cellStyle);
- columnNumber ++;
- cell = dataRow.createCell(columnNumber);
- cell.setCellValue(pageVo.getHeadTeacherName());
- cell.setCellStyle(cellStyle);
- columnNumber ++;
- cell = dataRow.createCell(columnNumber);
- cell.setCellValue(pageVo.getStudentNum().toString());
- cell.setCellStyle(cellStyle);
- columnNumber ++;
- cell = dataRow.createCell(columnNumber);
- cell.setCellValue(pageVo.getClassStatusCn());
- cell.setCellStyle(cellStyle);
- columnNumber ++;
- cell = dataRow.createCell(columnNumber);
- cell.setCellValue(pageVo.getStuPersonalBehaviorSubScore());
- cell.setCellStyle(cellStyle);
- columnNumber ++;
- cell = dataRow.createCell(columnNumber);
- cell.setCellValue(pageVo.getStuPersonalBehaviorScore());
- cell.setCellStyle(cellStyle);
- columnNumber ++;
- cell = dataRow.createCell(columnNumber);
- cell.setCellValue(pageVo.getClassConventionalManageSubScore());
- cell.setCellStyle(cellStyle);
- columnNumber ++;
- cell = dataRow.createCell(columnNumber);
- cell.setCellValue(pageVo.getClassConventionalManageScore());
- cell.setCellStyle(cellStyle);
- columnNumber ++;
- cell = dataRow.createCell(columnNumber);
- cell.setCellValue(pageVo.getHonorSumScore());
- cell.setCellStyle(cellStyle);
- columnNumber ++;
- cell = dataRow.createCell(columnNumber);
- cell.setCellValue(pageVo.getHonorScore());
- cell.setCellStyle(cellStyle);
- columnNumber ++;
- cell = dataRow.createCell(columnNumber);
- cell.setCellValue(pageVo.getMilitaryManageComprehensiveIndex());
- cell.setCellStyle(cellStyle);
- columnNumber ++;
- cell = dataRow.createCell(columnNumber);
- cell.setCellValue(pageVo.getMilitaryManageScore());
- cell.setCellStyle(cellStyle);
- columnNumber ++;
- cell = dataRow.createCell(columnNumber);
- cell.setCellValue(pageVo.getTeacherAssessComprehensiveIndex());
- cell.setCellStyle(cellStyle);
- columnNumber ++;
- cell = dataRow.createCell(columnNumber);
- cell.setCellValue(pageVo.getTeacherAssessScore());
- cell.setCellStyle(cellStyle);
- columnNumber ++;
- cell = dataRow.createCell(columnNumber);
- cell.setCellValue(pageVo.getClassCultureScore());
- cell.setCellStyle(cellStyle);
- columnNumber ++;
- cell = dataRow.createCell(columnNumber);
- cell.setCellValue(pageVo.getClassCultureIndex());
- cell.setCellStyle(cellStyle);
- columnNumber ++;
- cell = dataRow.createCell(columnNumber);
- cell.setCellValue(pageVo.getAssessSumScore());
- cell.setCellStyle(cellStyle);
- columnNumber ++;
- cell = dataRow.createCell(columnNumber);
- cell.setCellValue(pageVo.getAssessMoney());
- cell.setCellStyle(cellStyle);
- sortCode ++;
- }
- ByteArrayOutputStream bot = new ByteArrayOutputStream();
- workbook.write(bot);
- return bot.toByteArray();
- }
- void createFirstTitle(Workbook workbook, Sheet sheet) {
- int rowNumber = 0;
- Font font = workbook.createFont();
- font.setFontName("宋体");
- //font.setColor(IndexedColors.RED.getIndex()); // 设置字体颜色为红色
- font.setFontHeightInPoints((short)12);
- CellStyle cellStyle = workbook.createCellStyle();
- cellStyle.setFont(font); // 将字体应用到样式
- cellStyle.setVerticalAlignment(VerticalAlignment.CENTER);
- cellStyle.setAlignment(HorizontalAlignment.CENTER);
- Row row = sheet.createRow(rowNumber);
- //3、处理表头
- int columnNumber = 0;
- Cell cell = row.createCell(columnNumber);
- cell.setCellValue("序号");
- cell.setCellStyle(cellStyle);
- sheet.addMergedRegion(new CellRangeAddress(0, 1, columnNumber, columnNumber));
- columnNumber ++;
- cell = row.createCell(columnNumber);
- cell.setCellValue("工号");
- cell.setCellStyle(cellStyle);
- sheet.addMergedRegion(new CellRangeAddress(0, 1, columnNumber, columnNumber));
- columnNumber ++;
- cell = row.createCell(columnNumber);
- cell.setCellValue("班级");
- cell.setCellStyle(cellStyle);
- sheet.addMergedRegion(new CellRangeAddress(0, 1, columnNumber, columnNumber));
- columnNumber ++;
- cell = row.createCell(columnNumber);
- cell.setCellValue("班主任");
- cell.setCellStyle(cellStyle);
- sheet.addMergedRegion(new CellRangeAddress(0, 1, columnNumber, columnNumber));
- columnNumber ++;
- cell = row.createCell(columnNumber);
- cell.setCellValue("人数");
- cell.setCellStyle(cellStyle);
- sheet.addMergedRegion(new CellRangeAddress(0, 1, columnNumber, columnNumber));
- columnNumber ++;
- cell = row.createCell(columnNumber);
- cell.setCellValue("状态");
- cell.setCellStyle(cellStyle);
- sheet.addMergedRegion(new CellRangeAddress(0, 1, columnNumber, columnNumber));
- columnNumber ++;
- cell = row.createCell(columnNumber);
- cell.setCellValue("学生个人行为");
- cell.setCellStyle(cellStyle);
- sheet.addMergedRegion(new CellRangeAddress(0, 0, columnNumber, columnNumber + 1));
- columnNumber ++;
- columnNumber ++;
- cell = row.createCell(columnNumber);
- cell.setCellValue("常规管理");
- cell.setCellStyle(cellStyle);
- sheet.addMergedRegion(new CellRangeAddress(0, 0, columnNumber, columnNumber + 1));
- columnNumber ++;
- columnNumber ++;
- cell = row.createCell(columnNumber);
- cell.setCellValue("获奖及荣誉奖章");
- cell.setCellStyle(cellStyle);
- sheet.addMergedRegion(new CellRangeAddress(0, 0, columnNumber, columnNumber + 1));
- columnNumber ++;
- columnNumber ++;
- cell = row.createCell(columnNumber);
- cell.setCellValue("准军事化管理效果");
- cell.setCellStyle(cellStyle);
- sheet.addMergedRegion(new CellRangeAddress(0, 0, columnNumber, columnNumber + 1));
- columnNumber ++;
- columnNumber ++;
- cell = row.createCell(columnNumber);
- cell.setCellValue("任课教师考核");
- cell.setCellStyle(cellStyle);
- sheet.addMergedRegion(new CellRangeAddress(0, 0, columnNumber, columnNumber + 1));
- columnNumber ++;
- columnNumber ++;
- cell = row.createCell(columnNumber);
- cell.setCellValue("班级文化建设");
- cell.setCellStyle(cellStyle);
- sheet.addMergedRegion(new CellRangeAddress(0, 0, columnNumber, columnNumber + 1));
- columnNumber ++;
- columnNumber ++;
- cell = row.createCell(columnNumber);
- cell.setCellValue("月份总得分");
- cell.setCellStyle(cellStyle);
- sheet.addMergedRegion(new CellRangeAddress(0, 1, columnNumber, columnNumber));
- columnNumber ++;
- cell = row.createCell(columnNumber);
- cell.setCellValue("月考核金额");
- cell.setCellStyle(cellStyle);
- sheet.addMergedRegion(new CellRangeAddress(0, 1, columnNumber, columnNumber));
- }
- void createSecondTitle(Workbook workbook, Sheet sheet, int startColunm) {
- int rowNumber = 1;
- Font font = workbook.createFont();
- font.setFontName("宋体");
- font.setFontHeightInPoints((short)12);
- CellStyle cellStyle = workbook.createCellStyle();
- cellStyle.setFont(font); // 将字体应用到样式
- cellStyle.setVerticalAlignment(VerticalAlignment.CENTER);
- cellStyle.setAlignment(HorizontalAlignment.CENTER);
- Row row = sheet.createRow(rowNumber);
- int columnNumber = startColunm;
- Cell cell = row.createCell(columnNumber);
- cell.setCellValue("扣分");
- cell.setCellStyle(cellStyle);
- columnNumber ++;
- cell = row.createCell(columnNumber);
- cell.setCellValue("此项得分");
- cell.setCellStyle(cellStyle);
- columnNumber ++;
- cell = row.createCell(columnNumber);
- cell.setCellValue("扣分");
- cell.setCellStyle(cellStyle);
- columnNumber ++;
- cell = row.createCell(columnNumber);
- cell.setCellValue("此项得分");
- cell.setCellStyle(cellStyle);
- columnNumber ++;
- cell = row.createCell(columnNumber);
- cell.setCellValue("汇总");
- cell.setCellStyle(cellStyle);
- columnNumber ++;
- cell = row.createCell(columnNumber);
- cell.setCellValue("此项得分");
- cell.setCellStyle(cellStyle);
- columnNumber ++;
- cell = row.createCell(columnNumber);
- cell.setCellValue("指数");
- cell.setCellStyle(cellStyle);
- columnNumber ++;
- cell = row.createCell(columnNumber);
- cell.setCellValue("此项得分");
- cell.setCellStyle(cellStyle);
- columnNumber ++;
- cell = row.createCell(columnNumber);
- cell.setCellValue("指数");
- cell.setCellStyle(cellStyle);
- columnNumber ++;
- cell = row.createCell(columnNumber);
- cell.setCellValue("此项得分");
- cell.setCellStyle(cellStyle);
- cell = row.createCell(columnNumber);
- cell.setCellValue("扣分");
- cell.setCellStyle(cellStyle);
- columnNumber ++;
- cell = row.createCell(columnNumber);
- cell.setCellValue("此项得分");
- cell.setCellStyle(cellStyle);
- }
- }
|