|
|
@@ -30,7 +30,9 @@ import java.io.FileNotFoundException; |
|
|
|
import java.io.IOException; |
|
|
|
import java.io.InputStream; |
|
|
|
import java.math.BigDecimal; |
|
|
|
import java.math.RoundingMode; |
|
|
|
import java.nio.file.Files; |
|
|
|
import java.time.LocalDate; |
|
|
|
import java.time.LocalDateTime; |
|
|
|
import java.time.format.DateTimeFormatter; |
|
|
|
import java.util.*; |
|
|
@@ -58,6 +60,9 @@ public class AflReportExportServiceImpl implements AflReportExportService { |
|
|
|
@Resource |
|
|
|
private ReportExcelConfig reportExcelConfig; |
|
|
|
|
|
|
|
private final DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyyMMddHHmmss"); |
|
|
|
|
|
|
|
|
|
|
|
@Override |
|
|
|
public String getFilePathAndName(ReportEnum reportEnum) { |
|
|
|
// 使用redis生成6位不重复的随机数 |
|
|
@@ -199,7 +204,7 @@ public class AflReportExportServiceImpl implements AflReportExportService { |
|
|
|
ExcelHeadIncomeCostVO sheetData1 = new ExcelHeadIncomeCostVO(); |
|
|
|
|
|
|
|
if (StringUtils.isNotEmpty(timeEnd)) { |
|
|
|
LocalDateTime timeEndLocal = LocalDateTime.parse(timeEnd, DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss")); |
|
|
|
LocalDateTime timeEndLocal = LocalDateTime.parse(timeEnd, formatter); |
|
|
|
sheetData1.setYear(timeEndLocal.getYear()); |
|
|
|
sheetData1.setMonth(timeEndLocal.getMonth().getValue()); |
|
|
|
} |
|
|
@@ -217,38 +222,38 @@ public class AflReportExportServiceImpl implements AflReportExportService { |
|
|
|
sheetData1.setActualUserCount(actualUserCount); |
|
|
|
|
|
|
|
// 实际收款金额 actualSaleAmount = 50 * actualUserNum |
|
|
|
sheetData1.setActualSaleAmount(BigDecimal.valueOf(50L * actualUserCount)); |
|
|
|
sheetData1.setActualSaleAmount(BigDecimal.valueOf(50L * actualUserCount).setScale(2, RoundingMode.HALF_UP)); |
|
|
|
|
|
|
|
// 特约商户号(1638682973)收款金额 |
|
|
|
int actualSaleAmount2973 = orderNum * 50; |
|
|
|
sheetData1.setActualSaleAmount2973(BigDecimal.valueOf(actualSaleAmount2973)); |
|
|
|
sheetData1.setActualSaleAmount2973(BigDecimal.valueOf(actualSaleAmount2973).setScale(2, RoundingMode.HALF_UP)); |
|
|
|
|
|
|
|
// 当月激活订单(户) |
|
|
|
sheetData1.setActiveOrderCount(orderNum); |
|
|
|
|
|
|
|
// 收入金额 |
|
|
|
int incomeAmount = 50 * sheetData1.getActiveOrderCount(); |
|
|
|
sheetData1.setIncomeAmount(BigDecimal.valueOf(incomeAmount)); |
|
|
|
sheetData1.setIncomeAmount(BigDecimal.valueOf(incomeAmount).setScale(2, RoundingMode.HALF_UP)); |
|
|
|
|
|
|
|
// 通道手续费 |
|
|
|
double bydChannelFee = actualUserCount * 20.5 * 0.001; |
|
|
|
sheetData1.setBdyChannelFee(BigDecimal.valueOf(bydChannelFee)); |
|
|
|
sheetData1.setBdyChannelFee(BigDecimal.valueOf(bydChannelFee).setScale(2, RoundingMode.HALF_UP)); |
|
|
|
|
|
|
|
double satChannelFee = actualUserCount * 13.7 * 0.001; |
|
|
|
sheetData1.setSatChannelFee(BigDecimal.valueOf(satChannelFee)); |
|
|
|
sheetData1.setSatChannelFee(BigDecimal.valueOf(satChannelFee).setScale(2, RoundingMode.HALF_UP)); |
|
|
|
|
|
|
|
BigDecimal channelFee = BigDecimal.valueOf(bydChannelFee + satChannelFee); |
|
|
|
sheetData1.setChannelFee(channelFee); |
|
|
|
|
|
|
|
double bdyCostAmount = actualUserCount * 20.5 - bydChannelFee; |
|
|
|
sheetData1.setBdyCostAmount(BigDecimal.valueOf(bdyCostAmount)); |
|
|
|
sheetData1.setBdyCostAmount(BigDecimal.valueOf(bdyCostAmount).setScale(2, RoundingMode.HALF_UP)); |
|
|
|
|
|
|
|
double satCostAmount = actualUserCount * 13.7 - satChannelFee; |
|
|
|
sheetData1.setSatCostAmount(BigDecimal.valueOf(satCostAmount)); |
|
|
|
sheetData1.setSatCostAmount(BigDecimal.valueOf(satCostAmount).setScale(2, RoundingMode.HALF_UP)); |
|
|
|
|
|
|
|
// 成本金额 |
|
|
|
double costAmount = bdyCostAmount + satCostAmount; |
|
|
|
sheetData1.setCostAmount(BigDecimal.valueOf(costAmount)); |
|
|
|
sheetData1.setCostAmount(BigDecimal.valueOf(costAmount).setScale(2, RoundingMode.HALF_UP)); |
|
|
|
|
|
|
|
WriteSheet writeSheet0 = EasyExcelFactory.writerSheet(0).build(); |
|
|
|
excelWriter.fill(sheetData1, writeSheet0); |