|
|
|
@ -42,14 +42,14 @@ public class QuoteDetailBomTreeServiceImpl extends ServiceImpl<QuoteDetailBomTre |
|
|
|
private BaseSearchBean baseSearchBean; |
|
|
|
@Override |
|
|
|
@Transactional |
|
|
|
public void initQuoteDetailBomTree(QuoteDetail detail, Long parentId, Integer level) { |
|
|
|
public long initQuoteDetailBomTree(QuoteDetail detail, Long parentId, Integer level) { |
|
|
|
// 1、通过PartNo、Site和BuNo 查询BOM信息 失效日期日期为空 替代为* 和Routing (存在BOM的物料) |
|
|
|
if (parentId.equals(0L)){ |
|
|
|
detail.setBomType("Manufacturing"); |
|
|
|
} |
|
|
|
QuoteDetailBomTree bom = baseMapper.queryPartBom(detail); |
|
|
|
if (Objects.isNull(bom)){ |
|
|
|
return; |
|
|
|
return 0; |
|
|
|
} |
|
|
|
bom.setParentId(parentId); |
|
|
|
bom.setLevel(level); |
|
|
|
@ -121,7 +121,9 @@ public class QuoteDetailBomTreeServiceImpl extends ServiceImpl<QuoteDetailBomTre |
|
|
|
// 物料是半成品 |
|
|
|
QuoteDetailBomTree bomTree = isComponentBom(quoteDetail); |
|
|
|
if (Objects.nonNull(bomTree) && "Y".equals(component.getBomFlag())) { |
|
|
|
initQuoteDetailBomTree(quoteDetail ,bom.getId(),level+1); |
|
|
|
long id = initQuoteDetailBomTree(quoteDetail ,bom.getId(),level+1); |
|
|
|
// 如果是BOM 为子料绑定是哪个Bom |
|
|
|
component.setBomId(id); |
|
|
|
// 半成品 价格为0 |
|
|
|
component.setUnitPrice(BigDecimal.ZERO); |
|
|
|
component.setActualPrice(BigDecimal.ZERO); |
|
|
|
@ -167,6 +169,7 @@ public class QuoteDetailBomTreeServiceImpl extends ServiceImpl<QuoteDetailBomTre |
|
|
|
component.setTreeId(bom.getId()); |
|
|
|
quoteDetailBomService.save(component); |
|
|
|
} |
|
|
|
return bom.getId(); |
|
|
|
} |
|
|
|
|
|
|
|
private QuoteDetailBomTree isComponentBom(QuoteDetail component) { |
|
|
|
@ -250,7 +253,11 @@ public class QuoteDetailBomTreeServiceImpl extends ServiceImpl<QuoteDetailBomTre |
|
|
|
detail.setBomType(tree.getBomType()); |
|
|
|
detail.setEngChgLevel(tree.getEngChgLevel()); |
|
|
|
detail.setAlternativeNo(tree.getAlternativeNo()); |
|
|
|
initQuoteDetailBomTree(detail, bomTree.getParentId(), Optional.ofNullable(tree.getLevel()).orElse(0)); |
|
|
|
long bomId = initQuoteDetailBomTree(detail, bomTree.getParentId(), Optional.ofNullable(tree.getLevel()).orElse(0)); |
|
|
|
quoteDetailBomService.lambdaUpdate() |
|
|
|
.set(QuoteDetailBom::getBomId,bomId) |
|
|
|
.eq(QuoteDetailBom::getBomId,bomTree.getId()) |
|
|
|
.update(); |
|
|
|
}else { |
|
|
|
QuoteDetail detail = new QuoteDetail(); |
|
|
|
detail.setQuoteId(tree.getQuoteId()); |
|
|
|
|