|
@@ -2,6 +2,7 @@ package com.ruoyi.warehouseBusiness.service.impl;
|
|
|
|
|
|
|
|
|
import com.ruoyi.basicData.mapper.TFeesMapper;
|
|
|
+import com.ruoyi.common.config.RuoYiConfig;
|
|
|
import com.ruoyi.common.core.domain.AjaxResult;
|
|
|
import com.ruoyi.common.utils.DateUtils;
|
|
|
import com.ruoyi.common.utils.StringUtils;
|
|
@@ -20,6 +21,7 @@ import org.apache.poi.ss.usermodel.VerticalAlignment;
|
|
|
import org.springframework.beans.factory.annotation.Autowired;
|
|
|
import org.springframework.stereotype.Service;
|
|
|
|
|
|
+import java.io.*;
|
|
|
import java.math.BigDecimal;
|
|
|
import java.util.ArrayList;
|
|
|
import java.util.Collections;
|
|
@@ -109,7 +111,8 @@ public class TWarehousebillsfeesServiceImpl implements ITWarehousebillsfeesServi
|
|
|
}
|
|
|
|
|
|
/**
|
|
|
- * 查询报表
|
|
|
+ * 查询报表
|
|
|
+ *
|
|
|
* @param tWarehousebillsfees
|
|
|
* @return
|
|
|
*/
|
|
@@ -117,9 +120,9 @@ public class TWarehousebillsfeesServiceImpl implements ITWarehousebillsfeesServi
|
|
|
public List<FleetExcel> selectFleetExcelList(TWarehousebillsfees tWarehousebillsfees) {
|
|
|
List<FleetExcel> fleetExcelList = new ArrayList<>();
|
|
|
// 开始月份
|
|
|
- int startMonth = 1;
|
|
|
+ int startMonth = 1;
|
|
|
// 结束月份
|
|
|
- int endMonth = 1;
|
|
|
+ int endMonth = 1;
|
|
|
if (StringUtils.isNotEmpty(tWarehousebillsfees.getfYears())) {
|
|
|
// 年份
|
|
|
List<String> month = tWarehousebillsfees.getfMonth();
|
|
@@ -151,7 +154,8 @@ public class TWarehousebillsfeesServiceImpl implements ITWarehousebillsfeesServi
|
|
|
}
|
|
|
|
|
|
/**
|
|
|
- * 查询报表合计
|
|
|
+ * 查询报表合计
|
|
|
+ *
|
|
|
* @param fleetExcelsList
|
|
|
* @return
|
|
|
*/
|
|
@@ -212,22 +216,22 @@ public class TWarehousebillsfeesServiceImpl implements ITWarehousebillsfeesServi
|
|
|
HSSFCellStyle cellStyle = getCellStyle(wb);
|
|
|
// 创建标题,合并标题单元格
|
|
|
// 行号
|
|
|
- int ruwNum = 0;
|
|
|
+ int rowNum = 0;
|
|
|
// 第一行
|
|
|
- HSSFRow first = sheet.createRow(ruwNum++);
|
|
|
- String[] left = {"序号","业务类型","作业类型","提单号","货名","客户","件数","重量","体积","入库时间","计算天数","货物堆存费"};
|
|
|
+ HSSFRow first = sheet.createRow(rowNum++);
|
|
|
+ String[] left = {"序号", "业务类型", "作业类型", "提单号", "货名", "客户", "件数", "重量", "体积", "入库时间", "计算天数", "货物堆存费"};
|
|
|
List<String> middle = tFeesMapper.selectTFeesNameList();
|
|
|
- String[] right = {"金额","计划员","计费时间","结费时间","仓库","备注"};
|
|
|
+ String[] right = {"金额", "计划员", "计费时间", "结费时间", "仓库", "备注"};
|
|
|
|
|
|
List<String> all = new ArrayList<>();
|
|
|
- Collections.addAll(all,left);
|
|
|
+ Collections.addAll(all, left);
|
|
|
all.addAll(middle);
|
|
|
- Collections.addAll(all,right);
|
|
|
+ Collections.addAll(all, right);
|
|
|
|
|
|
int size = all.size();
|
|
|
- for (int i = 0;i < size;i++){
|
|
|
+ for (int i = 0; i < size; i++) {
|
|
|
HSSFCell tempCell = first.createCell(i);
|
|
|
- if (i>11 && i<size-6){
|
|
|
+ if (i > 11 && i < size - 6) {
|
|
|
tempCell.setCellValue(all.get(i) + "单价");
|
|
|
} else {
|
|
|
tempCell.setCellValue(all.get(i));
|
|
@@ -241,14 +245,103 @@ public class TWarehousebillsfeesServiceImpl implements ITWarehousebillsfeesServi
|
|
|
return AjaxResult.error("无数据,导出Excel失败");
|
|
|
}
|
|
|
|
|
|
- for (BillDetailsSubItem billDetailsSubItem1 : list) {
|
|
|
+ int index = 1;
|
|
|
+ for (BillDetailsSubItem bd : list) {
|
|
|
+ HSSFRow tempRow = sheet.createRow(rowNum++);
|
|
|
+ // 循环单元格填入数据
|
|
|
+ for (int i = 0; i < size; i++) {
|
|
|
+ HSSFCell temCell = tempRow.createCell(i);
|
|
|
+ String cellValue = "";
|
|
|
+ if (i == 0) {
|
|
|
+ cellValue = StringUtils.objToStr(index++);
|
|
|
+ } else if (i == 1) {
|
|
|
+ // 业务类型
|
|
|
+ cellValue = StringUtils.objToStr(bd.getfBusinesstype());
|
|
|
+ } else if (i == 2) {
|
|
|
+ // 作业类型
|
|
|
+ cellValue = StringUtils.objToStr(bd.getTwlfBusinesstype());
|
|
|
+ } else if (i == 3) {
|
|
|
+ // 提单号
|
|
|
+ cellValue = StringUtils.objToStr(bd.getfStatementno());
|
|
|
+ } else if (i == 4) {
|
|
|
+ // 货名
|
|
|
+ cellValue = StringUtils.objToStr(bd.getTgfName());
|
|
|
+ } else if (i == 5) {
|
|
|
+ // 客户
|
|
|
+ cellValue = StringUtils.objToStr(bd.getTcfName());
|
|
|
+ } else if (i == 6) {
|
|
|
+ // 件数
|
|
|
+ cellValue = StringUtils.objToStr(bd.getfQty());
|
|
|
+ } else if (i == 7) {
|
|
|
+ // 重量
|
|
|
+ cellValue = StringUtils.objToStr(bd.getfNetweight());
|
|
|
+ } else if (i == 8) {
|
|
|
+ // 体积
|
|
|
+ cellValue = StringUtils.objToStr(bd.getfVolumn());
|
|
|
+ } else if (i == 9) {
|
|
|
+ // 入库时间
|
|
|
+ cellValue = StringUtils.objToStr(bd.getfOriginalbilldate());
|
|
|
+ } else if (i == 10) {
|
|
|
+ // 出库时间
|
|
|
+ cellValue = StringUtils.objToStr(bd.getfBsdate());
|
|
|
+ } else if (i == 11) {
|
|
|
+ // 计费天数
|
|
|
+ cellValue = StringUtils.objToStr(bd.getfBillingdays());
|
|
|
+ } else if (i == size - 6) {
|
|
|
+ // 金额
|
|
|
+ cellValue = StringUtils.objToStr(bd.getfAmount());
|
|
|
+ } else if (i == size - 5) {
|
|
|
+ // 计划员
|
|
|
+ cellValue = StringUtils.objToStr(bd.getCreateBy());
|
|
|
+ } else if (i == size - 4) {
|
|
|
+ // 计费时间
|
|
|
+ cellValue = StringUtils.objToStr(bd.getfChargedate());
|
|
|
+ } else if (i == size - 3) {
|
|
|
+ // 结费时间
|
|
|
+ cellValue = StringUtils.objToStr(bd.getfStlamountdate());
|
|
|
+ } else if (i == size - 2) {
|
|
|
+ // 仓库
|
|
|
+ cellValue = StringUtils.objToStr(bd.getfWarehouseId());
|
|
|
+ } else if (i == size - 1) {
|
|
|
+ // 备注
|
|
|
+ cellValue = StringUtils.objToStr(bd.getRemark());
|
|
|
+ }
|
|
|
+ temCell.setCellValue(cellValue);
|
|
|
+ temCell.setCellStyle(cellStyle);
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ for (int i = 0; i < size; i++) {
|
|
|
+ sheet.autoSizeColumn(i);
|
|
|
+ sheet.setColumnWidth(i,sheet.getColumnWidth(i)*17/10);
|
|
|
+ }
|
|
|
+
|
|
|
+ // 导出 excel
|
|
|
+ String fileName = "账单明细导出分项.xls";
|
|
|
+ // 创建导出流
|
|
|
+ try {
|
|
|
+ OutputStream out = new FileOutputStream(getAbsoluteFile(fileName));
|
|
|
+ wb.write(out);
|
|
|
+ wb.close();
|
|
|
+ out.close();
|
|
|
+ return AjaxResult.success(fileName);
|
|
|
+ } catch (Exception e) {
|
|
|
+ e.printStackTrace();
|
|
|
+ return AjaxResult.error("导出Excel失败");
|
|
|
+ }
|
|
|
+ }
|
|
|
|
|
|
+ private String getAbsoluteFile(String fileName) {
|
|
|
+ String downloadPath = RuoYiConfig.getDownloadPath() + fileName;
|
|
|
+ File desc = new File(downloadPath);
|
|
|
+ if (!desc.getParentFile().exists()) {
|
|
|
+ desc.getParentFile().mkdirs();
|
|
|
}
|
|
|
- return null;
|
|
|
+ return downloadPath;
|
|
|
}
|
|
|
|
|
|
// 获取 excel 表格的 cell 相关样式
|
|
|
- public HSSFCellStyle getCellStyle(HSSFWorkbook wb){
|
|
|
+ public HSSFCellStyle getCellStyle(HSSFWorkbook wb) {
|
|
|
HSSFCellStyle cellStyle = wb.createCellStyle();
|
|
|
// 水平居中
|
|
|
cellStyle.setAlignment(HorizontalAlignment.CENTER);
|