package com.matrix.system.hive.statistics; import com.matrix.core.constance.MatrixConstance; import com.matrix.core.pojo.AjaxResult; import com.matrix.core.pojo.PaginationVO; 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.constance.AppConstance; import com.matrix.system.common.tools.ResponseHeadUtil; import com.matrix.system.hive.action.util.QueryUtil; import com.matrix.system.hive.bean.AchieveNew; import com.matrix.system.hive.dao.AchieveNewDao; import com.matrix.system.hive.plugin.util.CollectionUtils; import com.matrix.system.hive.service.AchieveNewService; import com.matrix.system.hive.service.SysOrderItemService; import com.matrix.system.hive.service.SysOrderService; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Controller; import org.springframework.transaction.annotation.Transactional; import org.springframework.ui.ModelMap; import org.springframework.web.bind.annotation.RequestBody; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.ResponseBody; import javax.annotation.Resource; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import java.io.IOException; import java.io.OutputStream; import java.util.ArrayList; import java.util.List; /** * 业绩统计 */ @Controller @RequestMapping(value = "/admin/achieve") public class AchieveAction { @Resource private AchieveNewService achieveNewService; @Autowired private SysOrderService sysOrderService; @Autowired private SysOrderItemService sysOrderItemService; @Autowired private AchieveNewDao achieveNewDao; /** * 门店每日单据明细表 */ @RequestMapping(value = "/findSumDailyInfoNew") public @ResponseBody AjaxResult findSumDailyInfoNew(AchieveNew achieveNew, PaginationVO pageVo) { SysUsers sysUsers = (SysUsers) WebUtil.getSession().getAttribute(MatrixConstance.LOGIN_KEY); if(!AppConstance.ZONGDIAN.equals(sysUsers.getShopName())){ achieveNew.setShopId(sysUsers.getShopId()); } AjaxResult result = new AjaxResult(AjaxResult.STATUS_SUCCESS, achieveNewService.findSumDailyInfoNew(achieveNew, null), 0); return result; } /** * 每日单据明细表 */ @RequestMapping(value = "/findDailyInfoNew") public @ResponseBody AjaxResult findDailyInfoNew(AchieveNew achieveNew, PaginationVO pageVo) { SysUsers sysUsers = (SysUsers) WebUtil.getSession().getAttribute(MatrixConstance.LOGIN_KEY); if(!AppConstance.ZONGDIAN.equals(sysUsers.getShopName())){ achieveNew.setShopId(sysUsers.getShopId()); } pageVo.setSort("datatime"); pageVo.setOrder("desc"); AjaxResult result = new AjaxResult(AjaxResult.STATUS_SUCCESS, achieveNewService.findDayFlow(achieveNew, pageVo), achieveNewService.findDayFlowTotal(achieveNew, pageVo)); return result; } @RequestMapping(value = "/exportDailyInfoNew") public void exportDailyInfoNew(ModelMap model, HttpServletRequest request, HttpServletResponse response, AchieveNew achieveNew) throws IOException { //这里是从数据库里查数据并组装成我们想要的数据结构的过程 List res = new ArrayList<>(); ExcelSheetPO orderSheet = new ExcelSheetPO(); String title = "每日单据明细"; orderSheet.setSheetName(title); orderSheet.setTitle(title); String[] header = {"年", "月", "日", "订单编号", "订单类型", "会员姓名", "项目名称", "订单金额", "订单业绩", "收款方式", "业绩类型", "员工", "本金消耗", "赠消", "提成", "人头", "项目个数", "项目时间", "顾问", "门店"}; orderSheet.setHeaders(header); SysUsers sysUsers = (SysUsers) WebUtil.getSession().getAttribute(MatrixConstance.LOGIN_KEY); if(!AppConstance.ZONGDIAN.equals(sysUsers.getShopName())){ achieveNew.setShopId(sysUsers.getShopId()); } QueryUtil.setQueryLimitCom(achieveNew); List dataList = achieveNewService.findDayFlow(achieveNew, null); List> list = new ArrayList<>(); if (dataList.size() > 0) { for (AchieveNew item : dataList) { List temp = new ArrayList<>(); temp.add(item.getYear()); temp.add(item.getMonth()); temp.add(item.getDay()); temp.add(item.getOrderNo()); temp.add(item.getOrderType()); temp.add(item.getVipName()); temp.add(item.getProName()); temp.add(item.getZkTotal()); temp.add(item.getGoodsCash()); temp.add(item.getPayMethod()); temp.add(item.getMeiliao()); temp.add(item.getHisConsume()); temp.add(item.getFreeConsume()); temp.add(item.getProjPercentage()); temp.add(item.getNumberOfPeople()); temp.add(item.getProjNum()); temp.add(item.getProjTime()); temp.add(item.getGuwen()); temp.add(item.getShopName()); 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); } @RequestMapping(value = "/del") @ResponseBody public AjaxResult del(Long id) { int i = achieveNewService.removeById(id); if (i > 0) { return AjaxResult.buildSuccessInstance("删除成功"); } return AjaxResult.buildFailInstance("删除失败"); } @RequestMapping(value = "/add") @ResponseBody @Transactional public AjaxResult add(@RequestBody List list) { if (CollectionUtils.isNotEmpty(list)) { //删除原业绩 achieveNewDao.deleteByOrderId(list.get(0).getOrderId()); //插入新业绩 achieveNewDao.batchInsert(list); return AjaxResult.buildSuccessInstance("保存成功"); } else { return AjaxResult.buildFailInstance("未找到业绩数据"); } } }