package org.dromara.crm.controller; import cn.dev33.satoken.annotation.SaCheckPermission; import lombok.RequiredArgsConstructor; import org.dromara.common.core.domain.R; import org.dromara.common.idempotent.annotation.RepeatSubmit; import org.dromara.common.log.annotation.Log; import org.dromara.common.log.enums.BusinessType; import org.dromara.common.web.core.BaseController; import org.dromara.crm.domain.vo.CrmQuoteApprovalVo; import org.dromara.crm.service.ICrmQuoteApprovalService; import org.springframework.validation.annotation.Validated; import org.springframework.web.bind.annotation.*; import java.util.List; import java.util.Map; /** * 报价单审批Controller * * @author 系统管理员 * @date 2025-01-03 */ @Validated @RequiredArgsConstructor @RestController @RequestMapping("/crm/quote/approval") public class CrmQuoteApprovalController extends BaseController { private final ICrmQuoteApprovalService quoteApprovalService; /** * 查询审批记录列表 */ // @SaCheckPermission("crm:quote:query") @GetMapping("/list") public R> list(@RequestParam Long quoteId) { return R.ok(quoteApprovalService.queryListByQuoteId(quoteId)); } /** * 审批报价单 */ // @SaCheckPermission("crm:quote:approval") @Log(title = "审批报价单", businessType = BusinessType.UPDATE) @RepeatSubmit() @PostMapping() public R approve(@RequestBody Map params) { Object idObj = params.get("id"); if (idObj == null) { return R.fail("审批记录ID不能为空"); } Long id = Long.valueOf(idObj.toString()); String approvalResult = (String) params.get("approvalResult"); String approvalOpinion = (String) params.get("approvalOpinion"); String remark = (String) params.get("remark"); return toAjax(quoteApprovalService.approveQuote(id, approvalResult, approvalOpinion, remark)); } /** * 撤回审批 */ // @SaCheckPermission("crm:quote:edit") @Log(title = "撤回审批", businessType = BusinessType.UPDATE) @PutMapping("/withdraw") public R withdraw(@RequestBody Map params) { Object idObj = params.get("id"); if (idObj == null) { return R.fail("报价单ID不能为空"); } Long id = Long.valueOf(idObj.toString()); String remark = (String) params.get("remark"); return toAjax(quoteApprovalService.withdrawApproval(id, remark)); } /** * 刷新审批人姓名(修复旧数据) */ // @SaCheckPermission("crm:quote:edit") @Log(title = "刷新审批人姓名", businessType = BusinessType.UPDATE) @PostMapping("/refreshNames") public R refreshApproverNames(@RequestBody(required = false) Map params) { Long quoteId = null; if (params != null && params.get("quoteId") != null) { quoteId = Long.valueOf(params.get("quoteId").toString()); } Integer count = quoteApprovalService.refreshApproverNames(quoteId); return R.ok(count); } }