Browse Source

Merge remote-tracking branch 'origin/master'

java8
qiezi 1 year ago
parent
commit
bcad1a4cd6
  1. 105
      src/main/java/com/xujie/sys/modules/inquiry/service/impl/InquiryApplicationServiceImpl.java
  2. 2
      src/main/java/com/xujie/sys/modules/quote/mapper/QuoteDetailBomMapper.java
  3. 16
      src/main/resources/mapper/inquiry/InquiryDetailMapper.xml
  4. 42
      src/main/resources/mapper/quote/QuoteDetailBomMapper.xml

105
src/main/java/com/xujie/sys/modules/inquiry/service/impl/InquiryApplicationServiceImpl.java

@ -14,6 +14,8 @@ import com.xujie.sys.modules.inquiry.service.InquiryApplicationService;
import com.xujie.sys.modules.inquiry.mapper.InquiryApplicationMapper;
import com.xujie.sys.modules.pms.data.EamProjectPartInfoData;
import com.xujie.sys.modules.quote.entity.Quote;
import com.xujie.sys.modules.quote.entity.QuoteDetailBom;
import com.xujie.sys.modules.quote.mapper.QuoteDetailBomMapper;
import com.xujie.sys.modules.quote.mapper.QuoteMapper;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
@ -21,6 +23,7 @@ import org.springframework.transaction.annotation.Transactional;
import javax.mail.MessagingException;
import java.io.UnsupportedEncodingException;
import java.util.ArrayList;
import java.util.Date;
import java.util.List;
@ -46,6 +49,12 @@ public class InquiryApplicationServiceImpl extends ServiceImpl<InquiryApplicatio
@Autowired
private QuoteMapper quoteMapper;
@Autowired
private QuoteDetailBomMapper quoteDetailBomMapper;
@Autowired
private InquiryDetailServiceImpl inquiryDetailServiceImpl;
@Override
public PageUtils searchInquiryApplicationInfo(InquiryApplicationData data) {
if (data.getBu() != "" && data.getBu() != null) {
@ -58,35 +67,75 @@ public class InquiryApplicationServiceImpl extends ServiceImpl<InquiryApplicatio
InquiryDetailData inquiryDetailData = new InquiryDetailData();
inquiryDetailData.setRfqId(inquiryApplicationData.getId());
List<InquiryDetailData> inquiryDetailDataList = inquiryDetailMapper.searchInquiryDetailInfo(inquiryDetailData);
for (InquiryDetailData detailData : inquiryDetailDataList) {
List<EamProjectPartInfoData> detailDataList = inquiryApplicationMapper.rfqGetFullBOM(detailData);
Quote quoteData = new Quote();
quoteData.setInsideInquiryNo(inquiryApplicationData.getRfqNo());
// List<Quote> salesQuotationList = quoteMapper.queryQuoteList(quoteData);
// 如果detailDataList只有一条数据
if (detailDataList.size() > 1) {
inquiryApplicationData.setBomStatus("BOM制作完成");
break;
}
// 如果是循环的最后一条数据
if (detailData.equals(inquiryDetailDataList.get(inquiryDetailDataList.size() - 1))) {
inquiryApplicationData.setBomStatus("BOM制作中");
if (!inquiryDetailDataList.isEmpty()) {
int hasBom = 0;
for (InquiryDetailData detailData : inquiryDetailDataList) {
List<Quote> quoteList = inquiryDetailMapper.searchQuotationRecordInfo(detailData);
for (Quote quote : quoteList) {
QuoteDetailBom quoteDetailBom = new QuoteDetailBom();
quoteDetailBom.setQuoteId(quote.getId());
List<QuoteDetailBom> detailDataList = quoteDetailBomMapper.queryQuoteDetailBom2(quoteDetailBom);
if (!detailDataList.isEmpty()) {
hasBom++;
}
}
Quote quoteData = new Quote();
quoteData.setInsideInquiryNo(inquiryApplicationData.getRfqNo());
quoteData.setCreateBy("admin");
List<Quote> salesQuotationList = quoteMapper.queryQuoteList(quoteData);
// 如果Bom有数据
if (hasBom > 0) {
if (inquiryApplicationData.getStatus().equals("C")){
inquiryApplicationData.setBomStatus("BOM制作完成");
} else {
List<String> statusQuoteList = new ArrayList<>();
for (Quote quote : salesQuotationList) {
statusQuoteList.add(quote.getStatus());
}
if (!statusQuoteList.contains("下达")) {
inquiryApplicationData.setBomStatus("TP计算中");
} else {
for (int i = 0; i < statusQuoteList.size(); i++) {
String s = statusQuoteList.get(i);
if (s.equals("下达")) {
// 当前循环是否是最后一个
if (i == statusQuoteList.size() - 1) {
inquiryApplicationData.setBomStatus("报价单审批中");
for (int j = 0; j < salesQuotationList.size(); j++) {
Quote quote = salesQuotationList.get(j);
InquiryDetailData inquiryDetailData1 = new InquiryDetailData();
inquiryDetailData1.setApplicationNo(quote.getQuoteVersionNo());
inquiryDetailData1.setPage(1);
inquiryDetailData1.setLimit(1);
List<InquiryDetailData> quoteAuthData = (List<InquiryDetailData>) inquiryDetailServiceImpl.searchAllInquiryQuoteInfo(inquiryDetailData1).getList();
if (quoteAuthData.isEmpty() || !quoteAuthData.get(0).getAllAuthFlag().equals("全部审批")) {
break;
}
// 如果是最后一个循环
if (j == salesQuotationList.size() - 1) {
inquiryApplicationData.setBomStatus("报价单审批成功");
}
}
}
} else {
inquiryApplicationData.setBomStatus("报价单部分审批中");
break; // 结束外层循环
}
}
}
}
break;
}
// 如果是循环的最后一条数据
if (detailData.equals(inquiryDetailDataList.get(inquiryDetailDataList.size() - 1))) {
inquiryApplicationData.setBomStatus("BOM制作中");
}
}
// else {
// if (!salesQuotationList.isEmpty()){
// for (Quote quote : salesQuotationList) {
// if (quote.getStatus().equals("下达")){
// inquiryApplicationData.setBomStatus("报价单审核中");
// // 结束循环
// break;
// }
// // 如果是最后一个循环
// if (quote.equals(salesQuotationList.get(salesQuotationList.size() - 1))){
// inquiryApplicationData.setBomStatus("TP计算中");
// }
// }
// }
// }
} else {
inquiryApplicationData.setBomStatus("BOM制作中");
}
}
page.setRecords(list);

2
src/main/java/com/xujie/sys/modules/quote/mapper/QuoteDetailBomMapper.java

@ -12,5 +12,7 @@ import java.util.List;
public interface QuoteDetailBomMapper extends BaseMapper<QuoteDetailBom> {
List<QuoteDetailBom> queryQuoteDetailBom(QuoteDetailBom quoteDetailBom);
List<QuoteDetailBom> queryQuoteDetailBom2(QuoteDetailBom quoteDetailBom);
List<QuoteDetailBom> queryQuoteDetailBomByIds(@Param("ids") List<Long> ids,@Param("quoteDetailId") Long quoteDetailId);
}

16
src/main/resources/mapper/inquiry/InquiryDetailMapper.xml

@ -5,14 +5,16 @@
<mapper namespace="com.xujie.sys.modules.inquiry.mapper.InquiryDetailMapper">
<select id="searchInquiryDetailInfo" resultType="com.xujie.sys.modules.inquiry.data.InquiryDetailData">
select *,
dbo.Get_PartNo_ByPartId(site,test_part_id) AS part_no,
dbo.Get_PartDesc_ByPartId(site,test_part_id) AS part_desc,
select a.*,
b.rfq_no,
dbo.Get_PartNo_ByPartId(a.site,a.test_part_id) AS part_no,
dbo.Get_PartDesc_ByPartId(a.site,a.test_part_id) AS part_desc,
#{query.buNo} AS bu_no,
dbo.get_bu_desc(site,#{query.buNo}) AS bu_desc,
dbo.qc_get_um_name(site,um_id) AS um_name,
dbo.get_code_desc(site,#{query.buNo},code_no,'PRICECHECK') AS code_desc
from plm_rfq_detail
dbo.get_bu_desc(a.site,#{query.buNo}) AS bu_desc,
dbo.qc_get_um_name(a.site,a.um_id) AS um_name,
dbo.get_code_desc(a.site,#{query.buNo},a.code_no,'PRICECHECK') AS code_desc
from plm_rfq_detail as a
left join plm_rfq_header as b on a.rfq_id = b.id
where rfq_id = #{query.rfqId}
</select>
<select id="searchInquiryDetailHeaderInfo"

42
src/main/resources/mapper/quote/QuoteDetailBomMapper.xml

@ -46,6 +46,48 @@
</if>
order by tree_id
</select>
<select id="queryQuoteDetailBom2" resultType="com.xujie.sys.modules.quote.entity.QuoteDetailBom">
select
qdb.id,
qdb.quote_id,
qdb.quote_detail_id,
qdb.quote_detail_item_no,
qdb.site,
qdb.bu_no,
qdb.quote_no,
qdb.version_no,
qdb.part_no,
qdb.eng_chg_level,
qdb.bom_type,
qdb.alternative_no,
qdb.component_part,
<!-- qdb.print_unit,-->
dbo.qc_get_um_name(qdb.site, qdb.print_unit) as print_unit,
qdb.qty_per_assembly,
qdb.component_scrap,
qdb.issue_type,
qdb.shrinkage_factor,
(100-qdb.shrinkage_factor) as yield_rate,
qdb.line_item_no,
qdb.operation_id,
qdb.issue_to_loc,
qdb.note_text,
qdb.line_sequence,
qdb.consumption_item,
qdb.create_by,
qdb.create_date,
qdb.tree_id,
p.part_desc,
qdb.unit_price,
qdb.actual_price,
qdb.quote_price,
qdb.attrition_rate
from plm_quote_detail_bom qdb
left join part p on qdb.site = p.site and qdb.component_part = p.part_no
where quote_id = #{quoteId}
order by tree_id
</select>
<select id="queryQuoteDetailBomByIds" resultType="com.xujie.sys.modules.quote.entity.QuoteDetailBom">
select
qdb.id,

Loading…
Cancel
Save