| | |
| | | import cn.iocoder.yudao.framework.common.util.object.BeanUtils; |
| | | import cn.iocoder.yudao.module.srm.controller.admin.tender.vo.*; |
| | | import cn.iocoder.yudao.module.srm.service.tender.SrmTenderProjectService; |
| | | import cn.iocoder.yudao.module.srm.service.tender.SrmTenderProjectServiceImpl; |
| | | import cn.iocoder.yudao.module.system.api.storage.StorageAttachmentApi; |
| | | import io.swagger.v3.oas.annotations.Operation; |
| | | import io.swagger.v3.oas.annotations.Parameter; |
| | | import io.swagger.v3.oas.annotations.tags.Tag; |
| | |
| | | |
| | | @Resource |
| | | private SrmTenderProjectService tenderProjectService; |
| | | |
| | | @Resource |
| | | private StorageAttachmentApi storageAttachmentApi; |
| | | |
| | | @PostMapping("/create") |
| | | @Operation(summary = "创建招标项目") |
| | |
| | | @Operation(summary = "获取招标项目详情") |
| | | @PreAuthorize("@ss.hasPermission('srm:tender-project:query')") |
| | | public CommonResult<SrmTenderProjectRespVO> getTenderProject(@RequestParam("id") Long id) { |
| | | return success(BeanUtils.toBean(tenderProjectService.getTenderProject(id), SrmTenderProjectRespVO.class)); |
| | | var resp = BeanUtils.toBean(tenderProjectService.getTenderProject(id), SrmTenderProjectRespVO.class); |
| | | enrichAttachments(List.of(resp)); |
| | | return success(resp); |
| | | } |
| | | |
| | | @GetMapping("/page") |
| | | @Operation(summary = "获取招标项目分页") |
| | | @PreAuthorize("@ss.hasPermission('srm:tender-project:query')") |
| | | public CommonResult<PageResult<SrmTenderProjectRespVO>> getTenderProjectPage(@Valid SrmTenderProjectPageReqVO pageReqVO) { |
| | | return success(BeanUtils.toBean(tenderProjectService.getTenderProjectPage(pageReqVO), SrmTenderProjectRespVO.class)); |
| | | var pageResult = tenderProjectService.getTenderProjectPage(pageReqVO); |
| | | var respList = BeanUtils.toBean(pageResult.getList(), SrmTenderProjectRespVO.class); |
| | | enrichAttachments(respList); |
| | | return success(new PageResult<>(respList, pageResult.getTotal())); |
| | | } |
| | | |
| | | // ========== 关联数据填充 ========== |
| | | |
| | | private void enrichAttachments(List<SrmTenderProjectRespVO> list) { |
| | | if (list == null || list.isEmpty()) return; |
| | | list.forEach(vo -> vo.setAttachmentList(storageAttachmentApi.listAttachments( |
| | | SrmTenderProjectServiceImpl.TENDER_PROJECT_RECORD_TYPE, vo.getId()))); |
| | | } |
| | | |
| | | @PutMapping("/publish") |
| | |
| | | return success(true); |
| | | } |
| | | |
| | | @PutMapping("/update-info") |
| | | @Operation(summary = "部分更新招标信息(仅发布中/投标中可编辑:招标说明和资质要求)") |
| | | @PreAuthorize("@ss.hasPermission('srm:tender-project:update')") |
| | | public CommonResult<Boolean> updateTenderProjectInfo(@Valid @RequestBody SrmTenderProjectPartialUpdateReqVO updateReqVO) { |
| | | tenderProjectService.updateTenderProjectPartial(updateReqVO); |
| | | return success(true); |
| | | } |
| | | |
| | | // ========== 简易模式操作 ========== |
| | | |
| | | @PutMapping("/start-price-comparing") |
| | | @Operation(summary = "开始比价(简易版)") |
| | | @PreAuthorize("@ss.hasPermission('srm:tender-project:update')") |
| | | public CommonResult<Boolean> startPriceComparing(@RequestParam("id") Long id) { |
| | | tenderProjectService.startPriceComparing(id); |
| | | return success(true); |
| | | } |
| | | |
| | | @PutMapping("/confirm") |
| | | @Operation(summary = "确认中标并生成采购订单(简易版)") |
| | | @PreAuthorize("@ss.hasPermission('srm:tender-project:update')") |
| | | public CommonResult<Boolean> confirmTenderProject(@Valid @RequestBody SrmTenderConfirmReqVO reqVO) { |
| | | tenderProjectService.confirmTenderProject(reqVO.getId(), reqVO.getBidId()); |
| | | return success(true); |
| | | } |
| | | |
| | | // ========== 物料子表 ========== |
| | | |
| | | @PostMapping("/material/create") |