Browse Source

2024-06-21

master
qiezi 2 years ago
parent
commit
e091166b62
  1. 1
      src/main/java/com/spring/modules/quotation/mapper/QuoteBomHeaderMapper.java
  2. 3
      src/main/java/com/spring/modules/quotation/service/QuoteBomDetailService.java
  3. 29
      src/main/java/com/spring/modules/quotation/service/impl/QuotationHeaderServiceImpl.java
  4. 5
      src/main/java/com/spring/modules/quotation/service/impl/QuoteBomDetailServiceImpl.java
  5. 4
      src/main/resources/mapper/quotation/QuotationHeaderMapper.xml
  6. 12
      src/main/resources/mapper/quotation/QuoteBomHeaderMapper.xml

1
src/main/java/com/spring/modules/quotation/mapper/QuoteBomHeaderMapper.java

@ -49,4 +49,5 @@ public interface QuoteBomHeaderMapper extends BaseMapper<QuoteBomHeader> {
*/
List<QuoteDetailBomHeaderVo> selectBomDetailByPartNoAndVersionAndAlternative(QuoteBomHeader quoteBomHeader);
void saveBatchQuoteDetailBom(List<QuoteBomDetail> quoteBomDetailList);
}

3
src/main/java/com/spring/modules/quotation/service/QuoteBomDetailService.java

@ -15,4 +15,7 @@ public interface QuoteBomDetailService extends IService<QuoteBomDetail> {
List<QuoteBomDetailVo> searchQuoteBomDetailList(QuoteBomHeader quoteBomHeader);
List<QuoteBomDetailVo> searchQuoteDetailList(QuoteBomHeader quoteBomHeader);
void saveBatchQuoteDetailBom(List<QuoteBomDetail> quoteBomDetailList);
}

29
src/main/java/com/spring/modules/quotation/service/impl/QuotationHeaderServiceImpl.java

@ -239,28 +239,31 @@ public class QuotationHeaderServiceImpl extends ServiceImpl<QuotationHeaderMappe
quotationDetailList.forEach(quotationDetail -> {
// 查询报价明细中的信息(材料工序工具成品属性)
// 1bom
QuoteBomHeader bomHeader = getQuoteBomHeader(quotationDetail);
if(Objects.isNull(bomHeader)){
List<QuoteBomHeader> bomHeader = getQuoteBomHeader(quotationDetail);
if(!bomHeader.isEmpty()){
quotationDetail.setQuotationDetailId(null);
quotationDetail.setQuotationHeaderId(quotationHeader.getQuotationHeaderId());
quotationDetailService.save(quotationDetail);
return;
}
List<QuoteBomDetailVo> bomDetailVoList = quoteBomDetailService.searchQuoteBomDetailList(bomHeader);
// 新增bom
for (QuoteBomHeader header : bomHeader) {
header.setQuoteDetailId(quotationDetail.getQuotationDetailId().longValue());
List<QuoteBomDetailVo> bomDetailVoList = quoteBomDetailService.searchQuoteBomDetailList(header);
quoteBomHeaderService.save(header);
// 将报价明细中的(材料工序工具成品属性)新增到报价单明细中
if (!bomDetailVoList.isEmpty()){
List<QuoteBomDetail> quoteBomDetailList = getQuoteBomDetailList(quotationDetail,bomDetailVoList);
quoteBomDetailService.saveBatchQuoteDetailBom(quoteBomDetailList);
}
}
// 2工具
List<QuotationTool> 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<QuoteBomDetail> quoteBomDetailList = getQuoteBomDetailList(quotationDetail,bomDetailVoList);
quoteBomDetailService.saveBatch(quoteBomDetailList);
}
// 新增工具
if (!toolList.isEmpty()){
toolList = getQuotationTool(quotationDetail,toolList);
@ -281,10 +284,10 @@ public class QuotationHeaderServiceImpl extends ServiceImpl<QuotationHeaderMappe
return (QuoteBomDetail) quoteBomDetailVo;
}).collect(Collectors.toList());
}
public QuoteBomHeader getQuoteBomHeader(QuotationDetail quotationDetail){
public List<QuoteBomHeader> 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<QuotationDetail> getQuotationDetailList(QuotationHeader quotationHeader){

5
src/main/java/com/spring/modules/quotation/service/impl/QuoteBomDetailServiceImpl.java

@ -59,6 +59,11 @@ public class QuoteBomDetailServiceImpl extends ServiceImpl<QuoteBomDetailMapper,
return quoteBomHeaderMapper.searchQuoteBomDetailAllList(quoteBomHeader);
}
@Override
public void saveBatchQuoteDetailBom(List<QuoteBomDetail> quoteBomDetailList) {
quoteBomHeaderMapper.saveBatchQuoteDetailBom(quoteBomDetailList);
}
public List<QuoteBomHeader> getAllQuoteBomHeader(QuoteBomHeader quoteBomHeader){
List<QuoteBomHeader> headerList = quoteBomHeaderService.lambdaQuery()
.eq(QuoteBomHeader::getQuoteDetailId, quoteBomHeader.getQuoteDetailId())

4
src/main/resources/mapper/quotation/QuotationHeaderMapper.xml

@ -195,10 +195,10 @@
<if test="params.projectId != null and params.projectId != ''">
AND project_id like #{params.projectId}
</if>
<if test="params.startDate != null and params.startDate != ''">
<if test="params.startDate != null">
AND quotation_date >= #{params.startDate}
</if>
<if test="params.endDate != null and params.endDate != ''">
<if test="params.endDate != null">
AND #{params.endDate} >= quotation_date
</if>
<if test="params.customerName != null and params.customerName != ''">

12
src/main/resources/mapper/quotation/QuoteBomHeaderMapper.xml

@ -2,6 +2,18 @@
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
"http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.spring.modules.quotation.mapper.QuoteBomHeaderMapper">
<insert id="saveBatchQuoteDetailBom">
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
<foreach collection="list" item="item" separator=",">
(#{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})
</foreach>
</insert>
<select id="getProjectPart" resultType="com.spring.modules.project.entity.PlmProjectPart">
select top 1 final_part_no from view_Project_Part where site = #{site} and test_part_no = #{testPartNo}

Loading…
Cancel
Save