package cn.iocoder.yudao.module.srm.controller.admin.inquiry;
|
|
import cn.iocoder.yudao.framework.common.pojo.CommonResult;
|
import cn.iocoder.yudao.framework.common.pojo.PageResult;
|
import cn.iocoder.yudao.framework.common.util.object.BeanUtils;
|
import cn.iocoder.yudao.module.srm.controller.admin.inquiry.vo.*;
|
import cn.iocoder.yudao.module.srm.dal.dataobject.SrmInquiryDO;
|
import cn.iocoder.yudao.module.srm.service.inquiry.SrmInquiryService;
|
import io.swagger.v3.oas.annotations.Operation;
|
import io.swagger.v3.oas.annotations.Parameter;
|
import io.swagger.v3.oas.annotations.tags.Tag;
|
import jakarta.annotation.Resource;
|
import jakarta.validation.Valid;
|
import org.springframework.security.access.prepost.PreAuthorize;
|
import org.springframework.validation.annotation.Validated;
|
import org.springframework.web.bind.annotation.*;
|
|
import java.util.List;
|
|
import static cn.iocoder.yudao.framework.common.pojo.CommonResult.success;
|
|
@Tag(name = "管理后台 - SRM 询价比价")
|
@RestController
|
@RequestMapping("/srm/inquiry")
|
@Validated
|
public class SrmInquiryController {
|
|
@Resource
|
private SrmInquiryService inquiryService;
|
|
@PostMapping("/create")
|
@Operation(summary = "创建询价单")
|
@PreAuthorize("@ss.hasPermission('srm:inquiry:create')")
|
public CommonResult<Long> createInquiry(@Valid @RequestBody SrmInquirySaveReqVO createReqVO) {
|
return success(inquiryService.createInquiry(createReqVO));
|
}
|
|
@PutMapping("/update")
|
@Operation(summary = "更新询价单(仅草稿)")
|
@PreAuthorize("@ss.hasPermission('srm:inquiry:update')")
|
public CommonResult<Boolean> updateInquiry(@Valid @RequestBody SrmInquirySaveReqVO updateReqVO) {
|
inquiryService.updateInquiry(updateReqVO);
|
return success(true);
|
}
|
|
@DeleteMapping("/delete")
|
@Operation(summary = "删除询价单(仅草稿)")
|
@Parameter(name = "id", description = "编号", required = true)
|
@PreAuthorize("@ss.hasPermission('srm:inquiry:delete')")
|
public CommonResult<Boolean> deleteInquiry(@RequestParam("id") Long id) {
|
inquiryService.deleteInquiry(id);
|
return success(true);
|
}
|
|
@GetMapping("/get")
|
@Operation(summary = "获取询价单详情")
|
@Parameter(name = "id", description = "编号", required = true)
|
public CommonResult<SrmInquiryRespVO> getInquiry(@RequestParam("id") Long id) {
|
return success(inquiryService.getInquiryDetail(id));
|
}
|
|
@GetMapping("/page")
|
@Operation(summary = "询价单分页查询")
|
public CommonResult<PageResult<SrmInquiryRespVO>> getInquiryPage(@Valid SrmInquiryPageReqVO pageReqVO) {
|
PageResult<SrmInquiryDO> pageResult = inquiryService.getInquiryPage(pageReqVO);
|
return success(BeanUtils.toBean(pageResult, SrmInquiryRespVO.class));
|
}
|
|
@GetMapping("/simple-list")
|
@Operation(summary = "获取询价单精简列表(用于投标保证金选择)")
|
public CommonResult<List<SrmInquiryRespVO>> getInquirySimpleList() {
|
List<SrmInquiryDO> list = inquiryService.getInquirySimpleList();
|
return success(BeanUtils.toBean(list, SrmInquiryRespVO.class));
|
}
|
|
@PutMapping("/publish")
|
@Operation(summary = "发布询价单:草稿 -> 询价中")
|
@Parameter(name = "id", description = "编号", required = true)
|
@PreAuthorize("@ss.hasPermission('srm:inquiry:update')")
|
public CommonResult<Boolean> publishInquiry(@RequestParam("id") Long id) {
|
inquiryService.publishInquiry(id);
|
return success(true);
|
}
|
|
@PutMapping("/cancel")
|
@Operation(summary = "取消询价单")
|
@Parameter(name = "id", description = "编号", required = true)
|
@PreAuthorize("@ss.hasPermission('srm:inquiry:update')")
|
public CommonResult<Boolean> cancelInquiry(@RequestParam("id") Long id) {
|
inquiryService.cancelInquiry(id);
|
return success(true);
|
}
|
|
@PostMapping("/save-quotes")
|
@Operation(summary = "批量保存供应商报价")
|
@PreAuthorize("@ss.hasPermission('srm:inquiry:quote')")
|
public CommonResult<Boolean> saveQuotes(@Valid @RequestBody SrmInquiryQuoteSaveReqVO saveReqVO) {
|
inquiryService.saveQuotes(saveReqVO);
|
return success(true);
|
}
|
|
@GetMapping("/compare")
|
@Operation(summary = "获取询价比价视图(产品行 x 供应商报价)")
|
@Parameter(name = "id", description = "编号", required = true)
|
public CommonResult<SrmInquiryRespVO> getCompare(@RequestParam("id") Long id) {
|
return success(inquiryService.getCompare(id));
|
}
|
|
@PostMapping("/confirm")
|
@Operation(summary = "确认中标并生成采购订单草稿")
|
@PreAuthorize("@ss.hasPermission('srm:inquiry:confirm')")
|
public CommonResult<SrmInquiryConfirmRespVO> confirmInquiry(
|
@Valid @RequestBody SrmInquiryConfirmReqVO confirmReqVO) {
|
return success(inquiryService.confirmInquiry(confirmReqVO));
|
}
|
|
}
|