|
|
|
@ -87,8 +87,7 @@ public class DistributeReportServiceImpl extends ExtendServiceImpl<DistributeRep
|
|
|
|
|
reportFlowList.add(reportFlowVO);
|
|
|
|
|
}
|
|
|
|
|
map.put("data", reportFlowList);
|
|
|
|
|
}
|
|
|
|
|
else {
|
|
|
|
|
} else {
|
|
|
|
|
List<DistributeReportUserEntity> distributeReportUserList = distributeReportUserMapper.selectList(null);
|
|
|
|
|
for (DistributeReportUserEntity distributeReportUserEntity : distributeReportUserList) {
|
|
|
|
|
ReportFlowVO reportFlowVO = new ReportFlowVO();
|
|
|
|
@ -118,15 +117,14 @@ public class DistributeReportServiceImpl extends ExtendServiceImpl<DistributeRep
|
|
|
|
|
int yesterdayDistributeNum = 0;
|
|
|
|
|
if (type == 1) {
|
|
|
|
|
List<DistributeReportUserEntity> distributeReportUserList = distributeReportUserMapper
|
|
|
|
|
.selectList(wrapperUser);
|
|
|
|
|
.selectList(wrapperUser);
|
|
|
|
|
if (CollUtil.isNotEmpty(distributeReportUserList)) {
|
|
|
|
|
for (DistributeReportUserEntity distributeReportUserEntity : distributeReportUserList) {
|
|
|
|
|
yesterdayImportNum += distributeReportUserEntity.getTodayNum();
|
|
|
|
|
yesterdayDistributeNum += distributeReportUserEntity.getDistributeNum();
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
else {
|
|
|
|
|
} else {
|
|
|
|
|
if (userId == null) {
|
|
|
|
|
throw new BadRequestException("参数异常");
|
|
|
|
|
}
|
|
|
|
@ -155,15 +153,20 @@ public class DistributeReportServiceImpl extends ExtendServiceImpl<DistributeRep
|
|
|
|
|
if (CollUtil.isEmpty(allRecordInTodayList)) {
|
|
|
|
|
return;
|
|
|
|
|
}
|
|
|
|
|
//今日总量
|
|
|
|
|
int sum = allRecordInTodayList.stream().mapToInt(ClueRecordEntity::getSuccessNum).sum();
|
|
|
|
|
if (sum < 1) {
|
|
|
|
|
return;
|
|
|
|
|
}
|
|
|
|
|
// 提取所有用户
|
|
|
|
|
Set<Long> collect = allRecordInTodayList.stream()
|
|
|
|
|
.map(ClueRecordEntity::getCreateBy)
|
|
|
|
|
.collect(Collectors.toSet());
|
|
|
|
|
.map(ClueRecordEntity::getCreateBy)
|
|
|
|
|
.collect(Collectors.toSet());
|
|
|
|
|
Map<Long, String> userNameList = getUserName(collect);
|
|
|
|
|
|
|
|
|
|
// 1.按公司分组
|
|
|
|
|
Map<Long, List<ClueRecordEntity>> recordByUserMap = allRecordInTodayList.stream()
|
|
|
|
|
.collect(Collectors.groupingBy(ClueRecordEntity::getCreateBy));
|
|
|
|
|
.collect(Collectors.groupingBy(ClueRecordEntity::getCreateBy));
|
|
|
|
|
if (ObjectUtil.isEmpty(recordByUserMap)) {
|
|
|
|
|
return;
|
|
|
|
|
}
|
|
|
|
@ -171,8 +174,9 @@ public class DistributeReportServiceImpl extends ExtendServiceImpl<DistributeRep
|
|
|
|
|
// 之前的总量
|
|
|
|
|
Long historyTotal = distributeReportUserMapper.selectCount(
|
|
|
|
|
new LambdaQueryWrapper<DistributeReportUserEntity>().select(DistributeReportUserEntity::getTotalNum));
|
|
|
|
|
int sum = allRecordInTodayList.stream().mapToInt(ClueRecordEntity::getSuccessNum).sum();
|
|
|
|
|
|
|
|
|
|
int totalAll = historyTotal.intValue() + sum;
|
|
|
|
|
|
|
|
|
|
// 记录之前得统计id
|
|
|
|
|
List<Long> ids = new ArrayList<>();
|
|
|
|
|
for (Map.Entry<Long, List<ClueRecordEntity>> entry : recordByUserMap.entrySet()) {
|
|
|
|
@ -182,8 +186,8 @@ public class DistributeReportServiceImpl extends ExtendServiceImpl<DistributeRep
|
|
|
|
|
int sumByUser = clueRecordByUserList.stream().mapToInt(ClueRecordEntity::getSuccessNum).sum();
|
|
|
|
|
// 上次对象
|
|
|
|
|
DistributeReportUserEntity distributeReportUserByYesterday = distributeReportUserMapper
|
|
|
|
|
.selectOne(new LambdaQueryWrapper<DistributeReportUserEntity>()
|
|
|
|
|
.eq(DistributeReportUserEntity::getUserId, userId));
|
|
|
|
|
.selectOne(new LambdaQueryWrapper<DistributeReportUserEntity>()
|
|
|
|
|
.eq(DistributeReportUserEntity::getUserId, userId));
|
|
|
|
|
int yesterdayNum = 0;
|
|
|
|
|
int yesterdayTotalNum = 0;
|
|
|
|
|
if (distributeReportUserByYesterday != null) {
|
|
|
|
@ -195,17 +199,16 @@ public class DistributeReportServiceImpl extends ExtendServiceImpl<DistributeRep
|
|
|
|
|
}
|
|
|
|
|
yesterdayTotalNum = distributeReportUserByYesterday.getTotalNum();
|
|
|
|
|
ids.add(distributeReportUserByYesterday.getId());
|
|
|
|
|
}
|
|
|
|
|
else {
|
|
|
|
|
} else {
|
|
|
|
|
distributeReportUserByYesterday = new DistributeReportUserEntity();
|
|
|
|
|
}
|
|
|
|
|
// 总数
|
|
|
|
|
int totalNum = yesterdayTotalNum + sumByUser;
|
|
|
|
|
// 分发数
|
|
|
|
|
int distributeNum = clueRecordByUserList.stream()
|
|
|
|
|
.filter(c -> c.getAllocationStatus() == 1)
|
|
|
|
|
.mapToInt(ClueRecordEntity::getSuccessNum)
|
|
|
|
|
.sum();
|
|
|
|
|
.filter(c -> c.getAllocationStatus() == 1)
|
|
|
|
|
.mapToInt(ClueRecordEntity::getSuccessNum)
|
|
|
|
|
.sum();
|
|
|
|
|
double ratio;
|
|
|
|
|
ratio = NumberUtil.div(totalNum, totalAll);
|
|
|
|
|
double ratioDay = 0.0;
|
|
|
|
@ -227,13 +230,13 @@ public class DistributeReportServiceImpl extends ExtendServiceImpl<DistributeRep
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
private void dealByChannel(List<ClueRecordEntity> clueRecordByUserList, Long userId, Integer totalNumByUser,
|
|
|
|
|
String userName) {
|
|
|
|
|
String userName) {
|
|
|
|
|
List<DistributeReportChannelEntity> list = new ArrayList<>();
|
|
|
|
|
List<DistributeReportEntity> distributeReportEntityList = new ArrayList<>();
|
|
|
|
|
// .按渠道分组
|
|
|
|
|
Map<String, List<ClueRecordEntity>> recordByChannelMap = clueRecordByUserList.stream()
|
|
|
|
|
.filter(c -> StrUtil.isNotBlank(c.getChannelIdentifying()))
|
|
|
|
|
.collect(Collectors.groupingBy(ClueRecordEntity::getChannelIdentifying));
|
|
|
|
|
.filter(c -> StrUtil.isNotBlank(c.getChannelIdentifying()))
|
|
|
|
|
.collect(Collectors.groupingBy(ClueRecordEntity::getChannelIdentifying));
|
|
|
|
|
if (ObjectUtil.isEmpty(recordByChannelMap)) {
|
|
|
|
|
return;
|
|
|
|
|
}
|
|
|
|
@ -244,9 +247,9 @@ public class DistributeReportServiceImpl extends ExtendServiceImpl<DistributeRep
|
|
|
|
|
int sumByUser = clueRecordByChannel.stream().mapToInt(ClueRecordEntity::getSuccessNum).sum();
|
|
|
|
|
// 查询昨日信息
|
|
|
|
|
DistributeReportChannelEntity distributeReportUserByYesterday = distributeReportChannelMapper
|
|
|
|
|
.selectOne(new LambdaQueryWrapper<DistributeReportChannelEntity>()
|
|
|
|
|
.eq(DistributeReportChannelEntity::getUserId, userId)
|
|
|
|
|
.eq(DistributeReportChannelEntity::getChannel, channel));
|
|
|
|
|
.selectOne(new LambdaQueryWrapper<DistributeReportChannelEntity>()
|
|
|
|
|
.eq(DistributeReportChannelEntity::getUserId, userId)
|
|
|
|
|
.eq(DistributeReportChannelEntity::getChannel, channel));
|
|
|
|
|
int yesterdayNum = 0;
|
|
|
|
|
int yesterdayTotalNum = 0;
|
|
|
|
|
if (distributeReportUserByYesterday != null) {
|
|
|
|
@ -256,15 +259,14 @@ public class DistributeReportServiceImpl extends ExtendServiceImpl<DistributeRep
|
|
|
|
|
}
|
|
|
|
|
yesterdayTotalNum = distributeReportUserByYesterday.getTotalNum();
|
|
|
|
|
ids.add(distributeReportUserByYesterday.getId());
|
|
|
|
|
}
|
|
|
|
|
else {
|
|
|
|
|
} else {
|
|
|
|
|
distributeReportUserByYesterday = new DistributeReportChannelEntity();
|
|
|
|
|
}
|
|
|
|
|
int totalNum = yesterdayTotalNum + sumByUser;
|
|
|
|
|
int distributeNum = clueRecordByChannel.stream()
|
|
|
|
|
.filter(c -> c.getAllocationStatus() == 1)
|
|
|
|
|
.mapToInt(ClueRecordEntity::getSuccessNum)
|
|
|
|
|
.sum();
|
|
|
|
|
.filter(c -> c.getAllocationStatus() == 1)
|
|
|
|
|
.mapToInt(ClueRecordEntity::getSuccessNum)
|
|
|
|
|
.sum();
|
|
|
|
|
double ratio = NumberUtil.div(totalNum, totalNumByUser.intValue());
|
|
|
|
|
double ratioDay = 0.0;
|
|
|
|
|
if (yesterdayNum > 0) {
|
|
|
|
@ -287,7 +289,7 @@ public class DistributeReportServiceImpl extends ExtendServiceImpl<DistributeRep
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
private List<ReportFlowVO> getReportFlowList(List<DistributeReportEntity> distributeReportEntityList,
|
|
|
|
|
Date beginTime, Date endTime) {
|
|
|
|
|
Date beginTime, Date endTime) {
|
|
|
|
|
Map<String, DistributeReportEntity> callMap = new HashMap<>(8);
|
|
|
|
|
for (DistributeReportEntity reportDeduct : distributeReportEntityList) {
|
|
|
|
|
callMap.put(reportDeduct.getCreateTime().toString(), reportDeduct);
|
|
|
|
@ -302,8 +304,7 @@ public class DistributeReportServiceImpl extends ExtendServiceImpl<DistributeRep
|
|
|
|
|
reportFlowVO.setRatioDay(reportDeduct.getRatioDay());
|
|
|
|
|
reportFlowVO.setRatio(reportDeduct.getRatio());
|
|
|
|
|
reportFlowVO.setTotalNum(reportDeduct.getTodayNum());
|
|
|
|
|
}
|
|
|
|
|
else {
|
|
|
|
|
} else {
|
|
|
|
|
reportFlowVO.setRatioDay(0.0);
|
|
|
|
|
reportFlowVO.setRatio(0.0);
|
|
|
|
|
reportFlowVO.setTotalNum(0);
|
|
|
|
|