From afd32af33acb4ab6f8e890c817d012cad75639c7 Mon Sep 17 00:00:00 2001
From: liu <2021943741@qq.com>
Date: 星期五, 04 九月 2026 11:32:11 +0800
Subject: [PATCH] feat(SRM): 投标总金额支持人工维护,订单按报价单价口径生成
---
yudao-module-srm/src/main/java/cn/iocoder/yudao/module/srm/controller/admin/tender/SrmTenderBidController.java | 38 +++++++++++++++++++++++++++++++++++++-
1 files changed, 37 insertions(+), 1 deletions(-)
diff --git a/yudao-module-srm/src/main/java/cn/iocoder/yudao/module/srm/controller/admin/tender/SrmTenderBidController.java b/yudao-module-srm/src/main/java/cn/iocoder/yudao/module/srm/controller/admin/tender/SrmTenderBidController.java
index 24bdd75..52efe3b 100644
--- a/yudao-module-srm/src/main/java/cn/iocoder/yudao/module/srm/controller/admin/tender/SrmTenderBidController.java
+++ b/yudao-module-srm/src/main/java/cn/iocoder/yudao/module/srm/controller/admin/tender/SrmTenderBidController.java
@@ -5,6 +5,8 @@
import cn.iocoder.yudao.framework.common.util.collection.CollectionUtils;
import cn.iocoder.yudao.module.srm.controller.admin.tender.vo.*;
import cn.iocoder.yudao.module.srm.dal.dataobject.SrmSupplierDO;
+import cn.iocoder.yudao.module.srm.dal.dataobject.SrmTenderMaterialDO;
+import cn.iocoder.yudao.module.srm.dal.mysql.SrmTenderMaterialMapper;
import cn.iocoder.yudao.module.srm.service.supplier.SrmSupplierService;
import cn.iocoder.yudao.module.srm.service.tender.SrmTenderBidService;
import io.swagger.v3.oas.annotations.Operation;
@@ -16,6 +18,7 @@
import org.springframework.validation.annotation.Validated;
import org.springframework.web.bind.annotation.*;
+import java.math.BigDecimal;
import java.util.List;
import java.util.Map;
import java.util.Set;
@@ -33,6 +36,9 @@
@Resource
private SrmSupplierService supplierService;
+
+ @Resource
+ private SrmTenderMaterialMapper tenderMaterialMapper;
// ========== 鎶曟爣绠$悊 ==========
@@ -70,6 +76,17 @@
return success(true);
}
+ @PutMapping("/update-total")
+ @Operation(summary = "鏇存柊鎶曟爣鎬婚噾棰�")
+ @Parameter(name = "id", description = "鎶曟爣ID", required = true)
+ @Parameter(name = "bidTotalAmount", description = "鎶曟爣鎬婚噾棰濓紙鎶ヤ环鍚堣鑷姩甯﹀嚭鍚庡彲浜哄伐璋冩暣锛�")
+ @PreAuthorize("@ss.hasPermission('srm:tender-bid:update')")
+ public CommonResult<Boolean> updateBidTotal(@RequestParam("id") Long id,
+ @RequestParam(value = "bidTotalAmount", required = false) BigDecimal bidTotalAmount) {
+ tenderBidService.updateBidTotal(id, bidTotalAmount);
+ return success(true);
+ }
+
// ========== 渚涘簲鍟嗘姤浠� ==========
@PostMapping("/quote/create")
@@ -91,7 +108,26 @@
@Operation(summary = "鎸夋姇鏍囪幏鍙栨姤浠峰垪琛�")
@PreAuthorize("@ss.hasPermission('srm:supplier-quote:query')")
public CommonResult<List<SrmSupplierQuoteRespVO>> getQuoteListByBid(@RequestParam("bidId") Long bidId) {
- return success(BeanUtils.toBean(tenderBidService.getQuoteList(bidId), SrmSupplierQuoteRespVO.class));
+ List<SrmSupplierQuoteRespVO> list = BeanUtils.toBean(tenderBidService.getQuoteList(bidId), SrmSupplierQuoteRespVO.class);
+ enrichQuoteMaterialInfo(list);
+ return success(list);
+ }
+
+ private void enrichQuoteMaterialInfo(List<SrmSupplierQuoteRespVO> list) {
+ if (list == null || list.isEmpty()) return;
+ Set<Long> materialIds = CollectionUtils.convertSet(list, SrmSupplierQuoteRespVO::getTenderMaterialId);
+ Map<Long, SrmTenderMaterialDO> materialMap = tenderMaterialMapper.selectBatchIds(materialIds).stream()
+ .collect(java.util.stream.Collectors.toMap(SrmTenderMaterialDO::getId, m -> m));
+ list.forEach(vo -> {
+ SrmTenderMaterialDO material = materialMap.get(vo.getTenderMaterialId());
+ if (material != null) {
+ vo.setTenderMaterialCode(material.getProductCode());
+ vo.setTenderMaterialName(material.getProductName());
+ vo.setMaterialName(material.getProductName());
+ vo.setTenderMaterialSpec(material.getProductSpec());
+ vo.setTenderMaterialUnit(material.getUnit());
+ }
+ });
}
// ========== 鍏宠仈鏁版嵁濉厖 ==========
--
Gitblit v1.9.3