From 5191576b9e0214c9dae5b8374761a17cdf5ac940 Mon Sep 17 00:00:00 2001 From: yangjun <1173114630@qq.com> Date: Tue, 2 Jul 2024 21:59:38 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BF=AE=E6=94=B9=E5=A4=9A=E7=BA=BF=E7=A8=8B?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../impl/BlTeacherAnswerServiceImpl.java | 4153 ++++++++++------- .../officetemplates/exp1/teacher-tjfx.docx | Bin 293392 -> 293512 bytes .../src/main/resources/application-prod.yml | 2 +- 3 files changed, 2349 insertions(+), 1806 deletions(-) diff --git a/jeecg-boot/jeecg-module-demo/src/main/java/org/jeecg/modules/demo/blTeacherAnswer/service/impl/BlTeacherAnswerServiceImpl.java b/jeecg-boot/jeecg-module-demo/src/main/java/org/jeecg/modules/demo/blTeacherAnswer/service/impl/BlTeacherAnswerServiceImpl.java index b2b0e86..49ff999 100644 --- a/jeecg-boot/jeecg-module-demo/src/main/java/org/jeecg/modules/demo/blTeacherAnswer/service/impl/BlTeacherAnswerServiceImpl.java +++ b/jeecg-boot/jeecg-module-demo/src/main/java/org/jeecg/modules/demo/blTeacherAnswer/service/impl/BlTeacherAnswerServiceImpl.java @@ -1,5 +1,6 @@ package org.jeecg.modules.demo.blTeacherAnswer.service.impl; +import cn.hutool.core.thread.ThreadUtil; import com.alibaba.fastjson.JSONObject; import com.google.common.collect.Lists; import com.google.common.collect.Maps; @@ -22,6 +23,9 @@ import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import java.util.List; import java.util.Map; import java.util.Random; +import java.util.concurrent.Callable; +import java.util.concurrent.CompletionService; +import java.util.concurrent.Executors; /** * @Description: 教室问卷信息 @@ -40,8 +44,7 @@ public class BlTeacherAnswerServiceImpl extends ServiceImpl result = Maps.newHashMap(); result.put("schoolName", blTeacherMain.getSchoolName());//学校名称 result.put("pgdw", blTeacherMain.getPgdw());//评估单位 @@ -62,70 +64,1016 @@ public class BlTeacherAnswerServiceImpl extends ServiceImpl threadService = ThreadUtil.newCompletionService(Executors.newFixedThreadPool(100)); + List> calls = com.google.common.collect.Lists.newArrayList(); + calls.add(() -> { + res1(blTeacherMain, result); + return true; + }); + calls.add(() -> { + res2(blTeacherMain, result); + return true; + }); - List nvzbList = baseMapper.getSelectNvzb(blTeacherMain); - for(BlTeacherAnswer par:nvzbList){ - if(StringUtils.equals(par.getSex(),"男")){ - result.put("nan", par.getCnt());//男占比 - result.put("nan_zb", par.getNum());//女占比 - }else if(StringUtils.equals(par.getSex(),"女")){ - result.put("nv", par.getCnt());//女 - result.put("nv_zb", par.getNum());//女占比 + calls.add(() -> { + res3(blTeacherMain, result); + return true; + }); + + calls.add(() -> { + res4(blTeacherMain, result); + return true; + }); + + calls.add(() -> { + res5(blTeacherMain, result); + return true; + }); + + calls.add(() -> { + tj1(blTeacherMain, result); + return true; + }); + + calls.add(() -> { + tj2(blTeacherMain, result); + return true; + }); + + calls.add(() -> { + tab1(wo, blTeacherMain); + return true; + }); + + calls.add(() -> { + tab2(wo, blTeacherMain); + return true; + }); + + calls.add(() -> { + tab3(wo, blTeacherMain); + return true; + }); + + calls.add(() -> { + tj3(blTeacherMain, result); + return true; + }); + + calls.add(() -> { + tj4(blTeacherMain, result); + return true; + }); + + calls.add(() -> { + tab4(wo, blTeacherMain); + return true; + }); + + calls.add(() -> { + tab5(wo, blTeacherMain); + return true; + }); + + calls.add(() -> { + tab6(wo, blTeacherMain); + return true; + }); + + calls.add(() -> { + tj5(blTeacherMain, result); + return true; + }); + + calls.add(() -> { + tj6(blTeacherMain, result); + return true; + }); + + calls.add(() -> { + tab7(wo, blTeacherMain); + return true; + }); + + calls.add(() -> { + tab8(wo, blTeacherMain); + return true; + }); + + calls.add(() -> { + tab9(wo, blTeacherMain); + return true; + }); + + calls.add(() -> { + res6(blTeacherMain, result); + return true; + }); + + calls.add(() -> { + tj7(blTeacherMain, result); + return true; + }); + + calls.add(() -> { + tj8(blTeacherMain, result); + return true; + }); + + calls.add(() -> { + tj9(blTeacherMain, result); + return true; + }); + + calls.add(() -> { + tab10(wo, blTeacherMain); + return true; + }); + + calls.add(() -> { + res7(blTeacherMain, result); + return true; + }); + + calls.add(() -> { + tj10(blTeacherMain, result); + return true; + }); + + calls.add(() -> { + tj11(blTeacherMain, result); + return true; + }); + + calls.add(() -> { + tj12(blTeacherMain, result); + return true; + }); + + calls.add(() -> { + tab11(wo, blTeacherMain); + return true; + }); + + calls.add(() -> { + tj13(blTeacherMain, result); + return true; + }); + + calls.add(() -> { + tj14(blTeacherMain, result); + return true; + }); + + calls.add(() -> { + tj15(blTeacherMain, result); + return true; + }); + + calls.add(() -> { + tab12(wo, blTeacherMain); + return true; + }); + + calls.add(() -> { + tj16(blTeacherMain, result); + return true; + }); + + calls.add(() -> { + tj17(blTeacherMain, result); + return true; + }); + + calls.add(() -> { + tab13(wo, blTeacherMain); + return true; + }); + + calls.add(() -> { + tab14(wo, blTeacherMain); + return true; + }); + + calls.add(() -> { + tab15(wo, blTeacherMain); + return true; + }); + + calls.add(() -> { + tj18(blTeacherMain, result); + return true; + }); + + calls.add(() -> { + tj19(blTeacherMain, result); + return true; + }); + + calls.add(() -> { + tj20(blTeacherMain, result); + return true; + }); + + calls.add(() -> { + tab16(wo, blTeacherMain); + return true; + }); + + calls.add(() -> { + res8(blTeacherMain, result); + return true; + }); + + calls.add(() -> { + tj21(blTeacherMain, result); + return true; + }); + + calls.add(() -> { + tj22(blTeacherMain, result); + return true; + }); + + calls.add(() -> { + tj23(blTeacherMain, result); + return true; + }); + + calls.add(() -> { + tab17(wo, blTeacherMain); + return true; + }); + + calls.add(() -> { + tj24(blTeacherMain, result); + return true; + }); + + calls.add(() -> { + tj25(blTeacherMain, result); + return true; + }); + + calls.add(() -> { + tab18(wo, blTeacherMain); + return true; + }); + + calls.add(() -> { + tab19(wo, blTeacherMain); + return true; + }); + + calls.add(() -> { + tab20(wo, blTeacherMain); + return true; + }); + + calls.add(() -> { + tj26(blTeacherMain, result); + return true; + }); + + calls.add(() -> { + tj27(blTeacherMain, result); + return true; + }); + + calls.add(() -> { + tab21(wo, blTeacherMain); + return true; + }); + + calls.add(() -> { + tab22(wo, blTeacherMain); + return true; + }); + + calls.add(() -> { + tab23(wo, blTeacherMain); + return true; + }); + + calls.add(() -> { + tj28(blTeacherMain, result); + return true; + }); + + calls.add(() -> { + tj29(blTeacherMain, result); + return true; + }); + + calls.add(() -> { + tab24(wo, blTeacherMain); + return true; + }); + + calls.add(() -> { + tab25(wo, blTeacherMain); + return true; + }); + + calls.add(() -> { + tab26(wo, blTeacherMain); + return true; + }); + + calls.add(() -> { + tj30(blTeacherMain, result); + return true; + }); + + calls.add(() -> { + tj31(blTeacherMain, result); + return true; + }); + + calls.add(() -> { + tab27(wo, blTeacherMain); + return true; + }); + + calls.add(() -> { + tab28(wo, blTeacherMain); + return true; + }); + + calls.add(() -> { + tab29(wo, blTeacherMain); + return true; + }); + + calls.add(() -> { + tj32(blTeacherMain, result); + return true; + }); + + calls.add(() -> { + tj33(blTeacherMain, result); + return true; + }); + + calls.add(() -> { + tab30(wo, blTeacherMain); + return true; + }); + + calls.add(() -> { + tab31(wo, blTeacherMain); + return true; + }); + + calls.add(() -> { + tab32(wo, blTeacherMain); + return true; + }); + + calls.add(() -> { + tj34(blTeacherMain, result); + return true; + }); + + calls.add(() -> { + tj35(blTeacherMain, result); + return true; + }); + + calls.add(() -> { + tj36(blTeacherMain, result); + + return true; + }); + + calls.add(() -> { + tab33(wo, blTeacherMain); + + return true; + }); + + calls.forEach(threadService::submit); + calls.forEach(fn -> { + try { + threadService.take(); + } catch (Exception e) { + log.error(e.getMessage(),e); } - } + }); + log.info("多线程主线程结束执行"); - //学历层次结构 - List xlccjgList = baseMapper.getSelectXlccjg(blTeacherMain); - for (BlTeacherAnswer par:xlccjgList){ - if(StringUtils.equals(par.getEducationLevel(),"博士研究生")){ - result.put("xlccjg1", par.getCnt());//博士研究生 - result.put("xlccjg1_zb", par.getNum());//占比 - }else if(StringUtils.equals(par.getEducationLevel(),"硕士研究生")){ - result.put("xlccjg2", par.getCnt());//硕士研究生 - result.put("xlccjg2_zb", par.getNum());//占比 - }else if(StringUtils.equals(par.getEducationLevel(),"本科及以下")){ - result.put("xlccjg3", par.getCnt());//本科及以下 - result.put("xlccjg3_zb", par.getNum());//占比 - } - } + WordOperator wo2 = WordOperator.twoReplaceWord(wo); + wo2.replaceTextPlus(result); + return wo2; + } - //职称结构 - List zcjgList = baseMapper.getSelectZcjg(blTeacherMain); - for (BlTeacherAnswer par:zcjgList){ - if(StringUtils.equals(par.getPosition(),"正高级")){ - result.put("zcjg1", par.getCnt());//数量 - result.put("zcjg1_zb", par.getNum());//占比 - }else if(StringUtils.equals(par.getPosition(),"副高级")){ - result.put("zcjg2", par.getCnt());//数量 - result.put("zcjg2_zb", par.getNum());//占比 - }else if(StringUtils.equals(par.getPosition(),"中级")){ - result.put("zcjg3", par.getCnt());//数量 - result.put("zcjg3_zb", par.getNum());//占比 - }else if(StringUtils.equals(par.getPosition(),"初级")){ - result.put("zcjg4", par.getCnt());//数量 - result.put("zcjg4_zb", par.getNum());//占比 - } - } + private void tj27(BlTeacherInfo blTeacherMain, Map result) { + //教师对本校教师培训各方面的满意度 + BlTeacherAnswer jsfz2Ldt = baseMapper.getSelectjsfz2(blTeacherMain); + result.put("jsfzbfb1", jsfz2Ldt.getTj1()); + result.put("jsfzbfb2", jsfz2Ldt.getTj2()); + result.put("jsfzbfb3", jsfz2Ldt.getTj3()); + result.put("jsfzbfb4", jsfz2Ldt.getTj4()); + Double jsfz2Data[] = new Double[4]; + jsfz2Data[0] = Double.parseDouble(jsfz2Ldt.getTj1()); + jsfz2Data[1] = Double.parseDouble(jsfz2Ldt.getTj2()); + jsfz2Data[2] = Double.parseDouble(jsfz2Ldt.getTj3()); + jsfz2Data[3] = Double.parseDouble(jsfz2Ldt.getTj4()); + //雷达图 + String jsfz2optionsLdt = "option = { radar: { radius: '60%',indicator: [\n" + + " { name: '学校重视教师培训与职业发展,相关制度完善', max: 100 },\n" + + " { name: '教师发展举措得力,老教授“传帮带”作用充分发挥', max: 100 },\n" + + " { name: '教师培训内容丰富,对教学和职业发展有帮助', max: 100 },\n" + + " { name: '国际交流与培训活动', max: 100 },\n" + + " ],name: {textStyle: {color: 'black',fontSize: 20,lineHeight: 24,},\n" + + " formatter: function (value) {let list = value.split(\"\");let result = \"\"; for (let i = 1; i <= list.length; i++) {if (!(i % 17) && list[i] != undefined) { result += list[i - 1] + '\\n';} else {result += list[i - 1];} }return result;},},},\n" + + " series: [{type: 'radar',data: [{value: \n" +JSONObject.toJSONString(jsfz2Data)+ " ,label:{show: true,position: 'outside',fontSize:20},},]}]}"; + String jsfz27 = WebDriverUtil.getImgByte(jsfz2optionsLdt); + log.info("================================"); + log.info(jsfz27); + log.info("================================"); + result.put("jsfz27", jsfz27); + } - //岗位类型结构 - List gwlxjgList = baseMapper.getSelectGwlxjg(blTeacherMain); - for (BlTeacherAnswer par:gwlxjgList){ - if(StringUtils.equals(par.getPositiontype(),"教学科研型")){ - result.put("gwlxjg1", par.getCnt());//数量 - result.put("gwlxjg1_zb", par.getNum());//占比 - }else if(StringUtils.equals(par.getPositiontype(),"教学型")){ - result.put("gwlxjg2", par.getCnt());//数量 - result.put("gwlxjg2_zb", par.getNum());//占比 - }else if(StringUtils.equals(par.getPositiontype(),"科研型")){ - result.put("gwlxjg3", par.getCnt());//数量 - result.put("gwlxjg3_zb", par.getNum());//占比 - }else if(StringUtils.equals(par.getPositiontype(),"辅导员")){ - result.put("gwlxjg4", par.getCnt());//数量 - result.put("gwlxjg4_zb", par.getNum());//占比 - } + private void tab33(WordOperator wo, BlTeacherInfo blTeacherMain) { + //各学院教师对学校整体的满意度 + List xxztmyd5List = baseMapper.getSelectxxztmyd5(blTeacherMain); + List> xxztmyd5list = Lists.newArrayList(); + for(BlTeacherAnswer par:xxztmyd5List){ + List list = Lists.newArrayList(); + list.add(par.getLsname()); + list.add(par.getTj1()); + xxztmyd5list.add(list); } + wo.insert2Table(33, 1, true, xxztmyd5list); + } + + private void tab32(WordOperator wo, BlTeacherInfo blTeacherMain) { + //各学院教师对本校各项资源条件的满意度 + List zytjpj15List = baseMapper.getSelectzytjpj5(blTeacherMain); + List> zytjpj123list = Lists.newArrayList(); + for(BlTeacherAnswer par:zytjpj15List){ + List list = Lists.newArrayList(); + list.add(par.getLsname()); + list.add(par.getTj1()); + list.add(par.getTj2()); + list.add(par.getTj3()); + list.add(par.getTj4()); + list.add(par.getTj5()); + zytjpj123list.add(list); + } + wo.insert2Table(32, 1, true, zytjpj123list); + } + + private void tab31(WordOperator wo, BlTeacherInfo blTeacherMain) { + //不同职称教师对本校教学评价各方面工作的评价 + List zytjpj14List = baseMapper.getSelectzytjpj4(blTeacherMain); + List> zytjpj122list = Lists.newArrayList(); + for(BlTeacherAnswer par:zytjpj14List){ + List list = Lists.newArrayList(); + list.add(par.getLsname()); + list.add(par.getTj1()); + list.add(par.getTj2()); + list.add(par.getTj3()); + list.add(par.getTj4()); + zytjpj122list.add(list); + } + wo.insert2Table(31, 1, true, zytjpj122list); + } + + private void tab30(WordOperator wo, BlTeacherInfo blTeacherMain) { + //不同岗位类型教师对本校教学评价各方面工作的评价 + List zytjpj13List = baseMapper.getSelectzytjpj3(blTeacherMain); + List> zytjpj121list = Lists.newArrayList(); + for(BlTeacherAnswer par:zytjpj13List){ + List list = Lists.newArrayList(); + list.add(par.getLsname()); + list.add(par.getTj1()); + list.add(par.getTj2()); + list.add(par.getTj3()); + list.add(par.getTj4()); + zytjpj121list.add(list); + } + wo.insert2Table(30, 1, true, zytjpj121list); + } + + private void tab29(WordOperator wo, BlTeacherInfo blTeacherMain) { + //各学院教师对本校教学评价各方面工作的评价 + List jxzypj5List = baseMapper.getSelectjxpjgz5(blTeacherMain); + List> zytjpj23list = Lists.newArrayList(); + for(BlTeacherAnswer par:jxzypj5List){ + List list = Lists.newArrayList(); + list.add(par.getLsname()); + list.add(par.getTj1()); + list.add(par.getTj2()); + list.add(par.getTj3()); + list.add(par.getTj4()); + list.add(par.getTj5()); + list.add(par.getTj6()); + zytjpj23list.add(list); + } + wo.insert2Table(29, 1, true, zytjpj23list); + } + + private void tab28(WordOperator wo, BlTeacherInfo blTeacherMain) { + //不同职称教师对本校教学评价各方面工作的评价 + List zytjpj4List = baseMapper.getSelectjxpjgz4(blTeacherMain); + List> zytjpj22list = Lists.newArrayList(); + for(BlTeacherAnswer par:zytjpj4List){ + List list = Lists.newArrayList(); + list.add(par.getLsname()); + list.add(par.getTj1()); + list.add(par.getTj2()); + list.add(par.getTj3()); + list.add(par.getTj4()); + zytjpj22list.add(list); + } + wo.insert2Table(28, 1, true, zytjpj22list); + } + + private void tab27(WordOperator wo, BlTeacherInfo blTeacherMain) { + //不同岗位类型教师对本校教学评价各方面工作的评价 + List zytjpj3List = baseMapper.getSelectjxpjgz3(blTeacherMain); + List> zytjpj21list = Lists.newArrayList(); + for(BlTeacherAnswer par:zytjpj3List){ + List list = Lists.newArrayList(); + list.add(par.getLsname()); + list.add(par.getTj1()); + list.add(par.getTj2()); + list.add(par.getTj3()); + list.add(par.getTj4()); + zytjpj21list.add(list); + } + wo.insert2Table(27, 1, true, zytjpj21list); + } + + private void tab26(WordOperator wo, BlTeacherInfo blTeacherMain) { + //各学院教师对工作氛围各方面的评价 + List zyfwyzc5List = baseMapper.getSelectzyfwyzc5(blTeacherMain); + List> zyfwyzc23list = Lists.newArrayList(); + for(BlTeacherAnswer par:zyfwyzc5List){ + List list = Lists.newArrayList(); + list.add(par.getLsname()); + list.add(par.getTj1()); + list.add(par.getTj2()); + list.add(par.getTj3()); + list.add(par.getTj4()); + list.add(par.getTj5()); + list.add(par.getTj6()); + zyfwyzc23list.add(list); + } + wo.insert2Table(26, 1, true, zyfwyzc23list); + } + + private void tab25(WordOperator wo, BlTeacherInfo blTeacherMain) { + //不同职称教师对工作氛围各方面的评价 + List zyfwyzc4List = baseMapper.getSelectzyfwyzc4(blTeacherMain); + List> zyfwyzc22list = Lists.newArrayList(); + for(BlTeacherAnswer par:zyfwyzc4List){ + List list = Lists.newArrayList(); + list.add(par.getLsname()); + list.add(par.getTj1()); + list.add(par.getTj2()); + list.add(par.getTj3()); + list.add(par.getTj4()); + zyfwyzc22list.add(list); + } + wo.insert2Table(25, 1, true, zyfwyzc22list); + } + + private void tab24(WordOperator wo, BlTeacherInfo blTeacherMain) { + //不同岗位类型教师对工作氛围各方面的评价 + List zyfwyzc3List = baseMapper.getSelectzyfwyzc3(blTeacherMain); + List> zyfwyzc21list = Lists.newArrayList(); + for(BlTeacherAnswer par:zyfwyzc3List){ + List list = Lists.newArrayList(); + list.add(par.getLsname()); + list.add(par.getTj1()); + list.add(par.getTj2()); + list.add(par.getTj3()); + list.add(par.getTj4()); + zyfwyzc21list.add(list); + } + wo.insert2Table(24, 1, true, zyfwyzc21list); + } + + private void tab23(WordOperator wo, BlTeacherInfo blTeacherMain) { + //各学院教师对本校教师培训各方面的满意度 + List jsfz5List = baseMapper.getSelectjsfz5(blTeacherMain); + List> jsfz23list = Lists.newArrayList(); + for(BlTeacherAnswer par:jsfz5List){ + List list = Lists.newArrayList(); + list.add(par.getLsname()); + list.add(par.getTj1()); + list.add(par.getTj2()); + list.add(par.getTj3()); + list.add(par.getTj4()); + jsfz23list.add(list); + } + wo.insert2Table(23, 1, true, jsfz23list); + } + + private void tab22(WordOperator wo, BlTeacherInfo blTeacherMain) { + //不同职称教师对本校教师培训各方面的满意度 + List jsfz4List = baseMapper.getSelectjsfz4(blTeacherMain); + List> jsfz22list = Lists.newArrayList(); + for(BlTeacherAnswer par:jsfz4List){ + List list = Lists.newArrayList(); + list.add(par.getLsname()); + list.add(par.getTj1()); + list.add(par.getTj2()); + list.add(par.getTj3()); + list.add(par.getTj4()); + jsfz22list.add(list); + } + wo.insert2Table(22, 1, true, jsfz22list); + } + + private void tab21(WordOperator wo, BlTeacherInfo blTeacherMain) { + //不同岗位类型教师对本校教师培训各方面的满意度 + List jsfz3List = baseMapper.getSelectjsfz3(blTeacherMain); + List> jsfz21list = Lists.newArrayList(); + for(BlTeacherAnswer par:jsfz3List){ + List list = Lists.newArrayList(); + list.add(par.getLsname()); + list.add(par.getTj1()); + list.add(par.getTj2()); + list.add(par.getTj3()); + list.add(par.getTj4()); + jsfz21list.add(list); + } + wo.insert2Table(21, 1, true, jsfz21list); + } + + private void tab20(WordOperator wo, BlTeacherInfo blTeacherMain) { + //各学院教师评价学生学习主动性 + List xsxxzdx7List = baseMapper.getSelectsshd7(blTeacherMain); + List> list20 = Lists.newArrayList(); + for(BlTeacherAnswer par:xsxxzdx7List){ + List list = Lists.newArrayList(); + list.add(par.getLsname()); + list.add(par.getTj1()); + list.add(par.getTj2()); + list.add(par.getTj3()); + list.add(par.getTj4()); + list20.add(list); + } + wo.insert2Table(20, 1, true, list20); + } + + private void tab19(WordOperator wo, BlTeacherInfo blTeacherMain) { + //不同职称教师评价学生学习主动性 + List xsxxzdx6List = baseMapper.getSelectsshd6(blTeacherMain); + List> nineteenList = Lists.newArrayList(); + for(BlTeacherAnswer par:xsxxzdx6List){ + List list = Lists.newArrayList(); + list.add(par.getLsname()); + list.add(par.getTj1()); + list.add(par.getTj2()); + list.add(par.getTj3()); + list.add(par.getTj4()); + nineteenList.add(list); + } + wo.insert2Table(19, 1, true, nineteenList); + } + + private void tab18(WordOperator wo, BlTeacherInfo blTeacherMain) { + //不同岗位类型教师评价学生学习主动性 + List xsxxzdx5List = baseMapper.getSelectsshd5(blTeacherMain); + List> eighteenList = Lists.newArrayList(); + for(BlTeacherAnswer par:xsxxzdx5List){ + List list = Lists.newArrayList(); + list.add(par.getLsname()); + list.add(par.getTj1()); + list.add(par.getTj2()); + eighteenList.add(list); + } + wo.insert2Table(18, 1, true, eighteenList); + } + + private void tab17(WordOperator wo, BlTeacherInfo blTeacherMain) { + //各学院教师评价“成果导向”理念的落实情况 + List sshd4List = baseMapper.getSelectsshd4(blTeacherMain); + List> seventeenList = Lists.newArrayList(); + for(BlTeacherAnswer par:sshd4List){ + List list = Lists.newArrayList(); + list.add(par.getLsname()); + list.add(par.getTj1()); + list.add(par.getTj2()); + list.add(par.getTj3()); + list.add(par.getTj4()); + list.add(par.getTj5()); + list.add(par.getTj6()); + seventeenList.add(list); + } + wo.insert2Table(17, 1, true, seventeenList); + } + + private void res8(BlTeacherInfo blTeacherMain, Map result) { + //6.师生互动 + BlTeacherAnswer sshdbfb = baseMapper.getSelectsshdbfb(blTeacherMain); + result.put("sshdbfb1", sshdbfb.getTj1()); + result.put("sshdbfb1", sshdbfb.getTj2()); + result.put("sshdbfb1", sshdbfb.getTj3()); + result.put("sshdbfb1", sshdbfb.getTj4()); + result.put("sshdbfb1", sshdbfb.getTj5()); + result.put("sshdbfb1", sshdbfb.getTj6()); + } + + private void tab16(WordOperator wo, BlTeacherInfo blTeacherMain) { + //各学院教师评价“成果导向”理念的落实情况 + List cgdx4List = baseMapper.getSelectcgdx4(blTeacherMain); + List> sixteenList = Lists.newArrayList(); + for(BlTeacherAnswer par:cgdx4List){ + List list = Lists.newArrayList(); + list.add(par.getLsname()); + list.add(par.getTj1()); + list.add(par.getTj2()); + list.add(par.getTj3()); + list.add(par.getTj4()); + list.add(par.getTj5()); + list.add(par.getTj6()); + sixteenList.add(list); + } + wo.insert2Table(16, 1, true, sixteenList); + } + + private void tab15(WordOperator wo, BlTeacherInfo blTeacherMain) { + //各学院教师在课程“两性一度”的实施情况 3-17 + List kclxydgxyjsList = baseMapper.getSelectkclxydgxyjs(blTeacherMain); + List> fifteenList = Lists.newArrayList(); + for(BlTeacherAnswer par:kclxydgxyjsList){ + List list = Lists.newArrayList(); + list.add(par.getLsname()); + list.add(par.getTj1()); + list.add(par.getTj2()); + list.add(par.getTj3()); + list.add(par.getTj4()); + list.add(par.getTj5()); + list.add(par.getTj6()); + fifteenList.add(list); + } + wo.insert2Table(15, 1, true, fifteenList); + } + + private void tab14(WordOperator wo, BlTeacherInfo blTeacherMain) { + //不同职称教师在课程“两性一度”的实施情况 + List kclxydbtzcList = baseMapper.getSelectkclxydbtzc(blTeacherMain); + List> fourteenList = Lists.newArrayList(); + for(BlTeacherAnswer par:kclxydbtzcList){ + List list = Lists.newArrayList(); + list.add(par.getLsname2()); + list.add(par.getLsname()); + list.add(par.getTj1()); + list.add(par.getTj2()); + list.add(par.getTj3()); + list.add(par.getTj4()); + fourteenList.add(list); + } + wo.insert2Table(14, 1, true, fourteenList); + } + + private void tab13(WordOperator wo, BlTeacherInfo blTeacherMain) { + //不同岗位类型教师在课程“两性一度”的实施情况 + List kclxydbtgwlxList = baseMapper.getSelectkclxydbtgwlx(blTeacherMain); + List> thirteenList = Lists.newArrayList(); + for(BlTeacherAnswer par:kclxydbtgwlxList){ + List list = Lists.newArrayList(); + list.add(par.getLsname2()); + list.add(par.getLsname()); + list.add(par.getTj1()); + list.add(par.getTj2()); + thirteenList.add(list); + } + wo.insert2Table(13, 1, true, thirteenList); + } + + private void tab12(WordOperator wo, BlTeacherInfo blTeacherMain) { + //各学院教师课程教学融入思政元素的方式 + List gxyjskcjxrrszysList = baseMapper.getSelectGxyjskcjxrrszys(blTeacherMain); + List> twelveList = Lists.newArrayList(); + for(BlTeacherAnswer par:gxyjskcjxrrszysList){ + List list = Lists.newArrayList(); + list.add(par.getLsname()); + list.add(par.getTj1()); + list.add(par.getTj2()); + list.add(par.getTj3()); + list.add(par.getTj4()); + list.add(par.getTj5()); + twelveList.add(list); + } + wo.insert2Table(12, 1, true, twelveList); + } + + private void tab11(WordOperator wo, BlTeacherInfo blTeacherMain) { + //图表 3-8各学院教师在各类教学任务上的占比 + List gxyjszgljxrwsdzbList = baseMapper.getSelectGxyjszgljxrwsdzb(blTeacherMain); + List> elevenList = Lists.newArrayList(); + for(BlTeacherAnswer par:gxyjszgljxrwsdzbList){ + List list = Lists.newArrayList(); + list.add(par.getLsname()); + list.add(par.getTj1()); + list.add(par.getTj2()); + list.add(par.getTj3()); + list.add(par.getTj4()); + list.add(par.getTj5()); + elevenList.add(list); + } + wo.insert2Table(11, 1, true, elevenList); + } + + private void res7(BlTeacherInfo blTeacherMain, Map result) { + //教学任务分配情况百分比 + BlTeacherAnswer jxrwfpqkbfb = baseMapper.getSelectJxrwfpqkbfb2(blTeacherMain); + if(jxrwfpqkbfb!=null){ + result.put("jxrwfpqkbfb1", jxrwfpqkbfb.getTj1()); + result.put("jxrwfpqkbfb2", jxrwfpqkbfb.getTj2()); + result.put("jxrwfpqkbfb3", jxrwfpqkbfb.getTj3()); + result.put("jxrwfpqkbfb4", jxrwfpqkbfb.getTj4()); + } + } + + private void tab10(WordOperator wo, BlTeacherInfo blTeacherMain) { + //各学院教师在各项工作上的平均时间投入 + List gxyjspjsjtrList = baseMapper.getSelectGxyjspjsjtr(blTeacherMain); + List> tenList = Lists.newArrayList(); + for(BlTeacherAnswer par:gxyjspjsjtrList){ + List list = Lists.newArrayList(); + list.add(par.getLsname()); + list.add(par.getTj1()); + list.add(par.getTj2()); + list.add(par.getTj3()); + list.add(par.getTj4()); + list.add(par.getTj5()); + list.add(par.getTj6()); + tenList.add(list); + } + wo.insert2Table(10, 1, true, tenList); + } + + private void res6(BlTeacherInfo blTeacherMain, Map result) { + //教学投入-时间投入 + BlTeacherAnswer jxsjtr = baseMapper.getSelectJxsjtr(blTeacherMain); + if(jxsjtr!=null){ + String jxsjtrTj1 = jxsjtr.getTj1(); + String jxsjtrTj2 = jxsjtr.getTj2(); + String jxsjtrTj3 = jxsjtr.getTj3(); + result.put("jxsjtrTj1", jxsjtrTj1); + result.put("jxsjtrTj2", jxsjtrTj2); + result.put("jxsjtrTj3", jxsjtrTj3); + } + } + + private void tab9(WordOperator wo, BlTeacherInfo blTeacherMain) { + //各学院教师对教学能力的评价 + List gxyjsdjxnlpjList = baseMapper.getSelectGxyjsdjxnlpj(blTeacherMain); + List> nightList = Lists.newArrayList(); + for(BlTeacherAnswer par:gxyjsdjxnlpjList){ + List list = Lists.newArrayList(); + list.add(par.getLsname()); + list.add(par.getTj1()); + list.add(par.getTj2()); + list.add(par.getTj3()); + list.add(par.getTj4()); + list.add(par.getTj5()); + nightList.add(list); + } + wo.insert2Table(9, 1, true, nightList); + } + + private void tab8(WordOperator wo, BlTeacherInfo blTeacherMain) { + //不同职称教师对教学能力的评价 + List btzcjsdjxnlpjList = baseMapper.getSelectBtzcjsdjxnlpj(blTeacherMain); + List> eightList = Lists.newArrayList(); + for(BlTeacherAnswer par:btzcjsdjxnlpjList){ + List list = Lists.newArrayList(); + list.add(par.getLsname()); + list.add(par.getTj1()); + list.add(par.getTj2()); + list.add(par.getTj3()); + list.add(par.getTj4()); + eightList.add(list); + } + wo.insert2Table(8, 1, true, eightList); + } + + private void tab7(WordOperator wo, BlTeacherInfo blTeacherMain) { + //不同岗位类型教师对教学能力的评价 + List btgwlxjsdjxnlpjList = baseMapper.getSelectBtgwlxjsdjxnlpj(blTeacherMain); + List> sevenList = Lists.newArrayList(); + for(BlTeacherAnswer par:btgwlxjsdjxnlpjList){ + List list = Lists.newArrayList(); + list.add(par.getLsname()); + list.add(par.getTj1()); + list.add(par.getTj2()); + sevenList.add(list); + } + wo.insert2Table(7, 1, true, sevenList); + } + + private void tab6(WordOperator wo, BlTeacherInfo blTeacherMain) { + //各学院教师基本行为互评 + List gxyjsjbxwhpList = baseMapper.getSelectGxyjsjbxwhp(blTeacherMain); + List> sixList = Lists.newArrayList(); + for(BlTeacherAnswer par:gxyjsjbxwhpList){ + List list = Lists.newArrayList(); + list.add(par.getLsname()); + list.add(par.getTj1()); + list.add(par.getTj2()); + list.add(par.getTj3()); + list.add(par.getTj4()); + list.add(par.getTj5()); + list.add(par.getTj6()); + sixList.add(list); + } + wo.insert2Table(6, 1, true, sixList); + } + + private void tab5(WordOperator wo, BlTeacherInfo blTeacherMain) { + //不同职称教师基本行为互评 + List btzcjsjbxwhpList = baseMapper.getSelectBtxzcjsjbxwhp(blTeacherMain); + List> fiveList = Lists.newArrayList(); + for(BlTeacherAnswer par:btzcjsjbxwhpList){ + List list = Lists.newArrayList(); + list.add(par.getLsname()); + list.add(par.getTj1()); + list.add(par.getTj2()); + list.add(par.getTj3()); + list.add(par.getTj4()); + fiveList.add(list); + } + wo.insert2Table(5, 1, true, fiveList); + } + + private void tab4(WordOperator wo, BlTeacherInfo blTeacherMain) { + //不同岗位类型教师基本行为互评 + List btgwlxjsjbxwhpList = baseMapper.getSelectBtgwlxjsjbxwhp(blTeacherMain); + List> fourList = Lists.newArrayList(); + for(BlTeacherAnswer par:btgwlxjsjbxwhpList){ + List list = Lists.newArrayList(); + list.add(par.getLsname()); + list.add(par.getTj1()); + list.add(par.getTj2()); + list.add(par.getTj3()); + list.add(par.getTj4()); + fourList.add(list); + } + wo.insert2Table(4, 1, true, fourList); + } + + private void tab3(WordOperator wo, BlTeacherInfo blTeacherMain) { + //各学院教师的师德师风互评 + List gxyjsSdsfList = baseMapper.getSelectGxyjsSdsf(blTeacherMain); + List> threeList = Lists.newArrayList(); + for(BlTeacherAnswer par:gxyjsSdsfList){ + List list = Lists.newArrayList(); + list.add(par.getLsname()); + list.add(par.getTj1()); + list.add(par.getTj2()); + list.add(par.getTj3()); + threeList.add(list); + } + wo.insert2Table(3, 1, true, threeList); + } + + private void tab2(WordOperator wo, BlTeacherInfo blTeacherMain) { + //不同职称教师的师德师风互评 + List btzcSdsfList = baseMapper.getSelectBtzcSdsf(blTeacherMain); + List> twoList = Lists.newArrayList(); + for(BlTeacherAnswer par:btzcSdsfList){ + List list = Lists.newArrayList(); + list.add(par.getLsname()); + list.add(par.getTj1()); + list.add(par.getTj2()); + list.add(par.getTj3()); + list.add(par.getTj4()); + twoList.add(list); + } + wo.insert2Table(2, 1, true, twoList); + } + + private void tab1(WordOperator wo, BlTeacherInfo blTeacherMain) { + //不同岗位类型教师的师德师风互评 + List btlxSdsfList = baseMapper.getSelectBtlxSdsf(blTeacherMain); + List> oneList = Lists.newArrayList(); + for(BlTeacherAnswer par:btlxSdsfList){ + List list = Lists.newArrayList(); + list.add(par.getLsname()); + list.add(par.getTj1()); + list.add(par.getTj2()); + list.add(par.getTj3()); + list.add(par.getTj4()); + oneList.add(list); + } + wo.insert2Table(1, 1, true, oneList); + } + + private void res5(BlTeacherInfo blTeacherMain, Map result) { //学院结构 List xyjgList = baseMapper.getSelectXyjg(blTeacherMain); for (BlTeacherAnswer par:xyjgList){ @@ -185,1057 +1133,610 @@ public class BlTeacherAnswerServiceImpl extends ServiceImpl sdsfhpzztList = baseMapper.getSelectSdsfhpzzt(blTeacherMain); - Integer sdsfhpzztFcfh[] = new Integer[sdsfhpzztList.size()];//非常满意 - Integer sdsfhpzztBjfh[] = new Integer[sdsfhpzztList.size()];//比较符合 - Integer sdsfhpzztYb[] = new Integer[sdsfhpzztList.size()];//一般 - String strName[] = new String[sdsfhpzztList.size()]; - for(int i=0;i result) { + //岗位类型结构 + List gwlxjgList = baseMapper.getSelectGwlxjg(blTeacherMain); + for (BlTeacherAnswer par:gwlxjgList){ + if(StringUtils.equals(par.getPositiontype(),"教学科研型")){ + result.put("gwlxjg1", par.getCnt());//数量 + result.put("gwlxjg1_zb", par.getNum());//占比 + }else if(StringUtils.equals(par.getPositiontype(),"教学型")){ + result.put("gwlxjg2", par.getCnt());//数量 + result.put("gwlxjg2_zb", par.getNum());//占比 + }else if(StringUtils.equals(par.getPositiontype(),"科研型")){ + result.put("gwlxjg3", par.getCnt());//数量 + result.put("gwlxjg3_zb", par.getNum());//占比 + }else if(StringUtils.equals(par.getPositiontype(),"辅导员")){ + result.put("gwlxjg4", par.getCnt());//数量 + result.put("gwlxjg4_zb", par.getNum());//占比 + } } - //堆叠图 - 教师的师德师风互评各项占比 - String sdsfhpZztImg1Options ="option = { tooltip: { trigger: 'axis', axisPointer: { type: 'shadow' } },\n" + - " legend: { textStyle: {color:'#333', fontSize: 30 }}, grid: { left: '3%', right: '4%', bottom: '3%', containLabel: true }, xAxis: { type: 'value' }, yAxis: { type: 'category',\n" + - " data: "+JSONObject.toJSONString(strName)+",\n" + - " axisLabel: {color:'#333', fontSize: 30, formatter: function (value) {let list = value.split(\"\");let result = \"\"; for (let i = 1; i <= list.length; i++) {if (!(i % 17) && list[i] != undefined) { result += list[i - 1] + '\\n';} else {result += list[i - 1];} }return result;} } },\n" + - " series: [ { name: '非常符合', type: 'bar', stack: 'total', label: { show: true, fontSize: 30 }, emphasis: { focus: 'series' },\n" + - " data: "+ JSONObject.toJSONString(sdsfhpzztFcfh)+", barWidth: 45, itemStyle: { color: '#2350a0' } },\n" + - " { name: '比较符合', type: 'bar', stack: 'total', label: { show: true, fontSize: 30 }, emphasis: { focus: 'series' },\n" + - " data: "+JSONObject.toJSONString(sdsfhpzztBjfh)+", barWidth: 45, itemStyle: { color: '#008ac8' } },\n" + - " { name: '一般', type: 'bar', stack: 'total', label: { show: true, fontSize: 30 },emphasis: {focus: 'series'},\n" + - " data: "+JSONObject.toJSONString(sdsfhpzztYb)+", barWidth: 45,itemStyle: {color: '#57b8e7'}},]}"; - log.info("option---------------->"+sdsfhpZztImg1Options); - String sdsfhpZztImg1 = WebDriverUtil.getImgByte300(sdsfhpZztImg1Options); - log.info("================================"); - log.info(sdsfhpZztImg1); - log.info("================================"); - result.put("sdsfhpZztImg1", sdsfhpZztImg1); + } - //教师的师德师风互评-评分 - BlTeacherAnswer sdsfhppingfen = baseMapper.getSelectSdsfhppingfen(blTeacherMain); - String sdsfYfyg = sdsfhppingfen.getSdsfYfyg();//依法依规,履行教师职责 - String sdsfGxah = sdsfhppingfen.getSdsfGxah();//关心爱护学生 - String sdsfJsmm = sdsfhppingfen.getSdsfJsmm();//精神面貌及品德修养良好 - result.put("sdsfYfyq", sdsfYfyg);//数量 - result.put("sdsfGxah", sdsfGxah);//数量 - result.put("sdsfJsmm", sdsfJsmm);//数量 - - Double ldt1Data[] = new Double[3]; - ldt1Data[0] = Double.parseDouble(sdsfYfyg); - ldt1Data[1] = Double.parseDouble(sdsfGxah); - ldt1Data[2] = Double.parseDouble(sdsfJsmm); - //雷达图 - String sdsfhpLdtImg2Ldt = "option = { radar: { radius: '60%',indicator: [\n" + - " { name: '依法依规,履行教师职责', max: 5 },\n" + - " { name: '关心爱护学生', max: 5 },\n" + - " { name: '精神面貌及品德修养良好', max: 5 },\n" + - " ],name: {textStyle: {color: 'black',fontSize: 30,lineHeight: 24,},\n" + - " formatter: function (value) {let list = value.split(\"\");let result = \"\"; for (let i = 1; i <= list.length; i++) {if (!(i % 17) && list[i] != undefined) { result += list[i - 1] + '\\n';} else {result += list[i - 1];} }return result;},},},\n" + - " series: [{type: 'radar',data: [{value: \n" +JSONObject.toJSONString(ldt1Data)+ " ,label:{show: true,position: 'outside',fontSize:20},},]}]}"; - String sdsfhpLdtImg2 = WebDriverUtil.getImgByte400(sdsfhpLdtImg2Ldt); - log.info("================================"); - log.info(sdsfhpLdtImg2); - log.info("================================"); - result.put("sdsfhpLdtImg2", sdsfhpLdtImg2); - - //不同岗位类型教师的师德师风互评 - List btlxSdsfList = baseMapper.getSelectBtlxSdsf(blTeacherMain); - List> oneList = Lists.newArrayList(); - for(BlTeacherAnswer par:btlxSdsfList){ - List list = Lists.newArrayList(); - list.add(par.getLsname()); - list.add(par.getTj1()); - list.add(par.getTj2()); - list.add(par.getTj3()); - list.add(par.getTj4()); - oneList.add(list); + private void res3(BlTeacherInfo blTeacherMain, Map result) { + //职称结构 + List zcjgList = baseMapper.getSelectZcjg(blTeacherMain); + for (BlTeacherAnswer par:zcjgList){ + if(StringUtils.equals(par.getPosition(),"正高级")){ + result.put("zcjg1", par.getCnt());//数量 + result.put("zcjg1_zb", par.getNum());//占比 + }else if(StringUtils.equals(par.getPosition(),"副高级")){ + result.put("zcjg2", par.getCnt());//数量 + result.put("zcjg2_zb", par.getNum());//占比 + }else if(StringUtils.equals(par.getPosition(),"中级")){ + result.put("zcjg3", par.getCnt());//数量 + result.put("zcjg3_zb", par.getNum());//占比 + }else if(StringUtils.equals(par.getPosition(),"初级")){ + result.put("zcjg4", par.getCnt());//数量 + result.put("zcjg4_zb", par.getNum());//占比 + } } - wo.insert2Table(1, 1, true, oneList); + } - //不同职称教师的师德师风互评 - List btzcSdsfList = baseMapper.getSelectBtzcSdsf(blTeacherMain); - List> twoList = Lists.newArrayList(); - for(BlTeacherAnswer par:btzcSdsfList){ - List list = Lists.newArrayList(); - list.add(par.getLsname()); - list.add(par.getTj1()); - list.add(par.getTj2()); - list.add(par.getTj3()); - list.add(par.getTj4()); - twoList.add(list); + private void res2(BlTeacherInfo blTeacherMain, Map result) { + //学历层次结构 + List xlccjgList = baseMapper.getSelectXlccjg(blTeacherMain); + for (BlTeacherAnswer par:xlccjgList){ + if(StringUtils.equals(par.getEducationLevel(),"博士研究生")){ + result.put("xlccjg1", par.getCnt());//博士研究生 + result.put("xlccjg1_zb", par.getNum());//占比 + }else if(StringUtils.equals(par.getEducationLevel(),"硕士研究生")){ + result.put("xlccjg2", par.getCnt());//硕士研究生 + result.put("xlccjg2_zb", par.getNum());//占比 + }else if(StringUtils.equals(par.getEducationLevel(),"本科及以下")){ + result.put("xlccjg3", par.getCnt());//本科及以下 + result.put("xlccjg3_zb", par.getNum());//占比 + } } - wo.insert2Table(2, 1, true, twoList); - //各学院教师的师德师风互评 - List gxyjsSdsfList = baseMapper.getSelectGxyjsSdsf(blTeacherMain); - List> threeList = Lists.newArrayList(); - for(BlTeacherAnswer par:gxyjsSdsfList){ - List list = Lists.newArrayList(); - list.add(par.getLsname()); - list.add(par.getTj1()); - list.add(par.getTj2()); - list.add(par.getTj3()); - threeList.add(list); + } + + private void res1(BlTeacherInfo blTeacherMain, Map result) { + List nvzbList = baseMapper.getSelectNvzb(blTeacherMain); + for(BlTeacherAnswer par:nvzbList){ + if(StringUtils.equals(par.getSex(),"男")){ + result.put("nan", par.getCnt());//男占比 + result.put("nan_zb", par.getNum());//女占比 + }else if(StringUtils.equals(par.getSex(),"女")){ + result.put("nv", par.getCnt());//女 + result.put("nv_zb", par.getNum());//女占比 + } } - wo.insert2Table(3, 1, true, threeList); + } - - - - //教师基本行为互评柱状图 - 教师基本行为互评各项占比 - List jsjbxwhpTjtList = baseMapper.getSelectJsjbxwhpzzt(blTeacherMain); - Integer jsjbxwFcfh[] = new Integer[jsjbxwhpTjtList.size()];//非常满意 - Integer jsjbxwBjfh[] = new Integer[jsjbxwhpTjtList.size()];//比较符合 - Integer jsjbxwYb[] = new Integer[jsjbxwhpTjtList.size()];//一般 - Integer jsjbxwBjbfh[] = new Integer[jsjbxwhpTjtList.size()];//比较不符合 - String jsjbxwName[] = new String[jsjbxwhpTjtList.size()];//名称 - for(int i=0;i result) { + //不同职称教师对学校整体的满意度 + List xxztmyd4List = baseMapper.getSelectxxztmyd4(blTeacherMain); + Integer zcnum1 = 0; + Integer zcnum2 = 0; + Integer zcnum3 = 0; + Integer zcnum4 = 0; + for(BlTeacherAnswer par:xxztmyd4List){ + if(StringUtils.equals(par.getLsname(),"正高级")){ + zcnum1 = (int)Double.parseDouble(par.getTj1()); + }else if(StringUtils.equals(par.getLsname(),"副高级")){ + zcnum2 = (int)Double.parseDouble(par.getTj1()); + }else if(StringUtils.equals(par.getLsname(),"中级")){ + zcnum3 = (int)Double.parseDouble(par.getTj1()); + }else if(StringUtils.equals(par.getLsname(),"初级")){ + zcnum4 = (int)Double.parseDouble(par.getTj1()); + } } - //堆叠图 - String jsjbxwhpTjtImg3Options ="option = { tooltip: { trigger: 'axis', axisPointer: { type: 'shadow' } },\n" + - " legend: { textStyle: {color:'#333', fontSize: 30 }}, grid: { left: '3%', right: '4%', bottom: '3%', containLabel: true }, xAxis: { type: 'value' }, yAxis: { type: 'category',\n" + - " data: "+JSONObject.toJSONString(jsjbxwName)+",\n" + - " axisLabel: {color:'#333', fontSize:17, formatter: function (value) {let list = value.split(\"\");let result = \"\"; for (let i = 1; i <= list.length; i++) {if (!(i % 17) && list[i] != undefined) { result += list[i - 1] + '\\n';} else {result += list[i - 1];} }return result;} } },\n" + - " series: [ { name: '非常符合', type: 'bar', stack: 'total', label: { show: true, fontSize: 30 }, emphasis: { focus: 'series' },\n" + - " data: "+ JSONObject.toJSONString(jsjbxwFcfh)+", barWidth: 45, itemStyle: { color: '#2350a0' } },\n" + - " { name: '比较符合', type: 'bar', stack: 'total', label: { show: true, fontSize: 30 }, emphasis: { focus: 'series' },\n" + - " data: "+JSONObject.toJSONString(jsjbxwBjfh)+", barWidth: 45, itemStyle: { color: '#008ac8' } },\n" + - " { name: '一般', type: 'bar', stack: 'total', label: { show: true, fontSize: 30 },emphasis: {focus: 'series'},\n" + - " data: "+JSONObject.toJSONString(jsjbxwYb)+", barWidth: 45,itemStyle: {color: '#57b8e7'}}," + - " { name: '比较不符合', type: 'bar', stack: 'total', label: { show: true, fontSize: 30 },emphasis: {focus: 'series'},\n" + - " data: "+JSONObject.toJSONString(jsjbxwBjbfh)+", barWidth: 45,itemStyle: {color: '#57b8e7'}},]}"; + String zcxxztmyd3Options ="option = {\n" + + " title: {subtext: '(%)'},legend: { textStyle: {color:'#333', fontSize: 30 }},tooltip: {},\n" + + " dataset: {source: [ \n" + + " ['对学校整体的满意度', "+zcnum1+", "+zcnum2+", "+zcnum3+", "+zcnum4+"], \n" + + " ]},xAxis: { type: 'category' },yAxis: {}, \n" + + " series: [\n" + + " {name:'正高级',type: 'bar',barWidth:50, label: { show: true, position: 'top',fontSize:20 } }, \n" + + " {name:'副高级',type: 'bar',barWidth:50, label: { show: true, position: 'top',fontSize:20 } },\n" + + " {name:'中级',type: 'bar',barWidth:50, label: { show: true, position: 'top',fontSize:20 } },\n" + + " {name:'初级',type: 'bar',barWidth:50, label: { show: true, position: 'top',fontSize:20 } },\n" + + " ]\n" + + "}"; + String zcxxztmyd3Img = WebDriverUtil.getImgByte(zcxxztmyd3Options); + log.info("=============zcxxztmyd3Img==================="); + log.info(zcxxztmyd3Img); + log.info("=============zcxxztmyd3Img==================="); + result.put("ztmyd37", zcxxztmyd3Img); + } - String jsjbxwhpTjtImg3 = WebDriverUtil.getImgByte500(jsjbxwhpTjtImg3Options); - log.info("================================"); - log.info(jsjbxwhpTjtImg3); - log.info("================================"); - result.put("jsjbxwhpTjtImg3", jsjbxwhpTjtImg3); - - - //教师基本行为互评雷达图及占比 - BlTeacherAnswer jsjbxwhpLdtzb = baseMapper.getSelectJsjbxwhpLdtzb(blTeacherMain); - String jsjbxwhppf1 = jsjbxwhpLdtzb.getTj1(); - String jsjbxwhppf2 = jsjbxwhpLdtzb.getTj2(); - String jsjbxwhppf3 = jsjbxwhpLdtzb.getTj3(); - String jsjbxwhppf4 = jsjbxwhpLdtzb.getTj4(); - String jsjbxwhppf5 = jsjbxwhpLdtzb.getTj5(); - String jsjbxwhppf6 = jsjbxwhpLdtzb.getTj6(); - result.put("jsjbxwhppf1", jsjbxwhppf1);//评分 - result.put("jsjbxwhppf2", jsjbxwhppf2);//评分 - result.put("jsjbxwhppf3", jsjbxwhppf3);//评分 - result.put("jsjbxwhppf4", jsjbxwhppf4);//评分 - result.put("jsjbxwhppf5", jsjbxwhppf5);//评分 - result.put("jsjbxwhppf6", jsjbxwhppf6);//评分 - - - - Double ldt2Data[] = new Double[6]; - ldt2Data[0] = Double.parseDouble(jsjbxwhppf1); - ldt2Data[1] = Double.parseDouble(jsjbxwhppf2); - ldt2Data[2] = Double.parseDouble(jsjbxwhppf3); - ldt2Data[3] = Double.parseDouble(jsjbxwhppf4); - ldt2Data[4] = Double.parseDouble(jsjbxwhppf5); - ldt2Data[5] = Double.parseDouble(jsjbxwhppf6); - //雷达图 - String jsjbxwhpLdtImg4Ldt = "option = { radar: { radius: '60%',indicator: [\n" + - " { name: '热爱工作,能以最大的热情投身教育行业,积极主动学习', max: 5 },\n" + - " { name: '关爱学生,积极帮助学生解决生活或学习上的困难', max: 5 },\n" + - " { name: '关注学生的心理健康状况', max: 5 },\n" + - " { name: '教学有序,有清晰合理的教学目标并能清楚地向学生解释', max: 5 },\n" + - " { name: '育人有方,激发学生的学习兴趣,注重培养学生的创新精神和创新思维', max: 5 },\n" + - " { name: '以身作则,信守承诺', max: 5 },\n" + - " ],name: {textStyle: {color: 'black',fontSize: 20,lineHeight: 24,},\n" + - " formatter: function (value) {let list = value.split(\"\");let result = \"\"; for (let i = 1; i <= list.length; i++) {if (!(i % 17) && list[i] != undefined) { result += list[i - 1] + '\\n';} else {result += list[i - 1];} }return result;},},},\n" + - " series: [{type: 'radar',data: [{value: \n" +JSONObject.toJSONString(ldt2Data)+ " ,label:{show: true,position: 'outside',fontSize:20},},]}]}"; - String jsjbxwhpLdtImg4 = WebDriverUtil.getImgByte500(jsjbxwhpLdtImg4Ldt); - log.info("================================"); - log.info(jsjbxwhpLdtImg4); - log.info("================================"); - result.put("jsjbxwhpLdtImg4", jsjbxwhpLdtImg4); - - //不同岗位类型教师基本行为互评 - List btgwlxjsjbxwhpList = baseMapper.getSelectBtgwlxjsjbxwhp(blTeacherMain); - List> fourList = Lists.newArrayList(); - for(BlTeacherAnswer par:btgwlxjsjbxwhpList){ - List list = Lists.newArrayList(); - list.add(par.getLsname()); - list.add(par.getTj1()); - list.add(par.getTj2()); - list.add(par.getTj3()); - list.add(par.getTj4()); - fourList.add(list); - } - wo.insert2Table(4, 1, true, fourList); - - //不同职称教师基本行为互评 - List btzcjsjbxwhpList = baseMapper.getSelectBtxzcjsjbxwhp(blTeacherMain); - List> fiveList = Lists.newArrayList(); - for(BlTeacherAnswer par:btzcjsjbxwhpList){ - List list = Lists.newArrayList(); - list.add(par.getLsname()); - list.add(par.getTj1()); - list.add(par.getTj2()); - list.add(par.getTj3()); - list.add(par.getTj4()); - fiveList.add(list); - } - wo.insert2Table(5, 1, true, fiveList); - - //各学院教师基本行为互评 - List gxyjsjbxwhpList = baseMapper.getSelectGxyjsjbxwhp(blTeacherMain); - List> sixList = Lists.newArrayList(); - for(BlTeacherAnswer par:gxyjsjbxwhpList){ - List list = Lists.newArrayList(); - list.add(par.getLsname()); - list.add(par.getTj1()); - list.add(par.getTj2()); - list.add(par.getTj3()); - list.add(par.getTj4()); - list.add(par.getTj5()); - list.add(par.getTj6()); - sixList.add(list); - } - wo.insert2Table(6, 1, true, sixList); - - //教师对教学能力各方面评价各项占比 - List jxnlpjTjtList = baseMapper.getSelectJxnlpjTjt(blTeacherMain); - Integer jxnlpjFcfh[] = new Integer[jxnlpjTjtList.size()];//非常满意 - Integer jxnlpjBjfh[] = new Integer[jxnlpjTjtList.size()];//比较符合 - Integer jxnlpjYb[] = new Integer[jxnlpjTjtList.size()];//一般 - String jxnlpjName[] = new String[jxnlpjTjtList.size()];//名称 - for(int i=0;i btgwlxjsdjxnlpjList = baseMapper.getSelectBtgwlxjsdjxnlpj(blTeacherMain); - List> sevenList = Lists.newArrayList(); - for(BlTeacherAnswer par:btgwlxjsdjxnlpjList){ - List list = Lists.newArrayList(); - list.add(par.getLsname()); - list.add(par.getTj1()); - list.add(par.getTj2()); - sevenList.add(list); - } - wo.insert2Table(7, 1, true, sevenList); - - //不同职称教师对教学能力的评价 - List btzcjsdjxnlpjList = baseMapper.getSelectBtzcjsdjxnlpj(blTeacherMain); - List> eightList = Lists.newArrayList(); - for(BlTeacherAnswer par:btzcjsdjxnlpjList){ - List list = Lists.newArrayList(); - list.add(par.getLsname()); - list.add(par.getTj1()); - list.add(par.getTj2()); - list.add(par.getTj3()); - list.add(par.getTj4()); - eightList.add(list); - } - wo.insert2Table(8, 1, true, eightList); - - //各学院教师对教学能力的评价 - List gxyjsdjxnlpjList = baseMapper.getSelectGxyjsdjxnlpj(blTeacherMain); - List> nightList = Lists.newArrayList(); - for(BlTeacherAnswer par:gxyjsdjxnlpjList){ - List list = Lists.newArrayList(); - list.add(par.getLsname()); - list.add(par.getTj1()); - list.add(par.getTj2()); - list.add(par.getTj3()); - list.add(par.getTj4()); - list.add(par.getTj5()); - nightList.add(list); - } - wo.insert2Table(9, 1, true, nightList); - - //教学投入-时间投入 - BlTeacherAnswer jxsjtr = baseMapper.getSelectJxsjtr(blTeacherMain); - String jxsjtrTj1 = jxsjtr.getTj1(); - String jxsjtrTj2 = jxsjtr.getTj2(); - String jxsjtrTj3 = jxsjtr.getTj3(); - result.put("jxsjtrTj1", jxsjtrTj1); - result.put("jxsjtrTj2", jxsjtrTj2); - result.put("jxsjtrTj3", jxsjtrTj3); - - //教师各项工作的平均时间投入 - List jxsjtrTjtList = baseMapper.getSelectJxsjtrTjt(blTeacherMain); - Integer cnrFcfh[] = new Integer[jxsjtrTjtList.size()];// - String cnrName[] = new String[jxsjtrTjtList.size()];//名称 - for(int i=0;i btgwlxpjsjTjtList = baseMapper.getSelectBtgwlxpjsjTjt(blTeacherMain); - Integer btgwlxpjsjTj1[] = new Integer[6];// - Integer btgwlxpjsjTj2[] = new Integer[6];// - for(int i=0;i result) { + //不同岗位类型教师对学校整体的满意度 + List xxztmyd3List = baseMapper.getSelectxxztmyd3(blTeacherMain); + Integer num1 = 0; + Integer num2 = 0; + Integer num3 = 0; + Integer num4 = 0; + for(BlTeacherAnswer par:xxztmyd3List){ if(StringUtils.equals(par.getLsname(),"教学科研型")){ - btgwlxpjsjTj1[0] = (int)Double.parseDouble(par.getTj1()); - btgwlxpjsjTj1[1] = (int)Double.parseDouble(par.getTj2()); - btgwlxpjsjTj1[2] = (int)Double.parseDouble(par.getTj3()); - btgwlxpjsjTj1[3] = (int)Double.parseDouble(par.getTj4()); - btgwlxpjsjTj1[4] = (int)Double.parseDouble(par.getTj5()); - btgwlxpjsjTj1[5] = (int)Double.parseDouble(par.getTj6()); + num1 = (int)Double.parseDouble(par.getTj1()); }else if(StringUtils.equals(par.getLsname(),"教学型")){ - btgwlxpjsjTj2[0] = (int)Double.parseDouble(par.getTj1()); - btgwlxpjsjTj2[1] = (int)Double.parseDouble(par.getTj2()); - btgwlxpjsjTj2[2] = (int)Double.parseDouble(par.getTj3()); - btgwlxpjsjTj2[3] = (int)Double.parseDouble(par.getTj4()); - btgwlxpjsjTj2[4] = (int)Double.parseDouble(par.getTj5()); - btgwlxpjsjTj2[5] = (int)Double.parseDouble(par.getTj6()); + num2 = (int)Double.parseDouble(par.getTj1()); + }else if(StringUtils.equals(par.getLsname(),"科研型")){ + num3 = (int)Double.parseDouble(par.getTj1()); + }else if(StringUtils.equals(par.getLsname(),"辅导员")){ + num4 = (int)Double.parseDouble(par.getTj1()); } } - //多柱图 - String btgwlxpjsjtrImg8Options = "option = {\n" + - " tooltip: { trigger: 'axis', axisPointer: { type: 'shadow' } }, legend: {}, grid: { left: '3%', right: '4%', bottom: '3%', containLabel: true }, xAxis: { type: 'value', boundaryGap: [0, 0.01] }, yAxis: { type: 'category',\n" + - "data: ['科研工作', '教学准备(包括批阅学生作业和评分)', '教学任务', '给学生答疑和辅导', '院系/部门工作和会议及其他行政工作', '兼职及其他社会服务工作'],inverse:true }, series: [ {\n" + - " name: '教学科研型', type: 'bar',\n" + - " data: "+JSONObject.toJSONString(btgwlxpjsjTj1)+" ,label:{show: true,position: 'outside'},}, {\n" + - " name: '教学型', type: 'bar',\n" + - " data: "+JSONObject.toJSONString(btgwlxpjsjTj2)+" ,label:{show: true,position: 'outside'},} ] }"; - String btgwlxpjsjtrImg8 = WebDriverUtil.getImgByte(btgwlxpjsjtrImg8Options); + String xxztmyd3Options ="option = {\n" + + " title: {subtext: '(%)'},legend: { textStyle: {color:'#333', fontSize: 30 }},tooltip: {},\n" + + " dataset: {source: [ \n" + + " ['对学校整体的满意度', "+num1+", "+num2+", "+num3+", "+num4+"], \n" + + " ]},xAxis: { type: 'category' },yAxis: {}, \n" + + " series: [\n" + + " {name:'教学科研型',type: 'bar',barWidth:50, label: { show: true, position: 'top',fontSize:20 } }, \n" + + " {name:'教学型',type: 'bar',barWidth:50, label: { show: true, position: 'top',fontSize:20 } },\n" + + " {name:'科研型',type: 'bar',barWidth:50, label: { show: true, position: 'top',fontSize:20 } },\n" + + " {name:'辅导员',type: 'bar',barWidth:50, label: { show: true, position: 'top',fontSize:20 } },\n" + + " ]\n" + + "}"; + String xxztmyd3Img = WebDriverUtil.getImgByte(xxztmyd3Options); log.info("================================"); - log.info(btgwlxpjsjtrImg8); + log.info(xxztmyd3Img); log.info("================================"); - result.put("btgwlxpjsjtrImg8", btgwlxpjsjtrImg8); + result.put("ztmyd36", xxztmyd3Img); + } - - //不同职称教师在各项工作上的平均时间投入 - List btzcjspjtrscTjtList = baseMapper.getSelectBtzcjspjtrscTjt(blTeacherMain); - Integer btzxpjsjTj1[] = new Integer[6];// - Integer btzxpjsjTj2[] = new Integer[6];// - Integer btzxpjsjTj3[] = new Integer[6];// - Integer btzxpjsjTj4[] = new Integer[6];// - for(int i=0;i gxyjspjsjtrList = baseMapper.getSelectGxyjspjsjtr(blTeacherMain); - List> tenList = Lists.newArrayList(); - for(BlTeacherAnswer par:gxyjspjsjtrList){ - List list = Lists.newArrayList(); - list.add(par.getLsname()); - list.add(par.getTj1()); - list.add(par.getTj2()); - list.add(par.getTj3()); - list.add(par.getTj4()); - list.add(par.getTj5()); - list.add(par.getTj6()); - tenList.add(list); - } - wo.insert2Table(10, 1, true, tenList); - - //教学任务分配情况百分比 - BlTeacherAnswer jxrwfpqkbfb = baseMapper.getSelectJxrwfpqkbfb2(blTeacherMain); - result.put("jxrwfpqkbfb1", jxrwfpqkbfb.getTj1()); - result.put("jxrwfpqkbfb2", jxrwfpqkbfb.getTj2()); - result.put("jxrwfpqkbfb3", jxrwfpqkbfb.getTj3()); - result.put("jxrwfpqkbfb4", jxrwfpqkbfb.getTj4()); - - - //教师在各类教学任务分配比例 - List jszgljxrwfpblList = baseMapper.getSelectJszgljxrwfpbl(blTeacherMain); - String jszgljxrwfpblname[] = new String[jszgljxrwfpblList.size()]; - Integer jszgljxrwfpblData[] = new Integer[jszgljxrwfpblList.size()]; - for(int i=0;i btgwlxjszgxgzrdpjsjtrList = baseMapper.getSelectBtgwlxjszgxgzrdpjsjtr(blTeacherMain); - Integer btgwlxjszgxgzrdpjsjtr1[] = new Integer[5];// - Integer btgwlxjszgxgzrdpjsjtr2[] = new Integer[5];// - for(int i=0;i btzcjszgljxrwzbList = baseMapper.getSelectBtzcjszgljxrwzb(blTeacherMain); - Integer btzcjszgljxrwzb1[] = new Integer[5];// - Integer btzcjszgljxrwzb2[] = new Integer[5];// - Integer btzcjszgljxrwzb3[] = new Integer[5];// - Integer btzcjszgljxrwzb4[] = new Integer[5];// - for(int i=0;i gxyjszgljxrwsdzbList = baseMapper.getSelectGxyjszgljxrwsdzb(blTeacherMain); - List> elevenList = Lists.newArrayList(); - for(BlTeacherAnswer par:gxyjszgljxrwsdzbList){ - List list = Lists.newArrayList(); - list.add(par.getLsname()); - list.add(par.getTj1()); - list.add(par.getTj2()); - list.add(par.getTj3()); - list.add(par.getTj4()); - list.add(par.getTj5()); - elevenList.add(list); - } - wo.insert2Table(11, 1, true, elevenList); - - //课程思政-统计数据 - BlTeacherAnswer szkcAcswer = baseMapper.getSelectSzkcAnswer(blTeacherMain); - result.put("szkctjfx1", szkcAcswer.getTj1()); - result.put("szkctjfx2", szkcAcswer.getTj2()); - result.put("szkctjfx3", szkcAcswer.getTj3()); - result.put("szkctjfx4", szkcAcswer.getTj4()); - - //课程教学融入思政元素的方式 - List kcjxrrszysTjtList = baseMapper.getSelectKcjxrrszysTjt(blTeacherMain); - Integer kcjxrrszysTjt1[] = new Integer[kcjxrrszysTjtList.size()];// - String kcjxrrszysTjt2[] = new String[kcjxrrszysTjtList.size()];//名称 - for(int i=0;i btgwlxjskcjxrrszysList = baseMapper.getSelectBtgwlxjskcjxrrszys(blTeacherMain); - Integer btgwlxjskcjxrrszys1[] = new Integer[5];// - Integer btgwlxjskcjxrrszys2[] = new Integer[5];// - for(int i=0;i btzcjskcjxrrszysList = baseMapper.getSelectBtzcjskcjxrrszys(blTeacherMain); - Integer btzcjskcjxrrszys1[] = new Integer[5];// - Integer btzcjskcjxrrszys2[] = new Integer[5];// - Integer btzcjskcjxrrszys3[] = new Integer[5];// - Integer btzcjskcjxrrszys4[] = new Integer[5];// - for(int i=0;i gxyjskcjxrrszysList = baseMapper.getSelectGxyjskcjxrrszys(blTeacherMain); - List> twelveList = Lists.newArrayList(); - for(BlTeacherAnswer par:gxyjskcjxrrszysList){ - List list = Lists.newArrayList(); - list.add(par.getLsname()); - list.add(par.getTj1()); - list.add(par.getTj2()); - list.add(par.getTj3()); - list.add(par.getTj4()); - list.add(par.getTj5()); - twelveList.add(list); - } - wo.insert2Table(12, 1, true, twelveList); - - - //课程“两性一度” - List kclxyd1List = baseMapper.getSelectKclxyd1(blTeacherMain); - Integer kclxydTjfxDdt1[] = new Integer[kclxyd1List.size()];//非常满意 - Integer kclxydTjfxDdt2[] = new Integer[kclxyd1List.size()];//比较符合 - Integer kclxydTjfxDdt3[] = new Integer[kclxyd1List.size()];//一般 - Integer kclxydTjfxDdt4[] = new Integer[kclxyd1List.size()];//比较不符合 - Integer kclxydTjfxDdt5[] = new Integer[kclxyd1List.size()];//非常不符合 - String kclxydTjfxName[] = new String[kclxyd1List.size()];//名称 - for(int i=0;i result) { + //总体评价 + //学校整体满意度 + BlTeacherAnswer ztmydpj = baseMapper.getSelectztmydpj(blTeacherMain); + result.put("ztpjmydbfb1", ztmydpj.getTj1()); + //教师对学校的整体满意度各项占比 + BlTeacherAnswer ztmydzb = baseMapper.getSelectztmydzb(blTeacherMain); + result.put("ztpjmydbfb2", ztmydzb.getTj1()); + result.put("ztpjmydbfb3", ztmydzb.getTj2()); + result.put("ztpjmydbfb4", ztmydzb.getTj3()); + result.put("ztpjmydbfb5", ztmydzb.getTj4()); + //教师对学校的整体满意度各项占比 + //堆叠图 + String ztmydzb1Options ="option = { tooltip: { trigger: 'axis', axisPointer: { type: 'shadow' } },\n" + " legend: { textStyle: {color:'#333', fontSize: 30 }}, grid: { left: '3%', right: '4%', bottom: '3%', containLabel: true }, xAxis: { type: 'value' }, yAxis: { type: 'category',\n" + - " data: "+JSONObject.toJSONString(kclxydTjfxName)+",\n" + + " data: ['对学校的整体满意度'],\n" + " axisLabel: {color:'#333', fontSize:17, formatter: function (value) {let list = value.split(\"\");let result = \"\"; for (let i = 1; i <= list.length; i++) {if (!(i % 17) && list[i] != undefined) { result += list[i - 1] + '\\n';} else {result += list[i - 1];} }return result;} } },\n" + " series: [ { name: '非常符合', type: 'bar', stack: 'total', label: { show: true, fontSize: 30 }, emphasis: { focus: 'series' },\n" + - " data: "+ JSONObject.toJSONString(kclxydTjfxDdt1)+", barWidth: 45, itemStyle: { color: '#2350a0' } },\n" + + " data: ["+(int)Double.parseDouble(ztmydzb.getTj1())+"], barWidth: 45, itemStyle: { color: '#2350a0' } },\n" + " { name: '比较符合', type: 'bar', stack: 'total', label: { show: true, fontSize: 30 }, emphasis: { focus: 'series' },\n" + - " data: "+JSONObject.toJSONString(kclxydTjfxDdt2)+", barWidth: 45, itemStyle: { color: '#008ac8' } },\n" + + " data: ["+(int)Double.parseDouble(ztmydzb.getTj2())+"], barWidth: 45, itemStyle: { color: '#008ac8' } },\n" + " { name: '一般', type: 'bar', stack: 'total', label: { show: true, fontSize: 30 },emphasis: {focus: 'series'},\n" + - " data: "+JSONObject.toJSONString(kclxydTjfxDdt3)+", barWidth: 45,itemStyle: {color: '#57b8e7'}}," + - " { name: '比较不符合', type: 'bar', stack: 'total', label: { show: true, fontSize: 30 },emphasis: {focus: 'series'},\n" + - " data: "+JSONObject.toJSONString(kclxydTjfxDdt4)+", barWidth: 45,itemStyle: {color: '#57b8e7'}}," + - " { name: '非常不符合', type: 'bar', stack: 'total', label: { show: true, fontSize: 30 },emphasis: {focus: 'series'},\n" + - " data: "+JSONObject.toJSONString(kclxydTjfxDdt5)+", barWidth: 45,itemStyle: {color: '#57b8e7'}}," + + " data: ["+(int)Double.parseDouble(ztmydzb.getTj3())+"], barWidth: 45,itemStyle: {color: '#57b8e7'}}," + + " { name: '比较不满意', type: 'bar', stack: 'total', label: { show: true, fontSize: 30 },emphasis: {focus: 'series'},\n" + + " data: ["+(int)Double.parseDouble(ztmydzb.getTj4())+"], barWidth: 45,itemStyle: {color: '#57b8e7'}}," + "]}"; - String kclxyd16 = WebDriverUtil.getImgByte500(kclxyd16Options); + String ztmydzb1Img = WebDriverUtil.getImgByte(ztmydzb1Options); log.info("================================"); - log.info(kclxyd16); + log.info(ztmydzb1Img); log.info("================================"); - result.put("kclxyd16", kclxyd16); + result.put("sdsfhp34", ztmydzb1Img); + //教师对学校的整体满意度 + //饼图 + int kbsx = 100 - (int)Double.parseDouble(ztmydpj.getTj1()); + String jsdxydztmydOptions ="option = {series: [\n" + + " {type: 'pie',radius: ['40%', '70%'],avoidLabelOverlap: true,\n" + + " label: {show: true, position: 'center',textStyle: {fontSize: 22}},\n" + + " data: [\n" + + " { value: "+(int)Double.parseDouble(ztmydpj.getTj1())+", name: '对学校的整体满意度\\n"+(int)Double.parseDouble(ztmydpj.getTj1())+"%'},\n" + + " { value: "+kbsx+", name: '',itemStyle:{color:'#d2d2d2'} },\n" + + " ]\n" + + " }]}"; + String jsdxydztmydImg = WebDriverUtil.getImgByte(jsdxydztmydOptions); + log.info("================================"); + log.info(ztmydzb1Img); + log.info("================================"); + result.put("ztmyd35", jsdxydztmydImg); + } + private void tj33(BlTeacherInfo blTeacherMain, Map result) { + //教师对本校各项资源条件的满意度 + BlTeacherAnswer zytjpj12Ldt = baseMapper.getSelectzytjpj2(blTeacherMain); + if(zytjpj12Ldt!=null){ + result.put("zytjpjbfb1", zytjpj12Ldt.getTj1()); + result.put("zytjpjbfb2", zytjpj12Ldt.getTj2()); + result.put("zytjpjbfb3", zytjpj12Ldt.getTj3()); + result.put("zytjpjbfb4", zytjpj12Ldt.getTj4()); + result.put("zytjpjbfb5", zytjpj12Ldt.getTj5()); - //课程“两性一度”的实施情况 雷达图 - BlTeacherAnswer kclxydldt = baseMapper.getSelectKclxydLdt(blTeacherMain); - String ldt1 = kclxydldt.getTj1(); - String ldt2 = kclxydldt.getTj2(); - String ldt3 = kclxydldt.getTj3(); - String ldt4 = kclxydldt.getTj4(); - String ldt5 = kclxydldt.getTj5(); - String ldt6 = kclxydldt.getTj6(); - result.put("lxydldt1", ldt1); - result.put("lxydldt2", ldt2); - result.put("lxydldt3", ldt3); - result.put("lxydldt4", ldt4); - result.put("lxydldt5", ldt5); - result.put("lxydldt6", ldt6); - //雷达图 课程“两性一度”的实施情况 - Double ldtLxydData[] = new Double[6]; - ldtLxydData[0] =Double.parseDouble(ldt1); - ldtLxydData[1] =Double.parseDouble(ldt2); - ldtLxydData[2] =Double.parseDouble(ldt3); - ldtLxydData[3] =Double.parseDouble(ldt4); - ldtLxydData[4] =Double.parseDouble(ldt5); - ldtLxydData[5] =Double.parseDouble(ldt6); - String kclxyd17Ldt = "option = { radar: { radius: '60%',indicator: [\n" + - " { name: '课程将知识、能力、素养进行了有机融合', max: 5 },\n" + - " { name: '课程教学培养了我解决复杂问题的综合能力', max: 5 },\n" + - " { name: '课程内容注重学科间的交叉与融合', max: 5 },\n" + - " { name: '课程内容反映了学科发展的前沿内容', max: 5 },\n" + - " { name: '课程教学内容重视实践与理论的结合', max: 5 },\n" + - " { name: '需要非常努力才能达到课程要求', max: 5 },\n" + + Double zytjpj12Data[] = new Double[5]; + zytjpj12Data[0] = Double.parseDouble(zytjpj12Ldt.getTj1()); + zytjpj12Data[1] = Double.parseDouble(zytjpj12Ldt.getTj2()); + zytjpj12Data[2] = Double.parseDouble(zytjpj12Ldt.getTj3()); + zytjpj12Data[3] = Double.parseDouble(zytjpj12Ldt.getTj4()); + zytjpj12Data[4] = Double.parseDouble(zytjpj12Ldt.getTj5()); + //雷达图 + String zytjpj12optionsLdt = "option = { radar: { radius: '60%',indicator: [\n" + + " { name: '教室及教学设备', max: 100 },\n" + + " { name: '实验室条件', max: 100 },\n" + + " { name: '图书馆资源', max: 100 },\n" + + " { name: '网络资源', max: 100 },\n" + + " { name: '体育文化等基础设施', max: 100 },\n" + + " ],name: {textStyle: {color: 'black',fontSize: 20,lineHeight: 24,},\n" + + " formatter: function (value) {let list = value.split(\"\");let result = \"\"; for (let i = 1; i <= list.length; i++) {if (!(i % 17) && list[i] != undefined) { result += list[i - 1] + '\\n';} else {result += list[i - 1];} }return result;},},},\n" + + " series: [{type: 'radar',data: [{value: \n" +JSONObject.toJSONString(zytjpj12Data)+ " ,label:{show: true,position: 'outside',fontSize:20},},]}]}"; + String zytjpj127 = WebDriverUtil.getImgByte(zytjpj12optionsLdt); + log.info("================================"); + log.info(zytjpj127); + log.info("================================"); + result.put("zytjpj33", zytjpj127); + } + } + + private void tj32(BlTeacherInfo blTeacherMain, Map result) { + //资源条件评价 + //教师对本校资源条件的满意度评价各项占比 + List zytjpj2List = baseMapper.getSelectzytjpj1(blTeacherMain); + Integer zytjpj21[] = new Integer[zytjpj2List.size()];//非常满意 + Integer zytjpj22[] = new Integer[zytjpj2List.size()];//比较符合 + Integer zytjpj23[] = new Integer[zytjpj2List.size()];//一般 + Integer zytjpj24[] = new Integer[zytjpj2List.size()];//比较不符合 + Integer zytjpj25[] = new Integer[zytjpj2List.size()];//非常不符合 + String zytjpj2Name[] = new String[zytjpj2List.size()];//名称 + for(int i=0;i result) { + //教师对本校教学评价各方面工作的评价 + BlTeacherAnswer zytjpj2Ldt = baseMapper.getSelectzytjpj2Ldt(blTeacherMain); + result.put("zypjgzbfb1", zytjpj2Ldt.getTj1()); + result.put("zypjgzbfb2", zytjpj2Ldt.getTj2()); + result.put("zypjgzbfb3", zytjpj2Ldt.getTj3()); + result.put("zypjgzbfb4", zytjpj2Ldt.getTj4()); + result.put("zypjgzbfb5", zytjpj2Ldt.getTj5()); + result.put("zypjgzbfb6", zytjpj2Ldt.getTj6()); + + Double zytjpj2Data[] = new Double[6]; + zytjpj2Data[0] = Double.parseDouble(zytjpj2Ldt.getTj1()); + zytjpj2Data[1] = Double.parseDouble(zytjpj2Ldt.getTj2()); + zytjpj2Data[2] = Double.parseDouble(zytjpj2Ldt.getTj3()); + zytjpj2Data[3] = Double.parseDouble(zytjpj2Ldt.getTj4()); + zytjpj2Data[4] = Double.parseDouble(zytjpj2Ldt.getTj5()); + zytjpj2Data[5] = Double.parseDouble(zytjpj2Ldt.getTj6()); + //雷达图 + String zytjpj2optionsLdt = "option = { radar: { radius: '60%',indicator: [\n" + + " { name: '教学评价体现学生中心,突出产出导向', max: 5 },\n" + + " { name: '评价方式多样,评价主体多元,评价指标科学、具体可测', max: 5 },\n" + + " { name: '教学评价针对性地改进了我的教学内容和方法', max: 5 },\n" + + " { name: '教学评价促进了学生学习效果的提升', max: 5 },\n" + + " { name: '教学督导员的督导对我的教学工作帮助很大', max: 5 },\n" + + " { name: '学校教学激励制度完善,并促进了教师的教学积极性', max: 5 },\n" + " ],name: {textStyle: {color: 'black',fontSize: 20,lineHeight: 24,},\n" + " formatter: function (value) {let list = value.split(\"\");let result = \"\"; for (let i = 1; i <= list.length; i++) {if (!(i % 17) && list[i] != undefined) { result += list[i - 1] + '\\n';} else {result += list[i - 1];} }return result;},},},\n" + - " series: [{type: 'radar',data: [{value: \n" +JSONObject.toJSONString(ldtLxydData)+ " ,label:{show: true,position: 'outside',fontSize:20},},]}]}"; - String kclxyd17 = WebDriverUtil.getImgByte(kclxyd17Ldt); + " series: [{type: 'radar',data: [{value: \n" +JSONObject.toJSONString(zytjpj2Data)+ " ,label:{show: true,position: 'outside',fontSize:20},},]}]}"; + String zytjpj27 = WebDriverUtil.getImgByte(zytjpj2optionsLdt); log.info("================================"); - log.info(kclxyd17); + log.info(zytjpj27); log.info("================================"); - result.put("kclxyd17", kclxyd17); + result.put("jxpjgz31", zytjpj27); + } - - //不同岗位类型教师在课程“两性一度”的实施情况 - List kclxydbtgwlxList = baseMapper.getSelectkclxydbtgwlx(blTeacherMain); - List> thirteenList = Lists.newArrayList(); - for(BlTeacherAnswer par:kclxydbtgwlxList){ - List list = Lists.newArrayList(); - list.add(par.getLsname2()); - list.add(par.getLsname()); - list.add(par.getTj1()); - list.add(par.getTj2()); - thirteenList.add(list); + private void tj30(BlTeacherInfo blTeacherMain, Map result) { + //教学评价工作 + //教师对本校教学评价各方面工作评价各项占比 + List zytjpj1List = baseMapper.getSelectzytjpj1(blTeacherMain); + Integer zytjpj11[] = new Integer[zytjpj1List.size()];//非常满意 + Integer zytjpj12[] = new Integer[zytjpj1List.size()];//比较符合 + Integer zytjpj13[] = new Integer[zytjpj1List.size()];//一般 + Integer zytjpj14[] = new Integer[zytjpj1List.size()];//比较不符合 + Integer zytjpj15[] = new Integer[zytjpj1List.size()];//非常不符合 + String zytjpj1Name[] = new String[zytjpj1List.size()];//名称 + for(int i=0;i kclxydbtzcList = baseMapper.getSelectkclxydbtzc(blTeacherMain); - List> fourteenList = Lists.newArrayList(); - for(BlTeacherAnswer par:kclxydbtzcList){ - List list = Lists.newArrayList(); - list.add(par.getLsname2()); - list.add(par.getLsname()); - list.add(par.getTj1()); - list.add(par.getTj2()); - list.add(par.getTj3()); - list.add(par.getTj4()); - fourteenList.add(list); - } - wo.insert2Table(14, 1, true, fourteenList); - //各学院教师在课程“两性一度”的实施情况 3-17 - List kclxydgxyjsList = baseMapper.getSelectkclxydgxyjs(blTeacherMain); - List> fifteenList = Lists.newArrayList(); - for(BlTeacherAnswer par:kclxydgxyjsList){ - List list = Lists.newArrayList(); - list.add(par.getLsname()); - list.add(par.getTj1()); - list.add(par.getTj2()); - list.add(par.getTj3()); - list.add(par.getTj4()); - list.add(par.getTj5()); - list.add(par.getTj6()); - fifteenList.add(list); - } - wo.insert2Table(15, 1, true, fifteenList); + //堆叠图 + String zytjpj1ImgOptions ="option = { tooltip: { trigger: 'axis', axisPointer: { type: 'shadow' } },\n" + + " legend: { textStyle: {color:'#333', fontSize: 30 }}, grid: { left: '3%', right: '4%', bottom: '3%', containLabel: true }, xAxis: { type: 'value' }, yAxis: { type: 'category',\n" + + " data: "+JSONObject.toJSONString(zytjpj1Name)+",\n" + + " axisLabel: {color:'#333', fontSize:17, formatter: function (value) {let list = value.split(\"\");let result = \"\"; for (let i = 1; i <= list.length; i++) {if (!(i % 17) && list[i] != undefined) { result += list[i - 1] + '\\n';} else {result += list[i - 1];} }return result;} } },\n" + + " series: [ " + + " { name: '非常符合', type: 'bar', stack: 'total', label: { show: true, fontSize: 30 }, emphasis: { focus: 'series' },\n" + + " data: "+ JSONObject.toJSONString(zytjpj11)+", barWidth: 45, itemStyle: { color: '#2350a0' } },\n" + + " { name: '比较符合', type: 'bar', stack: 'total', label: { show: true, fontSize: 30 }, emphasis: { focus: 'series' },\n" + + " data: "+JSONObject.toJSONString(zytjpj12)+", barWidth: 45, itemStyle: { color: '#008ac8' } },\n" + + " { name: '一般', type: 'bar', stack: 'total', label: { show: true, fontSize: 30 },emphasis: {focus: 'series'},\n" + + " data: "+JSONObject.toJSONString(zytjpj13)+", barWidth: 45,itemStyle: {color: '#57b8e7'}}," + + " { name: '比较不符合', type: 'bar', stack: 'total', label: { show: true, fontSize: 30 },emphasis: {focus: 'series'},\n" + + " data: "+JSONObject.toJSONString(zytjpj14)+", barWidth: 45,itemStyle: {color: '#57b8e7'}}," + + " { name: '非常不符合', type: 'bar', stack: 'total', label: { show: true, fontSize: 30 },emphasis: {focus: 'series'},\n" + + " data: "+JSONObject.toJSONString(zytjpj15)+", barWidth: 45,itemStyle: {color: '#57b8e7'}}," + + "]}"; - - //践行“成果导向”理念 - BlTeacherAnswer cgdxln1 = baseMapper.getSelectcgdxln1(blTeacherMain); - result.put("cglndxbfb1", cgdxln1.getTj1()); - result.put("cglndxbfb2", cgdxln1.getTj2()); - result.put("cglndxbfb3", cgdxln1.getTj3()); - result.put("cglndxbfb4", cgdxln1.getTj4()); - result.put("cglndxbfb5", cgdxln1.getTj5()); - - //教师评价“成果导向”理念的落实情况 - List cgdxTjt1List = baseMapper.getSelectcgdxTjt1(blTeacherMain); - Integer cgdxTjt1Num[] = new Integer[cgdxTjt1List.size()];// - String cgdxTjt1Name[] = new String[cgdxTjt1List.size()];//名称 - for(int i=0;i cgdxTjt2List = baseMapper.getSelectcgdxTjt2(blTeacherMain); - Integer cgdxTjt2Num[] = new Integer[5];// - Integer cgdxTjt2Num1[] = new Integer[5];// - for(int i=0;i result) { + //教师对工作氛围各方面的评价 + BlTeacherAnswer zyfwyzc2Ldt = baseMapper.getSelectzyfwyzc2(blTeacherMain); + if(zyfwyzc2Ldt!=null){ + result.put("zyfwyzcbfb1", zyfwyzc2Ldt.getTj1()); + result.put("zyfwyzcbfb2", zyfwyzc2Ldt.getTj2()); + result.put("zyfwyzcbfb3", zyfwyzc2Ldt.getTj3()); + result.put("zyfwyzcbfb4", zyfwyzc2Ldt.getTj4()); + result.put("zyfwyzcbfb5", zyfwyzc2Ldt.getTj5()); + result.put("zyfwyzcbfb6", zyfwyzc2Ldt.getTj6()); + + Double zyfwyzc2Data[] = new Double[6]; + zyfwyzc2Data[0] = Double.parseDouble(zyfwyzc2Ldt.getTj1()); + zyfwyzc2Data[1] = Double.parseDouble(zyfwyzc2Ldt.getTj2()); + zyfwyzc2Data[2] = Double.parseDouble(zyfwyzc2Ldt.getTj3()); + zyfwyzc2Data[3] = Double.parseDouble(zyfwyzc2Ldt.getTj4()); + zyfwyzc2Data[4] = Double.parseDouble(zyfwyzc2Ldt.getTj5()); + zyfwyzc2Data[5] = Double.parseDouble(zyfwyzc2Ldt.getTj6()); + //雷达图 + String zyfwyzc2optionsLdt = "option = { radar: { radius: '60%',indicator: [\n" + + " { name: '我清楚自己的岗位职责和要求', max: 5 },\n" + + " { name: '我周围的教授同事们都为本科生上课', max: 5 },\n" + + " { name: '我和同事们都很乐意开展教学研究和改革', max: 5 },\n" + + " { name: '我和同事们都注重将科研成果融入教学', max: 5 },\n" + + " { name: '我和同事们都注重提升产学研用能力', max: 5 },\n" + + " { name: '我和同事们的教学和科研投入分配合理', max: 5 },\n" + + " ],name: {textStyle: {color: 'black',fontSize: 20,lineHeight: 24,},\n" + + " formatter: function (value) {let list = value.split(\"\");let result = \"\"; for (let i = 1; i <= list.length; i++) {if (!(i % 17) && list[i] != undefined) { result += list[i - 1] + '\\n';} else {result += list[i - 1];} }return result;},},},\n" + + " series: [{type: 'radar',data: [{value: \n" +JSONObject.toJSONString(zyfwyzc2Data)+ " ,label:{show: true,position: 'outside',fontSize:20},},]}]}"; + String zyfwyzc27 = WebDriverUtil.getImgByte(zyfwyzc2optionsLdt); + log.info("================================"); + log.info(zyfwyzc27); + log.info("================================"); + result.put("zyfwyzc29", zyfwyzc27); } - //多柱图 - String kclxyd19Options = "option = {\n" + - " tooltip: { trigger: 'axis', axisPointer: { type: 'shadow' } }, legend: {}, grid: { left: '3%', right: '4%', bottom: '3%', containLabel: true }, xAxis: { type: 'value', boundaryGap: [0, 0.01] }, yAxis: { type: 'category',\n" + - "data: ['我会根据学生学习效果,及时反思总结,改进我的教学', '我明确任教课程对整体人才培养目标的关联与责任', '我很了解人才培养方案的主要内容', '我将“学生中心”理念全面落实在自己的各个教育教学工作中', '我会对应学生的毕业要求制定课程目标'],inverse:true }, series: [ {\n" + - " name: '教学科研型', type: 'bar',\n" + - " data: "+JSONObject.toJSONString(cgdxTjt2Num)+" ,label:{show: true,position: 'outside'},}, {\n" + - " name: '教学型', type: 'bar',\n" + - " data: "+JSONObject.toJSONString(cgdxTjt2Num1)+" ,label:{show: true,position: 'outside'},}, " + - "] }"; - String kclxyd19 = WebDriverUtil.getImgByte(kclxyd19Options); - log.info("================================"); - log.info(kclxyd19); - log.info("================================"); - result.put("kclxyd19", kclxyd19); + } - //不同职称教师评价“成果导向”理念的落实情况 - List cgdxTjt3List = baseMapper.getSelectcgdxTjt3(blTeacherMain); - Integer cgdxTjt3Num[] = new Integer[5];// - Integer cgdxTjt3Num1[] = new Integer[5];// - Integer cgdxTjt3Num2[] = new Integer[5];// - Integer cgdxTjt3Num3[] = new Integer[5];// - String cgdxTjt3Name[] = new String[5];// - for(int i=0;i result) { + //资源与服务支持 + //教师对工作氛围各方面评价各项占比 + List zyfwyzc1List = baseMapper.getSelectzyfwyzc1(blTeacherMain); + Integer zyfwyzc11[] = new Integer[zyfwyzc1List.size()];//非常满意 + Integer zyfwyzc12[] = new Integer[zyfwyzc1List.size()];//比较符合 + Integer zyfwyzc13[] = new Integer[zyfwyzc1List.size()];//一般 + Integer zyfwyzc14[] = new Integer[zyfwyzc1List.size()];//比较不符合 + String zyfwyzc1Name[] = new String[zyfwyzc1List.size()];//名称 + for(int i=0;i result) { + //学生学习主动性 + //教师对本校教师培训各方面的满意度评价各项占比 + List jsfz1List = baseMapper.getSelectjsfz1(blTeacherMain); + Integer jsfz11[] = new Integer[jsfz1List.size()];//非常满意 + Integer jsfz12[] = new Integer[jsfz1List.size()];//比较符合 + Integer jsfz13[] = new Integer[jsfz1List.size()];//一般 + Integer jsfz14[] = new Integer[jsfz1List.size()];//比较不符合 + String jsfz1Name[] = new String[jsfz1List.size()];//名称 + for(int i=0;i result) { + //教师评价学生学习主动性 雷达图 + BlTeacherAnswer xxzdxLdt = baseMapper.getSelectxxzdxLdt(blTeacherMain); + if(xxzdxLdt!=null){ + result.put("xxzdxbfb1", xxzdxLdt.getTj1()); + result.put("xxzdxbfb2", xxzdxLdt.getTj2()); + result.put("xxzdxbfb3", xxzdxLdt.getTj3()); + result.put("xxzdxbfb4", xxzdxLdt.getTj4()); + + Double ldtData[] = new Double[4]; + ldtData[0] = Double.parseDouble(xxzdxLdt.getTj1()); + ldtData[1] = Double.parseDouble(xxzdxLdt.getTj2()); + ldtData[2] = Double.parseDouble(xxzdxLdt.getTj3()); + ldtData[3] = Double.parseDouble(xxzdxLdt.getTj4()); + //雷达图 + String xxzdxoptionsLdt = "option = { radar: { radius: '60%',indicator: [\n" + + " { name: '课前运用网络课程平台、教材或资料进行自主预学,梳理知识并发现问题', max: 5 },\n" + + " { name: '课堂上能跟上老师的讲解,主动提问或参与讨论,每节课学有所获', max: 5 },\n" + + " { name: '课后复习笔记及总结课堂教学相关知识', max: 5 },\n" + + " { name: '除了阅读教材,还延伸阅读教师推荐的其他相关书目', max: 5 },\n" + + " ],name: {textStyle: {color: 'black',fontSize: 20,lineHeight: 24,},\n" + + " formatter: function (value) {let list = value.split(\"\");let result = \"\"; for (let i = 1; i <= list.length; i++) {if (!(i % 13) && list[i] != undefined) { result += list[i - 1] + '\\n';} else {result += list[i - 1];} }return result;},},},\n" + + " series: [{type: 'radar',data: [{value: \n" +JSONObject.toJSONString(ldtData)+ " ,label:{show: true,position: 'outside',fontSize:20},},]}]}"; + String xxzdxldt25 = WebDriverUtil.getImgByte500(xxzdxoptionsLdt); + log.info("================================"); + log.info(xxzdxldt25); + log.info("================================"); + result.put("xxzdxldt25", xxzdxldt25); + } + } + + private void tj24(BlTeacherInfo blTeacherMain, Map result) { + //学生学习主动性 + //教师评价各环节上的学生学习主动性各项占比 + List xsxxzdxTjtList = baseMapper.getSelectxsxxzdxTjt(blTeacherMain); + Integer xsxxzdxTjt11[] = new Integer[xsxxzdxTjtList.size()];//非常满意 + Integer xsxxzdxTjt12[] = new Integer[xsxxzdxTjtList.size()];//比较符合 + Integer xsxxzdxTjt13[] = new Integer[xsxxzdxTjtList.size()];//一般 + Integer xsxxzdxTjt14[] = new Integer[xsxxzdxTjtList.size()];//比较不符合 + Integer xsxxzdxTjt15[] = new Integer[xsxxzdxTjtList.size()];//非常不符合 + String xsxxzdxTjt1Name[] = new String[xsxxzdxTjtList.size()];//名称 + for(int i=0;i result) { + //不同职称教师课下与学生在不同方面交流的比例 + List sshdTjt3List = baseMapper.getSelectsshdTjt3(blTeacherMain); + Integer sshdTjt31[] = new Integer[6];// + Integer sshdTjt32[] = new Integer[6];// + Integer sshdTjt33[] = new Integer[6];// + Integer sshdTjt34[] = new Integer[6];// + for(int i=0;i cgdx4List = baseMapper.getSelectcgdx4(blTeacherMain); - List> sixteenList = Lists.newArrayList(); - for(BlTeacherAnswer par:cgdx4List){ - List list = Lists.newArrayList(); - list.add(par.getLsname()); - list.add(par.getTj1()); - list.add(par.getTj2()); - list.add(par.getTj3()); - list.add(par.getTj4()); - list.add(par.getTj5()); - list.add(par.getTj6()); - sixteenList.add(list); - } - wo.insert2Table(16, 1, true, sixteenList); - - //6.师生互动 - BlTeacherAnswer sshdbfb = baseMapper.getSelectsshdbfb(blTeacherMain); - result.put("sshdbfb1", sshdbfb.getTj1()); - result.put("sshdbfb1", sshdbfb.getTj2()); - result.put("sshdbfb1", sshdbfb.getTj3()); - result.put("sshdbfb1", sshdbfb.getTj4()); - result.put("sshdbfb1", sshdbfb.getTj5()); - result.put("sshdbfb1", sshdbfb.getTj6()); - //教师课下与学生在不同方面交流的比例 - //todo 左侧展示有问题 - List sshdbfbTjt1 = baseMapper.getSelectsshdbfbTjt1(blTeacherMain); - Integer sshdbfbzt1[] = new Integer[sshdbfbTjt1.size()];// - String sshdbfbztName[] = new String[sshdbfbTjt1.size()];//名称 - for(int i=0;i result) { //不同职称教师在各项工作上的平均时间投入 List sshdTjt2List = baseMapper.getSelectsshdTjt2(blTeacherMain); Integer sshdTjt21[] = new Integer[6];// @@ -1294,792 +1795,834 @@ public class BlTeacherAnswerServiceImpl extends ServiceImpl sshdTjt3List = baseMapper.getSelectsshdTjt3(blTeacherMain); - Integer sshdTjt31[] = new Integer[6];// - Integer sshdTjt32[] = new Integer[6];// - Integer sshdTjt33[] = new Integer[6];// - Integer sshdTjt34[] = new Integer[6];// - for(int i=0;i result) { + //教师课下与学生在不同方面交流的比例 + //todo 左侧展示有问题 + List sshdbfbTjt1 = baseMapper.getSelectsshdbfbTjt1(blTeacherMain); + Integer sshdbfbzt1[] = new Integer[sshdbfbTjt1.size()];// + String sshdbfbztName[] = new String[sshdbfbTjt1.size()];//名称 + for(int i=0;i result) { + //不同职称教师评价“成果导向”理念的落实情况 + List cgdxTjt3List = baseMapper.getSelectcgdxTjt3(blTeacherMain); + Integer cgdxTjt3Num[] = new Integer[5];// + Integer cgdxTjt3Num1[] = new Integer[5];// + Integer cgdxTjt3Num2[] = new Integer[5];// + Integer cgdxTjt3Num3[] = new Integer[5];// + String cgdxTjt3Name[] = new String[5];// + for(int i=0;i sshd4List = baseMapper.getSelectsshd4(blTeacherMain); - List> seventeenList = Lists.newArrayList(); - for(BlTeacherAnswer par:sshd4List){ - List list = Lists.newArrayList(); - list.add(par.getLsname()); - list.add(par.getTj1()); - list.add(par.getTj2()); - list.add(par.getTj3()); - list.add(par.getTj4()); - list.add(par.getTj5()); - list.add(par.getTj6()); - seventeenList.add(list); + private void tj19(BlTeacherInfo blTeacherMain, Map result) { + //不同岗位类型教师评价“成果导向”理念的落实情况 + List cgdxTjt2List = baseMapper.getSelectcgdxTjt2(blTeacherMain); + Integer cgdxTjt2Num[] = new Integer[5];// + Integer cgdxTjt2Num1[] = new Integer[5];// + for(int i=0;i xsxxzdxTjtList = baseMapper.getSelectxsxxzdxTjt(blTeacherMain); - Integer xsxxzdxTjt11[] = new Integer[xsxxzdxTjtList.size()];//非常满意 - Integer xsxxzdxTjt12[] = new Integer[xsxxzdxTjtList.size()];//比较符合 - Integer xsxxzdxTjt13[] = new Integer[xsxxzdxTjtList.size()];//一般 - Integer xsxxzdxTjt14[] = new Integer[xsxxzdxTjtList.size()];//比较不符合 - Integer xsxxzdxTjt15[] = new Integer[xsxxzdxTjtList.size()];//非常不符合 - String xsxxzdxTjt1Name[] = new String[xsxxzdxTjtList.size()];//名称 - for(int i=0;i result) { + //践行“成果导向”理念 + BlTeacherAnswer cgdxln1 = baseMapper.getSelectcgdxln1(blTeacherMain); + if(cgdxln1!=null){ + result.put("cglndxbfb1", cgdxln1.getTj1()); + result.put("cglndxbfb2", cgdxln1.getTj2()); + result.put("cglndxbfb3", cgdxln1.getTj3()); + result.put("cglndxbfb4", cgdxln1.getTj4()); + result.put("cglndxbfb5", cgdxln1.getTj5()); - //教师评价学生学习主动性 雷达图 - BlTeacherAnswer xxzdxLdt = baseMapper.getSelectxxzdxLdt(blTeacherMain); - result.put("xxzdxbfb1", xxzdxLdt.getTj1()); - result.put("xxzdxbfb2", xxzdxLdt.getTj2()); - result.put("xxzdxbfb3", xxzdxLdt.getTj3()); - result.put("xxzdxbfb4", xxzdxLdt.getTj4()); - - Double ldtData[] = new Double[4]; - ldtData[0] = Double.parseDouble(xxzdxLdt.getTj1()); - ldtData[1] = Double.parseDouble(xxzdxLdt.getTj2()); - ldtData[2] = Double.parseDouble(xxzdxLdt.getTj3()); - ldtData[3] = Double.parseDouble(xxzdxLdt.getTj4()); - //雷达图 - String xxzdxoptionsLdt = "option = { radar: { radius: '60%',indicator: [\n" + - " { name: '课前运用网络课程平台、教材或资料进行自主预学,梳理知识并发现问题', max: 5 },\n" + - " { name: '课堂上能跟上老师的讲解,主动提问或参与讨论,每节课学有所获', max: 5 },\n" + - " { name: '课后复习笔记及总结课堂教学相关知识', max: 5 },\n" + - " { name: '除了阅读教材,还延伸阅读教师推荐的其他相关书目', max: 5 },\n" + - " ],name: {textStyle: {color: 'black',fontSize: 20,lineHeight: 24,},\n" + - " formatter: function (value) {let list = value.split(\"\");let result = \"\"; for (let i = 1; i <= list.length; i++) {if (!(i % 13) && list[i] != undefined) { result += list[i - 1] + '\\n';} else {result += list[i - 1];} }return result;},},},\n" + - " series: [{type: 'radar',data: [{value: \n" +JSONObject.toJSONString(ldtData)+ " ,label:{show: true,position: 'outside',fontSize:20},},]}]}"; - String xxzdxldt25 = WebDriverUtil.getImgByte500(xxzdxoptionsLdt); - log.info("================================"); - log.info(xxzdxldt25); - log.info("================================"); - result.put("xxzdxldt25", xxzdxldt25); - - //不同岗位类型教师评价学生学习主动性 - List xsxxzdx5List = baseMapper.getSelectsshd5(blTeacherMain); - List> eighteenList = Lists.newArrayList(); - for(BlTeacherAnswer par:xsxxzdx5List){ - List list = Lists.newArrayList(); - list.add(par.getLsname()); - list.add(par.getTj1()); - list.add(par.getTj2()); - eighteenList.add(list); + //教师评价“成果导向”理念的落实情况 + List cgdxTjt1List = baseMapper.getSelectcgdxTjt1(blTeacherMain); + Integer cgdxTjt1Num[] = new Integer[cgdxTjt1List.size()];// + String cgdxTjt1Name[] = new String[cgdxTjt1List.size()];//名称 + for(int i=0;i result) { + //课程“两性一度”的实施情况 雷达图 + BlTeacherAnswer kclxydldt = baseMapper.getSelectKclxydLdt(blTeacherMain); + if(kclxydldt!=null){ + String ldt1 = kclxydldt.getTj1(); + String ldt2 = kclxydldt.getTj2(); + String ldt3 = kclxydldt.getTj3(); + String ldt4 = kclxydldt.getTj4(); + String ldt5 = kclxydldt.getTj5(); + String ldt6 = kclxydldt.getTj6(); + result.put("lxydldt1", ldt1); + result.put("lxydldt2", ldt2); + result.put("lxydldt3", ldt3); + result.put("lxydldt4", ldt4); + result.put("lxydldt5", ldt5); + result.put("lxydldt6", ldt6); + //雷达图 课程“两性一度”的实施情况 + Double ldtLxydData[] = new Double[6]; + ldtLxydData[0] =Double.parseDouble(ldt1); + ldtLxydData[1] =Double.parseDouble(ldt2); + ldtLxydData[2] =Double.parseDouble(ldt3); + ldtLxydData[3] =Double.parseDouble(ldt4); + ldtLxydData[4] =Double.parseDouble(ldt5); + ldtLxydData[5] =Double.parseDouble(ldt6); + String kclxyd17Ldt = "option = { radar: { radius: '60%',indicator: [\n" + + " { name: '课程将知识、能力、素养进行了有机融合', max: 5 },\n" + + " { name: '课程教学培养了我解决复杂问题的综合能力', max: 5 },\n" + + " { name: '课程内容注重学科间的交叉与融合', max: 5 },\n" + + " { name: '课程内容反映了学科发展的前沿内容', max: 5 },\n" + + " { name: '课程教学内容重视实践与理论的结合', max: 5 },\n" + + " { name: '需要非常努力才能达到课程要求', max: 5 },\n" + + " ],name: {textStyle: {color: 'black',fontSize: 20,lineHeight: 24,},\n" + + " formatter: function (value) {let list = value.split(\"\");let result = \"\"; for (let i = 1; i <= list.length; i++) {if (!(i % 17) && list[i] != undefined) { result += list[i - 1] + '\\n';} else {result += list[i - 1];} }return result;},},},\n" + + " series: [{type: 'radar',data: [{value: \n" +JSONObject.toJSONString(ldtLxydData)+ " ,label:{show: true,position: 'outside',fontSize:20},},]}]}"; + String kclxyd17 = WebDriverUtil.getImgByte(kclxyd17Ldt); + log.info("================================"); + log.info(kclxyd17); + log.info("================================"); + result.put("kclxyd17", kclxyd17); + } + } - //不同职称教师评价学生学习主动性 - List xsxxzdx6List = baseMapper.getSelectsshd6(blTeacherMain); - List> nineteenList = Lists.newArrayList(); - for(BlTeacherAnswer par:xsxxzdx6List){ - List list = Lists.newArrayList(); - list.add(par.getLsname()); - list.add(par.getTj1()); - list.add(par.getTj2()); - list.add(par.getTj3()); - list.add(par.getTj4()); - nineteenList.add(list); + private void tj16(BlTeacherInfo blTeacherMain, Map result) { + //课程“两性一度” + List kclxyd1List = baseMapper.getSelectKclxyd1(blTeacherMain); + Integer kclxydTjfxDdt1[] = new Integer[kclxyd1List.size()];//非常满意 + Integer kclxydTjfxDdt2[] = new Integer[kclxyd1List.size()];//比较符合 + Integer kclxydTjfxDdt3[] = new Integer[kclxyd1List.size()];//一般 + Integer kclxydTjfxDdt4[] = new Integer[kclxyd1List.size()];//比较不符合 + Integer kclxydTjfxDdt5[] = new Integer[kclxyd1List.size()];//非常不符合 + String kclxydTjfxName[] = new String[kclxyd1List.size()];//名称 + for(int i=0;i xsxxzdx7List = baseMapper.getSelectsshd7(blTeacherMain); - List> list20 = Lists.newArrayList(); - for(BlTeacherAnswer par:xsxxzdx7List){ - List list = Lists.newArrayList(); - list.add(par.getLsname()); - list.add(par.getTj1()); - list.add(par.getTj2()); - list.add(par.getTj3()); - list.add(par.getTj4()); - list20.add(list); - } - wo.insert2Table(20, 1, true, list20); - //学生学习主动性 - //教师对本校教师培训各方面的满意度评价各项占比 - List jsfz1List = baseMapper.getSelectjsfz1(blTeacherMain); - Integer jsfz11[] = new Integer[jsfz1List.size()];//非常满意 - Integer jsfz12[] = new Integer[jsfz1List.size()];//比较符合 - Integer jsfz13[] = new Integer[jsfz1List.size()];//一般 - Integer jsfz14[] = new Integer[jsfz1List.size()];//比较不符合 - String jsfz1Name[] = new String[jsfz1List.size()];//名称 - for(int i=0;i jsfz3List = baseMapper.getSelectjsfz3(blTeacherMain); - List> jsfz21list = Lists.newArrayList(); - for(BlTeacherAnswer par:jsfz3List){ - List list = Lists.newArrayList(); - list.add(par.getLsname()); - list.add(par.getTj1()); - list.add(par.getTj2()); - list.add(par.getTj3()); - list.add(par.getTj4()); - jsfz21list.add(list); - } - wo.insert2Table(21, 1, true, jsfz21list); - - //不同职称教师对本校教师培训各方面的满意度 - List jsfz4List = baseMapper.getSelectjsfz4(blTeacherMain); - List> jsfz22list = Lists.newArrayList(); - for(BlTeacherAnswer par:jsfz4List){ - List list = Lists.newArrayList(); - list.add(par.getLsname()); - list.add(par.getTj1()); - list.add(par.getTj2()); - list.add(par.getTj3()); - list.add(par.getTj4()); - jsfz22list.add(list); - } - wo.insert2Table(22, 1, true, jsfz22list); - - //各学院教师对本校教师培训各方面的满意度 - List jsfz5List = baseMapper.getSelectjsfz5(blTeacherMain); - List> jsfz23list = Lists.newArrayList(); - for(BlTeacherAnswer par:jsfz5List){ - List list = Lists.newArrayList(); - list.add(par.getLsname()); - list.add(par.getTj1()); - list.add(par.getTj2()); - list.add(par.getTj3()); - list.add(par.getTj4()); - jsfz23list.add(list); - } - wo.insert2Table(23, 1, true, jsfz23list); - - - - - - - - - //资源与服务支持 - //教师对工作氛围各方面评价各项占比 - List zyfwyzc1List = baseMapper.getSelectzyfwyzc1(blTeacherMain); - Integer zyfwyzc11[] = new Integer[zyfwyzc1List.size()];//非常满意 - Integer zyfwyzc12[] = new Integer[zyfwyzc1List.size()];//比较符合 - Integer zyfwyzc13[] = new Integer[zyfwyzc1List.size()];//一般 - Integer zyfwyzc14[] = new Integer[zyfwyzc1List.size()];//比较不符合 - String zyfwyzc1Name[] = new String[zyfwyzc1List.size()];//名称 - for(int i=0;i zyfwyzc3List = baseMapper.getSelectzyfwyzc3(blTeacherMain); - List> zyfwyzc21list = Lists.newArrayList(); - for(BlTeacherAnswer par:zyfwyzc3List){ - List list = Lists.newArrayList(); - list.add(par.getLsname()); - list.add(par.getTj1()); - list.add(par.getTj2()); - list.add(par.getTj3()); - list.add(par.getTj4()); - zyfwyzc21list.add(list); - } - wo.insert2Table(24, 1, true, zyfwyzc21list); - - //不同职称教师对工作氛围各方面的评价 - List zyfwyzc4List = baseMapper.getSelectzyfwyzc4(blTeacherMain); - List> zyfwyzc22list = Lists.newArrayList(); - for(BlTeacherAnswer par:zyfwyzc4List){ - List list = Lists.newArrayList(); - list.add(par.getLsname()); - list.add(par.getTj1()); - list.add(par.getTj2()); - list.add(par.getTj3()); - list.add(par.getTj4()); - zyfwyzc22list.add(list); - } - wo.insert2Table(25, 1, true, zyfwyzc22list); - - //各学院教师对工作氛围各方面的评价 - List zyfwyzc5List = baseMapper.getSelectzyfwyzc5(blTeacherMain); - List> zyfwyzc23list = Lists.newArrayList(); - for(BlTeacherAnswer par:zyfwyzc5List){ - List list = Lists.newArrayList(); - list.add(par.getLsname()); - list.add(par.getTj1()); - list.add(par.getTj2()); - list.add(par.getTj3()); - list.add(par.getTj4()); - list.add(par.getTj5()); - list.add(par.getTj6()); - zyfwyzc23list.add(list); - } - wo.insert2Table(26, 1, true, zyfwyzc23list); - - - - - - //教学评价工作 - //教师对本校教学评价各方面工作评价各项占比 - List zytjpj1List = baseMapper.getSelectzytjpj1(blTeacherMain); - Integer zytjpj11[] = new Integer[zytjpj1List.size()];//非常满意 - Integer zytjpj12[] = new Integer[zytjpj1List.size()];//比较符合 - Integer zytjpj13[] = new Integer[zytjpj1List.size()];//一般 - Integer zytjpj14[] = new Integer[zytjpj1List.size()];//比较不符合 - Integer zytjpj15[] = new Integer[zytjpj1List.size()];//非常不符合 - String zytjpj1Name[] = new String[zytjpj1List.size()];//名称 - for(int i=0;i zytjpj3List = baseMapper.getSelectjxpjgz3(blTeacherMain); - List> zytjpj21list = Lists.newArrayList(); - for(BlTeacherAnswer par:zytjpj3List){ - List list = Lists.newArrayList(); - list.add(par.getLsname()); - list.add(par.getTj1()); - list.add(par.getTj2()); - list.add(par.getTj3()); - list.add(par.getTj4()); - zytjpj21list.add(list); - } - wo.insert2Table(27, 1, true, zytjpj21list); - - //不同职称教师对本校教学评价各方面工作的评价 - List zytjpj4List = baseMapper.getSelectjxpjgz4(blTeacherMain); - List> zytjpj22list = Lists.newArrayList(); - for(BlTeacherAnswer par:zytjpj4List){ - List list = Lists.newArrayList(); - list.add(par.getLsname()); - list.add(par.getTj1()); - list.add(par.getTj2()); - list.add(par.getTj3()); - list.add(par.getTj4()); - zytjpj22list.add(list); - } - wo.insert2Table(28, 1, true, zytjpj22list); - - //各学院教师对本校教学评价各方面工作的评价 - List jxzypj5List = baseMapper.getSelectjxpjgz5(blTeacherMain); - List> zytjpj23list = Lists.newArrayList(); - for(BlTeacherAnswer par:jxzypj5List){ - List list = Lists.newArrayList(); - list.add(par.getLsname()); - list.add(par.getTj1()); - list.add(par.getTj2()); - list.add(par.getTj3()); - list.add(par.getTj4()); - list.add(par.getTj5()); - list.add(par.getTj6()); - zytjpj23list.add(list); - } - wo.insert2Table(29, 1, true, zytjpj23list); - - //资源条件评价 - //教师对本校资源条件的满意度评价各项占比 - List zytjpj2List = baseMapper.getSelectzytjpj1(blTeacherMain); - Integer zytjpj21[] = new Integer[zytjpj2List.size()];//非常满意 - Integer zytjpj22[] = new Integer[zytjpj2List.size()];//比较符合 - Integer zytjpj23[] = new Integer[zytjpj2List.size()];//一般 - Integer zytjpj24[] = new Integer[zytjpj2List.size()];//比较不符合 - Integer zytjpj25[] = new Integer[zytjpj2List.size()];//非常不符合 - String zytjpj2Name[] = new String[zytjpj2List.size()];//名称 - for(int i=0;i zytjpj13List = baseMapper.getSelectzytjpj3(blTeacherMain); - List> zytjpj121list = Lists.newArrayList(); - for(BlTeacherAnswer par:zytjpj13List){ - List list = Lists.newArrayList(); - list.add(par.getLsname()); - list.add(par.getTj1()); - list.add(par.getTj2()); - list.add(par.getTj3()); - list.add(par.getTj4()); - zytjpj121list.add(list); - } - wo.insert2Table(30, 1, true, zytjpj121list); - - //不同职称教师对本校教学评价各方面工作的评价 - List zytjpj14List = baseMapper.getSelectzytjpj4(blTeacherMain); - List> zytjpj122list = Lists.newArrayList(); - for(BlTeacherAnswer par:zytjpj14List){ - List list = Lists.newArrayList(); - list.add(par.getLsname()); - list.add(par.getTj1()); - list.add(par.getTj2()); - list.add(par.getTj3()); - list.add(par.getTj4()); - zytjpj122list.add(list); - } - wo.insert2Table(31, 1, true, zytjpj122list); - - //各学院教师对本校各项资源条件的满意度 - List zytjpj15List = baseMapper.getSelectzytjpj5(blTeacherMain); - List> zytjpj123list = Lists.newArrayList(); - for(BlTeacherAnswer par:zytjpj15List){ - List list = Lists.newArrayList(); - list.add(par.getLsname()); - list.add(par.getTj1()); - list.add(par.getTj2()); - list.add(par.getTj3()); - list.add(par.getTj4()); - list.add(par.getTj5()); - zytjpj123list.add(list); - } - wo.insert2Table(32, 1, true, zytjpj123list); - - //总体评价 - //学校整体满意度 - BlTeacherAnswer ztmydpj = baseMapper.getSelectztmydpj(blTeacherMain); - result.put("ztpjmydbfb1", ztmydpj.getTj1()); - //教师对学校的整体满意度各项占比 - BlTeacherAnswer ztmydzb = baseMapper.getSelectztmydzb(blTeacherMain); - result.put("ztpjmydbfb2", ztmydzb.getTj1()); - result.put("ztpjmydbfb3", ztmydzb.getTj2()); - result.put("ztpjmydbfb4", ztmydzb.getTj3()); - result.put("ztpjmydbfb5", ztmydzb.getTj4()); - //教师对学校的整体满意度各项占比 - //堆叠图 - String ztmydzb1Options ="option = { tooltip: { trigger: 'axis', axisPointer: { type: 'shadow' } },\n" + - " legend: { textStyle: {color:'#333', fontSize: 30 }}, grid: { left: '3%', right: '4%', bottom: '3%', containLabel: true }, xAxis: { type: 'value' }, yAxis: { type: 'category',\n" + - " data: ['对学校的整体满意度'],\n" + + " data: "+JSONObject.toJSONString(kclxydTjfxName)+",\n" + " axisLabel: {color:'#333', fontSize:17, formatter: function (value) {let list = value.split(\"\");let result = \"\"; for (let i = 1; i <= list.length; i++) {if (!(i % 17) && list[i] != undefined) { result += list[i - 1] + '\\n';} else {result += list[i - 1];} }return result;} } },\n" + " series: [ { name: '非常符合', type: 'bar', stack: 'total', label: { show: true, fontSize: 30 }, emphasis: { focus: 'series' },\n" + - " data: ["+(int)Double.parseDouble(ztmydzb.getTj1())+"], barWidth: 45, itemStyle: { color: '#2350a0' } },\n" + + " data: "+ JSONObject.toJSONString(kclxydTjfxDdt1)+", barWidth: 45, itemStyle: { color: '#2350a0' } },\n" + " { name: '比较符合', type: 'bar', stack: 'total', label: { show: true, fontSize: 30 }, emphasis: { focus: 'series' },\n" + - " data: ["+(int)Double.parseDouble(ztmydzb.getTj2())+"], barWidth: 45, itemStyle: { color: '#008ac8' } },\n" + + " data: "+JSONObject.toJSONString(kclxydTjfxDdt2)+", barWidth: 45, itemStyle: { color: '#008ac8' } },\n" + " { name: '一般', type: 'bar', stack: 'total', label: { show: true, fontSize: 30 },emphasis: {focus: 'series'},\n" + - " data: ["+(int)Double.parseDouble(ztmydzb.getTj3())+"], barWidth: 45,itemStyle: {color: '#57b8e7'}}," + - " { name: '比较不满意', type: 'bar', stack: 'total', label: { show: true, fontSize: 30 },emphasis: {focus: 'series'},\n" + - " data: ["+(int)Double.parseDouble(ztmydzb.getTj4())+"], barWidth: 45,itemStyle: {color: '#57b8e7'}}," + + " data: "+JSONObject.toJSONString(kclxydTjfxDdt3)+", barWidth: 45,itemStyle: {color: '#57b8e7'}}," + + " { name: '比较不符合', type: 'bar', stack: 'total', label: { show: true, fontSize: 30 },emphasis: {focus: 'series'},\n" + + " data: "+JSONObject.toJSONString(kclxydTjfxDdt4)+", barWidth: 45,itemStyle: {color: '#57b8e7'}}," + + " { name: '非常不符合', type: 'bar', stack: 'total', label: { show: true, fontSize: 30 },emphasis: {focus: 'series'},\n" + + " data: "+JSONObject.toJSONString(kclxydTjfxDdt5)+", barWidth: 45,itemStyle: {color: '#57b8e7'}}," + "]}"; - String ztmydzb1Img = WebDriverUtil.getImgByte(ztmydzb1Options); + String kclxyd16 = WebDriverUtil.getImgByte500(kclxyd16Options); log.info("================================"); - log.info(ztmydzb1Img); + log.info(kclxyd16); log.info("================================"); - result.put("sdsfhp34", ztmydzb1Img); - //教师对学校的整体满意度 - //饼图 - int kbsx = 100 - (int)Double.parseDouble(ztmydpj.getTj1()); - String jsdxydztmydOptions ="option = {series: [\n" + - " {type: 'pie',radius: ['40%', '70%'],avoidLabelOverlap: true,\n" + - " label: {show: true, position: 'center',textStyle: {fontSize: 22}},\n" + - " data: [\n" + - " { value: "+(int)Double.parseDouble(ztmydpj.getTj1())+", name: '对学校的整体满意度\\n"+(int)Double.parseDouble(ztmydpj.getTj1())+"%'},\n" + - " { value: "+kbsx+", name: '',itemStyle:{color:'#d2d2d2'} },\n" + - " ]\n" + - " }]}"; - String jsdxydztmydImg = WebDriverUtil.getImgByte(jsdxydztmydOptions); - log.info("================================"); - log.info(ztmydzb1Img); - log.info("================================"); - result.put("ztmyd35", jsdxydztmydImg); + result.put("kclxyd16", kclxyd16); + } - //不同岗位类型教师对学校整体的满意度 - List xxztmyd3List = baseMapper.getSelectxxztmyd3(blTeacherMain); - Integer num1 = 0; - Integer num2 = 0; - Integer num3 = 0; - Integer num4 = 0; - for(BlTeacherAnswer par:xxztmyd3List){ - if(StringUtils.equals(par.getLsname(),"教学科研型")){ - num1 = (int)Double.parseDouble(par.getTj1()); - }else if(StringUtils.equals(par.getLsname(),"教学型")){ - num2 = (int)Double.parseDouble(par.getTj1()); - }else if(StringUtils.equals(par.getLsname(),"科研型")){ - num3 = (int)Double.parseDouble(par.getTj1()); - }else if(StringUtils.equals(par.getLsname(),"辅导员")){ - num4 = (int)Double.parseDouble(par.getTj1()); - } - } - String xxztmyd3Options ="option = {\n" + - " title: {subtext: '(%)'},legend: { textStyle: {color:'#333', fontSize: 30 }},tooltip: {},\n" + - " dataset: {source: [ \n" + - " ['对学校整体的满意度', "+num1+", "+num2+", "+num3+", "+num4+"], \n" + - " ]},xAxis: { type: 'category' },yAxis: {}, \n" + - " series: [\n" + - " {name:'教学科研型',type: 'bar',barWidth:50, label: { show: true, position: 'top',fontSize:20 } }, \n" + - " {name:'教学型',type: 'bar',barWidth:50, label: { show: true, position: 'top',fontSize:20 } },\n" + - " {name:'科研型',type: 'bar',barWidth:50, label: { show: true, position: 'top',fontSize:20 } },\n" + - " {name:'辅导员',type: 'bar',barWidth:50, label: { show: true, position: 'top',fontSize:20 } },\n" + - " ]\n" + - "}"; - String xxztmyd3Img = WebDriverUtil.getImgByte(xxztmyd3Options); - log.info("================================"); - log.info(xxztmyd3Img); - log.info("================================"); - result.put("ztmyd36", xxztmyd3Img); - - //不同职称教师对学校整体的满意度 - List xxztmyd4List = baseMapper.getSelectxxztmyd4(blTeacherMain); - Integer zcnum1 = 0; - Integer zcnum2 = 0; - Integer zcnum3 = 0; - Integer zcnum4 = 0; - for(BlTeacherAnswer par:xxztmyd4List){ + private void tj15(BlTeacherInfo blTeacherMain, Map result) { + //不同职称教师课程教学融入思政元素的方式 + List btzcjskcjxrrszysList = baseMapper.getSelectBtzcjskcjxrrszys(blTeacherMain); + Integer btzcjskcjxrrszys1[] = new Integer[5];// + Integer btzcjskcjxrrszys2[] = new Integer[5];// + Integer btzcjskcjxrrszys3[] = new Integer[5];// + Integer btzcjskcjxrrszys4[] = new Integer[5];// + for(int i=0;i xxztmyd5List = baseMapper.getSelectxxztmyd5(blTeacherMain); - List> xxztmyd5list = Lists.newArrayList(); - for(BlTeacherAnswer par:xxztmyd5List){ - List list = Lists.newArrayList(); - list.add(par.getLsname()); - list.add(par.getTj1()); - xxztmyd5list.add(list); - } - wo.insert2Table(33, 1, true, xxztmyd5list); + //多柱图 + String szkc15Options = "option = {\n" + + " tooltip: { trigger: 'axis', axisPointer: { type: 'shadow' } }, legend: {}, grid: { left: '3%', right: '4%', bottom: '3%', containLabel: true }, xAxis: { type: 'value', boundaryGap: [0, 0.01] }, yAxis: { type: 'category',\n" + + "data: ['以讲授为主融入课程内容', '在学生参与讨论、展示等课堂互动环节中融入', '融入课堂作业、论文中', '融入实验、实训中', '并未涉及题目所述内容'],inverse:true }, series: [ {\n" + + " name: '正高级', type: 'bar',\n" + + " data: "+JSONObject.toJSONString(btzcjskcjxrrszys1)+" ,label:{show: true,position: 'outside'},}, " + + "{ name: '副高级', type: 'bar',\n" + + " data: "+JSONObject.toJSONString(btzcjskcjxrrszys2)+" ,label:{show: true,position: 'outside'},}, " + + "{ name: '中级', type: 'bar',\n" + + " data: "+JSONObject.toJSONString(btzcjskcjxrrszys3)+" ,label:{show: true,position: 'outside'},}, " + + "{ name: '初级', type: 'bar',\n" + + " data: "+JSONObject.toJSONString(btzcjskcjxrrszys4)+" ,label:{show: true,position: 'outside'},}, " + + "] }"; + String szkc15 = WebDriverUtil.getImgByte(szkc15Options); + log.info("================================"); + log.info(szkc15); + log.info("================================"); + result.put("szkc15", szkc15);// + } - wo = WordOperator.twoReplaceWord(wo); - wo.replaceTextPlus(result); - return wo; + private void tj14(BlTeacherInfo blTeacherMain, Map result) { + //不同岗位类型教师课程教学融入思政元素的方式 + List btgwlxjskcjxrrszysList = baseMapper.getSelectBtgwlxjskcjxrrszys(blTeacherMain); + Integer btgwlxjskcjxrrszys1[] = new Integer[5];// + Integer btgwlxjskcjxrrszys2[] = new Integer[5];// + for(int i=0;i result) { + //课程思政-统计数据 + BlTeacherAnswer szkcAcswer = baseMapper.getSelectSzkcAnswer(blTeacherMain); + if(szkcAcswer!=null){ + result.put("szkctjfx1", szkcAcswer.getTj1()); + result.put("szkctjfx2", szkcAcswer.getTj2()); + result.put("szkctjfx3", szkcAcswer.getTj3()); + result.put("szkctjfx4", szkcAcswer.getTj4()); + + //课程教学融入思政元素的方式 + List kcjxrrszysTjtList = baseMapper.getSelectKcjxrrszysTjt(blTeacherMain); + Integer kcjxrrszysTjt1[] = new Integer[kcjxrrszysTjtList.size()];// + String kcjxrrszysTjt2[] = new String[kcjxrrszysTjtList.size()];//名称 + for(int i=0;i result) { + //不同职称教师在各类教学任务上的占比 + List btzcjszgljxrwzbList = baseMapper.getSelectBtzcjszgljxrwzb(blTeacherMain); + Integer btzcjszgljxrwzb1[] = new Integer[5];// + Integer btzcjszgljxrwzb2[] = new Integer[5];// + Integer btzcjszgljxrwzb3[] = new Integer[5];// + Integer btzcjszgljxrwzb4[] = new Integer[5];// + for(int i=0;i result) { + //不同岗位类型教师在各项工作上的平均时间投入 + List btgwlxjszgxgzrdpjsjtrList = baseMapper.getSelectBtgwlxjszgxgzrdpjsjtr(blTeacherMain); + Integer btgwlxjszgxgzrdpjsjtr1[] = new Integer[5];// + Integer btgwlxjszgxgzrdpjsjtr2[] = new Integer[5];// + for(int i=0;i result) { + //教师在各类教学任务分配比例 + List jszgljxrwfpblList = baseMapper.getSelectJszgljxrwfpbl(blTeacherMain); + String jszgljxrwfpblname[] = new String[jszgljxrwfpblList.size()]; + Integer jszgljxrwfpblData[] = new Integer[jszgljxrwfpblList.size()]; + for(int i=0;i result) { + //不同职称教师在各项工作上的平均时间投入 + List btzcjspjtrscTjtList = baseMapper.getSelectBtzcjspjtrscTjt(blTeacherMain); + Integer btzxpjsjTj1[] = new Integer[6];// + Integer btzxpjsjTj2[] = new Integer[6];// + Integer btzxpjsjTj3[] = new Integer[6];// + Integer btzxpjsjTj4[] = new Integer[6];// + for(int i=0;i result) { + //不同岗位类型教师在各项工作上的平均时间投入 + List btgwlxpjsjTjtList = baseMapper.getSelectBtgwlxpjsjTjt(blTeacherMain); + Integer btgwlxpjsjTj1[] = new Integer[6];// + Integer btgwlxpjsjTj2[] = new Integer[6];// + for(int i=0;i result) { + //教师各项工作的平均时间投入 + List jxsjtrTjtList = baseMapper.getSelectJxsjtrTjt(blTeacherMain); + Integer cnrFcfh[] = new Integer[jxsjtrTjtList.size()];// + String cnrName[] = new String[jxsjtrTjtList.size()];//名称 + for(int i=0;i result) { + //教师对教学能力各方面的评价雷达图 + BlTeacherAnswer jxnlpjLdt = baseMapper.getSelectJxnlpjLdt(blTeacherMain); + if(jxnlpjLdt!=null){ + String jsnggfmpj1 = jxnlpjLdt.getTj1(); + String jsnggfmpj2 = jxnlpjLdt.getTj2(); + String jsnggfmpj3 = jxnlpjLdt.getTj3(); + String jsnggfmpj4 = jxnlpjLdt.getTj4(); + String jsnggfmpj5 = jxnlpjLdt.getTj5(); + result.put("jsnggfmpj1", jsnggfmpj1); + result.put("jsnggfmpj2", jsnggfmpj2); + result.put("jsnggfmpj3", jsnggfmpj3); + result.put("jsnggfmpj4", jsnggfmpj4); + result.put("jsnggfmpj5", jsnggfmpj5); + + Double ldt3Data[] = new Double[5]; + ldt3Data[0] = Double.parseDouble(jsnggfmpj1); + ldt3Data[1] = Double.parseDouble(jsnggfmpj2); + ldt3Data[2] = Double.parseDouble(jsnggfmpj3); + ldt3Data[3] = Double.parseDouble(jsnggfmpj4); + ldt3Data[4] = Double.parseDouble(jsnggfmpj5); + //雷达图 + String jsdjxnlgfmpggxzbLdtImg6Ldt = "option = { radar: { radius: '60%',indicator: [\n" + + " { name: '教学认知能力', max: 5 },\n" + + " { name: '教学设计能力', max: 5 },\n" + + " { name: '教学调控能力', max: 5 },\n" + + " { name: '教学评价能力', max: 5 },\n" + + " { name: '运用媒介能力', max: 5 },\n" + + " ],name: {textStyle: {color: 'black',fontSize: 20,lineHeight: 24,},\n" + + " formatter: function (value) {let list = value.split(\"\");let result = \"\"; for (let i = 1; i <= list.length; i++) {if (!(i % 17) && list[i] != undefined) { result += list[i - 1] + '\\n';} else {result += list[i - 1];} }return result;},},},\n" + + " series: [{type: 'radar',data: [{value: \n" +JSONObject.toJSONString(ldt3Data)+ " ,label:{show: true,position: 'outside',fontSize:20},},]}]}"; + String jsdjxnlgfmpggxzbLdtImg6 = WebDriverUtil.getImgByte500(jsdjxnlgfmpggxzbLdtImg6Ldt); + log.info("================================"); + log.info(jsdjxnlgfmpggxzbLdtImg6); + log.info("================================"); + result.put("jsdjxnlgfmpggxzbLdtImg6", jsdjxnlgfmpggxzbLdtImg6); + } + } + + private void tj5(BlTeacherInfo blTeacherMain, Map result) { + //教师对教学能力各方面评价各项占比 + List jxnlpjTjtList = baseMapper.getSelectJxnlpjTjt(blTeacherMain); + Integer jxnlpjFcfh[] = new Integer[jxnlpjTjtList.size()];//非常满意 + Integer jxnlpjBjfh[] = new Integer[jxnlpjTjtList.size()];//比较符合 + Integer jxnlpjYb[] = new Integer[jxnlpjTjtList.size()];//一般 + String jxnlpjName[] = new String[jxnlpjTjtList.size()];//名称 + for(int i=0;i result) { + //教师基本行为互评雷达图及占比 + BlTeacherAnswer jsjbxwhpLdtzb = baseMapper.getSelectJsjbxwhpLdtzb(blTeacherMain); + if(jsjbxwhpLdtzb!=null){ + String jsjbxwhppf1 = jsjbxwhpLdtzb.getTj1(); + String jsjbxwhppf2 = jsjbxwhpLdtzb.getTj2(); + String jsjbxwhppf3 = jsjbxwhpLdtzb.getTj3(); + String jsjbxwhppf4 = jsjbxwhpLdtzb.getTj4(); + String jsjbxwhppf5 = jsjbxwhpLdtzb.getTj5(); + String jsjbxwhppf6 = jsjbxwhpLdtzb.getTj6(); + result.put("jsjbxwhppf1", jsjbxwhppf1);//评分 + result.put("jsjbxwhppf2", jsjbxwhppf2);//评分 + result.put("jsjbxwhppf3", jsjbxwhppf3);//评分 + result.put("jsjbxwhppf4", jsjbxwhppf4);//评分 + result.put("jsjbxwhppf5", jsjbxwhppf5);//评分 + result.put("jsjbxwhppf6", jsjbxwhppf6);//评分 + + + + Double ldt2Data[] = new Double[6]; + ldt2Data[0] = Double.parseDouble(jsjbxwhppf1); + ldt2Data[1] = Double.parseDouble(jsjbxwhppf2); + ldt2Data[2] = Double.parseDouble(jsjbxwhppf3); + ldt2Data[3] = Double.parseDouble(jsjbxwhppf4); + ldt2Data[4] = Double.parseDouble(jsjbxwhppf5); + ldt2Data[5] = Double.parseDouble(jsjbxwhppf6); + //雷达图 + String jsjbxwhpLdtImg4Ldt = "option = { radar: { radius: '60%',indicator: [\n" + + " { name: '热爱工作,能以最大的热情投身教育行业,积极主动学习', max: 5 },\n" + + " { name: '关爱学生,积极帮助学生解决生活或学习上的困难', max: 5 },\n" + + " { name: '关注学生的心理健康状况', max: 5 },\n" + + " { name: '教学有序,有清晰合理的教学目标并能清楚地向学生解释', max: 5 },\n" + + " { name: '育人有方,激发学生的学习兴趣,注重培养学生的创新精神和创新思维', max: 5 },\n" + + " { name: '以身作则,信守承诺', max: 5 },\n" + + " ],name: {textStyle: {color: 'black',fontSize: 20,lineHeight: 24,},\n" + + " formatter: function (value) {let list = value.split(\"\");let result = \"\"; for (let i = 1; i <= list.length; i++) {if (!(i % 17) && list[i] != undefined) { result += list[i - 1] + '\\n';} else {result += list[i - 1];} }return result;},},},\n" + + " series: [{type: 'radar',data: [{value: \n" +JSONObject.toJSONString(ldt2Data)+ " ,label:{show: true,position: 'outside',fontSize:20},},]}]}"; + String jsjbxwhpLdtImg4 = WebDriverUtil.getImgByte500(jsjbxwhpLdtImg4Ldt); + log.info("================================"); + log.info(jsjbxwhpLdtImg4); + log.info("================================"); + result.put("jsjbxwhpLdtImg4", jsjbxwhpLdtImg4); + } + } + + private void tj3(BlTeacherInfo blTeacherMain, Map result) { + //教师基本行为互评柱状图 - 教师基本行为互评各项占比 + List jsjbxwhpTjtList = baseMapper.getSelectJsjbxwhpzzt(blTeacherMain); + Integer jsjbxwFcfh[] = new Integer[jsjbxwhpTjtList.size()];//非常满意 + Integer jsjbxwBjfh[] = new Integer[jsjbxwhpTjtList.size()];//比较符合 + Integer jsjbxwYb[] = new Integer[jsjbxwhpTjtList.size()];//一般 + Integer jsjbxwBjbfh[] = new Integer[jsjbxwhpTjtList.size()];//比较不符合 + String jsjbxwName[] = new String[jsjbxwhpTjtList.size()];//名称 + for(int i=0;i result) { + //教师的师德师风互评-评分 + BlTeacherAnswer sdsfhppingfen = baseMapper.getSelectSdsfhppingfen(blTeacherMain); + if(sdsfhppingfen!=null){ + String sdsfYfyg = sdsfhppingfen.getSdsfYfyg();//依法依规,履行教师职责 + String sdsfGxah = sdsfhppingfen.getSdsfGxah();//关心爱护学生 + String sdsfJsmm = sdsfhppingfen.getSdsfJsmm();//精神面貌及品德修养良好 + result.put("sdsfYfyq", sdsfYfyg);//数量 + result.put("sdsfGxah", sdsfGxah);//数量 + result.put("sdsfJsmm", sdsfJsmm);//数量 + + Double ldt1Data[] = new Double[3]; + ldt1Data[0] = Double.parseDouble(sdsfYfyg); + ldt1Data[1] = Double.parseDouble(sdsfGxah); + ldt1Data[2] = Double.parseDouble(sdsfJsmm); + //雷达图 + String sdsfhpLdtImg2Ldt = "option = { radar: { radius: '60%',indicator: [\n" + + " { name: '依法依规,履行教师职责', max: 5 },\n" + + " { name: '关心爱护学生', max: 5 },\n" + + " { name: '精神面貌及品德修养良好', max: 5 },\n" + + " ],name: {textStyle: {color: 'black',fontSize: 30,lineHeight: 24,},\n" + + " formatter: function (value) {let list = value.split(\"\");let result = \"\"; for (let i = 1; i <= list.length; i++) {if (!(i % 17) && list[i] != undefined) { result += list[i - 1] + '\\n';} else {result += list[i - 1];} }return result;},},},\n" + + " series: [{type: 'radar',data: [{value: \n" +JSONObject.toJSONString(ldt1Data)+ " ,label:{show: true,position: 'outside',fontSize:20},},]}]}"; + String sdsfhpLdtImg2 = WebDriverUtil.getImgByte400(sdsfhpLdtImg2Ldt); + log.info("================================"); + log.info(sdsfhpLdtImg2); + log.info("================================"); + result.put("sdsfhpLdtImg2", sdsfhpLdtImg2); + } + } + + private void tj1(BlTeacherInfo blTeacherMain, Map result) { + //师德师风互评柱状图 + List sdsfhpzztList = baseMapper.getSelectSdsfhpzzt(blTeacherMain); + Integer sdsfhpzztFcfh[] = new Integer[sdsfhpzztList.size()];//非常满意 + Integer sdsfhpzztBjfh[] = new Integer[sdsfhpzztList.size()];//比较符合 + Integer sdsfhpzztYb[] = new Integer[sdsfhpzztList.size()];//一般 + String strName[] = new String[sdsfhpzztList.size()]; + for(int i=0;i"+sdsfhpZztImg1Options); + String sdsfhpZztImg1 = WebDriverUtil.getImgByte300(sdsfhpZztImg1Options); + log.info("================================"); + log.info(sdsfhpZztImg1); + log.info("================================"); + result.put("sdsfhpZztImg1", sdsfhpZztImg1); } diff --git a/jeecg-boot/jeecg-module-demo/src/main/resources/officetemplates/exp1/teacher-tjfx.docx b/jeecg-boot/jeecg-module-demo/src/main/resources/officetemplates/exp1/teacher-tjfx.docx index 2c1435223841a02102a67a33484271c5208b8376..38e6bb890149bfc90e67849ff194fcf4bbcd5af2 100644 GIT binary patch delta 51093 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 SK+ci{LLs2;7ezonF#rJQ+f~f~ diff --git a/jeecg-boot/jeecg-module-system/jeecg-system-start/src/main/resources/application-prod.yml b/jeecg-boot/jeecg-module-system/jeecg-system-start/src/main/resources/application-prod.yml index 3d7520b..509f421 100644 --- a/jeecg-boot/jeecg-module-system/jeecg-system-start/src/main/resources/application-prod.yml +++ b/jeecg-boot/jeecg-module-system/jeecg-system-start/src/main/resources/application-prod.yml @@ -311,7 +311,7 @@ justauth: webDriver: driverName: webdriver.chrome.driver # 浏览器完整路径 - webExamplePath: 'D:/Program Files (x86)/Google/Chrome/Application/chrome.exe' + webExamplePath: 'C:/Program Files/Google/Chrome/Application/chrome.exe' # 驱动地址 driverPath: web/webDriver/126.0.6478.127/chromedriver.exe # html地址