Browse Source

20241112

java8
qiezi 1 year ago
parent
commit
0eeb358d65
  1. 2
      src/main/java/com/xujie/sys/modules/quote/entity/QuoteDetailBomTree.java
  2. 6
      src/main/java/com/xujie/sys/modules/quote/service/impl/QuoteDetailServiceImpl.java

2
src/main/java/com/xujie/sys/modules/quote/entity/QuoteDetailBomTree.java

@ -54,6 +54,8 @@ public class QuoteDetailBomTree {
private BigDecimal bomActualYield;
private BigDecimal bomQtyPerAssembly;
@TableField(exist = false)
private List<QuoteDetailBomTree> list = new ArrayList<>();

6
src/main/java/com/xujie/sys/modules/quote/service/impl/QuoteDetailServiceImpl.java

@ -338,6 +338,8 @@ public class QuoteDetailServiceImpl extends ServiceImpl<QuoteDetailMapper, Quote
// BomUnYield
BigDecimal bomUnYield = BigDecimal.ZERO;
BigDecimal bomActualUnYield = BigDecimal.ZERO;
// 单位用量
BigDecimal bomQtyPerAssembly = BigDecimal.ZERO;
for (QuoteDetailBom bom : bomList) {
// 获取半成品 价格
if (Objects.nonNull(root) && root.getPartNo().equals(bom.getComponentPart())){
@ -346,6 +348,8 @@ public class QuoteDetailServiceImpl extends ServiceImpl<QuoteDetailMapper, Quote
BigDecimal qtyPerAssembly = bom.getQtyPerAssembly();
bomUnYield = bomUnYield.add(qtyPerAssembly.multiply(bomYield));
bomActualUnYield = bomActualUnYield.add(qtyPerAssembly.multiply(bomActualYield));
bomQtyPerAssembly = bomQtyPerAssembly.add(qtyPerAssembly);
}
bomUnYield = bomUnYield.add(bom.getQuoteUnitPrice());
bomActualUnYield = bomActualUnYield.add(bom.getActualQuotePrice());
@ -372,6 +376,7 @@ public class QuoteDetailServiceImpl extends ServiceImpl<QuoteDetailMapper, Quote
tree.setBomYield(bomYield);
tree.setBomActualYield(bomActualYield);
tree.setBomActualUnYield(bomActualUnYield);
tree.setBomQtyPerAssembly(bomQtyPerAssembly);
quoteDetailBomTreeService.lambdaUpdate()
.set(QuoteDetailBomTree::getYield,tree.getYield())
.set(QuoteDetailBomTree::getBomUnYield,tree.getBomUnYield())
@ -379,6 +384,7 @@ public class QuoteDetailServiceImpl extends ServiceImpl<QuoteDetailMapper, Quote
.set(QuoteDetailBomTree::getBomActualYield,tree.getBomActualYield())
.set(QuoteDetailBomTree::getBomActualUnYield,tree.getBomActualUnYield())
.set(QuoteDetailBomTree::getProcessTime, tree.getProcessTime().compareTo(BigDecimal.ZERO) == 0 ? null : tree.getProcessTime())
.set(QuoteDetailBomTree::getBomQtyPerAssembly, tree.getBomQtyPerAssembly().compareTo(BigDecimal.ZERO) == 0 ? BigDecimal.ONE : tree.getBomQtyPerAssembly())
.eq(QuoteDetailBomTree::getId,tree.getId())
.update();
root = tree;

Loading…
Cancel
Save