Browse Source

20241112

java8
qiezi 1 year ago
parent
commit
64cfac83b7
  1. 38
      src/main/java/com/xujie/sys/modules/quote/service/impl/QuoteDetailBomServiceImpl.java
  2. 4
      src/main/resources/mapper/quote/QuoteDetailBomTreeMapper.xml

38
src/main/java/com/xujie/sys/modules/quote/service/impl/QuoteDetailBomServiceImpl.java

@ -31,18 +31,18 @@ public class QuoteDetailBomServiceImpl extends ServiceImpl<QuoteDetailBomMapper,
@Override
public List<QuoteDetailBom> queryQuoteDetailBom(QuoteDetailBom quoteDetailBom) {
QuoteDetail detail = quoteDetailService.lambdaQuery().eq(QuoteDetail::getId, quoteDetailBom.getQuoteDetailId()).one();
if (Objects.nonNull(quoteDetailBom.getAllTree()) && quoteDetailBom.getAllTree()){
if (Objects.nonNull(quoteDetailBom.getAllTree()) && quoteDetailBom.getAllTree()) {
return Objects.requireNonNull(queryQuoteDetailBomAll(quoteDetailBom)).stream().map(item -> {
item.setQuoteUnitPrice(calculateQuotePrice(item,detail));// 单位标准成本
item.setActualQuotePrice(calculateActualQuotePrice(item,detail));// 单位实际成本
item.setAllQuotePrice(calculateBOMQuotePrice(item,detail));// 单位实际成本
item.setQuoteUnitPrice(calculateQuotePrice(item, detail));// 单位标准成本
item.setActualQuotePrice(calculateActualQuotePrice(item, detail));// 单位实际成本
item.setAllQuotePrice(calculateBOMQuotePrice(item, detail));// 单位实际成本
return item;
}).collect(Collectors.toList());
}
return baseMapper.queryQuoteDetailBom(quoteDetailBom).stream().map(item -> {
item.setQuoteUnitPrice(calculateQuotePrice(item,detail));
item.setActualQuotePrice(calculateActualQuotePrice(item,detail));
item.setAllQuotePrice(calculateBOMQuotePrice(item,detail));
item.setQuoteUnitPrice(calculateQuotePrice(item, detail));
item.setActualQuotePrice(calculateActualQuotePrice(item, detail));
item.setAllQuotePrice(calculateBOMQuotePrice(item, detail));
return item;
}).collect(Collectors.toList());
}
@ -71,11 +71,13 @@ public class QuoteDetailBomServiceImpl extends ServiceImpl<QuoteDetailBomMapper,
BigDecimal qty = detail.getQty();
// 6 计算所需数量
// 调机单位用量
if (qty.compareTo(BigDecimal.ZERO) == 0){
if (qty.compareTo(BigDecimal.ZERO) == 0) {
return BigDecimal.ZERO;
}
BigDecimal componentUnitScrap = componentScrap.divide(qty,4, RoundingMode.HALF_UP);
BigDecimal needQty = qtyPerAssembly.divide(BigDecimal.ONE.subtract(shrinkageFactor.divide(BigDecimal.valueOf(100),4, RoundingMode.HALF_UP)),4, RoundingMode.HALF_UP)
BigDecimal componentUnitScrap = componentScrap.divide(qty, 4, RoundingMode.HALF_UP);
BigDecimal needQty =
qtyPerAssembly
// .divide(BigDecimal.ONE.subtract(shrinkageFactor.divide(BigDecimal.valueOf(100), 4, RoundingMode.HALF_UP)), 4, RoundingMode.HALF_UP)
.add(componentUnitScrap);
return needQty.multiply(unitPrice).setScale(4, RoundingMode.HALF_UP);
@ -95,11 +97,13 @@ public class QuoteDetailBomServiceImpl extends ServiceImpl<QuoteDetailBomMapper,
BigDecimal qty = detail.getQty();
// 6 计算所需数量
// 调机单位用量
if (qty.compareTo(BigDecimal.ZERO) == 0){
if (qty.compareTo(BigDecimal.ZERO) == 0) {
return BigDecimal.ZERO;
}
BigDecimal componentUnitScrap = componentScrap.divide(qty,4, RoundingMode.HALF_UP);
BigDecimal needQty = qtyPerAssembly.divide(BigDecimal.ONE.subtract(shrinkageFactor.divide(BigDecimal.valueOf(100),4, RoundingMode.HALF_UP)),4, RoundingMode.HALF_UP)
BigDecimal componentUnitScrap = componentScrap.divide(qty, 4, RoundingMode.HALF_UP);
BigDecimal needQty =
qtyPerAssembly
// .divide(BigDecimal.ONE.subtract(shrinkageFactor.divide(BigDecimal.valueOf(100), 4, RoundingMode.HALF_UP)), 4, RoundingMode.HALF_UP)
.add(componentUnitScrap);
return needQty.multiply(actualPrice).setScale(4, RoundingMode.HALF_UP);
@ -119,11 +123,13 @@ public class QuoteDetailBomServiceImpl extends ServiceImpl<QuoteDetailBomMapper,
BigDecimal qty = detail.getQty();
// 6 计算所需数量
// 调机单位用量
if (qty.compareTo(BigDecimal.ZERO) == 0){
if (qty.compareTo(BigDecimal.ZERO) == 0) {
return BigDecimal.ZERO;
}
BigDecimal componentUnitScrap = componentScrap.divide(qty,4, RoundingMode.HALF_UP);
BigDecimal needQty = qtyPerAssembly.divide(BigDecimal.ONE.subtract(shrinkageFactor.divide(BigDecimal.valueOf(100),4, RoundingMode.HALF_UP)),4, RoundingMode.HALF_UP)
BigDecimal componentUnitScrap = componentScrap.divide(qty, 4, RoundingMode.HALF_UP);
BigDecimal needQty =
qtyPerAssembly
// .divide(BigDecimal.ONE.subtract(shrinkageFactor.divide(BigDecimal.valueOf(100), 4, RoundingMode.HALF_UP)), 4, RoundingMode.HALF_UP)
.add(componentUnitScrap);
return needQty.multiply(quotePrice).setScale(4, RoundingMode.HALF_UP);
}

4
src/main/resources/mapper/quote/QuoteDetailBomTreeMapper.xml

@ -28,7 +28,6 @@
<select id="queryPartBom" resultType="com.xujie.sys.modules.quote.entity.QuoteDetailBomTree">
select top 1 bd.site,
#{buNo} as bu_no,
bd.part_no,
bd.alternative_no,
bd.bom_type,
@ -127,7 +126,6 @@
left join part p on bom.part_no = p.part_no and bom.site = p.site
where bom.site = #{site}
and bom.part_no = #{partNo}
and bom.status != 'Tentative'
<if test="bomType != null and bomType != ''">
and bom.bom_type = #{bomType}
@ -140,7 +138,6 @@
select top 1
rd.site,
#{buNo} as bu_no,
rd.routing_revision,
rd.routing_type,
rd.part_no,
@ -156,7 +153,6 @@
rd.routing_type = rh.routing_type and
rd.routing_revision = rh.routing_revision
where rd.site = #{site}
and rd.part_no = #{partNo}
<if test="engChgLevel == null">
and rh.phase_out_date is null

Loading…
Cancel
Save