92 lines
3.1 KiB
Java
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);
|
|
}
|
|
|
|
}
|