diff --git a/src/main/java/com/xujie/sys/modules/quote/service/impl/QuoteDetailServiceImpl.java b/src/main/java/com/xujie/sys/modules/quote/service/impl/QuoteDetailServiceImpl.java index 45141459..9c4e8c02 100644 --- a/src/main/java/com/xujie/sys/modules/quote/service/impl/QuoteDetailServiceImpl.java +++ b/src/main/java/com/xujie/sys/modules/quote/service/impl/QuoteDetailServiceImpl.java @@ -235,19 +235,22 @@ public class QuoteDetailServiceImpl extends ServiceImpl treeList = quoteDetailBomTreeService.lambdaQuery().eq(QuoteDetailBomTree::getParentId, tree.getId()).list(); - tree.setBomUnYield(bomUnYield); - tree.setYield(yieldRate); - if (bomUnYield.compareTo(BigDecimal.ZERO) == 0 || Objects.isNull(yieldRate) || yieldRate.compareTo(BigDecimal.ZERO) == 0){ - tree.setBomYield(BigDecimal.ZERO); - }else { - tree.setBomYield(bomUnYield.divide(yieldRate, 6, RoundingMode.HALF_UP).multiply(BigDecimal.valueOf(100))); +// tree.setBomUnYield(bomUnYield); +// tree.setYield(yieldRate); + BigDecimal bomYield = null; + if (bomUnYield.compareTo(BigDecimal.ZERO) != 0 && Objects.nonNull(yieldRate) && yieldRate.compareTo(BigDecimal.ZERO) != 0) { + bomYield = bomUnYield.divide(yieldRate, 6, RoundingMode.HALF_UP).multiply(BigDecimal.valueOf(100)); + } + BigDecimal processTime = new BigDecimal(0); + List routingList = quoteDetailRoutingService.lambdaQuery().eq(QuoteDetailRouting::getTreeId, tree.getId()).list(); + for (QuoteDetailRouting quoteDetailRouting : routingList) { + processTime = processTime.add(quoteDetailRouting.getLaborCycleTime()); } - //BigDecimal processTime = null; quoteDetailBomTreeService.lambdaUpdate() .set(QuoteDetailBomTree::getYield,yieldRate) .set(QuoteDetailBomTree::getBomUnYield,bomUnYield) - .set(QuoteDetailBomTree::getBomYield,tree.getBomYield()) - .set(QuoteDetailBomTree::getProcessTime, null) + .set(QuoteDetailBomTree::getBomYield,bomYield) + .set(QuoteDetailBomTree::getProcessTime, processTime.compareTo(BigDecimal.ZERO) == 0 ? null : processTime) .eq(QuoteDetailBomTree::getId,tree.getId()) .update(); }