PatentInstructionController.java 3.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899
  1. package cn.cslg.pas.controller;
  2. import cn.cslg.pas.common.core.annotation.Permission;
  3. import cn.cslg.pas.common.core.base.Constants;
  4. import cn.cslg.pas.common.model.vo.PatentInstructionVO;
  5. import cn.cslg.pas.common.utils.FileUtils;
  6. import cn.cslg.pas.common.utils.Response;
  7. import cn.cslg.pas.common.utils.SecurityUtils.LoginUtils;
  8. import cn.cslg.pas.common.utils.auth.checkAuth;
  9. import cn.cslg.pas.domain.PatentInstruction;
  10. import cn.cslg.pas.service.PatentInstructionService;
  11. import cn.hutool.core.io.FileUtil;
  12. import cn.hutool.core.io.IoUtil;
  13. import io.swagger.v3.oas.annotations.Operation;
  14. import io.swagger.v3.oas.annotations.tags.Tag;
  15. import lombok.RequiredArgsConstructor;
  16. import org.springframework.context.annotation.Lazy;
  17. import org.springframework.web.bind.annotation.GetMapping;
  18. import org.springframework.web.bind.annotation.PostMapping;
  19. import org.springframework.web.bind.annotation.RequestMapping;
  20. import org.springframework.web.bind.annotation.RestController;
  21. import org.springframework.web.multipart.MultipartFile;
  22. import javax.servlet.ServletOutputStream;
  23. import javax.servlet.http.HttpServletResponse;
  24. import java.io.IOException;
  25. /**
  26. * <p>
  27. * 专利说明书 前端控制器
  28. * </p>
  29. *
  30. * @author 王岩
  31. * @since 2022-03-02
  32. */
  33. @Tag(name = "专利说明书")
  34. @RestController
  35. @RequestMapping(Constants.API_VERSION_V2 + "/patent/instruction")
  36. @RequiredArgsConstructor(onConstructor_ = {@Lazy})
  37. public class PatentInstructionController {
  38. private final PatentInstructionService patentInstructionService;
  39. private final FileUtils fileUtils;
  40. private final LoginUtils loginUtils;
  41. @GetMapping("list")
  42. @Operation(summary = "说明书列表")
  43. public String getPageList(PatentInstructionVO params) {
  44. return Response.success(patentInstructionService.getPageList(params));
  45. }
  46. @checkAuth(FunId = "/workspace/folder/batchUploadSpecification")
  47. @PostMapping("/batch/upload")
  48. @Operation(summary = "批量上传说明书")
  49. public String batchUpload(String url, Integer type, String remark) throws IOException {
  50. patentInstructionService.batchUpload(url, type, remark, loginUtils.getId());
  51. return Response.success(true);
  52. }
  53. @Permission(roles = {1, 2})
  54. @PostMapping("add")
  55. @Operation(summary = "新增说明书")
  56. public String add(MultipartFile file, PatentInstruction patentInstruction) {
  57. return patentInstructionService.add(file, patentInstruction);
  58. }
  59. @checkAuth(FunId = "/workspace/details/updataInstruction")
  60. @PostMapping("edit")
  61. @Operation(summary = "编辑说明书")
  62. public String edit(MultipartFile file, PatentInstruction patentInstruction) {
  63. return patentInstructionService.edit(file, patentInstruction);
  64. }
  65. @Permission(roles = {1, 2})
  66. @PostMapping("delete")
  67. @Operation(summary = "删除说明书")
  68. public String delete(Integer id) {
  69. return patentInstructionService.delete(id);
  70. }
  71. @PostMapping("file")
  72. @Operation(summary = "获取说明书文件流")
  73. public void pdfFile(String patentNo, Integer type, HttpServletResponse response) {
  74. try {
  75. PatentInstruction patentInstruction = patentInstructionService.getPatentInstructionByPatentNoAndType(patentNo, type);
  76. if (patentInstruction != null) {
  77. response.setHeader("Content-Disposition", "attachment;filename=" + patentInstruction.getFileName());
  78. ServletOutputStream out = response.getOutputStream();
  79. // out.write(FileUtil.readBytes(fileUtils.getSystemPath(patentInstruction.getUrl())));
  80. String fil = fileUtils.getSystemPath() + patentInstruction.getUrl();
  81. out.write(FileUtil.readBytes(fil));
  82. IoUtil.close(out);
  83. }
  84. } catch (Exception e) {
  85. e.printStackTrace();
  86. }
  87. }
  88. }