2023年11月12日 新增导出
This commit is contained in:
parent
b237c037d6
commit
cef411f7de
|
@ -199,7 +199,7 @@ public class KcZhihuijiaoshiMonitorLogController extends JeecgController<KcZhihu
|
||||||
/**
|
/**
|
||||||
* 导出word
|
* 导出word
|
||||||
*
|
*
|
||||||
* @param xqxnParam
|
* @param kcZhihuijiaoshiMonitorLog
|
||||||
* @param request
|
* @param request
|
||||||
* @param response
|
* @param response
|
||||||
*/
|
*/
|
||||||
|
@ -214,7 +214,7 @@ public class KcZhihuijiaoshiMonitorLogController extends JeecgController<KcZhihu
|
||||||
/**
|
/**
|
||||||
* 导出word
|
* 导出word
|
||||||
*
|
*
|
||||||
* @param xqxnParam
|
* @param kcZhihuijiaoshiMonitorLog
|
||||||
* @param request
|
* @param request
|
||||||
* @param response
|
* @param response
|
||||||
*/
|
*/
|
||||||
|
|
|
@ -64,8 +64,6 @@ public class KcZhihuijiaoshiMonitorLog {
|
||||||
@DateTimeFormat(pattern="yyyy-MM-dd HH:mm:ss")
|
@DateTimeFormat(pattern="yyyy-MM-dd HH:mm:ss")
|
||||||
@ApiModelProperty(value = "更新时间")
|
@ApiModelProperty(value = "更新时间")
|
||||||
private java.util.Date updateTime;
|
private java.util.Date updateTime;
|
||||||
@TableField(exist = false)
|
|
||||||
private String endTime;
|
|
||||||
//---------------------------导出--------------------------
|
//---------------------------导出--------------------------
|
||||||
|
|
||||||
|
|
||||||
|
@ -79,6 +77,8 @@ public class KcZhihuijiaoshiMonitorLog {
|
||||||
@Excel(name = "统计日期", width = 15)
|
@Excel(name = "统计日期", width = 15)
|
||||||
@TableField(exist = false)
|
@TableField(exist = false)
|
||||||
private String startTime;
|
private String startTime;
|
||||||
|
@TableField(exist = false)
|
||||||
|
private String endTime;
|
||||||
/**教学楼名称*/
|
/**教学楼名称*/
|
||||||
@Excel(name = "教学楼名称", width = 15)
|
@Excel(name = "教学楼名称", width = 15)
|
||||||
@ApiModelProperty(value = "教学楼名称")
|
@ApiModelProperty(value = "教学楼名称")
|
||||||
|
|
|
@ -1,7 +1,9 @@
|
||||||
package org.jeecg.modules.kc.jiaoshi.export;
|
package org.jeecg.modules.kc.jiaoshi.export;
|
||||||
|
|
||||||
import cn.hutool.core.date.DateUtil;
|
import cn.hutool.core.date.DateUtil;
|
||||||
|
import cn.hutool.core.util.ArrayUtil;
|
||||||
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
|
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
|
||||||
|
import com.beust.jcommander.internal.Sets;
|
||||||
import com.google.common.collect.Lists;
|
import com.google.common.collect.Lists;
|
||||||
import com.google.common.collect.Maps;
|
import com.google.common.collect.Maps;
|
||||||
import lombok.Data;
|
import lombok.Data;
|
||||||
|
@ -27,9 +29,9 @@ import org.slf4j.Logger;
|
||||||
import org.slf4j.LoggerFactory;
|
import org.slf4j.LoggerFactory;
|
||||||
import org.springframework.beans.factory.annotation.Autowired;
|
import org.springframework.beans.factory.annotation.Autowired;
|
||||||
|
|
||||||
import java.util.ArrayList;
|
import java.math.BigDecimal;
|
||||||
import java.util.List;
|
import java.math.RoundingMode;
|
||||||
import java.util.Map;
|
import java.util.*;
|
||||||
import java.util.stream.Collectors;
|
import java.util.stream.Collectors;
|
||||||
|
|
||||||
|
|
||||||
|
@ -44,6 +46,11 @@ import java.util.stream.Collectors;
|
||||||
*/
|
*/
|
||||||
public class Export extends BaseExport {
|
public class Export extends BaseExport {
|
||||||
|
|
||||||
|
public Export(){
|
||||||
|
super();
|
||||||
|
initHhNameMap();
|
||||||
|
}
|
||||||
|
|
||||||
private Logger logger = LoggerFactory.getLogger(this.getClass());
|
private Logger logger = LoggerFactory.getLogger(this.getClass());
|
||||||
|
|
||||||
//由于前面调用使用的是new,所以只能手动注入bean
|
//由于前面调用使用的是new,所以只能手动注入bean
|
||||||
|
@ -72,6 +79,112 @@ public class Export extends BaseExport {
|
||||||
// return sysDictService.queryDictItemsByCode(dictCode);
|
// return sysDictService.queryDictItemsByCode(dictCode);
|
||||||
// }
|
// }
|
||||||
|
|
||||||
|
//数量÷总数×100
|
||||||
|
public BigDecimal getPercentage(BigDecimal zc, BigDecimal yc){
|
||||||
|
BigDecimal all = zc.add(yc);
|
||||||
|
return zc.divide(all, 2, RoundingMode.HALF_UP).multiply(new BigDecimal("100"));
|
||||||
|
}
|
||||||
|
|
||||||
|
//数量÷总数×100
|
||||||
|
public BigDecimal getPercentageByAll(BigDecimal yc, BigDecimal all){
|
||||||
|
if(yc.compareTo(new BigDecimal(0)) == 0){
|
||||||
|
return new BigDecimal("0");
|
||||||
|
}
|
||||||
|
if(all.compareTo(new BigDecimal(0)) == 0){
|
||||||
|
return new BigDecimal("0");
|
||||||
|
}
|
||||||
|
return yc.divide(all, 2, RoundingMode.HALF_UP).multiply(new BigDecimal("100"));
|
||||||
|
}
|
||||||
|
|
||||||
|
public Integer isNull(Integer num){
|
||||||
|
if(num == null) return 0;
|
||||||
|
return num;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
@Data
|
||||||
|
public class TwoListClass {
|
||||||
|
private String jxl;//教学楼
|
||||||
|
private String jsmc;//教室名称
|
||||||
|
private Integer kfkts = 0;//开放课堂数
|
||||||
|
//private Float zcktl;//正常课堂率
|
||||||
|
private Integer zckts = 0;//正常课堂数
|
||||||
|
private Integer yckts = 0;//异常课堂数
|
||||||
|
private String ycqksm;//异常情况说明
|
||||||
|
|
||||||
|
private List<String> ycHhList = Lists.newArrayList();//异常节次
|
||||||
|
private List<String> ycKcmcList = Lists.newArrayList();//异常课程名称
|
||||||
|
|
||||||
|
private List<Integer> jccsList = Lists.newArrayList();//监测次数
|
||||||
|
private List<Integer> yccsList = Lists.newArrayList();//异常次数
|
||||||
|
private List<Integer> yclList = Lists.newArrayList();//异常率
|
||||||
|
|
||||||
|
public void addKfkts(Integer num){
|
||||||
|
if(this.kfkts == null) this.kfkts = 0;
|
||||||
|
if(num == null) return;
|
||||||
|
this.kfkts += num;
|
||||||
|
}
|
||||||
|
public void addZckts(Integer num){
|
||||||
|
if(this.zckts == null) this.zckts = 0;
|
||||||
|
if(num == null) return;
|
||||||
|
this.zckts += num;
|
||||||
|
}
|
||||||
|
public void addYckts(Integer num){
|
||||||
|
if(this.yckts == null) this.yckts = 0;
|
||||||
|
if(num == null) return;
|
||||||
|
this.yckts += num;
|
||||||
|
}
|
||||||
|
|
||||||
|
public BigDecimal getZcktl(){
|
||||||
|
if(yckts != 0){
|
||||||
|
return getPercentage(new BigDecimal(zckts),new BigDecimal(yckts));
|
||||||
|
}else {
|
||||||
|
return new BigDecimal("100");
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
@Data
|
||||||
|
public class OneListClass {
|
||||||
|
private String jxlName;//教学楼名称
|
||||||
|
private String hhName;//节次名称
|
||||||
|
private Integer kfnum = 0;//开放数
|
||||||
|
private Integer zcnum = 0;//正常
|
||||||
|
private Integer ycnum = 0;//异常
|
||||||
|
|
||||||
|
public void addKfnum(Integer num){
|
||||||
|
if(this.kfnum == null) this.kfnum = 0;
|
||||||
|
if(num == null) return;
|
||||||
|
this.kfnum += num;
|
||||||
|
}
|
||||||
|
public void addZcnum(Integer num){
|
||||||
|
if(this.zcnum == null) this.zcnum = 0;
|
||||||
|
if(num == null) return;
|
||||||
|
this.zcnum += num;
|
||||||
|
}
|
||||||
|
public void addYcnum(Integer num){
|
||||||
|
if(this.ycnum == null) this.ycnum = 0;
|
||||||
|
if(num == null) return;
|
||||||
|
this.ycnum += num;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
public Map<String, String> hhNameMap = Maps.newHashMap();
|
||||||
|
|
||||||
|
public void initHhNameMap(){
|
||||||
|
hhNameMap.put("01、02","第一大节");
|
||||||
|
hhNameMap.put("03、04","第二大节");
|
||||||
|
hhNameMap.put("05、06","第三大节");
|
||||||
|
hhNameMap.put("07、08","第四大节");
|
||||||
|
hhNameMap.put("09、10","第五大节");
|
||||||
|
hhNameMap.put("11、12","第六大节");
|
||||||
|
}
|
||||||
|
|
||||||
|
public String getHhName(String key){
|
||||||
|
String value = hhNameMap.get(key);
|
||||||
|
return StringUtils.defaultString(value,"");
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
*
|
*
|
||||||
* 功能说明 : 拼接word导出
|
* 功能说明 : 拼接word导出
|
||||||
|
@ -88,30 +201,319 @@ public class Export extends BaseExport {
|
||||||
//********************************@A.单个内容替换***************************************************/
|
//********************************@A.单个内容替换***************************************************/
|
||||||
//********************************取数据***********************************************************/
|
//********************************取数据***********************************************************/
|
||||||
Map<String, Object> result = Maps.newHashMap();
|
Map<String, Object> result = Maps.newHashMap();
|
||||||
|
//查询日志
|
||||||
|
QueryWrapper<KcZhihuijiaoshiMonitorLog> mainQw = new QueryWrapper<>();
|
||||||
|
mainQw.isNotNull("kt_id");
|
||||||
|
mainQw.ge(StringUtils.isNotBlank(kcZhihuijiaoshiMonitorLog.getStartTime()),"create_time",kcZhihuijiaoshiMonitorLog.getStartTime());
|
||||||
|
mainQw.le(StringUtils.isNotBlank(kcZhihuijiaoshiMonitorLog.getEndTime()),"create_time",kcZhihuijiaoshiMonitorLog.getEndTime());
|
||||||
|
if(StringUtils.isNotBlank(kcZhihuijiaoshiMonitorLog.getJxlName())){
|
||||||
|
mainQw.in("jxl_name", Arrays.asList(StringUtils.split(kcZhihuijiaoshiMonitorLog.getJxlName(),",")));
|
||||||
|
}
|
||||||
|
List<KcZhihuijiaoshiMonitorLog> mainLogList = kcZhihuijiaoshiMonitorLogService.list(mainQw);
|
||||||
|
if(mainLogList.isEmpty()){
|
||||||
|
String today= DateUtil.today();
|
||||||
|
result.put("监测时间", today);
|
||||||
|
result.put("监测教学楼", kcZhihuijiaoshiMonitorLog.getJxlName());
|
||||||
|
result.put("教学楼数", "0");
|
||||||
|
result.put("教室数", "0");
|
||||||
|
result.put("大节数", "0");
|
||||||
|
result.put("运行正常课堂", "0");
|
||||||
|
result.put("运行异常课堂", "0");
|
||||||
|
result.put("正常率", "0");
|
||||||
|
wo.replaceTextPlus(result);
|
||||||
|
wo.insert2Table(0, 2, true, Lists.newArrayList());
|
||||||
|
wo.insert2Table(1, 1, true, Lists.newArrayList());
|
||||||
|
}
|
||||||
|
//折腾数据
|
||||||
|
int jxls = 0;
|
||||||
|
int jss = 0;
|
||||||
|
int djs = 0;
|
||||||
|
int zckts = 0;
|
||||||
|
int yckts = 0;
|
||||||
|
BigDecimal zcl = new BigDecimal(100);
|
||||||
|
|
||||||
|
Set<String> jxlsSet = Sets.newHashSet();
|
||||||
|
Set<String> jssSet = Sets.newHashSet();
|
||||||
|
Set<String> djsSet = Sets.newHashSet();
|
||||||
|
// Set<String> zcktsSet = Sets.newHashSet();
|
||||||
|
// Set<String> ycktsSet = Sets.newHashSet();
|
||||||
|
//Set<String> zclSet = Sets.newHashSet();
|
||||||
|
|
||||||
|
Map<String,OneListClass> oneListMap = Maps.newHashMap();
|
||||||
|
Map<String,TwoListClass> twoListMap = Maps.newHashMap();
|
||||||
|
|
||||||
|
for(KcZhihuijiaoshiMonitorLog monitorLog: mainLogList){
|
||||||
|
//基础数据
|
||||||
|
jxlsSet.add(monitorLog.getJxlName());
|
||||||
|
jssSet.add(monitorLog.getJsmc());
|
||||||
|
djsSet.add(monitorLog.getHh());
|
||||||
|
if(monitorLog.getLogType() != null && monitorLog.getLogType() == 1){
|
||||||
|
//zcktsSet.add();//日志类型(1:播放正常 | 2:播放失败,拉起成功 | 3:播放失败,拉起失败)
|
||||||
|
zckts++;
|
||||||
|
}else{
|
||||||
|
yckts++;
|
||||||
|
}
|
||||||
|
|
||||||
|
//第一个
|
||||||
|
if(oneListMap.containsKey(monitorLog.getJxlName() + "-" + monitorLog.getHh())){
|
||||||
|
OneListClass o = oneListMap.get(monitorLog.getJxlName() + "-" + monitorLog.getHh());
|
||||||
|
o.addKfnum(1);
|
||||||
|
if(monitorLog.getLogType() != null && monitorLog.getLogType() == 1){
|
||||||
|
o.addZcnum(1);
|
||||||
|
}else{
|
||||||
|
o.addYcnum(1);
|
||||||
|
}
|
||||||
|
}else{
|
||||||
|
OneListClass o = new OneListClass();
|
||||||
|
o.setJxlName(monitorLog.getJxlName());
|
||||||
|
o.setHhName(getHhName(monitorLog.getHh()));
|
||||||
|
o.setKfnum(1);
|
||||||
|
if(monitorLog.getLogType() != null && monitorLog.getLogType() == 1){
|
||||||
|
o.setZcnum(1);
|
||||||
|
}else{
|
||||||
|
o.setYcnum(1);
|
||||||
|
}
|
||||||
|
oneListMap.put(monitorLog.getJxlName() + "-" + monitorLog.getHh(),o);
|
||||||
|
}
|
||||||
|
|
||||||
|
//教学楼 教室名称 开放课堂数 正常课堂率 正常课堂数 异常课堂数 异常情况说明
|
||||||
|
//第二集
|
||||||
|
if(twoListMap.containsKey(monitorLog.getJxlName() + monitorLog.getJsmc())){
|
||||||
|
//存在,累计数
|
||||||
|
TwoListClass o = twoListMap.get(monitorLog.getJxlName() + monitorLog.getJsmc());
|
||||||
|
o.addKfkts(1);
|
||||||
|
if(monitorLog.getLogType() != null && monitorLog.getLogType() == 1){
|
||||||
|
o.addZckts(1);
|
||||||
|
}else{
|
||||||
|
o.addYckts(1);
|
||||||
|
|
||||||
|
// String sm = "1.异常节次:"+getHhName(monitorLog.getHh())+" 异常课程:"+monitorLog.getKtName()+" 监测次数:"+" 异常次数:"+" 异常率:"+"";//1.异常节次: 异常课程: 监测次数: 异常次数: 异常率:
|
||||||
|
// o.setYcqksm(sm);
|
||||||
|
o.getYcHhList().add(getHhName(monitorLog.getHh()));
|
||||||
|
o.getYcKcmcList().add(monitorLog.getKtName());//异常课程名称
|
||||||
|
o.getJccsList().add(1);//监测次数
|
||||||
|
o.getYccsList().add(1);//异常次数
|
||||||
|
// o.getYclList().add();//异常率
|
||||||
|
|
||||||
|
}
|
||||||
|
}else{
|
||||||
|
TwoListClass o = new TwoListClass();
|
||||||
|
o.setJxl(monitorLog.getJxlName());
|
||||||
|
o.setJsmc(monitorLog.getJsmc());
|
||||||
|
o.setKfkts(1);
|
||||||
|
// o.setZcktl(0);
|
||||||
|
o.setZckts(0);
|
||||||
|
o.setYckts(0);
|
||||||
|
//zcktl;//正常课堂率
|
||||||
|
if(monitorLog.getLogType() != null && monitorLog.getLogType() == 1){
|
||||||
|
o.setZckts(1);//正常课堂数
|
||||||
|
}else{
|
||||||
|
o.setYckts(1);//异常课堂数
|
||||||
|
//ycqksm;//异常情况说明
|
||||||
|
}
|
||||||
|
twoListMap.put(monitorLog.getJxlName() + monitorLog.getJsmc(),o);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
jxls = jxlsSet.size();
|
||||||
|
jss = jssSet.size();
|
||||||
|
djs = djsSet.size();
|
||||||
|
|
||||||
|
if(yckts != 0){
|
||||||
|
zcl = getPercentage(new BigDecimal(zckts),new BigDecimal((yckts)));
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
//********************************取数据END*********************************************************/
|
//********************************取数据END*********************************************************/
|
||||||
//********************************通用*************************************************************/
|
//********************************通用*************************************************************/
|
||||||
String today= DateUtil.today();
|
String today= DateUtil.today();
|
||||||
result.put("监测时间", today);//学院名称
|
result.put("监测时间", today);
|
||||||
// result.put("监测教学楼",xqxnParam);//学期学年
|
result.put("监测教学楼", kcZhihuijiaoshiMonitorLog.getJxlName());
|
||||||
|
result.put("教学楼数", String.valueOf(jxls));
|
||||||
|
result.put("教室数", String.valueOf(jss));
|
||||||
|
result.put("大节数", String.valueOf(djs));
|
||||||
|
result.put("运行正常课堂", String.valueOf(zckts));
|
||||||
|
result.put("运行异常课堂", String.valueOf(yckts));
|
||||||
|
result.put("正常率", String.valueOf(zcl.floatValue()));
|
||||||
|
|
||||||
//********************************表头END**********************************************************/
|
//********************************表头END**********************************************************/
|
||||||
wo.replaceTextPlus(result);
|
wo.replaceTextPlus(result);
|
||||||
//********************************@A.单个内容替换END**************************************************/
|
//********************************@A.单个内容替换END**************************************************/
|
||||||
final int[] index = { 2 };
|
// final int[] index = { 2 };
|
||||||
List<List<String>> mainList = Lists.newArrayList();
|
List<List<String>> mainList = Lists.newArrayList();
|
||||||
|
|
||||||
|
Map<String,Map<String,OneListClass>> oneListMapMap = Maps.newHashMap();
|
||||||
|
|
||||||
|
for (String key: oneListMap.keySet()){
|
||||||
|
OneListClass o = oneListMap.get(key);
|
||||||
|
if(oneListMapMap.containsKey(o.getJxlName())){
|
||||||
|
Map<String,OneListClass> m = oneListMapMap.get(o.getJxlName());
|
||||||
|
m.put(o.getHhName(),o);
|
||||||
|
}else{
|
||||||
|
Map<String,OneListClass> m = Maps.newHashMap();
|
||||||
|
m.put(o.getHhName(),o);
|
||||||
|
oneListMapMap.put(o.getJxlName(),m);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
for (String key: oneListMapMap.keySet()){
|
||||||
|
Map<String,OneListClass> m = oneListMapMap.get(key);
|
||||||
|
OneListClass all = new OneListClass();
|
||||||
|
OneListClass one = new OneListClass();
|
||||||
|
OneListClass two = new OneListClass();
|
||||||
|
OneListClass three = new OneListClass();
|
||||||
|
OneListClass four = new OneListClass();
|
||||||
|
OneListClass five = new OneListClass();
|
||||||
|
OneListClass six = new OneListClass();
|
||||||
|
|
||||||
|
for (String mkey: m.keySet()){
|
||||||
|
OneListClass o = m.get(mkey);
|
||||||
|
switch (o.getHhName()){
|
||||||
|
case "第一大节": {
|
||||||
|
all.setJxlName(o.getJxlName());
|
||||||
|
all.addKfnum(o.getKfnum());
|
||||||
|
all.addZcnum(o.getZcnum());
|
||||||
|
all.addYcnum(o.getYcnum());
|
||||||
|
one.setKfnum(isNull(o.getKfnum()));
|
||||||
|
one.setZcnum(isNull(o.getZcnum()));
|
||||||
|
one.setYcnum(isNull(o.getYcnum()));
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
case "第二大节": {
|
||||||
|
all.setJxlName(o.getJxlName());
|
||||||
|
all.addKfnum(o.getKfnum());
|
||||||
|
all.addZcnum(o.getZcnum());
|
||||||
|
all.addYcnum(o.getYcnum());
|
||||||
|
two.setKfnum(isNull(o.getKfnum()));
|
||||||
|
two.setZcnum(isNull(o.getZcnum()));
|
||||||
|
two.setYcnum(isNull(o.getYcnum()));
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
case "第三大节": {
|
||||||
|
all.setJxlName(o.getJxlName());
|
||||||
|
all.addKfnum(o.getKfnum());
|
||||||
|
all.addZcnum(o.getZcnum());
|
||||||
|
all.addYcnum(o.getYcnum());
|
||||||
|
three.setKfnum(isNull(o.getKfnum()));
|
||||||
|
three.setZcnum(isNull(o.getZcnum()));
|
||||||
|
three.setYcnum(isNull(o.getYcnum()));
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
case "第四大节": {
|
||||||
|
all.setJxlName(o.getJxlName());
|
||||||
|
all.addKfnum(o.getKfnum());
|
||||||
|
all.addZcnum(o.getZcnum());
|
||||||
|
all.addYcnum(o.getYcnum());
|
||||||
|
four.setKfnum(isNull(o.getKfnum()));
|
||||||
|
four.setZcnum(isNull(o.getZcnum()));
|
||||||
|
four.setYcnum(isNull(o.getYcnum()));
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
case "第五大节": {
|
||||||
|
all.setJxlName(o.getJxlName());
|
||||||
|
all.addKfnum(o.getKfnum());
|
||||||
|
all.addZcnum(o.getZcnum());
|
||||||
|
all.addYcnum(o.getYcnum());
|
||||||
|
five.setKfnum(isNull(o.getKfnum()));
|
||||||
|
five.setZcnum(isNull(o.getZcnum()));
|
||||||
|
five.setYcnum(isNull(o.getYcnum()));
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
case "第六大节": {
|
||||||
|
all.setJxlName(o.getJxlName());
|
||||||
|
all.addKfnum(o.getKfnum());
|
||||||
|
all.addZcnum(o.getZcnum());
|
||||||
|
all.addYcnum(o.getYcnum());
|
||||||
|
six.setKfnum(isNull(o.getKfnum()));
|
||||||
|
six.setZcnum(isNull(o.getZcnum()));
|
||||||
|
six.setYcnum(isNull(o.getYcnum()));
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
List<String> list = Lists.newArrayList();
|
List<String> list = Lists.newArrayList();
|
||||||
list.add("楼1");
|
list.add(all.getJxlName());
|
||||||
list.add("11");
|
if(all.getYcnum() != 0){
|
||||||
list.add("22");
|
BigDecimal num = getPercentage(new BigDecimal(all.getZcnum()), new BigDecimal(all.getYcnum()));
|
||||||
|
list.add(num.toString());
|
||||||
|
}else{
|
||||||
|
list.add("100");
|
||||||
|
}
|
||||||
|
list.add(String.valueOf(all.getKfnum()));
|
||||||
|
list.add(String.valueOf(all.getZcnum()));
|
||||||
|
list.add(String.valueOf(all.getYcnum()));
|
||||||
|
|
||||||
|
list.add(String.valueOf(one.getZcnum()));
|
||||||
|
list.add(String.valueOf(one.getYcnum()));
|
||||||
|
|
||||||
|
list.add(String.valueOf(two.getZcnum()));
|
||||||
|
list.add(String.valueOf(two.getYcnum()));
|
||||||
|
|
||||||
|
list.add(String.valueOf(three.getZcnum()));
|
||||||
|
list.add(String.valueOf(three.getYcnum()));
|
||||||
|
|
||||||
|
list.add(String.valueOf(four.getZcnum()));
|
||||||
|
list.add(String.valueOf(four.getYcnum()));
|
||||||
|
|
||||||
|
list.add(String.valueOf(five.getZcnum()));
|
||||||
|
list.add(String.valueOf(five.getYcnum()));
|
||||||
|
|
||||||
|
list.add(String.valueOf(six.getZcnum()));
|
||||||
|
list.add(String.valueOf(six.getYcnum()));
|
||||||
mainList.add(list);
|
mainList.add(list);
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
wo.insert2Table(0, 2, true, mainList);
|
||||||
|
// index[0] += mainList.size() + 2;
|
||||||
|
mainList.clear();
|
||||||
|
|
||||||
|
|
||||||
|
for (String key: twoListMap.keySet()){
|
||||||
|
TwoListClass o = twoListMap.get(key);
|
||||||
|
List<String> list = Lists.newArrayList();
|
||||||
|
//教学楼 教室名称 开放课堂数 正常课堂率 正常课堂数 异常课堂数 异常情况说明
|
||||||
|
list.add(o.getJxl());
|
||||||
|
list.add(o.getJsmc());
|
||||||
|
list.add(StringUtils.defaultString(String.valueOf(o.getKfkts()),"0"));
|
||||||
|
list.add(StringUtils.defaultString(String.valueOf(o.getZcktl().toString()),"0"));
|
||||||
|
list.add(StringUtils.defaultString(String.valueOf(o.getZckts()),"0"));
|
||||||
|
list.add(StringUtils.defaultString(String.valueOf(o.getYckts()),"0"));
|
||||||
|
//1.异常节次: 异常课程: 监测次数: 异常次数: 异常率:
|
||||||
|
Integer jccs = 0;
|
||||||
|
|
||||||
|
for (Integer x: o.getJccsList()){
|
||||||
|
if(x == null) x = 0;
|
||||||
|
jccs += x;
|
||||||
|
}
|
||||||
|
Integer yccs = 0;
|
||||||
|
// for (Integer x: o.getYccsList()){
|
||||||
|
// if(x == null) x = 0;
|
||||||
|
// yccs += x;
|
||||||
|
// }
|
||||||
|
yccs = o.getYckts();
|
||||||
|
String ycl = getPercentageByAll(new BigDecimal(yccs),new BigDecimal(o.getKfkts())).toString();
|
||||||
|
|
||||||
|
String sm = "1.异常节次:"+ArrayUtil.join(o.getYcHhList().toArray(new String[]{}),",")+" 异常课程:"+ArrayUtil.join(o.getYcKcmcList().toArray(new String[]{}),",")+" 监测次数:"+jccs+" 异常次数:"+yccs+" 异常率:"+ycl;
|
||||||
|
//list.add(o.getYcqksm());
|
||||||
|
list.add(sm);
|
||||||
|
mainList.add(list);
|
||||||
|
}
|
||||||
|
|
||||||
|
// List<String> list = Lists.newArrayList();
|
||||||
|
// list.add("楼1");
|
||||||
|
// list.add("11");
|
||||||
|
// list.add("22");
|
||||||
|
// mainList.add(list);
|
||||||
|
|
||||||
//WordOperator.fillNullCall(mainList,mainList);
|
//WordOperator.fillNullCall(mainList,mainList);
|
||||||
//从固定位置开始添加(1为第二个表格,第二个1为固定位置)
|
//从固定位置开始添加(1为第二个表格,第二个1为固定位置)
|
||||||
wo.insert2Table(0, index[0], true, mainList);
|
// wo.insert2Table(0, index[0], true, mainList);
|
||||||
index[0] += mainList.size() + 2;
|
wo.insert2Table(1, 1, true, mainList);
|
||||||
|
// index[0] += mainList.size() + 2;
|
||||||
mainList.clear();
|
mainList.clear();
|
||||||
|
|
||||||
|
|
||||||
|
//第二列表 最后一行拼接 1.异常节次: 异常课程: 监测次数: 异常次数: 异常率
|
||||||
return wo;
|
return wo;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -2,7 +2,7 @@
|
||||||
一、总体情况
|
一、总体情况
|
||||||
监测时间:{监测时间}
|
监测时间:{监测时间}
|
||||||
监测教学楼:{监测教学楼}
|
监测教学楼:{监测教学楼}
|
||||||
在监测时间段内,开课前15分钟开始,每间隔15分钟对线上开放课堂进行直播状态监测。本监测时间段内共{教学楼数}个教学楼{教室数}间教室提供线上开放课堂{}大节,运行正常课堂{运行正常课堂}大节,{运行异常课堂}大节课堂监测异常,线上开放课堂运行正常率为{正常率}%。
|
在监测时间段内,开课前15分钟开始,每间隔15分钟对线上开放课堂进行直播状态监测。本监测时间段内共{教学楼数}个教学楼{教室数}间教室提供线上开放课堂{大节数}大节,运行正常课堂{运行正常课堂}大节,{运行异常课堂}大节课堂监测异常,线上开放课堂运行正常率为{正常率}%。
|
||||||
线上开放课堂运行情况一览表
|
线上开放课堂运行情况一览表
|
||||||
教学楼
|
教学楼
|
||||||
合计
|
合计
|
||||||
|
@ -46,23 +46,6 @@ Z
|
||||||
Z
|
Z
|
||||||
Z
|
Z
|
||||||
Z
|
Z
|
||||||
合计
|
|
||||||
{}
|
|
||||||
{}
|
|
||||||
{}
|
|
||||||
{}
|
|
||||||
{}
|
|
||||||
{}
|
|
||||||
{}
|
|
||||||
{}
|
|
||||||
{}
|
|
||||||
{}
|
|
||||||
{}
|
|
||||||
{}
|
|
||||||
{}
|
|
||||||
{}
|
|
||||||
{}
|
|
||||||
{}
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
@ -80,7 +63,5 @@ Z
|
||||||
z
|
z
|
||||||
z
|
z
|
||||||
z
|
z
|
||||||
1.异常节次: 异常课程: 监测次数: 异常次数: 异常率
|
z
|
||||||
|
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue