DocumentController.java 5.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154
  1. package com.yingpaipay.business.controller;
  2. import java.io.IOException;
  3. import java.util.List;
  4. import com.yingpaipay.business.domain.bo.*;
  5. import com.yingpaipay.business.domain.vo.DocumentAuditLogVo;
  6. import lombok.RequiredArgsConstructor;
  7. import jakarta.servlet.http.HttpServletResponse;
  8. import jakarta.validation.constraints.*;
  9. import cn.dev33.satoken.annotation.SaCheckPermission;
  10. import org.springframework.web.bind.annotation.*;
  11. import org.springframework.validation.annotation.Validated;
  12. import org.dromara.common.idempotent.annotation.RepeatSubmit;
  13. import org.dromara.common.log.annotation.Log;
  14. import org.dromara.common.web.core.BaseController;
  15. import org.dromara.common.mybatis.core.page.PageQuery;
  16. import org.dromara.common.core.domain.R;
  17. import org.dromara.common.core.validate.AddGroup;
  18. import org.dromara.common.core.validate.EditGroup;
  19. import org.dromara.common.log.enums.BusinessType;
  20. import org.dromara.common.excel.utils.ExcelUtil;
  21. import com.yingpaipay.business.domain.vo.DocumentVo;
  22. import com.yingpaipay.business.service.IDocumentService;
  23. import org.dromara.common.mybatis.core.page.TableDataInfo;
  24. /**
  25. * 文档
  26. *
  27. * @author Huanyi
  28. * @date 2025-12-11
  29. */
  30. @Validated
  31. @RequiredArgsConstructor
  32. @RestController
  33. @RequestMapping("/document/document")
  34. public class DocumentController extends BaseController {
  35. private final IDocumentService documentService;
  36. /**
  37. * 查询文档列表
  38. */
  39. @SaCheckPermission("document:document:list")
  40. @GetMapping("/list")
  41. public TableDataInfo<DocumentVo> list(DocumentBo bo, PageQuery pageQuery) {
  42. return documentService.queryPageList(bo, pageQuery);
  43. }
  44. /**
  45. * 导出文档列表
  46. */
  47. @SaCheckPermission("document:document:export")
  48. @Log(title = "文档", businessType = BusinessType.EXPORT)
  49. @PostMapping("/export")
  50. public void export(DocumentBo bo, HttpServletResponse response) {
  51. List<DocumentVo> list = documentService.queryList(bo);
  52. ExcelUtil.exportExcel(list, "文档", DocumentVo.class, response);
  53. }
  54. /**
  55. * 获取文档详细信息
  56. *
  57. * @param id 主键
  58. */
  59. @SaCheckPermission("document:document:query")
  60. @GetMapping("/{id}")
  61. public R<DocumentVo> getInfo(@NotNull(message = "主键不能为空")
  62. @PathVariable Long id) {
  63. return R.ok(documentService.queryById(id));
  64. }
  65. /**
  66. * 新增文档
  67. */
  68. @SaCheckPermission("document:document:add")
  69. @Log(title = "文档", businessType = BusinessType.INSERT)
  70. @RepeatSubmit()
  71. @PostMapping()
  72. public R<Void> add(@Validated(AddGroup.class) @RequestBody DocumentBo bo) {
  73. return toAjax(documentService.insertByBo(bo));
  74. }
  75. /**
  76. * 修改文档
  77. */
  78. @SaCheckPermission("document:document:edit")
  79. @Log(title = "文档", businessType = BusinessType.UPDATE)
  80. @RepeatSubmit()
  81. @PutMapping()
  82. public R<Void> edit(@Validated(EditGroup.class) @RequestBody DocumentBo bo) {
  83. return toAjax(documentService.updateByBo(bo));
  84. }
  85. /**
  86. * 删除文档
  87. *
  88. * @param ids 主键串
  89. */
  90. @SaCheckPermission("document:document:remove")
  91. @Log(title = "文档", businessType = BusinessType.DELETE)
  92. @DeleteMapping("/{ids}")
  93. public R<Void> remove(@NotEmpty(message = "主键不能为空")
  94. @PathVariable Long[] ids) {
  95. return toAjax(documentService.deleteWithValidByIds(List.of(ids), true));
  96. }
  97. @SaCheckPermission("document:document:mark")
  98. @Log(title = "文档", businessType = BusinessType.UPDATE)
  99. @PutMapping("/mark")
  100. public R<Void> mark(@RequestBody DocumentMarkBo bo) {
  101. return toAjax(documentService.mark(bo));
  102. }
  103. @SaCheckPermission("document:document:submit")
  104. @Log(title = "文档", businessType = BusinessType.UPDATE)
  105. @PutMapping("/submit")
  106. public R<Void> submit(@RequestBody DocumentSubmitBo bo) {
  107. return toAjax(documentService.submit(bo));
  108. }
  109. @SaCheckPermission("document:document:audit")
  110. @Log(title = "文档", businessType = BusinessType.UPDATE)
  111. @PutMapping("/audit")
  112. public R<Void> audit(@RequestBody DocumentAuditBo bo) {
  113. return toAjax(documentService.audit(bo));
  114. }
  115. @SaCheckPermission("document:document:confirmSubmit")
  116. @Log(title = "文档", businessType = BusinessType.DELETE)
  117. @DeleteMapping("/confirmSubmit")
  118. public R<Void> confirmSubmit(@RequestParam("id") Long id) {
  119. return toAjax(documentService.confirmSubmit(id));
  120. }
  121. @SaCheckPermission("document:document:logAudit")
  122. @GetMapping("/logAudit")
  123. public TableDataInfo<DocumentAuditLogVo> logAudit(DocumentAuditLogBo bo, PageQuery pageQuery) {
  124. return documentService.logAudit(bo, pageQuery);
  125. }
  126. @SaCheckPermission("document:document:filing")
  127. @Log(title = "文档", businessType = BusinessType.UPDATE)
  128. @PutMapping("/filing")
  129. public R<Void> filing(@RequestBody DocumentFilingBo bo) {
  130. return toAjax(documentService.filing(bo));
  131. }
  132. @PostMapping(value = "/download/{ossId}")
  133. public void download(@PathVariable Long ossId, HttpServletResponse response) throws IOException {
  134. documentService.download(ossId, response);
  135. }
  136. }