|
@@ -18,25 +18,17 @@ import com.itextpdf.text.pdf.PdfCopy;
|
|
|
import com.itextpdf.text.pdf.PdfReader;
|
|
|
import io.swagger.annotations.Api;
|
|
|
import io.swagger.annotations.ApiOperation;
|
|
|
-import io.swagger.models.auth.In;
|
|
|
import lombok.AllArgsConstructor;
|
|
|
import lombok.Data;
|
|
|
import org.apache.commons.lang.StringUtils;
|
|
|
import org.apache.commons.lang.time.DateUtils;
|
|
|
-import org.apache.poi.hssf.usermodel.HSSFFont;
|
|
|
-import org.apache.poi.hssf.usermodel.HSSFRichTextString;
|
|
|
import org.apache.poi.ss.usermodel.*;
|
|
|
import org.apache.poi.ss.util.CellRangeAddress;
|
|
|
import org.apache.poi.util.IOUtils;
|
|
|
import org.apache.poi.xssf.usermodel.XSSFRichTextString;
|
|
|
-import org.apache.poi.xssf.usermodel.XSSFWorkbook;
|
|
|
-import org.jsoup.Jsoup;
|
|
|
-import org.jsoup.nodes.Element;
|
|
|
-import org.jsoup.select.Elements;
|
|
|
import org.springblade.business.entity.*;
|
|
|
import org.springblade.business.feign.TaskClient;
|
|
|
import org.springblade.common.constant.ClientIdConstant;
|
|
|
-import org.springblade.common.constant.CommonConstant;
|
|
|
import org.springblade.common.utils.BaseUtils;
|
|
|
import org.springblade.common.utils.CommonUtil;
|
|
|
import org.springblade.common.utils.SnowFlakeUtil;
|
|
@@ -54,9 +46,7 @@ import org.springblade.core.tool.utils.DateUtil;
|
|
|
import org.springblade.feign.ArchiveFileTaskClient;
|
|
|
import org.springblade.manager.entity.ContractInfo;
|
|
|
import org.springblade.manager.entity.ContractRelationJlyz;
|
|
|
-import org.springblade.manager.entity.TextdictInfo;
|
|
|
import org.springblade.manager.feign.FormulaClient;
|
|
|
-import org.springblade.manager.vo.MeterInfo;
|
|
|
import org.springblade.manager.vo.ReportMergeCellsConfig;
|
|
|
import org.springblade.manager.vo.ReportResult;
|
|
|
import org.springblade.meter.dto.*;
|
|
@@ -69,7 +59,6 @@ import org.springblade.meter.utils.CollectionUtils;
|
|
|
import org.springblade.meter.vo.*;
|
|
|
import org.springblade.producer.bean.PushMessage;
|
|
|
import org.springblade.resource.feign.NewIOSSClient;
|
|
|
-import org.springblade.system.cache.ParamCache;
|
|
|
import org.springblade.system.user.entity.User;
|
|
|
import org.springblade.system.user.feign.IUserClient;
|
|
|
import org.springframework.jdbc.core.BeanPropertyRowMapper;
|
|
@@ -88,7 +77,6 @@ import java.time.format.DateTimeFormatter;
|
|
|
import java.util.*;
|
|
|
import java.util.concurrent.CompletableFuture;
|
|
|
import java.util.concurrent.ExecutionException;
|
|
|
-import java.util.concurrent.atomic.AtomicBoolean;
|
|
|
import java.util.function.Function;
|
|
|
import java.util.stream.Collectors;
|
|
|
|
|
@@ -2752,7 +2740,7 @@ public class TaskController extends BladeController {
|
|
|
/*准备*/
|
|
|
reportResults.forEach(rs -> {
|
|
|
/*初始化路径*/
|
|
|
- rs.pathInit(file_path);
|
|
|
+ rs.pathInit(file_path,report.getContractId());
|
|
|
rs.setExcelUrl(fileUrlMapping.get(rs.getExcelId().toString()));
|
|
|
/*删除已经存在的PDF*/
|
|
|
File tabPdf;
|
|
@@ -2768,7 +2756,7 @@ public class TaskController extends BladeController {
|
|
|
}
|
|
|
});
|
|
|
/*写死合并*/
|
|
|
- List<ReportMergeCellsConfig> configList = ReportMergeCellsConfig.bulider();
|
|
|
+ /*List<ReportMergeCellsConfig> configList = ReportMergeCellsConfig.bulider();*/
|
|
|
/*每种表生成一份pdf*/
|
|
|
StringBuffer sb = new StringBuffer();
|
|
|
reportResults.parallelStream().forEach(rs -> {
|
|
@@ -2783,7 +2771,10 @@ public class TaskController extends BladeController {
|
|
|
String title = rs.createTitle(projectName);
|
|
|
/*把公共部分内容释放到每一页*/
|
|
|
rs.putCommon();
|
|
|
- for (Map<String, Object> dataMap : rs.getData()) {
|
|
|
+ /*合并单元格的配置信息*/
|
|
|
+ Map<Integer,Set<CellRangeAddress>> mergeConfig= rs.buildMergeConfig();
|
|
|
+ for (int n=0;n< rs.getData().size();n++) {
|
|
|
+ Map<String, Object> dataMap = rs.getData().get(n);
|
|
|
try {
|
|
|
Workbook workbook = WorkbookFactory.create(new ByteArrayInputStream(excelByte));
|
|
|
//获取工作表
|
|
@@ -2819,6 +2810,23 @@ public class TaskController extends BladeController {
|
|
|
rs.setTitle(sheet, title);
|
|
|
/*添加电签*/
|
|
|
setDQInfo(sheet,rs,title);
|
|
|
+ /*合并单元格*/
|
|
|
+ if(mergeConfig.containsKey(n)){
|
|
|
+ mergeConfig.get(n).forEach(ca->{
|
|
|
+ Cell first = sheet.getRow(ca.getFirstRow()).getCell(ca.getFirstColumn(), Row.MissingCellPolicy.CREATE_NULL_AS_BLANK);
|
|
|
+ StringBuilder vs= new StringBuilder();
|
|
|
+ for(int k=ca.getFirstRow();k<=ca.getLastRow();k++){
|
|
|
+ for (int w=ca.getFirstColumn();w<=ca.getLastColumn();w++){
|
|
|
+ Cell cell= sheet.getRow(k).getCell(w,Row.MissingCellPolicy.CREATE_NULL_AS_BLANK);
|
|
|
+ vs.append(cell.getStringCellValue());
|
|
|
+ }
|
|
|
+ }
|
|
|
+ if(vs.length()>0){
|
|
|
+ first.setCellValue(vs.toString());
|
|
|
+ }
|
|
|
+ sheet.addMergedRegionUnsafe(ca);
|
|
|
+ });
|
|
|
+ }
|
|
|
//去掉表格虚线
|
|
|
sheet.setPrintGridlines(false);
|
|
|
//设置 整个工作表为一页
|