From a99ba9255f62bd2f98ad28eed754b26f0e3949ba Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=B8=B8=E7=86=9F=E5=90=B4=E5=BD=A6=E7=A5=96?= Date: Fri, 26 Jun 2026 09:22:33 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BE=9B=E5=BA=94=E5=95=86=E6=8A=A5=E4=BB=B7?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../PurQuotationReplyHistServiceImpl.java | 60 +++++++++++++++++++ 1 file changed, 60 insertions(+) diff --git a/src/main/java/com/xujie/modules/supplier/service/impl/PurQuotationReplyHistServiceImpl.java b/src/main/java/com/xujie/modules/supplier/service/impl/PurQuotationReplyHistServiceImpl.java index 2e2a97e..7e90e47 100644 --- a/src/main/java/com/xujie/modules/supplier/service/impl/PurQuotationReplyHistServiceImpl.java +++ b/src/main/java/com/xujie/modules/supplier/service/impl/PurQuotationReplyHistServiceImpl.java @@ -6,8 +6,12 @@ import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import com.xujie.common.utils.PageUtils; import com.xujie.modules.supplier.data.PurQuotationDetailData; import com.xujie.modules.supplier.data.PurQuotationReplyHistData; +import com.xujie.modules.supplier.data.PurQuotationHeaderData; +import com.xujie.modules.supplier.entity.PurQuotationDetail; +import com.xujie.modules.supplier.entity.PurQuotationHeader; import com.xujie.modules.supplier.entity.PurQuotationReplyHist; import com.xujie.modules.supplier.mapper.PurQuotationDetailMapper; +import com.xujie.modules.supplier.mapper.PurQuotationHeaderMapper; import com.xujie.modules.supplier.mapper.PurQuotationReplyHistMapper; import com.xujie.modules.supplier.service.IPurQuotationReplyHistService; import org.apache.commons.collections4.CollectionUtils; @@ -33,6 +37,9 @@ public class PurQuotationReplyHistServiceImpl extends ServiceImpl headers = purQuotationHeaderMapper.getListByModel(headerQuery); + if (CollectionUtils.isEmpty(headers)) { + return; + } + PurQuotationHeaderData header = headers.get(0); + if (!Objects.equals("待报价", header.getStatus())) { + return; + } + PurQuotationHeader update = new PurQuotationHeader(); + update.setId(header.getId()); + update.setStatus("已报价"); + purQuotationHeaderMapper.updateById(update); + } + + /** + * 全部明细已接受时,主表自动关闭(仅更新主表状态) + */ + private void closeHeaderIfAllDetailsAccepted(String orderNo, String site) { + PurQuotationDetail detailQuery = new PurQuotationDetail(); + detailQuery.setOrderNo(orderNo); + detailQuery.setSite(site); + List details = purQuotationDetailMapper.getListByModel(detailQuery); + if (CollectionUtils.isEmpty(details)) { + return; + } + boolean allAccepted = details.stream().allMatch(d -> Objects.equals("已接受", d.getStatus())); + if (!allAccepted) { + return; + } + PurQuotationHeaderData headerQuery = new PurQuotationHeaderData(); + headerQuery.setOrderNo(orderNo); + headerQuery.setSite(site); + List headers = purQuotationHeaderMapper.getListByModel(headerQuery); + if (CollectionUtils.isEmpty(headers)) { + return; + } + PurQuotationHeader update = new PurQuotationHeader(); + update.setId(headers.get(0).getId()); + update.setStatus("已关闭"); + purQuotationHeaderMapper.updateById(update); } }