Commit 8cb23f81 authored by qinhu's avatar qinhu

1.报告导出新模板

2.excel转pdf
parent 90a286f8
......@@ -138,7 +138,29 @@
<version>2.8.5</version>
</dependency>
<dependency>
<groupId>com.aspose</groupId> <!--自定义-->
<artifactId>words</artifactId> <!--自定义-->
<version>1.0</version> <!--自定义-->
<scope>system</scope> <!--system,类似provided,需要显式提供依赖的jar以后,Maven就不会在Repository中查找它-->
<systemPath>${basedir}/lib/words.jar</systemPath> <!--项目根目录下的lib文件夹下-->
</dependency>
<!-- https://mvnrepository.com/artifact/com.aspose/aspose-slides -->
<dependency>
<groupId>com.aspose</groupId> <!--自定义-->
<artifactId>sliders</artifactId> <!--自定义-->
<version>1.0</version> <!--自定义-->
<scope>system</scope> <!--system,类似provided,需要显式提供依赖的jar以后,Maven就不会在Repository中查找它-->
<systemPath>${basedir}/lib/aspose.slides-15.9.0.jar</systemPath> <!--项目根目录下的lib文件夹下-->
</dependency>
<dependency>
<groupId>com.aspose</groupId> <!--自定义-->
<artifactId>cells</artifactId> <!--自定义-->
<version>1.0</version> <!--自定义-->
<scope>system</scope> <!--system,类似provided,需要显式提供依赖的jar以后,Maven就不会在Repository中查找它-->
<systemPath>${basedir}/lib/aspose-cells-8.5.2.jar</systemPath> <!--项目根目录下的lib文件夹下-->
</dependency>
</dependencies>
<build>
......
......@@ -61,6 +61,12 @@ public class EntityEnclosureController {
} else {
return BaseResponse.errorMsg("登录信息失效");
}
if (!extName.equals(".pdf")) {
String pdfPath = FastDFSUtils.conventAndUpload(file.getInputStream(), fileName);
map.put("pdfPath", pdfPath);
} else {
map.put("pdfPath", filePath);
}
String picUrl = filePath;
map.put("fileUrl", picUrl);
map.put("fileName", fileName);
......@@ -95,7 +101,7 @@ public class EntityEnclosureController {
map.put("fileUrl", picUrl);
map.put("fileName", fileName);
map.put("extName", extName);
map.put("pdfPath", filePath);
return BaseResponse.okData(map);
} catch (Exception e) {
logger.error(e.toString());
......@@ -127,6 +133,12 @@ public class EntityEnclosureController {
mapSub.put("fileUrl", picUrl);
mapSub.put("fileName", fileName);
mapSub.put("extName", extName);
if (!extName.equals(".pdf")) {
String pdfPath = FastDFSUtils.conventAndUpload(file.getInputStream(), fileName);
mapSub.put("pdfPath", pdfPath);
} else {
mapSub.put("pdfPath", filePath);
}
filePathList.add(mapSub);
}
} else {
......
package cn.wise.sc.cement.business.controller;
import cn.hutool.core.bean.BeanUtil;
import cn.hutool.core.date.DateUtil;
import cn.hutool.core.util.StrUtil;
import cn.wise.sc.cement.business.entity.EntityEnclosure;
import cn.wise.sc.cement.business.model.BaseResponse;
import cn.wise.sc.cement.business.model.FileExt;
......@@ -38,6 +40,8 @@ import org.springframework.web.multipart.MultipartFile;
import javax.servlet.http.HttpServletResponse;
import java.time.LocalDateTime;
import java.util.HashMap;
import java.util.HashSet;
import java.util.Iterator;
import java.util.List;
import java.util.Map;
import java.util.Set;
......@@ -113,11 +117,20 @@ public class ReportController {
beanParams.put("sampleNum", rts.getSampleNum());
beanParams.put("sampleNames", set2String(rts.getSampleNames()));
beanParams.put("teamNames", set2String(rts.getTeamNames()));
beanParams.put("methodNames", set2StringN(rts.getMethodNames()));
beanParams.put("equipmentNames", set2StringN(rts.getEquipmentNames()));
beanParams.put("projectName", rts.getProjectName());
beanParams.put("printDate", rts.getPrintDate());
beanParams.put("year", DateUtil.year(DateUtil.date()));
beanParams.put("month",DateUtil.month(DateUtil.date()));
beanParams.put("day",DateUtil.today());
beanParams.put("reportNo", StrUtil.isEmpty(rts.getReportNo())?"":rts.getReportNo());
beanParams.put("firstMethodName",getFirstSet(rts.getMethodNames()));
beanParams.put("firstEquipment",getFirstSet(rts.getEquipmentNames()));
beanParams.put("methodNames", moveFirst(rts.getMethodNames()));
beanParams.put("equipmentNames", moveFirst(rts.getEquipmentNames()));
//六元素导出
List<SixElementReport> list = iEntrustService.getSampleSixElementCheck(entrustId);
......@@ -136,25 +149,25 @@ public class ReportController {
list1.forEach(this::initMapStr2AlongPro);
beanParams.put("list3", list1);
WordUtil.writeWordReport(rts.getProjectName() + "(报告)", "report.ftl",
WordUtil.writeWordReport(rts.getProjectName() + "(报告)", "report_new.ftl",
beanParams, response, FileExt.EXCL);
}
@PostMapping("/upload")
@ApiOperation("上传报告")
public BaseResponse<Boolean> uploadReport(@RequestBody SampleHandleEnclosureQuery query){
public BaseResponse<Boolean> uploadReport(@RequestBody SampleHandleEnclosureQuery query) {
Assert.notNull(query.getId(),"委托id不能为空!");
Assert.notNull(query.getId(), "委托id不能为空!");
QueryWrapper<EntityEnclosure> qw = new QueryWrapper();
qw.eq("entity_type",5);
qw.eq("entity_id",query.getId());
qw.eq("entity_type", 5);
qw.eq("entity_id", query.getId());
if (FileExt.EXCL.getName().equals(query.getExtName()) ||
FileExt.EXCLX.getName().equals(query.getExtName())){
if (FileExt.EXCL.getName().equals(query.getExtName()) ||
FileExt.EXCLX.getName().equals(query.getExtName())) {
EntityEnclosure one = iEntityEnclosureService.getOne(qw);
if (BeanUtil.isEmpty(one)){
if (BeanUtil.isEmpty(one)) {
EntityEnclosure entityEnclosure = new EntityEnclosure();
entityEnclosure.setEntityId(query.getId());
entityEnclosure.setExtName(query.getExtName());
......@@ -163,9 +176,10 @@ public class ReportController {
entityEnclosure.setEnclosureUrl(query.getEnclosureUrl());
entityEnclosure.setAlias(query.getAlias());
entityEnclosure.setEntityType(5);
entityEnclosure.setPdfUrl(query.getPdfUrl());
iEntityEnclosureService.save(entityEnclosure);
return BaseResponse.okData(true);
}else {
} else {
one.setAlias(query.getAlias());
one.setEnclosureUrl(query.getEnclosureUrl());
one.setExtName(query.getExtName());
......@@ -173,7 +187,7 @@ public class ReportController {
iEntityEnclosureService.updateById(one);
return BaseResponse.okData(true);
}
}else {
} else {
return BaseResponse.errorMsg("文件类型只能是excel!");
}
......@@ -214,6 +228,26 @@ public class ReportController {
sixElement.setSo3(countResultMap.getOrDefault(SixElementKey.SO3.getKey(), "0"));
}
private String getFirstSet(Set<String> set){
Iterator<String> iterator = set.iterator();
if (iterator.hasNext()){
return iterator.next();
}
return "";
}
private static Set<String> moveFirst(Set<String> set){
Set<String> newSet = new HashSet<>(set.size());
Iterator<String> iterator = set.iterator();
if (iterator.hasNext()) {
String next = iterator.next();
newSet.addAll(set);
newSet.remove(next);
return newSet;
}
return null;
}
private void initMapStr2AlongPro(IndustrialReport industrialReport) {
String countResult = industrialReport.getCountResults();
List<SixElementReport.Element> list = JSON.parseArray(countResult, SixElementReport.Element.class);
......@@ -254,5 +288,4 @@ public class ReportController {
}
}
......@@ -60,6 +60,9 @@ public class EntityEnclosure implements Serializable {
@ApiModelProperty("扩展名")
private String extName;
@ApiModelProperty("pdf路径")
private String pdfUrl;
public interface EntityType {
int HEAD = 0;
int EQUIPMENT_TEST = 3;
......
......@@ -59,4 +59,7 @@ public class SampleHandleEnclosure implements Serializable {
@ApiModelProperty("扩展名")
private String extName;
@ApiModelProperty("pdf路径")
private String pdfUrl;
}
......@@ -21,4 +21,6 @@ public class SampleHandleEnclosureQuery {
@ApiModelProperty("路径")
private String enclosureUrl;
@ApiModelProperty("pdf路径")
private String pdfUrl;
}
\ No newline at end of file
......@@ -58,4 +58,7 @@ public class SampleHandleEnclosureVo {
@ApiModelProperty("扩展名")
private String extName;
@ApiModelProperty("pdf地址")
private String pdfUrl;
}
......@@ -199,7 +199,7 @@ public class EntrustServiceImpl extends ServiceImpl<EntrustMapper, Entrust> impl
if(entityEnclosureList != null && entityEnclosureList.size()>0 ){
EntityEnclosure entityEnclosure = entityEnclosureList.get(0);
entrustVo.setAlias(entityEnclosure.getAlias());
entrustVo.setEnclosureUrl(entityEnclosure.getEnclosureUrl());
entrustVo.setEnclosureUrl(entityEnclosure.getPdfUrl());
entrustVo.setExtName(entityEnclosure.getExtName());
}
}
......@@ -1284,6 +1284,7 @@ public class EntrustServiceImpl extends ServiceImpl<EntrustMapper, Entrust> impl
sampleHandleEnclosure.setEnclosureUrl(query.getEnclosureUrl())
.setExtName(query.getExtName())
.setUpdateTime(LocalDateTime.now())
.setPdfUrl(query.getPdfUrl())
.setStatus(1);
if (StringUtils.isEmpty(query.getEnclosureUrl())) {
sampleHandleEnclosure.setStatus(2); //上传失败
......
package cn.wise.sc.cement.business.util;
import cn.hutool.core.io.file.FileReader;
import cn.wise.sc.cement.business.util.dfs.FastDFSUtils;
import com.aspose.cells.SaveFormat;
import com.aspose.cells.Workbook;
import java.io.File;
import java.io.FileInputStream;
import java.io.IOException;
/**
* @author neo.shu
* @since 2020/9/10 20:38
*/
public class Word2PdfUtil {
public static void main(String[] args) {
try {
long time = System.currentTimeMillis();
File file = new File("D:\\JavaProject\\tianjin-cement\\cement-business\\src\\main\\resources\\检测报告模板(最新).xls");
Workbook document = new Workbook(new FileInputStream(file));
//pdf路径
File outputFile = new File("temp-" + System.currentTimeMillis() + ".pdf");
//操作文档保存
document.save(outputFile.getAbsolutePath(), SaveFormat.PDF);
FileReader fileReader = new FileReader(outputFile.getAbsolutePath());
String filePath = FastDFSUtils.uploadPic(fileReader.readBytes(), outputFile.getName(), file.length());
long time1 = System.currentTimeMillis();
System.out.println((time1 - time) / 1000);
System.out.println(filePath);
} catch (IOException e) {
e.printStackTrace();
} catch (Exception e) {
e.printStackTrace();
}
}
}
package cn.wise.sc.cement.business.util.dfs;
import cn.hutool.core.io.FileUtil;
import cn.hutool.core.io.file.FileReader;
import com.aspose.cells.SaveFormat;
import com.aspose.cells.Workbook;
import com.aspose.words.Document;
import org.apache.commons.io.FilenameUtils;
import org.csource.common.MyException;
import org.csource.common.NameValuePair;
import org.csource.fastdfs.*;
import java.io.File;
import java.io.FileNotFoundException;
import java.io.IOException;
import java.io.InputStream;
......@@ -174,4 +181,26 @@ public class FastDFSUtils {
}
}
public static String conventAndUpload(InputStream inputStream, String filename) {
File outputFile = new File(filename + ".pdf");
String filePath = "";
try {
Workbook document = new Workbook(inputStream);
//pdf路径
//操作文档保存
document.save(outputFile.getAbsolutePath(), SaveFormat.PDF);
FileReader fileReader = new FileReader(outputFile.getAbsolutePath());
filePath = uploadPic(fileReader.readBytes(), outputFile.getName(), outputFile.length());
} catch (IOException e) {
e.printStackTrace();
} catch (Exception e) {
e.printStackTrace();
} finally {
//删除创建的输出文件
FileUtil.del(outputFile);
return filePath;
}
}
}
\ No newline at end of file
......@@ -4,7 +4,7 @@ fastdfs.charset=UTF-8
fastdfs.http.tracker_http_port=8888
fastdfs.http.anti_steal_token=no
fastdfs.http.secret_key=FastDFS1234567890
fastdfs.tracker_servers=localhost:22122
fastdfs.tracker_servers=192.168.110.85:22122
#fastdfs.tracker_servers=localhost:22122
......@@ -20448,7 +20448,7 @@
</Cell>
</Row>
</#list>
<#-- 六元素2--end-->
<#--六元素2--end-->
</Table>
<WorksheetOptions xmlns="urn:schemas-microsoft-com:office:excel">
<PageSetup>
......
This diff is collapsed.
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment