Merge branch 'main' into temp

This commit is contained in:
2025-06-14 14:03:47 +08:00
commit c74735f0a5
2 muutettua tiedostoa jossa 25 lisäystä ja 13 poistoa
@@ -2543,19 +2543,20 @@ public class ProductService {
} }
//一张大纸能放几个 //一张大纸能放几个
double num = Math.min(Math.floor(paperLength / length) * Math.floor(paperWidth / width), Math.floor(paperLength / width) * Math.floor(paperWidth / length)); double num = Math.max(Math.min(Math.floor(paperLength / length) * Math.floor(paperWidth / width), Math.floor(paperLength / width) * Math.floor(paperWidth / length)), 1);
if (craft_list.contains("烫画")) { if (craft_list.contains("烫画")) {
num = Math.max(Math.ceil(paperLength / length) * Math.ceil(paperWidth / width), Math.ceil(paperLength / width) * Math.ceil(paperWidth / length)); num = Math.max(Math.ceil(paperLength / length) * Math.ceil(paperWidth / width), Math.ceil(paperLength / width) * Math.ceil(paperWidth / length));
} }
double baseCount = Math.max(Math.ceil(dto.getCount() * dto.getNumber() / num), 1); double baseCount = Math.max(Math.ceil(dto.getCount() * dto.getNumber() / num), 1);
double countNum = Math.max(Math.ceil(dto.getNumber() / num), 1);
int coNumber = dto.getCo_number(); int coNumber = dto.getCo_number();
if (coNumber <= 0) { if (coNumber <= 0) {
coNumber = 1; coNumber = 1;
} }
double price = new PriceUtils().CalculatePrice(craft_list, baseCount, coNumber); double price = new PriceUtils().CalculatePrice(craft_list, baseCount, coNumber, countNum);
Product pro = new Product(); Product pro = new Product();
pro.setCount(dto.getCount()); pro.setCount(dto.getCount());
@@ -2569,7 +2570,8 @@ public class ProductService {
break; break;
} }
baseCount = Math.max(Math.ceil(quantitySteps[i] * dto.getNumber() / num), 1); baseCount = Math.max(Math.ceil(quantitySteps[i] * dto.getNumber() / num), 1);
double currentPrice = new PriceUtils().CalculatePrice(craft_list, baseCount, coNumber); countNum = Math.max(Math.ceil(dto.getNumber() / num), 1);
double currentPrice = new PriceUtils().CalculatePrice(craft_list, baseCount, coNumber, countNum);
pro = new Product(); pro = new Product();
@@ -2578,9 +2580,9 @@ public class ProductService {
priceList.add(pro); priceList.add(pro);
} }
for (Product product : priceList) { // for (Product product : priceList) {
product.setPrice(Math.ceil(product.getPrice() + (number - 1) * 0.5)); // product.setPrice(Math.ceil(product.getPrice() + (number - 1) * 0.5));
} // }
return priceList; return priceList;
} }
@@ -3440,19 +3440,29 @@ public class PriceUtils {
return price; return price;
} }
public double CalculatePrice(List<String> craft_list, double count, int coNumber) { public double CalculatePrice(List<String> craft_list, double count, int coNumber, double countNum) {
if (craft_list.contains("烫画")) { if (craft_list.contains("烫画")) {
return (int) count * 120; return (int) count * 120;
} }
double price = 0; double price = 0;
if (craft_list.contains("冷转印")) { if (craft_list.contains("冷转印")) {
if (count <= 5) { double banfei = 200;
price = 260; if (countNum > 1) {
} else if (count < 100) { price = 260 * countNum;
price = 14 * count + 200; banfei = 0;
} else { count = Math.abs(count - countNum);
price = 12 * count;
} }
if (count > 0) {
if (count <= 5) {
price += 260;
} else if (count < 100) {
price += 14 * count + banfei;
} else {
price += 12 * count;
}
}
price = price + (coNumber - 1) * 100; price = price + (coNumber - 1) * 100;
} }