输出请求参数

This commit is contained in:
bigtian 2022-08-25 09:48:05 +08:00
parent e9e23d1324
commit e31be7fe70
2 changed files with 23 additions and 14 deletions

View File

@ -228,6 +228,11 @@
<version>1.04</version> <version>1.04</version>
<scope>provided</scope> <scope>provided</scope>
</dependency> </dependency>
<dependency>
<groupId>com.alibaba.fastjson2</groupId>
<artifactId>fastjson2</artifactId>
<version>2.0.12</version>
</dependency>
<!-- https://mvnrepository.com/artifact/lennart/cpdetector --> <!-- https://mvnrepository.com/artifact/lennart/cpdetector -->
<!-- <dependency>--> <!-- <dependency>-->

View File

@ -4,16 +4,21 @@ import cn.keking.exception.KkFileException;
import cn.keking.service.ContractService; import cn.keking.service.ContractService;
import cn.keking.utils.Consts; import cn.keking.utils.Consts;
import cn.keking.utils.ServiceResponse; import cn.keking.utils.ServiceResponse;
import io.swagger.annotations.*; import com.alibaba.fastjson2.JSON;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import io.swagger.annotations.ApiParam;
import lombok.extern.slf4j.Slf4j; import lombok.extern.slf4j.Slf4j;
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.annotation.Resource; import javax.annotation.Resource;
import javax.servlet.http.HttpServletResponse; import javax.servlet.http.HttpServletResponse;
import java.io.*; import java.io.BufferedInputStream;
import java.io.File;
import java.io.FileInputStream;
import java.io.OutputStream;
import java.util.*; import java.util.*;
import java.util.concurrent.ConcurrentHashMap;
/** /**
* @author Hikaru * @author Hikaru
@ -22,7 +27,7 @@ import java.util.concurrent.ConcurrentHashMap;
@RestController @RestController
@RequestMapping("/contract") @RequestMapping("/contract")
@Slf4j @Slf4j
@Api(tags = "合同模板操作" ) @Api(tags = "合同模板操作")
public class ContractController { public class ContractController {
@ -30,8 +35,6 @@ public class ContractController {
private ContractService contractService; private ContractService contractService;
/** /**
* 合同生成 * 合同生成
* listTemplate * listTemplate
@ -43,7 +46,7 @@ public class ContractController {
@ApiOperation("根据模板生成合同") @ApiOperation("根据模板生成合同")
@PostMapping("/gen/{templateName}") @PostMapping("/gen/{templateName}")
public ServiceResponse<String> contractGen( public ServiceResponse<String> contractGen(
@ApiParam( value = "模板名称: 销售合同: sellContract ; 销售框架合同: frameContract", required = true ) @PathVariable String templateName, @ApiParam(value = "模板名称: 销售合同: sellContract ; 销售框架合同: frameContract", required = true) @PathVariable String templateName,
@io.swagger.v3.oas.annotations.parameters.RequestBody() @io.swagger.v3.oas.annotations.parameters.RequestBody()
@RequestBody Map<String, Object> dataMap) { @RequestBody Map<String, Object> dataMap) {
try { try {
@ -93,7 +96,7 @@ public class ContractController {
*/ */
@ApiOperation("查询模板列表") @ApiOperation("查询模板列表")
@PostMapping("/list/template") @PostMapping("/list/template")
public ServiceResponse<List<String>> listTemplate( @ApiParam( value = "默认列表: 销售合同: sellContract ; 销售框架合同: frameContract。 传空返回所有模板列表" ) @RequestBody(required = false) List<String> templateNames) { public ServiceResponse<List<String>> listTemplate(@ApiParam(value = "默认列表: 销售合同: sellContract ; 销售框架合同: frameContract。 传空返回所有模板列表") @RequestBody(required = false) List<String> templateNames) {
try { try {
templateNames = Optional.ofNullable(templateNames).orElse(Arrays.asList(Consts.FRAME_CONTRACT, Consts.SELL_CONTRACT)); templateNames = Optional.ofNullable(templateNames).orElse(Arrays.asList(Consts.FRAME_CONTRACT, Consts.SELL_CONTRACT));
List<String> urls = this.contractService.listTemplate(templateNames); List<String> urls = this.contractService.listTemplate(templateNames);
@ -111,24 +114,25 @@ public class ContractController {
/** /**
* @return 下载合同pdf文件 * @return 下载合同pdf文件
* */
* */
@ApiParam("下载合同pdf文件") @ApiParam("下载合同pdf文件")
@PostMapping("/download/{templateName}") @PostMapping("/download/{templateName}")
public ServiceResponse downloadcontract( public ServiceResponse downloadcontract(
@ApiParam( value = "模板名称: 销售合同: sellContract ; 销售框架合同: frameContract", required = true ) @PathVariable String templateName, @ApiParam(value = "模板名称: 销售合同: sellContract ; 销售框架合同: frameContract", required = true) @PathVariable String templateName,
@io.swagger.v3.oas.annotations.parameters.RequestBody() @io.swagger.v3.oas.annotations.parameters.RequestBody()
@RequestBody Map<String, Object> dataMap, @RequestBody Map<String, Object> dataMap,
HttpServletResponse response HttpServletResponse response
) { ) {
try { try {
log.info(JSON.toJSONString(dataMap));
OutputStream outstream = null; OutputStream outstream = null;
File file=contractService.download(templateName, dataMap); File file = contractService.download(templateName, dataMap);
outstream = response.getOutputStream(); outstream = response.getOutputStream();
response.setCharacterEncoding("utf-8"); response.setCharacterEncoding("utf-8");
response.setContentType("application/octet-stream"); response.setContentType("application/octet-stream");
String filename=dataMap.get("conCode")+".pdf"; String filename = dataMap.get("conCode") + ".pdf";
response.reset(); response.reset();
// 设置response的Header // 设置response的Header
response.addHeader("Content-Disposition", "attachment;filename=" + new String(filename.getBytes())); response.addHeader("Content-Disposition", "attachment;filename=" + new String(filename.getBytes()));
@ -143,7 +147,7 @@ public class ContractController {
bufferedInputStream.close(); bufferedInputStream.close();
outstream.flush(); outstream.flush();
outstream.close(); outstream.close();
return new ServiceResponse<>( "success", return new ServiceResponse<>("success",
ServiceResponse.RESULT_CODE_SUCCESS_CODE); ServiceResponse.RESULT_CODE_SUCCESS_CODE);
} catch (Exception e) { } catch (Exception e) {
log.error("生成错误:", e); log.error("生成错误:", e);