|
|
|
@ -101,7 +101,10 @@ public class QuoteDetailRoutingServiceImpl extends ServiceImpl<QuoteDetailRoutin |
|
|
|
// 人员等级成本 |
|
|
|
BigDecimal laborClassCost = quoteDetailRouting.getLaborClassCost(); |
|
|
|
// 单位产出 |
|
|
|
BigDecimal laborCycleTime = unitProcessingTime(quoteDetailRouting,quoteDetailRouting.getLaborRunFactor()); |
|
|
|
BigDecimal laborCycleTime = BigDecimal.ZERO; |
|
|
|
if (!(Objects.isNull(quoteDetailRouting.getLaborRunFactor()) || BigDecimal.ZERO.compareTo(quoteDetailRouting.getLaborRunFactor())== 0) ){ |
|
|
|
laborCycleTime = unitProcessingTime(quoteDetailRouting,quoteDetailRouting.getLaborRunFactor()); |
|
|
|
} |
|
|
|
// 效率 |
|
|
|
BigDecimal efficiencyFactor = quoteDetailRouting.getEfficiencyFactor(); |
|
|
|
// 人数 |
|
|
|
@ -118,9 +121,12 @@ public class QuoteDetailRoutingServiceImpl extends ServiceImpl<QuoteDetailRoutin |
|
|
|
num2= num1.divide(BigDecimal.ONE.subtract(shrinkageFactor.divide(BigDecimal.valueOf(100), 6, RoundingMode.HALF_UP)), 6, RoundingMode.HALF_UP); |
|
|
|
} |
|
|
|
// 单位产出/效率/100/(1-损耗率)*人数 |
|
|
|
BigDecimal num3 = num2.multiply(crewSize); |
|
|
|
// 人员等级成本/单位产出/效率/100/(1-损耗率)*人数 |
|
|
|
laborCost = laborClassCost.divide(num3, 4, RoundingMode.HALF_UP); |
|
|
|
if (num2.compareTo(BigDecimal.ZERO)!=0){ |
|
|
|
|
|
|
|
BigDecimal num3 = num2.multiply(crewSize); |
|
|
|
// 人员等级成本/单位产出/效率/100/(1-损耗率)*人数 |
|
|
|
laborCost = laborClassCost.divide(num3, 4, RoundingMode.HALF_UP); |
|
|
|
} |
|
|
|
|
|
|
|
return setupCost.add(laborCost).setScale(4, RoundingMode.HALF_UP); |
|
|
|
} |
|
|
|
|