fix
This commit is contained in:
@@ -23,6 +23,9 @@ import org.springframework.stereotype.Service;
|
||||
|
||||
import javax.annotation.Resource;
|
||||
import java.math.BigDecimal;
|
||||
import java.time.LocalDate;
|
||||
import java.time.LocalDateTime;
|
||||
import java.time.format.DateTimeFormatter;
|
||||
import java.util.*;
|
||||
import java.util.stream.Collectors;
|
||||
|
||||
@@ -44,59 +47,73 @@ public class FranchiseReportServiceImpl implements FranchiseReportService {
|
||||
|
||||
@Override
|
||||
public List<FranchiseReportResponse> getFranchiseReport(FranchiseReportRequest request) {
|
||||
// if (StringUtils.isBlank(request.getBuildStartTime()) || StringUtils.isBlank(request.getBuildEndTime())) {
|
||||
// throw new ServiceException(ErrorCodeEnum.TIME_NULL_FALSE);
|
||||
// }
|
||||
// //集团查大区
|
||||
// List<Long> regionIdByGroupName = bigRegionDAO.getRegionIdByGroupName(request.getJoinGroupName());
|
||||
// if (CollectionUtils.isNotEmpty(regionIdByGroupName)) {
|
||||
// request.getRegionIds().addAll(regionIdByGroupName);
|
||||
// }
|
||||
// List<FranchiseReportDTO> shopFranchiseReportList = shopInfoDAO.getShopFranchiseReportList(request);
|
||||
// if (CollectionUtils.isEmpty(shopFranchiseReportList)) {
|
||||
// log.info("查询门店数据为空");
|
||||
// return null;
|
||||
// }
|
||||
// List<FranchiseReportResponse> responseList = new ArrayList<>();
|
||||
// List<Long> shopIds = shopFranchiseReportList.stream().map(FranchiseReportDTO::getShopId).collect(Collectors.toList());
|
||||
// Set<Long> regionSet = shopFranchiseReportList.stream().map(FranchiseReportDTO::getRegionId).collect(Collectors.toSet());
|
||||
// Map<Long, List<FranchiseReportDTO>> shopByRegionMap = shopFranchiseReportList.stream().collect(Collectors.groupingBy(FranchiseReportDTO::getRegionId));
|
||||
// //加盟费账单
|
||||
// List<FranchiseFeeDO> franchiseFeeList = franchiseFeeMapper.getFranchiseFeeByShopIds(shopIds);
|
||||
// Map<Long, FranchiseFeeDO> franchiseFeeMap = franchiseFeeList.stream().collect(Collectors.toMap(FranchiseFeeDO::getShopId, franchiseFeeDO -> franchiseFeeDO));
|
||||
// List<BigRegionDO> bigRegionDOList = bigRegionDAO.getByRegionIdList(new ArrayList<>(regionSet));
|
||||
// Map<Long, BigRegionDO> bigRegionDOMap = bigRegionDOList.stream().collect(Collectors.toMap(BigRegionDO::getRegionId, bigRegionDO -> bigRegionDO));
|
||||
// Map<Long, FranchiseReportResponse> responseByRegionIdMap = new HashMap<>();
|
||||
//
|
||||
// for (FranchiseReportDTO shopFranchiseReportDTO : shopFranchiseReportList) {
|
||||
// FranchiseReportResponse response = responseByRegionIdMap.get(shopFranchiseReportDTO.getRegionId());
|
||||
// if (response == null){
|
||||
// response = new FranchiseReportResponse();
|
||||
// }
|
||||
// if (StoreTypeEnum.NO_SHOW_STORE.getCode().equals(shopFranchiseReportDTO.getStoreType())){
|
||||
// response.setNoShowStoreNum(response.getNoShowStoreNum() + 1);
|
||||
// }else if (StoreTypeEnum.ORDINARY_STORE.getCode().equals(shopFranchiseReportDTO.getStoreType())){
|
||||
// response.setNormalStoreNum(response.getNormalStoreNum() + 1);
|
||||
// }else if (StoreTypeEnum.RESTAURANT_STORE.getCode().equals(shopFranchiseReportDTO.getStoreType())){
|
||||
// response.setRestaurantStoreNum(response.getRestaurantStoreNum() + 1);
|
||||
// }
|
||||
// response.setStoreNum(response.getStoreNum() + 1);
|
||||
// FranchiseFeeDO franchiseFeeDO = franchiseFeeMap.get(shopFranchiseReportDTO.getShopId());
|
||||
// if (franchiseFeeDO != null){
|
||||
// response.setFranchiseFeeTotal(response.getFranchiseFeeTotal().add(new BigDecimal(franchiseFeeDO.getYearFranchiseFee())));
|
||||
// response.setLoanMarginTotal(response.getLoanMarginTotal().add(new BigDecimal(franchiseFeeDO.getLoanMargin())));
|
||||
// response.setFirstYearManagementFeeTotal(response.getFirstYearManagementFeeTotal().add(new BigDecimal(franchiseFeeDO.getFirstYearManageFee())));
|
||||
// response.setFirstYearBrandingFeeTotal(response.getFirstYearBrandingFeeTotal().add(new BigDecimal(franchiseFeeDO.getFirstYearFee())));
|
||||
// response.setPerformanceBondTotal(response.getPerformanceBondTotal().add(new BigDecimal(franchiseFeeDO.getPerformanceBond())));
|
||||
// response.setManagementBrandingDesignFeeTotal(response.getManagementBrandingDesignFeeTotal()
|
||||
// .add(new BigDecimal(franchiseFeeDO.getYearFranchiseFee()))
|
||||
// .add(new BigDecimal(franchiseFeeDO.getFirstYearManageFee()))
|
||||
// .add(new BigDecimal(franchiseFeeDO.getFirstYearFee()))
|
||||
// .add(new BigDecimal(franchiseFeeDO.getPerformanceBond())));
|
||||
// }
|
||||
// responseByRegionIdMap.put(shopFranchiseReportDTO.getRegionId(), response);
|
||||
// }
|
||||
//
|
||||
if (StringUtils.isBlank(request.getBuildStartTime()) || StringUtils.isBlank(request.getBuildEndTime())) {
|
||||
throw new ServiceException(ErrorCodeEnum.TIME_NULL_FALSE);
|
||||
}
|
||||
//集团查大区
|
||||
List<Long> regionIdByGroupName = bigRegionDAO.getRegionIdByGroupName(request.getJoinGroupName());
|
||||
if (CollectionUtils.isNotEmpty(regionIdByGroupName)) {
|
||||
request.getRegionIds().addAll(regionIdByGroupName);
|
||||
}
|
||||
List<FranchiseReportDTO> shopFranchiseReportList = shopInfoDAO.getShopFranchiseReportList(request);
|
||||
if (CollectionUtils.isEmpty(shopFranchiseReportList)) {
|
||||
log.info("查询门店数据为空");
|
||||
return null;
|
||||
}
|
||||
List<FranchiseReportResponse> responseList = new ArrayList<>();
|
||||
List<Long> shopIds = shopFranchiseReportList.stream().map(FranchiseReportDTO::getShopId).collect(Collectors.toList());
|
||||
Set<Long> regionSet = shopFranchiseReportList.stream().map(FranchiseReportDTO::getRegionId).collect(Collectors.toSet());
|
||||
//加盟费账单
|
||||
List<FranchiseFeeDO> franchiseFeeList = franchiseFeeMapper.getFranchiseFeeByShopIds(shopIds);
|
||||
Map<Long, FranchiseFeeDO> franchiseFeeMap = franchiseFeeList.stream().collect(Collectors.toMap(FranchiseFeeDO::getShopId, franchiseFeeDO -> franchiseFeeDO));
|
||||
List<BigRegionDO> bigRegionDOList = bigRegionDAO.getByRegionIdList(new ArrayList<>(regionSet));
|
||||
Map<Long, BigRegionDO> bigRegionDOMap = bigRegionDOList.stream().collect(Collectors.toMap(BigRegionDO::getRegionId, bigRegionDO -> bigRegionDO));
|
||||
Map<Long, FranchiseReportResponse> responseByRegionIdMap = new HashMap<>();
|
||||
|
||||
for (FranchiseReportDTO shopFranchiseReportDTO : shopFranchiseReportList) {
|
||||
FranchiseReportResponse response = responseByRegionIdMap.get(shopFranchiseReportDTO.getRegionId());
|
||||
if (response == null) {
|
||||
response = new FranchiseReportResponse();
|
||||
response.setJoinGroupName(bigRegionDOMap.getOrDefault(shopFranchiseReportDTO.getRegionId(), new BigRegionDO()).getGroupName());
|
||||
}
|
||||
if (StoreTypeEnum.NO_SHOW_STORE.getCode().equals(shopFranchiseReportDTO.getStoreType())) {
|
||||
response.setNoShowStoreNum(response.getNoShowStoreNum() + 1);
|
||||
} else if (StoreTypeEnum.ORDINARY_STORE.getCode().equals(shopFranchiseReportDTO.getStoreType())) {
|
||||
response.setNormalStoreNum(response.getNormalStoreNum() + 1);
|
||||
} else if (StoreTypeEnum.RESTAURANT_STORE.getCode().equals(shopFranchiseReportDTO.getStoreType())) {
|
||||
response.setRestaurantStoreNum(response.getRestaurantStoreNum() + 1);
|
||||
}
|
||||
response.setStoreNum(response.getStoreNum() + 1);
|
||||
FranchiseFeeDO franchiseFeeDO = franchiseFeeMap.get(shopFranchiseReportDTO.getShopId());
|
||||
if (franchiseFeeDO != null) {
|
||||
response.setFranchiseFeeTotal(response.getFranchiseFeeTotal().add(new BigDecimal(franchiseFeeDO.getYearFranchiseFee())));
|
||||
response.setLoanMarginTotal(response.getLoanMarginTotal().add(new BigDecimal(franchiseFeeDO.getLoanMargin())));
|
||||
response.setFirstYearManagementFeeTotal(response.getFirstYearManagementFeeTotal().add(new BigDecimal(franchiseFeeDO.getFirstYearManageFee())));
|
||||
response.setFirstYearBrandingFeeTotal(response.getFirstYearBrandingFeeTotal().add(new BigDecimal(franchiseFeeDO.getFirstYearFee())));
|
||||
response.setPerformanceBondTotal(response.getPerformanceBondTotal().add(new BigDecimal(franchiseFeeDO.getPerformanceBond())));
|
||||
response.setManagementBrandingDesignFeeTotal(response.getManagementBrandingDesignFeeTotal()
|
||||
.add(new BigDecimal(franchiseFeeDO.getYearFranchiseFee()))
|
||||
.add(new BigDecimal(franchiseFeeDO.getFirstYearManageFee()))
|
||||
.add(new BigDecimal(franchiseFeeDO.getFirstYearFee()))
|
||||
.add(new BigDecimal(franchiseFeeDO.getPerformanceBond())));
|
||||
}
|
||||
responseByRegionIdMap.put(shopFranchiseReportDTO.getRegionId(), response);
|
||||
}
|
||||
FranchiseReportRequest yesterdayRequest = new FranchiseReportRequest();
|
||||
yesterdayRequest.setJoinGroupName(request.getJoinGroupName());
|
||||
yesterdayRequest.setRegionIds(request.getRegionIds());
|
||||
yesterdayRequest.setStoreTypes(request.getStoreTypes());
|
||||
LocalDate now = LocalDate.now();
|
||||
DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss");
|
||||
//昨日 00:00:00
|
||||
LocalDateTime yesterdayStartDate = now.minusDays(1).atStartOfDay();
|
||||
String yesterdayStartTime = yesterdayStartDate.format(formatter);
|
||||
//昨日 23:59:59
|
||||
LocalDateTime yesterdayEndDate = now.minusDays(1).atTime(23,59,59);
|
||||
String yesterdayEndTime = yesterdayEndDate.format(formatter);
|
||||
yesterdayRequest.setBuildStartTime(yesterdayStartTime);
|
||||
yesterdayRequest.setBuildEndTime(yesterdayEndTime);
|
||||
List<FranchiseReportDTO> yesterdayShopFranchiseReportList = shopInfoDAO.getShopFranchiseReportList(yesterdayRequest);
|
||||
return null;
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user