Explorar el Código

修改缺陷

shuiqilin-optimize
JianShengFei hace 9 meses
padre
commit
94a058a92d

+ 14
- 9
src/main/java/com/qtzl/alterSales/manager/service/AflReportExportServiceImpl.java Ver fichero

@@ -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);

Cargando…
Cancelar
Guardar