|
|
|
@ -3,37 +3,53 @@ package com.xujie.sys.modules.quote.strategy.impl; |
|
|
|
import com.xujie.sys.modules.quote.strategy.base.BaseBondingTalCompute; |
|
|
|
|
|
|
|
import java.math.BigDecimal; |
|
|
|
import java.math.RoundingMode; |
|
|
|
|
|
|
|
public class BondingTalAfterPrintCompute extends BaseBondingTalCompute { |
|
|
|
@Override |
|
|
|
public BigDecimal computeDL(BigDecimal val1,BigDecimal val2,BigDecimal val3,BigDecimal val4,BigDecimal val5,BigDecimal val6 |
|
|
|
,BigDecimal val7,BigDecimal val8,BigDecimal val9,BigDecimal val10,BigDecimal val11,BigDecimal val12,BigDecimal val13 |
|
|
|
,BigDecimal val14,BigDecimal val15,BigDecimal val16,BigDecimal val17,BigDecimal val18,BigDecimal val19,BigDecimal val20 |
|
|
|
,BigDecimal val21) { |
|
|
|
BigDecimal decimal = super.compute(val1,val2,val3,val4,val5,val6,val7,val8,val9,val10,val11,val12,val13,val14,val15,val16,val17,val18,val19,val20,val21); |
|
|
|
System.out.println("+(bonding工时/bonding良率/converting良率 +{(converting工时-后道检品工时-编码打印工时)/converting良率)*后道费率 + 后道检品工时/converting良率*编码打印费率 + 编码打印工时/converting良率*编码打印费率"); |
|
|
|
return null; |
|
|
|
public BigDecimal computeDL(BigDecimal antennaUsage, BigDecimal bondingYield, BigDecimal convertingYield, BigDecimal beforeFeeRate, |
|
|
|
BigDecimal bondingManHour, BigDecimal afterFeeRate, BigDecimal parisBondingManHour, BigDecimal parisFeeRate, |
|
|
|
BigDecimal convertingManHour, BigDecimal convertingRate, BigDecimal afterConvertingManHour, BigDecimal printConvertingManHour, |
|
|
|
BigDecimal printRate, BigDecimal val14, BigDecimal val15, BigDecimal val16, |
|
|
|
BigDecimal val17, BigDecimal val18, BigDecimal val19, BigDecimal val20, |
|
|
|
BigDecimal val21) { |
|
|
|
BigDecimal decimal = this.compute(antennaUsage, bondingYield, convertingYield, beforeFeeRate, bondingManHour, afterFeeRate, parisBondingManHour, parisFeeRate, convertingManHour, convertingRate, afterConvertingManHour, printConvertingManHour, printRate, val14, val15, val16, val17, val18, val19, val20, val21); |
|
|
|
// System.out.println("+ 后道检品工时/converting良率*编码打印费率 + 编码打印工时/converting良率*编码打印费率"); |
|
|
|
BigDecimal val =this.compute(bondingManHour,bondingYield,convertingYield,convertingManHour,BigDecimal.ZERO,afterConvertingManHour,parisBondingManHour,afterFeeRate); |
|
|
|
return decimal.add(val).add(afterConvertingManHour.divide(convertingYield,4,RoundingMode.HALF_UP).multiply(printRate)) |
|
|
|
.add(printConvertingManHour.divide(convertingYield,4,RoundingMode.HALF_UP)); |
|
|
|
} |
|
|
|
|
|
|
|
@Override |
|
|
|
public BigDecimal computeVOH(BigDecimal val1,BigDecimal val2,BigDecimal val3,BigDecimal val4,BigDecimal val5,BigDecimal val6 |
|
|
|
,BigDecimal val7,BigDecimal val8,BigDecimal val9,BigDecimal val10,BigDecimal val11,BigDecimal val12,BigDecimal val13 |
|
|
|
,BigDecimal val14,BigDecimal val15,BigDecimal val16,BigDecimal val17,BigDecimal val18,BigDecimal val19,BigDecimal val20 |
|
|
|
,BigDecimal val21) { |
|
|
|
BigDecimal decimal = super.compute(val1,val2,val3,val4,val5,val6,val7,val8,val9,val10,val11,val12,val13,val14,val15,val16,val17,val18,val19,val20,val21); |
|
|
|
System.out.println("+(bonding工时/bonding良率/converting良率 +{(converting工时-后道检品工时-编码打印工时)/converting良率)*后道费率 +编码打印工时/converting良率*编码打印费率"); |
|
|
|
return null; |
|
|
|
public BigDecimal computeVOH(BigDecimal antennaUsage, BigDecimal bondingYield, BigDecimal convertingYield, BigDecimal beforeFeeRate, |
|
|
|
BigDecimal bondingManHour, BigDecimal afterFeeRate, BigDecimal parisBondingManHour, BigDecimal parisFeeRate, |
|
|
|
BigDecimal convertingManHour, BigDecimal convertingRate, BigDecimal afterConvertingManHour, BigDecimal printConvertingManHour, |
|
|
|
BigDecimal printRate, BigDecimal val14, BigDecimal val15, BigDecimal val16, |
|
|
|
BigDecimal val17, BigDecimal val18, BigDecimal val19, BigDecimal val20, |
|
|
|
BigDecimal val21) { |
|
|
|
BigDecimal decimal = this.compute(antennaUsage, bondingYield, convertingYield, beforeFeeRate, bondingManHour, afterFeeRate, parisBondingManHour, parisFeeRate, convertingManHour, convertingRate, afterConvertingManHour, printConvertingManHour, printRate, val14, val15, val16, val17, val18, val19, val20, val21); |
|
|
|
// System.out.println(" +编码打印工时/converting良率*编码打印费率"); |
|
|
|
BigDecimal val =this.compute(bondingManHour,bondingYield,convertingYield,convertingManHour,BigDecimal.ZERO,afterConvertingManHour,parisBondingManHour,afterFeeRate); |
|
|
|
return decimal.add(val).add(printConvertingManHour.divide(convertingYield,4,RoundingMode.HALF_UP)); |
|
|
|
} |
|
|
|
|
|
|
|
@Override |
|
|
|
public BigDecimal computeFOH(BigDecimal val1,BigDecimal val2,BigDecimal val3,BigDecimal val4,BigDecimal val5,BigDecimal val6 |
|
|
|
,BigDecimal val7,BigDecimal val8,BigDecimal val9,BigDecimal val10,BigDecimal val11,BigDecimal val12,BigDecimal val13 |
|
|
|
,BigDecimal val14,BigDecimal val15,BigDecimal val16,BigDecimal val17,BigDecimal val18,BigDecimal val19,BigDecimal val20 |
|
|
|
,BigDecimal val21) { |
|
|
|
BigDecimal decimal = super.compute(val1,val2,val3,val4,val5,val6,val7,val8,val9,val10,val11,val12,val13,val14,val15,val16,val17,val18,val19,val20,val21); |
|
|
|
System.out.println("+(bonding工时/bonding良率/converting良率+{(converting,工时-后道检品工时-编码打印工时-1/70*10)/converting良率}*后道费率 + 编码打印工时/converting良率*编码打印费率"); |
|
|
|
return null; |
|
|
|
public BigDecimal computeFOH(BigDecimal antennaUsage, BigDecimal bondingYield, BigDecimal convertingYield, BigDecimal beforeFeeRate, |
|
|
|
BigDecimal bondingManHour, BigDecimal afterFeeRate, BigDecimal parisBondingManHour, BigDecimal parisFeeRate, |
|
|
|
BigDecimal convertingManHour, BigDecimal convertingRate, BigDecimal afterConvertingManHour, BigDecimal printConvertingManHour, |
|
|
|
BigDecimal printRate, BigDecimal val14, BigDecimal val15, BigDecimal val16, |
|
|
|
BigDecimal val17, BigDecimal val18, BigDecimal val19, BigDecimal val20, |
|
|
|
BigDecimal val21) { |
|
|
|
BigDecimal decimal = this.compute(antennaUsage, bondingYield, convertingYield, beforeFeeRate, bondingManHour, afterFeeRate, parisBondingManHour, parisFeeRate, convertingManHour, convertingRate, afterConvertingManHour, printConvertingManHour, printRate, val14, val15, val16, val17, val18, val19, val20, val21); |
|
|
|
// System.out.println("+编码打印工时/converting良率*编码打印费率"); 1/7000*1000 |
|
|
|
BigDecimal val = this.compute(bondingManHour, bondingYield, convertingYield, convertingManHour, convertingRate, afterConvertingManHour, parisBondingManHour, afterFeeRate); |
|
|
|
return decimal.add(val).add(printConvertingManHour.divide(convertingYield,4,RoundingMode.HALF_UP)); |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
private BigDecimal compute(BigDecimal bondingManHour, BigDecimal bondingYield, BigDecimal convertingYield, BigDecimal convertingManHour, |
|
|
|
BigDecimal convertingRate, BigDecimal afterConvertingManHour, BigDecimal parisBondingManHour, BigDecimal afterFeeRate){ |
|
|
|
// (bonding工时/bonding良率/converting良率+(converting工时-后道检品工时-编码打印工时-convertingRate)/converting良率)*后道费率 |
|
|
|
BigDecimal decimal = bondingManHour.divide(bondingYield, 4, RoundingMode.HALF_UP).divide(convertingYield, 4, RoundingMode.HALF_UP); |
|
|
|
return decimal.add(convertingManHour.subtract(afterConvertingManHour.subtract(parisBondingManHour).subtract(convertingRate)).divide(convertingYield, 4, RoundingMode.HALF_UP)).multiply(afterFeeRate); |
|
|
|
} |
|
|
|
} |