2024年7月26日 修复问题,修补合行后斑马纹不正常的问题,修复部分图表没有【非常不满意】的问题
This commit is contained in:
parent
d26d77b570
commit
bee06cd0c6
|
@ -140,6 +140,8 @@ public interface BlStuAnswerMapper extends BaseMapper<BlStuAnswer> {
|
|||
|
||||
String b2_1_4(BlStuInfo blStuMain);
|
||||
|
||||
String b2_1_4_1(BlStuInfo blStuMain);
|
||||
|
||||
@InterceptorIgnore(tenantLine = "true")
|
||||
@MapKey("key")
|
||||
List<Map<String, String>> i2_1(BlStuInfo blStuMain);
|
||||
|
|
|
@ -302,7 +302,7 @@
|
|||
</select>
|
||||
|
||||
<select id="b1_3_2" resultType="String">
|
||||
select concat(round(round(sum(INTERACT_METHOD1)/count('x'),2)*100)) from bl_stu_answer where main_id = #{id}
|
||||
select concat(round(round(sum(INTERACT_RESEARCH1)/count('x'),2)*100)) from bl_stu_answer where main_id = #{id}
|
||||
</select>
|
||||
|
||||
<select id="b1_3_3" resultType="String">
|
||||
|
@ -310,21 +310,10 @@
|
|||
</select>
|
||||
|
||||
<select id="b1_3_4" resultType="String">
|
||||
select concat(round(round(sum(INTERACT_RESEARCH1)/count('x'),2)*100)) from bl_stu_answer where main_id = #{id}
|
||||
select concat(round(round(sum(INTERACT_METHOD1)/count('x'),2)*100)) from bl_stu_answer where main_id = #{id}
|
||||
</select>
|
||||
|
||||
<select id="i1_9" resultType="java.util.LinkedHashMap">
|
||||
select '和同学合作完成课程任务或作业' as 'key',
|
||||
round(round(a.fc_cnt/f.tot_cnt,2)*100) as '总是',
|
||||
round(round(b.bj_cnt/f.tot_cnt,2)*100) as '经常',
|
||||
round(round(c.yb_cnt/f.tot_cnt,2)*100) as '偶尔',
|
||||
round(round(e.fcb_cnt/f.tot_cnt,2)*100) as '从不' from
|
||||
(select count('x') as fc_cnt from bl_stu_answer where main_id = #{id} and INTERACT_TASK = '总是')a,
|
||||
(select count('x') as bj_cnt from bl_stu_answer where main_id = #{id} and INTERACT_TASK = '经常')b,
|
||||
(select count('x') as yb_cnt from bl_stu_answer where main_id = #{id} and INTERACT_TASK = '偶尔')c,
|
||||
(select count('x') as fcb_cnt from bl_stu_answer where main_id = #{id} and INTERACT_TASK = '从不')e,
|
||||
(select count('x') as tot_cnt from bl_stu_answer where main_id = #{id})f
|
||||
union all
|
||||
select '从同学那里学习、吸收好的学习方法' as 'key',
|
||||
round(round(a.fc_cnt/f.tot_cnt,2)*100) as '总是',
|
||||
round(round(b.bj_cnt/f.tot_cnt,2)*100) as '经常',
|
||||
|
@ -336,15 +325,15 @@
|
|||
(select count('x') as fcb_cnt from bl_stu_answer where main_id = #{id} and INTERACT_METHOD = '从不')e,
|
||||
(select count('x') as tot_cnt from bl_stu_answer where main_id = #{id})f
|
||||
union all
|
||||
select '和同学一起参加学科竞赛' as 'key',
|
||||
select '和同学合作完成课程任务或作业' as 'key',
|
||||
round(round(a.fc_cnt/f.tot_cnt,2)*100) as '总是',
|
||||
round(round(b.bj_cnt/f.tot_cnt,2)*100) as '经常',
|
||||
round(round(c.yb_cnt/f.tot_cnt,2)*100) as '偶尔',
|
||||
round(round(e.fcb_cnt/f.tot_cnt,2)*100) as '从不' from
|
||||
(select count('x') as fc_cnt from bl_stu_answer where main_id = #{id} and INTERACT_COMPETITION = '总是')a,
|
||||
(select count('x') as bj_cnt from bl_stu_answer where main_id = #{id} and INTERACT_COMPETITION = '经常')b,
|
||||
(select count('x') as yb_cnt from bl_stu_answer where main_id = #{id} and INTERACT_COMPETITION = '偶尔')c,
|
||||
(select count('x') as fcb_cnt from bl_stu_answer where main_id = #{id} and INTERACT_COMPETITION = '从不')e,
|
||||
(select count('x') as fc_cnt from bl_stu_answer where main_id = #{id} and INTERACT_TASK = '总是')a,
|
||||
(select count('x') as bj_cnt from bl_stu_answer where main_id = #{id} and INTERACT_TASK = '经常')b,
|
||||
(select count('x') as yb_cnt from bl_stu_answer where main_id = #{id} and INTERACT_TASK = '偶尔')c,
|
||||
(select count('x') as fcb_cnt from bl_stu_answer where main_id = #{id} and INTERACT_TASK = '从不')e,
|
||||
(select count('x') as tot_cnt from bl_stu_answer where main_id = #{id})f
|
||||
union all
|
||||
select '和同学一起参与老师科研团队' as 'key',
|
||||
|
@ -357,6 +346,17 @@
|
|||
(select count('x') as yb_cnt from bl_stu_answer where main_id = #{id} and INTERACT_RESEARCH = '偶尔')c,
|
||||
(select count('x') as fcb_cnt from bl_stu_answer where main_id = #{id} and INTERACT_RESEARCH = '从不')e,
|
||||
(select count('x') as tot_cnt from bl_stu_answer where main_id = #{id})f
|
||||
union all
|
||||
select '和同学一起参加学科竞赛' as 'key',
|
||||
round(round(a.fc_cnt/f.tot_cnt,2)*100) as '总是',
|
||||
round(round(b.bj_cnt/f.tot_cnt,2)*100) as '经常',
|
||||
round(round(c.yb_cnt/f.tot_cnt,2)*100) as '偶尔',
|
||||
round(round(e.fcb_cnt/f.tot_cnt,2)*100) as '从不' from
|
||||
(select count('x') as fc_cnt from bl_stu_answer where main_id = #{id} and INTERACT_COMPETITION = '总是')a,
|
||||
(select count('x') as bj_cnt from bl_stu_answer where main_id = #{id} and INTERACT_COMPETITION = '经常')b,
|
||||
(select count('x') as yb_cnt from bl_stu_answer where main_id = #{id} and INTERACT_COMPETITION = '偶尔')c,
|
||||
(select count('x') as fcb_cnt from bl_stu_answer where main_id = #{id} and INTERACT_COMPETITION = '从不')e,
|
||||
(select count('x') as tot_cnt from bl_stu_answer where main_id = #{id})f
|
||||
</select>
|
||||
|
||||
<select id="t1_10" resultType="java.util.LinkedHashMap">
|
||||
|
@ -383,10 +383,10 @@
|
|||
union all
|
||||
select '从同学那里学习、吸收好的学习方法' as 'key',a.d1 as '01',b.d2 as '02',c.d3 as '03',d.d4 as '04'
|
||||
from
|
||||
(select round(round(sum(INTERACT_RESEARCH1)/count('x'),2)*100)as d1 from bl_stu_answer where main_id = #{id} and nianji = '大一' )a,
|
||||
(select round(round(sum(INTERACT_RESEARCH1)/count('x'),2)*100)as d2 from bl_stu_answer where main_id = #{id} and nianji = '大二' )b,
|
||||
(select round(round(sum(INTERACT_RESEARCH1)/count('x'),2)*100)as d3 from bl_stu_answer where main_id = #{id} and nianji = '大三' )c,
|
||||
(select round(round(sum(INTERACT_RESEARCH1)/count('x'),2)*100)as d4 from bl_stu_answer where main_id = #{id} and nianji = '大四' )d
|
||||
(select round(round(sum(INTERACT_METHOD1)/count('x'),2)*100)as d1 from bl_stu_answer where main_id = #{id} and nianji = '大一' )a,
|
||||
(select round(round(sum(INTERACT_METHOD1)/count('x'),2)*100)as d2 from bl_stu_answer where main_id = #{id} and nianji = '大二' )b,
|
||||
(select round(round(sum(INTERACT_METHOD1)/count('x'),2)*100)as d3 from bl_stu_answer where main_id = #{id} and nianji = '大三' )c,
|
||||
(select round(round(sum(INTERACT_METHOD1)/count('x'),2)*100)as d4 from bl_stu_answer where main_id = #{id} and nianji = '大四' )d
|
||||
</select>
|
||||
|
||||
<select id="t1_11" resultType="java.util.LinkedHashMap">
|
||||
|
@ -395,7 +395,7 @@
|
|||
round(round(sum(INTERACT_TASK1)/count('x'),2)*100) as '01',
|
||||
round(round(sum(INTERACT_RESEARCH1)/count('x'),2)*100) as '02',
|
||||
round(round(sum(INTERACT_COMPETITION1)/count('x'),2)*100) as '03',
|
||||
round(round(sum(INTERACT_RESEARCH1)/count('x'),2)*100) as '04'
|
||||
round(round(sum(INTERACT_METHOD1)/count('x'),2)*100) as '04'
|
||||
from bl_stu_answer where main_id = #{id} GROUP BY major
|
||||
HAVING count(*) > #{minNum}
|
||||
order by CONVERT(major USING gbk) COLLATE gbk_chinese_ci
|
||||
|
@ -470,10 +470,10 @@
|
|||
<select id="t1_14" resultType="java.util.LinkedHashMap">
|
||||
select z.major as 'key',round(round(z.z_cnt/t.tot_cnt,2)*100) as '01',round(round(y.y_cnt/t.tot_cnt,2)*100) as '02',round(round(x.x_cnt/t.tot_cnt,2)*100) as '03',round(round(n.n_cnt/t.tot_cnt,2)*100) as '04'
|
||||
from
|
||||
(select major,count('x') as z_cnt from bl_stu_answer where main_id = #{id} and EXCHANGE_FREQ = '每周至少一次' GROUP BY major HAVING count(*) > #{minNum})z,
|
||||
(select major,count('x') as y_cnt from bl_stu_answer where main_id = #{id} and EXCHANGE_FREQ = '每月至少一次' GROUP BY major HAVING count(*) > #{minNum})y,
|
||||
(select major,count('x') as x_cnt from bl_stu_answer where main_id = #{id} and EXCHANGE_FREQ = '每学期至少一次' GROUP BY major HAVING count(*) > #{minNum})x,
|
||||
(select major,count('x') as n_cnt from bl_stu_answer where main_id = #{id} and EXCHANGE_FREQ = '每年至少一次' GROUP BY major HAVING count(*) > #{minNum})n,
|
||||
(select major,count('x') as z_cnt from bl_stu_answer where main_id = #{id} and EXCHANGE_FREQ = '每周至少一次' GROUP BY major)z,
|
||||
(select major,count('x') as y_cnt from bl_stu_answer where main_id = #{id} and EXCHANGE_FREQ = '每月至少一次' GROUP BY major)y,
|
||||
(select major,count('x') as x_cnt from bl_stu_answer where main_id = #{id} and EXCHANGE_FREQ = '每学期至少一次' GROUP BY major)x,
|
||||
(select major,count('x') as n_cnt from bl_stu_answer where main_id = #{id} and EXCHANGE_FREQ = '每年至少一次' GROUP BY major)n,
|
||||
(select major,count('x') as tot_cnt from bl_stu_answer where main_id = #{id} GROUP BY major HAVING count(*) > #{minNum})t
|
||||
where z.major = y.major
|
||||
and z.major = x.major
|
||||
|
@ -508,17 +508,25 @@
|
|||
(select count('x') as tot_cnt from bl_stu_answer where main_id = #{id})b
|
||||
</select>
|
||||
|
||||
<select id="b2_1_4_1" resultType="String">
|
||||
select concat(round(round(a.fc_cnt/b.tot_cnt,2)*100)) from
|
||||
(select count('x') as fc_cnt from bl_stu_answer where main_id = #{id} and SXZZK_SATI = '非常不满意')a,
|
||||
(select count('x') as tot_cnt from bl_stu_answer where main_id = #{id})b
|
||||
</select>
|
||||
|
||||
<select id="i2_1" resultType="java.util.LinkedHashMap">
|
||||
select '思政课程总体满意度' as 'key',
|
||||
round(round(a.fc_cnt/f.tot_cnt,2)*100) as '非常满意',
|
||||
round(round(b.bj_cnt/f.tot_cnt,2)*100) as '比较满意',
|
||||
round(round(c.yb_cnt/f.tot_cnt,2)*100) as '一般',
|
||||
round(round(d.bjb_cnt/f.tot_cnt,2)*100) as '比较不满意'
|
||||
round(round(d.bjb_cnt/f.tot_cnt,2)*100) as '比较不满意',
|
||||
round(round(e.bjb_cnt/f.tot_cnt,2)*100) as '非常不满意'
|
||||
from
|
||||
(select count('x') as fc_cnt from bl_stu_answer where main_id = #{id} and SXZZK_SATI = '非常满意')a,
|
||||
(select count('x') as bj_cnt from bl_stu_answer where main_id = #{id} and SXZZK_SATI = '比较满意')b,
|
||||
(select count('x') as yb_cnt from bl_stu_answer where main_id = #{id} and SXZZK_SATI = '一般')c,
|
||||
(select count('x') as bjb_cnt from bl_stu_answer where main_id = #{id} and SXZZK_SATI = '比较不满意')d,
|
||||
(select count('x') as bjb_cnt from bl_stu_answer where main_id = #{id} and SXZZK_SATI = '非常不满意')e,
|
||||
(select count('x') as tot_cnt from bl_stu_answer where main_id = #{id})f
|
||||
</select>
|
||||
|
||||
|
@ -553,44 +561,56 @@
|
|||
round(round(a.fc_cnt/f.tot_cnt,2)*100) as '非常满意',
|
||||
round(round(b.bj_cnt/f.tot_cnt,2)*100) as '比较满意',
|
||||
round(round(c.yb_cnt/f.tot_cnt,2)*100) as '一般',
|
||||
round(round(d.bjb_cnt/f.tot_cnt,2)*100) as '比较不满意' from
|
||||
round(round(d.bjb_cnt/f.tot_cnt,2)*100) as '比较不满意',
|
||||
round(round(e.bjb_cnt/f.tot_cnt,2)*100) as '非常不满意'
|
||||
from
|
||||
(select count('x') as fc_cnt from bl_stu_answer where main_id = #{id} and SXZZK_ZHILIANG = '非常满意')a,
|
||||
(select count('x') as bj_cnt from bl_stu_answer where main_id = #{id} and SXZZK_ZHILIANG = '比较满意')b,
|
||||
(select count('x') as yb_cnt from bl_stu_answer where main_id = #{id} and SXZZK_ZHILIANG = '一般')c,
|
||||
(select count('x') as bjb_cnt from bl_stu_answer where main_id = #{id} and SXZZK_ZHILIANG = '比较不满意')d,
|
||||
(select count('x') as bjb_cnt from bl_stu_answer where main_id = #{id} and SXZZK_ZHILIANG = '非常不满意')e,
|
||||
(select count('x') as tot_cnt from bl_stu_answer where main_id = #{id})f
|
||||
union all
|
||||
select '教学质量' as 'key',
|
||||
round(round(a.fc_cnt/f.tot_cnt,2)*100) as '非常满意',
|
||||
round(round(b.bj_cnt/f.tot_cnt,2)*100) as '比较满意',
|
||||
round(round(c.yb_cnt/f.tot_cnt,2)*100) as '一般',
|
||||
round(round(d.bjb_cnt/f.tot_cnt,2)*100) as '比较不满意'from
|
||||
round(round(d.bjb_cnt/f.tot_cnt,2)*100) as '比较不满意',
|
||||
round(round(e.bjb_cnt/f.tot_cnt,2)*100) as '非常不满意'
|
||||
from
|
||||
(select count('x') as fc_cnt from bl_stu_answer where main_id = #{id} and SXZZK_ZHILIANG = '非常满意')a,
|
||||
(select count('x') as bj_cnt from bl_stu_answer where main_id = #{id} and SXZZK_ZHILIANG = '比较满意')b,
|
||||
(select count('x') as yb_cnt from bl_stu_answer where main_id = #{id} and SXZZK_ZHILIANG = '一般')c,
|
||||
(select count('x') as bjb_cnt from bl_stu_answer where main_id = #{id} and SXZZK_ZHILIANG = '比较不满意')d,
|
||||
(select count('x') as bjb_cnt from bl_stu_answer where main_id = #{id} and SXZZK_ZHILIANG = '非常不满意')e,
|
||||
(select count('x') as tot_cnt from bl_stu_answer where main_id = #{id})f
|
||||
union all
|
||||
select '教学内容' as 'key',
|
||||
round(round(a.fc_cnt/f.tot_cnt,2)*100) as '非常满意',
|
||||
round(round(b.bj_cnt/f.tot_cnt,2)*100) as '比较满意',
|
||||
round(round(c.yb_cnt/f.tot_cnt,2)*100) as '一般',
|
||||
round(round(d.bjb_cnt/f.tot_cnt,2)*100) as '比较不满意'from
|
||||
round(round(d.bjb_cnt/f.tot_cnt,2)*100) as '比较不满意',
|
||||
round(round(e.bjb_cnt/f.tot_cnt,2)*100) as '非常不满意'
|
||||
from
|
||||
(select count('x') as fc_cnt from bl_stu_answer where main_id = #{id} and SXZZK_NEIRONG = '非常满意')a,
|
||||
(select count('x') as bj_cnt from bl_stu_answer where main_id = #{id} and SXZZK_NEIRONG = '比较满意')b,
|
||||
(select count('x') as yb_cnt from bl_stu_answer where main_id = #{id} and SXZZK_NEIRONG = '一般')c,
|
||||
(select count('x') as bjb_cnt from bl_stu_answer where main_id = #{id} and SXZZK_NEIRONG = '比较不满意')d,
|
||||
(select count('x') as bjb_cnt from bl_stu_answer where main_id = #{id} and SXZZK_NEIRONG = '非常不满意')e,
|
||||
(select count('x') as tot_cnt from bl_stu_answer where main_id = #{id})f
|
||||
union all
|
||||
select '教学效果' as 'key',
|
||||
round(round(a.fc_cnt/f.tot_cnt,2)*100) as '非常满意',
|
||||
round(round(b.bj_cnt/f.tot_cnt,2)*100) as '比较满意',
|
||||
round(round(c.yb_cnt/f.tot_cnt,2)*100) as '一般',
|
||||
round(round(d.bjb_cnt/f.tot_cnt,2)*100) as '比较不满意' from
|
||||
round(round(d.bjb_cnt/f.tot_cnt,2)*100) as '比较不满意',
|
||||
round(round(e.bjb_cnt/f.tot_cnt,2)*100) as '非常不满意'
|
||||
from
|
||||
(select count('x') as fc_cnt from bl_stu_answer where main_id = #{id} and SXZZK_XIAOGUO = '非常满意')a,
|
||||
(select count('x') as bj_cnt from bl_stu_answer where main_id = #{id} and SXZZK_XIAOGUO = '比较满意')b,
|
||||
(select count('x') as yb_cnt from bl_stu_answer where main_id = #{id} and SXZZK_XIAOGUO = '一般')c,
|
||||
(select count('x') as bjb_cnt from bl_stu_answer where main_id = #{id} and SXZZK_XIAOGUO = '比较不满意')d,
|
||||
(select count('x') as bjb_cnt from bl_stu_answer where main_id = #{id} and SXZZK_XIAOGUO = '非常不满意')e,
|
||||
(select count('x') as tot_cnt from bl_stu_answer where main_id = #{id})f
|
||||
</select>
|
||||
|
||||
|
@ -968,6 +988,7 @@
|
|||
</select>
|
||||
|
||||
<select id="i2_16" resultType="java.util.LinkedHashMap">
|
||||
select a.* from (
|
||||
select '卷面考试' as 'key' ,round(round(b.no_cnt/a.tot_cnt,2)*100) as '01' from (select count('x') as tot_cnt from bl_stu_answer where main_id = #{id})a,(select count('x') as no_cnt from bl_stu_answer where main_id = #{id} and EVALUATE_JUANMIAN = '1')b
|
||||
union all
|
||||
select '随堂提问或测试' as 'key' ,round(round(b.no_cnt/a.tot_cnt,2)*100) as '01' from (select count('x') as tot_cnt from bl_stu_answer where main_id = #{id})a,(select count('x') as no_cnt from bl_stu_answer where main_id = #{id} and EVALUATE_TIWEN = '1')b
|
||||
|
@ -979,6 +1000,7 @@
|
|||
select '个人独立完成的课程作业' as 'key' ,round(round(b.no_cnt/a.tot_cnt,2)*100) as '01' from (select count('x') as tot_cnt from bl_stu_answer where main_id = #{id})a,(select count('x') as no_cnt from bl_stu_answer where main_id = #{id} and EVALUATE_GEREN = '1')b
|
||||
union all
|
||||
select '过课程论文或实验报告' as 'key' ,round(round(b.no_cnt/a.tot_cnt,2)*100) as '01' from (select count('x') as tot_cnt from bl_stu_answer where main_id = #{id})a,(select count('x') as no_cnt from bl_stu_answer where main_id = #{id} and EVALUATE_LUNWEN = '1')b
|
||||
) a ORDER BY a.`01` desc
|
||||
</select>
|
||||
|
||||
<select id="i2_17" resultType="java.util.LinkedHashMap">
|
||||
|
@ -1105,6 +1127,7 @@
|
|||
</select>
|
||||
|
||||
<select id="i2_21" resultType="java.util.LinkedHashMap">
|
||||
select a.* from (
|
||||
select '学生社团活动' as 'key' ,round(round(sum(ACTIVITY_SOCIETY)/count('x'),2)*100) as '01' from bl_stu_answer where main_id = #{id}
|
||||
UNION all
|
||||
select '校园文化活动' as 'key' ,round(round(sum(ACTIVITY_CULTURE)/count('x'),2)*100) as '01' from bl_stu_answer where main_id = #{id}
|
||||
|
@ -1114,6 +1137,7 @@
|
|||
select '创新创业活动' as 'key' ,round(round(sum(ACTIVITY_INNO)/count('x'),2)*100) as '01' from bl_stu_answer where main_id = #{id}
|
||||
UNION all
|
||||
select '国际交流活动' as 'key' ,round(round(sum(ACTIVITY_GLOBAL)/count('x'),2)*100) as '01' from bl_stu_answer where main_id = #{id}
|
||||
) a ORDER BY a.`01` desc
|
||||
</select>
|
||||
|
||||
<select id="i2_22" resultType="java.util.LinkedHashMap">
|
||||
|
@ -1241,11 +1265,11 @@
|
|||
|
||||
<select id="t2_25" resultType="java.util.LinkedHashMap">
|
||||
select a.MAJOR as 'key',a.d1 as '01',b.d2 as '02',c.d3 as '03',d.d4 as '04',e.d5 as '05' from
|
||||
(select major,round(avg(ACTISATI_SOCIETY2)) as d1 from bl_stu_answer where main_id = #{id} and ACTISATI_SOCIETY2 + 0 > 0 GROUP BY MAJOR HAVING count(*) > #{minNum})a,
|
||||
(select major,round(avg(ACTISATI_CULTURE2)) as d2 from bl_stu_answer where main_id = #{id} and ACTISATI_CULTURE2 + 0 > 0 GROUP BY MAJOR HAVING count(*) > #{minNum})b,
|
||||
(select major,round(avg(ACTISATI_INNO2)) as d3 from bl_stu_answer where main_id = #{id} and ACTISATI_INNO2 + 0 > 0 GROUP BY MAJOR HAVING count(*) > #{minNum})c,
|
||||
(select major,round(avg(ACTISATI_GLOBAL2)) as d4 from bl_stu_answer where main_id = #{id} and ACTISATI_GLOBAL2 + 0 > 0 GROUP BY MAJOR HAVING count(*) > #{minNum})d,
|
||||
(select major,round(avg(ACTISATI_INTERN2)) as d5 from bl_stu_answer where main_id = #{id} and ACTISATI_INTERN2 + 0 > 0 GROUP BY MAJOR HAVING count(*) > #{minNum})e
|
||||
(select major,round(avg(ACTISATI_SOCIETY2)) as d1 from bl_stu_answer where main_id = #{id} and ACTISATI_SOCIETY2 + 0 > 0 GROUP BY MAJOR)a,
|
||||
(select major,round(avg(ACTISATI_CULTURE2)) as d2 from bl_stu_answer where main_id = #{id} and ACTISATI_CULTURE2 + 0 > 0 GROUP BY MAJOR)b,
|
||||
(select major,round(avg(ACTISATI_INNO2)) as d3 from bl_stu_answer where main_id = #{id} and ACTISATI_INNO2 + 0 > 0 GROUP BY MAJOR)c,
|
||||
(select major,round(avg(ACTISATI_GLOBAL2)) as d4 from bl_stu_answer where main_id = #{id} and ACTISATI_GLOBAL2 + 0 > 0 GROUP BY MAJOR)d,
|
||||
(select major,round(avg(ACTISATI_INTERN2)) as d5 from bl_stu_answer where main_id = #{id} and ACTISATI_INTERN2 + 0 > 0 GROUP BY MAJOR)e
|
||||
where a.major = b.MAJOR
|
||||
and a.major = c.MAJOR
|
||||
and a.major = d.MAJOR
|
||||
|
@ -1780,21 +1804,21 @@
|
|||
(select round(round(sum(TEACHERSATI_MORAL2)/count('x'),2))as d3 from bl_stu_answer where main_id = #{id} and nianji = '大三' )c,
|
||||
(select round(round(sum(TEACHERSATI_MORAL2)/count('x'),2))as d4 from bl_stu_answer where main_id = #{id} and nianji = '大四' )d
|
||||
union all
|
||||
select '科学精神' as 'key',a.d1 as '01',b.d2 as '02',c.d3 as '03',d.d4 as '04'
|
||||
select '教学投入' as 'key',a.d1 as '01',b.d2 as '02',c.d3 as '03',d.d4 as '04'
|
||||
from
|
||||
(select round(round(sum(TEACHERSATI_INPUT2)/count('x'),2))as d1 from bl_stu_answer where main_id = #{id} and nianji = '大一' )a,
|
||||
(select round(round(sum(TEACHERSATI_INPUT2)/count('x'),2))as d2 from bl_stu_answer where main_id = #{id} and nianji = '大二' )b,
|
||||
(select round(round(sum(TEACHERSATI_INPUT2)/count('x'),2))as d3 from bl_stu_answer where main_id = #{id} and nianji = '大三' )c,
|
||||
(select round(round(sum(TEACHERSATI_INPUT2)/count('x'),2))as d4 from bl_stu_answer where main_id = #{id} and nianji = '大四' )d
|
||||
union all
|
||||
select '学会学习' as 'key',a.d1 as '01',b.d2 as '02',c.d3 as '03',d.d4 as '04'
|
||||
select '依法依规,履行教师职责' as 'key',a.d1 as '01',b.d2 as '02',c.d3 as '03',d.d4 as '04'
|
||||
from
|
||||
(select round(round(sum(TEACHERSATI_LAW2)/count('x'),2))as d1 from bl_stu_answer where main_id = #{id} and nianji = '大一' )a,
|
||||
(select round(round(sum(TEACHERSATI_LAW2)/count('x'),2))as d2 from bl_stu_answer where main_id = #{id} and nianji = '大二' )b,
|
||||
(select round(round(sum(TEACHERSATI_LAW2)/count('x'),2))as d3 from bl_stu_answer where main_id = #{id} and nianji = '大三' )c,
|
||||
(select round(round(sum(TEACHERSATI_LAW2)/count('x'),2))as d4 from bl_stu_answer where main_id = #{id} and nianji = '大四' )d
|
||||
union all
|
||||
select '健康生活' as 'key',a.d1 as '01',b.d2 as '02',c.d3 as '03',d.d4 as '04'
|
||||
select '关心爱护学生' as 'key',a.d1 as '01',b.d2 as '02',c.d3 as '03',d.d4 as '04'
|
||||
from
|
||||
(select round(round(sum(TEACHERSATI_CARE2)/count('x'),2))as d1 from bl_stu_answer where main_id = #{id} and nianji = '大一' )a,
|
||||
(select round(round(sum(TEACHERSATI_CARE2)/count('x'),2))as d2 from bl_stu_answer where main_id = #{id} and nianji = '大二' )b,
|
||||
|
@ -2162,6 +2186,7 @@
|
|||
</select>
|
||||
|
||||
<select id="i4_5" resultType="java.util.LinkedHashMap">
|
||||
select a.* from (
|
||||
select '学校或学院提供的辅导课程或相关活动' as 'key' ,round(round(b.no_cnt/a.tot_cnt,2)*100) as '01' from (select count('x') as tot_cnt from bl_stu_answer where main_id = #{id})a,(select count('x') as no_cnt from bl_stu_answer where main_id = #{id} and XYZD_KECHENG = '1')b
|
||||
union all
|
||||
select '任课教师帮助解决相关问题' as 'key' ,round(round(b.no_cnt/a.tot_cnt,2)*100) as '01' from (select count('x') as tot_cnt from bl_stu_answer where main_id = #{id})a,(select count('x') as no_cnt from bl_stu_answer where main_id = #{id} and XYZD_JIAOSHI = '1')b
|
||||
|
@ -2173,6 +2198,7 @@
|
|||
select '本科生导师帮助解决相关问题' as 'key' ,round(round(b.no_cnt/a.tot_cnt,2)*100) as '01' from (select count('x') as tot_cnt from bl_stu_answer where main_id = #{id})a,(select count('x') as no_cnt from bl_stu_answer where main_id = #{id} and XYZD_DAOSHI = '1')b
|
||||
union all
|
||||
select '没有接受过本校提供的学业指导服务' as 'key' ,round(round(b.no_cnt/a.tot_cnt,2)*100) as '01' from (select count('x') as tot_cnt from bl_stu_answer where main_id = #{id})a,(select count('x') as no_cnt from bl_stu_answer where main_id = #{id} and XYZD_NO = '1')b
|
||||
) a ORDER BY a.`01` desc
|
||||
</select>
|
||||
|
||||
<select id="t4_6" resultType="java.util.LinkedHashMap">
|
||||
|
|
|
@ -90,10 +90,11 @@ public class BlStuAnswerServiceImpl extends ServiceImpl<BlStuAnswerMapper, BlStu
|
|||
//多线程执行
|
||||
CompletionService<Boolean> threadService = ThreadUtil.newCompletionService(Executors.newFixedThreadPool(100));
|
||||
List<Callable<Boolean>> calls = Lists.newArrayList();
|
||||
List<TableMerge> allMergeList = Lists.newArrayList();
|
||||
List<TableMerge> mergeListT1_1 = Lists.newArrayList();
|
||||
List<TableMerge> mergeListT2_10 = Lists.newArrayList();
|
||||
calls.add(() -> {
|
||||
var mergeList = t1_1(wo, result, blStuMain);
|
||||
allMergeList.addAll(mergeList);
|
||||
mergeListT1_1.addAll(mergeList);
|
||||
return true;
|
||||
});
|
||||
calls.add(() -> {
|
||||
|
@ -225,7 +226,8 @@ public class BlStuAnswerServiceImpl extends ServiceImpl<BlStuAnswerMapper, BlStu
|
|||
return true;
|
||||
});
|
||||
calls.add(() -> {
|
||||
t2_10(wo, result, blStuMain);
|
||||
var mergeList = t2_10(wo, result, blStuMain);
|
||||
mergeListT2_10.addAll(mergeList);
|
||||
return true;
|
||||
});
|
||||
calls.add(() -> {
|
||||
|
@ -542,8 +544,24 @@ public class BlStuAnswerServiceImpl extends ServiceImpl<BlStuAnswerMapper, BlStu
|
|||
WordOperator wo2 = WordOperator.twoReplaceWord(wo);
|
||||
//合并行
|
||||
|
||||
allMergeList.forEach(wo2::addTableMerge);
|
||||
int i = 0;
|
||||
for (TableMerge tableMerge : mergeListT1_1){
|
||||
wo2.addTableMerge(tableMerge, i % 2 == 0?"c5d5e9":"f6f8fc");
|
||||
i++;
|
||||
wo2.changeTableFillColor(tableMerge.getTableIndex(), tableMerge.getEndRow()+1, tableMerge.getCol(), i % 2 == 0?"c5d5e9":"f6f8fc");
|
||||
i++;
|
||||
}
|
||||
|
||||
i = 0;
|
||||
for (TableMerge tableMerge : mergeListT2_10){
|
||||
wo2.addTableMerge(tableMerge, i % 2 == 0?"c5d5e9":"f6f8fc");
|
||||
i++;
|
||||
}
|
||||
|
||||
//allMergeList.forEach(wo2::addTableMerge);
|
||||
WordOperator wo3 = WordOperator.twoReplaceWord(wo2);
|
||||
//更改颜色
|
||||
//wo3.changeTableFillColor(0, 0, 10, null, i -> i % 2 == 0?"c5d5e9":"f6f8fc");
|
||||
|
||||
wo3.replaceTextPlus(result);
|
||||
return wo3;
|
||||
|
@ -657,10 +675,17 @@ public class BlStuAnswerServiceImpl extends ServiceImpl<BlStuAnswerMapper, BlStu
|
|||
axisLabel: { textStyle: { color: '#000', fontSize: 20, fontFamily: '宋体' }, },
|
||||
axisLine: { show: true, },
|
||||
axisTick: { show: true, inside: false, },
|
||||
splitLine: { show: false },
|
||||
},
|
||||
axisLabel: { color:'#000', fontSize: 20, fontFamily: '宋体' },
|
||||
barWidth: '25%%',
|
||||
series: [ { label: { show: true, color: '#000', position: 'top', fontSize: 20, fontFamily: '宋体' }, type: 'bar', data: %s } ]
|
||||
series: [
|
||||
{
|
||||
label: { show: true, color: '#000', position: 'top', fontSize: 20, fontFamily: '宋体' }, type: 'bar',
|
||||
itemStyle: { color: '#2350a0' },
|
||||
data: %s
|
||||
}
|
||||
]
|
||||
}
|
||||
""";
|
||||
json = json.formatted(JSONUtil.toJsonStr(xAxisData), JSONUtil.toJsonStr(yAxisData));
|
||||
|
@ -697,7 +722,8 @@ public class BlStuAnswerServiceImpl extends ServiceImpl<BlStuAnswerMapper, BlStu
|
|||
type: 'value', position: 'top', max: %s,
|
||||
axisLabel: { textStyle: { color: '#000', fontSize: 20, fontFamily: '宋体' }, },
|
||||
axisLine: { show: true, },
|
||||
axisTick: { show: true, inside: true, }
|
||||
axisTick: { show: true, inside: true, },
|
||||
splitLine: { show: false },
|
||||
},
|
||||
yAxis: {
|
||||
type: 'category', inverse: true,
|
||||
|
@ -709,6 +735,7 @@ public class BlStuAnswerServiceImpl extends ServiceImpl<BlStuAnswerMapper, BlStu
|
|||
{
|
||||
data: %s,
|
||||
type: 'bar',
|
||||
itemStyle: { color: '#2350a0' },
|
||||
label: { show: true, color: '#000', position: 'right', fontFamily: '宋体', fontSize: 20 },
|
||||
}
|
||||
]
|
||||
|
@ -742,7 +769,9 @@ public class BlStuAnswerServiceImpl extends ServiceImpl<BlStuAnswerMapper, BlStu
|
|||
* @return
|
||||
*/
|
||||
public String getStackHistogram(List<Map<String, String>> list, boolean isAutoCompletionPercentage) {
|
||||
return getStackHistogram(list, isAutoCompletionPercentage, null, null, null);
|
||||
var colorList = List.of("#0f447f","#2350a0", "#008ac8", "#57b8e7", "#beedf8");
|
||||
var textColorList = List.of("#FFF","#FFF", "#FFF", "#000", "#000");
|
||||
return getStackHistogram(list, isAutoCompletionPercentage, colorList, textColorList, null, null, null);
|
||||
}
|
||||
|
||||
/**
|
||||
|
@ -752,6 +781,15 @@ public class BlStuAnswerServiceImpl extends ServiceImpl<BlStuAnswerMapper, BlStu
|
|||
*/
|
||||
public String getStackHistogram(List<Map<String, String>> list, boolean isAutoCompletionPercentage, String height, String laberWidth, String textNextRowNum) {
|
||||
var colorList = List.of("#0f447f","#2350a0", "#008ac8", "#57b8e7", "#beedf8");
|
||||
var textColorList = List.of("#FFF","#FFF", "#FFF", "#000", "#000");
|
||||
return getStackHistogram(list, isAutoCompletionPercentage, colorList, textColorList, height, laberWidth, textNextRowNum);
|
||||
}
|
||||
/**
|
||||
* 堆叠横向柱状图
|
||||
* @param list
|
||||
* @return
|
||||
*/
|
||||
public String getStackHistogram(List<Map<String, String>> list, boolean isAutoCompletionPercentage, List<String> colorList, List<String> textColorList, String height, String laberWidth, String textNextRowNum) {
|
||||
if(laberWidth == null) {
|
||||
laberWidth = "12";
|
||||
}
|
||||
|
@ -759,6 +797,7 @@ public class BlStuAnswerServiceImpl extends ServiceImpl<BlStuAnswerMapper, BlStu
|
|||
textNextRowNum = "12";
|
||||
}
|
||||
AtomicInteger i = new AtomicInteger(0);
|
||||
AtomicInteger i2 = new AtomicInteger(0);
|
||||
Function<AtomicInteger, String> getColor = _i -> {
|
||||
if(colorList.size() - 1 < _i.get()) {
|
||||
//重置坐标为0
|
||||
|
@ -766,13 +805,22 @@ public class BlStuAnswerServiceImpl extends ServiceImpl<BlStuAnswerMapper, BlStu
|
|||
}
|
||||
return colorList.get(_i.getAndAdd(1));
|
||||
};
|
||||
Function<AtomicInteger, String> getTextColor = _i -> {
|
||||
if(textColorList.size() - 1 < _i.get()) {
|
||||
//重置坐标为0
|
||||
_i.set(0);
|
||||
}
|
||||
return textColorList.get(_i.getAndAdd(1));
|
||||
};
|
||||
var seriesTemp = """
|
||||
{
|
||||
name: '%s', type: 'bar', stack: 'total', label: { show: true, textStyle: { fontSize: 20, fontFamily: '宋体', color: '#FFF' } },
|
||||
name: '%s', type: 'bar', stack: 'total', label: { show: true, textStyle: { fontSize: 20, fontFamily: '宋体', color: '%s' } },
|
||||
//emphasis: { focus: 'series' },
|
||||
data: %s,
|
||||
barMinHeight: 40,
|
||||
barWidth: 40,itemStyle: {color: '%s'}
|
||||
//barHeight: '50%%',
|
||||
barWidth: 50,
|
||||
itemStyle: {color: '%s', barBorderColor: 'white',barBorderWidth: 1}
|
||||
},
|
||||
""";
|
||||
var yAxisTemp = "{ value: '%s', textStyle: { color: '#000', fontSize: 20, fontFamily: '宋体' } },";
|
||||
|
@ -834,7 +882,7 @@ public class BlStuAnswerServiceImpl extends ServiceImpl<BlStuAnswerMapper, BlStu
|
|||
nameList.forEach(x -> {
|
||||
if(valueListMap.containsKey(x)) {
|
||||
var seriesData = valueListMap.get(x);
|
||||
var series = seriesTemp.formatted(x, seriesData, getColor.apply(i));
|
||||
var series = seriesTemp.formatted(x, getTextColor.apply(i2), seriesData, getColor.apply(i));
|
||||
seriesList.add(series);
|
||||
}
|
||||
});
|
||||
|
@ -847,7 +895,10 @@ public class BlStuAnswerServiceImpl extends ServiceImpl<BlStuAnswerMapper, BlStu
|
|||
tooltip: { trigger: 'axis', axisPointer: { type: 'shadow' } },
|
||||
legend: {},
|
||||
grid: { left: '%s%%', right: '3%%', bottom: '0%%', containLabel: true },
|
||||
xAxis: { type: 'value' },
|
||||
xAxis: {
|
||||
type: 'value',
|
||||
splitLine: { show: false },
|
||||
},
|
||||
yAxis: { type: 'category', inverse: true,
|
||||
data: %s,
|
||||
axisLabel: {
|
||||
|
@ -937,8 +988,12 @@ public class BlStuAnswerServiceImpl extends ServiceImpl<BlStuAnswerMapper, BlStu
|
|||
},
|
||||
radar: {
|
||||
radius: '50%%',
|
||||
//虚线
|
||||
splitLine: { show: true, lineStyle: { type: 'dashed', color: '#000' } },
|
||||
//不显示斑马纹背景
|
||||
splitArea: { show: false },
|
||||
axisName: {
|
||||
fontSize: 15,
|
||||
fontSize: 20,
|
||||
fontFamily: '宋体',
|
||||
color: '#000',
|
||||
padding: 70,
|
||||
|
@ -956,7 +1011,13 @@ public class BlStuAnswerServiceImpl extends ServiceImpl<BlStuAnswerMapper, BlStu
|
|||
{
|
||||
name: 'data', type: 'radar',
|
||||
label: { position: 'top' },
|
||||
data: [ { value: dataList, name: 'value', }, ]
|
||||
data: [
|
||||
{
|
||||
name: 'value',
|
||||
itemStyle: { color: '#2350a0' },
|
||||
value: dataList,
|
||||
},
|
||||
]
|
||||
}
|
||||
]
|
||||
}
|
||||
|
@ -1062,6 +1123,7 @@ public class BlStuAnswerServiceImpl extends ServiceImpl<BlStuAnswerMapper, BlStu
|
|||
//计算合并列
|
||||
//设置结束值
|
||||
endRow.set(startRow.get() + v.size() -1);
|
||||
// mergeList.add(new TableMerge(tableIndex, col, startRow.get(), endRow.get(), true, rowIndex.get() % 2 == 0?"c5d5e9":"f6f8fc"));
|
||||
mergeList.add(new TableMerge(tableIndex, col, startRow.get(), endRow.get()));
|
||||
//设置下一个的初始值,+2 跳过小计
|
||||
startRow.set(endRow.get() + 2);
|
||||
|
@ -1244,7 +1306,11 @@ public class BlStuAnswerServiceImpl extends ServiceImpl<BlStuAnswerMapper, BlStu
|
|||
//图片i1_9
|
||||
public void i1_9(WordOperator wo, Map<String, Object> result, BlStuInfo blStuMain) {
|
||||
var list = baseMapper.i1_9(blStuMain);
|
||||
String imagePath = getStackHistogram(list);
|
||||
//public String getStackHistogram(List<Map<String, String>> list, boolean isAutoCompletionPercentage, List<String> colorList, List<String> textColorList, String height, String laberWidth, String textNextRowNum) {
|
||||
var colorList = List.of("#0f447f","#2350a0", "#008ac8", "#57b8e7", "#beedf8");
|
||||
var textColorList = List.of("#FFF","#FFF", "#FFF", "#000", "#000");
|
||||
|
||||
String imagePath = getStackHistogram(list, true, colorList, textColorList, null, null, null);
|
||||
result.put("i1_9", imagePath);
|
||||
}
|
||||
|
||||
|
@ -1325,6 +1391,7 @@ public class BlStuAnswerServiceImpl extends ServiceImpl<BlStuAnswerMapper, BlStu
|
|||
result.put("b2_1_2", getMapStr(baseMapper.b2_1_2(blStuMain)));
|
||||
result.put("b2_1_3", getMapStr(baseMapper.b2_1_3(blStuMain)));
|
||||
result.put("b2_1_4", getMapStr(baseMapper.b2_1_4(blStuMain)));
|
||||
result.put("b2_1_4_1", getMapStr(baseMapper.b2_1_4_1(blStuMain)));
|
||||
}
|
||||
|
||||
//图片i2_1
|
||||
|
@ -1439,10 +1506,17 @@ public class BlStuAnswerServiceImpl extends ServiceImpl<BlStuAnswerMapper, BlStu
|
|||
}
|
||||
}
|
||||
//表格 t2_10 这个需要再看看,有合并行
|
||||
public void t2_10(WordOperator wo, Map<String, Object> result, BlStuInfo blStuMain) {
|
||||
//TODO 需要聚合第一列
|
||||
public List<TableMerge> t2_10(WordOperator wo, Map<String, Object> result, BlStuInfo blStuMain) {
|
||||
List<TableMerge> mergeList = Lists.newArrayList();
|
||||
var list = baseMapper.t2_10(blStuMain);
|
||||
List<List<String>> table = Lists.newArrayList();
|
||||
|
||||
Map<String, List<Map<String, String>>> map = Maps.newLinkedHashMap();
|
||||
int tableIndex = 13;
|
||||
int colIndex = 0;
|
||||
AtomicInteger startRow = new AtomicInteger(1);
|
||||
AtomicInteger endRow = new AtomicInteger(1);
|
||||
|
||||
list.forEach(x -> {
|
||||
List<String> col = Lists.newArrayList();
|
||||
table.add(col);
|
||||
|
@ -1452,8 +1526,28 @@ public class BlStuAnswerServiceImpl extends ServiceImpl<BlStuAnswerMapper, BlStu
|
|||
col.add(getMapStrTo00(x.get(K03)));
|
||||
col.add(getMapStrTo00(x.get(K04)));
|
||||
col.add(getMapStrTo00(x.get(K05)));
|
||||
|
||||
if(map.containsKey(x.get(KEY))) {
|
||||
var _list = map.get(x.get(KEY));
|
||||
_list.add(x);
|
||||
} else {
|
||||
List<Map<String, String>> _list = Lists.newArrayList();
|
||||
_list.add(x);
|
||||
map.put(x.get(KEY), _list);
|
||||
}
|
||||
});
|
||||
|
||||
map.forEach((k,v) -> {
|
||||
endRow.set(startRow.get() + v.size() -1);
|
||||
// mergeList.add(new TableMerge(tableIndex, col, startRow.get(), endRow.get(), true, rowIndex.get() % 2 == 0?"c5d5e9":"f6f8fc"));
|
||||
mergeList.add(new TableMerge(tableIndex, colIndex, startRow.get(), endRow.get()));
|
||||
//设置下一个的初始值,+2 跳过小计
|
||||
startRow.set(endRow.get() + 1);
|
||||
|
||||
});
|
||||
wo.insert2Table(13,1,true,table);
|
||||
|
||||
return mergeList;
|
||||
}
|
||||
|
||||
//表格 t2_11
|
||||
|
@ -1770,7 +1864,7 @@ public class BlStuAnswerServiceImpl extends ServiceImpl<BlStuAnswerMapper, BlStu
|
|||
//图片i2_33
|
||||
public void i2_33(WordOperator wo, Map<String, Object> result, BlStuInfo blStuMain) {
|
||||
var list = baseMapper.i2_33(blStuMain);
|
||||
var imagePath = getStackHistogram(list, true, "500", null, null);
|
||||
var imagePath = getStackHistogram(list, true, "600", null, null);
|
||||
result.put("i2_33", imagePath);
|
||||
}
|
||||
//b2_9_1~7
|
||||
|
@ -1881,10 +1975,42 @@ public class BlStuAnswerServiceImpl extends ServiceImpl<BlStuAnswerMapper, BlStu
|
|||
}
|
||||
//b3_2_1~4
|
||||
public void b3_2_1(WordOperator wo, Map<String, Object> result, BlStuInfo blStuMain) {
|
||||
result.put("b3_2_1", getMapStr(baseMapper.b3_2_1(blStuMain)));
|
||||
result.put("b3_2_2", getMapStr(baseMapper.b3_2_2(blStuMain)));
|
||||
result.put("b3_2_3", getMapStr(baseMapper.b3_2_3(blStuMain)));
|
||||
result.put("b3_2_4", getMapStr(baseMapper.b3_2_4(blStuMain)));
|
||||
String t1 = getMapStr(baseMapper.b3_2_1(blStuMain));
|
||||
String t2 = getMapStr(baseMapper.b3_2_2(blStuMain));
|
||||
String t3 = getMapStr(baseMapper.b3_2_3(blStuMain));
|
||||
String t4 = getMapStr(baseMapper.b3_2_4(blStuMain));
|
||||
|
||||
//自动补100
|
||||
var n1 = new BigDecimal(t1);
|
||||
var n2 = new BigDecimal(t2);
|
||||
var n3 = new BigDecimal(t3);
|
||||
var n4 = new BigDecimal(t4);
|
||||
|
||||
var sum = n1.add(n2).add(n3).add(n4);
|
||||
|
||||
var sumi = Integer.parseInt(NumberUtil.decimalFormat("#", sum));
|
||||
var diffi = sumi - 100;
|
||||
|
||||
if(diffi != 0){
|
||||
//大了,减一减
|
||||
if(Integer.parseInt(t1) != 0) {
|
||||
var outNum = new BigDecimal(t1).add(new BigDecimal(diffi).negate());
|
||||
t1 = NumberUtil.decimalFormat("#", outNum);
|
||||
} else if(Integer.parseInt(t2) != 0) {
|
||||
var outNum = new BigDecimal(t2).add(new BigDecimal(diffi).negate());
|
||||
t2 = NumberUtil.decimalFormat("#", outNum);
|
||||
} else if(Integer.parseInt(t3) != 0) {
|
||||
var outNum = new BigDecimal(t3).add(new BigDecimal(diffi).negate());
|
||||
t3 = NumberUtil.decimalFormat("#", outNum);
|
||||
} else if(Integer.parseInt(t4) != 0) {
|
||||
var outNum = new BigDecimal(t4).add(new BigDecimal(diffi).negate());
|
||||
t4 = NumberUtil.decimalFormat("#", outNum);
|
||||
}
|
||||
}
|
||||
result.put("b3_2_1", t1);
|
||||
result.put("b3_2_2", t2);
|
||||
result.put("b3_2_3", t3);
|
||||
result.put("b3_2_4", t4);
|
||||
}
|
||||
//图片i3_5
|
||||
public void i3_5(WordOperator wo, Map<String, Object> result, BlStuInfo blStuMain) {
|
||||
|
@ -2157,7 +2283,7 @@ public class BlStuAnswerServiceImpl extends ServiceImpl<BlStuAnswerMapper, BlStu
|
|||
//图片i4_12
|
||||
public void i4_12(WordOperator wo, Map<String, Object> result, BlStuInfo blStuMain) {
|
||||
var list = baseMapper.i4_12(blStuMain);
|
||||
var imagePath = getStackHistogram(list);
|
||||
var imagePath = getStackHistogram(list, true, "600", null, null);
|
||||
result.put("i4_12", imagePath);
|
||||
}
|
||||
|
||||
|
|
|
@ -22,6 +22,12 @@ import java.io.*;
|
|||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
import java.util.concurrent.Callable;
|
||||
import java.util.concurrent.ExecutorService;
|
||||
import java.util.concurrent.Executors;
|
||||
import java.util.function.Consumer;
|
||||
import java.util.function.Function;
|
||||
import java.util.function.IntFunction;
|
||||
|
||||
/**
|
||||
* 对word模板的操作,包含替换文本和列表向下扩展两种<br>
|
||||
|
@ -1185,8 +1191,8 @@ public class WordOperator {
|
|||
* @param tableMerge
|
||||
* @return
|
||||
*/
|
||||
public WordOperator addTableMerge(TableMerge tableMerge){
|
||||
addTableMerge(tableMerge.getTableIndex(), tableMerge.getCol(), tableMerge.getStartRow(), tableMerge.getEndRow());
|
||||
public WordOperator addTableMerge(TableMerge tableMerge, String color){
|
||||
addTableMerge(tableMerge.getTableIndex(), tableMerge.getCol(), tableMerge.getStartRow(), tableMerge.getEndRow(), StringUtils.isNotBlank(color), color);
|
||||
return this;
|
||||
}
|
||||
|
||||
|
@ -1198,7 +1204,7 @@ public class WordOperator {
|
|||
* @param endRow 第几行结束,从0开始
|
||||
* @return
|
||||
*/
|
||||
public WordOperator addTableMerge(int tableIndex,int col,int startRow,int endRow){
|
||||
public WordOperator addTableMerge(int tableIndex,int col,int startRow,int endRow, boolean isAddColor, String color){
|
||||
XWPFTable table = doc.getTables().get(tableIndex);
|
||||
if(table == null){
|
||||
logger.error("没有找到表格!tableIndex: [{}] col: [{}] startRow: [{}] endRow: [{}]",tableIndex,col,startRow,endRow);
|
||||
|
@ -1232,17 +1238,18 @@ public class WordOperator {
|
|||
// endTcPr.addNewVMerge().setVal(STMerge.CONTINUE);
|
||||
// endTcPr.addNewHMerge().setVal(STMerge.CONTINUE);
|
||||
|
||||
mergeCellsVertically(table, col, startRow,endRow);
|
||||
mergeCellsVertically(table, col, startRow,endRow, isAddColor, color);
|
||||
//table.getRow(startRow).getCell(startCol).getCTTc().addNewTcPr().addNewHMerge().setVal(STMerge.RESTART);//开始
|
||||
//table.getRow(endRow).getCell(endCol).getCTTc().addNewTcPr().addNewHMerge().setVal(STMerge.CONTINUE);//结尾
|
||||
return this;
|
||||
}
|
||||
|
||||
public static void mergeCellsVertically(XWPFTable table, int col, int fromRow, int toRow) {
|
||||
public static void mergeCellsVertically(XWPFTable table, int col, int fromRow, int toRow, boolean isAddColor, String color) {
|
||||
if (toRow > fromRow) {
|
||||
for(int rowIndex = fromRow; rowIndex <= toRow; ++rowIndex) {
|
||||
XWPFTableCell cell = table.getRow(rowIndex).getCell(col);
|
||||
CTTcPr tcPr = cell.getCTTc().getTcPr();
|
||||
CTTc ctTc = cell.getCTTc();
|
||||
CTTcPr tcPr = ctTc.getTcPr();
|
||||
if(tcPr == null) {
|
||||
tcPr = cell.getCTTc().addNewTcPr();
|
||||
}
|
||||
|
@ -1252,11 +1259,84 @@ public class WordOperator {
|
|||
} else {
|
||||
vMerge.setVal(STMerge.CONTINUE);
|
||||
}
|
||||
|
||||
if(isAddColor){
|
||||
CTShd ctShd = tcPr.isSetShd() ? tcPr.getShd() : tcPr.addNewShd();
|
||||
ctShd.setFill(color);// 设置背景色
|
||||
}
|
||||
|
||||
// if (i % 2 == 0) {
|
||||
// ctShd.setFill("c5d5e9"); // 设置背景色
|
||||
// }else{
|
||||
// ctShd.setFill("f6f8fc"); // 设置背景色
|
||||
// }
|
||||
|
||||
}
|
||||
} else if(toRow == fromRow) {
|
||||
XWPFTableCell cell = table.getRow(fromRow).getCell(col);
|
||||
CTTc ctTc = cell.getCTTc();
|
||||
CTTcPr tcPr = ctTc.getTcPr();
|
||||
if(tcPr == null) {
|
||||
tcPr = cell.getCTTc().addNewTcPr();
|
||||
}
|
||||
if(isAddColor){
|
||||
CTShd ctShd = tcPr.isSetShd() ? tcPr.getShd() : tcPr.addNewShd();
|
||||
ctShd.setFill(color);// 设置背景色
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
*
|
||||
* @param tableIndex 哪个表
|
||||
* @param col 哪一列
|
||||
* @param startRow 开始行
|
||||
* @param endRow 结束行
|
||||
* @param getColorFn 返回颜色字符串,带过去当前行号
|
||||
*/
|
||||
public void changeTableFillColor(int tableIndex, int col, int startRow, Integer endRow, IntFunction<String> getColorFn) {
|
||||
XWPFTable table = doc.getTables().get(tableIndex);
|
||||
if(endRow == null) {
|
||||
endRow = table.getRows().size() - 1;
|
||||
}
|
||||
for(int rowIndex = startRow; rowIndex <= endRow; ++rowIndex) {
|
||||
XWPFTableCell cell = table.getRow(rowIndex).getCell(col);
|
||||
CTTc ctTc = cell.getCTTc();
|
||||
CTTcPr tcPr = ctTc.getTcPr();
|
||||
if(tcPr == null) {
|
||||
tcPr = cell.getCTTc().addNewTcPr();
|
||||
}
|
||||
CTShd ctShd = tcPr.isSetShd() ? tcPr.getShd() : tcPr.addNewShd();
|
||||
String color = getColorFn.apply(rowIndex);
|
||||
if(StringUtils.isNotBlank(color)) {
|
||||
ctShd.setFill(color);// 设置背景色
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
/**
|
||||
*
|
||||
* @param tableIndex 哪个表格,从0开始
|
||||
* @param row 哪行,从0开始
|
||||
* @param col 哪列,从0开始
|
||||
* @param color 颜色,如c5d5e9,f6f8fc
|
||||
*/
|
||||
public void changeTableFillColor(int tableIndex, int row, int col, String color) {
|
||||
XWPFTable table = doc.getTables().get(tableIndex);
|
||||
XWPFTableCell cell = table.getRow(row).getCell(col);
|
||||
CTTc ctTc = cell.getCTTc();
|
||||
CTTcPr tcPr = ctTc.getTcPr();
|
||||
if(tcPr == null) {
|
||||
tcPr = cell.getCTTc().addNewTcPr();
|
||||
}
|
||||
CTShd ctShd = tcPr.isSetShd() ? tcPr.getShd() : tcPr.addNewShd();
|
||||
ctShd.setFill(color);// 设置背景色
|
||||
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
*
|
||||
* 功能说明 : 文档再次替换时使用,因为之前已经替换一次了,所有需要将文档片段存入内存流中,在读取到文档类里,才能替换成功
|
||||
|
|
|
@ -89,7 +89,7 @@ Z
|
|||
学习主动性
|
||||
学习主动性:指学生在自我意识的支配下,有目的自觉自愿地进行学习,从课前、课堂、课后三个维度衡量学生的学习主动性。
|
||||
学生对于自身学习主动性各方面的评价各项占比详见下图。
|
||||
<i1_1,400,170>
|
||||
<i1_1,400,190>
|
||||
|
||||
学生学习主动性评价各项占比
|
||||
|
||||
|
@ -196,8 +196,8 @@ Z
|
|||
注:个别专业由于样本较少没有展示。
|
||||
|
||||
同辈互动
|
||||
同辈互动频率:指学生和其他同学的学习互动情况。评价结果分为"总是"、"经常"、"偶尔"、"从不",其中选择"总是"、"经常"的人群属于积极互动。该校学生"总是"和"经常""和同学合作完成课程任务或作业"的比例为{b1_3_1}%,"从同学那里学习、吸收好的学习方法"的比例为{b1_3_2}%,"和同学一起参加学科竞赛"的比例为{b1_3_3}%,"和同学一起参与老师科研团队"的比例为{b1_3_4}%。
|
||||
<i1_9,400,170>
|
||||
同辈互动频率:指学生和其他同学的学习互动情况。评价结果分为"总是"、"经常"、"偶尔"、"从不",其中选择"总是"、"经常"的人群属于积极互动。该校学生"总是"和"经常""从同学那里学习、吸收好的学习方法"的比例为{b1_3_4}%,"和同学合作完成课程任务或作业"的比例为{b1_3_1}%,"和同学一起参与老师科研团队"的比例为{b1_3_2}%,"和同学一起参加学科竞赛"的比例为{b1_3_3}%。
|
||||
<i1_9,400,190>
|
||||
学生同辈互动频率
|
||||
|
||||
各年级学生高频同辈互动比例
|
||||
|
@ -258,7 +258,7 @@ Z
|
|||
教育体验
|
||||
思政课程
|
||||
思政课程满意度:指学生对本校思想政治课的总体满意度,以及分别对思想政治课的课程设置、教学内容、教学质量、教学效果的满意度评价。
|
||||
从思政课程总体满意度评价的各项占比来看,该校学生选择"非常满意"的占{b2_1_1}%,"比较满意"的占{b2_1_2}%,"一般"的占{b2_1_3}%,"比较不满意"的占{b2_1_4}%。
|
||||
从思政课程总体满意度评价的各项占比来看,该校学生选择"非常满意"的占{b2_1_1}%,"比较满意"的占{b2_1_2}%,"一般"的占{b2_1_3}%,"比较不满意"的占{b2_1_4}%,"非常不满意"的占{b2_1_4_1}%。
|
||||
<i2_1,400,170>
|
||||
思政课程总体满意度评价各项占比
|
||||
|
||||
|
@ -319,7 +319,7 @@ Z
|
|||
专业课"两性一度"
|
||||
专业课"两性一度"评价:指学生对专业课程的"高阶性"、"创新性"、"挑战度"的评价。
|
||||
学生对于专业课"两性一度"各方面的评价各项占比详见下图。
|
||||
<i2_8,400,200>
|
||||
<i2_8,400,210>
|
||||
专业课"两性一度"评价各项占比
|
||||
|
||||
在落实课堂教学改革、提高课程两性一度方面,该校学生对专业课程的评价如下:高阶性方面,"课程将知识、能力、素养进行了有机融合"的符合程度得分为{b2_2_1}分,"课程教学培养了我解决复杂问题的综合能力"的符合程度得分为{b2_2_2}分;创新性方面,"课程内容注重学科间的交叉与融合"的符合程度得分为{b2_2_3}分,"课程内容反映了学科发展的前沿内容"的符合程度得分为{b2_2_4}分,"课程教学内容重视实践与理论的结合"的符合程度得分为{b2_2_5}分;挑战度方面,"需要非常努力才能达到课程要求"的符合程度得分为{b2_2_6}分。
|
||||
|
@ -412,7 +412,7 @@ Z
|
|||
|
||||
考核方式
|
||||
考核方式参与情况:指学生本学年参与本校各项考核方式的情况,考核方式包括卷面考试、随堂提问或测试、课程论文或实验报告、课堂展示、个人独立完成的课程作业、小组合作完成的课程作业等。
|
||||
本学年,该校学生有{b2_4_1}%参与过卷面考试,有{b2_4_2}%参与过随堂提问或测试,有{b2_4_3}%参与过小组合作完成的课程作业,有{b2_4_4}%参与过课堂展示,有{b2_4_5}%参与过个人独立完成的课程作业,有{b2_4_6}%参与过课程论文或实验报告。
|
||||
本学年,该校学生有{b2_4_5}%参与过个人独立完成的课程作业,有{b2_4_4}%参与过课堂展示,有{b2_4_3}%参与过小组合作完成的课程作业,有{b2_4_2}%参与过随堂提问或测试,有{b2_4_1}%参与过卷面考试,有{b2_4_6}%参与过课程论文或实验报告。
|
||||
<i2_16,400,170>
|
||||
各项考核方式参与情况
|
||||
|
||||
|
@ -876,11 +876,11 @@ Z
|
|||
资源条件
|
||||
资源条件满意度:指学生对本校资源条件各方面的评价。
|
||||
学生对于本校资源条件各方面评价的各项占比详见下图。
|
||||
<i4_12,400,170>
|
||||
<i4_12,400,200>
|
||||
资源条件满意度评价各项占比
|
||||
|
||||
在落实条件保障方面,该校学生评价本校"教室及教学设备"的满意度为{b4_4_1}%,"实验实训室条件"的满意度为{b4_4_2}%,"图书馆资源"的满意度为{b4_4_3}%,"网络资源"的满意度为{b4_4_4}%,"体育文化等基础设施"的满意度为{b4_4_5}%,"住宿条件"的满意度为{b4_4_6}%。
|
||||
<i4_13,400,250>
|
||||
<i4_13,400,300>
|
||||
资源条件各方面满意度
|
||||
|
||||
注:图表中数值为计算所得平均分数。
|
||||
|
|
Loading…
Reference in New Issue