Commit 2c89f95f by kangxiaoshan

导出格式换为EXCLE

parent a70c8888
......@@ -7,6 +7,9 @@ import dic.AuthMenuEnmm;
import dic.ContractStatusEnum;
import dic.OperateObjectTypeEnum;
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.slf4j.Logger;
import org.slf4j.LoggerFactory;
......@@ -28,6 +31,7 @@ import java.io.*;
import java.math.BigDecimal;
import java.net.URLEncoder;
import java.text.DecimalFormat;
import java.util.Arrays;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
......@@ -97,9 +101,7 @@ public class ContractController {
public void export(@CurrentAccount User loginAccount, @PathVariable String platform, @RequestParam String startDate
, @RequestParam String endDate, HttpServletRequest request, HttpServletResponse response) {
List<Contract> contractList = service.findAll(loginAccount, startDate, endDate, platform, null);
// byte[] content = new byte[0];
StringBuilder sb = new StringBuilder();
/*StringBuilder sb = new StringBuilder();
//录入时间 合同编号 客户账号 我方签约主体 签约方 行业分类 销售 开始日期 结束日期 套餐类型 合同金额 签约类型 合同状态 回款状态 关联合同
sb.append("录入时间,合同编号,客户账号,我方签约主体,签约方,行业分类,销售,开始日期,结束日期,套餐类型,合同金额,签约类型,合同状态,回款状态,关联合同\r\n");
if (ValidateUtil.isValid(contractList)) {
......@@ -122,22 +124,50 @@ public class ContractController {
.append("\r\n");
}
}
String fileName = "合同管理_" + new DateTime(startDate).toString("yyyyMMdd") + "_" + new DateTime(endDate).toString("yyyyMMdd")
+ ".csv";
this.exportWrite(fileName, sb.toString(), "合同管理", response);
// InputStream in = new ByteArrayInputStream(sb.toString().getBytes());
// try {
// content = IOUtils.toByteArray(in);
// } catch (IOException e) {
// e.printStackTrace();
// }
// HttpHeaders headers = new HttpHeaders();
// response.setHeader("filename", "contract.csv");
// response.setHeader("content-disposition", "attachment; filename=contract.csv");
// response.setHeader("Content-Type", "text/csv");
// response.setContentType("APPLICATION/OCTET-STREAM");
this.exportWrite(fileName, sb.toString(), "合同管理", response);*/
//创建工作薄对象
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 < 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);
userlog.start();
......@@ -453,13 +483,51 @@ public class ContractController {
String bodyCode, String serchName, HttpServletResponse response, HttpServletRequest request) {
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");
StringBuilder sb = new StringBuilder();
//StringBuilder sb = new StringBuilder();
/*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) {
sb.append(c.getMyBodyName()).append(",")
.append(c.getCustomerBody()).append(",")
......@@ -478,10 +546,36 @@ public class ContractController {
}
String fileName = "分摊收入报表_" + new DateTime(startDate).toString("yyyyMMdd")
+ "_" + 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) {
OutputStream os = null;
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