|
@@ -3,16 +3,16 @@ package com.huike.report.service.impl;
|
|
|
import java.math.BigDecimal;
|
|
|
import java.text.ParseException;
|
|
|
import java.text.SimpleDateFormat;
|
|
|
-import java.util.ArrayList;
|
|
|
-import java.util.Calendar;
|
|
|
-import java.util.Date;
|
|
|
-import java.util.HashMap;
|
|
|
-import java.util.List;
|
|
|
-import java.util.Map;
|
|
|
-import java.util.Optional;
|
|
|
+import java.util.*;
|
|
|
import java.util.concurrent.CompletableFuture;
|
|
|
+import java.util.stream.Collectors;
|
|
|
+import java.util.stream.Stream;
|
|
|
|
|
|
+import com.baomidou.mybatisplus.extension.api.R;
|
|
|
+import com.huike.clues.utils.JobUtils;
|
|
|
+import com.huike.common.utils.StringUtils;
|
|
|
import com.huike.report.domain.vo.*;
|
|
|
+import lombok.SneakyThrows;
|
|
|
import org.springframework.beans.BeanUtils;
|
|
|
import org.springframework.beans.factory.annotation.Autowired;
|
|
|
import org.springframework.stereotype.Service;
|
|
@@ -368,4 +368,106 @@ public class ReportServiceImpl implements IReportService {
|
|
|
return result;
|
|
|
}
|
|
|
|
|
|
+ /**
|
|
|
+ * 今日简报
|
|
|
+ * @return
|
|
|
+ */
|
|
|
+ @Override
|
|
|
+ public Map<String, Object> getTodayInfo() {
|
|
|
+
|
|
|
+ IndexVo indexVo = new IndexVo();
|
|
|
+ Calendar calendar = Calendar.getInstance();
|
|
|
+ calendar.setTime(new Date());
|
|
|
+ calendar.set(Calendar.HOUR_OF_DAY, 0);
|
|
|
+ calendar.set(Calendar.MINUTE, 0);
|
|
|
+ calendar.set(Calendar.SECOND, 0);
|
|
|
+ Date start = calendar.getTime();
|
|
|
+ calendar.add(Calendar.DAY_OF_MONTH, 1);
|
|
|
+ calendar.add(Calendar.SECOND, -1);
|
|
|
+ Date end = calendar.getTime();
|
|
|
+ SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
|
|
|
+ String start1 = sdf.format(start);
|
|
|
+ String end1 = sdf.format(end);
|
|
|
+
|
|
|
+
|
|
|
+ Map<String, Object> map = new HashMap<>();
|
|
|
+
|
|
|
+ String username = SecurityUtils.getUsername();
|
|
|
+
|
|
|
+ map.put("todayCluesNum",reportMpper.getTodayCluesNum(start1,end1,username));
|
|
|
+ map.put("todayBusinessNum",reportMpper.getTodayBusinessNum(start1,end1,username));
|
|
|
+ map.put("todayContractNum",reportMpper.getTodayContractNum(start1,end1,username));
|
|
|
+ map.put("todaySalesAmount",reportMpper.getTodaySalesAmount(start1,end1,username));
|
|
|
+
|
|
|
+ return map;
|
|
|
+ }
|
|
|
+
|
|
|
+ /**
|
|
|
+ * 特办事项
|
|
|
+ * @param beginCreateTime
|
|
|
+ * @param endCreateTime
|
|
|
+ * @return
|
|
|
+ */
|
|
|
+ @Override
|
|
|
+ public Map<String, Object> getTodoInfo(String beginCreateTime, String endCreateTime) {
|
|
|
+ String username = SecurityUtils.getUsername();
|
|
|
+ Map<String, Object> map = new HashMap<>();
|
|
|
+ map.put("tofollowedCluesNum",reportMpper.getTofollowedCluesNum(beginCreateTime,endCreateTime,username));
|
|
|
+ map.put("tofollowedBusinessNum",reportMpper.getTofollowedBusinessNum(beginCreateTime,endCreateTime,username));
|
|
|
+ map.put("toallocatedCluesNum",reportMpper.getToallocatedCluesNum(beginCreateTime,endCreateTime,username));
|
|
|
+ map.put("toallocatedBusinessNum",reportMpper.getToallocatedBusinessNum(beginCreateTime,endCreateTime,username));
|
|
|
+ return map;
|
|
|
+ }
|
|
|
+
|
|
|
+ /**
|
|
|
+ * 饼图
|
|
|
+ * @param beginCreateTime
|
|
|
+ * @param endCreateTime
|
|
|
+ */
|
|
|
+ @Override
|
|
|
+ public List<Map<String,Object>> subjectStatistics(String beginCreateTime, String endCreateTime) {
|
|
|
+ return reportMpper.subjectStatistics(beginCreateTime,endCreateTime);
|
|
|
+ }
|
|
|
+
|
|
|
+
|
|
|
+ /**
|
|
|
+ * 折线图
|
|
|
+ * @param beginCreateTime
|
|
|
+ * @param endCreateTime
|
|
|
+ * @return
|
|
|
+ */
|
|
|
+ @SneakyThrows
|
|
|
+ @Override
|
|
|
+ public LineChartVO cluesStatistics(String beginCreateTime, String endCreateTime) {
|
|
|
+ List<String> dates = ReportServiceImpl.findDates(beginCreateTime, endCreateTime);
|
|
|
+ LineChartVO lineChartVO = new LineChartVO();
|
|
|
+ lineChartVO.setxAxis(dates);
|
|
|
+ List<Map<String, Object>> list = reportMpper.cluesStatistics(beginCreateTime, endCreateTime);
|
|
|
+ ArrayList<LineSeriesVO> lt = new ArrayList<>();
|
|
|
+ LineSeriesVO lineSeriesVO1 = new LineSeriesVO();
|
|
|
+ LineSeriesVO lineSeriesVO2 = new LineSeriesVO();
|
|
|
+ lineSeriesVO1.setName("新增线索数量");
|
|
|
+ lineSeriesVO2.setName("线索总数量");
|
|
|
+ List<Object> list1 = new ArrayList<>();
|
|
|
+ List<Object> list2 = new ArrayList<>();
|
|
|
+ int sum=0;
|
|
|
+ for (int i = 0; i < list.size(); i++) {
|
|
|
+ for (int j = 0; j < dates.size(); j++) {
|
|
|
+ if (dates.get(j).equals(list.get(i).get("t"))){
|
|
|
+ list1.add(list.get(i).get("n"));
|
|
|
+ sum+=Integer.parseInt(list.get(i).get("n").toString());
|
|
|
+ }else {
|
|
|
+ list1.add(0);
|
|
|
+ }
|
|
|
+ list2.add(sum);
|
|
|
+ }
|
|
|
+ }
|
|
|
+ lineSeriesVO1.setData(list1);
|
|
|
+ lineSeriesVO2.setData(list2);
|
|
|
+ lt.add(lineSeriesVO1);
|
|
|
+ lt.add(lineSeriesVO2);
|
|
|
+ lineChartVO.setSeries(lt);
|
|
|
+ return lineChartVO;
|
|
|
+ }
|
|
|
+
|
|
|
}
|