Commit 9c5f747e authored by wangxl's avatar wangxl

1

parent 11eff3d6
...@@ -205,6 +205,7 @@ ...@@ -205,6 +205,7 @@
<artifactId>flying-saucer-pdf</artifactId> <artifactId>flying-saucer-pdf</artifactId>
<version>9.1.22</version> <version>9.1.22</version>
</dependency> </dependency>
<dependency> <dependency>
<groupId>org.xhtmlrenderer</groupId> <groupId>org.xhtmlrenderer</groupId>
<artifactId>flying-saucer-pdf-itext5</artifactId> <artifactId>flying-saucer-pdf-itext5</artifactId>
......
...@@ -14,8 +14,8 @@ import com.yiboshi.science.rest.BaseController; ...@@ -14,8 +14,8 @@ import com.yiboshi.science.rest.BaseController;
import com.yiboshi.science.service.ComFileService; import com.yiboshi.science.service.ComFileService;
import com.yiboshi.science.service.ComProjectService; import com.yiboshi.science.service.ComProjectService;
import com.yiboshi.science.service.ComProjectTaskService; import com.yiboshi.science.service.ComProjectTaskService;
import com.yiboshi.science.utils.*;
import com.yiboshi.science.service.SystemParameterService; import com.yiboshi.science.service.SystemParameterService;
import com.yiboshi.science.utils.PDF;
import com.yiboshi.science.utils.ProjectInfoToPDF; import com.yiboshi.science.utils.ProjectInfoToPDF;
import com.yiboshi.science.utils.StringUtil; import com.yiboshi.science.utils.StringUtil;
import io.swagger.annotations.Api; import io.swagger.annotations.Api;
...@@ -44,15 +44,15 @@ public class ComProjectController extends BaseController<ComProjectService, ComP ...@@ -44,15 +44,15 @@ public class ComProjectController extends BaseController<ComProjectService, ComP
@Autowired @Autowired
private ComProjectService comProjectService; private ComProjectService comProjectService;
@Autowired
private SystemParameterService systemParameterService;
@Autowired @Autowired
private ComProjectTaskService comProjectTaskService; private ComProjectTaskService comProjectTaskService;
@Autowired @Autowired
private ComFileService comFileService; private ComFileService comFileService;
@Autowired
private SystemParameterService systemParameterService;
/** /**
* 功能:分页查询 * 功能:分页查询
* *
...@@ -87,13 +87,25 @@ public class ComProjectController extends BaseController<ComProjectService, ComP ...@@ -87,13 +87,25 @@ public class ComProjectController extends BaseController<ComProjectService, ComP
return ResponseDataModel.ok(comProjectService.getCount(e)); return ResponseDataModel.ok(comProjectService.getCount(e));
} }
@ApiOperation(value = "项目信息导出", httpMethod = "POST", notes = "项目信息导出")
@RequestMapping("/export1/{id}")
@PostMapping
public void export1(@PathVariable String id) {
comProjectService.export(id, request, response);
}
@ApiOperation(value = "项目信息导出", httpMethod = "POST", notes = "项目信息导出") @ApiOperation(value = "项目信息导出", httpMethod = "POST", notes = "项目信息导出")
@RequestMapping("/export/{id}") @RequestMapping("/export/{id}")
@PostMapping @PostMapping
public void export(@PathVariable String id) { public ResponseDataModel<byte[]> export(@PathVariable String id) {
comProjectService.export(id,request,response); try {
return ResponseDataModel.ok(PDF.createPDF(response, "tmp-report.html", new ComProject()));
} catch (Exception e) {
return new ResponseDataModel(ResponseCode.SERVER_ERROR, "");
}
} }
/** /**
* 根据id获取项目信息 * 根据id获取项目信息
* *
...@@ -163,7 +175,7 @@ public class ComProjectController extends BaseController<ComProjectService, ComP ...@@ -163,7 +175,7 @@ public class ComProjectController extends BaseController<ComProjectService, ComP
@PostMapping @PostMapping
@RequestMapping("/audit") @RequestMapping("/audit")
@Logs(value = CommonEnum.logType.projectAudit) @Logs(value = CommonEnum.logType.projectAudit)
public ResponseDataModel<String> audit(@Validated @RequestBody ComProjectAuditDTO comProjectAudit, BindingResult bindingResult) { public ResponseDataModel<String> audit(@Validated @RequestBody ComProjectAuditDTO comProjectAudit, BindingResult bindingResult) {
comProjectService.audit(comProjectAudit, SecurityUserHolder.getUnitId(), SecurityUserHolder.getUnitCode()); comProjectService.audit(comProjectAudit, SecurityUserHolder.getUnitId(), SecurityUserHolder.getUnitCode());
return ResponseDataModel.ok("审核成功"); return ResponseDataModel.ok("审核成功");
} }
......
package com.yiboshi.science.rest.v1; package com.yiboshi.science.rest.v1;
import com.yiboshi.arch.base.ResponseCode;
import com.yiboshi.arch.base.ResponseDataModel; import com.yiboshi.arch.base.ResponseDataModel;
import com.yiboshi.science.base.Pagination; import com.yiboshi.science.base.Pagination;
import com.yiboshi.science.config.annotation.Logs; import com.yiboshi.science.config.annotation.Logs;
import com.yiboshi.science.config.security.SecurityUserHolder; import com.yiboshi.science.config.security.SecurityUserHolder;
import com.yiboshi.science.entity.ComProject;
import com.yiboshi.science.entity.ComProjectAudit; import com.yiboshi.science.entity.ComProjectAudit;
import com.yiboshi.science.entity.ComProjectTask; import com.yiboshi.science.entity.ComProjectTask;
import com.yiboshi.science.entity.SelectListItem; import com.yiboshi.science.entity.SelectListItem;
...@@ -16,17 +18,22 @@ import com.yiboshi.science.param.query.ComProjectTaskQueryVO; ...@@ -16,17 +18,22 @@ import com.yiboshi.science.param.query.ComProjectTaskQueryVO;
import com.yiboshi.science.rest.BaseController; import com.yiboshi.science.rest.BaseController;
import com.yiboshi.science.service.ComProjectTaskService; import com.yiboshi.science.service.ComProjectTaskService;
import com.yiboshi.science.service.SystemParameterService; import com.yiboshi.science.service.SystemParameterService;
import com.yiboshi.science.utils.PDF;
import com.yiboshi.science.utils.PdfUtil;
import com.yiboshi.science.utils.StringUtil; import com.yiboshi.science.utils.StringUtil;
import io.swagger.annotations.Api; import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation; import io.swagger.annotations.ApiOperation;
import org.apache.velocity.VelocityContext;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.validation.BindingResult; import org.springframework.validation.BindingResult;
import org.springframework.validation.annotation.Validated; import org.springframework.validation.annotation.Validated;
import org.springframework.web.bind.annotation.*; import org.springframework.web.bind.annotation.*;
import org.springframework.web.multipart.MultipartFile; import org.springframework.web.multipart.MultipartFile;
import javax.servlet.ServletOutputStream;
import javax.validation.constraints.NotBlank; import javax.validation.constraints.NotBlank;
import java.util.ArrayList; import java.util.ArrayList;
import java.util.Calendar;
import java.util.List; import java.util.List;
/** /**
...@@ -142,4 +149,29 @@ public class ComProjectTaskController extends BaseController<ComProjectTaskServi ...@@ -142,4 +149,29 @@ public class ComProjectTaskController extends BaseController<ComProjectTaskServi
return ResponseDataModel.ok(list); return ResponseDataModel.ok(list);
} }
@ApiOperation(value = "项目导出", httpMethod = "POST", notes = "项目导出")
@RequestMapping("/export/{id}")
@PostMapping
public ResponseDataModel<byte[]> export(@PathVariable String id) {
try {
try (ServletOutputStream outputStream = response.getOutputStream()) {
VelocityContext context = new VelocityContext();
Calendar calendar = Calendar.getInstance();
int month = calendar.get(Calendar.MONTH) + 1;
int day = calendar.get(Calendar.DATE);
context.put("reportYear", 2024);
context.put("year", calendar.get(Calendar.YEAR));
context.put("month", month >= 10 ? month : "0" + month);
context.put("day", day >= 10 ? day : "0" + day);
PdfUtil.pdfFile(context, "/template/demo.html", outputStream);
} catch (Exception e) {
e.printStackTrace();
}
return ResponseDataModel.ok(null);
// return ResponseDataModel.ok(PDF.createPDF(response, "tmp-task.html", ComProjectTaskService.getTaskByProjId(id)));
} catch (Exception e) {
return new ResponseDataModel(ResponseCode.SERVER_ERROR, "");
}
}
} }
\ No newline at end of file
...@@ -8,16 +8,10 @@ import freemarker.template.Configuration; ...@@ -8,16 +8,10 @@ import freemarker.template.Configuration;
import freemarker.template.Template; import freemarker.template.Template;
import freemarker.template.TemplateException; import freemarker.template.TemplateException;
import freemarker.template.TemplateExceptionHandler; import freemarker.template.TemplateExceptionHandler;
import org.apache.velocity.app.Velocity;
import org.springframework.ui.freemarker.FreeMarkerTemplateUtils;
import org.springframework.web.servlet.view.freemarker.FreeMarkerConfigurer;
import org.xhtmlrenderer.pdf.ITextFontResolver;
import org.xhtmlrenderer.pdf.ITextRenderer; import org.xhtmlrenderer.pdf.ITextRenderer;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse; import javax.servlet.http.HttpServletResponse;
import java.io.*; import java.io.*;
import java.util.HashMap;
import java.util.Map; import java.util.Map;
import static java.lang.System.in; import static java.lang.System.in;
...@@ -45,6 +39,8 @@ public class PDF { ...@@ -45,6 +39,8 @@ public class PDF {
String htmlContent = tmpText.toString(); String htmlContent = tmpText.toString();
// 创建PDF渲染器 // 创建PDF渲染器
ITextRenderer renderer = new ITextRenderer(); ITextRenderer renderer = new ITextRenderer();
// Java代码示例
// renderer.getSharedContext().setDPI(1); // 提高DPI减少锯齿
// 设置中文字体 // 设置中文字体
String simPath = ResourceFileUtil.getAbsolutePath("/fonts/simsun.ttc"); String simPath = ResourceFileUtil.getAbsolutePath("/fonts/simsun.ttc");
String msyhPath = ResourceFileUtil.getAbsolutePath("/fonts/msyh.ttc"); String msyhPath = ResourceFileUtil.getAbsolutePath("/fonts/msyh.ttc");
......
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