package com.matrix.system.hive.statistics;
|
|
import com.baomidou.mybatisplus.core.metadata.IPage;
|
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
|
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.CustomerDataDictionary;
|
import com.matrix.system.common.bean.SysUsers;
|
import com.matrix.system.common.constance.AppConstance;
|
import com.matrix.system.common.dao.CustomerDataDictionaryDao;
|
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.dto.AchieveNewStatisticsDto;
|
import com.matrix.system.hive.plugin.util.CollectionUtils;
|
import com.matrix.system.hive.service.AchieveNewService;
|
import com.matrix.system.hive.vo.AchieveNewStatisticsVo;
|
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.PostMapping;
|
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 AchieveNewDao achieveNewDao;
|
|
|
|
/**
|
* 员工业绩统计
|
*/
|
@PostMapping(value = "/achieveNewStatistics")
|
public @ResponseBody
|
AjaxResult achieveNewStatistics(@RequestBody AchieveNewStatisticsDto queryDto){
|
SysUsers sysUsers = (SysUsers) WebUtil.getSession().getAttribute(MatrixConstance.LOGIN_KEY);
|
|
queryDto.setCompanyId(sysUsers.getCompanyId());
|
|
Page<AchieveNewStatisticsVo> page = new Page(queryDto.getPageNum(), queryDto.getPageSize());
|
IPage<AchieveNewStatisticsVo> rows = achieveNewDao.achieveNewStatistics(page,queryDto);
|
AjaxResult result = AjaxResult.buildSuccessInstance(rows.getRecords(),rows.getTotal());
|
return result;
|
}
|
|
|
/**
|
* 门店每日单据明细表
|
*/
|
@RequestMapping(value = "/findSumDailyInfoNew")
|
public @ResponseBody
|
AjaxResult findSumDailyInfoNew(@RequestBody AchieveNew achieveNew) {
|
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(@RequestBody AchieveNew achieveNew) {
|
SysUsers sysUsers = (SysUsers) WebUtil.getSession().getAttribute(MatrixConstance.LOGIN_KEY);
|
achieveNew.setCompanyId(sysUsers.getCompanyId());
|
if(!AppConstance.ZONGDIAN.equals(sysUsers.getShopName())){
|
achieveNew.setShopId(sysUsers.getShopId());
|
}
|
PaginationVO pageVo = new PaginationVO();
|
|
pageVo.setOffset(achieveNew.getOffset());
|
pageVo.setLimit(achieveNew.getLimit());
|
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 = "/exportAchieveNewStatisticsExcel")
|
public void exportAchieveNewStatisticsExcel(ModelMap model, HttpServletRequest request, HttpServletResponse response, AchieveNewStatisticsDto queryDto) throws IOException {
|
//这里是从数据库里查数据并组装成我们想要的数据结构的过程
|
List<ExcelSheetPO> 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())){
|
queryDto.setShopId(sysUsers.getShopId());
|
}
|
queryDto.setCompanyId(sysUsers.getCompanyId());
|
Page<AchieveNewStatisticsVo> page = new Page(1, Long.MAX_VALUE);
|
IPage<AchieveNewStatisticsVo> rows = achieveNewDao.achieveNewStatistics(page,queryDto);
|
List<AchieveNewStatisticsVo> dataList = rows.getRecords();
|
List<List<Object>> list = new ArrayList<>();
|
if (dataList.size() > 0) {
|
for (AchieveNewStatisticsVo item : dataList) {
|
List<Object> temp = new ArrayList<>();
|
temp.add(item.getRuleName());
|
temp.add(item.getShopName());
|
temp.add(item.getGuwen());
|
temp.add(item.getCreateBy());
|
temp.add(item.getZkTotal());
|
temp.add(item.getGoodsCash());
|
temp.add(item.getCardCash());
|
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.getOrderType());
|
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);
|
}
|
|
@Autowired
|
CustomerDataDictionaryDao dataDictionaryDao;
|
|
@RequestMapping(value = "/exportDailyInfoNew")
|
public void exportDailyInfoNew(ModelMap model, HttpServletRequest request, HttpServletResponse response, AchieveNew achieveNew) throws IOException {
|
SysUsers sysUsers = WebUtil.getSessionAttribute(MatrixConstance.LOGIN_KEY);
|
|
List<CustomerDataDictionary> achieveTyps = dataDictionaryDao.selectByParentCode("YJLX", sysUsers.getCompanyId());
|
|
List<ExcelSheetPO> res = new ArrayList<>();
|
ExcelSheetPO orderSheet = new ExcelSheetPO();
|
String title = "员工业绩报表";
|
orderSheet.setSheetName(title);
|
orderSheet.setTitle(title);
|
List<String> headerList =new ArrayList();
|
headerList.add("订单时间");
|
headerList.add("订单编号");
|
headerList.add("订单类型");
|
headerList.add("会员姓名");
|
headerList.add("产品");
|
headerList.add("业绩规则");
|
headerList.add("产品分类");
|
headerList.add("订单金额");
|
headerList.add("现金");
|
headerList.add("划扣");
|
headerList.add("员工");
|
achieveTyps.forEach(item->{headerList.add(item.getValue());});
|
headerList.add("本金消耗");
|
headerList.add("赠消");
|
headerList.add("提成");
|
headerList.add("人头");
|
headerList.add("项目个数");
|
headerList.add("项目时间");
|
headerList.add("顾问");
|
headerList.add("门店");
|
|
String[] header = headerList.toArray(new String[headerList.size()]);
|
|
|
orderSheet.setHeaders(header);
|
if(!AppConstance.ZONGDIAN.equals(sysUsers.getShopName())){
|
achieveNew.setShopId(sysUsers.getShopId());
|
}
|
|
QueryUtil.setQueryLimitCom(achieveNew);
|
List<AchieveNew> dataList = achieveNewService.findDayFlow(achieveNew, null);
|
List<List<Object>> list = new ArrayList<>();
|
if (dataList.size() > 0) {
|
for (AchieveNew item : dataList) {
|
List<Object> temp = new ArrayList<>();
|
temp.add(DateUtil.dateFormatStr(item.getDatatime(), DateUtil.DATE_FORMAT_MM));
|
temp.add(item.getOrderNo());
|
temp.add(item.getOrderType());
|
temp.add(item.getVipName());
|
temp.add(item.getProName());
|
temp.add(item.getAchieveRuleName());
|
temp.add(item.getCateName());
|
temp.add(item.getZkTotal());
|
temp.add(item.getGoodsCash());
|
temp.add(item.getCardCash());
|
temp.add(item.getMeiliao());
|
//动态导出列----
|
achieveTyps.forEach(item2->{
|
if(item2.getValue().equals(item.getAchieveType())){
|
temp.add(item.getGoodsCash());
|
}else{
|
temp.add("");
|
}
|
});
|
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<AchieveNew> list) {
|
if (CollectionUtils.isNotEmpty(list)) {
|
//删除原业绩
|
achieveNewDao.deleteByOrderId(list.get(0).getOrderId());
|
//插入新业绩
|
achieveNewDao.batchInsert(list);
|
return AjaxResult.buildSuccessInstance("保存成功");
|
} else {
|
return AjaxResult.buildFailInstance("未找到业绩数据");
|
}
|
}
|
|
}
|