|
|
@ -300,13 +300,13 @@ public class ReportService implements IReportService { |
|
|
|
//循环产品信息
|
|
|
|
for (int i = 0; i < productIncome.getProductIncomeAllList().size(); i++) { |
|
|
|
//生成每个产品信息需要的三行
|
|
|
|
CompanyVo.ProductIncomeAll productIncomeAll = productIncome.getProductIncomeAllList().get(0); |
|
|
|
CompanyVo.ProductIncomeAll productIncomeAll = productIncome.getProductIncomeAllList().get(i); |
|
|
|
List<PoiUtil.PoiUtilCell> product1 = new ArrayList<>(); |
|
|
|
List<PoiUtil.PoiUtilCell> product2 = new ArrayList<>(); |
|
|
|
List<PoiUtil.PoiUtilCell> product3 = new ArrayList<>(); |
|
|
|
if (i == 0) { |
|
|
|
//每个类型的第一行有内容,其他的为空
|
|
|
|
product1.add(new PoiUtil.PoiUtilCell(productIncomeAll.getProductName(), 1, productIncome.getProductIncomeAllList().size() * 3)); |
|
|
|
product1.add(new PoiUtil.PoiUtilCell(productIncome.getProductTypeName(), 1, productIncome.getProductIncomeAllList().size() * 3)); |
|
|
|
product2.add(new PoiUtil.PoiUtilCell()); |
|
|
|
product3.add(new PoiUtil.PoiUtilCell()); |
|
|
|
} else { |
|
|
@ -325,23 +325,51 @@ public class ReportService implements IReportService { |
|
|
|
//循环每月的收入
|
|
|
|
BigDecimal totalProductIncome = BigDecimal.valueOf(0); |
|
|
|
BigDecimal totalRealIncome = BigDecimal.valueOf(0); |
|
|
|
if (CollectionUtil.isNotEmpty(productIncomeAll.getProductIncomeList())) { |
|
|
|
for (CompanyVo.ProductIncome income : productIncomeAll.getProductIncomeList()) { |
|
|
|
for (int a = 0; a < 12; a++){ |
|
|
|
if (a < productIncomeAll.getProductIncomeList().size()) { |
|
|
|
CompanyVo.ProductIncome income = productIncomeAll.getProductIncomeList().get(a); |
|
|
|
product1.add(new PoiUtil.PoiUtilCell(income.getPredictIncome().toString())); |
|
|
|
product2.add(new PoiUtil.PoiUtilCell(income.getRealIncome().toString())); |
|
|
|
|
|
|
|
if(income.getPredictIncome().multiply(BigDecimal.valueOf(100)).intValue() != 0) { |
|
|
|
BigDecimal bias = income.getRealIncome().subtract(income.getPredictIncome()). |
|
|
|
divide(income.getPredictIncome(), 2, BigDecimal.ROUND_HALF_UP).multiply(BigDecimal.valueOf(100)); |
|
|
|
product3.add(new PoiUtil.PoiUtilCell(bias.toString() + "%")); |
|
|
|
}else { |
|
|
|
product3.add(new PoiUtil.PoiUtilCell()); |
|
|
|
} |
|
|
|
totalProductIncome = totalProductIncome.add(income.getPredictIncome()); |
|
|
|
totalRealIncome = totalRealIncome.add(income.getRealIncome()); |
|
|
|
}else { |
|
|
|
product1.add(new PoiUtil.PoiUtilCell()); |
|
|
|
product2.add(new PoiUtil.PoiUtilCell()); |
|
|
|
product3.add(new PoiUtil.PoiUtilCell()); |
|
|
|
} |
|
|
|
} |
|
|
|
// if (CollectionUtil.isNotEmpty(productIncomeAll.getProductIncomeList())) {
|
|
|
|
// for (CompanyVo.ProductIncome income : productIncomeAll.getProductIncomeList()) {
|
|
|
|
// product1.add(new PoiUtil.PoiUtilCell(income.getPredictIncome().toString()));
|
|
|
|
// product2.add(new PoiUtil.PoiUtilCell(income.getRealIncome().toString()));
|
|
|
|
// BigDecimal bias = income.getRealIncome().subtract(income.getPredictIncome()).
|
|
|
|
// divide(income.getPredictIncome(), 2, BigDecimal.ROUND_HALF_UP).multiply(BigDecimal.valueOf(100));
|
|
|
|
// product3.add(new PoiUtil.PoiUtilCell(bias.toString() + "%"));
|
|
|
|
// totalProductIncome = totalProductIncome.add(income.getPredictIncome());
|
|
|
|
// totalRealIncome = totalRealIncome.add(income.getRealIncome());
|
|
|
|
// }
|
|
|
|
// }else {
|
|
|
|
// product1.add(new PoiUtil.PoiUtilCell());
|
|
|
|
// product2.add(new PoiUtil.PoiUtilCell());
|
|
|
|
// product3.add(new PoiUtil.PoiUtilCell());
|
|
|
|
// }
|
|
|
|
product1.add(new PoiUtil.PoiUtilCell(totalProductIncome.toString())); |
|
|
|
product2.add(new PoiUtil.PoiUtilCell(totalRealIncome.toString())); |
|
|
|
if(totalProductIncome.multiply(BigDecimal.valueOf(100)).intValue() != 0){ |
|
|
|
BigDecimal bias = totalRealIncome.subtract(totalProductIncome). |
|
|
|
divide(totalProductIncome, 2, BigDecimal.ROUND_HALF_UP).multiply(BigDecimal.valueOf(100)); |
|
|
|
product3.add(new PoiUtil.PoiUtilCell(bias.toString() + "%")); |
|
|
|
|
|
|
|
}else { |
|
|
|
product3.add(new PoiUtil.PoiUtilCell()); |
|
|
|
} |
|
|
|
product1.add(new PoiUtil.PoiUtilCell()); |
|
|
|
product2.add(new PoiUtil.PoiUtilCell()); |
|
|
|
product3.add(new PoiUtil.PoiUtilCell()); |
|
|
|