package lingtao.net.util; import lingtao.net.bean.Product; import java.io.File; import java.nio.file.Files; import java.nio.file.Path; import java.nio.file.Paths; import java.util.ArrayList; import java.util.List; /** * A级铜版纸不干胶价格 */ public class AStickersPrice { int bigCountArr[] = {500, 1000, 2000, 3000, 5000, 10000, 20000, 30000, 40000, 50000, 60000, 70000, 80000, 90000, 100000}; double AreaArr[] = {0.004, 0.006, 0.008, 0.01, 0.012, 0.015, 0.017, 0.018, 0.02, 0.03, 0.04, 0.06, 0.1, 0.2, 0.3}; // 9*5.4cm(一个名片位)以内价格 public List oneCradPrice(int count, String role) { List list = new ArrayList(); Product pro = new Product(); int bigCountArr[] = {500, 1000, 2000, 3000, 5000, 10000, 20000, 30000, 40000, 50000, 60000, 70000, 80000, 90000, 100000}; int[] priceArr; priceArr = new int[]{60, 70, 95, 125, 175, 270, 510, 800, 1000, 1200, 1400, 1600, 1800, 2000, 2200}; for (int i = 0; i < bigCountArr.length; i++) { if (bigCountArr[i] < count || list.size() > 5) { continue; } pro = new Product(); pro.setCount(bigCountArr[i]); pro.setPrice(Math.ceil(priceArr[i])); list.add(pro); } return list; } // 20*1以内 public List getPriceLess20(int count) { List list = new ArrayList(); Product pro = new Product(); int bigCountArr[] = {500, 1000, 2000, 3000, 5000, 10000, 20000, 30000, 40000}; int priceArr[] = {80, 90, 150, 180, 200, 240, 400, 580, 720}; if (count <= 40000) { for (int i = 0; i < bigCountArr.length; i++) { if (bigCountArr[i] < count) { continue; } pro = new Product(); pro.setCount(bigCountArr[i]); pro.setPrice(Math.ceil(priceArr[i])); list.add(pro); } } else { pro = new Product(); pro.setCount(count); pro.setPrice(Math.ceil((Math.ceil(count / 10000.0) - 4) * 150 + 720)); list.add(pro); } return list; } // 48*1以内 public List getPriceLess48(int count) { List list = new ArrayList(); Product pro = new Product(); int bigCountArr[] = {500, 1000, 2000, 3000, 5000, 10000, 20000, 30000, 40000}; int priceArr[] = {90, 100, 160, 190, 230, 420, 760, 1100, 1400}; if (count <= 40000) { for (int i = 0; i < bigCountArr.length; i++) { if (bigCountArr[i] < count) { continue; } pro = new Product(); pro.setCount(bigCountArr[i]); pro.setPrice(Math.ceil(priceArr[i])); list.add(pro); } } else { pro = new Product(); pro.setCount(count); pro.setPrice(Math.ceil((Math.ceil(count / 10000.0) - 4) * 300 + 1400)); list.add(pro); } return list; } // 60*1以内 public List getPriceLess60(int count) { List list = new ArrayList(); Product pro = new Product(); int bigCountArr[] = {500, 1000, 2000, 3000, 5000, 10000, 20000, 30000, 40000}; int priceArr[] = {100, 120, 180, 230, 300, 550, 960, 1300, 1600}; if (count <= 40000) { for (int i = 0; i < bigCountArr.length; i++) { if (bigCountArr[i] < count) { continue; } pro = new Product(); pro.setCount(bigCountArr[i]); pro.setPrice(Math.ceil(priceArr[i])); list.add(pro); } } else { pro = new Product(); pro.setCount(count); pro.setPrice(Math.ceil((Math.ceil(count / 10000.0) - 4) * 400 + 1600)); list.add(pro); } return list; } // 70*1以内 public List getPriceLess70(int count) { List list = new ArrayList(); Product pro = new Product(); int bigCountArr[] = {500, 1000, 2000, 3000, 5000, 10000, 20000, 30000, 40000}; int priceArr[] = {110, 130, 200, 270, 330, 580, 1100, 1500, 1900}; if (count <= 40000) { for (int i = 0; i < bigCountArr.length; i++) { if (bigCountArr[i] < count) { continue; } pro = new Product(); pro.setCount(bigCountArr[i]); pro.setPrice(Math.ceil(priceArr[i])); list.add(pro); } } else { pro = new Product(); pro.setCount(count); pro.setPrice(Math.ceil((Math.ceil(count / 10000.0) - 4) * 400 + 1900)); list.add(pro); } return list; } // 80*1以内 public List getPriceLess80(int count) { List list = new ArrayList(); Product pro = new Product(); int bigCountArr[] = {500, 1000, 2000, 3000, 5000, 10000, 20000, 30000, 40000}; int priceArr[] = {130, 150, 240, 300, 380, 650, 1200, 1650, 2100}; if (count <= 40000) { for (int i = 0; i < bigCountArr.length; i++) { if (bigCountArr[i] < count) { continue; } pro = new Product(); pro.setCount(bigCountArr[i]); pro.setPrice(Math.ceil(priceArr[i])); list.add(pro); } } else { pro = new Product(); pro.setCount(count); pro.setPrice(Math.ceil((Math.ceil(count / 10000.0) - 4) * 450 + 2100)); list.add(pro); } return list; } // 90*1以内 public List getPriceLess90(int count) { List list = new ArrayList(); Product pro = new Product(); int bigCountArr[] = {500, 1000, 2000, 3000, 5000, 10000, 20000, 30000, 40000}; int priceArr[] = {150, 170, 245, 320, 420, 750, 1300, 1750, 2200}; if (count <= 40000) { for (int i = 0; i < bigCountArr.length; i++) { if (bigCountArr[i] < count) { continue; } pro = new Product(); pro.setCount(bigCountArr[i]); pro.setPrice(Math.ceil(priceArr[i])); list.add(pro); } } else { pro = new Product(); pro.setCount(count); pro.setPrice(Math.ceil((Math.ceil(count / 10000.0) - 4) * 450 + 2200)); list.add(pro); } return list; } // 100*1以内 public List getPriceLess100(int count) { List list = new ArrayList(); Product pro = new Product(); int bigCountArr[] = {500, 1000, 2000, 3000, 5000, 10000, 20000, 30000, 40000}; int priceArr[] = {170, 200, 260, 350, 480, 860, 1400, 2000, 2600}; if (count <= 40000) { for (int i = 0; i < bigCountArr.length; i++) { if (bigCountArr[i] < count) { continue; } pro = new Product(); pro.setCount(bigCountArr[i]); pro.setPrice(Math.ceil(priceArr[i])); list.add(pro); } } else { pro = new Product(); pro.setCount(count); pro.setPrice(Math.ceil((Math.ceil(count / 10000.0) - 4) * 600 + 2600)); list.add(pro); } return list; } // 面积在0.003内 public List getPrice(int count) { List list = new ArrayList(); Product pro = new Product(); int bigCountArr[] = {500, 1000, 2000, 3000, 5000, 10000, 20000, 30000, 40000, 50000, 60000, 70000, 80000, 90000, 100000}; int priceArr[] = {56, 63, 84, 108, 150, 240, 456, 684, 912, 1125, 1350, 1575, 1800, 2025, 2250}; if (count <= 40000) { for (int i = 0; i < bigCountArr.length; i++) { if (bigCountArr[i] < count || list.size() > 5) { continue; } pro = new Product(); pro.setCount(bigCountArr[i]); pro.setPrice(Math.ceil(priceArr[i])); list.add(pro); } } else { pro = new Product(); pro.setCount(count); pro.setPrice(Math.ceil((Math.ceil(count / 10000.0) - 4) * 200 + 850)); list.add(pro); } return list; } public List f_getPrice(int priceArr[], int count, String craftMo) { List list = new ArrayList(); Product p = new Product(); int countArr[] = {500, 1000, 2000, 3000, 5000, 10000, 20000, 30000, 40000, 50000}; for (int i = 0; i < countArr.length; i++) { if (countArr[i] < count || list.size() > 3) { continue; } p = new Product(); p.setCount(countArr[i]); if ("覆哑膜".equals(craftMo)) { p.setPrice(Math.ceil(Double.valueOf(priceArr[i]) * 1.2)); } else { p.setPrice(Double.valueOf(priceArr[i])); } list.add(p); } return list; } // 根据面积计算价格 private List bigSizeAcountPrice(int count, Double area, List list, double[] priceArr) { Product pro = new Product(); if (count > bigCountArr[bigCountArr.length - 1]) { pro.setCount(count); pro.setPrice(Math.ceil(area * count * priceArr[bigCountArr.length - 1])); list.add(pro); } for (int i = 0; i < bigCountArr.length; i++) { if (bigCountArr[i] < count || list.size() > 3) { continue; } double[] arrPrice = new double[16]; if (bigCountArr[i] == 500) { arrPrice = new double[]{37, 33, 30, 26, 25, 21, 19, 18, 17, 19, 17, 12.8, 12.5, 12, 11.5, 11}; } else if (bigCountArr[i] == 1000) { arrPrice = new double[]{21, 19, 17, 17, 15, 14, 14, 12, 12, 12.5, 13, 9, 9, 8, 8, 7.8}; } else if (bigCountArr[i] == 2000) { arrPrice = new double[]{14, 13, 13, 12, 11, 11, 10, 10, 9, 10, 11, 7.8, 7.5, 7.5, 7.2, 7}; } else if (bigCountArr[i] == 3000) { arrPrice = new double[]{12, 11, 11, 10, 9, 9.5, 9, 8, 8, 9, 10, 6.8, 6.5, 6.5, 6, 6.5}; } else if (bigCountArr[i] == 5000) { arrPrice = new double[]{10, 9.5, 8, 7.8, 8.5, 9, 8.3, 7, 8, 6.5, 8, 6, 6, 6, 5.5, 5}; } else if (bigCountArr[i] == 10000) { arrPrice = new double[]{8, 7.5, 6.5, 6.5, 7.6, 8, 7.3, 6, 7.5, 6, 6, 6, 6, 6, 5, 5}; } else if (bigCountArr[i] == 20000) { arrPrice = new double[]{7.6, 6.5, 5.5, 5.5, 5.5, 5.5, 5.5, 5.5, 5.5, 5.5, 5.5, 5.5, 5.5, 5.5, 5, 4.5}; } else if (bigCountArr[i] == 30000) { arrPrice = new double[]{7.6, 6.5, 5.5, 5.5, 5.5, 5.5, 5.5, 5.5, 5.5, 5.5, 5.5, 5.5, 5.5, 5.5, 5, 4.5}; } else if (bigCountArr[i] == 40000) { arrPrice = new double[]{7.6, 6.5, 5.5, 5.5, 5.5, 5.5, 5.5, 5.5, 5.5, 5.5, 5.5, 5.5, 5.5, 5.5, 5, 4.5}; } else if (bigCountArr[i] == 50000) { arrPrice = new double[]{7.5, 6.5, 5.5, 5.5, 5.5, 5.5, 5.5, 5.5, 5.5, 5.5, 5.5, 5.5, 5.5, 5.5, 5, 4.5}; } else if (bigCountArr[i] == 60000) { arrPrice = new double[]{7.5, 6.5, 5.5, 5.5, 5.5, 5.5, 5.5, 5.5, 5.5, 5.5, 5.5, 5.5, 5.5, 5.5, 5, 4.5}; } else if (bigCountArr[i] == 70000) { arrPrice = new double[]{7.5, 6.5, 5.5, 5.5, 5.5, 5.5, 5.5, 5.5, 5.5, 5.5, 5.5, 5.5, 5.5, 5.5, 5, 4.5}; } else if (bigCountArr[i] == 80000) { arrPrice = new double[]{7.5, 6.5, 5.5, 5.5, 5.5, 5.5, 5.5, 5.5, 5.5, 5.5, 5.5, 5.5, 5.5, 5.5, 5, 4.5}; } else if (bigCountArr[i] == 90000) { arrPrice = new double[]{7.5, 6.5, 5.5, 5.5, 5.5, 5.5, 5.5, 5.5, 5.5, 5.5, 5.5, 5.5, 5.5, 5.5, 5, 4.5}; } else if (bigCountArr[i] == 100000) { arrPrice = new double[]{7.5, 6.5, 5.5, 5.5, 5.5, 5.5, 5.5, 5.5, 5.5, 5.5, 5.5, 5.5, 5.5, 5.5, 5, 4.5}; } double pirce = getPrcieInArea(bigCountArr[i], area, arrPrice); pro = new Product(); pro.setCount(bigCountArr[i]); pro.setPrice(Math.ceil(pirce)); list.add(pro); } return list; } // 判断小尺寸是否大于大尺寸价格 private double getPrcieInArea(int count, Double area, double[] priceArr) { double lastPrice = 0, price = 0; if (area > AreaArr[AreaArr.length - 1]) { price = area * count * priceArr[AreaArr.length - 1]; lastPrice = area * count * priceArr[AreaArr.length - 2]; if (lastPrice > price) { price = lastPrice; } } for (int i = 0; i < AreaArr.length; i++) { if (AreaArr[i] < area) { continue; } double lastArea = 0; if (i > 0) { lastArea = AreaArr[i - 1]; lastPrice = lastArea * count * priceArr[i - 1]; } price = area * count * priceArr[i]; if (lastPrice > price) { price = lastPrice; } break; } return price; } public List getPrice(int count, Double area, String role) { List list = new ArrayList(); double[] priceArrA = new double[16]; if (area <= 0.004) { priceArrA = new double[]{37.0, 21.0, 14.0, 12.0, 10.0, 8.0, 7.6, 7.6, 7.6, 7.5, 7.5, 7.5, 7.5, 7.5, 7.5, 7.5}; } else if (area <= 0.006) { priceArrA = new double[]{33.0, 19.0, 13.0, 11.0, 9.5, 7.5, 6.5, 6.5, 6.5, 6.5, 6.5, 6.5, 6.5, 6.5, 6.5, 6.5}; } else if (area <= 0.008) { priceArrA = new double[]{30.0, 17.0, 13.0, 11.0, 8, 6.5, 5.5, 5.5, 5.5, 5.5, 5.5, 5.5, 5.5, 5.5, 5.5, 5.5}; } else if (area <= 0.01) { priceArrA = new double[]{26.0, 17.0, 12.0, 10.0, 7.8, 6.5, 5.5, 5.5, 5.5, 5.5, 5.5, 5.5, 5.5, 5.5, 5.5, 5.5}; } else if (area <= 0.012) { priceArrA = new double[]{25.0, 15.0, 11.0, 9.0, 8.5, 7.6, 5.5, 5.5, 5.5, 5.5, 5.5, 5.5, 5.5, 5.5, 5.5, 5.5}; } else if (area <= 0.015) { priceArrA = new double[]{21.0, 14.0, 11.0, 9.5, 9, 8, 5.5, 5.5, 5.5, 5.5, 5.5, 5.5, 5.5, 5.5, 5.5, 5.5}; } else if (area <= 0.017) { priceArrA = new double[]{19.0, 14.0, 10, 9, 8.3, 7.3, 5.5, 5.5, 5.5, 5.5, 5.5, 5.5, 5.5, 5.5, 5.5, 5.5}; } else if (area <= 0.018) { priceArrA = new double[]{18.0, 12.0, 10.0, 8.0, 7.0, 6.0, 5.5, 5.5, 5.5, 5.5, 5.5, 5.5, 5.5, 5.5, 5.5, 5.5}; } else if (area <= 0.02) { priceArrA = new double[]{17.0, 12.0, 9.0, 8.0, 8.0, 7.5, 5.5, 5.5, 5.5, 5.5, 5.5, 5.5, 5.5, 5.5, 5.5, 5.5}; } else if (area <= 0.03) { priceArrA = new double[]{19.0, 12.5, 10.0, 9.0, 6.5, 6.0, 5.5, 5.5, 5.5, 5.5, 5.5, 5.5, 5.5, 5.5, 5.5, 5.5}; } else if (area <= 0.04) { priceArrA = new double[]{17.0, 13.0, 11.0, 10.0, 6.0, 6.0, 5.5, 5.5, 5.5, 5.5, 5.5, 5.5, 5.5, 5.5, 5.5, 5.5}; } else if (area <= 0.06) { priceArrA = new double[]{12.8, 9.0, 7.8, 6.8, 6.0, 6.0, 5.5, 5.5, 5.5, 5.5, 5.5, 5.5, 5.5, 5.5, 5.5, 5.5}; } else if (area <= 0.1) { priceArrA = new double[]{12.5, 9.0, 7.5, 6.5, 6.0, 6.0, 5.5, 5.5, 5.5, 5.5, 5.5, 5.5, 5.5, 5.5, 5.5, 5.5}; } else if (area <= 0.2) { priceArrA = new double[]{12.0, 8.0, 7.5, 6.5, 6.0, 6.0, 5.5, 5.5, 5.5, 5.5, 5.5, 5.5, 5.5, 5.5, 5.5, 5.5}; } else if (area <= 0.3) { priceArrA = new double[]{11.5, 8.0, 7.2, 6.0, 5.5, 5.0, 5.0, 5.0, 5.0, 5.0, 5.0, 5.0, 5.0, 5.0, 5.0, 5.0}; } else if (area > 0.3) { priceArrA = new double[]{11.0, 7.8, 7.0, 6.5, 5.0, 5.0, 4.5, 4.5, 4.5, 4.5, 4.5, 4.5, 4.5, 4.5, 4.5, 4.5}; } list = bigSizeAcountPrice(count, area, list, priceArrA); return list; } public static void main(String[] args) { String path = "Z:\\设计文件共享中心\\已下单\\2019\\1月\\年后出货\\不干胶\\dy\\已拼"; Path startPath = Paths.get(path); try { Files.walk(startPath).filter(Files::isRegularFile).forEach(System.out::println); } catch (Exception e) { e.printStackTrace(); } } public static String midStrEx(String source, String startStr, String endStr) { String result = ""; int startIndex, endIndex; try { startIndex = source.indexOf(startStr); if (startIndex == -1) { return result; } String tmpStr = source.substring(startIndex + startStr.length()); endIndex = tmpStr.indexOf(endStr); if (endIndex == -1) { return result; } result = tmpStr.substring(0, endIndex); } catch (Exception ex) { System.out.println("MidStrEx Err: " + ex.getMessage()); } return result; } }