diff --git a/yxt_supervise/supervise-portal/supervise-portal-api/src/main/java/com/yxt/supervise/portal/api/gdsalesreport/GoodsSalesReportExcelVo.java b/yxt_supervise/supervise-portal/supervise-portal-api/src/main/java/com/yxt/supervise/portal/api/gdsalesreport/GoodsSalesReportExcelVo.java index f7bc4f1e..b67ea769 100644 --- a/yxt_supervise/supervise-portal/supervise-portal-api/src/main/java/com/yxt/supervise/portal/api/gdsalesreport/GoodsSalesReportExcelVo.java +++ b/yxt_supervise/supervise-portal/supervise-portal-api/src/main/java/com/yxt/supervise/portal/api/gdsalesreport/GoodsSalesReportExcelVo.java @@ -3,11 +3,23 @@ package com.yxt.supervise.portal.api.gdsalesreport; import com.yxt.common.core.vo.Vo; import lombok.Data; +import java.math.BigDecimal; + /** * @author wangpengfei * @date 2023/4/17 9:07 */ @Data public class GoodsSalesReportExcelVo implements Vo { + private String serialNumber; + private String prodName; + private String storeName; + private String saleNum; + private String salePrice; + private BigDecimal total; + private String orderType; + private String orderNo; + private String prodCode; + } diff --git a/yxt_supervise/supervise-portal/supervise-portal-api/src/main/java/com/yxt/supervise/portal/api/gdsalesreport/MyHandler.java b/yxt_supervise/supervise-portal/supervise-portal-api/src/main/java/com/yxt/supervise/portal/api/gdsalesreport/MyHandler.java new file mode 100644 index 00000000..5a82b228 --- /dev/null +++ b/yxt_supervise/supervise-portal/supervise-portal-api/src/main/java/com/yxt/supervise/portal/api/gdsalesreport/MyHandler.java @@ -0,0 +1,87 @@ +package com.yxt.supervise.portal.api.gdsalesreport; + + +import com.alibaba.excel.metadata.Head; +import com.alibaba.excel.write.merge.AbstractMergeStrategy; +import org.apache.poi.ss.usermodel.*; +import org.apache.poi.ss.util.CellRangeAddress; +import org.apache.poi.ss.util.RegionUtil; +import java.util.List; + +/** + * 合并单元格处理类 + */ +public class MyHandler extends AbstractMergeStrategy { + + + /** + * 合并开始行 + */ + private Integer startRow = 0; + /** + * list表格所有的合并列集合 + */ + private List cellRangeAddressList = null; + + public MyHandler() { + } + + public MyHandler(int startRow, List cellRangeAddressList) { + this.startRow = startRow; + this.cellRangeAddressList = cellRangeAddressList; + } + + @Override + protected void merge(Sheet sheet, Cell cell, Head head, Integer relativeRowIndex) { + // 设置样式 + CellStyle cellStyle = cell.getCellStyle(); + //水平居中 + cellStyle.setAlignment(HorizontalAlignment.CENTER); + //自动换行 + cellStyle.setWrapText(true); + //在这里判断从哪一行开始调用合并的方法 + if (cell.getRowIndex() > this.startRow) { + if (relativeRowIndex == null || relativeRowIndex == 0) { + return; + } + mergeColumn(sheet, cell, head, relativeRowIndex); + } + } + + /** + * 合并单元格 + * + * @param sheet + * @param cell + * @param head + * @param relativeRowIndex + */ + protected void mergeColumn(Sheet sheet, Cell cell, Head head, Integer relativeRowIndex) { + int rowIndex = cell.getRowIndex(); + int colIndex = cell.getColumnIndex(); + sheet = cell.getSheet(); + // 获取前一行 + Row preRow = sheet.getRow(rowIndex - 1); + //获取前一列 + Cell preCell = preRow.getCell(colIndex); + List list = this.cellRangeAddressList; + for (int i = 0; i < list.size(); i++) { + CellRangeAddress cellRangeAddress = list.get(i); + if (cellRangeAddress.containsColumn(preCell.getColumnIndex())) { + int lastColIndex = cellRangeAddress.getLastColumn(); + int firstColIndex = cellRangeAddress.getFirstColumn(); + CellRangeAddress cra = new CellRangeAddress(cell.getRowIndex(), cell.getRowIndex(), firstColIndex, lastColIndex); + sheet.addMergedRegion(cra); + // 加边框 + RegionUtil.setBorderBottom(BorderStyle.THIN, cra, sheet); + RegionUtil.setBorderLeft(BorderStyle.THIN, cra, sheet); + RegionUtil.setBorderRight(BorderStyle.THIN, cra, sheet); + RegionUtil.setBorderTop(BorderStyle.THIN, cra, sheet); + return; + } + } + + } + + +} \ No newline at end of file diff --git a/yxt_supervise/supervise-portal/supervise-portal-api/src/main/java/com/yxt/supervise/portal/api/gdsalesreport/StoreSalesReportExcelVo.java b/yxt_supervise/supervise-portal/supervise-portal-api/src/main/java/com/yxt/supervise/portal/api/gdsalesreport/StoreSalesReportExcelVo.java index c0cd8538..7a8d268d 100644 --- a/yxt_supervise/supervise-portal/supervise-portal-api/src/main/java/com/yxt/supervise/portal/api/gdsalesreport/StoreSalesReportExcelVo.java +++ b/yxt_supervise/supervise-portal/supervise-portal-api/src/main/java/com/yxt/supervise/portal/api/gdsalesreport/StoreSalesReportExcelVo.java @@ -5,6 +5,8 @@ import com.yxt.common.core.vo.Vo; import io.swagger.annotations.ApiModelProperty; import lombok.Data; +import java.math.BigDecimal; + /** * @author wangpengfei * @date 2023/4/17 9:03 @@ -12,15 +14,16 @@ import lombok.Data; @Data public class StoreSalesReportExcelVo implements Vo { // private String id; + private String serialNumber; @ExcelProperty(value = "渠道") @ApiModelProperty("渠道") private String storeName; @ExcelProperty(value = "销售额") @ApiModelProperty("销售额") - private String salesVolume; + private BigDecimal salesVolume; //@ApiModelProperty("渠道数量") //private String storeNum; - //private String sum; - //private String date; + private String sum; + private String date; } diff --git a/yxt_supervise/supervise-portal/supervise-portal-biz/src/main/java/com/yxt/supervise/portal/biz/gdsalesreport/GdSalesReportMapper.xml b/yxt_supervise/supervise-portal/supervise-portal-biz/src/main/java/com/yxt/supervise/portal/biz/gdsalesreport/GdSalesReportMapper.xml index 96ff722f..bb203035 100644 --- a/yxt_supervise/supervise-portal/supervise-portal-biz/src/main/java/com/yxt/supervise/portal/biz/gdsalesreport/GdSalesReportMapper.xml +++ b/yxt_supervise/supervise-portal/supervise-portal-biz/src/main/java/com/yxt/supervise/portal/biz/gdsalesreport/GdSalesReportMapper.xml @@ -18,7 +18,9 @@