diff --git a/src/main/java/com/xujie/sys/modules/quote/strategy/impl/BondingTalAfterPrintCompute.java b/src/main/java/com/xujie/sys/modules/quote/strategy/impl/BondingTalAfterPrintCompute.java index 24489f81..44e925a0 100644 --- a/src/main/java/com/xujie/sys/modules/quote/strategy/impl/BondingTalAfterPrintCompute.java +++ b/src/main/java/com/xujie/sys/modules/quote/strategy/impl/BondingTalAfterPrintCompute.java @@ -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); + } }