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("删除失败!");
}
}
...@@ -15,9 +15,8 @@ import com.alibaba.excel.write.metadata.WriteSheet; ...@@ -15,9 +15,8 @@ import com.alibaba.excel.write.metadata.WriteSheet;
import com.alibaba.fastjson.JSON; import com.alibaba.fastjson.JSON;
import com.winsun.auth.core.util.DateUtil; import com.winsun.auth.core.util.DateUtil;
import com.winsun.bean.*; import com.winsun.bean.*;
import com.winsun.mapper.AppMapper; import com.winsun.mapper.*;
import com.winsun.mapper.SchoolMapper; import com.winsun.rabbitmq.RabbitProducer;
import com.winsun.mapper.SysUserMapper;
import com.winsun.utils.ImportExcel; import com.winsun.utils.ImportExcel;
import com.winsun.utils.MyBatisPlusUpdateUtils; import com.winsun.utils.MyBatisPlusUpdateUtils;
import com.winsun.utils.YrymReportUtils; import com.winsun.utils.YrymReportUtils;
...@@ -38,7 +37,6 @@ import com.winsun.auth.core.common.model.ResponseData; ...@@ -38,7 +37,6 @@ import com.winsun.auth.core.common.model.ResponseData;
import com.winsun.auth.core.shiro.ShiroUser; import com.winsun.auth.core.shiro.ShiroUser;
import com.winsun.auth.core.util.IOUtils; import com.winsun.auth.core.util.IOUtils;
import com.winsun.constant.OrderStatus; import com.winsun.constant.OrderStatus;
import com.winsun.mapper.OrderMapper;
import lombok.extern.slf4j.Slf4j; import lombok.extern.slf4j.Slf4j;
import org.springframework.web.multipart.MultipartFile; import org.springframework.web.multipart.MultipartFile;
...@@ -80,12 +78,19 @@ public class OrderController extends BaseController { ...@@ -80,12 +78,19 @@ public class OrderController extends BaseController {
private static AppMapper appMapper; private static AppMapper appMapper;
private ExportExcelMapper exportExcelMapper;
@Autowired
private RabbitProducer taskImport;
@Autowired @Autowired
public OrderController(OrderMapper orderMapper, SchoolMapper schoolMapper, SysUserMapper sysUserMapper, AppMapper appMapper) { public OrderController(OrderMapper orderMapper, SchoolMapper schoolMapper, SysUserMapper sysUserMapper,
AppMapper appMapper, ExportExcelMapper exportExcelMapper) {
OrderController.orderMapper = orderMapper; OrderController.orderMapper = orderMapper;
OrderController.schoolMapper = schoolMapper; OrderController.schoolMapper = schoolMapper;
OrderController.sysUserMapper = sysUserMapper; OrderController.sysUserMapper = sysUserMapper;
OrderController.appMapper = appMapper; OrderController.appMapper = appMapper;
this.exportExcelMapper = exportExcelMapper;
} }
/** /**
...@@ -101,7 +106,7 @@ public class OrderController extends BaseController { ...@@ -101,7 +106,7 @@ public class OrderController extends BaseController {
* 审核学生证 * 审核学生证
*/ */
@Permission(menuname = "审核学生证", value = "reviewStudentIdCard", method = RequestMethod.POST) @Permission(menuname = "审核学生证", value = "reviewStudentIdCard", method = RequestMethod.POST)
public ResponseData<String> reviewStudentIdCard(@RequestParam("studentCardCheckStatus") String studentCardCheckStatus,@RequestParam(name = "checkFail", required = false) String checkFail,@RequestParam("id") String id) { public ResponseData<String> reviewStudentIdCard(@RequestParam("studentCardCheckStatus") String studentCardCheckStatus, @RequestParam(name = "checkFail", required = false) String checkFail, @RequestParam("id") String id) {
ShiroUser user = getShiroUser(); ShiroUser user = getShiroUser();
/*if (!user.getRoleNames().stream().anyMatch(roleName -> StringUtils.equalsAny(roleName, "超级管理员"))) { /*if (!user.getRoleNames().stream().anyMatch(roleName -> StringUtils.equalsAny(roleName, "超级管理员"))) {
return ResponseData.error("无数据权限"); return ResponseData.error("无数据权限");
...@@ -111,18 +116,18 @@ public class OrderController extends BaseController { ...@@ -111,18 +116,18 @@ public class OrderController extends BaseController {
Map<String, Object> dataMapping = new HashMap<>(); Map<String, Object> dataMapping = new HashMap<>();
dataMapping.put("student_card_check_status", studentCardCheckStatus); dataMapping.put("student_card_check_status", studentCardCheckStatus);
dataMapping.put("order_status", "已完成"); dataMapping.put("order_status", "已完成");
if(StringUtils.isNotBlank(checkFail)){ if (StringUtils.isNotBlank(checkFail)) {
dataMapping.put("check_fail", checkFail); dataMapping.put("check_fail", checkFail);
} }
Integer integer = orderMapper.updateForSet(MyBatisPlusUpdateUtils.toUpdateSet(dataMapping), wrapper); Integer integer = orderMapper.updateForSet(MyBatisPlusUpdateUtils.toUpdateSet(dataMapping), wrapper);
if(integer == 1){ if (integer == 1) {
if("1".equals(studentCardCheckStatus)){ if ("1".equals(studentCardCheckStatus)) {
appMapper.inserOrderHis(id,"审核通过!",new Date(),user.getName()); appMapper.inserOrderHis(id, "审核通过!", new Date(), user.getName());
}else { } else {
appMapper.inserOrderHis(id,"审核不通过:"+checkFail,new Date(),user.getName()); appMapper.inserOrderHis(id, "审核不通过:" + checkFail, new Date(), user.getName());
} }
}else { } else {
return ResponseData.error("审核失败!"); return ResponseData.error("审核失败!");
} }
return ResponseData.success("审核成功!"); return ResponseData.success("审核成功!");
...@@ -131,7 +136,7 @@ public class OrderController extends BaseController { ...@@ -131,7 +136,7 @@ public class OrderController extends BaseController {
/** /**
* 修改为异常单 * 修改为异常单
*/ */
@Permission(menuname = "修改为异常单",value = "abnormal", method = RequestMethod.POST) @Permission(menuname = "修改为异常单", value = "abnormal", method = RequestMethod.POST)
public ResponseData<String> abnormal(@RequestParam("orderId") String orderId) { public ResponseData<String> abnormal(@RequestParam("orderId") String orderId) {
ShiroUser user = getShiroUser(); ShiroUser user = getShiroUser();
/*if (!user.getRoleNames().stream().anyMatch(roleName -> StringUtils.equalsAny(roleName, "超级管理员"))) { /*if (!user.getRoleNames().stream().anyMatch(roleName -> StringUtils.equalsAny(roleName, "超级管理员"))) {
...@@ -143,7 +148,7 @@ public class OrderController extends BaseController { ...@@ -143,7 +148,7 @@ public class OrderController extends BaseController {
dataMapping.put("order_status", "异常单"); dataMapping.put("order_status", "异常单");
Integer integer = orderMapper.updateForSet(MyBatisPlusUpdateUtils.toUpdateSet(dataMapping), wrapper); Integer integer = orderMapper.updateForSet(MyBatisPlusUpdateUtils.toUpdateSet(dataMapping), wrapper);
if (integer == 1) { if (integer == 1) {
appMapper.inserOrderHis(orderId,"异常单!",new Date(),user.getName()); appMapper.inserOrderHis(orderId, "异常单!", new Date(), user.getName());
return ResponseData.success("设为异常单成功!"); return ResponseData.success("设为异常单成功!");
} }
return ResponseData.error("设为异常单失败!"); return ResponseData.error("设为异常单失败!");
...@@ -203,7 +208,7 @@ public class OrderController extends BaseController { ...@@ -203,7 +208,7 @@ public class OrderController extends BaseController {
} }
@Permission(menuname = "导出订单", value = "download", method = RequestMethod.POST) @Permission(menuname = "导出订单", value = "download", method = RequestMethod.POST)
public void downloadOrderView(@RequestParam(name = "createTimeStart", required = false) String createTimeStart, public ResponseData<String> downloadOrderView(@RequestParam(name = "createTimeStart", required = false) String createTimeStart,
@RequestParam(name = "createTimeEnd", required = false) String createTimeEnd, @RequestParam(name = "successTimeStart", required = false) String successTimeStart, @RequestParam(name = "createTimeEnd", required = false) String createTimeEnd, @RequestParam(name = "successTimeStart", required = false) String successTimeStart,
@RequestParam(name = "successTimeEnd", required = false) String successTimeEnd, @RequestParam("userType") String userType, @RequestParam(name = "successTimeEnd", required = false) String successTimeEnd, @RequestParam("userType") String userType,
@RequestParam(name = "orderNumber", required = false) String orderNumber, @RequestParam(name = "kapin", required = false) String kapin, @RequestParam(name = "orderNumber", required = false) String orderNumber, @RequestParam(name = "kapin", required = false) String kapin,
...@@ -219,98 +224,53 @@ public class OrderController extends BaseController { ...@@ -219,98 +224,53 @@ public class OrderController extends BaseController {
createTimeStart = null; createTimeStart = null;
createTimeEnd = null; createTimeEnd = null;
} }
Wrapper<Order> wrapper = new EntityWrapper(); Map<String, Object> map = new HashMap<>();
wrapper.ge(StringUtils.isNotBlank(createTimeStart), "create_time", createTimeStart); ShiroUser user = getShiroUser();
wrapper.le(StringUtils.isNotBlank(createTimeEnd), "create_time", createTimeEnd); map.put("userId", user.getId());
wrapper.ge(StringUtils.isNotBlank(successTimeStart), "success_time", successTimeStart); map.put("userName", user.getName());
wrapper.le(StringUtils.isNotBlank(successTimeEnd), "success_time", successTimeEnd); if (StringUtils.isNotBlank(createTimeStart)) {
wrapper.eq(StringUtils.isNotBlank(userType), "user_type", userType); map.put("createTimeStart", createTimeStart);
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");
ServletOutputStream os = null;
XSSFWorkbook workbook = new XSSFWorkbook();
try {
//创建工作表
XSSFSheet sheet = workbook.createSheet("订单清单");
//添加表头
final XSSFRow row = sheet.createRow(0);
//设置列宽度
sheet.setColumnWidth(1, 6500);
sheet.setColumnWidth(2, 6500);
sheet.setColumnWidth(5, 7000);
sheet.setColumnWidth(8, 4000);
sheet.setColumnWidth(11, 6500);
sheet.setColumnWidth(14, 6500);
sheet.setColumnWidth(15, 7000);
sheet.setColumnWidth(17, 7500);
sheet.setColumnWidth(18, 600);
//第一行字段名称
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());
} }
if (StringUtils.isNotBlank(createTimeEnd)) {
map.put("createTimeEnd", createTimeEnd);
} }
if (StringUtils.isNotBlank(successTimeStart)) {
map.put("successTimeStart", successTimeStart);
} }
if (StringUtils.isNotBlank(successTimeEnd)) {
HttpServletResponse response = getHttpServletResponse(); map.put("successTimeEnd", successTimeEnd);
response.reset(); }
response.setCharacterEncoding("UTF-8"); if (StringUtils.isNotBlank(userType)) {
response.setContentType("application/octet-stream"); map.put("userType", userType);
os = response.getOutputStream(); }
workbook.write(os); if (StringUtils.isNotBlank(orderNumber)) {
os.flush(); map.put("orderNumber", orderNumber);
}
if (StringUtils.isNotBlank(customerName)) {
map.put("customerName", customerName);
}
if (StringUtils.isNotBlank(businessNumber)) {
map.put("businessNumber", businessNumber);
}
if (StringUtils.isNotBlank(contactNumber)) {
map.put("contactNumber", contactNumber);
}
if (StringUtils.isNotBlank(hehuorenSchool)) {
map.put("hehuorenSchool", hehuorenSchool);
}
if (StringUtils.isNotBlank(hehuorenName)) {
map.put("hehuorenName", hehuorenName);
}
if (StringUtils.isNotBlank(orderStatus)) {
map.put("orderStatus", orderStatus);
}
try {
taskImport.taskImport(map);
} catch (Exception e) { } catch (Exception e) {
log.error("文件出错!" + e.getMessage(), e); log.error("订单导出队列异常", e.getMessage());
} finally { return ResponseData.error("订单导出队列异常!");
IOUtils.closeQuite(workbook, os);
} }
return ResponseData.success("订单导出正在队列排队执行中,稍后请在下载列表下载!");
} }
@Permission(menuname = "一人一码统计数据", value = "getHhrOrderInfo", method = RequestMethod.POST) @Permission(menuname = "一人一码统计数据", value = "getHhrOrderInfo", method = RequestMethod.POST)
...@@ -353,7 +313,7 @@ public class OrderController extends BaseController { ...@@ -353,7 +313,7 @@ public class OrderController extends BaseController {
map.put("status", "failure"); map.put("status", "failure");
map.put("message", "下载文件失败" + e.getMessage()); map.put("message", "下载文件失败" + e.getMessage());
response.getWriter().println(JSON.toJSONString(map)); response.getWriter().println(JSON.toJSONString(map));
log.error("一人一码下载文件失败",e.getMessage()); log.error("一人一码下载文件失败", e.getMessage());
} finally { } finally {
//关闭资源 //关闭资源
if (excelWriter != null) { if (excelWriter != null) {
......
...@@ -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