@ApiOperation("导出订单excel")//#
@GetMapping("/export")
public void exportOrderLixst(AdminOrderSearchParamDTO adminOrderSearchParamDTO, HttpServletRequest request,HttpServletResponse response){
adminOrderSearchParamDTO.setStart(0);
adminOrderSearchParamDTO.setPageSize(1000000000);
R<AdminOrderListDTO> result = findAdminOrderList(adminOrderSearchParamDTO);
if(result != null && result.getData() != null && (result.getCode() == 0 || result.getCode() == 200)){
if(result.getData().getTotal()>0){
AdminOrderListDTO adminOrderListDTO = result.getData();
List<AdminOrderDTO> adminOrderDTOList = adminOrderListDTO.getAdminOrderDTOList();
int num = 0;
//1.获取废品的excel模板
TemplateExportParams params = new TemplateExportParams("/doc/01.xls");
//2.获取所有数据
Map<String, Object> map = new HashMap<String, Object>(100);
List<Map<String, Object>> mapList = new ArrayList<>();
for(AdminOrderDTO adminOrderDTO : adminOrderDTOList){
OrderExcelVO orderExcelVO1 = new OrderExcelVO();
orderExcelVO1.setNo(++num);
dozerUtils.map(adminOrderDTO,orderExcelVO1);
orderExcelVO1.setOrderSum(BigDecimal.valueOf(adminOrderDTO.getOrderSum()).divide(new BigDecimal(100)));
orderExcelVO1.setPaySum(BigDecimal.valueOf(adminOrderDTO.getPaySum()).divide(new BigDecimal(100)));
orderExcelVO1.setPostFee(BigDecimal.valueOf(adminOrderDTO.getPostFee()).divide(new BigDecimal(100)));
orderExcelVO1.setBuyNum(adminOrderDTO.getOrderProductDTOList().get(0).getBuyNum());
orderExcelVO1.setSellPrice(BigDecimal.valueOf(adminOrderDTO.getOrderProductDTOList().get(0).getSellPrice()).divide(new BigDecimal(100)));
orderExcelVO1.setSellPriceBuyNum("¥"+orderExcelVO1.getSellPrice() + " * " + orderExcelVO1.getBuyNum());
orderExcelVO1.setSkuId(adminOrderDTO.getOrderProductDTOList().get(0).getSkuId());
orderExcelVO1.setSkuNameStr(adminOrderDTO.getOrderProductDTOList().get(0).getSkuNameStr());
orderExcelVO1.setProductName(adminOrderDTO.getOrderProductDTOList().get(0).getProductName());
//订单状态:1-待付款 2-待发货 3-待收货 4-已完成 5-已取消 6 - 退款/售后
if(adminOrderDTO.getOrderStatus() == 1){
orderExcelVO1.setOrderStatusDesc("待付款");
}else if(adminOrderDTO.getOrderStatus() == 2){
orderExcelVO1.setOrderStatusDesc("待发货");
}else if(adminOrderDTO.getOrderStatus() == 3){
orderExcelVO1.setOrderStatusDesc("待收货");
}else if(adminOrderDTO.getOrderStatus() == 4){
orderExcelVO1.setOrderStatusDesc("已收件");
}else if(adminOrderDTO.getOrderStatus() == 5){
orderExcelVO1.setOrderStatusDesc("已取消");
}else if(adminOrderDTO.getOrderStatus() == 6){
orderExcelVO1.setOrderStatusDesc("退款/售后");
}
//售后状态:-1 无售后 1-有退款 2-有退货
if(adminOrderDTO.getReturnType() == -1){
orderExcelVO1.setReturnTypeDesc("无售后");
}else if(adminOrderDTO.getReturnType() == 1){
orderExcelVO1.setReturnTypeDesc("有退款");
}else if(adminOrderDTO.getReturnType() == 2){
orderExcelVO1.setReturnTypeDesc("有退货");
}
//支付方式 1-微信支付 2-支付宝支付
if("1".equals(adminOrderDTO.getPayChannel())){
orderExcelVO1.setPayChannelDesc("微信支付");
}else if("2".equals(adminOrderDTO.getPayChannel())){
orderExcelVO1.setPayChannelDesc("支付宝支付");
}
orderExcelVO1.setRecProvice(adminOrderDTO.getProvince());
orderExcelVO1.setRecCity(adminOrderDTO.getCity());
orderExcelVO1.setAddress(adminOrderDTO.getProvince()+adminOrderDTO.getCity()+adminOrderDTO.getDistrict()+adminOrderDTO.getAddress());
// if(adminOrderDTO.getConfirmTime() != null && adminOrderDTO.getSendTime() != null){
// Duration duration = Duration.between(adminOrderDTO.getSendTime(),adminOrderDTO.getConfirmTime());
// long days = duration.toDays(); //相差的天数
// if(days < 1){
// orderExcelVO1.setAging("当日达");
// }else if(days >1 && days <2){
// orderExcelVO1.setAging("次日达");
// }else{
// orderExcelVO1.setAging(days + "日达");
// }
// }else{
// orderExcelVO1.setAging(" ");
// }
Map<String, Object> mapOne = new HashMap<>(100);
mapOne.put("orderCode",orderExcelVO1.getOrderCode());
mapOne.put("no",orderExcelVO1.getNo());
mapOne.put("payNum",orderExcelVO1.getPayNum());
mapOne.put("orderStatusDesc",orderExcelVO1.getOrderStatusDesc());
mapOne.put("returnTypeDesc",orderExcelVO1.getReturnTypeDesc());
mapOne.put("payChannelDesc",orderExcelVO1.getPayChannelDesc());
mapOne.put("logisticsCase",orderExcelVO1.getLogisticsCase());
mapOne.put("payTime",orderExcelVO1.getPayTime());
mapOne.put("createTime",orderExcelVO1.getCreateTime());
mapOne.put("notes",orderExcelVO1.getNotes());
mapOne.put("orderSum",orderExcelVO1.getOrderSum());
mapOne.put("paySum",orderExcelVO1.getPaySum());
mapOne.put("postFee",orderExcelVO1.getPostFee());
mapOne.put("productName",orderExcelVO1.getProductName());
mapOne.put("skuNameStr",orderExcelVO1.getSkuNameStr());
mapOne.put("skuId",orderExcelVO1.getSkuId());
mapOne.put("sellPriceBuyNum",orderExcelVO1.getSellPriceBuyNum());
mapOne.put("memberAccount",orderExcelVO1.getMemberAccount());
mapOne.put("recName",orderExcelVO1.getRecName());
mapOne.put("address",orderExcelVO1.getAddress());
mapOne.put("recMobile",orderExcelVO1.getRecMobile());
mapOne.put("logisticsName",orderExcelVO1.getLogisticsName());
mapOne.put("logisticsNum",orderExcelVO1.getLogisticsNum());
mapOne.put("aging",null);
mapOne.put("recProvice",orderExcelVO1.getRecProvice());
mapOne.put("recCity",orderExcelVO1.getRecCity());
mapOne.put("buyNum",orderExcelVO1.getBuyNum());
mapList.add(mapOne);
}
map.put("mapList",mapList);
//3.执行excel导出
Workbook workbook = ExcelExportUtil.exportExcel(params, map);
// 4.创建文件存储路径
// String dateStr = DateUtil.format(new Date(),"yyyyMMdd");
// String dateStr = System.currentTimeMillis()+"";
// File saveFile = new File("D:/excel/"+dateStr+"/");
// File saveFile = new File("D:/excel/"+dateStr+"/");
// if (!saveFile.exists()) {
// saveFile.mkdirs();
// log.info("=====================================D盘目录创建成功"+saveFile);
// }
// FileOutputStream fos;
// String filePath;
//将文件存到指定位置
try {
this.setResponseHeader(response, "订单");
OutputStream os = response.getOutputStream();
workbook.write(os);
os.flush();
os.close();
// return R.success("数据导出成功!");
} catch (Exception e) {
e.printStackTrace();
// return R.fail("数据导出失败!" + e.getMessage());
}
// try {
// //4.写入文件
// filePath = saveFile + "/订单.xls";
// fos = new FileOutputStream(filePath);
// workbook.write(fos);
// log.info("=====================================写成功");
// fos.close();
// return R.success("数据导出成功!");
// } catch (FileNotFoundException e) {
// log.error("FileNotFoundException={}", e.getMessage());
// return R.fail("数据导出失败!" + e.getMessage());
// } catch (IOException e) {
// log.error("IOException={}", e.getMessage());
// return R.fail("数据导出失败!" + e.getMessage());
// }
}else{
// return R.success("当前没有数据供导出!");
}
}else{
// return R.fail("导出数据失败!");
}
}
//发送响应流方法
private void setResponseHeader(HttpServletResponse response, String fileName) {
try {
try {
fileName = new String(fileName.getBytes(),"ISO8859-1");
} catch (UnsupportedEncodingException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
response.setContentType("application/octet-stream;charset=ISO8859-1");
response.setHeader("Content-Disposition", "attachment;filename="+ fileName +".xls"); //要保存的文件名
response.addHeader("Pargam", "no-cache");
response.addHeader("Cache-Control", "no-cache");
} catch (Exception ex) {
ex.printStackTrace();
}
}
通过excel模板+流的形式导出excel
最新推荐文章于 2024-07-12 10:40:33 发布