|  |  | 
 |  |  | 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 | 
 |  |  | 
 |  |  | public class ApiStatisticsAction { | 
 |  |  |  | 
 |  |  |     @Autowired | 
 |  |  |     TjVipSumDao tjVipSumDao; | 
 |  |  |  | 
 |  |  |     @Autowired | 
 |  |  |     private SysBusinessDataDao sysBusinessDataDao; | 
 |  |  |  | 
 |  |  |     @Autowired | 
 |  |  |     private DataAnalysisCustomerServiceImpl dataAnalysisCustomerService; | 
 |  |  |  | 
 |  |  |     @ApiOperation(value = "公司经营报表/门店经营报表") | 
 |  |  |     @ApiResponses({ | 
 |  |  | 
 |  |  |  | 
 |  |  |         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); | 
 |  |  |     } | 
 |  |  |  | 
 |  |  | } |