Commit f227aa56 by 黄森林

订单导出功能修改

parent 7a45e079
...@@ -26,6 +26,13 @@ public class ExportExcel { ...@@ -26,6 +26,13 @@ public class ExportExcel {
*/ */
private int createUser; private int createUser;
private String createName;
/**
* 文件名
*/
private String fileName;
/** /**
* 创建时间 * 创建时间
*/ */
......
...@@ -12,7 +12,8 @@ import java.util.Map; ...@@ -12,7 +12,8 @@ import java.util.Map;
public enum FilePath { public enum FilePath {
// //
BACKGROUNDIMG("套餐背景图片基础路径","enclosure"), BACKGROUNDIMG("套餐背景图片基础路径","enclosure"),
PATH("一人一码基础路径","enclosure/images/"); PATH("一人一码基础路径","enclosure/images/"),
IMPORTPATH("导出下载路径","enclosure/export/");
FilePath(String id, String value) { FilePath(String id, String value) {
this.id = id; this.id = id;
this.value = value; this.value = value;
......
package com.winsun.mapper;
import com.baomidou.mybatisplus.mapper.BaseMapper;
import com.baomidou.mybatisplus.mapper.Wrapper;
import com.winsun.bean.ExportExcel;
import com.winsun.bean.PackageUpgrade;
import org.apache.ibatis.annotations.Insert;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;
import org.apache.ibatis.annotations.Select;
import org.springframework.stereotype.Component;
import java.util.Date;
import java.util.List;
import java.util.Map;
/**
* @Author: chancy
* @Date:
*/
@Mapper
@Component
public interface ExportExcelMapper extends BaseMapper<ExportExcel> {
}
package com.winsun.rabbitmq;
import org.springframework.amqp.core.Queue;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
/**
* @author fulonghuang
* @date 2019/7/16
*/
@Configuration
public class RabbitConfig {
/**
* 定义队列名
*/
private final static String TASKIMPORT = "taskImport";
@Bean
public Queue task() {
return new Queue(TASKIMPORT);
}
}
package com.winsun.rabbitmq;
import org.springframework.amqp.core.AmqpTemplate;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Component;
import java.util.Map;
/**
* @author fulonghuang
* @date 2019/7/16
*/
@Component
public class RabbitProducer {
@Autowired
private AmqpTemplate rabbitTemplate;
public void taskImport(Map<String,Object> type) {
this.rabbitTemplate.convertAndSend("taskImport", type);
}
}
...@@ -166,7 +166,7 @@ public class PackageNewClothes { ...@@ -166,7 +166,7 @@ public class PackageNewClothes {
Wrapper<Order> wrapper = new EntityWrapper(); Wrapper<Order> wrapper = new EntityWrapper();
wrapper.eq("id_card",idCard); wrapper.eq("id_card",idCard);
wrapper.gt("create_time", time); wrapper.gt("create_time", time);
wrapper.ne("order_status", OrderStatus.ACCEPTEXCEPTCION.getName()); wrapper.ne("order_status", OrderStatus.ACCEPTEXCEPTCION.getName()).and().ne("order_status", OrderStatus.SUCCESSFULDISTRIBUTION.getName());
wrapper.eq("user_type", UserType.NEWCUSTOMER.getId()); wrapper.eq("user_type", UserType.NEWCUSTOMER.getId());
List<Order> orders = orderMapper.selectList(wrapper); List<Order> orders = orderMapper.selectList(wrapper);
if (orders.size() != 0) { if (orders.size() != 0) {
...@@ -267,7 +267,7 @@ public class PackageNewClothes { ...@@ -267,7 +267,7 @@ public class PackageNewClothes {
Wrapper<Order> wrapper = new EntityWrapper(); Wrapper<Order> wrapper = new EntityWrapper();
wrapper.eq("id_card",idCard); wrapper.eq("id_card",idCard);
wrapper.gt("create_time", time); wrapper.gt("create_time", time);
wrapper.ne("order_status", OrderStatus.ACCEPTEXCEPTCION.getName()); wrapper.ne("order_status", OrderStatus.ACCEPTEXCEPTCION.getName()).and().ne("order_status", OrderStatus.SUCCESSFULDISTRIBUTION.getName());
wrapper.eq("user_type", UserType.NEWCUSTOMER.getId()); wrapper.eq("user_type", UserType.NEWCUSTOMER.getId());
List<Order> orders = orderMapper.selectList(wrapper); List<Order> orders = orderMapper.selectList(wrapper);
if (orders.size() != 0) { if (orders.size() != 0) {
...@@ -385,7 +385,7 @@ public class PackageNewClothes { ...@@ -385,7 +385,7 @@ public class PackageNewClothes {
Wrapper<Order> wrapper = new EntityWrapper(); Wrapper<Order> wrapper = new EntityWrapper();
wrapper.eq("id_card",idCard); wrapper.eq("id_card",idCard);
wrapper.gt("create_time", time); wrapper.gt("create_time", time);
wrapper.ne("order_status", OrderStatus.ACCEPTEXCEPTCION.getName()); wrapper.ne("order_status", OrderStatus.ACCEPTEXCEPTCION.getName()).and().ne("order_status", OrderStatus.SUCCESSFULDISTRIBUTION.getName());
wrapper.eq("user_type", UserType.NEWCUSTOMER.getId()); wrapper.eq("user_type", UserType.NEWCUSTOMER.getId());
List<Order> orders = orderMapper.selectList(wrapper); List<Order> orders = orderMapper.selectList(wrapper);
if (orders.size() != 0) { if (orders.size() != 0) {
......
package com.winsun.controller;
import com.alibaba.fastjson.JSON;
import com.baomidou.mybatisplus.enums.SqlLike;
import com.baomidou.mybatisplus.mapper.EntityWrapper;
import com.baomidou.mybatisplus.mapper.Wrapper;
import com.baomidou.mybatisplus.plugins.Page;
import com.winsun.auth.core.annotion.Permission;
import com.winsun.auth.core.base.controller.BaseController;
import com.winsun.auth.core.common.model.ResponseData;
import com.winsun.auth.core.shiro.ShiroUser;
import com.winsun.bean.ExportExcel;
import com.winsun.bean.YsmUser;
import com.winsun.mapper.ExportExcelMapper;
import com.winsun.mapper.YsmUserMapper;
import com.winsun.utils.MyBatisPlusUpdateUtils;
import lombok.extern.slf4j.Slf4j;
import org.apache.commons.lang3.StringUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;
import javax.servlet.ServletOutputStream;
import javax.servlet.http.HttpServletResponse;
import java.io.DataInputStream;
import java.io.File;
import java.io.FileInputStream;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
/**
* 智能平台账号实名管理
* @Author: chancy
* @Date:
*/
@Slf4j
@RestController
@RequestMapping("/exportExcel")
public class ExportExcelController extends BaseController {
private static ExportExcelMapper exportExcelMapper;
@Autowired
public ExportExcelController(ExportExcelMapper exportExcelMapper) {
ExportExcelController.exportExcelMapper = exportExcelMapper;
}
@Permission(menuname = "订单excel文件下载", value = "uploadExcel", method = RequestMethod.POST)
public void uploadExcel(String exportId) {
ServletOutputStream os = null;
try {
HttpServletResponse response = getHttpServletResponse();
response.reset();
response.setCharacterEncoding("UTF-8");
response.setContentType("application/octet-stream");
os = response.getOutputStream();
ExportExcel exportExcel = exportExcelMapper.selectById(exportId);
//输入流:本地文件路径
DataInputStream in = new DataInputStream(new FileInputStream(new File(exportExcel.getExportUrl())));
//输出文件
int bytes = 0;
byte[] bufferOut = new byte[1024];
while ((bytes = in.read(bufferOut)) != -1) {
os.write(bufferOut, 0, bytes);
}
in.close();
os.flush();
} catch (Exception e) {
log.error("下载excel文件异常", e.getMessage());
}
}
@Permission(menuname = "查询下载列表", value = "listExportExcel", method = RequestMethod.POST)
public ResponseData<Page<ExportExcel>> listExportExcel(@RequestParam(value = "fileName",required = false) String fileName,@RequestParam(name = "pageNo") int pageIndex, @RequestParam(name = "pageSize") int pageSize) {
ShiroUser user = getShiroUser();
Wrapper<ExportExcel> wrapper = new EntityWrapper();
if (!user.getRoleNames().stream().anyMatch(roleName -> StringUtils.equalsAny(roleName, "超级管理员"))) {
wrapper.like("create_user",user.getId().toString() , SqlLike.DEFAULT);
}
wrapper.like(StringUtils.isNotBlank(fileName), "file_name", fileName, SqlLike.DEFAULT);
Page<ExportExcel> page = new Page<>(pageIndex, pageSize);
List<ExportExcel> exportExcels = exportExcelMapper.selectPage(page, wrapper);
page.setRecords(exportExcels);
return ResponseData.success(page, "查询成功!");
}
@Permission(menuname = "删除文件", value = "deleteExcel", method = RequestMethod.POST)
public ResponseData<String> deleteExcel(String exportId) {
ExportExcel exportExcel = exportExcelMapper.selectById(exportId);
File file = new File(exportExcel.getExportUrl());
Boolean flag = false;
//判断文件是否存在
if (file.exists() == true){
flag = file.delete();
if (flag){
exportExcelMapper.deleteById(Integer.parseInt(exportId));
log.info("成功删除"+file.getName());
return ResponseData.success("成功删除"+file.getName()+"!");
}else {
log.error("删除失败"+file.getName());
return ResponseData.error("删除失败!");
}
}else {
log.info(file.getName()+"不存在,终止操作");
}
return ResponseData.error("删除失败!");
}
}
...@@ -63,7 +63,7 @@ public class OrderTask { ...@@ -63,7 +63,7 @@ public class OrderTask {
orderMapper.updateForSet(MyBatisPlusUpdateUtils.toUpdateSet(dataMapping), wrapper1); orderMapper.updateForSet(MyBatisPlusUpdateUtils.toUpdateSet(dataMapping), wrapper1);
log.info(order.getXbOrderId()+"订单已更新"); log.info(order.getXbOrderId()+"订单已更新");
} catch (Exception e) { } catch (Exception e) {
log.info(order.getXbOrderId()+"订单更新失败",e.getMessage()); log.error(order.getXbOrderId()+"订单更新失败",e.getMessage());
} }
}); });
...@@ -88,7 +88,7 @@ public class OrderTask { ...@@ -88,7 +88,7 @@ public class OrderTask {
orderMapper.updateForSet(MyBatisPlusUpdateUtils.toUpdateSet(dataMapping), wrapper1); orderMapper.updateForSet(MyBatisPlusUpdateUtils.toUpdateSet(dataMapping), wrapper1);
log.info(order.getXbOrderId()+"订单已更新"); log.info(order.getXbOrderId()+"订单已更新");
} catch (Exception e) { } catch (Exception e) {
log.info(order.getXbOrderId()+"订单更新失败",e.getMessage()); log.error(order.getXbOrderId()+"订单更新失败",e.getMessage());
} }
}); });
......
package com.winsun.rabbitmq;
import com.winsun.service.ExportService;
import lombok.extern.slf4j.Slf4j;
import org.springframework.amqp.rabbit.annotation.RabbitHandler;
import org.springframework.amqp.rabbit.annotation.RabbitListener;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Component;
import javax.jnlp.DownloadService;
import java.sql.Wrapper;
import java.util.Map;
/**
* 导出
* @Author: chancy
* @Date: 2020/3/16 18:26
*/
@Slf4j
@Component
@RabbitListener(queues = "taskImport")
public class ExportConsumer {
@Autowired
private ExportService exportService;
/**
* 消息消费
*
* @RabbitHandler 代表此方法为接受到消息后的处理方法
*/
@RabbitHandler
public void recieved(Map<String, Object> map) {
log.info("执行订单导出任务");
try {
exportService.ExportOrderView(map);
} catch (Exception e) {
log.error("执行订单导出任务异常",e.getMessage(), e);
}
log.info("执行订单导出完成");
}
}
package com.winsun.service;
import com.baomidou.mybatisplus.enums.SqlLike;
import com.baomidou.mybatisplus.mapper.EntityWrapper;
import com.baomidou.mybatisplus.mapper.Wrapper;
import com.fasterxml.jackson.databind.ObjectMapper;
import com.winsun.auth.core.base.controller.BaseController;
import com.winsun.auth.core.util.IOUtils;
import com.winsun.auth.core.util.TimeUtil;
import com.winsun.bean.ExportExcel;
import com.winsun.bean.Order;
import com.winsun.constant.FilePath;
import com.winsun.mapper.ExportExcelMapper;
import com.winsun.mapper.OrderMapper;
import lombok.extern.slf4j.Slf4j;
import org.apache.commons.lang3.StringUtils;
import org.apache.poi.xssf.usermodel.XSSFCell;
import org.apache.poi.xssf.usermodel.XSSFRow;
import org.apache.poi.xssf.usermodel.XSSFSheet;
import org.apache.poi.xssf.usermodel.XSSFWorkbook;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import java.io.File;
import java.io.FileOutputStream;
import java.text.SimpleDateFormat;
import java.util.ArrayList;
import java.util.Date;
import java.util.List;
import java.util.Map;
/**
* 导出
* @Author: chancy
* @Date: 2020/3/16 18:26
*/
@Slf4j
@Service
public class ExportService extends BaseController {
private OrderMapper orderMapper;
private ExportExcelMapper exportExcelMapper;
@Autowired
public ExportService(OrderMapper orderMapper,ExportExcelMapper exportExcelMapper){
this.orderMapper = orderMapper;
this.exportExcelMapper = exportExcelMapper;
}
public void ExportOrderView(Map<String, Object> map) {
String createTimeStart = "";
if(map.containsKey("createTimeStart")){
createTimeStart = map.get("createTimeStart").toString();
}
String createTimeEnd = "";
if(map.containsKey("createTimeEnd")){
createTimeEnd = map.get("createTimeEnd").toString();
}
String successTimeStart = "";
if(map.containsKey("successTimeStart")){
successTimeStart = map.get("successTimeStart").toString();
}
String successTimeEnd = "";
if(map.containsKey("successTimeEnd")){
successTimeEnd = map.get("successTimeEnd").toString();
}
String userType = "";
if(map.containsKey("userType")){
userType = map.get("userType").toString();
}
String orderNumber = "";
if(map.containsKey("orderNumber")){
orderNumber = map.get("orderNumber").toString();
}
String customerName = "";
if(map.containsKey("customerName")){
customerName = map.get("customerName").toString();
}
String businessNumber = "";
if(map.containsKey("businessNumber")){
businessNumber = map.get("businessNumber").toString();
}
String contactNumber = "";
if(map.containsKey("contactNumber")){
contactNumber = map.get("contactNumber").toString();
}
String hehuorenSchool = "";
if(map.containsKey("hehuorenSchool")){
hehuorenSchool = map.get("hehuorenSchool").toString();
}
String hehuorenName = "";
if(map.containsKey("hehuorenName")){
hehuorenName = map.get("hehuorenName").toString();
}
String orderStatus = "";
if(map.containsKey("orderStatus")){
orderStatus = map.get("orderStatus").toString();
}
EntityWrapper<Order> wrapper = new EntityWrapper();
wrapper.ge(StringUtils.isNotBlank(createTimeStart), "create_time", createTimeStart);
wrapper.le(StringUtils.isNotBlank(createTimeEnd), "create_time", createTimeEnd);
wrapper.ge(StringUtils.isNotBlank(successTimeStart), "success_time", successTimeStart);
wrapper.le(StringUtils.isNotBlank(successTimeEnd), "success_time", successTimeEnd);
wrapper.eq(StringUtils.isNotBlank(userType), "user_type", userType);
wrapper.eq(StringUtils.isNotBlank(orderNumber), "order_number", orderNumber);
//wrapper.eq(StringUtils.isNotBlank(kapin), "kapin", kapin);
wrapper.eq(StringUtils.isNotBlank(customerName), "customer_name", customerName);
wrapper.eq(StringUtils.isNotBlank(businessNumber), "business_number", businessNumber);
wrapper.eq(StringUtils.isNotBlank(contactNumber), "contact_number", contactNumber);
wrapper.eq(StringUtils.isNotBlank(hehuorenSchool), "hehuoren_school", hehuorenSchool);
wrapper.like(StringUtils.isNotBlank(hehuorenName), "hehuoren_name", hehuorenName, SqlLike.DEFAULT);
wrapper.eq(StringUtils.isNotBlank(orderStatus), "order_status", orderStatus);
List<Map<String, Object>> Orders = orderMapper.downloadOrder(wrapper);
List<String> tops = new ArrayList<>();
tops.add("客户姓名");
tops.add("订单编号");
tops.add("联系号码");
tops.add("办理号码");
tops.add("办理套餐");
tops.add("合伙人姓名");
tops.add("合伙人学校");
tops.add("合伙人手机");
tops.add("现有套餐");
tops.add("升级套餐");
tops.add("订单状态");
tops.add("订单类型");
tops.add("学生证审核状态");
List<String> columns = new ArrayList<>();
columns.add("customer_name");
columns.add("order_number");
columns.add("contact_number");
columns.add("business_number");
columns.add("business_package");
columns.add("hehuoren_name");
columns.add("hehuoren_school");
columns.add("hehuoren_phone");
columns.add("package_id");
columns.add("business_package");
columns.add("order_status");
columns.add("user_type");
columns.add("student_card_checkStatus");
SimpleDateFormat format = new SimpleDateFormat("yyyyMMdd");
String formatPath = format.format(new Date());
String filePath = FilePath.IMPORTPATH.getValue()+formatPath;
String fileName = "订单"+new Date().getTime()+".xls";
String filePath1 = FilePath.IMPORTPATH.getValue()+formatPath+"/"+fileName;
File dir = new File(filePath);
if (!dir.exists()) {
dir.mkdirs();
}
FileOutputStream os = null;
XSSFWorkbook workbook = new XSSFWorkbook();
try {
os = new FileOutputStream(filePath1);
//创建工作表
XSSFSheet sheet = workbook.createSheet("订单清单");
//添加表头
final XSSFRow row = sheet.createRow(0);
//设置列宽度
sheet.setColumnWidth(1, 6500);
sheet.setColumnWidth(2, 4000);
sheet.setColumnWidth(3, 4000);
sheet.setColumnWidth(4, 4000);
sheet.setColumnWidth(6, 7000);
sheet.setColumnWidth(7, 4000);
sheet.setColumnWidth(8, 4000);
sheet.setColumnWidth(9, 6500);
sheet.setColumnWidth(12, 6500);
//第一行字段名称
tops.forEach(column -> {
XSSFCell cell = row.createCell(Math.max(row.getLastCellNum(), 0));
cell.setCellValue(column);
});
//数据
int rowIndex = row.getRowNum();
for (Map<String, Object> maps : Orders) {
final XSSFRow rowdata = sheet.createRow(++rowIndex);
for (String column : columns) {
XSSFCell cell = rowdata.createCell(Math.max(rowdata.getLastCellNum(), 0));
if (maps.get(column) != null) {
cell.setCellValue(maps.get(column).toString());
}
}
}
workbook.write(os);
ExportExcel exportExcel = new ExportExcel();
exportExcel.setCreateTime(new Date());
exportExcel.setCreateUser(Integer.parseInt(map.get("userId").toString()));
exportExcel.setCreateName(map.get("userName").toString());
exportExcel.setExportUrl(filePath1);
exportExcel.setFileName(fileName);
exportExcelMapper.insert(exportExcel);
} catch (Exception e) {
log.error("文件出错!" + e.getMessage(), e);
} finally {
IOUtils.closeQuite(workbook, os);
}
}
}
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