package com.matrix.system.hive.statistics; import com.matrix.core.constance.MatrixConstance; import com.matrix.core.pojo.AjaxResult; import com.matrix.core.tools.DateUtil; import com.matrix.core.tools.WebUtil; import com.matrix.core.tools.excl.ExcelSheetPO; import com.matrix.core.tools.excl.ExcelVersion; import com.matrix.system.common.bean.SysUsers; import com.matrix.system.common.tools.DataAuthUtil; import com.matrix.system.common.tools.ResponseHeadUtil; import com.matrix.system.hive.dao.SysOrderItemDao; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Controller; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RequestParam; import org.springframework.web.bind.annotation.ResponseBody; import javax.servlet.http.HttpServletResponse; import java.io.OutputStream; import java.util.ArrayList; import java.util.Arrays; import java.util.List; import java.util.Map; /** * @author * @description 经营数据 * @date 2020-02-08 10:18 */ @Controller @RequestMapping(value = "/admin/orderStatistics") public class OrderStatisticsAction { @Autowired private SysOrderItemDao orderItemDao; /** * 产品销售明细 */ @RequestMapping(value = "/showList") public @ResponseBody AjaxResult showList(@RequestParam Map param) { SysUsers sysUsers = (SysUsers) WebUtil.getSession().getAttribute(MatrixConstance.LOGIN_KEY); if(!DataAuthUtil.hasAllShopAuth()){ param.put("shopId", sysUsers.getShopId()); } return AjaxResult.buildSuccessInstance(orderItemDao.selectItemDetail(param), orderItemDao.selectItemDetailTotal(param)); } @RequestMapping(value = "/exportShowList") public void exportShowList(@RequestParam Map param, HttpServletResponse response) throws Exception { SysUsers sysUsers = (SysUsers) WebUtil.getSession().getAttribute(MatrixConstance.LOGIN_KEY); String title = "产品销售明细统计"; String[] header = {"门店", "销售日期", "订单号", "商品名称", "分类", "客户名", "购买数量", "单价","小计", "健康顾问", "支付方式", "状态"}; String[] column = {"SHOP_NAME", "pay_time", "ORDER_NO", "goodsName", "cateName", "VIP_NAME", "COUNT", "ZK_PRICE", "total","su_name", "pay_method", "statu"}; if(!DataAuthUtil.hasAllShopAuth()){ param.put("shopId", sysUsers.getShopId()); } List> dataList = orderItemDao.selectItemDetail(param); exportExcel(title, header,column, dataList, response); } /** * 产品销售明细统计 */ @RequestMapping(value = "/summaryItemDetail") public @ResponseBody AjaxResult summaryItemDetail(@RequestParam Map param) { SysUsers sysUsers = (SysUsers) WebUtil.getSession().getAttribute(MatrixConstance.LOGIN_KEY); if(!DataAuthUtil.hasAllShopAuth()){ param.put("shopId", sysUsers.getShopId()); } return AjaxResult.buildSuccessInstance(orderItemDao.summaryItemDetail(param), orderItemDao.summaryItemDetailTotal(param)); } @RequestMapping(value = "/exportSummaryItemDetail") public void exportSummaryItemDetail(@RequestParam Map param, HttpServletResponse response) throws Exception { SysUsers sysUsers = (SysUsers) WebUtil.getSession().getAttribute(MatrixConstance.LOGIN_KEY); String title = "产品销售明细统计"; String[] header = {"门店", "商品名称", "分类", "销售数量", "销售总额"}; String[] column = {"SHOP_NAME", "goodsName", "cateName", "COUNT", "ZK_PRICE"}; if(!DataAuthUtil.hasAllShopAuth()){ param.put("shopId", sysUsers.getShopId()); } List> dataList = orderItemDao.summaryItemDetail(param); exportExcel(title, header,column, dataList, response); } public static void exportExcel(String title, String[] header,String[] column, List> dataList, HttpServletResponse response) throws Exception { //这里是从数据库里查数据并组装成我们想要的数据结构的过程 List res = new ArrayList<>(); ExcelSheetPO orderSheet = new ExcelSheetPO(); orderSheet.setSheetName(title); orderSheet.setTitle(title); orderSheet.setHeaders(header); List> list = new ArrayList<>(); if (dataList.size() > 0) { for (Map item : dataList) { List temp = new ArrayList<>(); Arrays.stream(column).forEach(key-> temp.add(item.get(key))); list.add(temp); } } orderSheet.setDataList(list); res.add(orderSheet); response = ResponseHeadUtil.setExcelHead(response); response.setHeader("Content-Disposition", "attachment;filename=" + java.net.URLEncoder.encode(title + DateUtil.getTimeMark() + ".xlsx".trim(), "UTF-8")); OutputStream os = response.getOutputStream(); com.matrix.core.tools.excl.ExcelUtil.createWorkbookAtOutStream(ExcelVersion.V2007, res, os, true); } }