|
|
|
@ -5,6 +5,7 @@ import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper; |
|
|
|
import com.baomidou.mybatisplus.core.metadata.IPage; |
|
|
|
import com.baomidou.mybatisplus.extension.plugins.pagination.Page; |
|
|
|
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; |
|
|
|
import com.spring.common.utils.Constant; |
|
|
|
import com.spring.common.utils.R; |
|
|
|
import com.spring.modules.quotation.entity.*; |
|
|
|
import com.spring.modules.quotation.mapper.QuotationHeaderMapper; |
|
|
|
@ -38,6 +39,10 @@ public class QuotationHeaderServiceImpl extends ServiceImpl<QuotationHeaderMappe |
|
|
|
private QuoteBomHeaderService quoteBomHeaderService; |
|
|
|
@Autowired |
|
|
|
private QuoteBomDetailService quoteBomDetailService; |
|
|
|
@Autowired |
|
|
|
private QuoteRoutingHeaderService quoteRoutingHeaderService; |
|
|
|
@Autowired |
|
|
|
private QuoteRoutingDetailService quoteRoutingDetailService; |
|
|
|
|
|
|
|
@Override |
|
|
|
public R getQuotationHeaderByPage(Integer no, Integer size,String site,String customerNo,String customerName, |
|
|
|
@ -72,7 +77,7 @@ public class QuotationHeaderServiceImpl extends ServiceImpl<QuotationHeaderMappe |
|
|
|
@Override |
|
|
|
@Transactional |
|
|
|
public R insertQuotationHeader(QuotationHeader quotationHeader) { |
|
|
|
String quotationHeaderNo = "BJ"+this.baseMapper.getQuotationNo(quotationHeader.getSite()); |
|
|
|
String quotationHeaderNo = Constant.BJ +this.baseMapper.getQuotationNo(quotationHeader.getSite()); |
|
|
|
quotationHeader.setQuotationNo(quotationHeaderNo.toUpperCase()); |
|
|
|
quotationHeader.setVersionCode("A"+quotationHeader.getVersionCode().toUpperCase()); |
|
|
|
quotationHeader.setCustomerInquiryNo(quotationHeader.getCustomerInquiryNo().toUpperCase()); |
|
|
|
@ -102,7 +107,7 @@ public class QuotationHeaderServiceImpl extends ServiceImpl<QuotationHeaderMappe |
|
|
|
// 新增询价 |
|
|
|
quotationDetailService.save(detail); |
|
|
|
// 新增序列规则记录 |
|
|
|
seqRuleService.save(new SeqRule(quotationHeader.getSite(),"BJ","报价单号",quotationHeaderNo,3)); |
|
|
|
seqRuleService.save(new SeqRule(quotationHeader.getSite(),Constant.BJ,"报价单号",quotationHeaderNo,3)); |
|
|
|
if (saveFlag){ |
|
|
|
return R.ok("保存成功").put("code",200); |
|
|
|
} |
|
|
|
@ -123,11 +128,18 @@ public class QuotationHeaderServiceImpl extends ServiceImpl<QuotationHeaderMappe |
|
|
|
throw new RuntimeException("报价单不存在"); |
|
|
|
} |
|
|
|
if (removeById(quotationHeader.getQuotationHeaderId())) { |
|
|
|
seqRuleService.lambdaUpdate() |
|
|
|
.eq(SeqRule::getPrefix,quotationHeader.getQuotationNo()) |
|
|
|
.eq(SeqRule::getSite,quotationHeader.getSite()) |
|
|
|
.eq(SeqRule::getType,Constant.BJ).remove(); |
|
|
|
// 获得详情ids |
|
|
|
List<Integer> ids = |
|
|
|
quotationDetailService.lambdaQuery() |
|
|
|
.eq(QuotationDetail::getQuotationHeaderId, quotationHeader.getQuotationHeaderId()) |
|
|
|
.list().stream().map(QuotationDetail::getQuotationDetailId).collect(Collectors.toList()); |
|
|
|
if (ids.isEmpty()){ |
|
|
|
return; |
|
|
|
} |
|
|
|
// 删除详情工具 |
|
|
|
quotationToolService.lambdaUpdate().in(QuotationTool::getQuotationDetailId,ids).remove(); |
|
|
|
// 删除 bom_header |
|
|
|
@ -135,7 +147,9 @@ public class QuotationHeaderServiceImpl extends ServiceImpl<QuotationHeaderMappe |
|
|
|
// 删除 bom_detail |
|
|
|
quoteBomDetailService.lambdaUpdate().in(QuoteBomDetail::getQuoteDetailId,ids).remove(); |
|
|
|
// 删除 routing_header |
|
|
|
quoteRoutingHeaderService.lambdaUpdate().in(QuoteRoutingHeader::getQuoteDetailId,ids).remove(); |
|
|
|
// 删除 routing_detail |
|
|
|
quoteRoutingDetailService.lambdaUpdate().in(QuoteRoutingDetail::getQuoteDetailId,ids).remove(); |
|
|
|
// 删除详情 |
|
|
|
quotationDetailService.lambdaUpdate(). |
|
|
|
eq(QuotationDetail::getQuotationHeaderId,quotationHeader.getQuotationHeaderId()).remove(); |
|
|
|
@ -152,7 +166,7 @@ public class QuotationHeaderServiceImpl extends ServiceImpl<QuotationHeaderMappe |
|
|
|
// 获得询价对象 |
|
|
|
QuotationInformationVo information = quotationInformationVoList.get(0); |
|
|
|
// 获取主键 |
|
|
|
String quotationHeaderNo = "BJ"+this.baseMapper.getQuotationNo(information.getSite()).toUpperCase(); |
|
|
|
String quotationHeaderNo = Constant.BJ+this.baseMapper.getQuotationNo(information.getSite()).toUpperCase(); |
|
|
|
// 创建报价对象 |
|
|
|
QuotationHeader quotationHeader = new QuotationHeader(); |
|
|
|
quotationHeader.setSite(information.getSite()); |
|
|
|
@ -176,7 +190,7 @@ public class QuotationHeaderServiceImpl extends ServiceImpl<QuotationHeaderMappe |
|
|
|
save(quotationHeader); |
|
|
|
ids.add(quotationHeader.getQuotationHeaderId()); |
|
|
|
// 新增序列规则记录 |
|
|
|
seqRuleService.save(new SeqRule(information.getSite(),"BJ","报价单号",quotationHeaderNo,3)); |
|
|
|
seqRuleService.save(new SeqRule(information.getSite(),Constant.BJ,"报价单号",quotationHeaderNo,3)); |
|
|
|
for (int i = 0; i < list.size(); i++) { |
|
|
|
QuotationInformationVo quotationInformationVo = list.get(i); |
|
|
|
// 创建询价对象 |
|
|
|
@ -264,7 +278,7 @@ public class QuotationHeaderServiceImpl extends ServiceImpl<QuotationHeaderMappe |
|
|
|
// 清空需要重新报价的id |
|
|
|
quotationHeader.setQuotationHeaderId(null); |
|
|
|
// 获取报价版本号 |
|
|
|
SeqRule rule = seqRuleService.getSeqNoValue(quotationHeader.getSite(), "BJ", quotationHeader.getQuotationNo()); |
|
|
|
SeqRule rule = seqRuleService.getSeqNoValue(quotationHeader.getSite(), Constant.BJ, quotationHeader.getQuotationNo()); |
|
|
|
// 修改版本号 |
|
|
|
quotationHeader.setVersionCode("A"+seqRuleService.getSeqNumber(rule.getCurrentVal(),rule.getLength())); |
|
|
|
// 新增报价 |
|
|
|
|