统计报表接口,数据梳理接口

This commit is contained in:
shuo.wang
2025-05-16 13:18:59 +08:00
parent 8d7d1580e3
commit 81263112d5
2 changed files with 34 additions and 9 deletions

View File

@@ -8,6 +8,7 @@ import io.swagger.annotations.ApiModelProperty;
import lombok.Data; import lombok.Data;
import java.math.BigDecimal; import java.math.BigDecimal;
import java.util.List;
/** /**
* @Author: WangShuo * @Author: WangShuo
@@ -89,6 +90,9 @@ public class FranchiseReportResponse {
private Integer yesterdayStoreNum = 0; private Integer yesterdayStoreNum = 0;
@ExcelIgnore @ExcelIgnore
private Long regionId; private Long regionId;
//集团维度使用
@ExcelIgnore
private List<Long> regionIds;
} }

View File

@@ -83,10 +83,16 @@ public class FranchiseReportServiceImpl implements FranchiseReportService {
continue; continue;
} }
FranchiseReportResponse response = new FranchiseReportResponse(); FranchiseReportResponse response = new FranchiseReportResponse();
//查集团维度
if (CollectionUtils.isEmpty(request.getJoinGroupName()) && CollectionUtils.isEmpty(request.getRegionIds())) { if (CollectionUtils.isEmpty(request.getJoinGroupName()) && CollectionUtils.isEmpty(request.getRegionIds())) {
response = responseByJoinGroupNameMap.getOrDefault(bigRegionDO.getGroupName(), new FranchiseReportResponse()); response = responseByJoinGroupNameMap.getOrDefault(bigRegionDO.getGroupName(), new FranchiseReportResponse());
response.setJoinGroupName(bigRegionDO.getGroupName()); response.setJoinGroupName(bigRegionDO.getGroupName());
if (CollectionUtils.isEmpty(response.getRegionIds())){
response.setRegionIds(new ArrayList<>());
}
response.getRegionIds().add(shopFranchiseReportDTO.getRegionId());
} else { } else {
//查大区维度
response = responseByRegionIdMap.get(shopFranchiseReportDTO.getRegionId()); response = responseByRegionIdMap.get(shopFranchiseReportDTO.getRegionId());
} }
@@ -143,22 +149,37 @@ public class FranchiseReportServiceImpl implements FranchiseReportService {
DateTimeFormatter formatter1 = DateTimeFormatter.ofPattern("yyyy-MM-dd"); DateTimeFormatter formatter1 = DateTimeFormatter.ofPattern("yyyy-MM-dd");
if (CollectionUtils.isNotEmpty(yesterdayShopFranchiseReportList)) { if (CollectionUtils.isNotEmpty(yesterdayShopFranchiseReportList)) {
Map<Long, List<FranchiseReportDTO>> yesterdayMap = yesterdayShopFranchiseReportList.stream().collect(Collectors.groupingBy(FranchiseReportDTO::getRegionId)); Map<Long, List<FranchiseReportDTO>> yesterdayMap = yesterdayShopFranchiseReportList.stream().collect(Collectors.groupingBy(FranchiseReportDTO::getRegionId));
for (Long regionId : responseByRegionIdMap.keySet()) { //查集团维度
FranchiseReportResponse response = responseByRegionIdMap.get(regionId); if (CollectionUtils.isEmpty(request.getJoinGroupName()) && CollectionUtils.isEmpty(request.getRegionIds())) {
if (Objects.isNull(response)) { for (FranchiseReportResponse responseByJoinGroupName : responseByJoinGroupNameMap.values()){
continue;
List<Long> regionIds = responseByJoinGroupName.getRegionIds();
for (Long regionId : regionIds){
BigRegionDO bigRegionDO = bigRegionDOMap.get(regionId);
List<FranchiseReportDTO> yesterdayList = yesterdayMap.getOrDefault(bigRegionDO.getRegionId(),new ArrayList<>());
responseByJoinGroupName.setYesterdayDate(yesterdayStartDate.format(formatter1));
responseByJoinGroupName.setYesterdayStoreNum(responseByJoinGroupName.getYesterdayStoreNum() +(CollectionUtils.isEmpty(yesterdayList) ? 0 : yesterdayList.size()));
}
}
}else{
//大区维度
for (Long regionId : responseByRegionIdMap.keySet()) {
FranchiseReportResponse response = responseByRegionIdMap.get(regionId);
if (Objects.isNull(response)) {
continue;
}
List<FranchiseReportDTO> yesterdayList = yesterdayMap.get(regionId);
response.setYesterdayDate(yesterdayStartDate.format(formatter1));
response.setYesterdayStoreNum(CollectionUtils.isEmpty(yesterdayList) ? 0 : yesterdayList.size());
responseByRegionIdMap.put(regionId, response);
} }
List<FranchiseReportDTO> yesterdayList = yesterdayMap.get(regionId);
response.setYesterdayDate(yesterdayStartDate.format(formatter1));
response.setYesterdayStoreNum(CollectionUtils.isEmpty(yesterdayList) ? 0 : yesterdayList.size());
responseByRegionIdMap.put(regionId, response);
} }
} }
List<FranchiseReportResponse> list = new ArrayList<>(); List<FranchiseReportResponse> list = new ArrayList<>();
if (CollectionUtils.isEmpty(request.getJoinGroupName()) && CollectionUtils.isEmpty(request.getRegionIds())) { if (CollectionUtils.isEmpty(request.getJoinGroupName()) && CollectionUtils.isEmpty(request.getRegionIds())) {
list.addAll(responseByJoinGroupNameMap.values()); list.addAll(responseByJoinGroupNameMap.values());
}else{ } else {
list.addAll(responseByRegionIdMap.values()); list.addAll(responseByRegionIdMap.values());
} }
if (CollectionUtils.isEmpty(list)) { if (CollectionUtils.isEmpty(list)) {