2023年11月14日 修改导出
This commit is contained in:
parent
a2484cfedf
commit
3e69f49ab6
|
@ -1,6 +1,5 @@
|
|||
package org.jeecg.modules.kc.jiaoshi.export;
|
||||
|
||||
import cn.hutool.core.date.DateUtil;
|
||||
import cn.hutool.core.util.ArrayUtil;
|
||||
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
|
||||
import com.beust.jcommander.internal.Sets;
|
||||
|
@ -8,30 +7,22 @@ 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.math.BigDecimal;
|
||||
import java.math.RoundingMode;
|
||||
import java.util.*;
|
||||
import java.text.DecimalFormat;
|
||||
import java.util.Arrays;
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
import java.util.Set;
|
||||
import java.util.stream.Collectors;
|
||||
|
||||
|
||||
|
@ -78,9 +69,56 @@ public class Export extends BaseExport {
|
|||
// public List<DictModel> getDictList(String dictCode){
|
||||
// return sysDictService.queryDictItemsByCode(dictCode);
|
||||
// }
|
||||
//不保留小数
|
||||
DecimalFormat dfz = new DecimalFormat("0");
|
||||
|
||||
/**
|
||||
* 转换为 ***
|
||||
* @param num 数字
|
||||
* @return 字符型的***数字
|
||||
*/
|
||||
public String dfzf(String num){
|
||||
return dfzf(new BigDecimal(num));
|
||||
}
|
||||
|
||||
/**
|
||||
* 转换为 ***
|
||||
* @param num 数字
|
||||
* @return 字符型的***数字
|
||||
*/
|
||||
public String dfzf(BigDecimal num){
|
||||
return dfz.format(num);
|
||||
}
|
||||
|
||||
//保留两位小数
|
||||
public static DecimalFormat dfzdzz = new DecimalFormat("0.00");
|
||||
|
||||
/**
|
||||
* 转换为 ***.**
|
||||
* @param num 数字
|
||||
* @return 字符型的***.**数字
|
||||
*/
|
||||
public String dfzdzzf(String num){
|
||||
return dfzdzz.format(new BigDecimal(num));
|
||||
}
|
||||
|
||||
/**
|
||||
* 转换为 ***.**
|
||||
* @param num 数字
|
||||
* @return 字符型的***.**数字
|
||||
*/
|
||||
public String dfzdzzf(BigDecimal num){
|
||||
return dfzdzz.format(num);
|
||||
}
|
||||
|
||||
//数量÷总数×100
|
||||
public BigDecimal getPercentage(BigDecimal zc, BigDecimal yc){
|
||||
if(zc.compareTo(new BigDecimal(0)) == 0){
|
||||
return new BigDecimal("0");
|
||||
}
|
||||
if(yc.compareTo(new BigDecimal(0)) == 0){
|
||||
return new BigDecimal("0");
|
||||
}
|
||||
BigDecimal all = zc.add(yc);
|
||||
return zc.divide(all, 2, RoundingMode.HALF_UP).multiply(new BigDecimal("100"));
|
||||
}
|
||||
|
@ -100,6 +138,27 @@ public class Export extends BaseExport {
|
|||
if(num == null) return 0;
|
||||
return num;
|
||||
}
|
||||
@Data
|
||||
public class TwoYcListClass {
|
||||
private String ycHh;//异常节次
|
||||
private String ycKcmc;//异常课程名称
|
||||
private String ycDate;//异常时间
|
||||
|
||||
private Integer jccs;//监测次数
|
||||
private Integer yccs;//异常次数
|
||||
|
||||
public void addJccs(Integer num){
|
||||
if(this.jccs == null) this.jccs = 0;
|
||||
if(num == null) return;
|
||||
this.jccs += num;
|
||||
}
|
||||
public void addYccs(Integer num){
|
||||
if(this.yccs == null) this.yccs = 0;
|
||||
if(num == null) return;
|
||||
this.yccs += num;
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
|
||||
@Data
|
||||
|
@ -112,13 +171,14 @@ public class Export extends BaseExport {
|
|||
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();//异常率
|
||||
private Map<String,TwoYcListClass> ycMap = Maps.newLinkedHashMap();
|
||||
|
||||
// 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;
|
||||
|
@ -204,7 +264,7 @@ public class Export extends BaseExport {
|
|||
//查询日志
|
||||
QueryWrapper<KcZhihuijiaoshiMonitorLog> mainQw = new QueryWrapper<>();
|
||||
mainQw.isNotNull("kt_id");
|
||||
mainQw.ge(StringUtils.isNotBlank(kcZhihuijiaoshiMonitorLog.getStartTime()),"create_time",kcZhihuijiaoshiMonitorLog.getStartTime());
|
||||
mainQw.ge(StringUtils.isNotBlank(kcZhihuijiaoshiMonitorLog.getStartTime()),"create_time",kcZhihuijiaoshiMonitorLog.getStartTime() + " 07:02:00");
|
||||
mainQw.le(StringUtils.isNotBlank(kcZhihuijiaoshiMonitorLog.getEndTime()),"create_time",kcZhihuijiaoshiMonitorLog.getEndTime() + " 23:59:59");
|
||||
if(StringUtils.isNotBlank(kcZhihuijiaoshiMonitorLog.getJxlName())){
|
||||
mainQw.in("jxl_name", Arrays.asList(StringUtils.split(kcZhihuijiaoshiMonitorLog.getJxlName(),",")));
|
||||
|
@ -212,7 +272,7 @@ public class Export extends BaseExport {
|
|||
List<KcZhihuijiaoshiMonitorLog> mainLogList = kcZhihuijiaoshiMonitorLogService.list(mainQw);
|
||||
if(mainLogList.isEmpty()){
|
||||
// String today= DateUtil.today();
|
||||
result.put("监测时间", kcZhihuijiaoshiMonitorLog.getStartTime() + "-" + kcZhihuijiaoshiMonitorLog.getEndTime());
|
||||
result.put("监测时间", kcZhihuijiaoshiMonitorLog.getStartTime() + " - " + kcZhihuijiaoshiMonitorLog.getEndTime());
|
||||
result.put("监测教学楼", kcZhihuijiaoshiMonitorLog.getJxlName());
|
||||
result.put("教学楼数", "0");
|
||||
result.put("教室数", "0");
|
||||
|
@ -224,6 +284,22 @@ public class Export extends BaseExport {
|
|||
wo.insert2Table(0, 2, true, Lists.newArrayList());
|
||||
wo.insert2Table(1, 1, true, Lists.newArrayList());
|
||||
}
|
||||
//01 聚合数据,
|
||||
Map<String, KcZhihuijiaoshiMonitorLog> mainLogMap = Maps.newHashMap();
|
||||
for(KcZhihuijiaoshiMonitorLog mainLog: mainLogList){
|
||||
String day = formatDate(mainLog.getCreateTime(), "yyyy-MM-dd");
|
||||
String key = day + "-" + mainLog.getHh() + "-" + mainLog.getKtId();
|
||||
if(mainLogMap.containsKey(key)){
|
||||
//KcZhihuijiaoshiMonitorLog mmainLog = mainLogMap.get(key);
|
||||
if(mainLog.getLogType() == null || mainLog.getLogType() != 1){
|
||||
//失败的,瞬间污染全局
|
||||
mainLogMap.put(key,mainLog);
|
||||
}
|
||||
}else{
|
||||
mainLogMap.put(key,mainLog);
|
||||
}
|
||||
}
|
||||
|
||||
//折腾数据
|
||||
int jxls = 0;
|
||||
int jss = 0;
|
||||
|
@ -242,7 +318,7 @@ public class Export extends BaseExport {
|
|||
Map<String,OneListClass> oneListMap = Maps.newHashMap();
|
||||
Map<String,TwoListClass> twoListMap = Maps.newHashMap();
|
||||
|
||||
for(KcZhihuijiaoshiMonitorLog monitorLog: mainLogList){
|
||||
for(KcZhihuijiaoshiMonitorLog monitorLog: mainLogMap.values()){
|
||||
//基础数据
|
||||
jxlsSet.add(monitorLog.getJxlName());
|
||||
jssSet.add(monitorLog.getJsmc());
|
||||
|
@ -275,27 +351,46 @@ public class Export extends BaseExport {
|
|||
}
|
||||
oneListMap.put(monitorLog.getJxlName() + "-" + monitorLog.getHh(),o);
|
||||
}
|
||||
}
|
||||
|
||||
for(KcZhihuijiaoshiMonitorLog monitorLog: mainLogList){
|
||||
|
||||
//教学楼 教室名称 开放课堂数 正常课堂率 正常课堂数 异常课堂数 异常情况说明
|
||||
//第二集
|
||||
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);//异常次数
|
||||
String key = monitorLog.getJxlName() + monitorLog.getJsmc() + monitorLog.getHh() + monitorLog.getKtId();
|
||||
Map<String, TwoYcListClass> twoYcListClassMap = o.getYcMap();
|
||||
if(twoYcListClassMap.containsKey(key)){
|
||||
TwoYcListClass twoYcListClass = twoYcListClassMap.get(key);
|
||||
//累计次数
|
||||
twoYcListClass.addJccs(1);
|
||||
if(monitorLog.getLogType() == null || monitorLog.getLogType() != 1){
|
||||
//累加失败次数
|
||||
twoYcListClass.addYccs(1);
|
||||
}
|
||||
}else {
|
||||
TwoYcListClass twoYcListClass = new TwoYcListClass();
|
||||
twoYcListClass.setYcHh(getHhName(monitorLog.getHh()));//异常节次
|
||||
twoYcListClass.setYcKcmc(monitorLog.getKtName());//异常课程名称
|
||||
twoYcListClass.setYcDate(formatDate(monitorLog.getCreateTime(), "yyyy-MM-dd"));
|
||||
twoYcListClass.setJccs(1);//累计次数
|
||||
if(monitorLog.getLogType() != null && monitorLog.getLogType() == 1){
|
||||
twoYcListClass.setYccs(0);//异常次数
|
||||
}else{
|
||||
twoYcListClass.setYccs(1);//异常次数
|
||||
}
|
||||
// o.getYclList().add();//异常率
|
||||
|
||||
twoYcListClassMap.put(key,twoYcListClass);
|
||||
}
|
||||
if(monitorLog.getLogType() != null && monitorLog.getLogType() == 1){
|
||||
o.addZckts(1);//正常课堂数
|
||||
}else{
|
||||
o.addYckts(1);//异常课堂数
|
||||
//ycqksm;//异常情况说明
|
||||
}
|
||||
o.addKfkts(1);
|
||||
}else{
|
||||
TwoListClass o = new TwoListClass();
|
||||
o.setJxl(monitorLog.getJxlName());
|
||||
|
@ -304,6 +399,31 @@ public class Export extends BaseExport {
|
|||
// o.setZcktl(0);
|
||||
o.setZckts(0);
|
||||
o.setYckts(0);
|
||||
|
||||
|
||||
String key = monitorLog.getJxlName() + monitorLog.getJsmc() + monitorLog.getHh() + monitorLog.getKtId();
|
||||
Map<String, TwoYcListClass> twoYcListClassMap = o.getYcMap();
|
||||
if(twoYcListClassMap.containsKey(key)){
|
||||
TwoYcListClass twoYcListClass = twoYcListClassMap.get(key);
|
||||
//累计次数
|
||||
twoYcListClass.addJccs(1);
|
||||
if(monitorLog.getLogType() == null || monitorLog.getLogType() != 1){
|
||||
//累加失败次数
|
||||
twoYcListClass.addYccs(1);
|
||||
}
|
||||
}else {
|
||||
TwoYcListClass twoYcListClass = new TwoYcListClass();
|
||||
twoYcListClass.setYcHh(getHhName(monitorLog.getHh()));//异常节次
|
||||
twoYcListClass.setYcKcmc(monitorLog.getKtName());//异常课程名称
|
||||
twoYcListClass.setYcDate(formatDate(monitorLog.getCreateTime(), "yyyy-MM-dd"));
|
||||
twoYcListClass.setJccs(1);//累计次数
|
||||
if(monitorLog.getLogType() != null && monitorLog.getLogType() == 1){
|
||||
twoYcListClass.setYccs(0);//异常次数
|
||||
}else{
|
||||
twoYcListClass.setYccs(1);//异常次数
|
||||
}
|
||||
twoYcListClassMap.put(key,twoYcListClass);
|
||||
}
|
||||
//zcktl;//正常课堂率
|
||||
if(monitorLog.getLogType() != null && monitorLog.getLogType() == 1){
|
||||
o.setZckts(1);//正常课堂数
|
||||
|
@ -327,7 +447,7 @@ public class Export extends BaseExport {
|
|||
//********************************取数据END*********************************************************/
|
||||
//********************************通用*************************************************************/
|
||||
// String today= DateUtil.today();
|
||||
result.put("监测时间", kcZhihuijiaoshiMonitorLog.getStartTime() + "-" + kcZhihuijiaoshiMonitorLog.getEndTime());
|
||||
result.put("监测时间", kcZhihuijiaoshiMonitorLog.getStartTime() + " - " + kcZhihuijiaoshiMonitorLog.getEndTime());
|
||||
result.put("监测教学楼", kcZhihuijiaoshiMonitorLog.getJxlName());
|
||||
result.put("教学楼数", String.valueOf(jxls));
|
||||
result.put("教室数", String.valueOf(jss));
|
||||
|
@ -355,6 +475,29 @@ public class Export extends BaseExport {
|
|||
oneListMapMap.put(o.getJxlName(),m);
|
||||
}
|
||||
}
|
||||
List<BigDecimal> sumList = Lists.newArrayList();
|
||||
sumList.add(new BigDecimal("0"));
|
||||
sumList.add(new BigDecimal("0"));
|
||||
sumList.add(new BigDecimal("0"));
|
||||
|
||||
sumList.add(new BigDecimal("0"));
|
||||
sumList.add(new BigDecimal("0"));
|
||||
|
||||
sumList.add(new BigDecimal("0"));
|
||||
sumList.add(new BigDecimal("0"));
|
||||
|
||||
sumList.add(new BigDecimal("0"));
|
||||
sumList.add(new BigDecimal("0"));
|
||||
|
||||
sumList.add(new BigDecimal("0"));
|
||||
sumList.add(new BigDecimal("0"));
|
||||
|
||||
sumList.add(new BigDecimal("0"));
|
||||
sumList.add(new BigDecimal("0"));
|
||||
|
||||
sumList.add(new BigDecimal("0"));
|
||||
sumList.add(new BigDecimal("0"));
|
||||
|
||||
for (String key: oneListMapMap.keySet()){
|
||||
Map<String,OneListClass> m = oneListMapMap.get(key);
|
||||
OneListClass all = new OneListClass();
|
||||
|
@ -441,27 +584,53 @@ public class Export extends BaseExport {
|
|||
list.add(String.valueOf(all.getKfnum()));
|
||||
list.add(String.valueOf(all.getZcnum()));
|
||||
list.add(String.valueOf(all.getYcnum()));
|
||||
sumList.set(0,sumList.get(0).add(new BigDecimal(all.getKfnum())));
|
||||
sumList.set(1,sumList.get(1).add(new BigDecimal(all.getZcnum())));
|
||||
sumList.set(2,sumList.get(2).add(new BigDecimal(all.getYcnum())));
|
||||
|
||||
list.add(String.valueOf(one.getZcnum()));
|
||||
list.add(String.valueOf(one.getYcnum()));
|
||||
sumList.set(3,sumList.get(3).add(new BigDecimal(one.getZcnum())));
|
||||
sumList.set(4,sumList.get(4).add(new BigDecimal(one.getYcnum())));
|
||||
|
||||
list.add(String.valueOf(two.getZcnum()));
|
||||
list.add(String.valueOf(two.getYcnum()));
|
||||
sumList.set(5,sumList.get(5).add(new BigDecimal(two.getZcnum())));
|
||||
sumList.set(6,sumList.get(6).add(new BigDecimal(two.getYcnum())));
|
||||
|
||||
list.add(String.valueOf(three.getZcnum()));
|
||||
list.add(String.valueOf(three.getYcnum()));
|
||||
sumList.set(7,sumList.get(7).add(new BigDecimal(three.getZcnum())));
|
||||
sumList.set(8,sumList.get(8).add(new BigDecimal(three.getYcnum())));
|
||||
|
||||
list.add(String.valueOf(four.getZcnum()));
|
||||
list.add(String.valueOf(four.getYcnum()));
|
||||
sumList.set(9,sumList.get(9).add(new BigDecimal(four.getZcnum())));
|
||||
sumList.set(10,sumList.get(10).add(new BigDecimal(four.getYcnum())));
|
||||
|
||||
list.add(String.valueOf(five.getZcnum()));
|
||||
list.add(String.valueOf(five.getYcnum()));
|
||||
sumList.set(11,sumList.get(11).add(new BigDecimal(five.getZcnum())));
|
||||
sumList.set(12,sumList.get(12).add(new BigDecimal(five.getYcnum())));
|
||||
|
||||
list.add(String.valueOf(six.getZcnum()));
|
||||
list.add(String.valueOf(six.getYcnum()));
|
||||
sumList.set(13,sumList.get(13).add(new BigDecimal(six.getZcnum())));
|
||||
sumList.set(14,sumList.get(14).add(new BigDecimal(six.getYcnum())));
|
||||
|
||||
mainList.add(list);
|
||||
}
|
||||
|
||||
if(!oneListMapMap.keySet().isEmpty()){
|
||||
List<String> sumRowlist = Lists.newArrayList();
|
||||
sumRowlist.add("合计");
|
||||
sumRowlist.add("0");//正常率
|
||||
for (BigDecimal sumNum: sumList){
|
||||
sumRowlist.add(dfzf(sumNum));
|
||||
}
|
||||
//计算百分比
|
||||
sumRowlist.set(1,dfzdzzf(getPercentage(sumList.get(1), sumList.get(2))));
|
||||
mainList.add(sumRowlist);
|
||||
}
|
||||
|
||||
wo.insert2Table(0, 2, true, mainList);
|
||||
// index[0] += mainList.size() + 2;
|
||||
|
@ -479,23 +648,53 @@ public class Export extends BaseExport {
|
|||
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()){
|
||||
// Integer jccs = 0;
|
||||
//
|
||||
// for (Integer x: o.getJccsList()){
|
||||
// if(x == null) x = 0;
|
||||
// yccs += x;
|
||||
// jccs += x;
|
||||
// }
|
||||
yccs = o.getYckts();
|
||||
String ycl = getPercentageByAll(new BigDecimal(yccs),new BigDecimal(o.getKfkts())).toString();
|
||||
// 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;
|
||||
// String sm = "1.异常节次:"+ArrayUtil.join(o.getYcHhList().toArray(new String[]{}),",")+" 异常课程:"+ArrayUtil.join(o.getYcKcmcList().toArray(new String[]{}),",")+" 监测次数:"+jccs+" 异常次数:"+yccs+" 异常率:"+ycl;
|
||||
StringBuffer sm = new StringBuffer();
|
||||
Map<String, TwoYcListClass> twoYcListClassMap = o.getYcMap();
|
||||
int i = 1;
|
||||
List<TwoYcListClass> nextBlockList = twoYcListClassMap.values().stream().filter(x -> x.getYccs() !=0).collect(Collectors.toList());
|
||||
for(TwoYcListClass twoYcListClass: nextBlockList){
|
||||
sm.append(String.valueOf(i));
|
||||
sm.append(".异常节次:");
|
||||
sm.append(twoYcListClass.getYcHh());
|
||||
sm.append("(");
|
||||
sm.append(twoYcListClass.getYcDate());
|
||||
sm.append(")");
|
||||
sm.append(" 异常课程:");
|
||||
sm.append(twoYcListClass.getYcKcmc());
|
||||
sm.append(" 监测次数:");
|
||||
sm.append(twoYcListClass.getJccs());
|
||||
sm.append(" 异常次数:");
|
||||
sm.append(twoYcListClass.getYccs());
|
||||
sm.append(" 异常率:");
|
||||
//计算!
|
||||
sm.append(getPercentageByAll(new BigDecimal(twoYcListClass.getYccs()),new BigDecimal(twoYcListClass.getJccs())));
|
||||
sm.append("\n");
|
||||
i++;
|
||||
|
||||
}
|
||||
|
||||
if(nextBlockList.isEmpty()){
|
||||
sm.append(" \n ");
|
||||
}
|
||||
|
||||
// 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);
|
||||
list.add(sm.toString());
|
||||
mainList.add(list);
|
||||
}
|
||||
|
||||
|
|
|
@ -904,6 +904,9 @@ public class WordOperator {
|
|||
// 取出这一行对应的数据,数据与单元格角标位置是一致的,一一替换文本
|
||||
List<String> colList = dataList.get(i);
|
||||
for (int j = 0; j < cellList.size(); j++) {
|
||||
if(StringUtils.contains(colList.get(j),"\n")){
|
||||
setCellMultiLineText(cellList.get(j), colList, j);
|
||||
}
|
||||
setCellText(cellList.get(j), colList, j);
|
||||
}
|
||||
}
|
||||
|
@ -942,6 +945,39 @@ public class WordOperator {
|
|||
}
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* 替换单元格文本
|
||||
* @param cell 单元格
|
||||
* @param colList 替换文本的集合(角标越位了,就置空)
|
||||
* @param j 单元格角标,也就是文本集合的角标
|
||||
*/
|
||||
private void setCellMultiLineText(XWPFTableCell cell, List<String> colList, int j) {
|
||||
// cell.setColor("FF0000");
|
||||
// 无论一个单元格被切割成多少个run,只需要修改第一个即可,改完就return掉了
|
||||
List<XWPFParagraph> paragraphs = cell.getParagraphs();
|
||||
for (XWPFParagraph p : paragraphs) {
|
||||
List<XWPFRun> runs = p.getRuns();
|
||||
//删除旧数据
|
||||
for (int i = 0; i< runs.size(); i++){
|
||||
p.removeRun(i);
|
||||
}
|
||||
XWPFRun r = p.createRun();
|
||||
try {
|
||||
String allText = colList.get(j);
|
||||
String[] texts = StringUtils.split(allText, "\n");
|
||||
for(String text: texts){
|
||||
r.setText(text);
|
||||
r.addCarriageReturn();
|
||||
}
|
||||
//染上背景色
|
||||
// r.getCTR().addNewRPr().addNewHighlight().setVal(STHighlightColor.YELLOW);
|
||||
} catch (Exception e) {
|
||||
r.setText("", 0);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* 填充颜色
|
||||
* @param tableIndex 第几个表格,第一个表格为0
|
||||
|
|
Loading…
Reference in New Issue