diff --git a/src/main/java/com/xujie/sys/modules/quote/strategy/ComputeFactory.java b/src/main/java/com/xujie/sys/modules/quote/strategy/ComputeFactory.java new file mode 100644 index 00000000..54fced50 --- /dev/null +++ b/src/main/java/com/xujie/sys/modules/quote/strategy/ComputeFactory.java @@ -0,0 +1,38 @@ +package com.xujie.sys.modules.quote.strategy; + +import com.xujie.sys.modules.quote.strategy.impl.*; + +import java.util.HashMap; +import java.util.Map; + +public class ComputeFactory { + + + private static final Map computeMap = new HashMap(); + + static { + computeMap.put("Dry-Bonding-TAL",new DryBondingTalCompute()); + computeMap.put("Dry-Bonding-Paris",new DryBondingParisCompute()); + computeMap.put("Bonding-TAL",new BondingTalCompute()); + computeMap.put("Bonding-TAL-After",new BondingTalAfterCompute()); + computeMap.put("Bonding-TAL-Print",new BondingTalPrintCompute()); + computeMap.put("Bonding-TAL-After-Print",new BondingTalAfterPrintCompute()); + computeMap.put("Bonding-Paris",new BondingParisCompute()); + computeMap.put("Bonding-Paris-After",new BondingParisAfterCompute()); + computeMap.put("Bonding-Paris-Print",new BondingParisPrintCompute()); + computeMap.put("Bonding-Paris-After-Print",new BondingParisAfterPrintCompute()); + } + + public static ComputeStrategy getComputeStrategy(String strategyName) { + return computeMap.get(strategyName); + } + +// public static void main(String[] args) { +// ComputeStrategy strategy = ComputeFactory.getComputeStrategy("Bonding-Paris-Print"); +// strategy.computeDL(); +// System.out.println("----------"); +// strategy.computeVOH(); +// System.out.println("----------"); +// strategy.computeFOH(); +// } +} diff --git a/src/main/java/com/xujie/sys/modules/quote/strategy/ComputeStrategy.java b/src/main/java/com/xujie/sys/modules/quote/strategy/ComputeStrategy.java new file mode 100644 index 00000000..bc644ba9 --- /dev/null +++ b/src/main/java/com/xujie/sys/modules/quote/strategy/ComputeStrategy.java @@ -0,0 +1,13 @@ +package com.xujie.sys.modules.quote.strategy; + +import java.math.BigDecimal; + +public interface ComputeStrategy { + + BigDecimal computeDL(); + + BigDecimal computeVOH(); + + BigDecimal computeFOH(); + +} diff --git a/src/main/java/com/xujie/sys/modules/quote/strategy/base/BaseBondingParisCompute.java b/src/main/java/com/xujie/sys/modules/quote/strategy/base/BaseBondingParisCompute.java new file mode 100644 index 00000000..2dda841a --- /dev/null +++ b/src/main/java/com/xujie/sys/modules/quote/strategy/base/BaseBondingParisCompute.java @@ -0,0 +1,23 @@ +package com.xujie.sys.modules.quote.strategy.base; + +import com.xujie.sys.modules.quote.strategy.ComputeStrategy; +import org.springframework.stereotype.Component; + +import java.math.BigDecimal; + + +public abstract class BaseBondingParisCompute implements ComputeStrategy { + @Override + public abstract BigDecimal computeDL(); + + @Override + public abstract BigDecimal computeVOH(); + + @Override + public abstract BigDecimal computeFOH(); + + public BigDecimal compute(){ + System.out.println("天线用量/bonding良率/converting良率*前道费率 +(Parts bonding工时/bonding良率/converting良率)* Paris费率+(bonding工时-paris Bonding时)/bonding良率/converting良率*后道费率"); + return null; + } +} diff --git a/src/main/java/com/xujie/sys/modules/quote/strategy/base/BaseBondingTalCompute.java b/src/main/java/com/xujie/sys/modules/quote/strategy/base/BaseBondingTalCompute.java new file mode 100644 index 00000000..b3f1f6d2 --- /dev/null +++ b/src/main/java/com/xujie/sys/modules/quote/strategy/base/BaseBondingTalCompute.java @@ -0,0 +1,25 @@ +package com.xujie.sys.modules.quote.strategy.base; + +import com.xujie.sys.modules.quote.service.QuoteDetailBomService; +import com.xujie.sys.modules.quote.strategy.ComputeStrategy; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Component; + +import java.math.BigDecimal; + +public abstract class BaseBondingTalCompute implements ComputeStrategy { + + @Override + public abstract BigDecimal computeDL(); + + @Override + public abstract BigDecimal computeVOH(); + + @Override + public abstract BigDecimal computeFOH(); + + public BigDecimal compute(){ + System.out.println("天线用量/bonding良率/converting良率*前道费率"); + return null; + } +} diff --git a/src/main/java/com/xujie/sys/modules/quote/strategy/base/BaseDryBondingCompute.java b/src/main/java/com/xujie/sys/modules/quote/strategy/base/BaseDryBondingCompute.java new file mode 100644 index 00000000..ae105283 --- /dev/null +++ b/src/main/java/com/xujie/sys/modules/quote/strategy/base/BaseDryBondingCompute.java @@ -0,0 +1,22 @@ +package com.xujie.sys.modules.quote.strategy.base; + +import com.xujie.sys.modules.quote.strategy.ComputeStrategy; + +import java.math.BigDecimal; + +public abstract class BaseDryBondingCompute implements ComputeStrategy { + @Override + public abstract BigDecimal computeDL(); + + @Override + public abstract BigDecimal computeVOH(); + + @Override + public abstract BigDecimal computeFOH(); + + + public BigDecimal compute(){ + System.out.println("天线用量/bonding良率*前道费率"); + return null; + } +} diff --git a/src/main/java/com/xujie/sys/modules/quote/strategy/impl/BondingParisAfterCompute.java b/src/main/java/com/xujie/sys/modules/quote/strategy/impl/BondingParisAfterCompute.java new file mode 100644 index 00000000..2ad98428 --- /dev/null +++ b/src/main/java/com/xujie/sys/modules/quote/strategy/impl/BondingParisAfterCompute.java @@ -0,0 +1,31 @@ +package com.xujie.sys.modules.quote.strategy.impl; + +import com.xujie.sys.modules.quote.strategy.base.BaseBondingParisCompute; + +import java.math.BigDecimal; + +public class BondingParisAfterCompute extends BaseBondingParisCompute { + @Override + public BigDecimal computeDL() { + return this.compute(); + } + + @Override + public BigDecimal computeVOH() { + return this.compute(); + } + + @Override + public BigDecimal computeFOH() { + BigDecimal decimal = super.compute(); + System.out.println("+(converting工时-1/7000*1000)/converting良率*厚道费率"); + return null; + } + + @Override + public BigDecimal compute() { + BigDecimal decimal = super.compute(); + System.out.println("+(converting工时/converting良率*后道费率)"); + return null; + } +} diff --git a/src/main/java/com/xujie/sys/modules/quote/strategy/impl/BondingParisAfterPrintCompute.java b/src/main/java/com/xujie/sys/modules/quote/strategy/impl/BondingParisAfterPrintCompute.java new file mode 100644 index 00000000..be28a00c --- /dev/null +++ b/src/main/java/com/xujie/sys/modules/quote/strategy/impl/BondingParisAfterPrintCompute.java @@ -0,0 +1,28 @@ +package com.xujie.sys.modules.quote.strategy.impl; + +import com.xujie.sys.modules.quote.strategy.base.BaseBondingParisCompute; + +import java.math.BigDecimal; + +public class BondingParisAfterPrintCompute extends BaseBondingParisCompute { + @Override + public BigDecimal computeDL() { + BigDecimal decimal = super.compute(); + System.out.println("(converting工时-后道检品工时-编码打印工时)/converting良率*后道费率+后道检品工时/converting良率*编码打印费率+编码打印工时/converting良率*编码打印费率"); + return null; + } + + @Override + public BigDecimal computeVOH() { + BigDecimal decimal = super.compute(); + System.out.println("(converting工时-后道检品工时-编码打印工时)/converting良率*后道费率+编码打印工时/converting良率*编码打印费率"); + return null; + } + + @Override + public BigDecimal computeFOH() { + BigDecimal decimal = super.compute(); + System.out.println("(converting工时-后道检品工时-编码打印工时-1/7000*1000)/converting良率*后道费率+编码打印工时/converting良率*编码打印费率"); + return null; + } +} diff --git a/src/main/java/com/xujie/sys/modules/quote/strategy/impl/BondingParisCompute.java b/src/main/java/com/xujie/sys/modules/quote/strategy/impl/BondingParisCompute.java new file mode 100644 index 00000000..3028bae2 --- /dev/null +++ b/src/main/java/com/xujie/sys/modules/quote/strategy/impl/BondingParisCompute.java @@ -0,0 +1,29 @@ +package com.xujie.sys.modules.quote.strategy.impl; + +import com.xujie.sys.modules.quote.strategy.base.BaseBondingParisCompute; + +import java.math.BigDecimal; + +public class BondingParisCompute extends BaseBondingParisCompute { + @Override + public BigDecimal computeDL() { + return this.compute(); + } + + @Override + public BigDecimal computeVOH() { + return this.compute(); + } + + @Override + public BigDecimal computeFOH() { + return this.compute(); + } + + @Override + public BigDecimal compute() { + BigDecimal decimal = super.compute(); + System.out.println("+(converting工时/converting良率*后道费率)"); + return null; + } +} diff --git a/src/main/java/com/xujie/sys/modules/quote/strategy/impl/BondingParisPrintCompute.java b/src/main/java/com/xujie/sys/modules/quote/strategy/impl/BondingParisPrintCompute.java new file mode 100644 index 00000000..9d02b917 --- /dev/null +++ b/src/main/java/com/xujie/sys/modules/quote/strategy/impl/BondingParisPrintCompute.java @@ -0,0 +1,31 @@ +package com.xujie.sys.modules.quote.strategy.impl; + +import com.xujie.sys.modules.quote.strategy.base.BaseBondingParisCompute; + +import java.math.BigDecimal; + +public class BondingParisPrintCompute extends BaseBondingParisCompute { + @Override + public BigDecimal computeDL() { + BigDecimal decimal = super.compute(); + System.out.println("(converting工时一后道检品工时-编码打印工时)/converting良率*后道费率)+后道检品工时/converting良率*编码打印费率+编码打印工时/converting良率*编码打印费率"); + return null; + } + + @Override + public BigDecimal computeVOH() { + return this.compute(); + } + + @Override + public BigDecimal computeFOH() { + return this.compute(); + } + + @Override + public BigDecimal compute() { + BigDecimal decimal = super.compute(); + System.out.println("(converting工时-后道检品工时 编码打印工时)/converting良率*后道费率)+ 编码打印工时/converting良率*编码打印费率"); + return null; + } +} diff --git a/src/main/java/com/xujie/sys/modules/quote/strategy/impl/BondingTalAfterCompute.java b/src/main/java/com/xujie/sys/modules/quote/strategy/impl/BondingTalAfterCompute.java new file mode 100644 index 00000000..276ddc3e --- /dev/null +++ b/src/main/java/com/xujie/sys/modules/quote/strategy/impl/BondingTalAfterCompute.java @@ -0,0 +1,31 @@ +package com.xujie.sys.modules.quote.strategy.impl; + +import com.xujie.sys.modules.quote.strategy.base.BaseBondingTalCompute; + +import java.math.BigDecimal; + +public class BondingTalAfterCompute extends BaseBondingTalCompute { + + @Override + public BigDecimal computeDL() { + return this.compute(); + } + + @Override + public BigDecimal computeVOH() { + return this.compute(); + } + + @Override + public BigDecimal computeFOH() { + BigDecimal decimal = super.compute(); + System.out.println("{bonding工时/bonding良率/converting良率 +(converting工时-1/7000*1000)/converting良率}*后道费率"); + return null; + } + + public BigDecimal compute(){ + BigDecimal compute = super.compute(); + System.out.println("(bonding工时/bonding良率/converting良率+converting工时/converting良率)*后道费率"); + return null; + } +} 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 new file mode 100644 index 00000000..752eaabb --- /dev/null +++ b/src/main/java/com/xujie/sys/modules/quote/strategy/impl/BondingTalAfterPrintCompute.java @@ -0,0 +1,30 @@ +package com.xujie.sys.modules.quote.strategy.impl; + +import com.xujie.sys.modules.quote.strategy.base.BaseBondingTalCompute; + +import java.math.BigDecimal; + +public class BondingTalAfterPrintCompute extends BaseBondingTalCompute { + @Override + public BigDecimal computeDL() { + BigDecimal decimal = super.compute(); + System.out.println("+(bonding工时/bonding良率/converting良率 +{(converting工时-后道检品工时-编码打印工时)/converting良率)*后道费率 + 后道检品工时/converting良率*编码打印费率 + 编码打印工时/converting良率*编码打印费率"); + return null; + } + + @Override + public BigDecimal computeVOH() { + BigDecimal decimal = super.compute(); + System.out.println("+(bonding工时/bonding良率/converting良率 +{(converting工时-后道检品工时-编码打印工时)/converting良率)*后道费率 +编码打印工时/converting良率*编码打印费率"); + return null; + } + + @Override + public BigDecimal computeFOH() { + BigDecimal decimal = super.compute(); + System.out.println("+(bonding工时/bonding良率/converting良率+{(converting,工时-后道检品工时-编码打印工时-1/70*10)/converting良率}*后道费率 + 编码打印工时/converting良率*编码打印费率"); + return null; + } + + +} diff --git a/src/main/java/com/xujie/sys/modules/quote/strategy/impl/BondingTalCompute.java b/src/main/java/com/xujie/sys/modules/quote/strategy/impl/BondingTalCompute.java new file mode 100644 index 00000000..c589b815 --- /dev/null +++ b/src/main/java/com/xujie/sys/modules/quote/strategy/impl/BondingTalCompute.java @@ -0,0 +1,28 @@ +package com.xujie.sys.modules.quote.strategy.impl; + +import com.xujie.sys.modules.quote.strategy.base.BaseBondingTalCompute; + +import java.math.BigDecimal; + +public class BondingTalCompute extends BaseBondingTalCompute { + @Override + public BigDecimal computeDL() { + return this.compute(); + } + + @Override + public BigDecimal computeVOH() { + return this.compute(); + } + + @Override + public BigDecimal computeFOH() { + return this.compute(); + } + + public BigDecimal compute(){ + BigDecimal decimal = super.compute(); + System.out.println("(bonding工时/bonding良率/converting良率+converting工时/converting良率)*后道费率"); + return null; + } +} diff --git a/src/main/java/com/xujie/sys/modules/quote/strategy/impl/BondingTalPrintCompute.java b/src/main/java/com/xujie/sys/modules/quote/strategy/impl/BondingTalPrintCompute.java new file mode 100644 index 00000000..19294f4f --- /dev/null +++ b/src/main/java/com/xujie/sys/modules/quote/strategy/impl/BondingTalPrintCompute.java @@ -0,0 +1,31 @@ +package com.xujie.sys.modules.quote.strategy.impl; + +import com.xujie.sys.modules.quote.strategy.base.BaseBondingTalCompute; + +import java.math.BigDecimal; + +public class BondingTalPrintCompute extends BaseBondingTalCompute { + @Override + public BigDecimal computeDL() { + BigDecimal decimal = super.compute(); + System.out.println("+(bonding工时/bonding良率/converting良率 +{converting工时-后道检品工时-编码打印工时)/converting良率}*后道费率 + 后道检品工时/converting良率*编码打印费率 + 编码打印工时/converting良率*编码打印费率"); + return null; + } + + @Override + public BigDecimal computeVOH() { + return this.compute(); + } + + @Override + public BigDecimal computeFOH() { + return this.compute(); + } + + @Override + public BigDecimal compute() { + BigDecimal decimal = super.compute(); + System.out.println("+(bonding工时/bonding良率/converting良率+{(converting工时-后道检品工时-编码打印工时)/converting良率)*后道费率 +编码打印工时/converting良率*编码打印费率"); + return null; + } +} diff --git a/src/main/java/com/xujie/sys/modules/quote/strategy/impl/DryBondingParisCompute.java b/src/main/java/com/xujie/sys/modules/quote/strategy/impl/DryBondingParisCompute.java new file mode 100644 index 00000000..af6fd561 --- /dev/null +++ b/src/main/java/com/xujie/sys/modules/quote/strategy/impl/DryBondingParisCompute.java @@ -0,0 +1,28 @@ +package com.xujie.sys.modules.quote.strategy.impl; + +import com.xujie.sys.modules.quote.strategy.base.BaseDryBondingCompute; + +import java.math.BigDecimal; + +public class DryBondingParisCompute extends BaseDryBondingCompute { + @Override + public BigDecimal computeDL() { + return this.compute(); + } + + @Override + public BigDecimal computeVOH() { + return this.compute(); + } + + @Override + public BigDecimal computeFOH() { + return this.compute(); + } + + public BigDecimal compute(){ + BigDecimal decimal = super.compute(); + System.out.println("+(bonding工时-Paris Bonding工时)/bonding良率*后道费率+Paris Bonding工时/后道费率*Paris费率"); + return null; + } +} diff --git a/src/main/java/com/xujie/sys/modules/quote/strategy/impl/DryBondingTalCompute.java b/src/main/java/com/xujie/sys/modules/quote/strategy/impl/DryBondingTalCompute.java new file mode 100644 index 00000000..03554d9a --- /dev/null +++ b/src/main/java/com/xujie/sys/modules/quote/strategy/impl/DryBondingTalCompute.java @@ -0,0 +1,28 @@ +package com.xujie.sys.modules.quote.strategy.impl; + +import com.xujie.sys.modules.quote.strategy.base.BaseDryBondingCompute; + +import java.math.BigDecimal; + +public class DryBondingTalCompute extends BaseDryBondingCompute { + @Override + public BigDecimal computeDL() { + return this.compute(); + } + + @Override + public BigDecimal computeVOH() { + return this.compute(); + } + + @Override + public BigDecimal computeFOH() { + return this.compute(); + } + + public BigDecimal compute(){ + BigDecimal decimal = super.compute(); + System.out.println("+bonding工时/bonding良率*后道费率"); + return null; + } +}