diff --git a/src/main/java/com/spring/modules/quote/mapper/QuoteDetailBomTreeMapper.java b/src/main/java/com/spring/modules/quote/mapper/QuoteDetailBomTreeMapper.java index 6602d6b1..7a1b3e48 100644 --- a/src/main/java/com/spring/modules/quote/mapper/QuoteDetailBomTreeMapper.java +++ b/src/main/java/com/spring/modules/quote/mapper/QuoteDetailBomTreeMapper.java @@ -31,4 +31,12 @@ public interface QuoteDetailBomTreeMapper extends BaseMapper PartInformationEntity queryPart(@Param("site") String site,@Param("partNo") String partNo); PartInformationEntity queryPLMPart(@Param("site") String site,@Param("partNo") String partNo); + + /** + * 根据物料编码查询物料类型 + * @param site 站点 + * @param partNo 物料编码 + * @return 物料类型(Manufactured/Manufactured Recipe/Purchased等) + */ + String queryPartType(@Param("site") String site, @Param("partNo") String partNo); } diff --git a/src/main/java/com/spring/modules/quote/service/impl/QuoteDetailBomTreeServiceImpl.java b/src/main/java/com/spring/modules/quote/service/impl/QuoteDetailBomTreeServiceImpl.java index 0c66f303..1d942a24 100644 --- a/src/main/java/com/spring/modules/quote/service/impl/QuoteDetailBomTreeServiceImpl.java +++ b/src/main/java/com/spring/modules/quote/service/impl/QuoteDetailBomTreeServiceImpl.java @@ -72,13 +72,22 @@ public class QuoteDetailBomTreeServiceImpl extends ServiceImpl componentParts = baseMapper.queryBomComponentPart(bom); - // 判断BOM Type是否是Purse Purse 需要将自己当成自己的子物料,用于计算成本 - if ("Purchase".equals(bom.getBomType())) { + // 判断BOM Type是否是Purchase,且没有子物料时,需要将自己当成自己的子物料,用于计算成本 + if ("Purchase".equals(bom.getBomType()) && componentParts.isEmpty()) { QuoteDetailBom purchase = getPurchaseComponentPart(detail, bom, componentParts.size()+1); componentParts.add(purchase); } diff --git a/src/main/resources/mapper/quote/QuoteDetailBomTreeMapper.xml b/src/main/resources/mapper/quote/QuoteDetailBomTreeMapper.xml index 1b54437d..669983c9 100644 --- a/src/main/resources/mapper/quote/QuoteDetailBomTreeMapper.xml +++ b/src/main/resources/mapper/quote/QuoteDetailBomTreeMapper.xml @@ -184,12 +184,21 @@ select top 1 site, part_no, status, - ifs_part_no + ifs_part_no, + part_type from part p where p.site = #{site} and p.plm_part_no = #{partNo} and temporary_part_flag != 'Y' + + +