下载报告,导出pdf版本。
This commit is contained in:
+21
-10
@@ -4,6 +4,7 @@ import com.alibaba.fastjson.JSONObject;
|
||||
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
|
||||
import com.baomidou.mybatisplus.core.metadata.IPage;
|
||||
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
|
||||
import com.itextpdf.text.*;
|
||||
import com.jero.common.api.vo.Result;
|
||||
import com.jero.common.aspect.annotation.AutoLog;
|
||||
import com.jero.common.constant.enums.CutEnum;
|
||||
@@ -33,15 +34,17 @@ import org.springframework.web.bind.annotation.RestController;
|
||||
import org.springframework.web.multipart.MultipartFile;
|
||||
import org.springframework.web.servlet.ModelAndView;
|
||||
|
||||
import javax.servlet.ServletOutputStream;
|
||||
import javax.servlet.http.HttpServletRequest;
|
||||
import javax.servlet.http.HttpServletResponse;
|
||||
import java.util.Arrays;
|
||||
import java.util.HashMap;
|
||||
import java.io.*;
|
||||
import java.net.URLEncoder;
|
||||
import java.text.SimpleDateFormat;
|
||||
import java.util.*;
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
|
||||
|
||||
/**
|
||||
/**
|
||||
* @Description: 项目库-法规清单表
|
||||
* @Author: jero-boot
|
||||
* @Date: 2022-04-14
|
||||
@@ -370,12 +373,20 @@ public class ProjectLawsInventoryEOController extends JeroController<ProjectLaws
|
||||
@AutoLog(value = "变更")
|
||||
@ApiOperation(value="变更", notes="变更")
|
||||
@GetMapping(value = "/change")
|
||||
public Result<?> change(@RequestParam(name="ids",required=true) String ids,
|
||||
@RequestParam(name="cut",required=true) String cut) {
|
||||
Map<String,Object> parmas = new HashMap<>();
|
||||
parmas.put("ids",ids);
|
||||
parmas.put("cut",cut);
|
||||
return this.projectLawsInventoryEOService.change(parmas);
|
||||
public Result<?> change(@RequestParam Map<String,Object> params) {
|
||||
return this.projectLawsInventoryEOService.change(params);
|
||||
}
|
||||
|
||||
@AutoLog(value = "下载pdf报告")
|
||||
@ApiOperation(value="下载pdf报告", notes="下载pdf报告")
|
||||
@GetMapping(value = "/downloadReport")
|
||||
// public void downloadReport(@RequestParam Map<String,Object> params, HttpServletRequest req, HttpServletResponse resp) throws DocumentException {
|
||||
public void downloadReport(@RequestParam("cut")String cut,@RequestParam("id")String id, HttpServletRequest req, HttpServletResponse resp) throws DocumentException {
|
||||
Map<String,Object> params = new HashMap<>();
|
||||
params.put("cut",cut);
|
||||
params.put("id",id);
|
||||
|
||||
this.projectLawsInventoryEOService.downloadReport(params,req,resp);
|
||||
}
|
||||
|
||||
/**
|
||||
|
||||
+3
@@ -2,6 +2,7 @@ package com.jero.modules.project.service;
|
||||
|
||||
import com.alibaba.fastjson.JSONObject;
|
||||
import com.baomidou.mybatisplus.extension.service.IService;
|
||||
import com.itextpdf.text.DocumentException;
|
||||
import com.jero.common.api.vo.Result;
|
||||
import com.jero.common.system.vo.LoginUser;
|
||||
import com.jero.modules.project.entity.ProjectLawsInventoryEO;
|
||||
@@ -119,4 +120,6 @@ public interface IProjectLawsInventoryEOService extends IService<ProjectLawsInve
|
||||
void dataDispose(List<ProjectLawsInventoryEO> list, LoginUser currentUser, int isProjectRole, String cut);
|
||||
|
||||
Result<?> change(Map<String, Object> parmas);
|
||||
|
||||
void downloadReport(Map<String, Object> params,HttpServletRequest req, HttpServletResponse resp)throws DocumentException;
|
||||
}
|
||||
|
||||
+546
@@ -1,6 +1,9 @@
|
||||
package com.jero.modules.project.service.impl;
|
||||
|
||||
import cn.hutool.core.util.ZipUtil;
|
||||
import com.itextpdf.text.*;
|
||||
import com.itextpdf.text.Font;
|
||||
import com.itextpdf.text.pdf.*;
|
||||
import com.jero.modules.dummy.entity.DummyInventoryBaseEO;
|
||||
import com.jero.modules.dummy.entity.DummyInventoryInfoEOEn;
|
||||
import com.jero.modules.dummy.enums.DummyInventoryBaseFieldEnum;
|
||||
@@ -74,12 +77,15 @@ import org.springframework.mock.web.MockMultipartFile;
|
||||
import org.springframework.stereotype.Service;
|
||||
import org.springframework.web.multipart.MultipartFile;
|
||||
|
||||
import javax.servlet.ServletOutputStream;
|
||||
import javax.servlet.http.HttpServletRequest;
|
||||
import javax.servlet.http.HttpServletResponse;
|
||||
import java.io.*;
|
||||
import java.net.URLEncoder;
|
||||
import java.text.DateFormat;
|
||||
import java.text.SimpleDateFormat;
|
||||
import java.util.*;
|
||||
import java.util.List;
|
||||
import java.util.stream.Collectors;
|
||||
|
||||
import static com.jero.modules.document.service.impl.BussDocumentLibraryEOServiceImpl.copyFile;
|
||||
@@ -132,10 +138,17 @@ public class ProjectLawsInventoryEOServiceImpl extends ServiceImpl<ProjectLawsIn
|
||||
@Autowired
|
||||
private IProjectTaskInventoryFeedbackEOService projectTaskInventoryFeedbackEOService;
|
||||
|
||||
@Autowired
|
||||
private IFeedbackHistoryService feedbackHistoryService;
|
||||
|
||||
@Autowired
|
||||
private IDummyInventoryInfoEOService dummyInventoryInfoEOService;
|
||||
@Value(value = "${jero.path.upload}")
|
||||
private String uploadpath;
|
||||
@Value("${jero.path.exportPdfTempPath}")
|
||||
private String exportPdfTempPath;
|
||||
@Value("${jero.path.simfangFontFilePath}")
|
||||
private String simfangFontFilePath;
|
||||
|
||||
@Autowired
|
||||
private SysCategoryServiceImpl sysCategoryService;
|
||||
@@ -2398,6 +2411,15 @@ public class ProjectLawsInventoryEOServiceImpl extends ServiceImpl<ProjectLawsIn
|
||||
deleteTaskInventoryDetailWrapper.lambda().in(ProjectTaskInventoryDetailEO::getProjectTaskInventoryId,idList);
|
||||
this.projectTaskInventoryDetailEOService.remove(deleteTaskInventoryDetailWrapper);
|
||||
|
||||
//查询反馈意见表 获取id 用于删除 反馈意见历史数据。
|
||||
QueryWrapper<ProjectTaskInventoryFeedbackEO> queryTaskInventoryFeedbackWrapper = new QueryWrapper<>();
|
||||
queryTaskInventoryFeedbackWrapper.lambda().in(ProjectTaskInventoryFeedbackEO::getProjectTaskInventoryId,idList);
|
||||
List<ProjectTaskInventoryFeedbackEO> projectTaskInventoryFeedbackEOList = projectTaskInventoryFeedbackEOService.getBaseMapper().selectList(queryTaskInventoryFeedbackWrapper);
|
||||
List<String> feedbackIdList = projectTaskInventoryFeedbackEOList.stream().map(ProjectTaskInventoryFeedbackEO::getId).distinct().collect(Collectors.toList());
|
||||
QueryWrapper<FeedbackHistory> deleteFeedbackHistoryWrapper = new QueryWrapper<>();
|
||||
deleteFeedbackHistoryWrapper.lambda().in(FeedbackHistory::getFeedbackId,feedbackIdList);
|
||||
feedbackHistoryService.remove(deleteFeedbackHistoryWrapper);
|
||||
|
||||
//删除反馈意见数据
|
||||
QueryWrapper<ProjectTaskInventoryFeedbackEO> deleteTaskInventoryFeedbackWrapper = new QueryWrapper<>();
|
||||
deleteTaskInventoryFeedbackWrapper.lambda().in(ProjectTaskInventoryFeedbackEO::getProjectTaskInventoryId,idList);
|
||||
@@ -3572,4 +3594,528 @@ public class ProjectLawsInventoryEOServiceImpl extends ServiceImpl<ProjectLawsIn
|
||||
contentLog = contentLog.substring(0, contentLog.length()-1);
|
||||
return contentLog;
|
||||
}
|
||||
|
||||
//表格高度
|
||||
private static int high = 25;
|
||||
//表格宽度
|
||||
private static int widthPercentage = 100;
|
||||
|
||||
@Override
|
||||
public void downloadReport(Map<String, Object> params,HttpServletRequest req, HttpServletResponse resp) throws DocumentException{
|
||||
String filename = "法规清单报告";
|
||||
|
||||
File file = null;
|
||||
InputStream fin = null;
|
||||
ServletOutputStream out = null;
|
||||
|
||||
String filePar = null;
|
||||
// 文件夹路径
|
||||
filePar = exportPdfTempPath + new Date().getTime();
|
||||
File myPath = new File(filePar);
|
||||
file = new File(filePar + "/" + filename + new Date().getTime() + ".pdf");
|
||||
if (!myPath.exists()){
|
||||
myPath.mkdirs();
|
||||
}
|
||||
|
||||
/*******pdf文件内容生成开始*********/
|
||||
Document document = new Document(PageSize.A4, 25, 25, 25, 25);
|
||||
|
||||
//设中文字体
|
||||
BaseFont bfChinese = null;
|
||||
try {
|
||||
//bfChinese = BaseFont.createFont("STSong-Light", "UniGB-UCS2-H",BaseFont.NOT_EMBEDDED); // 该方式不好用。
|
||||
|
||||
//创建一个支持中文的字体,字体为本地下载的字体
|
||||
bfChinese = BaseFont.createFont(simfangFontFilePath, BaseFont.IDENTITY_H,BaseFont.EMBEDDED);
|
||||
} catch (Exception e) {
|
||||
e.printStackTrace();
|
||||
}
|
||||
|
||||
//创建标题 //size:26 一号字体
|
||||
Font f26 = new Font(bfChinese, 18, Font.NORMAL);
|
||||
//Font f10 = new Font(bfChinese, 10, Font.NORMAL);
|
||||
//Font f12 = new Font(bfChinese, 12, Font.NORMAL);
|
||||
Font f8 = new Font(bfChinese, 8, Font.NORMAL);
|
||||
Paragraph title1 = new Paragraph("ComplianceReport-Template", f26);
|
||||
title1.setAlignment(Element.ALIGN_CENTER);
|
||||
title1.setAlignment(Element.ALIGN_CENTER);
|
||||
Chapter chapter1 = new Chapter(title1, 1);
|
||||
chapter1.setNumberDepth(0);
|
||||
Section section1 = chapter1;
|
||||
|
||||
try {
|
||||
PdfWriter writer = PdfWriter.getInstance(document, new FileOutputStream(file));
|
||||
} catch (DocumentException e) {
|
||||
e.printStackTrace();
|
||||
} catch (FileNotFoundException e) {
|
||||
e.printStackTrace();
|
||||
}
|
||||
|
||||
document.open();
|
||||
|
||||
// 创建4列的表格
|
||||
int colNumber = 4;
|
||||
PdfPTable tableBasic = new PdfPTable(colNumber);
|
||||
//设置段落上下空白
|
||||
//tableBasic.setSpacingBefore(25);
|
||||
//tableBasic.setSpacingAfter(25);
|
||||
|
||||
section1.add(tableBasic);
|
||||
document.add(chapter1);
|
||||
|
||||
String cut = (String) params.get("cut");
|
||||
String id = (String) params.get("id");//法规id
|
||||
|
||||
QueryWrapper<ProjectLawsInventoryEO> lawsInventoryQueryWrapper = new QueryWrapper<>();
|
||||
lawsInventoryQueryWrapper.lambda().eq(ProjectLawsInventoryEO::getId,id);
|
||||
ProjectLawsInventoryEO projectLawsInventoryEO = this.baseMapper.selectOne(lawsInventoryQueryWrapper);
|
||||
params.put("projectLawsInventoryEO",projectLawsInventoryEO);
|
||||
|
||||
QueryWrapper<ProjectTaskInventoryEO> taskInventoryQueryWrapper = new QueryWrapper<>();
|
||||
taskInventoryQueryWrapper.lambda().eq(ProjectTaskInventoryEO::getProjectLawsInventoryId,id);
|
||||
ProjectTaskInventoryEO projectTaskInventoryEO = projectTaskInventoryEOService.getBaseMapper().selectOne(taskInventoryQueryWrapper);
|
||||
params.put("projectTaskInventoryEO",projectTaskInventoryEO);
|
||||
|
||||
QueryWrapper<ProjectLibraryBase> libraryBaseQueryWrapper = new QueryWrapper<>();
|
||||
libraryBaseQueryWrapper.lambda().eq(ProjectLibraryBase::getId,projectLawsInventoryEO.getProjectLibraryId());
|
||||
ProjectLibraryBase projectLibraryBase = projectLibraryBaseMapper.selectOne(libraryBaseQueryWrapper);
|
||||
params.put("projectLibraryBase",projectLibraryBase);
|
||||
|
||||
QueryWrapper<ProjectNameInfoEO> projectNameQueryWrapper = new QueryWrapper<>();
|
||||
projectNameQueryWrapper.lambda().eq(ProjectNameInfoEO::getId,projectLibraryBase.getProjectNameId());
|
||||
ProjectNameInfoEO projectNameInfoEO = projectNameInfoEOMapper.selectOne(projectNameQueryWrapper);
|
||||
params.put("projectNameInfoEO",projectNameInfoEO);
|
||||
|
||||
//设置ProgramInformation内容
|
||||
setProgramInformation(tableBasic,document,f8,params);
|
||||
|
||||
//设置ComplianceAttachments 验证符合性流程里最后通过审批的 “ 工程确认 ” 中的附件 内容
|
||||
setComplianceAttachments(new PdfPTable(2),document,f8);
|
||||
|
||||
//设置ComplianceResult 内容
|
||||
setComplianceResult(new PdfPTable(2),document,f8,params);
|
||||
|
||||
//审核历史表头
|
||||
String[] auditHistoryHead = new String[]{"Result", "Opinion", "Node", "Operator", "Datetime"};
|
||||
|
||||
//设置DesignComplianceCheckApprovals (设计符合性确认的审批历史数据,没有就空着) 内容
|
||||
setDesignComplianceCheckApprovals(new PdfPTable(auditHistoryHead.length),document,f8,auditHistoryHead,params);
|
||||
|
||||
//设置ValidationComplianceCheckApprovals (验证符合性确认的审批历史数据,没有就空着) 内容
|
||||
setValidationComplianceCheckApprovals(new PdfPTable(auditHistoryHead.length),document,f8,auditHistoryHead,params);
|
||||
|
||||
document.close();
|
||||
|
||||
try {
|
||||
fin = new FileInputStream(file);
|
||||
resp.setCharacterEncoding("utf-8");
|
||||
resp.setContentType("application/pdf");
|
||||
|
||||
// 设置浏览器以下载的方式处理该文件
|
||||
if (req.getHeader("User-Agent").toUpperCase().indexOf("MSIE") > 0) {
|
||||
filename = URLEncoder.encode(filename, "UTF-8");
|
||||
} else {
|
||||
filename = new String(filename.getBytes("UTF-8"), "ISO8859-1");
|
||||
}
|
||||
resp.setHeader("Content-Disposition", "attachment;filename=" + filename + ".pdf");
|
||||
out = resp.getOutputStream();
|
||||
|
||||
// 缓冲区
|
||||
byte[] buffer = new byte[512];
|
||||
int bytesToRead = -1;
|
||||
|
||||
// 通过循环将读入的Word文件的内容输出到浏览器中
|
||||
while ((bytesToRead = fin.read(buffer)) != -1) {
|
||||
out.write(buffer, 0, bytesToRead);
|
||||
}
|
||||
}catch (Exception ex){
|
||||
ex.printStackTrace();
|
||||
}finally {
|
||||
try {
|
||||
if (fin != null){
|
||||
fin.close();
|
||||
}
|
||||
if (out != null){
|
||||
out.close();
|
||||
}
|
||||
} catch (IOException e) {
|
||||
e.printStackTrace();
|
||||
}
|
||||
|
||||
if (file != null){
|
||||
// 删除临时文件
|
||||
file.delete();
|
||||
}
|
||||
|
||||
if (myPath != null){
|
||||
// 删除临时文件夹
|
||||
myPath.delete();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
private PdfPCell pdfTableStyle(String content,Font font,int high,boolean isAlignCenter,boolean isAlignMidde){
|
||||
PdfPCell pdfPCell = new PdfPCell(new Phrase(content,font));
|
||||
pdfPCell.setMinimumHeight(high);
|
||||
pdfPCell.setUseAscender(true); // 设置可以居中
|
||||
if (isAlignCenter){
|
||||
pdfPCell.setHorizontalAlignment(PdfPCell.ALIGN_CENTER); // 设置水平居中
|
||||
}
|
||||
if (isAlignMidde){
|
||||
pdfPCell.setVerticalAlignment(PdfPCell.ALIGN_MIDDLE); // 设置垂直居中
|
||||
}
|
||||
return pdfPCell;
|
||||
}
|
||||
|
||||
public void setProgramInformation(PdfPTable tableBase,Document document,Font fontSize,Map<String,Object> params) throws DocumentException{
|
||||
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
|
||||
|
||||
String cut = (String) params.get("cut");
|
||||
|
||||
ProjectLawsInventoryEO projectLawsInventoryEO = (ProjectLawsInventoryEO) params.get("projectLawsInventoryEO");
|
||||
ProjectTaskInventoryEO projectTaskInventoryEO = (ProjectTaskInventoryEO) params.get("projectTaskInventoryEO");
|
||||
ProjectLibraryBase projectLibraryBase = (ProjectLibraryBase) params.get("projectLibraryBase");
|
||||
ProjectNameInfoEO projectNameInfoEO = (ProjectNameInfoEO) params.get("projectNameInfoEO");
|
||||
|
||||
tableBase.setHorizontalAlignment(Element.ALIGN_CENTER);// 居左
|
||||
tableBase.setTotalWidth(500f);//表格的总宽度
|
||||
tableBase.setWidthPercentage(100);// 表格的宽度百分比
|
||||
|
||||
PdfPTable tableName = new PdfPTable(1);
|
||||
//设置段落上空白
|
||||
tableName.setSpacingBefore(25);
|
||||
//设置标题长度占纸张比例
|
||||
tableName.setWidthPercentage(widthPercentage);
|
||||
//给表格赋值
|
||||
PdfPCell programInformation = pdfTableStyle("Program Information", fontSize, 10, false, false);
|
||||
programInformation.disableBorderSide(15);
|
||||
tableName.addCell(programInformation);
|
||||
//将表格添加到文档对象中
|
||||
document.add(tableName);
|
||||
|
||||
// cell 11 第一行 第一列
|
||||
PdfPCell cell11 = pdfTableStyle("CR No.", fontSize, 50, true, true);
|
||||
tableBase.addCell(cell11);
|
||||
PdfPCell cell12 = pdfTableStyle("Xxx(自动生成NIO-日期-序号)NIO-2022041301", fontSize, 50, true, true);
|
||||
tableBase.addCell(cell12);
|
||||
PdfPCell cell13 = pdfTableStyle("CR Status", fontSize, 50, true, true);
|
||||
tableBase.addCell(cell13);
|
||||
|
||||
String flowStatus = "";
|
||||
if(StringUtils.isNotEmpty(projectTaskInventoryEO.getVerifyStatus())){
|
||||
flowStatus = projectTaskInventoryEO.getVerifyStatus() + ",";
|
||||
}
|
||||
if(StringUtils.isNotEmpty(projectTaskInventoryEO.getPrehomoStatus())){
|
||||
flowStatus += projectTaskInventoryEO.getPrehomoStatus() + ",";
|
||||
}
|
||||
if(StringUtils.isNotEmpty(projectTaskInventoryEO.getVerifyStatus())){
|
||||
flowStatus += projectTaskInventoryEO.getVerifyStatus() + ",";
|
||||
}
|
||||
if(StringUtils.isNotEmpty(flowStatus)){
|
||||
flowStatus = flowStatus.substring(0,flowStatus.length() - 1);
|
||||
}
|
||||
PdfPCell cell14 = pdfTableStyle(flowStatus, fontSize, 50, true, true);
|
||||
tableBase.addCell(cell14);
|
||||
|
||||
// cell 21 第二行 第一列
|
||||
PdfPCell cell21 = pdfTableStyle("Regulation", fontSize, 50, true, true);
|
||||
tableBase.addCell(cell21);
|
||||
PdfPCell cell22 = pdfTableStyle(projectLawsInventoryEO.getSerialNumber(), fontSize, 50, true, true);
|
||||
tableBase.addCell(cell22);
|
||||
PdfPCell cell23 = pdfTableStyle("Subject", fontSize, 50, true, true);
|
||||
tableBase.addCell(cell23);
|
||||
PdfPCell cell24 = pdfTableStyle(projectLawsInventoryEO.getTitle(), fontSize, 50, true, true);
|
||||
tableBase.addCell(cell24);
|
||||
// cell 31 第三行 第一列
|
||||
PdfPCell cell31 = pdfTableStyle("Project", fontSize, 50, true, true);
|
||||
tableBase.addCell(cell31);
|
||||
PdfPCell cell32 = pdfTableStyle(projectNameInfoEO.getProjectName(), fontSize, 50, true, true);
|
||||
tableBase.addCell(cell32);
|
||||
PdfPCell cell33 = pdfTableStyle("Market", fontSize, 50, true, true);
|
||||
tableBase.addCell(cell33);
|
||||
|
||||
List<SysDictItem> regionDictList = sysDictItemServiceImpl.selectItemsByDictCode("region");
|
||||
List<String> marketList = new ArrayList<>();
|
||||
if(StringUtils.equals(cut,CutEnum.CN.getValue())){
|
||||
marketList = regionDictList.stream().filter(e -> StringUtils.equals(e.getItemValue(), projectLibraryBase.getTargetMarket())).map(SysDictItem::getItemText).distinct().collect(Collectors.toList());
|
||||
}else if(StringUtils.equals(cut,CutEnum.EN.getValue())){
|
||||
marketList = regionDictList.stream().filter(e -> StringUtils.equals(e.getItemValue(), projectLibraryBase.getTargetMarket())).map(SysDictItem::getEnName).distinct().collect(Collectors.toList());
|
||||
}
|
||||
String market = "";
|
||||
if(CollectionUtils.isNotEmpty(marketList)){
|
||||
market = marketList.get(0);
|
||||
}
|
||||
|
||||
PdfPCell cell34 = pdfTableStyle(market, fontSize, 50, true, true);
|
||||
tableBase.addCell(cell34);
|
||||
// cell 41 第四行 第一列
|
||||
PdfPCell cell41 = pdfTableStyle("NT", fontSize, 50, true, true);
|
||||
tableBase.addCell(cell41);
|
||||
PdfPCell cell42 = pdfTableStyle("(取项目-数字平台)", fontSize, 50, true, true);
|
||||
tableBase.addCell(cell42);
|
||||
PdfPCell cell43 = pdfTableStyle("NP", fontSize, 50, true, true);
|
||||
tableBase.addCell(cell43);
|
||||
PdfPCell cell44 = pdfTableStyle("(取项目-车型平台)", fontSize, 50, true, true);
|
||||
tableBase.addCell(cell44);
|
||||
|
||||
// cell 51 第五行 第一列
|
||||
PdfPCell cell51 = pdfTableStyle("Completion Date", fontSize, 50, true, true);
|
||||
tableBase.addCell(cell51);
|
||||
String processEndTimeStr = "";
|
||||
if(projectTaskInventoryEO.getProcessEndTime() != null){
|
||||
processEndTimeStr = sdf.format(projectTaskInventoryEO.getProcessEndTime());
|
||||
}
|
||||
PdfPCell cell52 = pdfTableStyle(processEndTimeStr, fontSize, 50, true, true);
|
||||
tableBase.addCell(cell52);
|
||||
PdfPCell cell53 = pdfTableStyle("Responsible Field", fontSize, 50, true, true);
|
||||
tableBase.addCell(cell53);
|
||||
|
||||
String dutyTerritory = projectLawsInventoryEO.getDutyTerritory();
|
||||
String finalDutyTerritory = dutyTerritory;
|
||||
List<SysDictItem> dutyTerritoryDictItemList = sysDictItemServiceImpl.selectItemsByDictCode("duty_territory");
|
||||
String dutyTerritoryName = "";
|
||||
if(StringUtils.equals(cut,CutEnum.CN.getValue())){
|
||||
dutyTerritoryName = dutyTerritoryDictItemList.stream()
|
||||
.filter(e -> finalDutyTerritory.contains(e.getItemValue()))
|
||||
.map(SysDictItem::getItemText)
|
||||
.collect(Collectors.joining(","));
|
||||
}else if(StringUtils.equals(cut,CutEnum.EN.getValue())){
|
||||
dutyTerritoryName = dutyTerritoryDictItemList.stream()
|
||||
.filter(e -> finalDutyTerritory.contains(e.getItemValue()))
|
||||
.map(SysDictItem::getEnName)
|
||||
.collect(Collectors.joining(","));
|
||||
}
|
||||
PdfPCell cell54 = pdfTableStyle(dutyTerritoryName, fontSize, 50, true, true);
|
||||
tableBase.addCell(cell54);
|
||||
|
||||
// cell 61 第6行 第一列
|
||||
PdfPCell cell61 = pdfTableStyle("R&H Studio Engineer", fontSize, 50, true, true);
|
||||
tableBase.addCell(cell61);
|
||||
|
||||
String studioEngineer = projectLibraryBase.getStudioEngineer();
|
||||
QueryWrapper<SysUser> queryStudioUserWrapper = new QueryWrapper<>();
|
||||
queryStudioUserWrapper.lambda().eq(SysUser::getId,studioEngineer);
|
||||
SysUser studioUserInfo = sysUserMapper.selectOne(queryStudioUserWrapper);
|
||||
PdfPCell cell62 = pdfTableStyle(studioUserInfo.getUsername(), fontSize, 50, true, true);
|
||||
tableBase.addCell(cell62);
|
||||
PdfPCell cell63 = pdfTableStyle("Engineering Interface", fontSize, 50, true, true);
|
||||
tableBase.addCell(cell63);
|
||||
|
||||
String engineeringInterfacePerson = projectLawsInventoryEO.getEngineeringInterfacePerson();
|
||||
QueryWrapper<SysUser> queryEngineeringInterfaceUserWrapper = new QueryWrapper<>();
|
||||
queryEngineeringInterfaceUserWrapper.lambda().eq(SysUser::getId,engineeringInterfacePerson);
|
||||
SysUser engineeringInterfaceInfo = sysUserMapper.selectOne(queryEngineeringInterfaceUserWrapper);
|
||||
PdfPCell cell64 = pdfTableStyle(engineeringInterfaceInfo.getUsername(), fontSize, 50, true, true);
|
||||
tableBase.addCell(cell64);
|
||||
|
||||
// cell 71 第7行 第一列
|
||||
PdfPCell cell71 = pdfTableStyle("Homologation Engineer", fontSize, 50, true, true);
|
||||
tableBase.addCell(cell71);
|
||||
String homologationEngineerId = projectLawsInventoryEO.getHomologationEngineerId();
|
||||
QueryWrapper<SysUser> queryHomologationEngineerUserWrapper = new QueryWrapper<>();
|
||||
queryHomologationEngineerUserWrapper.lambda().eq(SysUser::getId,homologationEngineerId);
|
||||
SysUser homologationEngineerInfo = sysUserMapper.selectOne(queryHomologationEngineerUserWrapper);
|
||||
PdfPCell cell72 = pdfTableStyle(homologationEngineerInfo.getUsername(), fontSize, 50, true, true);
|
||||
tableBase.addCell(cell72);
|
||||
PdfPCell cell73 = pdfTableStyle("Regulation Engineer", fontSize, 50, true, true);
|
||||
tableBase.addCell(cell73);
|
||||
String regulationOwnerId = projectLawsInventoryEO.getRegulationOwnerId();
|
||||
QueryWrapper<SysUser> queryRegulationOwnerUserWrapper = new QueryWrapper<>();
|
||||
queryRegulationOwnerUserWrapper.lambda().eq(SysUser::getId,regulationOwnerId);
|
||||
SysUser regulationOwnerInfo = sysUserMapper.selectOne(queryRegulationOwnerUserWrapper);
|
||||
PdfPCell cell74 = pdfTableStyle(regulationOwnerInfo.getUsername(), fontSize, 50, true, true);
|
||||
tableBase.addCell(cell74);
|
||||
|
||||
// cell 81 第8行 第一列
|
||||
PdfPCell cell81 = pdfTableStyle(" ", fontSize, 20, true, true);
|
||||
tableBase.addCell(cell81);
|
||||
PdfPCell cell82 = pdfTableStyle(" ", fontSize, 20, true, true);
|
||||
tableBase.addCell(cell82);
|
||||
PdfPCell cell83 = pdfTableStyle(" ", fontSize, 20, true, true);
|
||||
tableBase.addCell(cell83);
|
||||
PdfPCell cell84 = pdfTableStyle(" ", fontSize, 20, true, true);
|
||||
tableBase.addCell(cell84);
|
||||
|
||||
document.add(tableBase);
|
||||
|
||||
PdfPTable cell9 = new PdfPTable(2);
|
||||
// 定义表格的宽度 占比
|
||||
float[] cell9Width = { 0.25f, 0.75f};
|
||||
try {
|
||||
cell9.setWidths(cell9Width);
|
||||
} catch (DocumentException e) {
|
||||
e.printStackTrace();
|
||||
}
|
||||
cell9.setWidthPercentage(widthPercentage); //设置标题长度占纸张比例
|
||||
cell9.addCell(pdfTableStyle("Description", fontSize, 50, true, true));
|
||||
cell9.addCell(pdfTableStyle(" ", fontSize, 50, true, true)); //(导出后自己填写)
|
||||
document.add(cell9);
|
||||
}
|
||||
|
||||
public void setComplianceAttachments(PdfPTable tableBase,Document document,Font fontSize) throws DocumentException{
|
||||
// 定义表格的宽度
|
||||
float[] cellsWidth = { 0.45f, 0.55f};
|
||||
try {
|
||||
tableBase.setWidths(cellsWidth);
|
||||
}catch (Exception ex){
|
||||
ex.printStackTrace();
|
||||
}
|
||||
|
||||
tableBase.setTotalWidth(500f);//表格的总宽度
|
||||
tableBase.setWidthPercentage(100);// 表格的宽度百分比
|
||||
|
||||
// 单元格宽度
|
||||
PdfPTable tableName = new PdfPTable(1);
|
||||
//设置段落上空白
|
||||
tableName.setSpacingBefore(25);
|
||||
tableName.setWidthPercentage(widthPercentage); //设置标题长度占纸张比例
|
||||
//给表格赋值
|
||||
PdfPCell programInformation = pdfTableStyle("Compliance Attachments", fontSize, 10, false, false);
|
||||
programInformation.disableBorderSide(15);
|
||||
tableName.addCell(programInformation);
|
||||
//将表格添加到文档对象中
|
||||
document.add(tableName);
|
||||
|
||||
// cell 11 第一行 第一列
|
||||
PdfPCell cell11 = pdfTableStyle("File Name", fontSize, 20, true, true);
|
||||
tableBase.addCell(cell11);
|
||||
PdfPCell cell12 = pdfTableStyle("catalogue", fontSize, 20, true, true);
|
||||
tableBase.addCell(cell12);
|
||||
// cell 21 第二行 第一列
|
||||
PdfPCell cell21 = pdfTableStyle("Checklist.doc", fontSize, 20, true, true);
|
||||
tableBase.addCell(cell21);
|
||||
PdfPCell cell22 = pdfTableStyle("Xxx(显示文件所在的相对路径)", fontSize, 20, true, true);
|
||||
tableBase.addCell(cell22);
|
||||
// cell 31 第三行 第一列
|
||||
PdfPCell cell31 = pdfTableStyle("CADreport.pdf", fontSize, 20, true, true);
|
||||
tableBase.addCell(cell31);
|
||||
PdfPCell cell32 = pdfTableStyle("Xxx(显示文件所在的相对路径)", fontSize, 20, true, true);
|
||||
tableBase.addCell(cell32);
|
||||
|
||||
document.add(tableBase);
|
||||
}
|
||||
|
||||
public void setComplianceResult(PdfPTable tableBase,Document document,Font fontSize,Map<String,Object> params) throws DocumentException{
|
||||
String cut = (String) params.get("cut");
|
||||
//法规id
|
||||
String id = (String) params.get("id");
|
||||
QueryWrapper<ProjectLawsInventoryEO> lawsInventoryQueryWrapper = new QueryWrapper<>();
|
||||
lawsInventoryQueryWrapper.lambda().eq(ProjectLawsInventoryEO::getId,id);
|
||||
ProjectLawsInventoryEO projectLawsInventoryEO = this.baseMapper.selectOne(lawsInventoryQueryWrapper);
|
||||
|
||||
// 单元格宽度
|
||||
float[] cellsWidth = { 0.45f, 0.55f};
|
||||
try {
|
||||
tableBase.setWidths(cellsWidth);
|
||||
}catch (Exception ex){
|
||||
ex.printStackTrace();
|
||||
}
|
||||
|
||||
tableBase.setTotalWidth(500f);//表格的总宽度
|
||||
tableBase.setWidthPercentage(100);// 表格的宽度百分比
|
||||
|
||||
PdfPTable tableName = new PdfPTable(1);
|
||||
//设置段落上空白
|
||||
tableName.setSpacingBefore(25);
|
||||
tableName.setWidthPercentage(widthPercentage); //设置标题长度占纸张比例
|
||||
//给表格赋值
|
||||
PdfPCell programInformation = pdfTableStyle("Compliance Result", fontSize, 10, false, false);
|
||||
programInformation.disableBorderSide(15);
|
||||
tableName.addCell(programInformation);
|
||||
//将表格添加到文档对象中
|
||||
document.add(tableName);
|
||||
|
||||
// cell 11 第一行 第一列
|
||||
PdfPCell cell11 = pdfTableStyle("Subject", fontSize, 20, true, true);
|
||||
tableBase.addCell(cell11);
|
||||
PdfPCell cell12 = pdfTableStyle("Lamp " + projectLawsInventoryEO.getTitle(), fontSize, 20, true, true);
|
||||
tableBase.addCell(cell12);
|
||||
// cell 21 第二行 第一列
|
||||
PdfPCell cell21 = pdfTableStyle("Conclusion", fontSize, 20, true, true);
|
||||
tableBase.addCell(cell21);
|
||||
PdfPCell cell22 = pdfTableStyle("", fontSize, 20, true, true); //(导出后自己填写)
|
||||
tableBase.addCell(cell22);
|
||||
// cell 31 第三行 第一列
|
||||
PdfPCell cell31 = pdfTableStyle("DiscussionorComments", fontSize, 20, true, true);
|
||||
tableBase.addCell(cell31);
|
||||
PdfPCell cell32 = pdfTableStyle("", fontSize, 20, true, true); //(导出后自己填写)
|
||||
tableBase.addCell(cell32);
|
||||
|
||||
document.add(tableBase);
|
||||
}
|
||||
|
||||
public void setDesignComplianceCheckApprovals(PdfPTable tableBase,Document document,Font fontSize,String[] auditHistoryHead,Map<String,Object> params) throws DocumentException{
|
||||
tableBase.setTotalWidth(500f);//表格的总宽度
|
||||
tableBase.setWidthPercentage(100);// 表格的宽度百分比
|
||||
|
||||
PdfPTable tableName = new PdfPTable(1);
|
||||
//设置段落上空白
|
||||
tableName.setSpacingBefore(25);
|
||||
tableName.setWidthPercentage(widthPercentage); //设置标题长度占纸张比例
|
||||
//给表格赋值
|
||||
PdfPCell programInformation = pdfTableStyle("designComplianceCheckApprovals", fontSize, 10, false, false);
|
||||
programInformation.disableBorderSide(15);
|
||||
tableName.addCell(programInformation);
|
||||
//将表格添加到文档对象中
|
||||
document.add(tableName);
|
||||
|
||||
|
||||
for (int i = 0; i < auditHistoryHead.length; i++) {
|
||||
tableBase.addCell(new Paragraph(auditHistoryHead[i],fontSize));
|
||||
}
|
||||
document.add(tableBase);
|
||||
}
|
||||
|
||||
public void setValidationComplianceCheckApprovals(PdfPTable tableBase,Document document,Font fontSize,String[] auditHistoryHead,Map<String,Object> params) throws DocumentException{
|
||||
List<Map<String,Object>> list = new ArrayList<>();
|
||||
|
||||
Map<String,Object> map1 = new HashMap<>();
|
||||
map1.put("Result","");
|
||||
map1.put("Opinion","Opinion 1");
|
||||
map1.put("Node","Node 1");
|
||||
map1.put("Operator","Operator 1");
|
||||
map1.put("Datetime","Datetime 1");
|
||||
list.add(map1);
|
||||
Map<String,Object> map2 = new HashMap<>();
|
||||
map2.put("Result","Result 2 ");
|
||||
map2.put("Opinion","Opinion 2");
|
||||
map2.put("Node","");
|
||||
map2.put("Operator","Operator 2");
|
||||
map2.put("Datetime","Datetime 2");
|
||||
list.add(map2);
|
||||
Map<String,Object> map3 = new HashMap<>();
|
||||
map3.put("Result","Result 3 ");
|
||||
map3.put("Opinion","Opinion 3");
|
||||
map3.put("Node","Node 3");
|
||||
map3.put("Operator","Operator 3");
|
||||
map3.put("Datetime","Datetime 3");
|
||||
list.add(map3);
|
||||
|
||||
tableBase.setTotalWidth(500f);//表格的总宽度
|
||||
tableBase.setWidthPercentage(100);// 表格的宽度百分比
|
||||
|
||||
PdfPTable tableName = new PdfPTable(1);
|
||||
//设置段落上空白
|
||||
tableName.setSpacingBefore(25);
|
||||
tableName.setWidthPercentage(widthPercentage); //设置标题长度占纸张比例
|
||||
//给表格赋值
|
||||
PdfPCell programInformation = pdfTableStyle("validationComplianceCheckApprovals", fontSize, 10, false, false);
|
||||
programInformation.disableBorderSide(15);
|
||||
tableName.addCell(programInformation);
|
||||
//将表格添加到文档对象中
|
||||
document.add(tableName);
|
||||
|
||||
for (int i = 0; i < auditHistoryHead.length; i++) {
|
||||
tableBase.addCell(new Paragraph(auditHistoryHead[i],fontSize));
|
||||
}
|
||||
|
||||
for (Map<String,Object> map : list) {
|
||||
tableBase.addCell(new Paragraph(map.get("Result").toString(),fontSize));
|
||||
tableBase.addCell(new Paragraph(map.get("Opinion").toString(),fontSize));
|
||||
tableBase.addCell(new Paragraph(map.get("Node").toString(),fontSize));
|
||||
tableBase.addCell(new Paragraph(map.get("Operator").toString(),fontSize));
|
||||
tableBase.addCell(new Paragraph(map.get("Datetime").toString(),fontSize));
|
||||
}
|
||||
document.add(tableBase);
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user