From e091166b62b7a551a9d123c240c530fb9fdd4cc7 Mon Sep 17 00:00:00 2001 From: qiezi <15576055375@163.com> Date: Wed, 21 Aug 2024 09:03:56 +0800 Subject: [PATCH] 2024-06-21 --- .../mapper/QuoteBomHeaderMapper.java | 1 + .../service/QuoteBomDetailService.java | 3 ++ .../impl/QuotationHeaderServiceImpl.java | 29 ++++++++++--------- .../impl/QuoteBomDetailServiceImpl.java | 5 ++++ .../quotation/QuotationHeaderMapper.xml | 4 +-- .../mapper/quotation/QuoteBomHeaderMapper.xml | 12 ++++++++ 6 files changed, 39 insertions(+), 15 deletions(-) diff --git a/src/main/java/com/spring/modules/quotation/mapper/QuoteBomHeaderMapper.java b/src/main/java/com/spring/modules/quotation/mapper/QuoteBomHeaderMapper.java index 784edec1..e77fc56d 100644 --- a/src/main/java/com/spring/modules/quotation/mapper/QuoteBomHeaderMapper.java +++ b/src/main/java/com/spring/modules/quotation/mapper/QuoteBomHeaderMapper.java @@ -49,4 +49,5 @@ public interface QuoteBomHeaderMapper extends BaseMapper { */ List selectBomDetailByPartNoAndVersionAndAlternative(QuoteBomHeader quoteBomHeader); + void saveBatchQuoteDetailBom(List quoteBomDetailList); } diff --git a/src/main/java/com/spring/modules/quotation/service/QuoteBomDetailService.java b/src/main/java/com/spring/modules/quotation/service/QuoteBomDetailService.java index 93f00114..b9ee0152 100644 --- a/src/main/java/com/spring/modules/quotation/service/QuoteBomDetailService.java +++ b/src/main/java/com/spring/modules/quotation/service/QuoteBomDetailService.java @@ -15,4 +15,7 @@ public interface QuoteBomDetailService extends IService { List searchQuoteBomDetailList(QuoteBomHeader quoteBomHeader); List searchQuoteDetailList(QuoteBomHeader quoteBomHeader); + + void saveBatchQuoteDetailBom(List quoteBomDetailList); + } diff --git a/src/main/java/com/spring/modules/quotation/service/impl/QuotationHeaderServiceImpl.java b/src/main/java/com/spring/modules/quotation/service/impl/QuotationHeaderServiceImpl.java index 5d8801be..d14169d4 100644 --- a/src/main/java/com/spring/modules/quotation/service/impl/QuotationHeaderServiceImpl.java +++ b/src/main/java/com/spring/modules/quotation/service/impl/QuotationHeaderServiceImpl.java @@ -239,28 +239,31 @@ public class QuotationHeaderServiceImpl extends ServiceImpl { // 查询报价明细中的信息(材料,工序,工具,成品属性) // 1、bom - QuoteBomHeader bomHeader = getQuoteBomHeader(quotationDetail); - if(Objects.isNull(bomHeader)){ + List bomHeader = getQuoteBomHeader(quotationDetail); + if(!bomHeader.isEmpty()){ quotationDetail.setQuotationDetailId(null); quotationDetail.setQuotationHeaderId(quotationHeader.getQuotationHeaderId()); quotationDetailService.save(quotationDetail); return; } - List bomDetailVoList = quoteBomDetailService.searchQuoteBomDetailList(bomHeader); + // 新增bom + for (QuoteBomHeader header : bomHeader) { + header.setQuoteDetailId(quotationDetail.getQuotationDetailId().longValue()); + List bomDetailVoList = quoteBomDetailService.searchQuoteBomDetailList(header); + quoteBomHeaderService.save(header); + // 将报价明细中的(材料,工序,工具,成品属性)新增到报价单明细中 + if (!bomDetailVoList.isEmpty()){ + List quoteBomDetailList = getQuoteBomDetailList(quotationDetail,bomDetailVoList); + quoteBomDetailService.saveBatchQuoteDetailBom(quoteBomDetailList); + } + } // 2、工具 List toolList = quotationToolService.lambdaQuery().eq(QuotationTool::getQuotationDetailId, quotationDetail.getQuotationDetailId()).list(); // 循环新增报价单明细 quotationDetail.setQuotationDetailId(null); quotationDetail.setQuotationHeaderId(quotationHeader.getQuotationHeaderId()); quotationDetailService.save(quotationDetail); - // 将报价明细中的(材料,工序,工具,成品属性)新增到报价单明细中 - // 新增bom - bomHeader.setQuoteDetailId(quotationDetail.getQuotationDetailId().longValue()); - quoteBomHeaderService.save(bomHeader); - if (!bomDetailVoList.isEmpty()){ - List quoteBomDetailList = getQuoteBomDetailList(quotationDetail,bomDetailVoList); - quoteBomDetailService.saveBatch(quoteBomDetailList); - } + // 新增工具 if (!toolList.isEmpty()){ toolList = getQuotationTool(quotationDetail,toolList); @@ -281,10 +284,10 @@ public class QuotationHeaderServiceImpl extends ServiceImpl getQuoteBomHeader(QuotationDetail quotationDetail){ return quoteBomHeaderService.lambdaQuery() .eq(QuoteBomHeader::getQuoteDetailId, quotationDetail.getQuotationDetailId()) - .eq(QuoteBomHeader::getSite, quotationDetail.getSite()).one(); + .eq(QuoteBomHeader::getSite, quotationDetail.getSite()).list(); } public List getQuotationDetailList(QuotationHeader quotationHeader){ diff --git a/src/main/java/com/spring/modules/quotation/service/impl/QuoteBomDetailServiceImpl.java b/src/main/java/com/spring/modules/quotation/service/impl/QuoteBomDetailServiceImpl.java index 2dcc0beb..e14dfb33 100644 --- a/src/main/java/com/spring/modules/quotation/service/impl/QuoteBomDetailServiceImpl.java +++ b/src/main/java/com/spring/modules/quotation/service/impl/QuoteBomDetailServiceImpl.java @@ -59,6 +59,11 @@ public class QuoteBomDetailServiceImpl extends ServiceImpl quoteBomDetailList) { + quoteBomHeaderMapper.saveBatchQuoteDetailBom(quoteBomDetailList); + } + public List getAllQuoteBomHeader(QuoteBomHeader quoteBomHeader){ List headerList = quoteBomHeaderService.lambdaQuery() .eq(QuoteBomHeader::getQuoteDetailId, quoteBomHeader.getQuoteDetailId()) diff --git a/src/main/resources/mapper/quotation/QuotationHeaderMapper.xml b/src/main/resources/mapper/quotation/QuotationHeaderMapper.xml index 397a331d..e438adfd 100644 --- a/src/main/resources/mapper/quotation/QuotationHeaderMapper.xml +++ b/src/main/resources/mapper/quotation/QuotationHeaderMapper.xml @@ -195,10 +195,10 @@ AND project_id like #{params.projectId} - + AND quotation_date >= #{params.startDate} - + AND #{params.endDate} >= quotation_date diff --git a/src/main/resources/mapper/quotation/QuoteBomHeaderMapper.xml b/src/main/resources/mapper/quotation/QuoteBomHeaderMapper.xml index 232ba27c..00cd3b77 100644 --- a/src/main/resources/mapper/quotation/QuoteBomHeaderMapper.xml +++ b/src/main/resources/mapper/quotation/QuoteBomHeaderMapper.xml @@ -2,6 +2,18 @@ + + insert into quote_bom_detail (site, quote_detail_id, part_no, version, bom_type, alternative_no, component_part, + print_unit, qty_per_assembly, component_scrap, issue_type, shrinkage_factor, + line_item_no, operation_id, issue_to_loc, note_text, line_sequence) + values + + (#{item.site}, #{item.quoteDetailId}, #{item.partNo}, #{item.version}, #{item.bomType}, #{item.alternativeNo}, + #{item.componentPart}, #{item.printUnit}, #{item.qtyPerAssembly}, #{item.componentScrap}, #{item.issueType}, + #{item.shrinkageFactor}, #{item.lineItemNo}, #{item.operationId}, #{item.issueToLoc}, #{item.noteText}, + #{item.lineSequence}) + +