先看下截图:
poi 的jar 包我们用的比较老了 3.11 的 ,这是最终的代码效果
package tdh.platform.ofc.export.util;
import org.apache.commons.lang3.StringUtils;
import org.apache.poi.hssf.usermodel.*;
import org.apache.poi.ss.util.CellRangeAddress;
import org.springframework.stereotype.Service;
import tdh.platform.ofc.dto.sale.CalcDataConfrimResponse;
import java.math.BigDecimal;
import java.util.List;
import java.util.Objects;
/**
* <pre>
* Description:
* Copyright: Copyright (c)2021
* Company: 汇
* Author:
* Version: 1.0
* Created at: 2021/6/4 16:30
* </pre>
*/
@Service
public class CalcDataConfirmExportUtil {
public HSSFWorkbook export(List<CalcDataConfrimResponse> list) {
// 声明String数组,并初始化元素(表头名称)
//第一行表头字段,合并单元格时字段跨几列就将该字段重复几次
String[] excelHeader0 =
{
" 线路 ", "出发城市", "出发区域", "到达城市", "到达区域", "区——区(单边)", "规划里程",//非合并区域
"资源配置", "资源配置", "资源配置",
"签约客户本月业务", "签约客户本月业务", "签约客户本月业务", "签约客户本月业务", "签约客户本月业务"
, "签约客户本月业务", "签约客户本月业务", "签约客户本月业务", "签约客户本月业务",
"非签约客户业务", "非签约客户业务", "非签约客户业务", "非签约客户业务", "非签约客户业务"
, "非签约客户业务", "非签约客户业务", "非签约客户业务", "非签约客户业务",
"业务汇总", "业务汇总", "业务汇总", "业务汇总", "业务汇总", "业务汇总", "业务汇总",
"经营状况", "经营状况", "经营状况", "经营状况", "经营状况", "经营状况", "经营状况", "经营状况", "经营状况",
" 计划定制要求 ","","" // 合并区域
};
// “0,2,0,0” ===> “起始行,截止行,起始列,截止列”
String[] headnum0 = {"0,2,0,0", "0,2,1,1", "0,2,2,2", "0,2,3,3", "0,2,4,4", "0,2,5,5", "0,2,6,6",
"0,0,7,9",
"0,0,10,18",
"0,0,19,27",
"0,0,28,34",
"0,0,35,43",
"0,2,44,46"
};
//第二行表头字段,其中的空的双引号是为了补全表格边框
String[] excelHeader1 = {
"", "", "", "", "", "", "",
"班组数", "车头数", "挂箱数",
"签约均价", "签约均价", "签约均价",
"环比变化",
"发车数", "发车数", "发车数",
"环比变化", "签约标准产值",
"散客均价", "散客均价", "散客均价",
"环比变化",
"发车数", "发车数", "发车数",
"环比变化", "非签约标准产值", "汇总均价", "环比变化", "总发车数", "环比变化", "线路不均衡性",
"标准产值", "环比变化", "标准业务毛利", "标准业务毛利率", "车头兜底", "车头红利", "挂厢兜底额", "闲置亏损率",
"经营性毛利", "经营性毛利率", "毛利额环比变化", "","",""
};
// 合并单元格
String[] headnum1 = {"1,2,7,7", "1,2,8,8", "1,2,9,9",//班组、车头、挂箱
"1,1,10,12",//签约均价
"1,2,13,13",//环比变化
"1,1,14,16",//发车数
"1,2,17,17",//环比变化
"1,2,18,18",//签约标准产值
"1,1,19,21",//散客均价
"1,2,22,22",//环比变化
"1,1,23,25",//发车数
"1,2,26,26",//环比变化
"1,2,27,27",//非签约标准产值
"1,2,28,28",//汇总均价
"1,2,29,29",//环比变化
"1,2,30,30",//总发车数
"1,2,31,31",//环比变化
"1,2,32,32",//线路不均衡性
"1,2,33,33",//标准产值
"1,2,34,34",//环比变化
"1,2,35,35",//标准业务毛利
"1,2,36,36",//标准业务毛利率
"1,2,37,37",//车头兜底
"1,2,38,38",//车头红利
"1,2,39,39",//挂厢兜底额
"1,2,40,40",//闲置亏损率
"1,2,41,41",//经营性毛利
"1,2,42,42",//经营性毛利率
"1,2,43,43"//毛利额环比变化
};
//第三行表头字段
String[] excelHeader2 = {
"", "", "", "", "", "", "",
"", "", "",
"城市", "区域", "集团",
"",
"城市", "区域", "集团",
"", "",//环比变化,签约标准产值
"城市", "区域", "集团",
"",
"城市", "区域", "集团",
"", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "","",""
};
String[] headnum2 = {
"3,3,10,10", "3,3,11,11", "3,3,12,12",
"3,3,14,14", "3,3,15,15", "3,3,16,16",
"3,3,19,19", "3,3,20,20", "3,3,21,21",
"3,3,23,23", "3,3,24,24", "3,3,25,25"
};
// 声明一个工作簿
HSSFWorkbook wb = new HSSFWorkbook();
// 生成一个表格
HSSFSheet sheet = wb.createSheet("预算提报");
// 生成一种样式
HSSFCellStyle style = wb.createCellStyle();
// 设置样式
// style.setFillForegroundColor(HSSFColor.SKY_BLUE.index);
style.setFillPattern(HSSFCellStyle.SOLID_FOREGROUND);
style.setBorderBottom(HSSFCellStyle.BORDER_THIN);
style.setBorderLeft(HSSFCellStyle.BORDER_THIN);
style.setBorderRight(HSSFCellStyle.BORDER_THIN);
style.setBorderTop(HSSFCellStyle.BORDER_THIN);
style.setAlignment(HSSFCellStyle.ALIGN_CENTER);
style.setVerticalAlignment(HSSFCellStyle.VERTICAL_CENTER);
// 生成一种字体
HSSFFont font = wb.createFont();
// 设置字体
font.setFontName("微软雅黑");
// 设置字体大小
font.setFontHeightInPoints((short) 12);
// 字体加粗
font.setBoldweight(HSSFFont.BOLDWEIGHT_BOLD);
// 在样式中引用这种字体
style.setFont(font);
// 生成并设置另一个样式
HSSFCellStyle style2 = wb.createCellStyle();
// style2.setFillForegroundColor(HSSFColor.LIGHT_YELLOW.index);
style2.setFillPattern(HSSFCellStyle.SOLID_FOREGROUND);
style2.setBorderBottom(HSSFCellStyle.BORDER_THIN);
style2.setBorderLeft(HSSFCellStyle.BORDER_THIN);
style2.setBorderRight(HSSFCellStyle.BORDER_THIN);
style2.setBorderTop(HSSFCellStyle.BORDER_THIN);
style2.setAlignment(HSSFCellStyle.ALIGN_CENTER);
style2.setVerticalAlignment(HSSFCellStyle.VERTICAL_CENTER);
// 生成另一种字体2
HSSFFont font2 = wb.createFont();
// 设置字体
font2.setFontName("微软雅黑");
// 设置字体大小
font2.setFontHeightInPoints((short) 12);
// 字体加粗
// font2.setBoldweight(HSSFFont.BOLDWEIGHT_BOLD);
// 在样式2中引用这种字体
style2.setFont(font2);
// 生成表格的第一行
// 第一行表头
HSSFRow row = sheet.createRow(0);
for (int i = 0; i < excelHeader0.length; i++) {
sheet.autoSizeColumn(i, true);// 根据字段长度自动调整列的宽度
HSSFCell cell = row.createCell(i);
cell.setCellValue(excelHeader0[i]);
cell.setCellStyle(style);
// System.out.println(excelHeader0[i]);
if (i >= 0 && i <= 46) {
for (int j = 0; j < excelHeader0.length; j++) {
// 从第j列开始填充
cell = row.createCell(j);
// 填充excelHeader1[j]第j个元素
cell.setCellValue(excelHeader0[j]);
cell.setCellStyle(style);
}
}
}
// 动态合并单元格
for (int i = 0; i < headnum0.length; i++) {
sheet.autoSizeColumn(i, true);
String[] temp = headnum0[i].split(",");
Integer startrow = Integer.parseInt(temp[0]);
Integer overrow = Integer.parseInt(temp[1]);
Integer startcol = Integer.parseInt(temp[2]);
Integer overcol = Integer.parseInt(temp[3]);
sheet.addMergedRegion(new CellRangeAddress(startrow, overrow, startcol, overcol));
}
// 第二行表头
row = sheet.createRow(1);
for (int i = 0; i < excelHeader1.length; i++) {
sheet.autoSizeColumn(i, true);// 自动调整宽度
HSSFCell cell = row.createCell(i);
cell.setCellValue(excelHeader1[i]);
cell.setCellStyle(style);
if (i > 6 && i <= 46) {
for (int j = 0; j < excelHeader1.length; j++) {
// 从第j+1列开始填充
cell = row.createCell(j);
// 填充excelHeader1[j]第j个元素
cell.setCellValue(excelHeader1[j]);
cell.setCellStyle(style);
}
}
}
// 动态合并单元格
for (int i = 0; i < headnum1.length; i++) {
sheet.autoSizeColumn(i, true);
String[] temp = headnum1[i].split(",");
Integer startrow = Integer.parseInt(temp[0]);
Integer overrow = Integer.parseInt(temp[1]);
Integer startcol = Integer.parseInt(temp[2]);
Integer overcol = Integer.parseInt(temp[3]);
sheet.addMergedRegion(new CellRangeAddress(startrow, overrow, startcol, overcol));
}
// 第三行表头
row = sheet.createRow(2);
for (int i = 0; i < excelHeader2.length; i++) {
HSSFCell cell = row.createCell(i);
cell.setCellValue(excelHeader2[i]);
cell.setCellStyle(style);
// System.out.println(excelHeader2[i]);
sheet.autoSizeColumn(i, true);// 自动调整宽度
if (i > 9 && i <= 46) {
for (int j = 0; j < excelHeader2.length; j++) {
// 从第j+2列开始填充
cell = row.createCell(j);
// 填充excelHeader1[j]第j个元素
cell.setCellValue(excelHeader2[j]);
cell.setCellStyle(style);
}
}
}
// 动态合并单元格7
for (int i = 0; i < headnum2.length; i++) {
sheet.autoSizeColumn(i, true);
String[] temp = headnum2[i].split(",");
Integer startrow = Integer.parseInt(temp[0]);
Integer overrow = Integer.parseInt(temp[1]);
Integer startcol = Integer.parseInt(temp[2]);
Integer overcol = Integer.parseInt(temp[3]);
sheet.addMergedRegion(new CellRangeAddress(startrow, overrow, startcol, overcol));
}
// 第四行和第五行数据
for (int i = 0; i < list.size(); i++) {
row = sheet.createRow(i + 3);
CalcDataConfrimResponse report = list.get(i);
if (i == 0 || i == 1) {
// 线路列
HSSFCell cell = row.createCell(0);
cell.setCellValue(report.getSumTitle());
cell.setCellStyle(style2);
} else {
// 线路列
HSSFCell cell = row.createCell(0);
cell.setCellValue(report.getRoundTripManageRoute());
cell.setCellStyle(style2);
}
// 出发城市
HSSFCell cell1 = row.createCell(1);
cell1.setCellValue(report.getDepartCtName());
cell1.setCellStyle(style2);
// 出发区域
HSSFCell cell2 = row.createCell(2);
cell2.setCellValue(report.getDepartAreaName());
cell2.setCellStyle(style2);
// 到达城市
HSSFCell cell3 = row.createCell(3);
cell3.setCellValue(report.getArriveCtName());
cell3.setCellStyle(style2);
// 到达区域
HSSFCell cell4 = row.createCell(4);
cell4.setCellValue(report.getArriveAreaName());
cell4.setCellStyle(style2);
// 区-区(单边)
HSSFCell cell5 = row.createCell(5);
cell5.setCellValue(report.getAreaToArea());
cell5.setCellStyle(style2);
// 规划里程
HSSFCell cell6 = row.createCell(6);
cell6.setCellValue(dataToBlank(report.getAreaToArea(),nullToBlank(report.getPlanMileage())));
cell6.setCellStyle(style2);
//班组数
HSSFCell cell7 = row.createCell(7);
cell7.setCellValue(dataToBlank(report.getAreaToArea(),nullToBlank(report.getShiftGroupNo())));
cell7.setCellStyle(style2);
//车头数
HSSFCell cell8 = row.createCell(8);
cell8.setCellValue(dataToBlank(report.getAreaToArea(),nullToBlank(report.getTruckNo())));
cell8.setCellStyle(style2);
//挂厢数
HSSFCell cell9 = row.createCell(9);
cell9.setCellValue(dataToBlank(report.getAreaToArea(),nullToBlank(report.getTrailerNo())));
cell9.setCellStyle(style2);
//城市
HSSFCell cell10 = row.createCell(10);
cell10.setCellValue(nullToBlank(report.getSignAvgPriceOfCity()));
cell10.setCellStyle(style2);
//区域
HSSFCell cell11 = row.createCell(11);
cell11.setCellValue(nullToBlank(report.getSignAvgPriceOfArea()));
cell11.setCellStyle(style2);
//集团
HSSFCell cell12 = row.createCell(12);
cell12.setCellValue(nullToBlank(report.getSignAvgPriceOfCompany()));
cell12.setCellStyle(style2);
//环比变化
HSSFCell cell13 = row.createCell(13);
cell13.setCellValue(nullToBlank(report.getSignAvgPriceRate()));
cell13.setCellStyle(style2);
//城市
HSSFCell cell14 = row.createCell(14);
cell14.setCellValue(nullToBlank(report.getSignDepartCountOfCity()));
cell14.setCellStyle(style2);
//区域
HSSFCell cell15 = row.createCell(15);
cell15.setCellValue(nullToBlank(report.getSignDepartCountOfArea()));
cell15.setCellStyle(style2);
//集团
HSSFCell cell16 = row.createCell(16);
cell16.setCellValue(nullToBlank(report.getSignDepartCountOfCompany()));
cell16.setCellStyle(style2);
//环比变化
HSSFCell cell17 = row.createCell(17);
cell17.setCellValue(nullToBlank(report.getSignDepartCountRate()));
cell17.setCellStyle(style2);
//签约标准产值
HSSFCell cell18 = row.createCell(18);
cell18.setCellValue(nullToBlank(report.getStandardIncomeOfSign()));
cell18.setCellStyle(style2);
//城市
HSSFCell cell19 = row.createCell(19);
cell19.setCellValue(nullToBlank(report.getGeneralAvgPriceOfCity()));
cell19.setCellStyle(style2);
//区域
HSSFCell cell20 = row.createCell(20);
cell20.setCellValue(nullToBlank(report.getGeneralAvgPriceOfArea()));
cell20.setCellStyle(style2);
//集团
HSSFCell cell21 = row.createCell(21);
cell21.setCellValue(nullToBlank(report.getGeneralAvgPriceOfCompany()));
cell21.setCellStyle(style2);
//环比变化
HSSFCell cell22 = row.createCell(22);
cell22.setCellValue(nullToBlank(report.getGeneralAvgPriceRate()));
cell22.setCellStyle(style2);
//城市
HSSFCell cell23 = row.createCell(23);
cell23.setCellValue(nullToBlank(report.getGeneralDepartCountOfCity()));
cell23.setCellStyle(style2);
//区域
HSSFCell cell24 = row.createCell(24);
cell24.setCellValue(nullToBlank(report.getGeneralDepartCountOfArea()));
cell24.setCellStyle(style2);
//集团
HSSFCell cell25 = row.createCell(25);
cell25.setCellValue(nullToBlank(report.getGeneralDepartCountOfCompany()));
cell25.setCellStyle(style2);
//环比变化
HSSFCell cell26 = row.createCell(26);
cell26.setCellValue(nullToBlank(report.getGeneralDepartCountRate()));
cell26.setCellStyle(style2);
//非签约标准产值
HSSFCell cell27 = row.createCell(27);
cell27.setCellValue(nullToBlank(report.getStandardIncomeOfUnSign()));
cell27.setCellStyle(style2);
//汇总均价
HSSFCell cell28 = row.createCell(28);
cell28.setCellValue(nullToBlank(report.getAllAvgPrice()));
cell28.setCellStyle(style2);
//环比变化
HSSFCell cell29 = row.createCell(29);
cell29.setCellValue(nullToBlank(report.getAllAvgPriceRate()));
cell29.setCellStyle(style2);
//总发车数
HSSFCell cell30 = row.createCell(30);
cell30.setCellValue(nullToBlank(report.getAllDepartCount()));
cell30.setCellStyle(style2);
//环比变化
HSSFCell cell31 = row.createCell(31);
cell31.setCellValue(nullToBlank(report.getAllDepartCountRate()));
cell31.setCellStyle(style2);
//线路不均衡性--------------
HSSFCell cell32 = row.createCell(32);
cell32.setCellValue(mergeCell(i,nullToBlank(report.getRouteBlance())));//线路不均衡性
cell32.setCellStyle(style2);
//标准产值
HSSFCell cell33 = row.createCell(33);
cell33.setCellValue(nullToBlank(report.getStandardIncome()));
cell33.setCellStyle(style2);
//环比变化
HSSFCell cell34 = row.createCell(34);
cell34.setCellValue(nullToBlank(report.getStandardIncomeRate()));
cell34.setCellStyle(style2);
//标准业务毛利
HSSFCell cell35 = row.createCell(35);
cell35.setCellValue(nullToBlank(report.getBizStandardProfit()));
cell35.setCellStyle(style2);
//标准业务毛利率
HSSFCell cell36 = row.createCell(36);
cell36.setCellValue(nullToBlank(report.getBizStandardProfitRate()));
cell36.setCellStyle(style2);
//车头兜底
HSSFCell cell37 = row.createCell(37);
cell37.setCellValue(nullToBlank(report.getPromiseTruckTotalCharge()));
cell37.setCellStyle(style2);
//车头红利
HSSFCell cell38 = row.createCell(38);
cell38.setCellValue(nullToBlank(report.getBonusTruckTotalCharge()));
cell38.setCellStyle(style2);
//挂厢兜底额
HSSFCell cell39 = row.createCell(39);
cell39.setCellValue(nullToBlank(report.getPromiseTrailerTotalCharge()));
cell39.setCellStyle(style2);
//闲置亏损率
HSSFCell cell40 = row.createCell(40);
cell40.setCellValue(nullToBlank(report.getIdleLossRate()));
cell40.setCellStyle(style2);
//经营性毛利
HSSFCell cell41 = row.createCell(41);
cell41.setCellValue(nullToBlank(report.getManageProfit()));
cell41.setCellStyle(style2);
//经营性毛利率
HSSFCell cell42 = row.createCell(42);
cell42.setCellValue(nullToBlank(report.getManageProfitRate()));
cell42.setCellStyle(style2);
//毛利额环比变化
HSSFCell cell43 = row.createCell(43);
cell43.setCellValue(nullToBlank(report.getManageProfitChange()));
cell43.setCellStyle(style2);
//定制计划要求-城市
HSSFCell cell44 = row.createCell(44);
cell44.setCellValue(report.getRemarkOfCity());
cell44.setCellStyle(style2);
//定制计划要求-区域
HSSFCell cell45 = row.createCell(45);
cell45.setCellValue(report.getRemarkOfArea());
cell45.setCellStyle(style2);
//定制计划要求-集团
HSSFCell cell46 = row.createCell(46);
cell46.setCellValue(report.getRemarkOfCompany());
cell46.setCellStyle(style2);
/**
* 除去表头,再除去2行汇总,然后每写三行数据进行一次合并单元格第一次合并的时候对于整个sheet来说 开始行是5 结束行是7
* ,此时的i 是 4 数据行开始是(2+3)从0开始第五行是4
*/
if((i>3) && (i%3 == 1)){
CellRangeAddress region = new CellRangeAddress(i+1, i+3, 32, 32);
sheet.addMergedRegion(region);
}
}
return wb;
}
public static String nullToBlank(BigDecimal obj){
if(Objects.isNull(obj)){
return "";
}
return obj.stripTrailingZeros().toPlainString();
}
/**
* 设置规划里程、资源配置的(班组数、车头数、挂厢数)为空白单元格
* @param areaToArea
* @param mileageAndResource
* @return
*/
public static String dataToBlank(String areaToArea,String mileageAndResource){
if(StringUtils.isNotBlank(areaToArea) && StringUtils.isNotBlank(mileageAndResource)){
return "";
}
return mileageAndResource;
}
public static String mergeCell(int column,String routeBlance){
if(column%3 == 2){
return routeBlance;
}
return "";
}
}
需要用到的对象属性,要提供setter getter 方法
public class CalcDataConfrimResponse extends CalcManageDataResponse {
/**
* 预算月
*/
private String month;
/**
* 汇总标题
*/
private String sumTitle;
/**
* 操作类型(已确认、待确认)
*/
private String opType = "0";
/**
* 出发城市
*/
private String departCtName;
/**
* 出发区域
*/
private String departAreaName;
/**
* 到达城市
*/
private String arriveCtName;
/**
* 到达区域
*/
private String arriveAreaName;
/**
* 区到区单边
*/
private String areaToArea;
/**
* 签约均价 城市
*/
private BigDecimal signAvgPriceOfCity = BigDecimal.ZERO;
/**
* 签约均价 区域
*/
private BigDecimal signAvgPriceOfArea = BigDecimal.ZERO;
/**
* 签约均价 公司
*/
private BigDecimal signAvgPriceOfCompany = BigDecimal.ZERO;
/**
* 签约发车数 城市
*/
private BigDecimal signDepartCountOfCity = BigDecimal.ZERO;
/**
* 签约发车数 区域
*/
private BigDecimal signDepartCountOfArea = BigDecimal.ZERO;
/**
* 签约发车数 公司
*/
private BigDecimal signDepartCountOfCompany = BigDecimal.ZERO;
/**
* 签约客户标准产值
*/
private BigDecimal standardIncomeOfSign = BigDecimal.ZERO;
/**
* 签约客户标准产值 城市
*/
private BigDecimal standardIncomeOfSignOfCity = BigDecimal.ZERO;
/**
* 签约客户标准产值 区域
*/
private BigDecimal standardIncomeOfSignOfArea = BigDecimal.ZERO;
/**
* 签约客户标准产值 公司
*/
private BigDecimal standardIncomeOfSignOfCompany = BigDecimal.ZERO;
/**
* 非签约均价 城市
*/
private BigDecimal generalAvgPriceOfCity = BigDecimal.ZERO;
/**
* 非签约均价 区域
*/
private BigDecimal generalAvgPriceOfArea = BigDecimal.ZERO;
/**
* 非签约均价 公司
*/
private BigDecimal generalAvgPriceOfCompany = BigDecimal.ZERO;
/**
* 非签约发车数 城市
*/
private BigDecimal generalDepartCountOfCity = BigDecimal.ZERO;
/**
* 非签约发车数 区域
*/
private BigDecimal generalDepartCountOfArea = BigDecimal.ZERO;
/**
* 非签约发车数 公司
*/
private BigDecimal generalDepartCountOfCompany = BigDecimal.ZERO;
/**
* 非签约客户标准产值
*/
private BigDecimal standardIncomeOfUnSign = BigDecimal.ZERO;
/**
* 非签约客户标准产值 城市
*/
private BigDecimal standardIncomeOfUnSignOfCity = BigDecimal.ZERO;
/**
* 非签约客户标准产值 区域
*/
private BigDecimal standardIncomeOfUnSignOfArea = BigDecimal.ZERO;
/**
* 非签约客户标准产值 公司
*/
private BigDecimal standardIncomeOfUnSignOfCompany = BigDecimal.ZERO;
/**
* 城市备注
*/
private String remarkOfCity = "";
/**
* 区域备注
*/
private String remarkOfArea = "";
/**
* 公司备注
*/
private String remarkOfCompany = "";
public class CalcManageDataResponse {
/**
* 时间进度
*/
private BigDecimal rateProgress = BigDecimal.ZERO;
/**
* ID 0 代表管理线路,不为0的时候代表单边管理线路
*/
private Integer id;
/**
*管理线路Id
*/
private Integer roundTripManageRouteId;
/**
* 管理线路
*/
private String roundTripManageRoute;
/**
* 单边线路
*/
private String singleManageRoute;
/**
* 规划里程
*/
private BigDecimal planMileage = BigDecimal.ZERO;
/**
* 班组数
*/
private BigDecimal shiftGroupNo = BigDecimal.ZERO;
/**
* 车头数
*/
private BigDecimal truckNo;
/**
* 挂厢数
*/
private BigDecimal trailerNo;
/**
* 线路效率
*/
private BigDecimal routeEfficiency = BigDecimal.ZERO;
/**
* 线路效率
*/
private BigDecimal tkEfficiency = BigDecimal.ZERO;
/**
* 签约均价
*/
private BigDecimal signAvgPrice = BigDecimal.ZERO;
/**
* 签约均价环比变化
*/
private BigDecimal signAvgPriceRate = BigDecimal.ZERO;
/**
* 签约发车数
*/
private BigDecimal signDepartCount = BigDecimal.ZERO;
/**
* 签约发车数环比变化
*/
private BigDecimal signDepartCountRate = BigDecimal.ZERO;
/**
* 散客均价
*/
private BigDecimal generalAvgPrice = BigDecimal.ZERO;
/**
* 散客均价环比变化
*/
private BigDecimal generalAvgPriceRate = BigDecimal.ZERO;
/**
* 散客发车数
*/
private BigDecimal generalDepartCount = BigDecimal.ZERO;
/**
* 散客发车数环比变化
*/
private BigDecimal generalDepartCountRate = BigDecimal.ZERO;
/**
* 汇总均价
*/
private BigDecimal allAvgPrice = BigDecimal.ZERO;
/**
* 汇总均价环比变化
*/
private BigDecimal allAvgPriceRate = BigDecimal.ZERO;
/**
* 汇总发车数
*/
private BigDecimal allDepartCount = BigDecimal.ZERO;
/**
* 汇总发车数环比变化
*/
private BigDecimal allDepartCountRate = BigDecimal.ZERO;
/**
* 线路不均衡性
*/
private BigDecimal routeBlance = BigDecimal.ZERO;
/**
* 标准产值
*/
private BigDecimal standardIncome = BigDecimal.ZERO;
/**
* 标准产值环比变化
*/
private BigDecimal standardIncomeRate = BigDecimal.ZERO;
/**
* 标准业务毛利
*/
private BigDecimal bizStandardProfit = BigDecimal.ZERO;
/**
* 业务毛利率
*/
private BigDecimal bizStandardProfitRate = BigDecimal.ZERO;
/**
*车头兜底
*/
private BigDecimal promiseTruckTotalCharge = BigDecimal.ZERO;
/**
*车头红利
*/
private BigDecimal bonusTruckTotalCharge = BigDecimal.ZERO;
/**
*挂厢兜底额
*/
private BigDecimal promiseTrailerTotalCharge = BigDecimal.ZERO;
/**
*闲置亏损率
*/
private BigDecimal idleLossRate = BigDecimal.ZERO;
/**
*经营性毛利
*/
private BigDecimal manageProfit = BigDecimal.ZERO;
/**
*经营性毛利率
*/
private BigDecimal manageProfitRate = BigDecimal.ZERO;
/**
*毛利额环比变化
*/
private BigDecimal manageProfitChange = BigDecimal.ZERO;