|
|
@@ -333,14 +333,23 @@ public class AdminStatisticsServiceImpl implements AdminStatisticsService {
|
|
|
@Override
|
|
|
public Object salesTeam(String startTime, String endTime) {
|
|
|
List<SalesTeamBo> resList=new ArrayList<>();
|
|
|
- List<SalesTeam> salesTeams = salesTeamMapper.queryByAid(TokenManager.getAdminId());
|
|
|
+ String aid = TokenManager.getAdminId();
|
|
|
+
|
|
|
+ List<SalesTeam> salesTeams = salesTeamMapper.queryByAid(aid);
|
|
|
//如果不是团队负责人,所有数据都为null
|
|
|
+ int teamCallSum=0;
|
|
|
+ BigDecimal teamCallDurationSum=BigDecimal.ZERO;
|
|
|
+ //先计算负责人
|
|
|
+ AdminStatisticsBo ab=callLogMapper.selectAdminCallSum(aid,startTime,endTime);
|
|
|
+ if (ab!= null) {
|
|
|
+ if (ab.getCallSum()!= null) teamCallSum = teamCallSum + ab.getCallSum();
|
|
|
+ if (ab.getCallDurationSum()!= null) teamCallDurationSum = teamCallDurationSum.add(ab.getCallDurationSum());
|
|
|
+ }
|
|
|
if (!salesTeams.isEmpty()){
|
|
|
//先获取顶层再迭代获取每一层
|
|
|
for (SalesTeam e : salesTeams) {
|
|
|
SalesTeamBo salesTeamBo = new SalesTeamBo(e);
|
|
|
- int teamCallSum=0;
|
|
|
- BigDecimal teamCallDurationSum=BigDecimal.ZERO;
|
|
|
+ //再计算所有成员
|
|
|
List<Admin> admins = adminMapper.queryByTeamId(e.getId());
|
|
|
for (Admin e2 : admins) {
|
|
|
AdminStatisticsBo as=callLogMapper.selectAdminCallSum(e2.getId(),startTime,endTime);
|
|
|
@@ -361,24 +370,35 @@ public class AdminStatisticsServiceImpl implements AdminStatisticsService {
|
|
|
|
|
|
private void addSonTeam(List<SalesTeamBo>list, SalesTeamBo salesTeamBo, String startTime, String endTime) {
|
|
|
List<SalesTeam> salesTeams = salesTeamMapper.queryBySuperId(salesTeamBo.getId());
|
|
|
- int teamCallSum=0;
|
|
|
- BigDecimal teamCallDurationSum=BigDecimal.ZERO;
|
|
|
+
|
|
|
if (!salesTeams.isEmpty()){
|
|
|
//计算所有子项数据
|
|
|
for (SalesTeam e : salesTeams) {
|
|
|
SalesTeamBo salesTeamBo2 = new SalesTeamBo(e);
|
|
|
+ int teamCallSum=0;
|
|
|
+ BigDecimal teamCallDurationSum=BigDecimal.ZERO;
|
|
|
+ //先计算负责人
|
|
|
+ AdminStatisticsBo ab=callLogMapper.selectAdminCallSum(s,startTime,endTime);
|
|
|
+ if (ab!= null) {
|
|
|
+ if (ab.getCallSum()!= null) teamCallSum = teamCallSum + ab.getCallSum();
|
|
|
+ if (ab.getCallDurationSum()!= null) teamCallDurationSum = teamCallDurationSum.add(ab.getCallDurationSum());
|
|
|
+ }
|
|
|
List<Admin> admins = adminMapper.queryByTeamId(e.getId());
|
|
|
for (Admin admin : admins) {
|
|
|
AdminStatisticsBo as=callLogMapper.selectAdminCallSum(admin.getId(),startTime,endTime);
|
|
|
+ if (as!= null) {
|
|
|
+ if (as.getCallSum()!= null) teamCallSum = teamCallSum + as.getCallSum();
|
|
|
+ if (as.getCallDurationSum()!= null) teamCallDurationSum = teamCallDurationSum.add(as.getCallDurationSum());
|
|
|
+ }
|
|
|
}
|
|
|
- salesTeamBo.setTeamCallSum(teamCallSum);
|
|
|
- salesTeamBo.setTeamCallDurationSum(teamCallDurationSum);
|
|
|
- salesTeamBo.setTeamPeopleSum(admins.size());
|
|
|
+ salesTeamBo2.setTeamCallSum(teamCallSum);
|
|
|
+ salesTeamBo2.setTeamCallDurationSum(teamCallDurationSum);
|
|
|
+ salesTeamBo2.setTeamPeopleSum(admins.size());
|
|
|
//迭代计算并赋值给上一层
|
|
|
addSonTeam(list,salesTeamBo2,startTime,endTime);
|
|
|
- salesTeamBo.setTeamPeopleSum(salesTeamBo.getTeamPeopleSum()+salesTeamBo2.getTeamPeopleSum());
|
|
|
- salesTeamBo.setTeamCallSum(salesTeamBo.getTeamCallSum()+salesTeamBo2.getTeamCallSum());
|
|
|
- salesTeamBo.setTeamCallDurationSum(salesTeamBo.getTeamCallDurationSum().add(salesTeamBo2.getTeamCallDurationSum()));
|
|
|
+ if (salesTeamBo2.getTeamPeopleSum()!=null)salesTeamBo.setTeamPeopleSum(salesTeamBo.getTeamPeopleSum() + salesTeamBo2.getTeamPeopleSum());
|
|
|
+ if (salesTeamBo2.getTeamCallSum()!=null)salesTeamBo.setTeamCallSum(salesTeamBo.getTeamCallSum()+salesTeamBo2.getTeamCallSum());
|
|
|
+ if (salesTeamBo2.getTeamCallDurationSum()!=null)salesTeamBo.setTeamCallDurationSum(salesTeamBo.getTeamCallDurationSum().add(salesTeamBo2.getTeamCallDurationSum()));
|
|
|
list.add(salesTeamBo2);
|
|
|
}
|
|
|
}
|