日期修复问题

This commit is contained in:
bai 2024-07-14 02:06:25 +08:00
parent b937018241
commit ab4b0d2c3b
6 changed files with 203 additions and 178 deletions

View File

@ -237,6 +237,7 @@ public class BlStuAnswerController extends JeecgController<BlStuAnswer, IBlStuAn
updateWp.lambda().eq(BlStuInfo::getId, id); updateWp.lambda().eq(BlStuInfo::getId, id);
updateWp.lambda().set(BlStuInfo::getFilePath,exportWordPath); updateWp.lambda().set(BlStuInfo::getFilePath,exportWordPath);
blStuInfoService.update(updateWp); blStuInfoService.update(updateWp);
log.info("更新后的文档地址: {}", exportWordPath);
return Result.OK("生成成功"); return Result.OK("生成成功");
} }

View File

@ -466,6 +466,8 @@
and z.major = n.major and z.major = n.major
and z.major = t.major and z.major = t.major
GROUP BY z.major GROUP BY z.major
order by CONVERT(z.major USING gbk) COLLATE gbk_chinese_ci
</select> </select>
<select id="b2_1_1" resultType="String"> <select id="b2_1_1" resultType="String">
@ -528,7 +530,7 @@
select select
major as 'key', major as 'key',
round(sum(SXZZK_SATI2)/count(*)) as '01' round(sum(SXZZK_SATI2)/count(*)) as '01'
from bl_stu_answer where main_id = #{id} GROUP BY MAJOR from bl_stu_answer where main_id = #{id} GROUP BY MAJOR order by CONVERT(major USING gbk) COLLATE gbk_chinese_ci
</select> </select>
<select id="i2_5" resultType="java.util.LinkedHashMap"> <select id="i2_5" resultType="java.util.LinkedHashMap">
@ -796,7 +798,7 @@
round(sum(ZYK_ADVANCED2)/count('x'),2) as '04', round(sum(ZYK_ADVANCED2)/count('x'),2) as '04',
round(sum(ZYK_INTERN2)/count('x'),2) as '05', round(sum(ZYK_INTERN2)/count('x'),2) as '05',
round(sum(ZYK_EFFORT2)/count('x'),2) as '06' round(sum(ZYK_EFFORT2)/count('x'),2) as '06'
from bl_stu_answer GROUP BY major order by CONVERT(major USING gbk) COLLATE gbk_chinese_ci; from bl_stu_answer GROUP BY major order by CONVERT(major USING gbk) COLLATE gbk_chinese_ci
</select> </select>
<select id="i2_12" resultType="java.util.LinkedHashMap"> <select id="i2_12" resultType="java.util.LinkedHashMap">
@ -1223,6 +1225,7 @@
and a.major = c.MAJOR and a.major = c.MAJOR
and a.major = d.MAJOR and a.major = d.MAJOR
and a.major = e.major and a.major = e.major
order by CONVERT(a.major USING gbk) COLLATE gbk_chinese_ci
</select> </select>
<select id="i2_26" resultType="java.util.LinkedHashMap"> <select id="i2_26" resultType="java.util.LinkedHashMap">
@ -1833,7 +1836,7 @@
</select> </select>
<select id="t3_8" resultType="java.util.LinkedHashMap"> <select id="t3_8" resultType="java.util.LinkedHashMap">
select major as 'key',round(sum(TEACHERSATI_ZONGTI2)/count(*))as '01' from bl_stu_answer where main_id = #{id} GROUP BY MAJOR select major as 'key',round(sum(TEACHERSATI_ZONGTI2)/count(*))as '01' from bl_stu_answer where main_id = #{id} GROUP BY MAJOR order by CONVERT(major USING gbk) COLLATE gbk_chinese_ci
</select> </select>
<select id="i3_9" resultType="java.util.LinkedHashMap"> <select id="i3_9" resultType="java.util.LinkedHashMap">
@ -2539,7 +2542,7 @@
</select> </select>
<select id="t5_4" resultType="java.util.LinkedHashMap"> <select id="t5_4" resultType="java.util.LinkedHashMap">
select major as 'key',round(sum(SATI_ZONGTI2)/count(*)) as '01' from bl_stu_answer where main_id = #{id} GROUP BY MAJOR select major as 'key',round(sum(SATI_ZONGTI2)/count(*)) as '01' from bl_stu_answer where main_id = #{id} GROUP BY MAJOR order by CONVERT(major USING gbk) COLLATE gbk_chinese_ci
</select> </select>
</mapper> </mapper>

View File

