| | |
| | | package com.matrix.system.app.action; |
| | | |
| | | import com.matrix.core.constance.MatrixConstance; |
| | | import com.matrix.core.pojo.AjaxResult; |
| | | import com.matrix.core.pojo.PaginationVO; |
| | | import com.matrix.core.tools.WebUtil; |
| | | import com.matrix.system.app.dto.BusinessesDto; |
| | | import com.matrix.system.app.dto.VipStatisticsParamDto; |
| | | import com.matrix.system.app.vo.BeauticianVo; |
| | | import com.matrix.system.app.vo.BusinessesDataShowVo; |
| | | import com.matrix.system.app.vo.VipAchieveDataShowVo; |
| | | import com.matrix.system.common.bean.SysUsers; |
| | | import com.matrix.system.hive.action.util.QueryUtil; |
| | | import com.matrix.system.hive.bean.AchieveNew; |
| | | import com.matrix.system.hive.bean.SysBusinessData; |
| | | import com.matrix.system.hive.dao.SysBusinessDataDao; |
| | | import com.matrix.system.hive.service.imp.DataAnalysisCustomerServiceImpl; |
| | | import com.matrix.system.hiveErp.analysUtil.Caculate; |
| | | import com.matrix.system.hiveErp.analysUtil.SeriesVo; |
| | | import com.matrix.system.hiveErp.analysUtil.StatisticsParamVo; |
| | | import com.matrix.system.hiveErp.analysUtil.StatisticsTimeDaoParam; |
| | | import com.matrix.system.hiveErp.dao.TjVipSumDao; |
| | | import io.swagger.annotations.Api; |
| | | import io.swagger.annotations.ApiOperation; |
| | | import io.swagger.annotations.ApiResponse; |
| | | import io.swagger.annotations.ApiResponses; |
| | | import org.springframework.beans.factory.annotation.Autowired; |
| | | import org.springframework.validation.annotation.Validated; |
| | | import org.springframework.web.bind.annotation.*; |
| | | |
| | | import java.math.BigDecimal; |
| | | import java.util.ArrayList; |
| | | import java.util.HashMap; |
| | | import java.util.List; |
| | | import java.util.Map; |
| | | |
| | | /** |
| | | * @author wzy |
| | | * @date 2020-12-28 |
| | | **/ |
| | | @Api(value = "ApiStatisticsAction", tags = "报表接口类") |
| | | @RestController |
| | | @RequestMapping(value = "/api/statistics") |
| | | public class ApiStatisticsAction { |
| | | |
| | | @Autowired |
| | | TjVipSumDao tjVipSumDao; |
| | | |
| | | @Autowired |
| | | private SysBusinessDataDao sysBusinessDataDao; |
| | | |
| | | @Autowired |
| | | private DataAnalysisCustomerServiceImpl dataAnalysisCustomerService; |
| | | |
| | | @ApiOperation(value = "公司经营报表/门店经营报表") |
| | | @ApiResponses({ |
| | | @ApiResponse(code = 200, message = "ok", response = BusinessesDataShowVo.class) |
| | | }) |
| | | @PostMapping(value = "/findShopBusinessesData") |
| | | public AjaxResult findShopBusinessesData(@RequestBody BusinessesDto businessesDto) { |
| | | SysBusinessData sysBusinessData = new SysBusinessData(); |
| | | // 若shopId为空,则查询门店经营报表 |
| | | if (businessesDto.getShopId() == null) { |
| | | sysBusinessData.setShopId(businessesDto.getShopId()); |
| | | } |
| | | QueryUtil.setQueryLimitCom(sysBusinessData); |
| | | |
| | | if (BusinessesDto.DAY.equals(businessesDto.getType())) { |
| | | sysBusinessData.setT1("%Y-%m-%d"); |
| | | } else { |
| | | sysBusinessData.setT1("%Y-%m"); |
| | | } |
| | | PaginationVO pageVo = new PaginationVO(); |
| | | pageVo.setOffset((businessesDto.getPageNum() - 1) * businessesDto.getPageSize()); |
| | | pageVo.setLimit(businessesDto.getPageSize()); |
| | | |
| | | return AjaxResult.buildSuccessInstance(sysBusinessDataDao.selectApiBusinessDataInPage(sysBusinessData, pageVo), sysBusinessDataDao.selectApiBusinessDataTotal(sysBusinessData)); |
| | | } |
| | | |
| | | @ApiOperation(value = "专项", notes = "专项") |
| | | @PostMapping(value = "/findBusinessInCome") |
| | | public AjaxResult findBusinessInCome(@RequestBody @Validated StatisticsParamVo statisticsParam) { |
| | | if (statisticsParam.getShopId() != null) { |
| | | AjaxResult ajaxResult = dataAnalysisCustomerService.getAnalysisResult(statisticsParam, new Caculate<BigDecimal>() { |
| | | @Override |
| | | public Map<String, BigDecimal> exec(List<StatisticsTimeDaoParam> timeSpaceParam, Long shopId, Long companyId) { |
| | | switch (statisticsParam.getType()) { |
| | | case "1" : |
| | | return tjVipSumDao.selectBusinessInCome(timeSpaceParam, shopId, null); |
| | | case "2" : |
| | | return tjVipSumDao.selectCashIncome(timeSpaceParam, shopId, null); |
| | | case "3" : |
| | | return tjVipSumDao.selectCardUse(timeSpaceParam, shopId, null); |
| | | case "4" : |
| | | return tjVipSumDao.selectHisConsume(timeSpaceParam, shopId, null); |
| | | case "5" : |
| | | return tjVipSumDao.selectFreeConsume(timeSpaceParam, shopId, null); |
| | | case "6" : |
| | | return tjVipSumDao.selectCashRefund(timeSpaceParam, shopId, null); |
| | | case "7" : |
| | | return tjVipSumDao.selectCardRefund(timeSpaceParam, shopId, null); |
| | | case "8" : |
| | | return tjVipSumDao.selectArrears(timeSpaceParam, shopId, null); |
| | | default : |
| | | return tjVipSumDao.selectBusinessInCome(timeSpaceParam, shopId, null); |
| | | } |
| | | } |
| | | }); |
| | | return setDataList(ajaxResult); |
| | | } else { |
| | | AjaxResult ajaxResult = dataAnalysisCustomerService.getCompanyAnalysisResult(statisticsParam, new Caculate<BigDecimal>() { |
| | | @Override |
| | | public Map<String, BigDecimal> exec(List<StatisticsTimeDaoParam> timeSpaceParam, Long shopId, Long companyId) { |
| | | switch (statisticsParam.getType()) { |
| | | case "1" : |
| | | return tjVipSumDao.selectBusinessInCome(timeSpaceParam, null, companyId); |
| | | case "2" : |
| | | return tjVipSumDao.selectCashIncome(timeSpaceParam, null, companyId); |
| | | case "3" : |
| | | return tjVipSumDao.selectCardUse(timeSpaceParam, null, companyId); |
| | | case "4" : |
| | | return tjVipSumDao.selectHisConsume(timeSpaceParam, null, companyId); |
| | | case "5" : |
| | | return tjVipSumDao.selectFreeConsume(timeSpaceParam, null, companyId); |
| | | case "6" : |
| | | return tjVipSumDao.selectCashRefund(timeSpaceParam, null, companyId); |
| | | case "7" : |
| | | return tjVipSumDao.selectCardRefund(timeSpaceParam, null, companyId); |
| | | case "8" : |
| | | return tjVipSumDao.selectArrears(timeSpaceParam, null, companyId); |
| | | default : |
| | | return tjVipSumDao.selectBusinessInCome(timeSpaceParam, null, companyId); |
| | | } |
| | | } |
| | | }); |
| | | return setDataList(ajaxResult); |
| | | } |
| | | } |
| | | |
| | | private AjaxResult setDataList(AjaxResult ajaxResult) { |
| | | List<SeriesVo> list = (List<SeriesVo>) ajaxResult.getMapInfo().get("series"); |
| | | String[] xAxis = (String[]) ajaxResult.getMapInfo().get("xAxis"); |
| | | String [] data = list.get(0).getData(); |
| | | if (data != null && data.length != 0) { |
| | | List<Map<String, String>> dataList = new ArrayList<>(); |
| | | for(int i = data.length - 1; i >= 0; i--) { |
| | | Map<String, String> map = new HashMap<>(); |
| | | map.put(xAxis[i], data[i]); |
| | | dataList.add(map); |
| | | } |
| | | ajaxResult.setRows(dataList); |
| | | } |
| | | |
| | | return ajaxResult; |
| | | } |
| | | |
| | | |
| | | @ApiOperation(value = "查询员工业绩报表", notes = "查询员工业绩报表") |
| | | @ApiResponses({ |
| | | @ApiResponse(code = 200, message = "ok", response = VipAchieveDataShowVo.class) |
| | | }) |
| | | @PostMapping(value = "/findVipAchieve") |
| | | public AjaxResult findVipAchieve(@RequestBody BusinessesDto businessesDto) { |
| | | AchieveNew achieveNew = new AchieveNew(); |
| | | if (BusinessesDto.DAY.equals(businessesDto.getType())) { |
| | | achieveNew.setT1("%Y-%m-%d"); |
| | | } else { |
| | | achieveNew.setT1("%Y-%m"); |
| | | } |
| | | |
| | | SysUsers sysUsers = WebUtil.getSessionAttribute(MatrixConstance.LOGIN_KEY); |
| | | if (businessesDto.getStaffId() == null) { |
| | | |
| | | businessesDto.setStaffId(sysUsers.getSuId()); |
| | | } |
| | | achieveNew.setVipId(businessesDto.getStaffId()); |
| | | |
| | | PaginationVO pageVo = new PaginationVO(); |
| | | pageVo.setLimit(businessesDto.getPageSize()); |
| | | pageVo.setOffset((businessesDto.getPageNum() - 1) * businessesDto.getPageSize()); |
| | | return AjaxResult.buildSuccessInstance(tjVipSumDao.selectVipAchieveInPage(achieveNew, pageVo)); |
| | | } |
| | | |
| | | @ApiOperation(value = "员工专项", notes = "员工专项") |
| | | @PostMapping(value = "/findVipBusinessData") |
| | | public AjaxResult findVipBusinessData(@RequestBody @Validated VipStatisticsParamDto vipStatisticsParamDto) { |
| | | AjaxResult ajaxResult = dataAnalysisCustomerService.getStaffAnalysisResult(vipStatisticsParamDto, new Caculate<BigDecimal>() { |
| | | @Override |
| | | public Map<String, BigDecimal> exec(List<StatisticsTimeDaoParam> timeSpaceParam, Long shopId, Long staffId) { |
| | | switch (vipStatisticsParamDto.getType()) { |
| | | case "1" : |
| | | return tjVipSumDao.selectStaffOrderAchieve(timeSpaceParam, staffId); |
| | | case "2" : |
| | | return tjVipSumDao.selectStaffCashAchieve(timeSpaceParam, staffId); |
| | | case "3" : |
| | | return tjVipSumDao.selectStaffCardAchieve(timeSpaceParam, staffId); |
| | | case "4" : |
| | | return tjVipSumDao.selectStaffGoodsAchieve(timeSpaceParam, staffId); |
| | | case "5" : |
| | | return tjVipSumDao.selectStaffCardUseAchieve(timeSpaceParam, staffId); |
| | | case "6" : |
| | | return tjVipSumDao.selectStaffHisConsumeAchieve(timeSpaceParam, staffId); |
| | | case "7" : |
| | | return tjVipSumDao.selectStaffFreeConsumeAchieve(timeSpaceParam, staffId); |
| | | case "8" : |
| | | return tjVipSumDao.selectStaffCommissionAchieve(timeSpaceParam, staffId); |
| | | case "9" : |
| | | return tjVipSumDao.selectStaffPeopleNum(timeSpaceParam, staffId); |
| | | case "10" : |
| | | return tjVipSumDao.selectStaffProjNum(timeSpaceParam, staffId); |
| | | case "11" : |
| | | return tjVipSumDao.selectStaffProjTime(timeSpaceParam, staffId); |
| | | default: |
| | | return tjVipSumDao.selectStaffOrderAchieve(timeSpaceParam, staffId); |
| | | } |
| | | } |
| | | }); |
| | | |
| | | return setDataList(ajaxResult); |
| | | } |
| | | |
| | | } |