|
|
@ -288,12 +288,14 @@ public class QuoteDetailBomTreeServiceImpl extends ServiceImpl<QuoteDetailBomTre |
|
|
@Override |
|
|
@Override |
|
|
@Transactional |
|
|
@Transactional |
|
|
public void changeQuoteDetailBomTree(QuoteDetailBomTree tree) { |
|
|
public void changeQuoteDetailBomTree(QuoteDetailBomTree tree) { |
|
|
|
|
|
QuoteDetail detail = null; |
|
|
|
|
|
|
|
|
// 获得选中的树 |
|
|
// 获得选中的树 |
|
|
if (Objects.nonNull(tree.getId())){ |
|
|
if (Objects.nonNull(tree.getId())){ |
|
|
|
|
|
|
|
|
QuoteDetailBomTree bomTree = getById(tree.getId()); |
|
|
QuoteDetailBomTree bomTree = getById(tree.getId()); |
|
|
// 获得对应的QuoteDetail |
|
|
// 获得对应的QuoteDetail |
|
|
QuoteDetail detail = quoteDetailService.getById(bomTree.getQuoteDetailId()); |
|
|
|
|
|
|
|
|
detail = quoteDetailService.getById(bomTree.getQuoteDetailId()); |
|
|
|
|
|
|
|
|
// 获得节点的所有ids |
|
|
// 获得节点的所有ids |
|
|
List<Long> ids = getAllChildIds(detail, bomTree.getId()); |
|
|
List<Long> ids = getAllChildIds(detail, bomTree.getId()); |
|
|
@ -316,7 +318,7 @@ public class QuoteDetailBomTreeServiceImpl extends ServiceImpl<QuoteDetailBomTre |
|
|
.eq(QuoteDetailBom::getBomId,bomTree.getId()) |
|
|
.eq(QuoteDetailBom::getBomId,bomTree.getId()) |
|
|
.update(); |
|
|
.update(); |
|
|
}else { |
|
|
}else { |
|
|
QuoteDetail detail = new QuoteDetail(); |
|
|
|
|
|
|
|
|
detail = new QuoteDetail(); |
|
|
detail.setQuoteId(tree.getQuoteId()); |
|
|
detail.setQuoteId(tree.getQuoteId()); |
|
|
detail.setQuoteNo(tree.getQuoteNo()); |
|
|
detail.setQuoteNo(tree.getQuoteNo()); |
|
|
detail.setId(tree.getQuoteDetailId()); |
|
|
detail.setId(tree.getQuoteDetailId()); |
|
|
@ -329,6 +331,18 @@ public class QuoteDetailBomTreeServiceImpl extends ServiceImpl<QuoteDetailBomTre |
|
|
detail.setAlternativeNo(tree.getAlternativeNo()); |
|
|
detail.setAlternativeNo(tree.getAlternativeNo()); |
|
|
initQuoteDetailBomTree(detail, 0L,0); |
|
|
initQuoteDetailBomTree(detail, 0L,0); |
|
|
} |
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
// 如果勾选了重新计算成本,则执行成本计算 |
|
|
|
|
|
if (Boolean.TRUE.equals(tree.getRecalculateCost()) && detail != null) { |
|
|
|
|
|
log.info("[BOM_SWITCH] Recalculate cost is enabled, executing cost calculation for QuoteDetailId: {}", detail.getId()); |
|
|
|
|
|
try { |
|
|
|
|
|
quoteDetailService.queryQuoteDetailCost(detail); |
|
|
|
|
|
log.info("[BOM_SWITCH] Cost calculation completed successfully for QuoteDetailId: {}", detail.getId()); |
|
|
|
|
|
} catch (Exception e) { |
|
|
|
|
|
log.error("[BOM_SWITCH] Cost calculation failed for QuoteDetailId: {}, Error: {}", detail.getId(), e.getMessage(), e); |
|
|
|
|
|
throw new RuntimeException("成本计算失败: " + e.getMessage()); |
|
|
|
|
|
} |
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
} |
|
|
} |
|
|
|
|
|
|
|
|
|