@ -550,7 +550,8 @@ public class BlStuAnswerServiceImpl extends ServiceImpl<BlStuAnswerMapper, BlStu
final WordOperator wo = ExportWord.getWordOperator(templateName); final WordOperator wo = ExportWord.getWordOperator(templateName);
Map<String, Object> result = Maps.newHashMap(); Map<String, Object> result = Maps.newHashMap();
i1_13(wo, result, id); //i1_13(wo, result, id);
b1_2(wo, result, id);
WordOperator wo2 = WordOperator.twoReplaceWord(wo); WordOperator wo2 = WordOperator.twoReplaceWord(wo);
wo2.replaceTextPlus(result); wo2.replaceTextPlus(result);
@ -640,9 +641,9 @@ public class BlStuAnswerServiceImpl extends ServiceImpl<BlStuAnswerMapper, BlStu
data: %s data: %s
}, },
yAxis: { type: 'value' }, yAxis: { type: 'value' },
axisLabel: { color:'#000', fontSize: 20 }, axisLabel: { color:'#000', fontSize: 20, fontFamily: '宋体' },
barWidth: '25%%', barWidth: '25%%',
series: [ { label: { show: true, color: '#000', position: 'top' }, type: 'bar', data: %s } ] series: [ { label: { show: true, color: '#000', position: 'top', fontFamily: '宋体' }, type: 'bar', data: %s } ]
} }
"""; """;
json = json.formatted(JSONUtil.toJsonStr(xAxisData), JSONUtil.toJsonStr(yAxisData)); json = json.formatted(JSONUtil.toJsonStr(xAxisData), JSONUtil.toJsonStr(yAxisData));
@ -673,17 +674,17 @@ public class BlStuAnswerServiceImpl extends ServiceImpl<BlStuAnswerMapper, BlStu
//标准最简单横向柱状图 //标准最简单横向柱状图
var json = """ var json = """
{ {
title: { right: '30', text: '%%', textStyle: { fontSize: 30 } }, title: { right: '30', text: '%%', textStyle: { fontSize: 30, fontFamily: '宋体' } },
grid: { left: '12%%', right: '3%%', bottom: '0%%', containLabel: true }, grid: { left: '12%%', right: '3%%', bottom: '0%%', containLabel: true },
xAxis: { xAxis: {
type: 'value', position: 'top', max: %s, type: 'value', position: 'top', max: %s,
axisLabel: { textStyle: { color: '#000', fontSize: 20 }, }, axisLabel: { textStyle: { color: '#000', fontSize: 20, fontFamily: '宋体' }, },
axisLine: { show: true, }, axisLine: { show: true, },
axisTick: { show: true, inside: true, } axisTick: { show: true, inside: true, }
}, },
yAxis: { yAxis: {
type: 'category', type: 'category', inverse: true,
axisLabel: { textStyle: { color: '#000', fontSize: 20 }, }, axisLabel: { textStyle: { color: '#000', fontSize: 20, fontFamily: '宋体' }, },
axisTick: { show: true, inside: true, }, axisTick: { show: true, inside: true, },
data: %s, data: %s,
}, },
@ -749,13 +750,13 @@ public class BlStuAnswerServiceImpl extends ServiceImpl<BlStuAnswerMapper, BlStu
}; };
var seriesTemp = """ var seriesTemp = """
{ {
name: '%s', type: 'bar', stack: 'total', label: { show: true, textStyle: { fontSize: 20, color: '#FFF' } }, name: '%s', type: 'bar', stack: 'total', label: { show: true, textStyle: { fontSize: 20, fontFamily: '宋体', color: '#FFF' } },
//emphasis: { focus: 'series' }, //emphasis: { focus: 'series' },
data: %s, data: %s,
barWidth: 50,itemStyle: {color: '%s'} barWidth: 50,itemStyle: {color: '%s'}
}, },
"""; """;
var yAxisTemp = "{ value: '%s', textStyle: { color: '#000', fontSize: 20 } },"; var yAxisTemp = "{ value: '%s', textStyle: { color: '#000', fontSize: 20, fontFamily: '宋体' } },";
var yAxisData = Lists.newArrayList(); var yAxisData = Lists.newArrayList();
List<String> nameList = Lists.newArrayList(); List<String> nameList = Lists.newArrayList();
var seriesList = Lists.newArrayList(); var seriesList = Lists.newArrayList();
@ -823,7 +824,7 @@ public class BlStuAnswerServiceImpl extends ServiceImpl<BlStuAnswerMapper, BlStu
//横向层叠柱状图 //横向层叠柱状图
var json = """ var json = """
{ {
title: { right: '30', text: '%%', textStyle: { fontSize: 30 } }, title: { right: '30', text: '%%', textStyle: { fontSize: 30, fontFamily: '宋体' } },
tooltip: { trigger: 'axis', axisPointer: { type: 'shadow' } }, tooltip: { trigger: 'axis', axisPointer: { type: 'shadow' } },
legend: {}, legend: {},
grid: { left: '%s%%', right: '3%%', bottom: '0%%', containLabel: true }, grid: { left: '%s%%', right: '3%%', bottom: '0%%', containLabel: true },
@ -874,71 +875,52 @@ public class BlStuAnswerServiceImpl extends ServiceImpl<BlStuAnswerMapper, BlStu
String indicatorDataTemp = "{ name: '%s', max: " + maxNumber + " },"; String indicatorDataTemp = "{ name: '%s', max: " + maxNumber + " },";
List<String> nameList = Lists.newArrayList(); List<String> nameList = Lists.newArrayList();
List<String> seriesDataList = Lists.newArrayList(); List<String> seriesDataList = Lists.newArrayList();
List<String> maxSeriesDataList = Lists.newArrayList(); //List<String> maxSeriesDataList = Lists.newArrayList();
if(map != null && !map.isEmpty()) { if(map != null && !map.isEmpty()) {
Set<String> keys = Sets.filter(map.keySet(), key -> !KEY.equals(key)); Set<String> keys = Sets.filter(map.keySet(), key -> !KEY.equals(key));
for(String key: keys){ for(String key: keys){
nameList.add(indicatorDataTemp.formatted(key)); nameList.add(indicatorDataTemp.formatted(key));
seriesDataList.add(getMapStr(map.get(key))); seriesDataList.add(getMapStr(map.get(key)));
maxSeriesDataList.add(maxNumber); //maxSeriesDataList.add(maxNumber);
} }
} }
Map<String, String> runJs = Maps.newHashMap(); Map<String, String> runJs = Maps.newHashMap();
var runBeforeTemp = "let dataList = %s;"; var runBeforeTemp = "let dataList = %s;";
runJs.put("runBefore",runBeforeTemp.formatted(JSONUtil.toJsonStr(seriesDataList))); runJs.put("runBefore",runBeforeTemp.formatted(JSONUtil.toJsonStr(seriesDataList)));
var title = "title: { right: '30', text: '" + titleText + "', textStyle: { fontSize: 30 } },"; var title = "title: { right: '30', text: '" + titleText + "', textStyle: { fontSize: 30, fontFamily: '宋体' } },";
//雷达图 //雷达图
var json = """ var json = """
{ {
%s %s
legend: { data: [] }, polar: { radius: '50%%', },
radar: { angleAxis: {
radius: '50%%', show: false, min: 0, max: %s, interval: 1, inverse: true,
indicator: %s, axisLine: { lineStyle: { color: 'rgba(0,0,0,0)', }, }, axisTick: { show: false, inside: true, },
axisName: { axisLabel: { textStyle: { color: '#000', fontSize: 20, fontFamily: '宋体' }, formatter: (i) => dataList[i], },
fontSize: 15, color: '#000', padding: 70,
formatter: (v) => {
let l = String(v).split('');let r = '';
l.forEach((x,i) => { if((i+1) %% 12 == 0){ r += x + '\\n'; } else { r += x; } });
return r;
}
}, },
}, radiusAxis: { show: false, },
series: [ radar: {
{ radius: '50%%',
name: 'data', axisName: {
type: 'radar', fontSize: 15, fontFamily: '宋体', color: '#000', padding: 70,
label: { position: 'top' }, formatter: (v) => {
data: [{ name: 'alxc', value: dataList }] let l = String(v).split('');let r = '';
l.forEach((x,i) => { if((i+1) %% 12 == 0){ r += x + '\\n'; } else { r += x; } });
return r;
}
},
indicator: %s,
}, },
{ series: [ { name: 'data', type: 'radar', label: { position: 'top' }, data: [ { value: dataList, name: 'value', }, ] } ]
type: 'radar',
data: [
{
name: 'max',
itemStyle: { color: '#000' },
lineStyle: { type: 'dashed', color: '#000' },
label: {
show: true,
fontSize: 20,
formatter: (params) => {
return dataList[params.dimensionIndex];
}
},
value: %s
}
]
}
]
} }
"""; """;
var nameListSb = new StringBuilder(); var nameListSb = new StringBuilder();
nameListSb.append("["); nameListSb.append("[");
nameList.forEach(nameListSb::append); nameList.forEach(nameListSb::append);
nameListSb.append("]"); nameListSb.append("]");
json = json.formatted(title, nameListSb.toString(), JSONUtil.toJsonStr(maxSeriesDataList)); json = json.formatted(title, nameList.size(), nameListSb.toString());
return WebDriverUtil.getImgByte(json,"echarts500.html", runJs); return WebDriverUtil.getImgByte(json,"echarts600.html", runJs);
} }
public void t1_1(WordOperator wo, Map<String, Object> result, String id) { public void t1_1(WordOperator wo, Map<String, Object> result, String id) {
var list1 = baseMapper.t1_1_1(id); var list1 = baseMapper.t1_1_1(id);
@ -2226,8 +2208,7 @@ public class BlStuAnswerServiceImpl extends ServiceImpl<BlStuAnswerMapper, BlStu
label: { label: {
show: true, show: true,
fontSize: '30', fontSize: '30',
//fontWeight: 'bold', fontFamily: '宋体',
//textStyle: {fontSize: 50}
position: 'center', position: 'center',
formatter: (e) => e.name + '\\n' + e.value +'%%' formatter: (e) => e.name + '\\n' + e.value +'%%'
}, },

View File

@ -12,7 +12,10 @@ import org.jeecg.modules.tools.CommonUtil;
import org.jeecg.modules.tools.FileUtils; import org.jeecg.modules.tools.FileUtils;
import org.jeecg.modules.tools.Global; import org.jeecg.modules.tools.Global;
import org.jeecg.modules.tools.IdGen; import org.jeecg.modules.tools.IdGen;
import org.openxmlformats.schemas.wordprocessingml.x2006.main.*; import org.openxmlformats.schemas.wordprocessingml.x2006.main.CTShd;
import org.openxmlformats.schemas.wordprocessingml.x2006.main.CTTc;
import org.openxmlformats.schemas.wordprocessingml.x2006.main.CTTcPr;
import org.openxmlformats.schemas.wordprocessingml.x2006.main.STMerge;
import org.slf4j.Logger; import org.slf4j.Logger;
import org.slf4j.LoggerFactory; import org.slf4j.LoggerFactory;
@ -28,33 +31,33 @@ import java.util.Map;
*/ */
public class WordOperator { public class WordOperator {
private static Logger logger = LoggerFactory.getLogger(WordOperator.class); private static final Logger logger = LoggerFactory.getLogger(WordOperator.class);
/** /**
* 模板替换标签开头 * 模板替换标签开头
*/ */
private final static String LABEL_STR = "{"; private static final String LABEL_STR = "{";
/** /**
* 模板替换标签结尾 * 模板替换标签结尾
*/ */
private final static String LABEL_END = "}"; private static final String LABEL_END = "}";
/** /**
* 模板替换图片标签开头(List) * 模板替换图片标签开头(List)
*/ */
private final static String LABEL_IMAGE_STR = "<"; private static final String LABEL_IMAGE_STR = "<";
/** /**
* 模板替换图片标签结尾(List) * 模板替换图片标签结尾(List)
*/ */
private final static String LABEL_IMAGE_END = ">"; private static final String LABEL_IMAGE_END = ">";
/** /**
* 模板替换图片标签开头(List) * 模板替换图片标签开头(List)
*/ */
private final static String LABEL_RICH_TEXT_STR = "<richText["; private static final String LABEL_RICH_TEXT_STR = "<richText[";
/** /**
* 模板替换图片标签结尾(List) * 模板替换图片标签结尾(List)
*/ */
private final static String LABEL_RICH_TEXT_END = "]richText>"; private static final String LABEL_RICH_TEXT_END = "]richText>";
/** /**
* 加载word对象 * 加载word对象
@ -69,8 +72,6 @@ public class WordOperator {
this.doc = doc; this.doc = doc;
} }
private int picturesSize = 0; private int picturesSize = 0;
public int getPicturesSize() { public int getPicturesSize() {
@ -93,8 +94,6 @@ public class WordOperator {
public WordOperator(InputStream is) throws Exception { public WordOperator(InputStream is) throws Exception {
doc = new XWPFDocument(is); doc = new XWPFDocument(is);
} }
/** /**
* 要替换标签的KV对 * 要替换标签的KV对
@ -122,41 +121,38 @@ public class WordOperator {
*/ */
public void createPicture(XWPFParagraph pic, String picPath, int width, int height, String picAttch){ public void createPicture(XWPFParagraph pic, String picPath, int width, int height, String picAttch){
pic.setAlignment(ParagraphAlignment.CENTER); pic.setAlignment(ParagraphAlignment.CENTER);
XWPFRun run = pic.createRun(); XWPFRun run = pic.createRun();
try { try {
if(StringUtils.isBlank(picPath) || picPath.lastIndexOf(".") == -1){ if(StringUtils.isBlank(picPath) || picPath.lastIndexOf(".") == -1){
logger.error("文件路径错误:"); logger.error("文件路径错误: {}", picPath);
logger.error(picPath);
return; return;
} }
//根据文件后缀名设置图片格式 //根据文件后缀名设置图片格式
String picType = picPath.substring(picPath.lastIndexOf("\\.")+1); String picType = picPath.substring(picPath.lastIndexOf("\\.")+1);
int res = XWPFDocument.PICTURE_TYPE_PICT; int res = Document.PICTURE_TYPE_PICT;
if(picType != null){ if(StringUtils.isNotBlank(picType)){
if(picType.equalsIgnoreCase("png")){ if(picType.equalsIgnoreCase("png")){
res = XWPFDocument.PICTURE_TYPE_PNG; res = Document.PICTURE_TYPE_PNG;
}else if(picType.equalsIgnoreCase("gif")) { }else if(picType.equalsIgnoreCase("gif")) {
res = XWPFDocument.PICTURE_TYPE_GIF; res = Document.PICTURE_TYPE_GIF;
}else if(picType.equalsIgnoreCase("emf")){ }else if(picType.equalsIgnoreCase("emf")){
res = XWPFDocument.PICTURE_TYPE_EMF; res = Document.PICTURE_TYPE_EMF;
}else if(picType.equalsIgnoreCase("jpg") || picType.equalsIgnoreCase("jpeg")){ }else if(picType.equalsIgnoreCase("jpg") || picType.equalsIgnoreCase("jpeg")){
res = XWPFDocument.PICTURE_TYPE_JPEG; res = Document.PICTURE_TYPE_JPEG;
}else if(picType.equalsIgnoreCase("wmf")){ }else if(picType.equalsIgnoreCase("wmf")){
res = XWPFDocument.PICTURE_TYPE_WMF; res = Document.PICTURE_TYPE_WMF;
}else if(picType.equalsIgnoreCase("pict")){ // }else if(picType.equalsIgnoreCase("pict")){
res = XWPFDocument.PICTURE_TYPE_PICT; //res = Document.PICTURE_TYPE_PICT;
}else if(picType.equalsIgnoreCase("dib")){ }else if(picType.equalsIgnoreCase("dib")){
res = XWPFDocument.PICTURE_TYPE_DIB; res = Document.PICTURE_TYPE_DIB;
}else if(picType.equalsIgnoreCase("tiff")){ }else if(picType.equalsIgnoreCase("tiff")){
res = XWPFDocument.PICTURE_TYPE_TIFF; res = Document.PICTURE_TYPE_TIFF;
}else if(picType.equalsIgnoreCase("eps")){ }else if(picType.equalsIgnoreCase("eps")){
res = XWPFDocument.PICTURE_TYPE_EPS; res = Document.PICTURE_TYPE_EPS;
}else if(picType.equalsIgnoreCase("bmp")){ }else if(picType.equalsIgnoreCase("bmp")){
res = XWPFDocument.PICTURE_TYPE_BMP; res = Document.PICTURE_TYPE_BMP;
}else if(picType.equalsIgnoreCase("wpg")){ }else if(picType.equalsIgnoreCase("wpg")){
res = XWPFDocument.PICTURE_TYPE_WPG; res = Document.PICTURE_TYPE_WPG;
} }
} }
//塞进文档中 //塞进文档中
@ -386,19 +382,17 @@ public class WordOperator {
private void replaceTextPlus(List<XWPFParagraph> paragraphList) { private void replaceTextPlus(List<XWPFParagraph> paragraphList) {
//InputStream imageFileIs = null; //InputStream imageFileIs = null;
// 取出word模板里的全部段落遍历 // 取出word模板里的全部段落遍历
for (int i = 0; i < paragraphList.size(); i++) { for (XWPFParagraph paragraph : paragraphList) {
XWPFParagraph paragraph = paragraphList.get(i);
// 拿出每一个段落判断内容里是否包含字符串"{""}"只有两者同时存在了才执行替换标签的逻辑 // 拿出每一个段落判断内容里是否包含字符串"{""}"只有两者同时存在了才执行替换标签的逻辑
String paragraphText = paragraph.getText(); String paragraphText = paragraph.getText();
if (!StringUtils.isBlank(paragraphText) && StringUtils.indexOf(paragraphText,LABEL_STR) != -1 && StringUtils.indexOf(paragraphText,LABEL_END) != -1) { if (!StringUtils.isBlank(paragraphText) && StringUtils.contains(paragraphText, LABEL_STR) && StringUtils.contains(paragraphText, LABEL_END)) {
// 每一个段落分很多小段文本官方API只能通过XWPFRun对象执行替换文本功能 // 每一个段落分很多小段文本官方API只能通过XWPFRun对象执行替换文本功能
List<XWPFRun> runList = paragraph.getRuns(); List<XWPFRun> runList = paragraph.getRuns();
// 组装replaceMap的key // 组装replaceMap的key
String key = ""; String key = "";
// 是否检测到有"{"字符串有为true没有为false // 是否检测到有"{"字符串有为true没有为false
boolean include = false; boolean include = false;
for (int j = 0; j < runList.size(); j++) { for (XWPFRun run : runList) {
XWPFRun run = runList.get(j);
//颜色 //颜色
// run.setColor("F3C917"); // run.setColor("F3C917");
//加粗 //加粗
@ -413,9 +407,11 @@ public class WordOperator {
// 取出每一个小段里标签头和尾的角标 // 取出每一个小段里标签头和尾的角标
//是否存在两个{ //是否存在两个{
boolean isParagraphReplaceAllText = false; boolean isParagraphReplaceAllText = false;
if(StringUtils.ordinalIndexOf(text,LABEL_STR,2) != -1){ //etxt是否存在两个以上的{
if (StringUtils.ordinalIndexOf(text, LABEL_STR, 2) != -1) {
isParagraphReplaceAllText = true; isParagraphReplaceAllText = true;
text = paragraphReplaceAllText(text,replaceMap); //进入同行匹配模式返回结果
text = paragraphReplaceAllText(text, replaceMap);
} }
int labelStrIndex = StringUtils.indexOf(text, LABEL_STR); int labelStrIndex = StringUtils.indexOf(text, LABEL_STR);
int labelEndIndex = StringUtils.indexOf(text, LABEL_END); int labelEndIndex = StringUtils.indexOf(text, LABEL_END);
@ -434,34 +430,34 @@ public class WordOperator {
String textAfter = text.substring(labelEndIndex + 1); String textAfter = text.substring(labelEndIndex + 1);
key += textBefore; key += textBefore;
//Object value = replaceMap.get(key); //Object value = replaceMap.get(key);
String value = (String)replaceMap.get(key); String value = (String) replaceMap.get(key);
if (StringUtils.isBlank(value)) value = ""; if (StringUtils.isBlank(value)) value = "";
WordTextStyle style = (WordTextStyle)replaceMap.get(key + "_style"); WordTextStyle style = (WordTextStyle) replaceMap.get(key + "_style");
//添加样式 //添加样式
if(style != null) style.run(run); if (style != null) style.run(run);
if (StringUtils.isBlank(value)) value = ""; if (StringUtils.isBlank(value)) value = "";
value = StringEscapeUtils.unescapeHtml4(value); value = StringEscapeUtils.unescapeHtml4(value);
key = ""; key = "";
//--2020-04修改 //--2020-04修改
String[] values = value.split("\n"); String[] values = value.split("\n");
if(values.length > 1) { if (values.length > 1) {
run.setText(values[0],0); run.setText(values[0], 0);
for (int x = 1; x < values.length; x++) { for (int x = 1; x < values.length; x++) {
//存在分段则新建一个run //存在分段则新建一个run
XWPFRun newrun = paragraph.createRun(); XWPFRun newRun = paragraph.createRun();
//copy样式 //copy样式
newrun.getCTR().setRPr(run.getCTR().getRPr()); newRun.getCTR().setRPr(run.getCTR().getRPr());
//换行 //换行
newrun.addBreak(); newRun.addBreak();
//缩进 //缩进
//newrun.addTab(); //newRun.addTab();
if(x == values.length - 1) { if (x == values.length - 1) {
newrun.setText(values[x] + textAfter); newRun.setText(values[x] + textAfter);
}else { } else {
newrun.setText(values[x]); newRun.setText(values[x]);
} }
} }
}else { } else {
run.setText(value + textAfter, 0); run.setText(value + textAfter, 0);
} }
include = false; include = false;
@ -472,9 +468,9 @@ public class WordOperator {
key += text; key += text;
run.setText("", 0); run.setText("", 0);
} }
if(isParagraphReplaceAllText){ if (isParagraphReplaceAllText) {
//替换文本 //替换文本
run.setText(text,0); run.setText(text, 0);
} }
// 两个都存在这种情况比较复杂经过多次试验XWPFRun切割内容只会同时各出现1次而已 // 两个都存在这种情况比较复杂经过多次试验XWPFRun切割内容只会同时各出现1次而已
} else { } else {
@ -484,32 +480,32 @@ public class WordOperator {
String textBefore = text.substring(0, labelStrIndex); String textBefore = text.substring(0, labelStrIndex);
String textMiddle = text.substring(labelStrIndex + 1, labelEndIndex); String textMiddle = text.substring(labelStrIndex + 1, labelEndIndex);
String textAfter = text.substring(labelEndIndex + 1); String textAfter = text.substring(labelEndIndex + 1);
String value = (String)replaceMap.get(textMiddle); String value = (String) replaceMap.get(textMiddle);
if (StringUtils.isBlank(value)) value = ""; if (StringUtils.isBlank(value)) value = "";
WordTextStyle style = (WordTextStyle)replaceMap.get(textMiddle + "_style"); WordTextStyle style = (WordTextStyle) replaceMap.get(textMiddle + "_style");
//添加样式 //添加样式
if(style != null) style.run(run); if (style != null) style.run(run);
value = StringEscapeUtils.unescapeHtml4(value); value = StringEscapeUtils.unescapeHtml4(value);
//--2020-04修改 //--2020-04修改
String[] values = value.split("\n"); String[] values = value.split("\n");
if(values.length > 1) { if (values.length > 1) {
run.setText(textBefore + values[0],0); run.setText(textBefore + values[0], 0);
for (int x = 1; x < values.length; x++) { for (int x = 1; x < values.length; x++) {
//存在分段则新建一个run //存在分段则新建一个run
XWPFRun newrun = paragraph.createRun(); XWPFRun newRun = paragraph.createRun();
//copy样式 //copy样式
newrun.getCTR().setRPr(run.getCTR().getRPr()); newRun.getCTR().setRPr(run.getCTR().getRPr());
//换行 //换行
newrun.addBreak(); newRun.addBreak();
//缩进 //缩进
//newrun.addTab(); //newRun.addTab();
if(x == values.length - 1) { if (x == values.length - 1) {
newrun.setText(values[x] + textAfter,0); newRun.setText(values[x] + textAfter, 0);
}else { } else {
newrun.setText(values[x]); newRun.setText(values[x]);
} }
} }
}else { } else {
run.setText(textBefore + value + textAfter, 0); run.setText(textBefore + value + textAfter, 0);
} }
@ -522,32 +518,32 @@ public class WordOperator {
String textMiddle = text.substring(labelEndIndex + 1, labelStrIndex); String textMiddle = text.substring(labelEndIndex + 1, labelStrIndex);
String textAfter = text.substring(labelStrIndex + 1); String textAfter = text.substring(labelStrIndex + 1);
key += textBefore; key += textBefore;
String value = (String)replaceMap.get(key); String value = (String) replaceMap.get(key);
if (value == null || StringUtils.isBlank(value.toString())) value = ""; if (value == null || StringUtils.isBlank(value)) value = "";
WordTextStyle style = (WordTextStyle)replaceMap.get(textMiddle + "_style"); WordTextStyle style = (WordTextStyle) replaceMap.get(textMiddle + "_style");
//添加样式 //添加样式
if(style != null) style.run(run); if (style != null) style.run(run);
value = StringEscapeUtils.unescapeHtml4(value); value = StringEscapeUtils.unescapeHtml4(value);
//--2020-04修改 //--2020-04修改
String[] values = value.toString().split("\n"); String[] values = value.split("\n");
if(values.length > 1) { if (values.length > 1) {
run.setText(values[0],0); run.setText(values[0], 0);
for (int x = 1; x < values.length; x++) { for (int x = 1; x < values.length; x++) {
//存在分段则新建一个run //存在分段则新建一个run
XWPFRun newrun = paragraph.createRun(); XWPFRun newRun = paragraph.createRun();
//copy样式 //copy样式
newrun.getCTR().setRPr(run.getCTR().getRPr()); newRun.getCTR().setRPr(run.getCTR().getRPr());
//换行 //换行
newrun.addBreak(); newRun.addBreak();
//缩进 //缩进
//newrun.addTab(); //newRun.addTab();
if(x == values.length - 1) { if (x == values.length - 1) {
newrun.setText(values[x] + textMiddle,0); newRun.setText(values[x] + textMiddle, 0);
}else { } else {
newrun.setText(values[x]); newRun.setText(values[x]);
} }
} }
}else { } else {
run.setText(value + textMiddle, 0); run.setText(value + textMiddle, 0);
} }
key = textAfter; key = textAfter;
@ -555,31 +551,30 @@ public class WordOperator {
} }
} }
} }
//富文本标签转成图片的富文本 //富文本标签转成图片的富文本
} else if(StringUtils.isNotBlank(paragraphText) && paragraphText.indexOf(LABEL_RICH_TEXT_STR) != -1 && paragraphText.indexOf(LABEL_RICH_TEXT_END) != -1){ } else if (StringUtils.isNotBlank(paragraphText) && StringUtils.contains(paragraphText, LABEL_RICH_TEXT_STR) && StringUtils.contains(paragraphText, LABEL_RICH_TEXT_END)) {
System.out.println("paragraphText="+paragraphText); logger.info("paragraphText={}", paragraphText);
//如果匹配到<>则开始替换为图片 //如果匹配到<>则开始替换为图片
// 每一个段落分很多小段文本官方API只能否通过XWPFRun对象执行替换文本功能 // 每一个段落分很多小段文本官方API只能否通过XWPFRun对象执行替换文本功能
List<XWPFRun> runList = paragraph.getRuns(); List<XWPFRun> runList = paragraph.getRuns();
//组装replaceMap的key //组装replaceMap的key
String key = ""; String key = "";
//<richText[课题设计论证]richText> //<richText[课题设计论证]richText>
//摘出key //摘出key
int $labelStrIndex = StringUtils.indexOf(paragraphText, LABEL_RICH_TEXT_STR); int $labelStrIndex = StringUtils.indexOf(paragraphText, LABEL_RICH_TEXT_STR);
int $labelEndIndex = StringUtils.indexOf(paragraphText, LABEL_RICH_TEXT_END); int $labelEndIndex = StringUtils.indexOf(paragraphText, LABEL_RICH_TEXT_END);
//必须存在开始和结束标签 //必须存在开始和结束标签
if($labelStrIndex != -1 && $labelEndIndex != -1){ if ($labelStrIndex != -1 && $labelEndIndex != -1) {
key = paragraphText; key = paragraphText;
key = key.substring($labelStrIndex + LABEL_RICH_TEXT_STR.length()); key = key.substring($labelStrIndex + LABEL_RICH_TEXT_STR.length());
$labelEndIndex = StringUtils.indexOf(key, LABEL_RICH_TEXT_END); $labelEndIndex = StringUtils.indexOf(key, LABEL_RICH_TEXT_END);
key = key.substring(0,$labelEndIndex); key = key.substring(0, $labelEndIndex);
} }
//去除整行整个paragraph //去除整行整个paragraph
for (int j = 0; j < runList.size(); j++) { for (XWPFRun run : runList) {
XWPFRun run = runList.get(j);
run.setText("", 0); run.setText("", 0);
} }
//添加图片 //添加图片
@ -591,18 +586,18 @@ public class WordOperator {
} }
String imagePath = getHtmlImage(value.toString()); String imagePath = getHtmlImage(value.toString());
//try { //try {
//imageFileIs = new FileInputStream(new File(imagePath)); //imageFileIs = new FileInputStream(new File(imagePath));
//$run.addPicture(imageFileIs, 6, "image", 595,842); //$run.addPicture(imageFileIs, 6, "image", 595,842);
//} catch (InvalidFormatException | IOException e) { //} catch (InvalidFormatException | IOException e) {
//logger.error("图片读取或添加错误!"); //logger.error("图片读取或添加错误!");
//logger.error(e.getMessage(),e); //logger.error(e.getMessage(),e);
//e.printStackTrace(); //e.printStackTrace();
//} //}
createPicturePlus(paragraph,imagePath,595,842,""); createPicturePlus(paragraph, imagePath, 595, 842, "");
//FileUtils.deleteFile(imagePath); //FileUtils.deleteFile(imagePath);
//$run.setText(); //$run.setText();
//图片标签 //图片标签
}else if(StringUtils.isNotBlank(paragraphText) && paragraphText.indexOf(LABEL_IMAGE_STR) != -1 && paragraphText.indexOf(LABEL_IMAGE_END) != -1){ } else if (StringUtils.isNotBlank(paragraphText) && StringUtils.contains(paragraphText, LABEL_IMAGE_STR) && StringUtils.contains(paragraphText, LABEL_IMAGE_END)) {
//如果匹配到<>则开始替换为图片 //如果匹配到<>则开始替换为图片
// 每一个段落分很多小段文本官方API只能否通过XWPFRun对象执行替换文本功能 // 每一个段落分很多小段文本官方API只能否通过XWPFRun对象执行替换文本功能
List<XWPFRun> runList = paragraph.getRuns(); List<XWPFRun> runList = paragraph.getRuns();
@ -612,8 +607,9 @@ public class WordOperator {
WordImageLabel wordImageLabel = null; WordImageLabel wordImageLabel = null;
// 是否检测到有"<"字符串有为true没有为false // 是否检测到有"<"字符串有为true没有为false
boolean include = false; boolean include = false;
for (int j = 0; j < runList.size(); j++) { for (int i = 0; i < runList.size(); i++) {
XWPFRun run = runList.get(j); //for (XWPFRun run : runList) {
XWPFRun run = runList.get(i);
String text = run.getText(0); String text = run.getText(0);
// 取出每一个小段里标签头和尾的角标 // 取出每一个小段里标签头和尾的角标
int labelStrIndex = StringUtils.indexOf(text, LABEL_IMAGE_STR); int labelStrIndex = StringUtils.indexOf(text, LABEL_IMAGE_STR);
@ -643,7 +639,7 @@ public class WordOperator {
//创建图片 //创建图片
run.setText("", 0); run.setText("", 0);
// run.setText(value + textAfter, 0); // run.setText(value + textAfter, 0);
createPicturePlus(paragraph,(String)value,wordImageLabel.getWidth(),wordImageLabel.getHeight(),wordImageLabel.getPicAttch()); createPicturePlus(paragraph, (String) value, wordImageLabel.getWidth(), wordImageLabel.getHeight(), wordImageLabel.getPicAttch());
include = false; include = false;
// 两个都没有 // 两个都没有
} else if (labelStrIndex == -1 && labelEndIndex == -1) { } else if (labelStrIndex == -1 && labelEndIndex == -1) {
@ -667,7 +663,7 @@ public class WordOperator {
} }
run.setText("", 0); run.setText("", 0);
// run.setText(textBefore + value + textAfter, 0); // run.setText(textBefore + value + textAfter, 0);
createPicturePlus(paragraph,(String)value,wordImageLabel.getWidth(),wordImageLabel.getHeight(),wordImageLabel.getPicAttch()); createPicturePlus(paragraph, (String) value, wordImageLabel.getWidth(), wordImageLabel.getHeight(), wordImageLabel.getPicAttch());
key = ""; key = "";
include = false; include = false;
// >在前<在后 // >在前<在后
@ -683,15 +679,15 @@ public class WordOperator {
value = ""; value = "";
} }
run.setText("", 0); run.setText("", 0);
createPicturePlus(paragraph,(String)value,wordImageLabel.getWidth(),wordImageLabel.getHeight(),wordImageLabel.getPicAttch()); createPicturePlus(paragraph, (String) value, wordImageLabel.getWidth(), wordImageLabel.getHeight(), wordImageLabel.getPicAttch());
key = textAfter; key = textAfter;
include = true; include = true;
} }
} }
} }
} }
} }
} }
@ -710,23 +706,21 @@ public class WordOperator {
*/ */
private void replaceTextAndCreatePicture(List<XWPFParagraph> paragraphList) { private void replaceTextAndCreatePicture(List<XWPFParagraph> paragraphList) {
// 取出word模板里的全部段落遍历 // 取出word模板里的全部段落遍历
for (int i = 0; i < paragraphList.size(); i++) { for (XWPFParagraph paragraph : paragraphList) {
XWPFParagraph paragraph = paragraphList.get(i);
// 拿出每一个段落判断内容里是否包含字符串"{""}"只有两者同时存在了才执行替换标签的逻辑 // 拿出每一个段落判断内容里是否包含字符串"{""}"只有两者同时存在了才执行替换标签的逻辑
String paragraphText = paragraph.getText(); String paragraphText = paragraph.getText();
if (!StringUtils.isBlank(paragraphText)) { if (!StringUtils.isBlank(paragraphText)) {
//判断是否为唯一的image关键字 //判断是否为唯一的image关键字
if(StringUtils.equals(paragraphText, "{IMAGE}") && paragraphText.indexOf(LABEL_STR) != -1 && paragraphText.indexOf(LABEL_END) != -1){ if (StringUtils.equals(paragraphText, "{IMAGE}") && StringUtils.contains(paragraphText, LABEL_STR) && StringUtils.contains(paragraphText, LABEL_END)) {
//去掉关键字标记 //去掉关键字标记
List<XWPFRun> runList = paragraph.getRuns(); List<XWPFRun> runList = paragraph.getRuns();
for (int j = 0; j < runList.size(); j++) { for (XWPFRun run : runList) {
XWPFRun run = runList.get(j);
run.setText("", 0); run.setText("", 0);
} }
//获取图片地址 //获取图片地址
String picPath = (String) replaceMap.get("IMAGE"); String picPath = (String) replaceMap.get("IMAGE");
//创建图片 //创建图片
createPicture(paragraph,picPath,83,83," "); createPicture(paragraph, picPath, 83, 83, " ");
//创建后不需要普通的文字替换了跳过本段落 //创建后不需要普通的文字替换了跳过本段落
continue; continue;
} }
@ -736,8 +730,7 @@ public class WordOperator {
String key = ""; String key = "";
// 是否检测到有"{"字符串有为true没有为false // 是否检测到有"{"字符串有为true没有为false
boolean include = false; boolean include = false;
for (int j = 0; j < runList.size(); j++) { for (XWPFRun run : runList) {
XWPFRun run = runList.get(j);
String text = run.getText(0); String text = run.getText(0);
// 取出每一个小段里标签头和尾的角标 // 取出每一个小段里标签头和尾的角标
int labelStrIndex = text.indexOf(LABEL_STR); int labelStrIndex = text.indexOf(LABEL_STR);

View File

@ -418,7 +418,7 @@
学生学习主动性评价各项占比 学生学习主动性评价各项占比
在落实推进学生刻苦读书学习,增强学习主动性方面,该校学生评价自身"课前运用网络课程平台、教材或资料进行自主预学,梳理知识并发现问题"的符合程度得分为{b1_1_1}分,"课堂上能跟上老师的讲解,主动提问或参与讨论,每节课学有所获"的符合程度得分为{b1_1_2}分,"课后复习笔记及总结课堂教学相关知识"的符合程度得分为{b1_1_3}分,"除了阅读教材,还延伸阅读教师推荐的其他相关书目"的符合程度得分为{b1_1_4}分。 在落实推进学生刻苦读书学习,增强学习主动性方面,该校学生评价自身"课前运用网络课程平台、教材或资料进行自主预学,梳理知识并发现问题"的符合程度得分为{b1_1_1}分,"课堂上能跟上老师的讲解,主动提问或参与讨论,每节课学有所获"的符合程度得分为{b1_1_2}分,"课后复习笔记及总结课堂教学相关知识"的符合程度得分为{b1_1_3}分,"除了阅读教材,还延伸阅读教师推荐的其他相关书目"的符合程度得分为{b1_1_4}分。
<i1_2,400,210> <i1_2,400,250>
各环节学生学习主动性 各环节学生学习主动性
注:图表中数值为计算所得平均分数。 注:图表中数值为计算所得平均分数。
@ -621,7 +621,7 @@ Z
思政课程各分项满意度评价的各项占比 思政课程各分项满意度评价的各项占比
该校学生对本校思想政治课程的教学内容满意度为{b2_1_6}%,对教学形式的满意度为{b2_1_7}%,对教学质量的满意度为{b2_1_8}%,对教学效果的满意度为{b2_1_9}%。 该校学生对本校思想政治课程的教学内容满意度为{b2_1_6}%,对教学形式的满意度为{b2_1_7}%,对教学质量的满意度为{b2_1_8}%,对教学效果的满意度为{b2_1_9}%。
<i2_6,400,170> <i2_6,400,250>
思政课程各分项满意度 思政课程各分项满意度
注:图表中数值为计算所得平均分数。 注:图表中数值为计算所得平均分数。
@ -647,7 +647,7 @@ Z
专业课"两性一度"评价各项占比 专业课"两性一度"评价各项占比
在落实课堂教学改革、提高课程两性一度方面,该校学生对专业课程的评价如下:高阶性方面,"课程将知识、能力、素养进行了有机融合"的符合程度得分为{b2_2_1}分,"课程教学培养了我解决复杂问题的综合能力"的符合程度得分为{b2_2_2}分;创新性方面,"课程内容注重学科间的交叉与融合"的符合程度得分为{b2_2_3}分,"课程内容反映了学科发展的前沿内容"的符合程度得分为{b2_2_4}分,"课程教学内容重视实践与理论的结合"的符合程度得分为{b2_2_5}分;挑战度方面,"需要非常努力才能达到课程要求"的符合程度得分为{b2_2_6}分。 在落实课堂教学改革、提高课程两性一度方面,该校学生对专业课程的评价如下:高阶性方面,"课程将知识、能力、素养进行了有机融合"的符合程度得分为{b2_2_1}分,"课程教学培养了我解决复杂问题的综合能力"的符合程度得分为{b2_2_2}分;创新性方面,"课程内容注重学科间的交叉与融合"的符合程度得分为{b2_2_3}分,"课程内容反映了学科发展的前沿内容"的符合程度得分为{b2_2_4}分,"课程教学内容重视实践与理论的结合"的符合程度得分为{b2_2_5}分;挑战度方面,"需要非常努力才能达到课程要求"的符合程度得分为{b2_2_6}分。
<i2_9,400,170> <i2_9,400,250>
学生对专业课"两性一度"评价 学生对专业课"两性一度"评价
注:图表中数值为计算所得平均分数。 注:图表中数值为计算所得平均分数。
@ -699,7 +699,7 @@ Z
专业课教学方式评价各项占比 专业课教学方式评价各项占比
在推动"以学为中心、以教为主导"的课堂教学改革方面,该校学生对专业课程的教学方法使用情况评价如下,"课程以传统的教师讲授为主"的符合程度得分为{b2_3_1}分,"课堂中加入互动环节,注重学生参与(提问、讨论)"的符合程度得分为{b2_3_2}分,"提供案例或实例讨论"的符合程度得分为{b2_3_3}分,"采用小组合作的项目式教学方式"的符合程度得分为{b2_3_4}分。 在推动"以学为中心、以教为主导"的课堂教学改革方面,该校学生对专业课程的教学方法使用情况评价如下,"课程以传统的教师讲授为主"的符合程度得分为{b2_3_1}分,"课堂中加入互动环节,注重学生参与(提问、讨论)"的符合程度得分为{b2_3_2}分,"提供案例或实例讨论"的符合程度得分为{b2_3_3}分,"采用小组合作的项目式教学方式"的符合程度得分为{b2_3_4}分。
<i2_13,400,170> <i2_13,400,250>
学生对专业课教学方式评价 学生对专业课教学方式评价
注:图表中数值为计算所得平均分数。 注:图表中数值为计算所得平均分数。
@ -747,7 +747,7 @@ Z
体美劳教育满意度评价各项占比 体美劳教育满意度评价各项占比
在落实体美劳教育建设方面,该校学生评价体育教育的满意度为{b2_5_1}%,美育教育的满意度为{b2_5_2}%,劳动教育的满意度为{b2_5_3}%。 在落实体美劳教育建设方面,该校学生评价体育教育的满意度为{b2_5_1}%,美育教育的满意度为{b2_5_2}%,劳动教育的满意度为{b2_5_3}%。
<i2_18,400,170> <i2_18,400,250>
体美劳教育满意度 体美劳教育满意度
注:图表中数值为计算所得平均分数。 注:图表中数值为计算所得平均分数。
@ -792,7 +792,7 @@ Z
学生发展活动满意度评价各项占比 学生发展活动满意度评价各项占比
该校参与过以上各项学生发展活动的学生,评价国际交流活动的满意度为{b2_6_6}%,学生社团活动的满意度为{b2_6_7}%,校园文化活动的满意度为{b2_6_8}%,创新创业活动的满意度为{b2_6_9}%,社会实践活动的满意度为{b2_6_10}%。 该校参与过以上各项学生发展活动的学生,评价国际交流活动的满意度为{b2_6_6}%,学生社团活动的满意度为{b2_6_7}%,校园文化活动的满意度为{b2_6_8}%,创新创业活动的满意度为{b2_6_9}%,社会实践活动的满意度为{b2_6_10}%。
<i2_23,400,170> <i2_23,400,250>
各项学生发展活动满意度 各项学生发展活动满意度
注:图表中数值为计算所得平均分数。 注:图表中数值为计算所得平均分数。
@ -836,7 +836,7 @@ Z
本校实习实践满意度评价各项占比 本校实习实践满意度评价各项占比
在落实实践教学建设方面,该校学生评价本校实习实践内容的满意度为{b2_7_1}%,实习实践时间安排的满意度为{b2_7_2}%,实习实践指导情况的满意度为{b2_7_3}%,实习实践场地及设备的满意度为{b2_7_4}%。 在落实实践教学建设方面,该校学生评价本校实习实践内容的满意度为{b2_7_1}%,实习实践时间安排的满意度为{b2_7_2}%,实习实践指导情况的满意度为{b2_7_3}%,实习实践场地及设备的满意度为{b2_7_4}%。
<i2_27,400,170> <i2_27,400,250>
本校实习实践各方面满意度 本校实习实践各方面满意度
注:图表中数值为计算所得平均分数。 注:图表中数值为计算所得平均分数。
@ -863,7 +863,7 @@ Z
学习收获评价各项占比 学习收获评价各项占比
在对在校学习所取得的收获方面,该校学生的评价如下:"分析问题、解决问题能力提升"的符合程度得分为{b2_8_1}分,"自主学习能力提升"的符合程度得分为{b2_8_2}分,"合作能力提升"的符合程度得分为{b2_8_3}分,"书面表达和沟通能力提升"的符合程度得分为{b2_8_4}分,"有能力规划未来工作生活"的符合程度得分为{b2_8_5}分。 在对在校学习所取得的收获方面,该校学生的评价如下:"分析问题、解决问题能力提升"的符合程度得分为{b2_8_1}分,"自主学习能力提升"的符合程度得分为{b2_8_2}分,"合作能力提升"的符合程度得分为{b2_8_3}分,"书面表达和沟通能力提升"的符合程度得分为{b2_8_4}分,"有能力规划未来工作生活"的符合程度得分为{b2_8_5}分。
<i2_30,400,170> <i2_30,400,250>
学生对学习收获的评价 学生对学习收获的评价
注:图表中数值为计算所得平均分数。 注:图表中数值为计算所得平均分数。
@ -907,7 +907,7 @@ Z
核心素养满意度评价各项占比 核心素养满意度评价各项占比
在自我核心素养提升方面,该校学生对"人文底蕴"的满意度为{b2_9_1}%"科学精神"的满意度为{b2_9_2}%"学会学习"的满意度为{b2_9_3}%"健康生活"的满意度为{b2_9_4}%"责任担当"的满意度为{b2_9_5}%"实践创新"的满意度为{b2_9_6}%"自我提升"的满意度为{b2_9_7}%。 在自我核心素养提升方面,该校学生对"人文底蕴"的满意度为{b2_9_1}%"科学精神"的满意度为{b2_9_2}%"学会学习"的满意度为{b2_9_3}%"健康生活"的满意度为{b2_9_4}%"责任担当"的满意度为{b2_9_5}%"实践创新"的满意度为{b2_9_6}%"自我提升"的满意度为{b2_9_7}%。
<i2_34,400,170> <i2_34,400,250>
学生评价核心素养满意度 学生评价核心素养满意度
注:图表中数值为计算所得平均分数。 注:图表中数值为计算所得平均分数。
@ -956,7 +956,7 @@ Z
教学工作满意度评价各项占比 教学工作满意度评价各项占比
在教师教学工作方面,该校学生评价教师"师德师风及精神面貌"的满意度为{b3_1_1}%"教学投入"的满意度为{b3_1_2}%"依法依规,履行教师职责"的满意度为{b3_1_3}%"关心爱护学生"的满意度为{b3_1_4}%。 在教师教学工作方面,该校学生评价教师"师德师风及精神面貌"的满意度为{b3_1_1}%"教学投入"的满意度为{b3_1_2}%"依法依规,履行教师职责"的满意度为{b3_1_3}%"关心爱护学生"的满意度为{b3_1_4}%。
<i3_2,400,170> <i3_2,400,250>
教学工作各方面满意度 教学工作各方面满意度
注:图表中数值为计算所得平均分数。 注:图表中数值为计算所得平均分数。
@ -1034,7 +1034,7 @@ Z
教师教学行为评价各项占比 教师教学行为评价各项占比
在教师教学能力方面,该校学生评价教师"重视立德树人,注重发挥课程育人的作用"的符合程度得分为{b3_3_1}分,"清楚地向学生解释了所学课程的目标和要求"的符合程度得分为{b3_3_2}分,"教学方法灵活多样,引导学生进行创造性思考"的符合程度得分为{b3_3_3}分,"课堂上激发学生的学习兴趣"的符合程度得分为{b3_3_4}分,"课后为学生提供辅导答疑"的符合程度得分为{b3_3_5}分。 在教师教学能力方面,该校学生评价教师"重视立德树人,注重发挥课程育人的作用"的符合程度得分为{b3_3_1}分,"清楚地向学生解释了所学课程的目标和要求"的符合程度得分为{b3_3_2}分,"教学方法灵活多样,引导学生进行创造性思考"的符合程度得分为{b3_3_3}分,"课堂上激发学生的学习兴趣"的符合程度得分为{b3_3_4}分,"课后为学生提供辅导答疑"的符合程度得分为{b3_3_5}分。
<i3_10,400,170> <i3_10,400,250>
教师各方面教学行为评价 教师各方面教学行为评价
注:图表中数值为计算所得平均分数。 注:图表中数值为计算所得平均分数。
@ -1079,7 +1079,7 @@ Z
本校体现"学生中心"和安全管理评价各项占比 本校体现"学生中心"和安全管理评价各项占比
在落实"以学生为中心"和安全管理方面,该校学生评价本校"学生服务能够做到"一站式"的服务与解决,体现了对学生的关怀"的符合程度得分为{b4_1_1}分,"重视实验实训的安全教育与管理"的符合程度得分为{b4_1_2}分,"任课教师积极参与学生活动"的符合程度得分为{b4_1_3}分,"校内学术讲座报告活动多"的符合程度得分为{b4_1_4}分。 在落实"以学生为中心"和安全管理方面,该校学生评价本校"学生服务能够做到"一站式"的服务与解决,体现了对学生的关怀"的符合程度得分为{b4_1_1}分,"重视实验实训的安全教育与管理"的符合程度得分为{b4_1_2}分,"任课教师积极参与学生活动"的符合程度得分为{b4_1_3}分,"校内学术讲座报告活动多"的符合程度得分为{b4_1_4}分。
<i4_2,400,170> <i4_2,400,250>
本校体现"学生中心"和安全管理各方面评价 本校体现"学生中心"和安全管理各方面评价
注:图表中数值为计算所得平均分数。 注:图表中数值为计算所得平均分数。
@ -1160,7 +1160,7 @@ Z
学生工作满意度评价各项占比 学生工作满意度评价各项占比
该校学生评价本校"心理健康教育/咨询"的满意度为{b4_3_1}%"职业生涯规划和就业创业指导"的满意度为{b4_3_2}%"班主任、辅导员工作"的满意度为{b4_3_3}%"学业指导工作"的满意度为{b4_3_4}%"重视家庭经济困难学生资助工作"的满意度为{b4_3_5}%。 该校学生评价本校"心理健康教育/咨询"的满意度为{b4_3_1}%"职业生涯规划和就业创业指导"的满意度为{b4_3_2}%"班主任、辅导员工作"的满意度为{b4_3_3}%"学业指导工作"的满意度为{b4_3_4}%"重视家庭经济困难学生资助工作"的满意度为{b4_3_5}%。
<i4_9,400,170> <i4_9,400,250>
各项学生工作满意度 各项学生工作满意度
注:图表中数值为计算所得平均分数。 注:图表中数值为计算所得平均分数。
@ -1204,7 +1204,7 @@ Z
资源条件满意度评价各项占比 资源条件满意度评价各项占比
在落实条件保障方面,该校学生评价本校"教室及教学设备"的满意度为{b4_4_1}%"实验实训室条件"的满意度为{b4_4_2}%"图书馆资源"的满意度为{b4_4_3}%"网络资源"的满意度为{b4_4_4}%"体育文化等基础设施"的满意度为{b4_4_5}%"住宿条件"的满意度为{b4_4_6}%。 在落实条件保障方面,该校学生评价本校"教室及教学设备"的满意度为{b4_4_1}%"实验实训室条件"的满意度为{b4_4_2}%"图书馆资源"的满意度为{b4_4_3}%"网络资源"的满意度为{b4_4_4}%"体育文化等基础设施"的满意度为{b4_4_5}%"住宿条件"的满意度为{b4_4_6}%。
<i4_13,400,170> <i4_13,400,250>
资源条件各方面满意度 资源条件各方面满意度
注:图表中数值为计算所得平均分数。 注:图表中数值为计算所得平均分数。

View File

@ -0,0 +1,47 @@
<html>
<meta charset="UTF-8">
<meta http-equiv="content-type" content="text/html; charset=utf-8">
<head>
<script src="http://gssn.fw121.com/js/jquery-3.2.1.min.js"></script>
<script src="./echarts.min.js"></script>
</head>
<body>
<!-- ECharts 准备一个具备大小宽高 DOM -->
<div id="rhEcharts" style="height:600px;width:1050px"></div>
</body>
<script>
var rhEcharts = null;
$(function () {
// 基于准备好的dom初始化echarts实例
rhEcharts = echarts.init(document.getElementById('rhEcharts'));
});
function showImg(data) {
// var option = {
// xAxis: {
// type: 'category',
// data: ['Mon', 'Tue', 'Wed', 'Thu', 'Fri', 'Sat', 'Sun']
// },
// yAxis: {
// type: 'value'
// },
// series: [{
// data: [820, 932, 901, 934, 1290, 1330, 1320],
// type: 'line'
// }]
// };
// rhEcharts.setOption(option);
rhEcharts.setOption(data);
}
function returnEchartImg() {
var url = rhEcharts.getDataURL();
//清空绘画内容清空后实例可用
rhEcharts.clear();
return url;
}
</script>
</html>