From e4232cc6c971e10dbc1e244093b1a05348d8bb2d Mon Sep 17 00:00:00 2001 From: qiezi <15576055375@163.com> Date: Thu, 19 Sep 2024 13:17:01 +0800 Subject: [PATCH] 20240919 --- .../impl/QuoteDetailBomTreeServiceImpl.java | 53 +++++++++++++------ .../mapper/quote/QuoteDetailBomTreeMapper.xml | 4 +- 2 files changed, 39 insertions(+), 18 deletions(-) diff --git a/src/main/java/com/xujie/sys/modules/quote/service/impl/QuoteDetailBomTreeServiceImpl.java b/src/main/java/com/xujie/sys/modules/quote/service/impl/QuoteDetailBomTreeServiceImpl.java index efa8c194..88ff5874 100644 --- a/src/main/java/com/xujie/sys/modules/quote/service/impl/QuoteDetailBomTreeServiceImpl.java +++ b/src/main/java/com/xujie/sys/modules/quote/service/impl/QuoteDetailBomTreeServiceImpl.java @@ -126,23 +126,42 @@ public class QuoteDetailBomTreeServiceImpl extends ServiceImpl 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 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 getAllNodes(QuoteDetail detail) { diff --git a/src/main/resources/mapper/quote/QuoteDetailBomTreeMapper.xml b/src/main/resources/mapper/quote/QuoteDetailBomTreeMapper.xml index 39a304cf..de2484a7 100644 --- a/src/main/resources/mapper/quote/QuoteDetailBomTreeMapper.xml +++ b/src/main/resources/mapper/quote/QuoteDetailBomTreeMapper.xml @@ -120,7 +120,9 @@ where bom.site = #{site} and bom.part_no = #{partNo} and bom.bu_no = #{buNo} - and bom.bom_type = #{bomType} + + and bom.bom_type = #{bomType} + and bom.eng_chg_level = #{engChgLevel} order by bom.alternative_no