Browse Source

2025-03-07

master
qiezi 10 months ago
parent
commit
96b4635fbc
  1. 7
      src/main/java/com/spring/modules/quote/service/impl/QuoteDetailServiceImpl.java
  2. 3
      src/main/resources/mapper/quote/QuoteDetailBomTreeMapper.xml
  3. 2
      src/main/resources/mapper/quote/QuoteDetailMapper.xml

7
src/main/java/com/spring/modules/quote/service/impl/QuoteDetailServiceImpl.java

@ -248,13 +248,13 @@ public class QuoteDetailServiceImpl extends ServiceImpl<QuoteDetailMapper, Quote
log.info("当前BOM:{}", bomTree.getPartNo()); log.info("当前BOM:{}", bomTree.getPartNo());
// 第二层BOM 目的是遍历所有的 BOM中 Part用量 // 第二层BOM 目的是遍历所有的 BOM中 Part用量
long parentId = bomTree.getParentId(); long parentId = bomTree.getParentId();
String partNo = bomTree.getPartNo();
for (QuoteDetailBomTree tree : list) { for (QuoteDetailBomTree tree : list) {
if (tree.getLevel() > bomTree.getLevel() || tree.getId() != parentId) { if (tree.getLevel() > bomTree.getLevel() || tree.getId() != parentId) {
continue; continue;
} }
parentId = tree.getParentId();
// 获取 层级比自己高的Bom 来获得BOM信息 用量和损耗 // 获取 层级比自己高的Bom 来获得BOM信息 用量和损耗
List<QuoteDetailBom> bomList = quoteDetailBomService.lambdaQuery().eq(QuoteDetailBom::getTreeId, tree.getParentId()).eq(QuoteDetailBom::getComponentPart, tree.getPartNo()).list();
List<QuoteDetailBom> bomList = quoteDetailBomService.lambdaQuery().eq(QuoteDetailBom::getTreeId, parentId).eq(QuoteDetailBom::getComponentPart, partNo).list();
BigDecimal qtyPerAssembly = BigDecimal.ONE; BigDecimal qtyPerAssembly = BigDecimal.ONE;
for (QuoteDetailBom bom : bomList) { for (QuoteDetailBom bom : bomList) {
BigDecimal yield = BigDecimal.ONE.subtract(bom.getShrinkageFactor().divide( BigDecimal.valueOf(100),16,RoundingMode.HALF_UP)); BigDecimal yield = BigDecimal.ONE.subtract(bom.getShrinkageFactor().divide( BigDecimal.valueOf(100),16,RoundingMode.HALF_UP));
@ -264,6 +264,9 @@ public class QuoteDetailServiceImpl extends ServiceImpl<QuoteDetailMapper, Quote
// 计算 损耗和用量得到的差异 // 计算 损耗和用量得到的差异
bomLabourCost = bomLabourCost.multiply(qtyPerAssembly); bomLabourCost = bomLabourCost.multiply(qtyPerAssembly);
bomMachineCost = bomMachineCost.multiply(qtyPerAssembly); bomMachineCost = bomMachineCost.multiply(qtyPerAssembly);
// 拿到上层数据
parentId = tree.getParentId();
partNo = tree.getPartNo();
} }
labourCost = labourCost.add(bomLabourCost); labourCost = labourCost.add(bomLabourCost);
machineCost = machineCost.add(bomMachineCost); machineCost = machineCost.add(bomMachineCost);

3
src/main/resources/mapper/quote/QuoteDetailBomTreeMapper.xml

@ -41,8 +41,7 @@
#{versionNo} as version_no #{versionNo} as version_no
from plm_bom_detail bd from plm_bom_detail bd
left join plm_bom_header bh left join plm_bom_header bh
on bd.site = bh.site and bd.part_no = bh.part_no
and bd.bom_type = bh.bom_type and bd.eng_chg_level = bh.eng_chg_level
on bd.site = bh.site and bd.part_no = bh.part_no and bd.bom_type = bh.bom_type and bd.eng_chg_level = bh.eng_chg_level
where bd.site = #{site} where bd.site = #{site}
and bd.part_no = #{partNo} and bd.part_no = #{partNo}
<!-- and bd.status != 'Tentative'--> <!-- and bd.status != 'Tentative'-->

2
src/main/resources/mapper/quote/QuoteDetailMapper.xml

@ -105,7 +105,7 @@
and qd.quote_group_detail_id = #{quoteGroupDetailId} and qd.quote_group_detail_id = #{quoteGroupDetailId}
</if> </if>
</where> </where>
order by qd.id desc
order by qd.id
</select> </select>
<select id="queryQuoteDetailByPage" resultType="com.spring.modules.quote.entity.QuoteDetail"> <select id="queryQuoteDetailByPage" resultType="com.spring.modules.quote.entity.QuoteDetail">

Loading…
Cancel
Save