Files
shanxia2.0/docs/crm-migration/reference/java/quote/controller/CrmQuoteApprovalController.java
T
2026-06-01 08:21:21 +08:00

92 lines
3.1 KiB
Java

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<CrmQuoteApprovalVo>> list(@RequestParam Long quoteId) {
return R.ok(quoteApprovalService.queryListByQuoteId(quoteId));
}
/**
* 审批报价单
*/
// @SaCheckPermission("crm:quote:approval")
@Log(title = "审批报价单", businessType = BusinessType.UPDATE)
@RepeatSubmit()
@PostMapping()
public R<Void> approve(@RequestBody Map<String, Object> 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<Void> withdraw(@RequestBody Map<String, Object> 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<Integer> refreshApproverNames(@RequestBody(required = false) Map<String, Object> 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);
}
}