2023年11月10日 新增导出,日志新增字段

This commit is contained in:
bai 2023-11-10 00:41:37 +08:00
parent e48d8ae254
commit aa1671f7fe
8 changed files with 184 additions and 8 deletions

View File

@ -82,6 +82,7 @@ public class httpController extends JeecgController<TBks, ITBksService> {
mnitorLog.setJxlName(x.getJxlName());//教学楼名称
mnitorLog.setJsbh(x.getJsbh());//教室编号
mnitorLog.setJsmc(x.getJsmc());//教室名称
// mnitorLog.setHh(x.get)
//访问汇总结果
//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);

View File

@ -97,6 +97,9 @@ public class RefreshLiveServer extends BaseSync {
mnitorLog.setJxlName(x.getJxlName());//教学楼名称
mnitorLog.setJsbh(x.getJsbh());//教室编号
mnitorLog.setJsmc(x.getJsmc());//教室名称
mnitorLog.setHh(x.getNowIsClassHh());//当前节次
mnitorLog.setKtId(x.getNowIsClassId());//当前课堂ID
mnitorLog.setKtName(x.getNowIsClassName());//当前课堂名称
try {
String res = com.xkcoding.http.HttpUtil.get(x.getPullUrl());
log.info("返回内容:" + res);//live_setParam_ret=ok

View File

@ -190,23 +190,23 @@ public class KcZhihuijiaoshiController extends JeecgController<KcZhihuijiaoshi,
log.info("07: {}",timer.intervalRestart());
//根据节次信息包装进Map
Map<String, String> kcKetangbiaoNowSet = Maps.newHashMap();
Map<String, String> kcKetangbiaoNextSet = Maps.newHashMap();
Map<String, KcKetangbiao> kcKetangbiaoNowSet = Maps.newHashMap();
Map<String, KcKetangbiao> kcKetangbiaoNextSet = Maps.newHashMap();
kcKetangbiaoList.forEach(x -> {
//匹配是否在上课范围内
if(kcJieciMap.containsKey(x.getHh())){
kcKetangbiaoNowSet.put(x.getJsbh(), x.getId());
kcKetangbiaoNowSet.put(x.getJsbh(), x);
}
//下一节不是0102的归类为明天的
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")){//当前没有节次当前匹配节次为最后一节使用明天的课程填充进去
nextDayKcKetangbiaoList.forEach(x -> {
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
if(kcKetangbiaoNowSet.containsKey(x.getJsbh())){
KcKetangbiao ketangbiao = kcKetangbiaoNowSet.get(x.getJsbh());
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
if(kcKetangbiaoNextSet.containsKey(x.getJsbh())){
KcKetangbiao ketangbiao = kcKetangbiaoNextSet.get(x.getJsbh());
x.setNextIsClass(true);
x.setNextIsClassId(kcKetangbiaoNowSet.get(x.getJsbh()));
x.setNextIsClassId(ketangbiao.getId());
}
if(jiaoxuelouInfoMap.containsKey(x.getJxlId())){
KcJiaoxuelouInfo info = jiaoxuelouInfoMap.get(x.getJxlId());

View File

@ -13,9 +13,11 @@ import org.jeecg.common.aspect.annotation.AutoLog;
import org.jeecg.common.system.base.controller.JeecgController;
import org.jeecg.common.system.query.QueryGenerator;
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.export.Export;
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.entity.ExportParams;
import org.jeecgframework.poi.excel.view.JeecgEntityExcelView;
@ -194,4 +196,36 @@ public class KcZhihuijiaoshiMonitorLogController extends JeecgController<KcZhihu
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);
}
}

View File

@ -137,10 +137,18 @@ public class KcZhihuijiaoshi implements Serializable {
@TableField(exist = false)
private java.lang.Boolean nowIsClass;
/**当前节节次*/
@TableField(exist = false)
private java.lang.String nowIsClassHh;
/**当前节是否有课的课堂ID*/
@TableField(exist = false)
private java.lang.String nowIsClassId;
/**当前节是否有课的课堂名称*/
@TableField(exist = false)
private java.lang.String nowIsClassName;
/**下一节是否有课*/
@TableField(exist = false)
private java.lang.Boolean nextIsClass;

View File

@ -42,6 +42,15 @@ public class KcZhihuijiaoshiMonitorLog {
/**教室编号*/
@ApiModelProperty(value = "教室编号")
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 = "创建人")
@Dict(dictTable = "sys_user", dicCode = "username", dicText = "realname")

View File

@ -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;
}
}

View File

@ -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.异常节次: 异常课程: 监测次数: 异常次数: 异常率