2024年10月26日 修复有概率无法生成图片的问题,修复教师报表有概率报错的问题

This commit is contained in:
bai 2024-10-26 22:26:35 +08:00
parent 9d8225ded9
commit b1ad133dcf
9 changed files with 17933 additions and 242 deletions

View File

@ -88,7 +88,7 @@ public class BlStuAnswerServiceImpl extends ServiceImpl<BlStuAnswerMapper, BlStu
//尝试异步加快导出速度
log.info("多线程主线程开始执行");
//多线程执行
CompletionService<Boolean> threadService = ThreadUtil.newCompletionService(Executors.newFixedThreadPool(100));
CompletionService<Boolean> threadService = ThreadUtil.newCompletionService(Executors.newFixedThreadPool(10));
List<Callable<Boolean>> calls = Lists.newArrayList();
List<TableMerge> mergeListT1_1 = Lists.newArrayList();
List<TableMerge> mergeListT2_10 = Lists.newArrayList();

View File

@ -70,7 +70,7 @@ public class BlTeacherAnswerServiceImpl extends ServiceImpl<BlTeacherAnswerMappe
//尝试异步加快导出速度
log.info("多线程主线程开始执行");
//多线程执行
CompletionService<Boolean> threadService = ThreadUtil.newCompletionService(Executors.newFixedThreadPool(100));
CompletionService<Boolean> threadService = ThreadUtil.newCompletionService(Executors.newFixedThreadPool(10));
List<Callable<Boolean>> calls = com.google.common.collect.Lists.newArrayList();
List<TableMerge> allMergeList1 = org.apache.commons.compress.utils.Lists.newArrayList();
List<TableMerge> allMergeList2 = org.apache.commons.compress.utils.Lists.newArrayList();
@ -454,6 +454,7 @@ public class BlTeacherAnswerServiceImpl extends ServiceImpl<BlTeacherAnswerMappe
calls.forEach(fn -> {
try {
var res = threadService.take().get();
// ThreadUtil.sleep(50);
log.info("进程返回值: {}", res);
} catch (InterruptedException | ExecutionException e) {
log.error(e.getMessage(), e);
@ -506,10 +507,10 @@ public class BlTeacherAnswerServiceImpl extends ServiceImpl<BlTeacherAnswerMappe
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());
jsfz2Data[0] = Double.parseDouble(StringUtils.defaultString(jsfz2Ldt.getTj1(), "0"));
jsfz2Data[1] = Double.parseDouble(StringUtils.defaultString(jsfz2Ldt.getTj2(), "0"));
jsfz2Data[2] = Double.parseDouble(StringUtils.defaultString(jsfz2Ldt.getTj3(), "0"));
jsfz2Data[3] = Double.parseDouble(StringUtils.defaultString(jsfz2Ldt.getTj4(), "0"));
//雷达图
String jsfz2optionsLdt = "option = { title: { right: '30', text: '单位:%', textStyle: { fontSize: 25,fontFamily: '宋体' } }," +
"polar: { radius: '50%' }, radiusAxis: { show: false }, angleAxis: {show: true, interval: 1,min: 0, max: 4, inverse: true,axisLine: {lineStyle: {color: 'rgba(0,0,0,0)'}},axisTick: {show: false,inside: true},\n" +
@ -1237,13 +1238,13 @@ public class BlTeacherAnswerServiceImpl extends ServiceImpl<BlTeacherAnswerMappe
Integer zcnum4 = 0;
for(BlTeacherAnswer par:xxztmyd4List){
if(StringUtils.equals(par.getLsname(),"正高级")){
zcnum1 = (int)Double.parseDouble(par.getTj1());
zcnum1 = (int)Double.parseDouble(StringUtils.defaultString(par.getTj1(), "0"));
}else if(StringUtils.equals(par.getLsname(),"副高级")){
zcnum2 = (int)Double.parseDouble(par.getTj1());
zcnum2 = (int)Double.parseDouble(StringUtils.defaultString(par.getTj1(), "0"));
}else if(StringUtils.equals(par.getLsname(),"中级")){
zcnum3 = (int)Double.parseDouble(par.getTj1());
zcnum3 = (int)Double.parseDouble(StringUtils.defaultString(par.getTj1(), "0"));
}else if(StringUtils.equals(par.getLsname(),"初级")){
zcnum4 = (int)Double.parseDouble(par.getTj1());
zcnum4 = (int)Double.parseDouble(StringUtils.defaultString(par.getTj1(), "0"));
}
}
String zcxxztmyd3Options ="option = {\n" +
@ -1274,13 +1275,13 @@ public class BlTeacherAnswerServiceImpl extends ServiceImpl<BlTeacherAnswerMappe
Integer num4 = 0;
for(BlTeacherAnswer par:xxztmyd3List){
if(StringUtils.equals(par.getLsname(),"教学科研型")){
num1 = (int)Double.parseDouble(par.getTj1());
num1 = (int)Double.parseDouble(StringUtils.defaultString(par.getTj1(), "0"));
}else if(StringUtils.equals(par.getLsname(),"教学型")){
num2 = (int)Double.parseDouble(par.getTj1());
num2 = (int)Double.parseDouble(StringUtils.defaultString(par.getTj1(), "0"));
}else if(StringUtils.equals(par.getLsname(),"科研型")){
num3 = (int)Double.parseDouble(par.getTj1());
num3 = (int)Double.parseDouble(StringUtils.defaultString(par.getTj1(), "0"));
}else if(StringUtils.equals(par.getLsname(),"辅导员")){
num4 = (int)Double.parseDouble(par.getTj1());
num4 = (int)Double.parseDouble(StringUtils.defaultString(par.getTj1(), "0"));
}
}
String xxztmyd3Options ="option = {\n" +
@ -1325,13 +1326,13 @@ public class BlTeacherAnswerServiceImpl extends ServiceImpl<BlTeacherAnswerMappe
" data: ['对学校的整体满意度'],\n" +
" axisLabel:{color:'#000', fontSize: 24,fontFamily:'宋体', 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: 25,fontFamily:'宋体', formatter: function(params) {if (params.value === 0) {return '';}return params.value;} }, emphasis: { focus: 'series' },\n" +
" data: ["+(int)Double.parseDouble(ztmydzb.getTj1())+"], barWidth: 45, itemStyle: { color: '#2350a0',barBorderColor: 'white',barBorderWidth: 1 } },\n" +
" data: ["+(int)Double.parseDouble(StringUtils.defaultString(ztmydzb.getTj1(), "0"))+"], barWidth: 45, itemStyle: { color: '#2350a0',barBorderColor: 'white',barBorderWidth: 1 } },\n" +
" { name: '比较符合', type: 'bar', stack: 'total', label: { show: true, fontSize: 25,fontFamily:'宋体', formatter: function(params) {if (params.value === 0) {return '';}return params.value;} }, emphasis: { focus: 'series' },\n" +
" data: ["+(int)Double.parseDouble(ztmydzb.getTj2())+"], barWidth: 45, itemStyle: { color: '#008ac8',barBorderColor: 'white',barBorderWidth: 1 } },\n" +
" data: ["+(int)Double.parseDouble(StringUtils.defaultString(ztmydzb.getTj2(), "0"))+"], barWidth: 45, itemStyle: { color: '#008ac8',barBorderColor: 'white',barBorderWidth: 1 } },\n" +
" { name: '一般', type: 'bar', stack: 'total', label: { show: true, fontSize: 25,fontFamily:'宋体', formatter: function(params) {if (params.value === 0) {return '';}return params.value;} },emphasis: {focus: 'series'},\n" +
" data: ["+(int)Double.parseDouble(ztmydzb.getTj3())+"], barWidth: 45,itemStyle: {color: '#57b8e7',barBorderColor: 'white',barBorderWidth: 1 }}," +
" data: ["+(int)Double.parseDouble(StringUtils.defaultString(ztmydzb.getTj3(), "0"))+"], barWidth: 45,itemStyle: {color: '#57b8e7',barBorderColor: 'white',barBorderWidth: 1 }}," +
" { name: '比较不满意', type: 'bar', stack: 'total', label: { show: true, fontSize: 25,fontFamily:'宋体', formatter: function(params) {if (params.value === 0) {return '';}return params.value;} },emphasis: {focus: 'series'},\n" +
" data: ["+(int)Double.parseDouble(ztmydzb.getTj4())+"], barWidth: 45,itemStyle: {color: '#beedf8',barBorderColor: 'white',barBorderWidth: 1 }}," +
" data: ["+(int)Double.parseDouble(StringUtils.defaultString(ztmydzb.getTj4(), "0"))+"], barWidth: 45,itemStyle: {color: '#beedf8',barBorderColor: 'white',barBorderWidth: 1 }}," +
"]}";
String ztmydzb1Img = WebDriverUtil.getImgByte(ztmydzb1Options);
@ -1341,14 +1342,14 @@ public class BlTeacherAnswerServiceImpl extends ServiceImpl<BlTeacherAnswerMappe
result.put("sdsfhp34", ztmydzb1Img);
//教师对学校的整体满意度
//饼图
int kbsx = 100 - (int)Double.parseDouble(ztmydpj.getTj1());
int kbsx = 100 - (int)Double.parseDouble(StringUtils.defaultString(ztmydpj.getTj1(), "0"));
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: '',label:{normal: { \n" +
" formatter: function (params) { return '{b|对学校的整体\\n满意度\\n}\\n{a|"+(int)Double.parseDouble(ztmydpj.getTj1())+"%}'; },\n" +
" { value: "+(int)Double.parseDouble(StringUtils.defaultString(ztmydpj.getTj1(), "0"))+", name: '',label:{normal: { \n" +
" formatter: function (params) { return '{b|对学校的整体\\n满意度\\n}\\n{a|"+(int)Double.parseDouble(StringUtils.defaultString(ztmydpj.getTj1(), "0"))+"%}'; },\n" +
" rich: { a: {fontSize: 40,fontWeight:700 }, b: {fontSize: 25} }\n" +
" }\n" +
" }},\n" +
@ -1373,11 +1374,11 @@ public class BlTeacherAnswerServiceImpl extends ServiceImpl<BlTeacherAnswerMappe
result.put("zytjpjbfb51", zytjpj12Ldt.getTj5());
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());
zytjpj12Data[0] = Double.parseDouble(StringUtils.defaultString(zytjpj12Ldt.getTj1(), "0"));
zytjpj12Data[1] = Double.parseDouble(StringUtils.defaultString(zytjpj12Ldt.getTj2(), "0"));
zytjpj12Data[2] = Double.parseDouble(StringUtils.defaultString(zytjpj12Ldt.getTj3(), "0"));
zytjpj12Data[3] = Double.parseDouble(StringUtils.defaultString(zytjpj12Ldt.getTj4(), "0"));
zytjpj12Data[4] = Double.parseDouble(StringUtils.defaultString(zytjpj12Ldt.getTj5(), "0"));
//雷达图
String zytjpj12optionsLdt ="option = { title: { right: '30', text: '单位:%', textStyle: { fontSize: 25,fontFamily: '宋体' } }," +
"polar: { radius: '50%' }, radiusAxis: { show: false }, angleAxis: {show: true, interval: 1,min: 0, max: 5, inverse: true,axisLine: {lineStyle: {color: 'rgba(0,0,0,0)'}},axisTick: {show: false,inside: true},\n" +
@ -1464,12 +1465,12 @@ public class BlTeacherAnswerServiceImpl extends ServiceImpl<BlTeacherAnswerMappe
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());
zytjpj2Data[0] = Double.parseDouble(StringUtils.defaultString(zytjpj2Ldt.getTj1(), "0"));
zytjpj2Data[1] = Double.parseDouble(StringUtils.defaultString(zytjpj2Ldt.getTj2(), "0"));
zytjpj2Data[2] = Double.parseDouble(StringUtils.defaultString(zytjpj2Ldt.getTj3(), "0"));
zytjpj2Data[3] = Double.parseDouble(StringUtils.defaultString(zytjpj2Ldt.getTj4(), "0"));
zytjpj2Data[4] = Double.parseDouble(StringUtils.defaultString(zytjpj2Ldt.getTj5(), "0"));
zytjpj2Data[5] = Double.parseDouble(StringUtils.defaultString(zytjpj2Ldt.getTj6(), "0"));
//雷达图
String zytjpj2optionsLdt = "option = { title: { right: '30', text: '单位:分', textStyle: { fontSize: 25,fontFamily: '宋体'} }," +
"polar: { radius: '50%' }, radiusAxis: { show: false }, angleAxis: {show: true, interval: 1,min: 0, max: 6, inverse: true,axisLine: {lineStyle: {color: 'rgba(0,0,0,0)'}},axisTick: {show: false,inside: true},\n" +
@ -1557,12 +1558,12 @@ public class BlTeacherAnswerServiceImpl extends ServiceImpl<BlTeacherAnswerMappe
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());
zyfwyzc2Data[0] = Double.parseDouble(StringUtils.defaultString(zyfwyzc2Ldt.getTj1(), "0"));
zyfwyzc2Data[1] = Double.parseDouble(StringUtils.defaultString(zyfwyzc2Ldt.getTj2(), "0"));
zyfwyzc2Data[2] = Double.parseDouble(StringUtils.defaultString(zyfwyzc2Ldt.getTj3(), "0"));
zyfwyzc2Data[3] = Double.parseDouble(StringUtils.defaultString(zyfwyzc2Ldt.getTj4(), "0"));
zyfwyzc2Data[4] = Double.parseDouble(StringUtils.defaultString(zyfwyzc2Ldt.getTj5(), "0"));
zyfwyzc2Data[5] = Double.parseDouble(StringUtils.defaultString(zyfwyzc2Ldt.getTj6(), "0"));
//雷达图
String zyfwyzc2optionsLdt = "option = { title: { right: '30', text: '单位:分', textStyle: { fontSize: 25,fontFamily: '宋体' } }," +
"polar: { radius: '50%' }, radiusAxis: { show: false }, angleAxis: {show: true, interval: 1,min: 0, max: 6, inverse: true,axisLine: {lineStyle: {color: 'rgba(0,0,0,0)'}},axisTick: {show: false,inside: true},\n" +
@ -1692,10 +1693,10 @@ public class BlTeacherAnswerServiceImpl extends ServiceImpl<BlTeacherAnswerMappe
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());
ldtData[0] = Double.parseDouble(StringUtils.defaultString(xxzdxLdt.getTj1(), "0"));
ldtData[1] = Double.parseDouble(StringUtils.defaultString(xxzdxLdt.getTj2(), "0"));
ldtData[2] = Double.parseDouble(StringUtils.defaultString(xxzdxLdt.getTj3(), "0"));
ldtData[3] = Double.parseDouble(StringUtils.defaultString(xxzdxLdt.getTj4(), "0"));
//雷达图
String xxzdxoptionsLdt = "option = { title: { right: '30', text: '单位:分', textStyle: { fontSize: 25,fontFamily: '宋体' } }," +"polar: { radius: '50%' }, radiusAxis: { show: false }, angleAxis: {show: true, interval: 1,min: 0, max: 4, inverse: true,axisLine: {lineStyle: {color: 'rgba(0,0,0,0)'}},axisTick: {show: false,inside: true},\n" +
" axisLabel: {textStyle: {color: '#000',fontSize: 25,fontFamily: '宋体',fontWeight:700},formatter: (i) => "+JSONObject.toJSONString(ldtData)+"[i]}\n" +
@ -1779,33 +1780,33 @@ public class BlTeacherAnswerServiceImpl extends ServiceImpl<BlTeacherAnswerMappe
for(int i=0;i<sshdTjt3List.size();i++){
BlTeacherAnswer par = sshdTjt3List.get(i);
if(StringUtils.equals(par.getLsname(),"正高级")){
sshdTjt31[0] = (int)Double.parseDouble(par.getTj1());
sshdTjt31[1] = (int)Double.parseDouble(par.getTj2());
sshdTjt31[2] = (int)Double.parseDouble(par.getTj3());
sshdTjt31[3] = (int)Double.parseDouble(par.getTj4());
sshdTjt31[4] = (int)Double.parseDouble(par.getTj5());
sshdTjt31[5] = (int)Double.parseDouble(par.getTj6());
sshdTjt31[0] = (int)Double.parseDouble(StringUtils.defaultString(par.getTj1(), "0"));
sshdTjt31[1] = (int)Double.parseDouble(StringUtils.defaultString(par.getTj2(), "0"));
sshdTjt31[2] = (int)Double.parseDouble(StringUtils.defaultString(par.getTj3(), "0"));
sshdTjt31[3] = (int)Double.parseDouble(StringUtils.defaultString(par.getTj4(), "0"));
sshdTjt31[4] = (int)Double.parseDouble(StringUtils.defaultString(par.getTj5(), "0"));
sshdTjt31[5] = (int)Double.parseDouble(StringUtils.defaultString(par.getTj6(), "0"));
}else if(StringUtils.equals(par.getLsname(),"副高级")){
sshdTjt32[0] = (int)Double.parseDouble(par.getTj1());
sshdTjt32[1] = (int)Double.parseDouble(par.getTj2());
sshdTjt32[2] = (int)Double.parseDouble(par.getTj3());
sshdTjt32[3] = (int)Double.parseDouble(par.getTj4());
sshdTjt32[4] = (int)Double.parseDouble(par.getTj5());
sshdTjt32[5] = (int)Double.parseDouble(par.getTj6());
sshdTjt32[0] = (int)Double.parseDouble(StringUtils.defaultString(par.getTj1(), "0"));
sshdTjt32[1] = (int)Double.parseDouble(StringUtils.defaultString(par.getTj2(), "0"));
sshdTjt32[2] = (int)Double.parseDouble(StringUtils.defaultString(par.getTj3(), "0"));
sshdTjt32[3] = (int)Double.parseDouble(StringUtils.defaultString(par.getTj4(), "0"));
sshdTjt32[4] = (int)Double.parseDouble(StringUtils.defaultString(par.getTj5(), "0"));
sshdTjt32[5] = (int)Double.parseDouble(StringUtils.defaultString(par.getTj6(), "0"));
}else if(StringUtils.equals(par.getLsname(),"中级")){
sshdTjt33[0] = (int)Double.parseDouble(par.getTj1());
sshdTjt33[1] = (int)Double.parseDouble(par.getTj2());
sshdTjt33[2] = (int)Double.parseDouble(par.getTj3());
sshdTjt33[3] = (int)Double.parseDouble(par.getTj4());
sshdTjt33[4] = (int)Double.parseDouble(par.getTj5());
sshdTjt33[5] = (int)Double.parseDouble(par.getTj6());
sshdTjt33[0] = (int)Double.parseDouble(StringUtils.defaultString(par.getTj1(), "0"));
sshdTjt33[1] = (int)Double.parseDouble(StringUtils.defaultString(par.getTj2(), "0"));
sshdTjt33[2] = (int)Double.parseDouble(StringUtils.defaultString(par.getTj3(), "0"));
sshdTjt33[3] = (int)Double.parseDouble(StringUtils.defaultString(par.getTj4(), "0"));
sshdTjt33[4] = (int)Double.parseDouble(StringUtils.defaultString(par.getTj5(), "0"));
sshdTjt33[5] = (int)Double.parseDouble(StringUtils.defaultString(par.getTj6(), "0"));
}else if(StringUtils.equals(par.getLsname(),"初级")){
sshdTjt34[0] = (int)Double.parseDouble(par.getTj1());
sshdTjt34[1] = (int)Double.parseDouble(par.getTj2());
sshdTjt34[2] = (int)Double.parseDouble(par.getTj3());
sshdTjt34[3] = (int)Double.parseDouble(par.getTj4());
sshdTjt34[4] = (int)Double.parseDouble(par.getTj5());
sshdTjt34[5] = (int)Double.parseDouble(par.getTj6());
sshdTjt34[0] = (int)Double.parseDouble(StringUtils.defaultString(par.getTj1(), "0"));
sshdTjt34[1] = (int)Double.parseDouble(StringUtils.defaultString(par.getTj2(), "0"));
sshdTjt34[2] = (int)Double.parseDouble(StringUtils.defaultString(par.getTj3(), "0"));
sshdTjt34[3] = (int)Double.parseDouble(StringUtils.defaultString(par.getTj4(), "0"));
sshdTjt34[4] = (int)Double.parseDouble(StringUtils.defaultString(par.getTj5(), "0"));
sshdTjt34[5] = (int)Double.parseDouble(StringUtils.defaultString(par.getTj6(), "0"));
}
}
//多柱图
@ -1841,33 +1842,33 @@ public class BlTeacherAnswerServiceImpl extends ServiceImpl<BlTeacherAnswerMappe
BlTeacherAnswer par = sshdTjt2List.get(i);
// sshdTjt2name[i] = par.getLsname();
if(StringUtils.equals(par.getLsname(),"教学科研型")){
sshdTjt21[0] = (int)Double.parseDouble(par.getTj1());
sshdTjt21[1] = (int)Double.parseDouble(par.getTj2());
sshdTjt21[2] = (int)Double.parseDouble(par.getTj3());
sshdTjt21[3] = (int)Double.parseDouble(par.getTj4());
sshdTjt21[4] = (int)Double.parseDouble(par.getTj5());
sshdTjt21[5] = (int)Double.parseDouble(par.getTj6());
sshdTjt21[0] = (int)Double.parseDouble(StringUtils.defaultString(par.getTj1(), "0"));
sshdTjt21[1] = (int)Double.parseDouble(StringUtils.defaultString(par.getTj2(), "0"));
sshdTjt21[2] = (int)Double.parseDouble(StringUtils.defaultString(par.getTj3(), "0"));
sshdTjt21[3] = (int)Double.parseDouble(StringUtils.defaultString(par.getTj4(), "0"));
sshdTjt21[4] = (int)Double.parseDouble(StringUtils.defaultString(par.getTj5(), "0"));
sshdTjt21[5] = (int)Double.parseDouble(StringUtils.defaultString(par.getTj6(), "0"));
}else if(StringUtils.equals(par.getLsname(),"教学型")){
sshdTjt22[0] = (int)Double.parseDouble(par.getTj1());
sshdTjt22[1] = (int)Double.parseDouble(par.getTj2());
sshdTjt22[2] = (int)Double.parseDouble(par.getTj3());
sshdTjt22[3] = (int)Double.parseDouble(par.getTj4());
sshdTjt22[4] = (int)Double.parseDouble(par.getTj5());
sshdTjt22[5] = (int)Double.parseDouble(par.getTj6());
sshdTjt22[0] = (int)Double.parseDouble(StringUtils.defaultString(par.getTj1(), "0"));
sshdTjt22[1] = (int)Double.parseDouble(StringUtils.defaultString(par.getTj2(), "0"));
sshdTjt22[2] = (int)Double.parseDouble(StringUtils.defaultString(par.getTj3(), "0"));
sshdTjt22[3] = (int)Double.parseDouble(StringUtils.defaultString(par.getTj4(), "0"));
sshdTjt22[4] = (int)Double.parseDouble(StringUtils.defaultString(par.getTj5(), "0"));
sshdTjt22[5] = (int)Double.parseDouble(StringUtils.defaultString(par.getTj6(), "0"));
}else if(StringUtils.equals(par.getLsname(),"科研型")){
sshdTjt23[0] = (int)Double.parseDouble(par.getTj1());
sshdTjt23[1] = (int)Double.parseDouble(par.getTj2());
sshdTjt23[2] = (int)Double.parseDouble(par.getTj3());
sshdTjt23[3] = (int)Double.parseDouble(par.getTj4());
sshdTjt23[4] = (int)Double.parseDouble(par.getTj5());
sshdTjt23[5] = (int)Double.parseDouble(par.getTj6());
sshdTjt23[0] = (int)Double.parseDouble(StringUtils.defaultString(par.getTj1(), "0"));
sshdTjt23[1] = (int)Double.parseDouble(StringUtils.defaultString(par.getTj2(), "0"));
sshdTjt23[2] = (int)Double.parseDouble(StringUtils.defaultString(par.getTj3(), "0"));
sshdTjt23[3] = (int)Double.parseDouble(StringUtils.defaultString(par.getTj4(), "0"));
sshdTjt23[4] = (int)Double.parseDouble(StringUtils.defaultString(par.getTj5(), "0"));
sshdTjt23[5] = (int)Double.parseDouble(StringUtils.defaultString(par.getTj6(), "0"));
}else if(StringUtils.equals(par.getLsname(),"辅导员")){
sshdTjt24[0] = (int)Double.parseDouble(par.getTj1());
sshdTjt24[1] = (int)Double.parseDouble(par.getTj2());
sshdTjt24[2] = (int)Double.parseDouble(par.getTj3());
sshdTjt24[3] = (int)Double.parseDouble(par.getTj4());
sshdTjt24[4] = (int)Double.parseDouble(par.getTj5());
sshdTjt24[5] = (int)Double.parseDouble(par.getTj6());
sshdTjt24[0] = (int)Double.parseDouble(StringUtils.defaultString(par.getTj1(), "0"));
sshdTjt24[1] = (int)Double.parseDouble(StringUtils.defaultString(par.getTj2(), "0"));
sshdTjt24[2] = (int)Double.parseDouble(StringUtils.defaultString(par.getTj3(), "0"));
sshdTjt24[3] = (int)Double.parseDouble(StringUtils.defaultString(par.getTj4(), "0"));
sshdTjt24[4] = (int)Double.parseDouble(StringUtils.defaultString(par.getTj5(), "0"));
sshdTjt24[5] = (int)Double.parseDouble(StringUtils.defaultString(par.getTj6(), "0"));
}
}
// format(round(sum(EXCHANGE_ZDKC)/count('x'),2)*100,0) as tj1,<!-- 指导课程 1答疑课程内容指导课程作业-->
@ -1905,7 +1906,7 @@ public class BlTeacherAnswerServiceImpl extends ServiceImpl<BlTeacherAnswerMappe
String sshdbfbztName[] = new String[sshdbfbTjt1.size()];//名称
for(int i=0;i<sshdbfbTjt1.size();i++){
BlTeacherAnswer par = sshdbfbTjt1.get(i);
sshdbfbzt1[i] = (int)Double.parseDouble(par.getTj1());
sshdbfbzt1[i] = (int)Double.parseDouble(StringUtils.defaultString(par.getTj1(), "0"));
sshdbfbztName[i] = par.getLsname();
}
//单柱图
@ -1936,29 +1937,29 @@ public class BlTeacherAnswerServiceImpl extends ServiceImpl<BlTeacherAnswerMappe
for(int i=0;i<cgdxTjt3List.size();i++){
BlTeacherAnswer par = cgdxTjt3List.get(i);
if(StringUtils.equals(par.getLsname(),"正高级")){
cgdxTjt3Num[0] = (int)Double.parseDouble(par.getTj1());
cgdxTjt3Num[1] = (int)Double.parseDouble(par.getTj2());
cgdxTjt3Num[2] = (int)Double.parseDouble(par.getTj3());
cgdxTjt3Num[3] = (int)Double.parseDouble(par.getTj4());
cgdxTjt3Num[4] = (int)Double.parseDouble(par.getTj5());
cgdxTjt3Num[0] = (int)Double.parseDouble(StringUtils.defaultString(par.getTj1(), "0"));
cgdxTjt3Num[1] = (int)Double.parseDouble(StringUtils.defaultString(par.getTj2(), "0"));
cgdxTjt3Num[2] = (int)Double.parseDouble(StringUtils.defaultString(par.getTj3(), "0"));
cgdxTjt3Num[3] = (int)Double.parseDouble(StringUtils.defaultString(par.getTj4(), "0"));
cgdxTjt3Num[4] = (int)Double.parseDouble(StringUtils.defaultString(par.getTj5(), "0"));
}else if(StringUtils.equals(par.getLsname(),"副高级")){
cgdxTjt3Num1[0] = (int)Double.parseDouble(par.getTj1());
cgdxTjt3Num1[1] = (int)Double.parseDouble(par.getTj2());
cgdxTjt3Num1[2] = (int)Double.parseDouble(par.getTj3());
cgdxTjt3Num1[3] = (int)Double.parseDouble(par.getTj4());
cgdxTjt3Num1[4] = (int)Double.parseDouble(par.getTj5());
cgdxTjt3Num1[0] = (int)Double.parseDouble(StringUtils.defaultString(par.getTj1(), "0"));
cgdxTjt3Num1[1] = (int)Double.parseDouble(StringUtils.defaultString(par.getTj2(), "0"));
cgdxTjt3Num1[2] = (int)Double.parseDouble(StringUtils.defaultString(par.getTj3(), "0"));
cgdxTjt3Num1[3] = (int)Double.parseDouble(StringUtils.defaultString(par.getTj4(), "0"));
cgdxTjt3Num1[4] = (int)Double.parseDouble(StringUtils.defaultString(par.getTj5(), "0"));
}else if(StringUtils.equals(par.getLsname(),"中级")){
cgdxTjt3Num2[0] = (int)Double.parseDouble(par.getTj1());
cgdxTjt3Num2[1] = (int)Double.parseDouble(par.getTj2());
cgdxTjt3Num2[2] = (int)Double.parseDouble(par.getTj3());
cgdxTjt3Num2[3] = (int)Double.parseDouble(par.getTj4());
cgdxTjt3Num2[4] = (int)Double.parseDouble(par.getTj5());
cgdxTjt3Num2[0] = (int)Double.parseDouble(StringUtils.defaultString(par.getTj1(), "0"));
cgdxTjt3Num2[1] = (int)Double.parseDouble(StringUtils.defaultString(par.getTj2(), "0"));
cgdxTjt3Num2[2] = (int)Double.parseDouble(StringUtils.defaultString(par.getTj3(), "0"));
cgdxTjt3Num2[3] = (int)Double.parseDouble(StringUtils.defaultString(par.getTj4(), "0"));
cgdxTjt3Num2[4] = (int)Double.parseDouble(StringUtils.defaultString(par.getTj5(), "0"));
}else if(StringUtils.equals(par.getLsname(),"初级")){
cgdxTjt3Num3[0] = (int)Double.parseDouble(par.getTj1());
cgdxTjt3Num3[1] = (int)Double.parseDouble(par.getTj2());
cgdxTjt3Num3[2] = (int)Double.parseDouble(par.getTj3());
cgdxTjt3Num3[3] = (int)Double.parseDouble(par.getTj4());
cgdxTjt3Num3[4] = (int)Double.parseDouble(par.getTj5());
cgdxTjt3Num3[0] = (int)Double.parseDouble(StringUtils.defaultString(par.getTj1(), "0"));
cgdxTjt3Num3[1] = (int)Double.parseDouble(StringUtils.defaultString(par.getTj2(), "0"));
cgdxTjt3Num3[2] = (int)Double.parseDouble(StringUtils.defaultString(par.getTj3(), "0"));
cgdxTjt3Num3[3] = (int)Double.parseDouble(StringUtils.defaultString(par.getTj4(), "0"));
cgdxTjt3Num3[4] = (int)Double.parseDouble(StringUtils.defaultString(par.getTj5(), "0"));
}
}
//多柱图
@ -1990,17 +1991,17 @@ public class BlTeacherAnswerServiceImpl extends ServiceImpl<BlTeacherAnswerMappe
for(int i=0;i<cgdxTjt2List.size();i++){
BlTeacherAnswer par = cgdxTjt2List.get(i);
if(StringUtils.equals(par.getLsname(),"教学科研型")){
cgdxTjt2Num[0] = (int)Double.parseDouble(par.getTj1());
cgdxTjt2Num[1] = (int)Double.parseDouble(par.getTj2());
cgdxTjt2Num[2] = (int)Double.parseDouble(par.getTj3());
cgdxTjt2Num[3] = (int)Double.parseDouble(par.getTj4());
cgdxTjt2Num[4] = (int)Double.parseDouble(par.getTj5());
cgdxTjt2Num[0] = (int)Double.parseDouble(StringUtils.defaultString(par.getTj1(), "0"));
cgdxTjt2Num[1] = (int)Double.parseDouble(StringUtils.defaultString(par.getTj2(), "0"));
cgdxTjt2Num[2] = (int)Double.parseDouble(StringUtils.defaultString(par.getTj3(), "0"));
cgdxTjt2Num[3] = (int)Double.parseDouble(StringUtils.defaultString(par.getTj4(), "0"));
cgdxTjt2Num[4] = (int)Double.parseDouble(StringUtils.defaultString(par.getTj5(), "0"));
}else if(StringUtils.equals(par.getLsname(),"教学型")){
cgdxTjt2Num1[0] = (int)Double.parseDouble(par.getTj1());
cgdxTjt2Num1[1] = (int)Double.parseDouble(par.getTj2());
cgdxTjt2Num1[2] = (int)Double.parseDouble(par.getTj3());
cgdxTjt2Num1[3] = (int)Double.parseDouble(par.getTj4());
cgdxTjt2Num1[4] = (int)Double.parseDouble(par.getTj5());
cgdxTjt2Num1[0] = (int)Double.parseDouble(StringUtils.defaultString(par.getTj1(), "0"));
cgdxTjt2Num1[1] = (int)Double.parseDouble(StringUtils.defaultString(par.getTj2(), "0"));
cgdxTjt2Num1[2] = (int)Double.parseDouble(StringUtils.defaultString(par.getTj3(), "0"));
cgdxTjt2Num1[3] = (int)Double.parseDouble(StringUtils.defaultString(par.getTj4(), "0"));
cgdxTjt2Num1[4] = (int)Double.parseDouble(StringUtils.defaultString(par.getTj5(), "0"));
}
}
//多柱图
@ -2036,7 +2037,7 @@ public class BlTeacherAnswerServiceImpl extends ServiceImpl<BlTeacherAnswerMappe
String cgdxTjt1Name[] = new String[cgdxTjt1List.size()];//名称
for(int i=0;i<cgdxTjt1List.size();i++){
BlTeacherAnswer par = cgdxTjt1List.get(i);
cgdxTjt1Num[i] = (int)Double.parseDouble(par.getTj1());
cgdxTjt1Num[i] = (int)Double.parseDouble(StringUtils.defaultString(par.getTj1(), "0"));
cgdxTjt1Name[i] = par.getLsname();
}
//单柱图
@ -2075,12 +2076,12 @@ public class BlTeacherAnswerServiceImpl extends ServiceImpl<BlTeacherAnswerMappe
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);
ldtLxydData[0] =Double.parseDouble(StringUtils.defaultString(ldt1, "0"));
ldtLxydData[1] =Double.parseDouble(StringUtils.defaultString(ldt2, "0"));
ldtLxydData[2] =Double.parseDouble(StringUtils.defaultString(ldt3, "0"));
ldtLxydData[3] =Double.parseDouble(StringUtils.defaultString(ldt4, "0"));
ldtLxydData[4] =Double.parseDouble(StringUtils.defaultString(ldt5, "0"));
ldtLxydData[5] =Double.parseDouble(StringUtils.defaultString(ldt6, "0"));
String kclxyd17Ldt = "option = { title: { right: '30', text: '单位:分', textStyle: { fontSize: 25,fontFamily: '宋体' } }," +
"polar: { radius: '50%' }, radiusAxis: { show: false }, angleAxis: {show: true, interval: 1,min: 0, max: 6, inverse: true,axisLine: {lineStyle: {color: 'rgba(0,0,0,0)'}},axisTick: {show: false,inside: true},\n" +
" axisLabel: {textStyle: {color: '#000',fontSize: 25,fontFamily: '宋体',fontWeight:700},formatter: (i) => "+JSONObject.toJSONString(ldtLxydData)+"[i]}\n" +
@ -2163,29 +2164,29 @@ public class BlTeacherAnswerServiceImpl extends ServiceImpl<BlTeacherAnswerMappe
for(int i=0;i<btzcjskcjxrrszysList.size();i++){
BlTeacherAnswer par = btzcjskcjxrrszysList.get(i);
if(StringUtils.equals(par.getLsname(),"正高级")){
btzcjskcjxrrszys1[0] = (int)Double.parseDouble(par.getTj1());
btzcjskcjxrrszys1[1] = (int)Double.parseDouble(par.getTj2());
btzcjskcjxrrszys1[2] = (int)Double.parseDouble(par.getTj3());
btzcjskcjxrrszys1[3] = (int)Double.parseDouble(par.getTj4());
btzcjskcjxrrszys1[4] = (int)Double.parseDouble(par.getTj5());
btzcjskcjxrrszys1[0] = (int)Double.parseDouble(StringUtils.defaultString(par.getTj1(), "0"));
btzcjskcjxrrszys1[1] = (int)Double.parseDouble(StringUtils.defaultString(par.getTj2(), "0"));
btzcjskcjxrrszys1[2] = (int)Double.parseDouble(StringUtils.defaultString(par.getTj3(), "0"));
btzcjskcjxrrszys1[3] = (int)Double.parseDouble(StringUtils.defaultString(par.getTj4(), "0"));
btzcjskcjxrrszys1[4] = (int)Double.parseDouble(StringUtils.defaultString(par.getTj5(), "0"));
}else if(StringUtils.equals(par.getLsname(),"副高级")){
btzcjskcjxrrszys2[0] = (int)Double.parseDouble(par.getTj1());
btzcjskcjxrrszys2[1] = (int)Double.parseDouble(par.getTj2());
btzcjskcjxrrszys2[2] = (int)Double.parseDouble(par.getTj3());
btzcjskcjxrrszys2[3] = (int)Double.parseDouble(par.getTj4());
btzcjskcjxrrszys2[4] = (int)Double.parseDouble(par.getTj5());
btzcjskcjxrrszys2[0] = (int)Double.parseDouble(StringUtils.defaultString(par.getTj1(), "0"));
btzcjskcjxrrszys2[1] = (int)Double.parseDouble(StringUtils.defaultString(par.getTj2(), "0"));
btzcjskcjxrrszys2[2] = (int)Double.parseDouble(StringUtils.defaultString(par.getTj3(), "0"));
btzcjskcjxrrszys2[3] = (int)Double.parseDouble(StringUtils.defaultString(par.getTj4(), "0"));
btzcjskcjxrrszys2[4] = (int)Double.parseDouble(StringUtils.defaultString(par.getTj5(), "0"));
}else if(StringUtils.equals(par.getLsname(),"中级")){
btzcjskcjxrrszys3[0] = (int)Double.parseDouble(par.getTj1());
btzcjskcjxrrszys3[1] = (int)Double.parseDouble(par.getTj2());
btzcjskcjxrrszys3[2] = (int)Double.parseDouble(par.getTj3());
btzcjskcjxrrszys3[3] = (int)Double.parseDouble(par.getTj4());
btzcjskcjxrrszys3[4] = (int)Double.parseDouble(par.getTj5());
btzcjskcjxrrszys3[0] = (int)Double.parseDouble(StringUtils.defaultString(par.getTj1(), "0"));
btzcjskcjxrrszys3[1] = (int)Double.parseDouble(StringUtils.defaultString(par.getTj2(), "0"));
btzcjskcjxrrszys3[2] = (int)Double.parseDouble(StringUtils.defaultString(par.getTj3(), "0"));
btzcjskcjxrrszys3[3] = (int)Double.parseDouble(StringUtils.defaultString(par.getTj4(), "0"));
btzcjskcjxrrszys3[4] = (int)Double.parseDouble(StringUtils.defaultString(par.getTj5(), "0"));
}else if(StringUtils.equals(par.getLsname(),"初级")){
btzcjskcjxrrszys4[0] = (int)Double.parseDouble(par.getTj1());
btzcjskcjxrrszys4[1] = (int)Double.parseDouble(par.getTj2());
btzcjskcjxrrszys4[2] = (int)Double.parseDouble(par.getTj3());
btzcjskcjxrrszys4[3] = (int)Double.parseDouble(par.getTj4());
btzcjskcjxrrszys4[4] = (int)Double.parseDouble(par.getTj5());
btzcjskcjxrrszys4[0] = (int)Double.parseDouble(StringUtils.defaultString(par.getTj1(), "0"));
btzcjskcjxrrszys4[1] = (int)Double.parseDouble(StringUtils.defaultString(par.getTj2(), "0"));
btzcjskcjxrrszys4[2] = (int)Double.parseDouble(StringUtils.defaultString(par.getTj3(), "0"));
btzcjskcjxrrszys4[3] = (int)Double.parseDouble(StringUtils.defaultString(par.getTj4(), "0"));
btzcjskcjxrrszys4[4] = (int)Double.parseDouble(StringUtils.defaultString(par.getTj5(), "0"));
}
}
//多柱图
@ -2217,17 +2218,17 @@ public class BlTeacherAnswerServiceImpl extends ServiceImpl<BlTeacherAnswerMappe
for(int i=0;i<btgwlxjskcjxrrszysList.size();i++){
BlTeacherAnswer par = btgwlxjskcjxrrszysList.get(i);
if(StringUtils.equals(par.getLsname(),"教学型")){
btgwlxjskcjxrrszys1[0] = (int)Double.parseDouble(par.getTj1());
btgwlxjskcjxrrszys1[1] = (int)Double.parseDouble(par.getTj2());
btgwlxjskcjxrrszys1[2] = (int)Double.parseDouble(par.getTj3());
btgwlxjskcjxrrszys1[3] = (int)Double.parseDouble(par.getTj4());
btgwlxjskcjxrrszys1[4] = (int)Double.parseDouble(par.getTj5());
btgwlxjskcjxrrszys1[0] = (int)Double.parseDouble(StringUtils.defaultString(par.getTj1(), "0"));
btgwlxjskcjxrrszys1[1] = (int)Double.parseDouble(StringUtils.defaultString(par.getTj2(), "0"));
btgwlxjskcjxrrszys1[2] = (int)Double.parseDouble(StringUtils.defaultString(par.getTj3(), "0"));
btgwlxjskcjxrrszys1[3] = (int)Double.parseDouble(StringUtils.defaultString(par.getTj4(), "0"));
btgwlxjskcjxrrszys1[4] = (int)Double.parseDouble(StringUtils.defaultString(par.getTj5(), "0"));
}else if(StringUtils.equals(par.getLsname(),"教学科研型")){
btgwlxjskcjxrrszys2[0] = (int)Double.parseDouble(par.getTj1());
btgwlxjskcjxrrszys2[1] = (int)Double.parseDouble(par.getTj2());
btgwlxjskcjxrrszys2[2] = (int)Double.parseDouble(par.getTj3());
btgwlxjskcjxrrszys2[3] = (int)Double.parseDouble(par.getTj4());
btgwlxjskcjxrrszys2[4] = (int)Double.parseDouble(par.getTj5());
btgwlxjskcjxrrszys2[0] = (int)Double.parseDouble(StringUtils.defaultString(par.getTj1(), "0"));
btgwlxjskcjxrrszys2[1] = (int)Double.parseDouble(StringUtils.defaultString(par.getTj2(), "0"));
btgwlxjskcjxrrszys2[2] = (int)Double.parseDouble(StringUtils.defaultString(par.getTj3(), "0"));
btgwlxjskcjxrrszys2[3] = (int)Double.parseDouble(StringUtils.defaultString(par.getTj4(), "0"));
btgwlxjskcjxrrszys2[4] = (int)Double.parseDouble(StringUtils.defaultString(par.getTj5(), "0"));
}
}
//多柱图
@ -2261,7 +2262,7 @@ public class BlTeacherAnswerServiceImpl extends ServiceImpl<BlTeacherAnswerMappe
String kcjxrrszysTjt2[] = new String[kcjxrrszysTjtList.size()];//名称
for(int i=0;i<kcjxrrszysTjtList.size();i++){
BlTeacherAnswer par = kcjxrrszysTjtList.get(i);
kcjxrrszysTjt1[i] = (int)Double.parseDouble(par.getTj1());
kcjxrrszysTjt1[i] = (int)Double.parseDouble(StringUtils.defaultString(par.getTj1(), "0"));
kcjxrrszysTjt2[i] = par.getLsname();
}
//单柱图
@ -2292,29 +2293,29 @@ public class BlTeacherAnswerServiceImpl extends ServiceImpl<BlTeacherAnswerMappe
for(int i=0;i<btzcjszgljxrwzbList.size();i++){
BlTeacherAnswer par = btzcjszgljxrwzbList.get(i);
if(StringUtils.equals(par.getLsname(),"正高级")){
btzcjszgljxrwzb1[0] = (int)Double.parseDouble(par.getTj1());
btzcjszgljxrwzb1[1] = (int)Double.parseDouble(par.getTj2());
btzcjszgljxrwzb1[2] = (int)Double.parseDouble(par.getTj3());
btzcjszgljxrwzb1[3] = (int)Double.parseDouble(par.getTj4());
btzcjszgljxrwzb1[4] = (int)Double.parseDouble(par.getTj5());
btzcjszgljxrwzb1[0] = (int)Double.parseDouble(StringUtils.defaultString(par.getTj1(), "0"));
btzcjszgljxrwzb1[1] = (int)Double.parseDouble(StringUtils.defaultString(par.getTj2(), "0"));
btzcjszgljxrwzb1[2] = (int)Double.parseDouble(StringUtils.defaultString(par.getTj3(), "0"));
btzcjszgljxrwzb1[3] = (int)Double.parseDouble(StringUtils.defaultString(par.getTj4(), "0"));
btzcjszgljxrwzb1[4] = (int)Double.parseDouble(StringUtils.defaultString(par.getTj5(), "0"));
}else if(StringUtils.equals(par.getLsname(),"副高级")){
btzcjszgljxrwzb2[0] = (int)Double.parseDouble(par.getTj1());
btzcjszgljxrwzb2[1] = (int)Double.parseDouble(par.getTj2());
btzcjszgljxrwzb2[2] = (int)Double.parseDouble(par.getTj3());
btzcjszgljxrwzb2[3] = (int)Double.parseDouble(par.getTj4());
btzcjszgljxrwzb2[4] = (int)Double.parseDouble(par.getTj5());
btzcjszgljxrwzb2[0] = (int)Double.parseDouble(StringUtils.defaultString(par.getTj1(), "0"));
btzcjszgljxrwzb2[1] = (int)Double.parseDouble(StringUtils.defaultString(par.getTj2(), "0"));
btzcjszgljxrwzb2[2] = (int)Double.parseDouble(StringUtils.defaultString(par.getTj3(), "0"));
btzcjszgljxrwzb2[3] = (int)Double.parseDouble(StringUtils.defaultString(par.getTj4(), "0"));
btzcjszgljxrwzb2[4] = (int)Double.parseDouble(StringUtils.defaultString(par.getTj5(), "0"));
}else if(StringUtils.equals(par.getLsname(),"中级")){
btzcjszgljxrwzb3[0] = (int)Double.parseDouble(par.getTj1());
btzcjszgljxrwzb3[1] = (int)Double.parseDouble(par.getTj2());
btzcjszgljxrwzb3[2] = (int)Double.parseDouble(par.getTj3());
btzcjszgljxrwzb3[3] = (int)Double.parseDouble(par.getTj4());
btzcjszgljxrwzb3[4] = (int)Double.parseDouble(par.getTj5());
btzcjszgljxrwzb3[0] = (int)Double.parseDouble(StringUtils.defaultString(par.getTj1(), "0"));
btzcjszgljxrwzb3[1] = (int)Double.parseDouble(StringUtils.defaultString(par.getTj2(), "0"));
btzcjszgljxrwzb3[2] = (int)Double.parseDouble(StringUtils.defaultString(par.getTj3(), "0"));
btzcjszgljxrwzb3[3] = (int)Double.parseDouble(StringUtils.defaultString(par.getTj4(), "0"));
btzcjszgljxrwzb3[4] = (int)Double.parseDouble(StringUtils.defaultString(par.getTj5(), "0"));
}else if(StringUtils.equals(par.getLsname(),"初级")){
btzcjszgljxrwzb4[0] = (int)Double.parseDouble(par.getTj1());
btzcjszgljxrwzb4[1] = (int)Double.parseDouble(par.getTj2());
btzcjszgljxrwzb4[2] = (int)Double.parseDouble(par.getTj3());
btzcjszgljxrwzb4[3] = (int)Double.parseDouble(par.getTj4());
btzcjszgljxrwzb4[4] = (int)Double.parseDouble(par.getTj5());
btzcjszgljxrwzb4[0] = (int)Double.parseDouble(StringUtils.defaultString(par.getTj1(), "0"));
btzcjszgljxrwzb4[1] = (int)Double.parseDouble(StringUtils.defaultString(par.getTj2(), "0"));
btzcjszgljxrwzb4[2] = (int)Double.parseDouble(StringUtils.defaultString(par.getTj3(), "0"));
btzcjszgljxrwzb4[3] = (int)Double.parseDouble(StringUtils.defaultString(par.getTj4(), "0"));
btzcjszgljxrwzb4[4] = (int)Double.parseDouble(StringUtils.defaultString(par.getTj5(), "0"));
}
}
//多柱图
@ -2346,17 +2347,17 @@ public class BlTeacherAnswerServiceImpl extends ServiceImpl<BlTeacherAnswerMappe
for(int i=0;i<btgwlxjszgxgzrdpjsjtrList.size();i++){
BlTeacherAnswer par = btgwlxjszgxgzrdpjsjtrList.get(i);
if(StringUtils.equals(par.getLsname(),"教学型")){
btgwlxjszgxgzrdpjsjtr1[0] = (int)Double.parseDouble(par.getTj1());
btgwlxjszgxgzrdpjsjtr1[1] = (int)Double.parseDouble(par.getTj2());
btgwlxjszgxgzrdpjsjtr1[2] = (int)Double.parseDouble(par.getTj3());
btgwlxjszgxgzrdpjsjtr1[3] = (int)Double.parseDouble(par.getTj4());
btgwlxjszgxgzrdpjsjtr1[4] = (int)Double.parseDouble(par.getTj5());
btgwlxjszgxgzrdpjsjtr1[0] = (int)Double.parseDouble(StringUtils.defaultString(par.getTj1(), "0"));
btgwlxjszgxgzrdpjsjtr1[1] = (int)Double.parseDouble(StringUtils.defaultString(par.getTj2(), "0"));
btgwlxjszgxgzrdpjsjtr1[2] = (int)Double.parseDouble(StringUtils.defaultString(par.getTj3(), "0"));
btgwlxjszgxgzrdpjsjtr1[3] = (int)Double.parseDouble(StringUtils.defaultString(par.getTj4(), "0"));
btgwlxjszgxgzrdpjsjtr1[4] = (int)Double.parseDouble(StringUtils.defaultString(par.getTj5(), "0"));
}else if(StringUtils.equals(par.getLsname(),"教学科研型")){
btgwlxjszgxgzrdpjsjtr2[0] = (int)Double.parseDouble(par.getTj1());
btgwlxjszgxgzrdpjsjtr2[1] = (int)Double.parseDouble(par.getTj2());
btgwlxjszgxgzrdpjsjtr2[2] = (int)Double.parseDouble(par.getTj3());
btgwlxjszgxgzrdpjsjtr2[3] = (int)Double.parseDouble(par.getTj4());
btgwlxjszgxgzrdpjsjtr2[4] = (int)Double.parseDouble(par.getTj5());
btgwlxjszgxgzrdpjsjtr2[0] = (int)Double.parseDouble(StringUtils.defaultString(par.getTj1(), "0"));
btgwlxjszgxgzrdpjsjtr2[1] = (int)Double.parseDouble(StringUtils.defaultString(par.getTj2(), "0"));
btgwlxjszgxgzrdpjsjtr2[2] = (int)Double.parseDouble(StringUtils.defaultString(par.getTj3(), "0"));
btgwlxjszgxgzrdpjsjtr2[3] = (int)Double.parseDouble(StringUtils.defaultString(par.getTj4(), "0"));
btgwlxjszgxgzrdpjsjtr2[4] = (int)Double.parseDouble(StringUtils.defaultString(par.getTj5(), "0"));
}
}
//多柱图
@ -2383,7 +2384,7 @@ public class BlTeacherAnswerServiceImpl extends ServiceImpl<BlTeacherAnswerMappe
for(int i=0;i<jszgljxrwfpblList.size();i++){
BlTeacherAnswer par = jszgljxrwfpblList.get(i);
jszgljxrwfpblname[i] = par.getLsname();
jszgljxrwfpblData[i] = (int) Double.parseDouble(par.getTj1());
jszgljxrwfpblData[i] = (int) Double.parseDouble(StringUtils.defaultString(par.getTj1(), "0"));
}
//单柱图
String jszgljxrwfpbl10Options =" option = {title: { right: '30', text: '%', textStyle: { fontSize: 25 } }, tooltip: {trigger: 'axis',},grid: { left: '3%', right: '4%', bottom: '3%', containLabel: true },\n" +
@ -2412,33 +2413,33 @@ public class BlTeacherAnswerServiceImpl extends ServiceImpl<BlTeacherAnswerMappe
for(int i=0;i<btzcjspjtrscTjtList.size();i++){
BlTeacherAnswer par = btzcjspjtrscTjtList.get(i);
if(i==0){
btzxpjsjTj1[0] = (int)Double.parseDouble(par.getTj1());
btzxpjsjTj1[1] = (int)Double.parseDouble(par.getTj2());
btzxpjsjTj1[2] = (int)Double.parseDouble(par.getTj3());
btzxpjsjTj1[3] = (int)Double.parseDouble(par.getTj4());
btzxpjsjTj1[4] = (int)Double.parseDouble(par.getTj5());
btzxpjsjTj1[5] = (int)Double.parseDouble(par.getTj6());
btzxpjsjTj1[0] = (int)Double.parseDouble(StringUtils.defaultString(par.getTj1(), "0"));
btzxpjsjTj1[1] = (int)Double.parseDouble(StringUtils.defaultString(par.getTj2(), "0"));
btzxpjsjTj1[2] = (int)Double.parseDouble(StringUtils.defaultString(par.getTj3(), "0"));
btzxpjsjTj1[3] = (int)Double.parseDouble(StringUtils.defaultString(par.getTj4(), "0"));
btzxpjsjTj1[4] = (int)Double.parseDouble(StringUtils.defaultString(par.getTj5(), "0"));
btzxpjsjTj1[5] = (int)Double.parseDouble(StringUtils.defaultString(par.getTj6(), "0"));
}else if(i==1){
btzxpjsjTj2[0] = (int)Double.parseDouble(par.getTj1());
btzxpjsjTj2[1] = (int)Double.parseDouble(par.getTj2());
btzxpjsjTj2[2] = (int)Double.parseDouble(par.getTj3());
btzxpjsjTj2[3] = (int)Double.parseDouble(par.getTj4());
btzxpjsjTj2[4] = (int)Double.parseDouble(par.getTj5());
btzxpjsjTj2[5] = (int)Double.parseDouble(par.getTj6());
btzxpjsjTj2[0] = (int)Double.parseDouble(StringUtils.defaultString(par.getTj1(), "0"));
btzxpjsjTj2[1] = (int)Double.parseDouble(StringUtils.defaultString(par.getTj2(), "0"));
btzxpjsjTj2[2] = (int)Double.parseDouble(StringUtils.defaultString(par.getTj3(), "0"));
btzxpjsjTj2[3] = (int)Double.parseDouble(StringUtils.defaultString(par.getTj4(), "0"));
btzxpjsjTj2[4] = (int)Double.parseDouble(StringUtils.defaultString(par.getTj5(), "0"));
btzxpjsjTj2[5] = (int)Double.parseDouble(StringUtils.defaultString(par.getTj6(), "0"));
}else if(i==2){
btzxpjsjTj3[0] = (int)Double.parseDouble(par.getTj1());
btzxpjsjTj3[1] = (int)Double.parseDouble(par.getTj2());
btzxpjsjTj3[2] = (int)Double.parseDouble(par.getTj3());
btzxpjsjTj3[3] = (int)Double.parseDouble(par.getTj4());
btzxpjsjTj3[4] = (int)Double.parseDouble(par.getTj5());
btzxpjsjTj3[5] = (int)Double.parseDouble(par.getTj6());
btzxpjsjTj3[0] = (int)Double.parseDouble(StringUtils.defaultString(par.getTj1(), "0"));
btzxpjsjTj3[1] = (int)Double.parseDouble(StringUtils.defaultString(par.getTj2(), "0"));
btzxpjsjTj3[2] = (int)Double.parseDouble(StringUtils.defaultString(par.getTj3(), "0"));
btzxpjsjTj3[3] = (int)Double.parseDouble(StringUtils.defaultString(par.getTj4(), "0"));
btzxpjsjTj3[4] = (int)Double.parseDouble(StringUtils.defaultString(par.getTj5(), "0"));
btzxpjsjTj3[5] = (int)Double.parseDouble(StringUtils.defaultString(par.getTj6(), "0"));
}else if(i==3){
btzxpjsjTj4[0] = (int)Double.parseDouble(par.getTj1());
btzxpjsjTj4[1] = (int)Double.parseDouble(par.getTj2());
btzxpjsjTj4[2] = (int)Double.parseDouble(par.getTj3());
btzxpjsjTj4[3] = (int)Double.parseDouble(par.getTj4());
btzxpjsjTj4[4] = (int)Double.parseDouble(par.getTj5());
btzxpjsjTj4[5] = (int)Double.parseDouble(par.getTj6());
btzxpjsjTj4[0] = (int)Double.parseDouble(StringUtils.defaultString(par.getTj1(), "0"));
btzxpjsjTj4[1] = (int)Double.parseDouble(StringUtils.defaultString(par.getTj2(), "0"));
btzxpjsjTj4[2] = (int)Double.parseDouble(StringUtils.defaultString(par.getTj3(), "0"));
btzxpjsjTj4[3] = (int)Double.parseDouble(StringUtils.defaultString(par.getTj4(), "0"));
btzxpjsjTj4[4] = (int)Double.parseDouble(StringUtils.defaultString(par.getTj5(), "0"));
btzxpjsjTj4[5] = (int)Double.parseDouble(StringUtils.defaultString(par.getTj6(), "0"));
}
}
//多柱图
@ -2470,19 +2471,19 @@ public class BlTeacherAnswerServiceImpl extends ServiceImpl<BlTeacherAnswerMappe
for(int i=0;i<btgwlxpjsjTjtList.size();i++){
BlTeacherAnswer par = btgwlxpjsjTjtList.get(i);
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());
btgwlxpjsjTj1[0] = (int)Double.parseDouble(StringUtils.defaultString(par.getTj1(), "0"));
btgwlxpjsjTj1[1] = (int)Double.parseDouble(StringUtils.defaultString(par.getTj2(), "0"));
btgwlxpjsjTj1[2] = (int)Double.parseDouble(StringUtils.defaultString(par.getTj3(), "0"));
btgwlxpjsjTj1[3] = (int)Double.parseDouble(StringUtils.defaultString(par.getTj4(), "0"));
btgwlxpjsjTj1[4] = (int)Double.parseDouble(StringUtils.defaultString(par.getTj5(), "0"));
btgwlxpjsjTj1[5] = (int)Double.parseDouble(StringUtils.defaultString(par.getTj6(), "0"));
}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());
btgwlxpjsjTj2[0] = (int)Double.parseDouble(StringUtils.defaultString(par.getTj1(), "0"));
btgwlxpjsjTj2[1] = (int)Double.parseDouble(StringUtils.defaultString(par.getTj2(), "0"));
btgwlxpjsjTj2[2] = (int)Double.parseDouble(StringUtils.defaultString(par.getTj3(), "0"));
btgwlxpjsjTj2[3] = (int)Double.parseDouble(StringUtils.defaultString(par.getTj4(), "0"));
btgwlxpjsjTj2[4] = (int)Double.parseDouble(StringUtils.defaultString(par.getTj5(), "0"));
btgwlxpjsjTj2[5] = (int)Double.parseDouble(StringUtils.defaultString(par.getTj6(), "0"));
}
}
//多柱图
@ -2508,7 +2509,7 @@ public class BlTeacherAnswerServiceImpl extends ServiceImpl<BlTeacherAnswerMappe
String cnrName[] = new String[jxsjtrTjtList.size()];//名称
for(int i=0;i<jxsjtrTjtList.size();i++){
BlTeacherAnswer par = jxsjtrTjtList.get(i);
cnrFcfh[i] = (int)Double.parseDouble(par.getTj1());
cnrFcfh[i] = (int)Double.parseDouble(StringUtils.defaultString(par.getTj1(), "0"));
cnrName[i] = par.getLsname();
}
//单柱图
@ -2544,11 +2545,11 @@ public class BlTeacherAnswerServiceImpl extends ServiceImpl<BlTeacherAnswerMappe
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);
ldt3Data[0] = Double.parseDouble(StringUtils.defaultString(jsnggfmpj1, "0"));
ldt3Data[1] = Double.parseDouble(StringUtils.defaultString(jsnggfmpj2, "0"));
ldt3Data[2] = Double.parseDouble(StringUtils.defaultString(jsnggfmpj3, "0"));
ldt3Data[3] = Double.parseDouble(StringUtils.defaultString(jsnggfmpj4, "0"));
ldt3Data[4] = Double.parseDouble(StringUtils.defaultString(jsnggfmpj5, "0"));
//雷达图
String jsdjxnlgfmpggxzbLdtImg6Ldt = "option = { title: { right: '30', text: '单位:分', textStyle: { fontSize: 25,fontFamily: '宋体' } }," +
"polar: { radius: '50%' }, radiusAxis: { show: false }, angleAxis: {show: true, interval: 1,min: 0, max: 5, inverse: true,axisLine: {lineStyle: {color: 'rgba(0,0,0,0)'}},axisTick: {show: false,inside: true},\n" +
@ -2629,12 +2630,12 @@ public class BlTeacherAnswerServiceImpl extends ServiceImpl<BlTeacherAnswerMappe
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);
ldt2Data[0] = Double.parseDouble(StringUtils.defaultString(jsjbxwhppf1, "0"));
ldt2Data[1] = Double.parseDouble(StringUtils.defaultString(jsjbxwhppf2, "0"));
ldt2Data[2] = Double.parseDouble(StringUtils.defaultString(jsjbxwhppf3, "0"));
ldt2Data[3] = Double.parseDouble(StringUtils.defaultString(jsjbxwhppf4, "0"));
ldt2Data[4] = Double.parseDouble(StringUtils.defaultString(jsjbxwhppf5, "0"));
ldt2Data[5] = Double.parseDouble(StringUtils.defaultString(jsjbxwhppf6, "0"));
//雷达图
String jsjbxwhpLdtImg4Ldt = "option = { title: { right: '30', text: '单位:分', textStyle: { fontSize: 25,fontFamily: '宋体' } }," +
"polar: { radius: '50%' }, radiusAxis: { show: false }, angleAxis: {show: true, interval: 1,min: 0, max: 6, inverse: true,axisLine: {lineStyle: {color: 'rgba(0,0,0,0)'}},axisTick: {show: false,inside: true},\n" +
@ -2714,9 +2715,9 @@ public class BlTeacherAnswerServiceImpl extends ServiceImpl<BlTeacherAnswerMappe
result.put("sdsfJsmm", sdsfJsmm);//数量
Double ldt1Data[] = new Double[3];
ldt1Data[0] = Double.parseDouble(sdsfYfyg);
ldt1Data[1] = Double.parseDouble(sdsfGxah);
ldt1Data[2] = Double.parseDouble(sdsfJsmm);
ldt1Data[0] = Double.parseDouble(StringUtils.defaultString(sdsfYfyg, "0"));
ldt1Data[1] = Double.parseDouble(StringUtils.defaultString(sdsfGxah, "0"));
ldt1Data[2] = Double.parseDouble(StringUtils.defaultString(sdsfJsmm, "0"));
//雷达图
String sdsfhpLdtImg2Ldt = "option = { title: { right: '30', text: '单位:分', textStyle: { fontSize: 25,fontFamily: '宋体' } }," +
"polar: { radius: '50%' }, radiusAxis: { show: false }, angleAxis: {show: true, interval: 1,min: 0, max: 3, inverse: true,axisLine: {lineStyle: {color: 'rgba(0,0,0,0)'}},axisTick: {show: false,inside: true},\n" +

View File

@ -22,6 +22,8 @@ import java.io.File;
import java.io.IOException;
import java.nio.file.Files;
import java.nio.file.Path;
import java.time.Duration;
import java.time.temporal.ChronoUnit;
import java.util.Date;
import java.util.Map;
@ -55,6 +57,12 @@ public class WebDriverUtil {
// System.setProperty("webdriver.chrome.driver", "D:/developkit/driver/chromedriver.exe");
//设置 chrome 的无头模式
ChromeOptions chromeOptions = new ChromeOptions();
//js执行超时时间
Duration duration = Duration.of(5, ChronoUnit.SECONDS);
chromeOptions.setScriptTimeout(duration);
//页面加载超时时间
chromeOptions.setPageLoadTimeout(duration);
//无头模式
chromeOptions.setHeadless(Boolean.parseBoolean(global.getConfig("webDriver.isShow")));
//地址出现data:,
@ -151,7 +159,7 @@ public class WebDriverUtil {
log.error(e.getMessage(), e);
} finally {
if(Boolean.parseBoolean(global.getConfig("webDriver.isClose")) && driver != null){
//driver.close();
// driver.close();
driver.quit();
}
}

View File

@ -0,0 +1,27 @@
// Copyright 2015 The Chromium Authors
//
// Redistribution and use in source and binary forms, with or without
// modification, are permitted provided that the following conditions are
// met:
//
// * Redistributions of source code must retain the above copyright
// notice, this list of conditions and the following disclaimer.
// * Redistributions in binary form must reproduce the above
// copyright notice, this list of conditions and the following disclaimer
// in the documentation and/or other materials provided with the
// distribution.
// * Neither the name of Google LLC nor the names of its
// contributors may be used to endorse or promote products derived from
// this software without specific prior written permission.
//
// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.

View File

@ -0,0 +1,27 @@
// Copyright 2015 The Chromium Authors
//
// Redistribution and use in source and binary forms, with or without
// modification, are permitted provided that the following conditions are
// met:
//
// * Redistributions of source code must retain the above copyright
// notice, this list of conditions and the following disclaimer.
// * Redistributions in binary form must reproduce the above
// copyright notice, this list of conditions and the following disclaimer
// in the documentation and/or other materials provided with the
// distribution.
// * Neither the name of Google LLC nor the names of its
// contributors may be used to endorse or promote products derived from
// this software without specific prior written permission.
//
// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.