|
|
@@ -535,7 +535,7 @@ public class AdminStatisticsServiceImpl implements AdminStatisticsService {
|
|
|
* @return
|
|
|
*/
|
|
|
@Override
|
|
|
- public Object monthData(String dateStr) {
|
|
|
+ public Map<String,Object> monthData(String dateStr) {
|
|
|
DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyy-MM-dd");
|
|
|
LocalDate localDate =LocalDate.parse(dateStr,formatter);
|
|
|
LocalDate newDate = localDate.plusMonths(1);
|
|
|
@@ -548,27 +548,50 @@ public class AdminStatisticsServiceImpl implements AdminStatisticsService {
|
|
|
if (daysBetween==1){
|
|
|
AdminPublicDuration a = new AdminPublicDuration();
|
|
|
a.setId(e.getAid());
|
|
|
- a.setDate(e.getReleaseStart().toInstant().atZone(ZoneId.systemDefault()).toLocalDate());
|
|
|
+ a.setDate(e.getReleaseStart());
|
|
|
a.setDuration(e.getDuration());
|
|
|
Admin admin = adminMapper.queryById(e.getAid());
|
|
|
a.setName(admin.getName());
|
|
|
+ System.out.println(a);
|
|
|
list.add(a);
|
|
|
}else if(daysBetween>0){
|
|
|
double v = e.getDuration() / daysBetween;
|
|
|
for (int i = 0; i < daysBetween; i++) {
|
|
|
AdminPublicDuration a = new AdminPublicDuration();
|
|
|
a.setId(e.getAid());
|
|
|
- a.setDate(e.getReleaseStart().toInstant().atZone(ZoneId.systemDefault()).toLocalDate().plusDays(i));
|
|
|
+ LocalDate localDate1 = e.getReleaseStart().toInstant().atZone(ZoneId.systemDefault()).toLocalDate().plusDays(i);
|
|
|
+ a.setDate(Date.from(localDate1.atStartOfDay(ZoneId.systemDefault()).toInstant()));
|
|
|
a.setDuration(v);
|
|
|
Admin admin = adminMapper.queryById(e.getAid());
|
|
|
a.setName(admin.getName());
|
|
|
+ System.out.println(a);
|
|
|
list.add(a);
|
|
|
}
|
|
|
}
|
|
|
-
|
|
|
-
|
|
|
}
|
|
|
- return list;
|
|
|
+ //将数据统计到人
|
|
|
+ Map<String, BigDecimal> durationMap = new HashMap<>();
|
|
|
+ Map<String, String> nameMap = new HashMap<>();
|
|
|
+ for (AdminPublicDuration e : list) {
|
|
|
+ String id = e.getId(); // 假设 AdminStatisticsBo 有一个 getId() 方法
|
|
|
+ BigDecimal duration = BigDecimal.valueOf(e.getDuration()); // 假设 AdminStatisticsBo 有一个 getCallDurationSum() 方法
|
|
|
+ if (durationMap.containsKey(id)) {
|
|
|
+ BigDecimal currentDuration = durationMap.get(id);
|
|
|
+ durationMap.put(id, currentDuration.add(duration));
|
|
|
+ String name = e.getName();
|
|
|
+ nameMap.put(id, name);
|
|
|
+ } else {
|
|
|
+ durationMap.put(id, duration);
|
|
|
+ }
|
|
|
+ }
|
|
|
+ List<AdminPublicDuration> list2=new ArrayList<>();
|
|
|
+ for (Map.Entry<String, BigDecimal> entry : durationMap.entrySet()) {
|
|
|
+ list2.add(new AdminPublicDuration(entry.getKey(),nameMap.get(entry.getKey()),entry.getValue().doubleValue()));
|
|
|
+ }
|
|
|
+ Map<String,Object> map=new HashMap<>();
|
|
|
+ map.put("date",list);
|
|
|
+ map.put("count",list2);
|
|
|
+ return map;
|
|
|
}
|
|
|
|
|
|
|