From 4351e71d782741143a98f86f6648acd16689165f Mon Sep 17 00:00:00 2001 From: Helius <wangdoubleone@gmail.com> Date: Fri, 27 May 2022 19:48:02 +0800 Subject: [PATCH] Merge branch 'developer' into hive2.0 --- zq-erp/src/main/java/com/matrix/system/app/action/ApiStatisticsAction.java | 265 +++++++++++++++++++++++++++++++++++++++++++++------- 1 files changed, 229 insertions(+), 36 deletions(-) diff --git a/zq-erp/src/main/java/com/matrix/system/app/action/ApiStatisticsAction.java b/zq-erp/src/main/java/com/matrix/system/app/action/ApiStatisticsAction.java index 83a3a5a..3cdc992 100644 --- a/zq-erp/src/main/java/com/matrix/system/app/action/ApiStatisticsAction.java +++ b/zq-erp/src/main/java/com/matrix/system/app/action/ApiStatisticsAction.java @@ -1,28 +1,34 @@ 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.DateUtil; +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.StatisticsParamVo; -import com.matrix.system.hiveErp.analysUtil.StatisticsTimeDaoParam; +import com.matrix.system.hiveErp.analysUtil.*; 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.jsoup.helper.DataUtil; 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.List; -import java.util.Map; +import java.util.*; /** * @author wzy @@ -48,30 +54,63 @@ }) @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); - + String unit = ""; + int calenderUnit; if (BusinessesDto.DAY.equals(businessesDto.getType())) { - sysBusinessData.setT1("%Y-%m-%d"); + unit = "日"; + calenderUnit = Calendar.DATE; } else { - sysBusinessData.setT1("%Y-%m"); + unit = "月"; + calenderUnit = Calendar.MONTH; } - 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)); + SysUsers user = WebUtil.getSessionAttribute(MatrixConstance.LOGIN_KEY); + int start = (businessesDto.getPageNum() - 1) * businessesDto.getPageSize(); + int size = businessesDto.getPageSize(); + Calendar calendar = Calendar.getInstance(); + calendar.add(calenderUnit, 1); + calendar.add(calenderUnit, -start); + String endTime = DateUtil.dateToString(calendar.getTime(), DateUtil.DATE_FORMAT_DD); + calendar.add(calenderUnit, -size); + String startTime = DateUtil.dateToString(calendar.getTime(), DateUtil.DATE_FORMAT_DD); + List<Date> xAxis = StatisticsTimeUtil.getTimeSpace(startTime, endTime, unit); + List<StatisticsTimeDaoParam> timeSpaceParam = StatisticsTimeUtil.buidParam(xAxis); + List<StatisticsTimeDaoParam> statisticsTimeDaoParams = timeSpaceParam.subList(0, timeSpaceParam.size() - 2); + List<BusinessesDataShowVo> list = sysBusinessDataDao.selectApiBusinessData(statisticsTimeDaoParams, businessesDto.getShopId(), user.getCompanyId()); + + List<BusinessesDataShowVo> result = new ArrayList<>(); + for (int i = list.size() - 1; i >= 0; i--) { + BusinessesDataShowVo item = list.get(i); + String dataTime = item.getDataTime(); + if (BusinessesDto.DAY.equals(businessesDto.getType())) { + item.setDataTime(DateUtil.dateToString(DateUtil.stringToDate(dataTime, DateUtil.DATE_FORMAT_DD), DateUtil.DATE_FORMAT_DD)); + } else { + item.setDataTime(DateUtil.dateToString(DateUtil.stringToDate(dataTime, DateUtil.MONTH), DateUtil.MONTH)); + } + result.add(item); + } + return AjaxResult.buildSuccessInstance(result); + } + + public static void main(String[] args) { + int start = 1; + + int end = 10; + + Calendar calendar = Calendar.getInstance(); + calendar.add(Calendar.DATE, start); + Date time = calendar.getTime(); + System.out.println(time); + calendar.add(Calendar.DATE, end); + System.out.println(calendar.getTime()); + } @ApiOperation(value = "专项", notes = "专项") @PostMapping(value = "/findBusinessInCome") public AjaxResult findBusinessInCome(@RequestBody @Validated StatisticsParamVo statisticsParam) { if (statisticsParam.getShopId() != null) { - return dataAnalysisCustomerService.getAnalysisResult(statisticsParam, new Caculate<BigDecimal>() { + AjaxResult ajaxResult = dataAnalysisCustomerService.getAnalysisResult(statisticsParam, new Caculate<BigDecimal>() { @Override public Map<String, BigDecimal> exec(List<StatisticsTimeDaoParam> timeSpaceParam, Long shopId, Long companyId) { switch (statisticsParam.getType()) { @@ -82,22 +121,51 @@ 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); + case "5" : + return tjVipSumDao.selectCashRefund(timeSpaceParam, shopId, null); + case "6" : + return tjVipSumDao.selectCardRefund(timeSpaceParam, shopId, null); + case "7": + return tjVipSumDao.selectProductAchieve(timeSpaceParam, shopId, null); + case "8": + return tjVipSumDao.selectCardAchieve(timeSpaceParam, shopId, null); + case "9": + return tjVipSumDao.selectRepayment(timeSpaceParam, shopId, null); + case "10": + return tjVipSumDao.selectPerCustomCnt(timeSpaceParam, shopId, null); + case "11": + return tjVipSumDao.selectCustomGoodsCnt(timeSpaceParam, shopId, null); + case "12": + return tjVipSumDao.selectPerCustomPrice(timeSpaceParam, shopId, null); + case "13": + return tjVipSumDao.selectCost(timeSpaceParam, shopId, null); + case "14": + return tjVipSumDao.selectGrossProfit(timeSpaceParam, shopId, null); + case "15": + return tjVipSumDao.selectGrossProfitRate(timeSpaceParam, shopId, null); + case "16" : + return tjVipSumDao.selectHisConsume(timeSpaceParam, shopId, null); + case "17" : + return tjVipSumDao.selectFreeConsume(timeSpaceParam, shopId, null); + case "18" : + return tjVipSumDao.selectPeopleCnt(timeSpaceParam, shopId, null); + case "19" : + return tjVipSumDao.selectProjConsumeCnt(timeSpaceParam, shopId, null); + case "20" : + return tjVipSumDao.selectTimeLength(timeSpaceParam, shopId, null); + case "21" : + return tjVipSumDao.selectCardAmount(timeSpaceParam, shopId, null); + case "22" : + return tjVipSumDao.selectFreeAmount(timeSpaceParam, shopId, null); default : return tjVipSumDao.selectBusinessInCome(timeSpaceParam, shopId, null); } } }); + return setDataList(ajaxResult); } else { - return dataAnalysisCustomerService.getCompanyAnalysisResult(statisticsParam, new Caculate<BigDecimal>() { + AjaxResult ajaxResult = dataAnalysisCustomerService.getCompanyAnalysisResult(statisticsParam, new Caculate<BigDecimal>() { @Override public Map<String, BigDecimal> exec(List<StatisticsTimeDaoParam> timeSpaceParam, Long shopId, Long companyId) { switch (statisticsParam.getType()) { @@ -108,21 +176,146 @@ 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); + case "5" : + return tjVipSumDao.selectCashRefund(timeSpaceParam, null, companyId); + case "6" : + return tjVipSumDao.selectCardRefund(timeSpaceParam, null, companyId); + case "7": + return tjVipSumDao.selectProductAchieve(timeSpaceParam, null, companyId); + case "8": + return tjVipSumDao.selectCardAchieve(timeSpaceParam, null, companyId); + case "9": + return tjVipSumDao.selectRepayment(timeSpaceParam, null, companyId); + case "10": + return tjVipSumDao.selectPerCustomCnt(timeSpaceParam, null, companyId); + case "11": + return tjVipSumDao.selectCustomGoodsCnt(timeSpaceParam, null, companyId); + case "12": + return tjVipSumDao.selectPerCustomPrice(timeSpaceParam, null, companyId); + case "13": + return tjVipSumDao.selectCost(timeSpaceParam, null, companyId); + case "14": + return tjVipSumDao.selectCost(timeSpaceParam, null, companyId); + case "15": + return tjVipSumDao.selectCost(timeSpaceParam, null, companyId); + case "16" : + return tjVipSumDao.selectHisConsume(timeSpaceParam, null, companyId); + case "17" : + return tjVipSumDao.selectFreeConsume(timeSpaceParam, null, companyId); + case "18" : + return tjVipSumDao.selectPeopleCnt(timeSpaceParam, null, companyId); + case "19" : + return tjVipSumDao.selectProjConsumeCnt(timeSpaceParam, null, companyId); + case "20" : + return tjVipSumDao.selectTimeLength(timeSpaceParam, null, companyId); + case "21" : + return tjVipSumDao.selectCardAmount(timeSpaceParam, null, companyId); + case "22" : + return tjVipSumDao.selectFreeAmount(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) { + String unit = ""; + int calenderUnit; + if (BusinessesDto.DAY.equals(businessesDto.getType())) { + unit = "日"; + calenderUnit = Calendar.DATE; + } else { + unit = "月"; + calenderUnit = Calendar.MONTH; + } + + int start = (businessesDto.getPageNum() - 1) * businessesDto.getPageSize(); + int size = businessesDto.getPageSize(); + Calendar calendar = Calendar.getInstance(); + calendar.add(calenderUnit, 1); + calendar.add(calenderUnit, -start); + String endTime = DateUtil.dateToString(calendar.getTime(), DateUtil.DATE_FORMAT_DD); + calendar.add(calenderUnit, -size); + String startTime = DateUtil.dateToString(calendar.getTime(), DateUtil.DATE_FORMAT_DD); + List<Date> xAxis = StatisticsTimeUtil.getTimeSpace(startTime, endTime, unit); + List<StatisticsTimeDaoParam> timeSpaceParam = StatisticsTimeUtil.buidParam(xAxis); + List<StatisticsTimeDaoParam> statisticsTimeDaoParams = timeSpaceParam.subList(0, timeSpaceParam.size() - 2); + List<VipAchieveDataShowVo> list = tjVipSumDao.selectVipAchieveInPage(statisticsTimeDaoParams, businessesDto.getStaffId()); + + List<VipAchieveDataShowVo> result = new ArrayList<>(); + for (int i = list.size() - 1; i >= 0; i--) { + VipAchieveDataShowVo item = list.get(i); + String dataTime = item.getTime(); + if (BusinessesDto.DAY.equals(businessesDto.getType())) { + item.setTime(DateUtil.dateToString(DateUtil.stringToDate(dataTime, DateUtil.DATE_FORMAT_DD), DateUtil.DATE_FORMAT_DD)); + } else { + item.setTime(DateUtil.dateToString(DateUtil.stringToDate(dataTime, DateUtil.MONTH), DateUtil.MONTH)); + } + result.add(item); + } + return AjaxResult.buildSuccessInstance(result); + } + + @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.selectStaffHisConsumeAchieve(timeSpaceParam, staffId); + case "6" : + return tjVipSumDao.selectStaffFreeConsumeAchieve(timeSpaceParam, staffId); + case "7" : + return tjVipSumDao.selectStaffCommissionAchieve(timeSpaceParam, staffId); + case "8" : + return tjVipSumDao.selectStaffPeopleNum(timeSpaceParam, staffId); + case "9" : + return tjVipSumDao.selectStaffProjNum(timeSpaceParam, staffId); + case "10" : + return tjVipSumDao.selectStaffProjTime(timeSpaceParam, staffId); + default: + return tjVipSumDao.selectStaffOrderAchieve(timeSpaceParam, staffId); + } + } + }); + + return setDataList(ajaxResult); + } } -- Gitblit v1.9.1