2023年11月10日 新增导出,日志新增字段
This commit is contained in:
parent
e48d8ae254
commit
aa1671f7fe
|
@ -82,6 +82,7 @@ public class httpController extends JeecgController<TBks, ITBksService> {
|
||||||
mnitorLog.setJxlName(x.getJxlName());//教学楼名称
|
mnitorLog.setJxlName(x.getJxlName());//教学楼名称
|
||||||
mnitorLog.setJsbh(x.getJsbh());//教室编号
|
mnitorLog.setJsbh(x.getJsbh());//教室编号
|
||||||
mnitorLog.setJsmc(x.getJsmc());//教室名称
|
mnitorLog.setJsmc(x.getJsmc());//教室名称
|
||||||
|
// mnitorLog.setHh(x.get)
|
||||||
//访问。汇总结果
|
//访问。汇总结果
|
||||||
//http://${ip}/cgi-bin/plat.cgi?action=9&user=${user}&pwsd=${getMd5Str(pwd)}&command=1
|
//http://${ip}/cgi-bin/plat.cgi?action=9&user=${user}&pwsd=${getMd5Str(pwd)}&command=1
|
||||||
String hex = Convert.toHex("live_setParam_enable=" + type, CharsetUtil.CHARSET_UTF_8);
|
String hex = Convert.toHex("live_setParam_enable=" + type, CharsetUtil.CHARSET_UTF_8);
|
||||||
|
|
|
@ -97,6 +97,9 @@ public class RefreshLiveServer extends BaseSync {
|
||||||
mnitorLog.setJxlName(x.getJxlName());//教学楼名称
|
mnitorLog.setJxlName(x.getJxlName());//教学楼名称
|
||||||
mnitorLog.setJsbh(x.getJsbh());//教室编号
|
mnitorLog.setJsbh(x.getJsbh());//教室编号
|
||||||
mnitorLog.setJsmc(x.getJsmc());//教室名称
|
mnitorLog.setJsmc(x.getJsmc());//教室名称
|
||||||
|
mnitorLog.setHh(x.getNowIsClassHh());//当前节次
|
||||||
|
mnitorLog.setKtId(x.getNowIsClassId());//当前课堂ID
|
||||||
|
mnitorLog.setKtName(x.getNowIsClassName());//当前课堂名称
|
||||||
try {
|
try {
|
||||||
String res = com.xkcoding.http.HttpUtil.get(x.getPullUrl());
|
String res = com.xkcoding.http.HttpUtil.get(x.getPullUrl());
|
||||||
log.info("返回内容:" + res);//live_setParam_ret=ok
|
log.info("返回内容:" + res);//live_setParam_ret=ok
|
||||||
|
|
|
@ -190,23 +190,23 @@ public class KcZhihuijiaoshiController extends JeecgController<KcZhihuijiaoshi,
|
||||||
log.info("07: {}",timer.intervalRestart());
|
log.info("07: {}",timer.intervalRestart());
|
||||||
|
|
||||||
//根据节次信息包装进Map
|
//根据节次信息包装进Map
|
||||||
Map<String, String> kcKetangbiaoNowSet = Maps.newHashMap();
|
Map<String, KcKetangbiao> kcKetangbiaoNowSet = Maps.newHashMap();
|
||||||
Map<String, String> kcKetangbiaoNextSet = Maps.newHashMap();
|
Map<String, KcKetangbiao> kcKetangbiaoNextSet = Maps.newHashMap();
|
||||||
|
|
||||||
kcKetangbiaoList.forEach(x -> {
|
kcKetangbiaoList.forEach(x -> {
|
||||||
//匹配是否在上课范围内
|
//匹配是否在上课范围内
|
||||||
if(kcJieciMap.containsKey(x.getHh())){
|
if(kcJieciMap.containsKey(x.getHh())){
|
||||||
kcKetangbiaoNowSet.put(x.getJsbh(), x.getId());
|
kcKetangbiaoNowSet.put(x.getJsbh(), x);
|
||||||
}
|
}
|
||||||
//下一节不是01、02的归类为明天的
|
//下一节不是01、02的归类为明天的
|
||||||
if(nextKcJieciSet.contains(x.getHh()) && !StringUtils.equals(x.getHh(),"01、02")){
|
if(nextKcJieciSet.contains(x.getHh()) && !StringUtils.equals(x.getHh(),"01、02")){
|
||||||
kcKetangbiaoNextSet.put(x.getJsbh(), x.getId());
|
kcKetangbiaoNextSet.put(x.getJsbh(), x);
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
if(kcJieciMap.isEmpty() || kcJieciMap.containsKey("11、12")){//当前没有节次,当前匹配节次为最后一节,使用明天的课程填充进去
|
if(kcJieciMap.isEmpty() || kcJieciMap.containsKey("11、12")){//当前没有节次,当前匹配节次为最后一节,使用明天的课程填充进去
|
||||||
nextDayKcKetangbiaoList.forEach(x -> {
|
nextDayKcKetangbiaoList.forEach(x -> {
|
||||||
if(StringUtils.equals(x.getHh(),"01、02")){
|
if(StringUtils.equals(x.getHh(),"01、02")){
|
||||||
kcKetangbiaoNextSet.put(x.getJsbh(), x.getId());
|
kcKetangbiaoNextSet.put(x.getJsbh(), x);
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
@ -224,13 +224,17 @@ public class KcZhihuijiaoshiController extends JeecgController<KcZhihuijiaoshi,
|
||||||
|
|
||||||
//nowTimeNum
|
//nowTimeNum
|
||||||
if(kcKetangbiaoNowSet.containsKey(x.getJsbh())){
|
if(kcKetangbiaoNowSet.containsKey(x.getJsbh())){
|
||||||
|
KcKetangbiao ketangbiao = kcKetangbiaoNowSet.get(x.getJsbh());
|
||||||
x.setNowIsClass(true);
|
x.setNowIsClass(true);
|
||||||
x.setNowIsClassId(kcKetangbiaoNowSet.get(x.getJsbh()));
|
x.setNowIsClassId(ketangbiao.getId());
|
||||||
|
x.setNowIsClassHh(ketangbiao.getHh());
|
||||||
|
x.setNowIsClassName(ketangbiao.getKcmc());
|
||||||
}
|
}
|
||||||
// x.setNowIsClass(true);//debug
|
// x.setNowIsClass(true);//debug
|
||||||
if(kcKetangbiaoNextSet.containsKey(x.getJsbh())){
|
if(kcKetangbiaoNextSet.containsKey(x.getJsbh())){
|
||||||
|
KcKetangbiao ketangbiao = kcKetangbiaoNextSet.get(x.getJsbh());
|
||||||
x.setNextIsClass(true);
|
x.setNextIsClass(true);
|
||||||
x.setNextIsClassId(kcKetangbiaoNowSet.get(x.getJsbh()));
|
x.setNextIsClassId(ketangbiao.getId());
|
||||||
}
|
}
|
||||||
if(jiaoxuelouInfoMap.containsKey(x.getJxlId())){
|
if(jiaoxuelouInfoMap.containsKey(x.getJxlId())){
|
||||||
KcJiaoxuelouInfo info = jiaoxuelouInfoMap.get(x.getJxlId());
|
KcJiaoxuelouInfo info = jiaoxuelouInfoMap.get(x.getJxlId());
|
||||||
|
|
|
@ -13,9 +13,11 @@ import org.jeecg.common.aspect.annotation.AutoLog;
|
||||||
import org.jeecg.common.system.base.controller.JeecgController;
|
import org.jeecg.common.system.base.controller.JeecgController;
|
||||||
import org.jeecg.common.system.query.QueryGenerator;
|
import org.jeecg.common.system.query.QueryGenerator;
|
||||||
import org.jeecg.common.system.vo.LoginUser;
|
import org.jeecg.common.system.vo.LoginUser;
|
||||||
import org.jeecg.common.util.oConvertUtils;
|
|
||||||
import org.jeecg.modules.kc.jiaoshi.entity.KcZhihuijiaoshiMonitorLog;
|
import org.jeecg.modules.kc.jiaoshi.entity.KcZhihuijiaoshiMonitorLog;
|
||||||
|
import org.jeecg.modules.kc.jiaoshi.export.Export;
|
||||||
import org.jeecg.modules.kc.jiaoshi.service.IKcZhihuijiaoshiMonitorLogService;
|
import org.jeecg.modules.kc.jiaoshi.service.IKcZhihuijiaoshiMonitorLogService;
|
||||||
|
import org.jeecg.modules.tools.word.ExportWord;
|
||||||
|
import org.jeecg.modules.tools.word.WordOperator;
|
||||||
import org.jeecgframework.poi.excel.def.NormalExcelConstants;
|
import org.jeecgframework.poi.excel.def.NormalExcelConstants;
|
||||||
import org.jeecgframework.poi.excel.entity.ExportParams;
|
import org.jeecgframework.poi.excel.entity.ExportParams;
|
||||||
import org.jeecgframework.poi.excel.view.JeecgEntityExcelView;
|
import org.jeecgframework.poi.excel.view.JeecgEntityExcelView;
|
||||||
|
@ -194,4 +196,36 @@ public class KcZhihuijiaoshiMonitorLogController extends JeecgController<KcZhihu
|
||||||
return Result.OK(pageList);
|
return Result.OK(pageList);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 导出word
|
||||||
|
*
|
||||||
|
* @param xqxnParam
|
||||||
|
* @param request
|
||||||
|
* @param response
|
||||||
|
*/
|
||||||
|
// @RequiresPermissions("config:kc_export_config_tpkwcqkjzglx:exportXls")
|
||||||
|
@RequestMapping(value = "/exportWord")
|
||||||
|
public void exportWord(KcZhihuijiaoshiMonitorLog kcZhihuijiaoshiMonitorLog, HttpServletRequest request, HttpServletResponse response) throws Exception {
|
||||||
|
Export export = new Export();
|
||||||
|
WordOperator wo = export.export(kcZhihuijiaoshiMonitorLog);
|
||||||
|
ExportWord.download_word(request, response, "file.doc", wo);
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 导出word
|
||||||
|
*
|
||||||
|
* @param xqxnParam
|
||||||
|
* @param request
|
||||||
|
* @param response
|
||||||
|
*/
|
||||||
|
// @RequiresPermissions("config:kc_export_config_tpkwcqkjzglx:exportXls")
|
||||||
|
@RequestMapping(value = "/exportPdf")
|
||||||
|
public void exportPdf(KcZhihuijiaoshiMonitorLog kcZhihuijiaoshiMonitorLog, HttpServletRequest request, HttpServletResponse response) throws Exception {
|
||||||
|
Export export = new Export();
|
||||||
|
WordOperator wo = export.export(kcZhihuijiaoshiMonitorLog);
|
||||||
|
ExportWord.download_pdf(request, response, "file", wo);
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
|
@ -137,10 +137,18 @@ public class KcZhihuijiaoshi implements Serializable {
|
||||||
@TableField(exist = false)
|
@TableField(exist = false)
|
||||||
private java.lang.Boolean nowIsClass;
|
private java.lang.Boolean nowIsClass;
|
||||||
|
|
||||||
|
/**当前节节次*/
|
||||||
|
@TableField(exist = false)
|
||||||
|
private java.lang.String nowIsClassHh;
|
||||||
|
|
||||||
/**当前节是否有课的课堂ID*/
|
/**当前节是否有课的课堂ID*/
|
||||||
@TableField(exist = false)
|
@TableField(exist = false)
|
||||||
private java.lang.String nowIsClassId;
|
private java.lang.String nowIsClassId;
|
||||||
|
|
||||||
|
/**当前节是否有课的课堂名称*/
|
||||||
|
@TableField(exist = false)
|
||||||
|
private java.lang.String nowIsClassName;
|
||||||
|
|
||||||
/**下一节是否有课*/
|
/**下一节是否有课*/
|
||||||
@TableField(exist = false)
|
@TableField(exist = false)
|
||||||
private java.lang.Boolean nextIsClass;
|
private java.lang.Boolean nextIsClass;
|
||||||
|
|
|
@ -42,6 +42,15 @@ public class KcZhihuijiaoshiMonitorLog {
|
||||||
/**教室编号*/
|
/**教室编号*/
|
||||||
@ApiModelProperty(value = "教室编号")
|
@ApiModelProperty(value = "教室编号")
|
||||||
private java.lang.String jsbh;
|
private java.lang.String jsbh;
|
||||||
|
/**节次*/
|
||||||
|
@ApiModelProperty(value = "节次")
|
||||||
|
private java.lang.String hh;
|
||||||
|
/**课堂ID*/
|
||||||
|
@ApiModelProperty(value = "课堂ID")
|
||||||
|
private java.lang.String ktId;
|
||||||
|
/**课堂名称*/
|
||||||
|
@ApiModelProperty(value = "课堂名称")
|
||||||
|
private java.lang.String ktName;
|
||||||
/**创建人*/
|
/**创建人*/
|
||||||
@ApiModelProperty(value = "创建人")
|
@ApiModelProperty(value = "创建人")
|
||||||
@Dict(dictTable = "sys_user", dicCode = "username", dicText = "realname")
|
@Dict(dictTable = "sys_user", dicCode = "username", dicText = "realname")
|
||||||
|
|
|
@ -0,0 +1,117 @@
|
||||||
|
package org.jeecg.modules.kc.jiaoshi.export;
|
||||||
|
|
||||||
|
import cn.hutool.core.date.DateUtil;
|
||||||
|
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
|
||||||
|
import com.google.common.collect.Lists;
|
||||||
|
import com.google.common.collect.Maps;
|
||||||
|
import lombok.Data;
|
||||||
|
import org.apache.commons.lang3.StringUtils;
|
||||||
|
import org.jeecg.common.system.query.QueryGenerator;
|
||||||
|
import org.jeecg.common.system.vo.DictModel;
|
||||||
|
import org.jeecg.common.util.SpringContextHolder;
|
||||||
|
import org.jeecg.modules.kc.config.entity.KcExportConfigTpkwcqkjzglx;
|
||||||
|
import org.jeecg.modules.kc.config.service.IKcExportConfigTpkwcqkjzglxService;
|
||||||
|
import org.jeecg.modules.kc.grab.SynchronizationService.tools.ChangeTingKeTongJi;
|
||||||
|
import org.jeecg.modules.kc.grab.imports.entity.Xxhbuser;
|
||||||
|
import org.jeecg.modules.kc.grab.imports.service.IXxhbuserService;
|
||||||
|
import org.jeecg.modules.kc.jiaoshi.entity.KcZhihuijiaoshiMonitorLog;
|
||||||
|
import org.jeecg.modules.kc.jiaoshi.service.IKcZhihuijiaoshiMonitorLogService;
|
||||||
|
import org.jeecg.modules.kc.kcXqxnHistory.entity.KcXqxnHistory;
|
||||||
|
import org.jeecg.modules.kc.tksf.kctkcstj.entity.KcTkcstj;
|
||||||
|
import org.jeecg.modules.kc.tksf.kctkcstj.service.IKcTkcstjService;
|
||||||
|
import org.jeecg.modules.system.service.ISysDictService;
|
||||||
|
import org.jeecg.modules.tools.word.BaseExport;
|
||||||
|
import org.jeecg.modules.tools.word.ExportWord;
|
||||||
|
import org.jeecg.modules.tools.word.WordOperator;
|
||||||
|
import org.slf4j.Logger;
|
||||||
|
import org.slf4j.LoggerFactory;
|
||||||
|
import org.springframework.beans.factory.annotation.Autowired;
|
||||||
|
|
||||||
|
import java.util.ArrayList;
|
||||||
|
import java.util.List;
|
||||||
|
import java.util.Map;
|
||||||
|
import java.util.stream.Collectors;
|
||||||
|
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 功能说明:导出封装
|
||||||
|
* 创建者:byx
|
||||||
|
* 创建时间:2021-6-30
|
||||||
|
* <pre>
|
||||||
|
* 修改时间: 修改者:
|
||||||
|
* 修改内容:
|
||||||
|
* </pre>
|
||||||
|
*/
|
||||||
|
public class Export extends BaseExport {
|
||||||
|
|
||||||
|
private Logger logger = LoggerFactory.getLogger(this.getClass());
|
||||||
|
|
||||||
|
//由于前面调用使用的是new,所以只能手动注入bean
|
||||||
|
// private ISysDictService sysDictService = SpringContextHolder.getBean(ISysDictService.class);
|
||||||
|
private IKcZhihuijiaoshiMonitorLogService kcZhihuijiaoshiMonitorLogService = SpringContextHolder.getBean(IKcZhihuijiaoshiMonitorLogService.class);
|
||||||
|
|
||||||
|
// /**
|
||||||
|
// *
|
||||||
|
// * 功能说明 : 将导出的文档片段按照list返回
|
||||||
|
// * 创建者 : byx
|
||||||
|
// * 修改日期 : 2018年9月26日
|
||||||
|
// * @param
|
||||||
|
// * @return 文档片段的list对象
|
||||||
|
// * @throws Exception
|
||||||
|
// */
|
||||||
|
// public List<WordOperator> exportAll(QnCustomerHetong customerHetong, SysUser user, Date now) throws Exception{
|
||||||
|
// List<WordOperator> list = Lists.newArrayList();
|
||||||
|
// list.add(export1(customerHetong,user,now));
|
||||||
|
// list.add(export2(customerHetong));
|
||||||
|
// list.add(export3(customerHetong));
|
||||||
|
// return list;
|
||||||
|
// }
|
||||||
|
|
||||||
|
// @Override
|
||||||
|
// public List<DictModel> getDictList(String dictCode){
|
||||||
|
// return sysDictService.queryDictItemsByCode(dictCode);
|
||||||
|
// }
|
||||||
|
|
||||||
|
/**
|
||||||
|
*
|
||||||
|
* 功能说明 : 拼接word导出
|
||||||
|
* 创建者 : byx
|
||||||
|
* 修改日期 : 2021-6-30
|
||||||
|
* @param kcZhihuijiaoshiMonitorLog
|
||||||
|
* @return
|
||||||
|
* @throws Exception
|
||||||
|
*/
|
||||||
|
public WordOperator export(KcZhihuijiaoshiMonitorLog kcZhihuijiaoshiMonitorLog) throws Exception{
|
||||||
|
String templateName = "exp1\\zhjs-tjfxbg.docx";
|
||||||
|
|
||||||
|
WordOperator wo = ExportWord.getWordOperator(templateName);
|
||||||
|
//********************************@A.单个内容替换***************************************************/
|
||||||
|
//********************************取数据***********************************************************/
|
||||||
|
Map<String, Object> result = Maps.newHashMap();
|
||||||
|
//********************************取数据END*********************************************************/
|
||||||
|
//********************************通用*************************************************************/
|
||||||
|
String today= DateUtil.today();
|
||||||
|
result.put("监测时间", today);//学院名称
|
||||||
|
// result.put("监测教学楼",xqxnParam);//学期学年
|
||||||
|
|
||||||
|
//********************************表头END**********************************************************/
|
||||||
|
wo.replaceTextPlus(result);
|
||||||
|
//********************************@A.单个内容替换END**************************************************/
|
||||||
|
final int[] index = { 2 };
|
||||||
|
List<List<String>> mainList = Lists.newArrayList();
|
||||||
|
|
||||||
|
List<String> list = Lists.newArrayList();
|
||||||
|
list.add("楼1");
|
||||||
|
list.add("11");
|
||||||
|
list.add("22");
|
||||||
|
mainList.add(list);
|
||||||
|
|
||||||
|
//WordOperator.fillNullCall(mainList,mainList);
|
||||||
|
//从固定位置开始添加(1为第二个表格,第二个1为固定位置)
|
||||||
|
wo.insert2Table(0, index[0], true, mainList);
|
||||||
|
index[0] += mainList.size() + 2;
|
||||||
|
mainList.clear();
|
||||||
|
|
||||||
|
return wo;
|
||||||
|
}
|
||||||
|
}
|
|
@ -0,0 +1,86 @@
|
||||||
|
东北师范大学线上开放课堂运行状态报告
|
||||||
|
一、总体情况
|
||||||
|
监测时间:{监测时间}
|
||||||
|
监测教学楼:{监测教学楼}
|
||||||
|
在监测时间段内,开课前15分钟开始,每间隔15分钟对线上开放课堂进行直播状态监测。本监测时间段内共{教学楼数}个教学楼{教室数}间教室提供线上开放课堂{}大节,运行正常课堂{运行正常课堂}大节,{运行异常课堂}大节课堂监测异常,线上开放课堂运行正常率为{正常率}%。
|
||||||
|
线上开放课堂运行情况一览表
|
||||||
|
教学楼
|
||||||
|
合计
|
||||||
|
第一大节
|
||||||
|
第二大节
|
||||||
|
第三大节
|
||||||
|
第四大节
|
||||||
|
第五大节
|
||||||
|
第六大节
|
||||||
|
|
||||||
|
正常率
|
||||||
|
开放数
|
||||||
|
正常
|
||||||
|
异常
|
||||||
|
正常
|
||||||
|
异常
|
||||||
|
正常
|
||||||
|
异常
|
||||||
|
正常
|
||||||
|
异常
|
||||||
|
正常
|
||||||
|
异常
|
||||||
|
正常
|
||||||
|
异常
|
||||||
|
正常
|
||||||
|
异常
|
||||||
|
Z
|
||||||
|
Z
|
||||||
|
Z
|
||||||
|
Z
|
||||||
|
Z
|
||||||
|
Z
|
||||||
|
Z
|
||||||
|
Z
|
||||||
|
Z
|
||||||
|
Z
|
||||||
|
Z
|
||||||
|
Z
|
||||||
|
Z
|
||||||
|
Z
|
||||||
|
Z
|
||||||
|
Z
|
||||||
|
Z
|
||||||
|
合计
|
||||||
|
{}
|
||||||
|
{}
|
||||||
|
{}
|
||||||
|
{}
|
||||||
|
{}
|
||||||
|
{}
|
||||||
|
{}
|
||||||
|
{}
|
||||||
|
{}
|
||||||
|
{}
|
||||||
|
{}
|
||||||
|
{}
|
||||||
|
{}
|
||||||
|
{}
|
||||||
|
{}
|
||||||
|
{}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
二、异常教室基本情况
|
||||||
|
教学楼
|
||||||
|
教室名称
|
||||||
|
开放课堂数
|
||||||
|
正常课堂率
|
||||||
|
正常课堂数
|
||||||
|
异常课堂数
|
||||||
|
异常情况说明
|
||||||
|
z
|
||||||
|
z
|
||||||
|
z
|
||||||
|
z
|
||||||
|
z
|
||||||
|
z
|
||||||
|
1.异常节次: 异常课程: 监测次数: 异常次数: 异常率
|
||||||
|
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue