CrmQuoteApprovalController.java 3.1 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091
  1. package org.dromara.crm.controller;
  2. import cn.dev33.satoken.annotation.SaCheckPermission;
  3. import lombok.RequiredArgsConstructor;
  4. import org.dromara.common.core.domain.R;
  5. import org.dromara.common.idempotent.annotation.RepeatSubmit;
  6. import org.dromara.common.log.annotation.Log;
  7. import org.dromara.common.log.enums.BusinessType;
  8. import org.dromara.common.web.core.BaseController;
  9. import org.dromara.crm.domain.vo.CrmQuoteApprovalVo;
  10. import org.dromara.crm.service.ICrmQuoteApprovalService;
  11. import org.springframework.validation.annotation.Validated;
  12. import org.springframework.web.bind.annotation.*;
  13. import java.util.List;
  14. import java.util.Map;
  15. /**
  16. * 报价单审批Controller
  17. *
  18. * @author 系统管理员
  19. * @date 2025-01-03
  20. */
  21. @Validated
  22. @RequiredArgsConstructor
  23. @RestController
  24. @RequestMapping("/crm/quote/approval")
  25. public class CrmQuoteApprovalController extends BaseController {
  26. private final ICrmQuoteApprovalService quoteApprovalService;
  27. /**
  28. * 查询审批记录列表
  29. */
  30. // @SaCheckPermission("crm:quote:query")
  31. @GetMapping("/list")
  32. public R<List<CrmQuoteApprovalVo>> list(@RequestParam Long quoteId) {
  33. return R.ok(quoteApprovalService.queryListByQuoteId(quoteId));
  34. }
  35. /**
  36. * 审批报价单
  37. */
  38. // @SaCheckPermission("crm:quote:approval")
  39. @Log(title = "审批报价单", businessType = BusinessType.UPDATE)
  40. @RepeatSubmit()
  41. @PostMapping()
  42. public R<Void> approve(@RequestBody Map<String, Object> params) {
  43. Object idObj = params.get("id");
  44. if (idObj == null) {
  45. return R.fail("审批记录ID不能为空");
  46. }
  47. Long id = Long.valueOf(idObj.toString());
  48. String approvalResult = (String) params.get("approvalResult");
  49. String approvalOpinion = (String) params.get("approvalOpinion");
  50. String remark = (String) params.get("remark");
  51. return toAjax(quoteApprovalService.approveQuote(id, approvalResult, approvalOpinion, remark));
  52. }
  53. /**
  54. * 撤回审批
  55. */
  56. // @SaCheckPermission("crm:quote:edit")
  57. @Log(title = "撤回审批", businessType = BusinessType.UPDATE)
  58. @PutMapping("/withdraw")
  59. public R<Void> withdraw(@RequestBody Map<String, Object> params) {
  60. Object idObj = params.get("id");
  61. if (idObj == null) {
  62. return R.fail("报价单ID不能为空");
  63. }
  64. Long id = Long.valueOf(idObj.toString());
  65. String remark = (String) params.get("remark");
  66. return toAjax(quoteApprovalService.withdrawApproval(id, remark));
  67. }
  68. /**
  69. * 刷新审批人姓名(修复旧数据)
  70. */
  71. // @SaCheckPermission("crm:quote:edit")
  72. @Log(title = "刷新审批人姓名", businessType = BusinessType.UPDATE)
  73. @PostMapping("/refreshNames")
  74. public R<Integer> refreshApproverNames(@RequestBody(required = false) Map<String, Object> params) {
  75. Long quoteId = null;
  76. if (params != null && params.get("quoteId") != null) {
  77. quoteId = Long.valueOf(params.get("quoteId").toString());
  78. }
  79. Integer count = quoteApprovalService.refreshApproverNames(quoteId);
  80. return R.ok(count);
  81. }
  82. }