Commit 2c89f95f by kangxiaoshan

导出格式换为EXCLE

parent a70c8888
...@@ -7,6 +7,9 @@ import dic.AuthMenuEnmm; ...@@ -7,6 +7,9 @@ import dic.AuthMenuEnmm;
import dic.ContractStatusEnum; import dic.ContractStatusEnum;
import dic.OperateObjectTypeEnum; import dic.OperateObjectTypeEnum;
import org.apache.commons.io.IOUtils; import org.apache.commons.io.IOUtils;
import org.apache.poi.hssf.usermodel.HSSFRow;
import org.apache.poi.hssf.usermodel.HSSFSheet;
import org.apache.poi.hssf.usermodel.HSSFWorkbook;
import org.joda.time.DateTime; import org.joda.time.DateTime;
import org.slf4j.Logger; import org.slf4j.Logger;
import org.slf4j.LoggerFactory; import org.slf4j.LoggerFactory;
...@@ -28,6 +31,7 @@ import java.io.*; ...@@ -28,6 +31,7 @@ import java.io.*;
import java.math.BigDecimal; import java.math.BigDecimal;
import java.net.URLEncoder; import java.net.URLEncoder;
import java.text.DecimalFormat; import java.text.DecimalFormat;
import java.util.Arrays;
import java.util.HashMap; import java.util.HashMap;
import java.util.List; import java.util.List;
import java.util.Map; import java.util.Map;
...@@ -97,9 +101,7 @@ public class ContractController { ...@@ -97,9 +101,7 @@ public class ContractController {
public void export(@CurrentAccount User loginAccount, @PathVariable String platform, @RequestParam String startDate public void export(@CurrentAccount User loginAccount, @PathVariable String platform, @RequestParam String startDate
, @RequestParam String endDate, HttpServletRequest request, HttpServletResponse response) { , @RequestParam String endDate, HttpServletRequest request, HttpServletResponse response) {
List<Contract> contractList = service.findAll(loginAccount, startDate, endDate, platform, null); List<Contract> contractList = service.findAll(loginAccount, startDate, endDate, platform, null);
/*StringBuilder sb = new StringBuilder();
// byte[] content = new byte[0];
StringBuilder sb = new StringBuilder();
//录入时间 合同编号 客户账号 我方签约主体 签约方 行业分类 销售 开始日期 结束日期 套餐类型 合同金额 签约类型 合同状态 回款状态 关联合同 //录入时间 合同编号 客户账号 我方签约主体 签约方 行业分类 销售 开始日期 结束日期 套餐类型 合同金额 签约类型 合同状态 回款状态 关联合同
sb.append("录入时间,合同编号,客户账号,我方签约主体,签约方,行业分类,销售,开始日期,结束日期,套餐类型,合同金额,签约类型,合同状态,回款状态,关联合同\r\n"); sb.append("录入时间,合同编号,客户账号,我方签约主体,签约方,行业分类,销售,开始日期,结束日期,套餐类型,合同金额,签约类型,合同状态,回款状态,关联合同\r\n");
if (ValidateUtil.isValid(contractList)) { if (ValidateUtil.isValid(contractList)) {
...@@ -122,22 +124,50 @@ public class ContractController { ...@@ -122,22 +124,50 @@ public class ContractController {
.append("\r\n"); .append("\r\n");
} }
} }
String fileName = "合同管理_" + new DateTime(startDate).toString("yyyyMMdd") + "_" + new DateTime(endDate).toString("yyyyMMdd") String fileName = "合同管理_" + new DateTime(startDate).toString("yyyyMMdd") + "_" + new DateTime(endDate).toString("yyyyMMdd")
+ ".csv"; + ".csv";
this.exportWrite(fileName, sb.toString(), "合同管理", response); this.exportWrite(fileName, sb.toString(), "合同管理", response);*/
// InputStream in = new ByteArrayInputStream(sb.toString().getBytes()); //创建工作薄对象
// try { HSSFWorkbook workbook = new HSSFWorkbook();//这里也可以设置sheet的Name
// content = IOUtils.toByteArray(in); //创建工作表对象
// } catch (IOException e) { HSSFSheet sheet = workbook.createSheet();
// e.printStackTrace(); //创建工作表的行
// } HSSFRow row = sheet.createRow(0);
// HttpHeaders headers = new HttpHeaders();
// response.setHeader("filename", "contract.csv"); List<String> title = Arrays.asList("录入时间,合同编号,客户账号,我方签约主体,签约方,行业分类,销售,开始日期,结束日期,套餐类型,合同金额,签约类型,合同状态,回款状态,关联合同"
// response.setHeader("content-disposition", "attachment; filename=contract.csv"); .split(","));
// response.setHeader("Content-Type", "text/csv");
// response.setContentType("APPLICATION/OCTET-STREAM"); int lineSize = title.size();
for (int i = 0; i < lineSize; i++) {
row.createCell(i).setCellValue(title.get(i));
}
for (int i = 0; i < contractList.size(); i++) {
Contract contract = contractList.get(i);
HSSFRow rowBody = sheet.createRow(i + 1);
rowBody.createCell(0).setCellValue(new DateTime(contract.getCreateTime()).toString("yyyy-MM-dd"));
rowBody.createCell(1).setCellValue(contract.getContractCode());
rowBody.createCell(2).setCellValue(contract.getEmail() == null ? "无" : contract.getEmail());
rowBody.createCell(3).setCellValue(contract.getMyBodyName());
rowBody.createCell(4).setCellValue(contract.getCustomerBody());
rowBody.createCell(5).setCellValue(contract.getTradeName());
rowBody.createCell(6).setCellValue(contract.getSaleName());
rowBody.createCell(7).setCellValue(contract.getStartDate());
rowBody.createCell(8).setCellValue(contract.getEndDate());
rowBody.createCell(9).setCellValue(contract.getPriceLevel());
rowBody.createCell(10).setCellValue(contract.getMoney());
rowBody.createCell(11).setCellValue(CONTRACT_STATUS.get(contract.getContractType()));
rowBody.createCell(12).setCellValue(CONTRACT_STATUS.get(contract.getStatus()));
rowBody.createCell(13).setCellValue(CONTRACT_STATUS.get(contract.getBackStatus() + "_back"));
rowBody.createCell(14).setCellValue(contract.getRelationCode() == null ? "" : contract.getRelationCode());
}
String fileName = "合同管理_" + new DateTime(startDate).toString("yyyyMMdd")
+ "_" + new DateTime(endDate).toString("yyyyMMdd") + ".xls";
this.exportWrite(fileName, workbook, "合同管理_", response);
NewUserLogThread userlog = new NewUserLogThread(loginAccount.getEmail(), loginAccount.getName(), OperateObjectTypeEnum.CUSTOMER.getKey(), platform, "导出合同", startDate, endDate, request, platform); NewUserLogThread userlog = new NewUserLogThread(loginAccount.getEmail(), loginAccount.getName(), OperateObjectTypeEnum.CUSTOMER.getKey(), platform, "导出合同", startDate, endDate, request, platform);
userlog.start(); userlog.start();
...@@ -453,13 +483,51 @@ public class ContractController { ...@@ -453,13 +483,51 @@ public class ContractController {
String bodyCode, String serchName, HttpServletResponse response, HttpServletRequest request) { String bodyCode, String serchName, HttpServletResponse response, HttpServletRequest request) {
List<Contract> contracts = shareIncomeService.shareIncomeList(loginAccount, startDate, endDate, platform, bodyCode, serchName); List<Contract> contracts = shareIncomeService.shareIncomeList(loginAccount, startDate, endDate, platform, bodyCode, serchName);
byte[] content = new byte[0]; //byte[] content = new byte[0];
DecimalFormat df = new DecimalFormat("##,##0.00"); DecimalFormat df = new DecimalFormat("##,##0.00");
StringBuilder sb = new StringBuilder(); //StringBuilder sb = new StringBuilder();
/*sb.append("我方签约主体,签约方,合同编号,合同金额,不含税收入,合同开始时间,合同截止时间,区间使用天数,区间分摊收入,调整额,分摊总收入\r\n");*/ /*sb.append("我方签约主体,签约方,合同编号,合同金额,不含税收入,合同开始时间,合同截止时间,区间使用天数,区间分摊收入,调整额,分摊总收入\r\n");*/
sb.append("我方签约主体,签约方,合同编号,合同状态,合同金额,不含税收入,合同开始日期,合同截止日期,区间使用天数,区间分摊收入,调整额,分摊总收入\r\n"); //sb.append("我方签约主体,签约方,合同编号,合同状态,合同金额,不含税收入,合同开始日期,合同截止日期,区间使用天数,区间分摊收入,调整额,分摊总收入\r\n");
//创建工作薄对象
HSSFWorkbook workbook = new HSSFWorkbook();//这里也可以设置sheet的Name
//创建工作表对象
HSSFSheet sheet = workbook.createSheet();
//创建工作表的行
HSSFRow row = sheet.createRow(0);
List<String> title = Arrays.asList("我方签约主体,签约方,合同编号,合同状态,合同金额,不含税收入,合同开始日期,合同截止日期,区间使用天数,区间分摊收入,调整额,分摊总收入"
.split(","));
int lineSize = title.size();
for (int i = 0; i < lineSize; i++) {
row.createCell(i).setCellValue(title.get(i));
}
for (int i = 0; i < contracts.size(); i++) {
Contract contract = contracts.get(i);
HSSFRow rowBody = sheet.createRow(i + 1);
rowBody.createCell(0).setCellValue(contract.getMyBodyName());
rowBody.createCell(1).setCellValue(contract.getCustomerBody());
rowBody.createCell(2).setCellValue(contract.getContractCode());
rowBody.createCell(3).setCellValue(CONTRACT_STATUS.get(contract.getStatus()));
rowBody.createCell(4).setCellValue(df.format(contract.getMoney()));
rowBody.createCell(5).setCellValue(df.format(contract.getIncomeExcludingTax() * 1.0 / 100));
rowBody.createCell(6).setCellValue(contract.getStartDate());
rowBody.createCell(7).setCellValue(contract.getEndDate());
rowBody.createCell(8).setCellValue(contract.getIntervalUseDays());
rowBody.createCell(9).setCellValue(df.format(contract.getIntervaIncomeShare() * 1.0 / 100));
rowBody.createCell(10).setCellValue(df.format(contract.getAdjustmentFund() * 1.0 / 100));
rowBody.createCell(11).setCellValue(df.format(contract.getIncomeShareAll() * 1.0 / 100));
}
String fileName = "分摊收入报表_" + new DateTime(startDate).toString("yyyyMMdd")
+ "_" + new DateTime(endDate).toString("yyyyMMdd") + ".xls";
this.exportWrite(fileName, workbook, "分摊收入报表", response);
if (ValidateUtil.isValid(contracts)) { /*if (ValidateUtil.isValid(contracts)) {
for (Contract c : contracts) { for (Contract c : contracts) {
sb.append(c.getMyBodyName()).append(",") sb.append(c.getMyBodyName()).append(",")
.append(c.getCustomerBody()).append(",") .append(c.getCustomerBody()).append(",")
...@@ -478,10 +546,36 @@ public class ContractController { ...@@ -478,10 +546,36 @@ public class ContractController {
} }
String fileName = "分摊收入报表_" + new DateTime(startDate).toString("yyyyMMdd") String fileName = "分摊收入报表_" + new DateTime(startDate).toString("yyyyMMdd")
+ "_" + new DateTime(endDate).toString("yyyyMMdd") + ".csv"; + "_" + new DateTime(endDate).toString("yyyyMMdd") + ".csv";
this.exportWrite(fileName, sb.toString(), "分摊收入报表", response); this.exportWrite(fileName, sb.toString(), "分摊收入报表", response);*/
} }
private void exportWrite(String fileName, HSSFWorkbook workbook, String exportName, HttpServletResponse response) {
OutputStream os = null;
try {
fileName = URLEncoder.encode(fileName, "UTF-8");
response.setHeader("filename", fileName);
response.setHeader("content-disposition", "attachment; filename=" + fileName);
response.setHeader("Content-Type", "text/xls");
response.setContentType("APPLICATION/OCTET-STREAM");
response.setCharacterEncoding("UTF-8");
os = response.getOutputStream();
workbook.write(os);
os.flush();
} catch (Exception e) {
logger.error(exportName + "报错", e);
} finally {
if (os != null) {
try {
os.close();
} catch (IOException e) {
logger.error(exportName + "导出,关闭流报错", e);
}
}
}
}
private void exportWrite(String fileName, String text, String exportName, HttpServletResponse response) { private void exportWrite(String fileName, String text, String exportName, HttpServletResponse response) {
OutputStream os = null; OutputStream os = null;
try { try {
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment