|
|
@ -126,23 +126,42 @@ public class QuoteDetailBomTreeServiceImpl extends ServiceImpl<QuoteDetailBomTre |
|
|
@Transactional |
|
|
@Transactional |
|
|
public void changeQuoteDetailBomTree(QuoteDetailBomTree tree) { |
|
|
public void changeQuoteDetailBomTree(QuoteDetailBomTree tree) { |
|
|
// 获得选中的树 |
|
|
// 获得选中的树 |
|
|
QuoteDetailBomTree bomTree = getById(tree.getId()); |
|
|
|
|
|
// 获得对应的QuoteDetail |
|
|
|
|
|
QuoteDetail detail = quoteDetailService.getById(bomTree.getQuoteDetailId()); |
|
|
|
|
|
// 获得节点的所有ids |
|
|
|
|
|
List<Long> ids = getAllChildIds(detail, bomTree.getId()); |
|
|
|
|
|
ids.add(bomTree.getId()); |
|
|
|
|
|
// 删除子节点内容 |
|
|
|
|
|
lambdaUpdate().in(QuoteDetailBomTree::getId,ids).remove(); |
|
|
|
|
|
quoteDetailBomService.lambdaUpdate().in(QuoteDetailBom::getTreeId,ids).remove(); |
|
|
|
|
|
quoteDetailRoutingService.lambdaUpdate().in(QuoteDetailRouting::getTreeId,ids).remove(); |
|
|
|
|
|
// 替换BOM树 |
|
|
|
|
|
detail.setPartNo(tree.getPartNo()); |
|
|
|
|
|
detail.setSite(tree.getSite()); |
|
|
|
|
|
detail.setBuNo(tree.getBuNo()); |
|
|
|
|
|
detail.setEngChgLevel(tree.getEngChgLevel()); |
|
|
|
|
|
detail.setAlternativeNo(tree.getAlternativeNo()); |
|
|
|
|
|
initQuoteDetailBomTree(detail, bomTree.getParentId()); |
|
|
|
|
|
|
|
|
if (Objects.nonNull(tree.getId())){ |
|
|
|
|
|
|
|
|
|
|
|
QuoteDetailBomTree bomTree = getById(tree.getId()); |
|
|
|
|
|
// 获得对应的QuoteDetail |
|
|
|
|
|
QuoteDetail detail = quoteDetailService.getById(bomTree.getQuoteDetailId()); |
|
|
|
|
|
|
|
|
|
|
|
// 获得节点的所有ids |
|
|
|
|
|
List<Long> ids = getAllChildIds(detail, bomTree.getId()); |
|
|
|
|
|
ids.add(bomTree.getId()); |
|
|
|
|
|
// 删除子节点内容 |
|
|
|
|
|
lambdaUpdate().in(QuoteDetailBomTree::getId,ids).remove(); |
|
|
|
|
|
quoteDetailBomService.lambdaUpdate().in(QuoteDetailBom::getTreeId,ids).remove(); |
|
|
|
|
|
quoteDetailRoutingService.lambdaUpdate().in(QuoteDetailRouting::getTreeId,ids).remove(); |
|
|
|
|
|
|
|
|
|
|
|
// 替换BOM树 |
|
|
|
|
|
detail.setPartNo(tree.getPartNo()); |
|
|
|
|
|
detail.setSite(tree.getSite()); |
|
|
|
|
|
detail.setBuNo(tree.getBuNo()); |
|
|
|
|
|
detail.setEngChgLevel(tree.getEngChgLevel()); |
|
|
|
|
|
detail.setAlternativeNo(tree.getAlternativeNo()); |
|
|
|
|
|
initQuoteDetailBomTree(detail, bomTree.getParentId()); |
|
|
|
|
|
}else { |
|
|
|
|
|
QuoteDetail detail = new QuoteDetail(); |
|
|
|
|
|
detail.setQuoteId(tree.getQuoteId()); |
|
|
|
|
|
detail.setQuoteNo(tree.getQuoteNo()); |
|
|
|
|
|
detail.setId(tree.getQuoteDetailId()); |
|
|
|
|
|
detail.setItemNo(tree.getQuoteDetailItemNo()); |
|
|
|
|
|
detail.setVersionNo(tree.getVersionNo()); |
|
|
|
|
|
detail.setPartNo(tree.getPartNo()); |
|
|
|
|
|
detail.setSite(tree.getSite()); |
|
|
|
|
|
detail.setBuNo(tree.getBuNo()); |
|
|
|
|
|
detail.setEngChgLevel(tree.getEngChgLevel()); |
|
|
|
|
|
detail.setAlternativeNo(tree.getAlternativeNo()); |
|
|
|
|
|
initQuoteDetailBomTree(detail, 0L); |
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
} |
|
|
} |
|
|
|
|
|
|
|
|
public List<QuoteDetailBomTree> getAllNodes(QuoteDetail detail) { |
|
|
public List<QuoteDetailBomTree> getAllNodes(QuoteDetail detail) { |
|
|
|