提交 68931997 authored 作者: 艾庆国's avatar 艾庆国

承运与无车承运对接

上级 afc29cf3
package com.clx.performance.param.pc.owner;
import com.msl.common.base.PageParam;
import io.swagger.annotations.ApiModelProperty;
import lombok.Getter;
import lombok.Setter;
/**
* @ClassName PageCarrierSettlementOwnerParam
* @Description
* @Author
* @Date 2023/10/17 13:25
* @Version 1.0
*/
@Getter
@Setter
public class PageCarrierSettlementPlatformServiceFeeParam extends PageParam {
@ApiModelProperty(value = "运单编号", example = "JS415")
private String childNo;
@ApiModelProperty(value="车主编码",example = "201457878")
private Long driverUserNo;
@ApiModelProperty(value="车主姓名",example = "张三")
private String driverUserName;
@ApiModelProperty(value="车主手机",example = "13000000000")
private String driverMobile;
@ApiModelProperty(value = "开始时间")
private String beginTime;
@ApiModelProperty(value = "结束时间")
private String endTime;
}
package com.clx.performance.vo.pc.carrier.settle;
import lombok.Getter;
import lombok.NoArgsConstructor;
import lombok.Setter;
import lombok.ToString;
import io.swagger.annotations.ApiModelProperty;
import java.time.LocalDateTime;
import java.math.BigDecimal;
/**
* @Author: aiqinguo
* @Description: 平台服务费
* @Date: 2024/06/18 15:10:40
* @Version: 1.0
*/
@Getter
@Setter
@ToString
@NoArgsConstructor
public class SettlementPlatformServiceFeeVO {
@ApiModelProperty(value = "id", example = "")
private Integer id;
@ApiModelProperty(value = "运单编号", example = "")
private String childNo;
@ApiModelProperty(value = "车主用户编号", example = "")
private Long driverUserNo;
@ApiModelProperty(value = "车主名称", example = "")
private String driverName;
@ApiModelProperty(value = "司机手机号", example = "")
private String driverMobile;
@ApiModelProperty(value = "发货地址id", example = "")
private Integer sendAddressId;
@ApiModelProperty(value = "发货地址", example = "")
private String sendAddress;
@ApiModelProperty(value = "收货地址id", example = "")
private Integer receiveAddressId;
@ApiModelProperty(value = "收货地址", example = "")
private String receiveAddress;
@ApiModelProperty(value = "车牌号", example = "")
private String truckNo;
@ApiModelProperty(value = "结算金额(分)", example = "")
private BigDecimal settlementFreight;
@ApiModelProperty(value = "开票服务费(分)", example = "")
private BigDecimal invoiceServiceFee;
@ApiModelProperty(value = "开票服务率%", example = "")
private BigDecimal invoiceServiceFeeRate;
@ApiModelProperty(value = "创建时间", example = "")
private String createTime;
}
\ No newline at end of file
package com.clx.performance.controller.pc.carrier;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.clx.performance.param.pc.owner.PageCarrierSettlementPlatformServiceFeeParam;
import com.clx.performance.service.settle.SettlementPlatformServiceFeeExportService;
import com.clx.performance.service.settle.SettlementPlatformServiceFeeService;
import com.clx.performance.vo.pc.carrier.settle.SettlementPlatformServiceFeeVO;
import com.msl.common.base.PageData;
import com.msl.common.convertor.aspect.UnitCovert;
import com.msl.common.result.Result;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.validation.annotation.Validated;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
@Slf4j
@RestController
@RequestMapping(value="/pc/carrier/settlement/platformServiceFee")
@Validated
@Api(tags = "承运端-平台服务费统计-平台服务费")
public class CarrierSettlementPlatformServiceFeeController {
@Autowired
private SettlementPlatformServiceFeeService settlementPlatformServiceFeeService;
@Autowired
private SettlementPlatformServiceFeeExportService settlementPlatformServiceFeeExportService;
@ApiOperation(value = "平台服务费统计",notes = "<br>By:艾庆国")
@PostMapping("/pagePlatformServiceFee")
@UnitCovert(param = false)
public Result<PageData<SettlementPlatformServiceFeeVO>> pagePlatformServiceFee(
@RequestBody @Validated PageCarrierSettlementPlatformServiceFeeParam param) {
IPage<SettlementPlatformServiceFeeVO> page = settlementPlatformServiceFeeService
.pagePlatformServiceFee(param);
return Result.page(page.getRecords(),page.getTotal(),page.getPages());
}
@ApiOperation(value = "导出平台服务费统计",notes = "<br>By:艾庆国")
@PostMapping("/exportPlatformServiceFee")
public void exportPlatformServiceFee(@RequestBody @Validated PageCarrierSettlementPlatformServiceFeeParam param) {
settlementPlatformServiceFeeExportService.exportPlatformServiceFee(param);
}
}
package com.clx.performance.dao.impl.settle;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.clx.performance.dao.settle.SettlementPlatformServiceFeeDao;
import com.clx.performance.mapper.settle.SettlementPlatformServiceFeeMapper;
import com.clx.performance.model.settle.SettlementPlatformServiceFee;
import com.clx.performance.param.pc.owner.PageCarrierSettlementPlatformServiceFeeParam;
import com.msl.common.dao.impl.BaseDaoImpl;
import org.springframework.stereotype.Repository;
/**
* @Author: aiqinguo
* @Description:
* @Date: 2023-10-11 18:04:09
* @Version: 1.0
*/
@Repository
public class SettlementPlatformServiceFeeDaoImpl extends BaseDaoImpl<SettlementPlatformServiceFeeMapper,
SettlementPlatformServiceFee, Integer> implements SettlementPlatformServiceFeeDao {
@Override
public IPage<SettlementPlatformServiceFee> pageByParam(PageCarrierSettlementPlatformServiceFeeParam param) {
Page<SettlementPlatformServiceFee> page = Page.of(param.getPage(), param.getPageSize());
return baseMapper.pageByParam(page,param);
}
}
package com.clx.performance.dao.settle;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.clx.performance.mapper.settle.SettlementPlatformServiceFeeMapper;
import com.clx.performance.model.settle.SettlementPlatformServiceFee;
import com.clx.performance.param.pc.owner.PageCarrierSettlementPlatformServiceFeeParam;
import com.msl.common.dao.BaseDao;
/**
* @Author: aiqinguo
* @Description:
* @Date: 2023-10-11 18:00:53
* @Version: 1.0
*/
public interface SettlementPlatformServiceFeeDao extends BaseDao<SettlementPlatformServiceFeeMapper,
SettlementPlatformServiceFee, Integer> {
IPage<SettlementPlatformServiceFee> pageByParam(PageCarrierSettlementPlatformServiceFeeParam param);
}
package com.clx.performance.mapper.settle;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.clx.performance.model.settle.SettlementPlatformServiceFee;
import com.clx.performance.param.pc.owner.PageCarrierSettlementPlatformServiceFeeParam;
import com.clx.performance.sqlProvider.settle.SettlementPlatformServiceFeeSqlProvider;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;
import org.apache.ibatis.annotations.SelectProvider;
@Mapper
public interface SettlementPlatformServiceFeeMapper extends BaseMapper<SettlementPlatformServiceFee> {
/**
* @see SettlementPlatformServiceFeeSqlProvider#pageByParam(Page, PageCarrierSettlementPlatformServiceFeeParam)
*/
@SelectProvider(type = SettlementPlatformServiceFeeSqlProvider.class, method = "pageByParam")
IPage<SettlementPlatformServiceFee> pageByParam(@Param("page") Page page, @Param("param") PageCarrierSettlementPlatformServiceFeeParam param);
}
\ No newline at end of file
package com.clx.performance.model.settle;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import com.msl.common.config.KeyColumn;
import com.msl.common.model.HasKey;
import lombok.Getter;
import lombok.NoArgsConstructor;
import lombok.Setter;
import lombok.ToString;
import java.time.LocalDateTime;
import java.math.BigDecimal;
/**
* @Author: aiqinguo
* @Description: 平台服务费
* @Date: 2024/06/18 15:10:40
* @Version: 1.0
*/
@Getter
@Setter
@NoArgsConstructor
@TableName(autoResultMap = true)
public class SettlementPlatformServiceFee implements HasKey<Integer> {
@TableId(value = "id", type = IdType.AUTO)
private Integer id; //id
private String childNo; //运单编号
private Long driverUserNo; //车主用户编号
private String driverName; //车主名称
private Integer sendAddressId; //发货地址id
private String sendAddress; //发货地址
private Integer receiveAddressId; //收货地址id
private String receiveAddress; //收货地址
private String truckNo; //车牌号
private BigDecimal settlementFreight; //结算金额(分)
private BigDecimal invoiceServiceFee; //开票服务费(分)
private BigDecimal invoiceServiceFeeRate; //开票服务率%
private LocalDateTime createTime; //创建时间
private LocalDateTime modifiedTime; //修改时间
@KeyColumn("id")
@Override
public Integer gainKey() {
return id;
}
}
package com.clx.performance.service.impl.settle;
import com.clx.performance.param.pc.owner.PageCarrierSettlementPlatformServiceFeeParam;
import com.clx.performance.service.settle.SettlementPlatformServiceFeeExportService;
import com.clx.performance.service.settle.SettlementPlatformServiceFeeService;
import com.clx.performance.utils.excel.ExcelData;
import com.clx.performance.utils.excel.ExcelField;
import com.clx.performance.utils.excel.ExcelSheet;
import com.clx.performance.utils.excel.ExcelUtil;
import com.clx.performance.vo.pc.carrier.settle.SettlementPlatformServiceFeeVO;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import java.math.RoundingMode;
import java.util.ArrayList;
import java.util.List;
@Slf4j
@Service
public class SettlementPlatformServiceFeeExportServiceImpl implements SettlementPlatformServiceFeeExportService {
@Autowired
private SettlementPlatformServiceFeeService settlementPlatformServiceFeeService;
@Override
public void exportPlatformServiceFee(PageCarrierSettlementPlatformServiceFeeParam param) {
param.setPage(1);
param.setPageSize(1000000);
List<SettlementPlatformServiceFeeVO> list = settlementPlatformServiceFeeService.pagePlatformServiceFee(param).getRecords();
// 组装表头
List<ExcelField> fieldList = new ArrayList<>();
fieldList.add(new ExcelField(0, "序号", "index", 2000));
fieldList.add(new ExcelField(1, "运单编号", "childNo", 5000));
fieldList.add(new ExcelField(2, "司机姓名", "driverName", 5000));
fieldList.add(new ExcelField(3, "手机号", "driverMobile", 5000));
fieldList.add(new ExcelField(4, "发货地址", "sendAddress", 5000));
fieldList.add(new ExcelField(5, "收货地址", "receiveAddress", 5000));
fieldList.add(new ExcelField(6, "车牌号", "truckNo", 10000));
fieldList.add(new ExcelField(7, "结算金额", "settlementFreight", 10000));
fieldList.add(new ExcelField(8, "平台服务费率", "invoiceServiceFeeRate", 10000));
fieldList.add(new ExcelField(9, "平台服务费", "invoiceServiceFee", 10000));
fieldList.add(new ExcelField(10, "创建时间", "createTime", 5000));
// 组装数据
List<List<ExcelData>> dataList = new ArrayList<>();
for (int i=0; i<list.size(); i++){
SettlementPlatformServiceFeeVO dto = list.get(i);
List<ExcelData> rowData = new ArrayList<>();
rowData.add(new ExcelData(i+1));
rowData.add(new ExcelData(dto.getChildNo()));
rowData.add(new ExcelData(dto.getDriverName()));
rowData.add(new ExcelData(dto.getDriverMobile()));
rowData.add(new ExcelData(dto.getSendAddress()));
rowData.add(new ExcelData(dto.getReceiveAddress()));
rowData.add(new ExcelData(dto.getTruckNo()));
rowData.add(new ExcelData(dto.getSettlementFreight().movePointLeft(2).setScale(2, RoundingMode.HALF_UP).toString()));
rowData.add(new ExcelData(dto.getInvoiceServiceFeeRate().toString()+"%"));
rowData.add(new ExcelData(dto.getInvoiceServiceFee().movePointLeft(2).setScale(2, RoundingMode.HALF_UP).toString()));
rowData.add(new ExcelData(dto.getCreateTime()));
dataList.add(rowData);
}
// 导出
ExcelUtil.export(new ExcelSheet("平台服务费统计", fieldList, dataList));
}
}
package com.clx.performance.service.impl.settle;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.clx.performance.dao.settle.SettlementPlatformServiceFeeDao;
import com.clx.performance.param.pc.owner.PageCarrierSettlementPlatformServiceFeeParam;
import com.clx.performance.service.settle.SettlementPlatformServiceFeeService;
import com.clx.performance.struct.settle.SettlementPlatformServiceFeeStruct;
import com.clx.performance.vo.pc.carrier.settle.SettlementPlatformServiceFeeVO;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
@Slf4j
@Service
public class SettlementPlatformServiceFeeServiceImpl implements SettlementPlatformServiceFeeService {
@Autowired
private SettlementPlatformServiceFeeDao settlementPlatformServiceFeeDao;
@Autowired
private SettlementPlatformServiceFeeStruct settlementPlatformServiceFeeStruct;
@Override
public IPage<SettlementPlatformServiceFeeVO> pagePlatformServiceFee(PageCarrierSettlementPlatformServiceFeeParam param) {
return settlementPlatformServiceFeeStruct.convertPage(settlementPlatformServiceFeeDao.pageByParam(param));
}
}
package com.clx.performance.service.settle;
import com.clx.performance.param.pc.owner.PageCarrierSettlementPlatformServiceFeeParam;
public interface SettlementPlatformServiceFeeExportService {
void exportPlatformServiceFee(PageCarrierSettlementPlatformServiceFeeParam param);
}
package com.clx.performance.service.settle;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.clx.performance.param.pc.owner.PageCarrierSettlementPlatformServiceFeeParam;
import com.clx.performance.vo.pc.carrier.settle.SettlementPlatformServiceFeeVO;
/**
* @author
* Date 2023-10-12
* Time 09:43
*/
public interface SettlementPlatformServiceFeeService {
IPage<SettlementPlatformServiceFeeVO> pagePlatformServiceFee(PageCarrierSettlementPlatformServiceFeeParam param);
}
package com.clx.performance.sqlProvider.settle;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.clx.performance.param.pc.owner.PageCarrierSettlementPlatformServiceFeeParam;
import org.apache.commons.lang3.StringUtils;
import org.apache.ibatis.annotations.Param;
import org.apache.ibatis.jdbc.SQL;
import java.util.Objects;
public class SettlementPlatformServiceFeeSqlProvider {
private static final String TABLE = "settlement_platform_service_fee";
public String pageByParam(@Param("page") Page page, @Param("param") PageCarrierSettlementPlatformServiceFeeParam param) {
return new SQL(){{
SELECT("*");
FROM(TABLE);
if (StringUtils.isNotBlank(param.getChildNo())) {WHERE("child_no = #{param.childNo}");}
if (StringUtils.isNotBlank(param.getDriverUserName())) {WHERE("child_no = #{param.childNo}");}
if (StringUtils.isNotBlank(param.getDriverMobile())) {WHERE("driver_mobile = #{param.driverMobile}");}
if (Objects.nonNull(param.getDriverUserNo())) {WHERE("driver_user_no = #{param.driverUserNo}");}
if (Objects.nonNull(param.getBeginTime())) {WHERE("begin_time >= #{param.beginTime}");}
if (Objects.nonNull(param.getEndTime())) {WHERE("begin_time <= #{param.endTime}");}
ORDER_BY("id desc");
}}.toString();
}
}
package com.clx.performance.struct.settle;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.clx.performance.model.settle.SettlementPlatformServiceFee;
import com.clx.performance.vo.pc.carrier.settle.SettlementPlatformServiceFeeVO;
import com.msl.common.utils.DateStructUtil;
import com.msl.common.utils.DateUtils;
import org.mapstruct.Mapper;
@Mapper(componentModel = "spring", uses = DateStructUtil.class, imports = {DateUtils.class})
public interface SettlementPlatformServiceFeeStruct {
SettlementPlatformServiceFeeVO convert(SettlementPlatformServiceFee item);
Page<SettlementPlatformServiceFeeVO> convertPage(IPage<SettlementPlatformServiceFee> page);
}
......@@ -4,6 +4,7 @@ import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.Getter;
import lombok.NoArgsConstructor;
import org.apache.commons.lang3.StringUtils;
import java.math.BigDecimal;
......@@ -32,9 +33,15 @@ public class ExcelData {
this(value,null);
}
public ExcelData(String value, String defaultValue) {
if (!StringUtils.isBlank(value)) {
this.value = value;
this.dataType = DataType.STRING.value;
}
else {
this.value = defaultValue;
this.dataType = DataType.STRING.value;
}
}
public ExcelData(Double value) {
this(value,null);
......
......@@ -20,11 +20,13 @@ public class ExcelField {
private Integer width;
private Integer styleType;
private Integer contentAlignment;
private Integer span;
public ExcelField(String fieldName, String field, Integer width) {
this.fieldName = fieldName;
this.field = field;
this.width = width;
this.span = 1;
}
public ExcelField(Integer column, String fieldName, String field, Integer width) {
......@@ -32,5 +34,13 @@ public class ExcelField {
this.fieldName = fieldName;
this.field = field;
this.width = width;
this.span = 1;
}
public ExcelField(Integer column, String fieldName, String field, Integer width, Integer span) {
this.column = column;
this.fieldName = fieldName;
this.field = field;
this.width = width;
this.span = span;
}
}
package com.clx.performance.utils.excel;
import com.clx.performance.utils.excel.ExcelData;
import com.clx.performance.utils.excel.ExcelField;
import lombok.Data;
import lombok.NoArgsConstructor;
......@@ -19,6 +21,7 @@ public class ExcelSheet {
private String time;
private Integer timeStyleType;
private List<ExcelField> fieldList;
private List<ExcelField> fieldSecondList;
private List<List<ExcelData>> dataList;
public ExcelSheet(String name, String title) {
......@@ -32,11 +35,24 @@ public class ExcelSheet {
this.fieldList = fieldList;
}
public ExcelSheet(String name, List<ExcelField> fieldList, List<List<ExcelData>> dataList) {
this.name = name;
this.title = name;
this.fieldList = fieldList;
this.dataList = dataList;
}
public ExcelSheet(String name, String title, List<ExcelField> fieldList, List<List<ExcelData>> dataList) {
this.name = name;
this.title = title;
this.fieldList = fieldList;
this.dataList = dataList;
}
public ExcelSheet(String name, String title, List<ExcelField> fieldList, List<ExcelField> fieldSecondList, List<List<ExcelData>> dataList) {
this.name = name;
this.title = title;
this.fieldList = fieldList;
this.fieldSecondList = fieldSecondList;
this.dataList = dataList;
}
}
......@@ -12,7 +12,12 @@ import org.apache.poi.xssf.streaming.SXSSFCell;
import org.apache.poi.xssf.streaming.SXSSFRow;
import org.apache.poi.xssf.streaming.SXSSFSheet;
import org.apache.poi.xssf.streaming.SXSSFWorkbook;
import org.springframework.http.HttpHeaders;
import org.springframework.http.MediaType;
import org.springframework.web.context.request.RequestContextHolder;
import org.springframework.web.context.request.ServletRequestAttributes;
import javax.servlet.http.HttpServletResponse;
import java.util.List;
/**
......@@ -39,11 +44,30 @@ public class ExcelUtil {
}
/**
* 导出
*/
public static void export(ExcelSheet excelSheet) {
// 创建excel
SXSSFWorkbook workbook = create(excelSheet);
// 导出
HttpServletResponse response = ((ServletRequestAttributes) RequestContextHolder.getRequestAttributes()).getResponse();
response.setHeader(HttpHeaders.CONTENT_TYPE, MediaType.APPLICATION_OCTET_STREAM_VALUE);
try {
workbook.write(response.getOutputStream());
}catch (Exception e){
throw new RuntimeException("文件导出失败");
}
}
/**
* 创建excel
*/
public static SXSSFWorkbook create(ExcelSheet excelSheet) {
List<ExcelField> fieldList = excelSheet.getFieldList();
List<ExcelField> fieldSecondList = excelSheet.getFieldSecondList();
List<List<ExcelData>> dataList = excelSheet.getDataList();
SXSSFWorkbook workbook = new SXSSFWorkbook();
......@@ -51,14 +75,39 @@ public class ExcelUtil {
//创建sheet
SXSSFSheet sheet = workbook.createSheet(excelSheet.getName());
int fieldSize = fieldList.size();
for (int i = 0; i < fieldSize; i++) {
sheet.setColumnWidth(i, fieldList.get(i).getWidth());
int dataFieldSize = 0;
for (int i = 0; i < fieldList.size(); i++) {
dataFieldSize += fieldList.get(i).getSpan();
}
// 设置列宽
for (int i = 0, columnIdx = 0; i < fieldList.size(); i++) {
Integer width = null;
if (fieldList.get(i).getWidth() != null){width = fieldList.get(i).getWidth()/fieldList.get(i).getSpan();}
for (int j = 0; j < fieldList.get(i).getSpan(); j++) {
if (width != null) {sheet.setColumnWidth(columnIdx, width);}
columnIdx++;
}
}
if (fieldSecondList != null) {
for (int i = 0, columnIdx = 0; i < fieldSecondList.size(); i++) {
Integer width = null;
if (fieldSecondList.get(i).getWidth() != null){width = fieldSecondList.get(i).getWidth()/fieldSecondList.get(i).getSpan();}
for (int j = 0; j < fieldSecondList.get(i).getSpan(); j++) {
if (width != null) {sheet.setColumnWidth(columnIdx, width);}
columnIdx++;
}
}
}
//添加标题
int row = 0;
CellRangeAddress cellRangeAddress = new CellRangeAddress(row, row, 0, fieldSize - 1);
CellRangeAddress cellRangeAddress = new CellRangeAddress(row, row, 0, dataFieldSize - 1);
SXSSFRow rowTitle = sheet.createRow(row++);
sheet.addMergedRegion(cellRangeAddress);
rowTitle.setHeightInPoints(30);
......@@ -69,7 +118,7 @@ public class ExcelUtil {
//时间
if (StringUtils.isNotBlank(excelSheet.getTime())) {
CellRangeAddress timeCellRangeAddress = new CellRangeAddress(row, row, 0, fieldSize - 1);
CellRangeAddress timeCellRangeAddress = new CellRangeAddress(row, row, 0, dataFieldSize - 1);
SXSSFRow rowTime = sheet.createRow(row++);
sheet.addMergedRegion(timeCellRangeAddress);
......@@ -84,15 +133,49 @@ public class ExcelUtil {
//添加表头
CellStyle headCellStyle = getHeadStyle(workbook);
SXSSFRow rowHead = sheet.createRow(row++);
for (int i = 0; i < fieldSize; i++) {
SXSSFCell headCell = rowHead.createCell(i);
for (int i = 0, columnIdx=0; i < fieldList.size(); i++) {
SXSSFCell headCell = rowHead.createCell(columnIdx);
if (fieldList.get(i).getFieldName() != null) {
headCell.setCellValue(fieldList.get(i).getFieldName());
}
if (fieldList.get(i).getSpan()>1) {
CellRangeAddress cellAddresses = new CellRangeAddress(row-1, row-1, columnIdx, columnIdx + fieldList.get(i).getSpan()-1);
sheet.addMergedRegion(cellAddresses);
}
Integer styleType = fieldList.get(i).getStyleType();
if (null != styleType) {
headCell.setCellStyle(getCellStyle(workbook, styleType));
} else {
headCell.setCellStyle(headCellStyle);
}
columnIdx += fieldList.get(i).getSpan();
}
//添加二级表头
if (fieldSecondList != null) {
CellStyle headCellStyleSecond = getHeadStyle(workbook);
SXSSFRow rowHeadSecond = sheet.createRow(row++);
for (int i = 0, columnIdx = 0; i < fieldSecondList.size(); i++) {
SXSSFCell headCell = rowHeadSecond.createCell(columnIdx);
if (fieldSecondList.get(i).getFieldName()!=null) {
headCell.setCellValue(fieldSecondList.get(i).getFieldName());
}
if (fieldSecondList.get(i).getSpan() > 1){
CellRangeAddress cellAddresses = new CellRangeAddress(row-1, row-1, columnIdx, columnIdx + fieldSecondList.get(i).getSpan()-1);
sheet.addMergedRegion(cellAddresses);
}
Integer styleType = fieldSecondList.get(i).getStyleType();
if (null != styleType) {
headCell.setCellStyle(getCellStyle(workbook, styleType));
} else {
headCell.setCellStyle(headCellStyleSecond);
}
columnIdx += fieldSecondList.get(i).getSpan();
}
}
//内容
......@@ -100,7 +183,7 @@ public class ExcelUtil {
int dataSize = dataList.size();
for (int i = 0; i < dataSize; i++) {
rowData = sheet.createRow(row++);
for (int j = 0; j < fieldSize; j++) {
for (int j = 0; j < dataFieldSize; j++) {
SXSSFCell dataCell = rowData.createCell(j);
ExcelData excelData = dataList.get(i).get(j);
setCellValue(dataCell, excelData);
......
Markdown 格式
0%
您添加了 0 到此讨论。请谨慎行事。
请先完成此评论的编辑!
注册 或者 后发表评论