|
@@ -301,8 +301,9 @@ public class TqQuotationServiceImpl extends ServiceImpl<TqQuotationMapper, TqQuo
|
|
baseMapper.insertTqQuotation(tqQuotation);
|
|
baseMapper.insertTqQuotation(tqQuotation);
|
|
Long quotationId = tqQuotation.getId();
|
|
Long quotationId = tqQuotation.getId();
|
|
log.info("报价id [{}]", quotationId);
|
|
log.info("报价id [{}]", quotationId);
|
|
-
|
|
|
|
- boolean quotationStandardFlag = insertSpecificationParam(quotationAddBO, quotationId);
|
|
|
|
|
|
+ boolean quotationStandardFlag = insertSpecificationParam(quotationAddBO
|
|
|
|
+ , quotationId
|
|
|
|
+ , isNeedCalc(quotationAddBO.getQuotationStatus()));
|
|
// 技术评审中时,启动审批流程(技术评审)
|
|
// 技术评审中时,启动审批流程(技术评审)
|
|
if (QuotationStatusEnum.REVIEWING.getCode().equals(quotationAddBO.getQuotationStatus())) {
|
|
if (QuotationStatusEnum.REVIEWING.getCode().equals(quotationAddBO.getQuotationStatus())) {
|
|
if (quotationStandardFlag) {
|
|
if (quotationStandardFlag) {
|
|
@@ -343,7 +344,7 @@ public class TqQuotationServiceImpl extends ServiceImpl<TqQuotationMapper, TqQuo
|
|
}
|
|
}
|
|
|
|
|
|
// 新增电梯规则 和 参数
|
|
// 新增电梯规则 和 参数
|
|
- private boolean insertSpecificationParam(QuotationAddBO quotationAddBO, Long quotationId) {
|
|
|
|
|
|
+ private boolean insertSpecificationParam(QuotationAddBO quotationAddBO, Long quotationId, boolean needCalc) {
|
|
BigDecimal finalRate = quoteApprovalService.getFinalRate(quotationAddBO.getExchangeRate(),
|
|
BigDecimal finalRate = quoteApprovalService.getFinalRate(quotationAddBO.getExchangeRate(),
|
|
quotationAddBO.getAgentDiscountRate(),
|
|
quotationAddBO.getAgentDiscountRate(),
|
|
quotationAddBO.getCountryDiscountRate());
|
|
quotationAddBO.getCountryDiscountRate());
|
|
@@ -374,30 +375,32 @@ public class TqQuotationServiceImpl extends ServiceImpl<TqQuotationMapper, TqQuo
|
|
}
|
|
}
|
|
tqSpecification.setUpdateBy(SecurityUtils.getStrUserId());
|
|
tqSpecification.setUpdateBy(SecurityUtils.getStrUserId());
|
|
tqSpecification.setUpdateTime(DateUtils.getNowDate());
|
|
tqSpecification.setUpdateTime(DateUtils.getNowDate());
|
|
- Long basicPriceLong;
|
|
|
|
|
|
+ Long basicPriceLong = 0L;
|
|
List<TqPriceDetail> tqPriceDetailList = new ArrayList<>();
|
|
List<TqPriceDetail> tqPriceDetailList = new ArrayList<>();
|
|
- // 初始化梯形计算参数
|
|
|
|
- QuotationUtil.initMap(elevator.getParamList());
|
|
|
|
- try {
|
|
|
|
- // 计算电梯基础价格 && 层站差价放到选配价格
|
|
|
|
- basicPriceLong = priceCalcService.calculateBasicPrice(elevator, tqPriceDetailList);
|
|
|
|
- log.info("基础价格 [{}]", basicPriceLong);
|
|
|
|
- } catch (Exception e) {
|
|
|
|
- log.error("计算基价失败", e);
|
|
|
|
- throw new ServiceException(
|
|
|
|
- MessageUtils.message("elevator.basic.price.fail",
|
|
|
|
- elevator.getElevatorModel(),
|
|
|
|
- elevator.getSpecification()));
|
|
|
|
- }
|
|
|
|
- // 计算电梯选配价格 (以及价格明细)
|
|
|
|
- try {
|
|
|
|
- priceCalcService.statisticsOptionalPrice(elevator, tqPriceDetailList);
|
|
|
|
- } catch (Exception e) {
|
|
|
|
- log.error("计算加价项目失败", e);
|
|
|
|
- throw new ServiceException(
|
|
|
|
- MessageUtils.message("elevator.optional.price.fail",
|
|
|
|
- elevator.getElevatorModel(),
|
|
|
|
- elevator.getSpecification()));
|
|
|
|
|
|
+ if (needCalc) {
|
|
|
|
+ // 初始化梯形计算参数
|
|
|
|
+ QuotationUtil.initMap(elevator.getParamList());
|
|
|
|
+ try {
|
|
|
|
+ // 计算电梯基础价格 && 层站差价放到选配价格
|
|
|
|
+ basicPriceLong = priceCalcService.calculateBasicPrice(elevator, tqPriceDetailList);
|
|
|
|
+ log.info("基础价格 [{}]", basicPriceLong);
|
|
|
|
+ } catch (Exception e) {
|
|
|
|
+ log.error("计算基价失败", e);
|
|
|
|
+ throw new ServiceException(
|
|
|
|
+ MessageUtils.message("elevator.basic.price.fail",
|
|
|
|
+ elevator.getElevatorModel(),
|
|
|
|
+ elevator.getSpecification()));
|
|
|
|
+ }
|
|
|
|
+ // 计算电梯选配价格 (以及价格明细)
|
|
|
|
+ try {
|
|
|
|
+ priceCalcService.statisticsOptionalPrice(elevator, tqPriceDetailList);
|
|
|
|
+ } catch (Exception e) {
|
|
|
|
+ log.error("计算加价项目失败", e);
|
|
|
|
+ throw new ServiceException(
|
|
|
|
+ MessageUtils.message("elevator.optional.price.fail",
|
|
|
|
+ elevator.getElevatorModel(),
|
|
|
|
+ elevator.getSpecification()));
|
|
|
|
+ }
|
|
}
|
|
}
|
|
// 选配价格求和
|
|
// 选配价格求和
|
|
BigDecimal optionalPrice = tqPriceDetailList.stream()
|
|
BigDecimal optionalPrice = tqPriceDetailList.stream()
|
|
@@ -442,10 +445,12 @@ public class TqQuotationServiceImpl extends ServiceImpl<TqQuotationMapper, TqQuo
|
|
Long specificationId = tqSpecification.getId();
|
|
Long specificationId = tqSpecification.getId();
|
|
log.info("规格id [{}]", specificationId);
|
|
log.info("规格id [{}]", specificationId);
|
|
// 保存价格明细
|
|
// 保存价格明细
|
|
- tqPriceDetailList = tqPriceDetailList.stream().peek(item -> {
|
|
|
|
- item.setSpecificationId(specificationId);
|
|
|
|
- }).collect(Collectors.toList());
|
|
|
|
- priceDetailService.saveBatch(tqPriceDetailList);
|
|
|
|
|
|
+ if (CollUtil.isNotEmpty(tqPriceDetailList)) {
|
|
|
|
+ tqPriceDetailList = tqPriceDetailList.stream().peek(item -> {
|
|
|
|
+ item.setSpecificationId(specificationId);
|
|
|
|
+ }).collect(Collectors.toList());
|
|
|
|
+ priceDetailService.saveBatch(tqPriceDetailList);
|
|
|
|
+ }
|
|
|
|
|
|
// 非标记录表
|
|
// 非标记录表
|
|
List<NonStandardAddBO> nonStandardList = elevator.getNonStandardList();
|
|
List<NonStandardAddBO> nonStandardList = elevator.getNonStandardList();
|
|
@@ -588,7 +593,9 @@ public class TqQuotationServiceImpl extends ServiceImpl<TqQuotationMapper, TqQuo
|
|
quotationAddBO.setExchangeRate(tqQuotation.getExchangeRate());
|
|
quotationAddBO.setExchangeRate(tqQuotation.getExchangeRate());
|
|
quotationAddBO.setCountryDiscountRate(tqQuotation.getCountryDiscountRate());
|
|
quotationAddBO.setCountryDiscountRate(tqQuotation.getCountryDiscountRate());
|
|
quotationAddBO.setAgentDiscountRate(tqQuotation.getAgentDiscountRate());
|
|
quotationAddBO.setAgentDiscountRate(tqQuotation.getAgentDiscountRate());
|
|
- boolean quotationStandardFlag = insertSpecificationParam(quotationAddBO, quotationId);
|
|
|
|
|
|
+ boolean quotationStandardFlag = insertSpecificationParam(quotationAddBO
|
|
|
|
+ , quotationId
|
|
|
|
+ , isNeedCalc(quotationAddBO.getQuotationStatus()));
|
|
// 技术评审中时,启动审批流程(技术评审)
|
|
// 技术评审中时,启动审批流程(技术评审)
|
|
if (QuotationStatusEnum.REVIEWING.getCode().equals(quotationAddBO.getQuotationStatus())) {
|
|
if (QuotationStatusEnum.REVIEWING.getCode().equals(quotationAddBO.getQuotationStatus())) {
|
|
if (quotationStandardFlag) {
|
|
if (quotationStandardFlag) {
|
|
@@ -609,6 +616,12 @@ public class TqQuotationServiceImpl extends ServiceImpl<TqQuotationMapper, TqQuo
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
|
|
|
|
+ // 是否计算梯形价格(上线后放开注释)
|
|
|
|
+ private boolean isNeedCalc(String quotationStatus) {
|
|
|
|
+ return true;
|
|
|
|
+ // return !QuotationStatusEnum.DRAFT.getCode().equals(quotationStatus);
|
|
|
|
+ }
|
|
|
|
+
|
|
/**
|
|
/**
|
|
* 批量删除【请填写功能名称】
|
|
* 批量删除【请填写功能名称】
|
|
*
|
|
*
|