新增盛大报价

This commit is contained in:
2026-04-29 14:35:25 +08:00
parent 4eeb45b64c
commit fe42ba31a1
8 changed files with 582 additions and 14 deletions
@@ -7,10 +7,7 @@ import lingtao.net.bean.SysUser;
import lingtao.net.dao.ProductMapper;
import lingtao.net.dao.QuoteLogMapper;
import lingtao.net.util.*;
import lingtao.net.vo.FunReturnVo;
import lingtao.net.vo.HuaFangPriceProcessItemsVo;
import lingtao.net.vo.HuaFangPriceRequstVo;
import lingtao.net.vo.HuaFangPriceResultVo;
import lingtao.net.vo.*;
import org.apache.commons.collections.map.HashedMap;
import org.apache.shiro.SecurityUtils;
import org.springframework.beans.factory.annotation.Autowired;
@@ -1605,21 +1602,21 @@ public class ProductService {
if ("300克".equals(dto.getKind())) {
double sePrice = 5;
prices = new double[]{70, 140, 280, 350, 700, 1400, 2100, 3500, 7000};
prices = new double[]{70, 135, 270, 335, 680, 1375, 2070, 3465, 6960};
if ((width <= 9 && length <= 5.4) || (length <= 9 && width <= 5.4)) {
} else if (width < 10 && length < 10) {
sePrice = 10;
prices = new double[]{128, 256, 512, 640, 1280, 2560, 3840, 6400, 12800};
prices = new double[]{128, 251, 502, 625, 1260, 2535, 3810, 6365, 12760};
} else if ((width <= 10 && length <= 15) || (length <= 10 && width <= 15)) {
prices = new double[]{185, 370, 740, 925, 1850, 3700, 5550, 9250, 18500};
prices = new double[]{185, 365, 730, 910, 1830, 3675, 5520, 9215, 18460};
sePrice = 15;
} else if (width < 15 && length < 15) {
prices = new double[]{300, 600, 1200, 1500, 3000, 6000, 9000, 15000, 30000};
prices = new double[]{300, 595, 1190, 1485, 2980, 5975, 8970, 14965, 29960};
sePrice = 20;
// ((width <= 20 && length <= 15) || (length <= 20 && width <= 15))
} else {
prices = new double[]{450, 900, 1800, 2250, 4500, 9000, 13500, 22500, 45000};
prices = new double[]{450, 895, 1790, 2235, 4480, 8975, 13470, 22465, 44960};
sePrice = 25;
}
@@ -2964,23 +2961,23 @@ public class ProductService {
designFee = 16;
designFee9 = 15;
}*/ else if ((length - 4 <= 210 && width - 4 <= 140) || (length - 4 <= 140 && width - 4 <= 210)) {
designFee = 15;
designFee = 10;
designFee9 = 15;
} else if ((length - 4 <= 285 && width - 4 - 4 <= 210) || (length - 4 <= 210 && width - 4 <= 285)) {
designFee = 35;
designFee = 30;
designFee9 = 40;
} else if ((length - 4 <= 420 && width - 4 <= 285) || (length - 4 <= 285 && width - 4 <= 420)) {
designFee = 50;
designFee = 45;
designFee9 = 60;
} else {
designFee = 50;
designFee = 45;
designFee9 = 80;
}
if ("腰封".equals(dto.getKind())) {
zhang = 8;
}
if ("特种纸名片".equals(dto.getKind())) {
zhang = 18;
zhang = 16;
}
// 一张l/w 大的纸张能做多少个此类尺寸的产品
double max = 1;
@@ -4366,12 +4363,96 @@ public class ProductService {
return getTearingJoyPrice(dto, width, length);
case "哑粉纸":
return getYaFenPrice(dto, width, length);
case "UV打印亚克力":
return getUVDayinYKLPrice(dto, width, length);
default:
break;
}
return null;
}
private List<Product> getUVDayinYKLPrice(Product dto, Double width, Double length) {
List<String> craft_lists = dto.getCraft() == null ? new ArrayList<>() : Arrays.asList(dto.getCraft());
List<String> craft_list = new ArrayList<>(craft_lists);
List<Product> priceList = new ArrayList<>();
int count = dto.getCount();
int number = dto.getNumber();
ShengDaPriceRequstVo params = new ShengDaPriceRequstVo();
params.setProductCategory("UVDAYINYAKELI");
params.setPaper(dto.getKind());
ShengDaPriceRequstItemVo baseCrafts = new ShengDaPriceRequstItemVo();
baseCrafts.setName("打印");
Map<String, String> basecraftsItem = new HashMap<>();
basecraftsItem.put("类型", "标准款");
baseCrafts.setParameters(basecraftsItem);
params.setBaseCrafts(Collections.singletonList(baseCrafts));
List<ShengDaPriceRequstPartsVo> partsVoList = new ArrayList<>();
ShengDaPriceRequstPartsVo partsVo = new ShengDaPriceRequstPartsVo();
partsVo.setName("板块");
partsVo.setNum(count * number);
partsVo.setSizeUnit("CM");
partsVo.setWidth(width);
partsVo.setHeight(length);
//印面 0不印 1单面 2双面
partsVo.setPrintSide(0);
craft_list.remove("不印面");
if (craft_list.contains("单面")) {
partsVo.setPrintSide(1);
craft_list.remove("单面");
}
if (craft_list.contains("双面")) {
partsVo.setPrintSide(2);
craft_list.remove("双面");
}
List<ShengDaPriceRequstItemVo> crafts = new ArrayList<>();
//固定分类
ShengDaPriceRequstItemVo craft_diaoke = new ShengDaPriceRequstItemVo();
craft_diaoke.setName("按设计文件雕刻");
Map<String, String> craft_diaokeItem = new HashMap<>();
craft_diaokeItem.put("类型", "文件造型");
craft_diaoke.setParameters(craft_diaokeItem);
crafts.add(craft_diaoke);
for (String s : craft_list) {
ShengDaPriceRequstItemVo craftItem = new ShengDaPriceRequstItemVo();
HashMap<String, String> parameters = new HashMap<>();
if ("3m胶".equals(s)) {
craftItem.setName("背胶");
parameters.put("类型", "覆3M胶");
craftItem.setParameters(parameters);
} else if ("打孔".equals(s)) {
craftItem.setName("打孔");
String type = "按文件设计";
if (craft_list.contains("广告钉") || craft_list.contains("镜钉")) {
type = "按钉子直径打孔";
}
parameters.put("类型", type);
parameters.put("单块打孔个数", String.valueOf(Math.max(dto.getPcount() == null ? 0 : dto.getPcount(), 1)));
craftItem.setParameters(parameters);
} else {
craftItem.setName(s);
}
crafts.add(craftItem);
}
partsVo.setCrafts(crafts);
partsVoList.add(partsVo);
params.setParts(partsVoList);
ShengDaPriceResultVo result = ShengDaPriceUtils.getPrice(params);
double price = Math.ceil(result.getData().getPrice() / (1 - 0.65));
double designPrice = number * 5;
Product product = new Product();
product.setPrice(Math.ceil(Math.max(price, 30) + designPrice));
product.setCount(dto.getCount());
product.setNumber(dto.getNumber());
priceList.add(product);
return priceList;
}
private List<Product> getsmPVCPrice(Product dto, Double width, Double length, String role) {
List<String> craft_list = dto.getCraft() == null ? new ArrayList<>() : Arrays.asList(dto.getCraft());
List<Product> priceList = new ArrayList<>();