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}) + +