From 36844dfeea0914de1138be9ebdf27c92d745d73a Mon Sep 17 00:00:00 2001
From: jinpengyong <jpy123456>
Date: Thu, 07 Mar 2024 15:58:54 +0800
Subject: [PATCH] fix:断线统计补充提交
---
screen-api/src/main/java/com/moral/api/controller/HeatMapController.java | 149 +------------------------------------------------
1 files changed, 5 insertions(+), 144 deletions(-)
diff --git a/screen-api/src/main/java/com/moral/api/controller/HeatMapController.java b/screen-api/src/main/java/com/moral/api/controller/HeatMapController.java
index 9c74b97..7ca6485 100644
--- a/screen-api/src/main/java/com/moral/api/controller/HeatMapController.java
+++ b/screen-api/src/main/java/com/moral/api/controller/HeatMapController.java
@@ -4,30 +4,18 @@
import io.swagger.annotations.ApiOperation;
import io.swagger.annotations.ApiParam;
import lombok.extern.slf4j.Slf4j;
-import org.apache.commons.collections4.CollectionUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.util.ObjectUtils;
import org.springframework.web.bind.annotation.GetMapping;
-import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.bind.annotation.RestController;
-
-import java.time.LocalDate;
-import java.time.LocalDateTime;
-import java.time.temporal.ChronoUnit;
-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 com.moral.api.pojo.dto.dataDisplay.HeatMapDTO;
import com.moral.api.service.DataDisplayService;
+import com.moral.api.utils.HeatMapTimeUtils;
import com.moral.api.vo.HeatMapVo;
-import com.moral.api.vo.TimeHourVo;
import com.moral.constant.ResultMessage;
-import com.moral.util.DateUtils;
/**
* Description //todo
@@ -49,11 +37,11 @@
@GetMapping("query")
@ApiOperation("���������������")
- public ResultMessage getHeatMap(@RequestParam @ApiParam(value = "code",name = "���������") String code,
+ public ResultMessage getHeatMap(@RequestParam @ApiParam(value = "organizationId",name = "������id") Integer id,
@RequestParam @ApiParam(value = "startTime",name = "������������") String startTime,
@RequestParam @ApiParam(value = "type",name= "������������") String type,
@RequestParam @ApiParam(value = "form",name= "������������") String form){
- ArrayList<Map<String, Object>> heatMapData = dataDisplayService.getHeatMapData(code, startTime, type, form);
+ List<HeatMapDTO> heatMapData = dataDisplayService.getHeatMapDataV2(id, startTime, type, form);
return ResultMessage.ok(ObjectUtils.isEmpty(heatMapData)?"0":heatMapData);
}
@GetMapping("queryTime")
@@ -61,134 +49,7 @@
public ResultMessage getHeatMap(@RequestParam @ApiParam(value = "startTime",name = "������������") String startTime,
@RequestParam @ApiParam(value = "endTime",name= "������������") String endTime,
@RequestParam @ApiParam(value = "type",name= "������������") String type){
- ArrayList<HeatMapVo> heatMapVos = new ArrayList<>();
- if (type.equals("day")){
- ArrayList<TimeHourVo> timeHourVos = new ArrayList<>();
- String[] splitStart = startTime.split("-");
- String[] splitEnd = endTime.split("-");
- LocalDate startDate = LocalDate.of(Integer.parseInt(splitStart[0]), Integer.parseInt(splitStart[1]), Integer.parseInt(splitStart[2]));
- LocalDate endDate = LocalDate.of(Integer.parseInt(splitEnd[0]), Integer.parseInt(splitEnd[1]), Integer.parseInt(splitEnd[2]));
- long daysBetween = ChronoUnit.DAYS.between(startDate, endDate);
- for (int i = 0; i <= daysBetween; i++) {
- HeatMapVo heatMapVo = new HeatMapVo();
- LocalDate date = startDate.plusDays(i);
- heatMapVo.setId(i);
- heatMapVo.setName(date.toString());
- heatMapVo.setHourListTime(timeHourVos);
- heatMapVos.add(heatMapVo);
- }
- }else if (type.equals("month")){
- ArrayList<TimeHourVo> timeHourVos = new ArrayList<>();
- String[] splitStart = startTime.split("-");
- String[] splitEnd = endTime.split("-");
- LocalDate startDate = LocalDate.of(Integer.parseInt(splitStart[0]), Integer.parseInt(splitStart[1]),1);
- LocalDate endDate = LocalDate.of(Integer.parseInt(splitEnd[0]), Integer.parseInt(splitEnd[1]),30);
- long daysBetween = ChronoUnit.DAYS.between(startDate, endDate);
- for (int i = 0; i <= daysBetween; i++) {
- HeatMapVo heatMapVo = new HeatMapVo();
- LocalDate date = startDate.plusDays(i);
- heatMapVo.setId(i);
- heatMapVo.setName(date.toString());
- heatMapVo.setHourListTime(timeHourVos);
- heatMapVos.add(heatMapVo);
- }
- }else {
- int id = 0;
- int idHour = -1;
- Date ks = DateUtils.getDate(startTime,"yyyy-MM-dd HH");
- Date js = DateUtils.getDateAddHour(DateUtils.getDate(endTime,"yyyy-MM-dd HH"),1);
- String name = DateUtils.dateToDateString(ks,DateUtils.yyyy_MM_dd_EN);
- List<TimeHourVo> hourListTime = new ArrayList<>();
- while (DateUtils.isTimeBefor(js,ks)){
- idHour++;
- HeatMapVo heatMapVo = new HeatMapVo();
- String nameEndTime = DateUtils.dateToDateString(ks,DateUtils.yyyy_MM_dd_EN);
- String time = DateUtils.dateToDateString(ks,"HH");
- String ksTime = DateUtils.dateToDateString(ks,"yyyy-MM-dd HH");
- TimeHourVo hourVo = new TimeHourVo();
- heatMapVo.setName(name);
- heatMapVo.setId(id);
- if(name.equals(nameEndTime)){
- heatMapVo.setId(id);
- heatMapVo.setName(name);
- hourVo.setName(time);
- hourVo.setId(idHour);
- hourListTime.add(hourVo);
- if(ksTime.equals(endTime)){
- heatMapVo.setHourListTime(hourListTime);
- heatMapVos.add(heatMapVo);
- }
- }else {
- id++;
- if(ksTime.equals(endTime)){
- heatMapVo.setHourListTime(hourListTime);
- heatMapVos.add(heatMapVo);
- hourListTime = new ArrayList<>();
- hourVo = new TimeHourVo();
- heatMapVo = new HeatMapVo();
- hourVo.setName("00");
- hourVo.setId(idHour++);
- hourListTime.add(hourVo);
- heatMapVo.setId(id);
- heatMapVo.setName(nameEndTime);
- heatMapVo.setHourListTime(hourListTime);
- heatMapVos.add(heatMapVo);
- }else {
- name = nameEndTime;
- heatMapVo.setHourListTime(hourListTime);
- heatMapVos.add(heatMapVo);
- hourListTime = new ArrayList<>();
- hourVo.setName(time);
- hourVo.setId(idHour);
- hourListTime.add(hourVo);
- }
- }
- ks = DateUtils.getDateAddHour(ks,1);
- }
- if(CollectionUtils.isNotEmpty(heatMapVos)){
- heatMapVos.get(0).setIdLength(idHour);
- }
-/*
-
-
-
- String[] splitStart = startTime.split("-");
- String[] s1 = splitStart[2].split(" ");
- String[] splitEnd = endTime.split("-");
- String[] s2 = splitEnd[2].split(" ");
- //���������������
- LocalDate startDate = LocalDate.of(Integer.parseInt(splitStart[0]), Integer.parseInt(splitStart[1]),Integer.parseInt(s1[0]));
- LocalDate endDate = LocalDate.of(Integer.parseInt(splitEnd[0]), Integer.parseInt(splitEnd[1]),Integer.parseInt(s2[0]));
- long daysBetween = ChronoUnit.DAYS.between(startDate, endDate);
- //������������
- LocalDateTime startDateTime = LocalDateTime.of(Integer.parseInt(splitStart[0]), Integer.parseInt(splitStart[1]), Integer.parseInt(s1[0]), Integer.parseInt(s1[1]), 0);
- LocalDateTime endDateTime = LocalDateTime.of(Integer.parseInt(splitEnd[0]), Integer.parseInt(splitEnd[1]), Integer.parseInt(s2[0]), Integer.parseInt(s2[1]), 0);
- List<String> hourList = new ArrayList<>();
- LocalDateTime currentDateTime = startDateTime;
- while (currentDateTime.isBefore(endDateTime) || currentDateTime.equals(endDateTime)) {
- hourList.add(currentDateTime.toString());
- currentDateTime = currentDateTime.plusHours(1);
- }
- for (int i = 0; i <= daysBetween; i++) {
-
- ArrayList<Map<String,Object>> list = new ArrayList<>();
- HeatMapVo heatMapVo = new HeatMapVo();
- LocalDate date = startDate.plusDays(i);
- heatMapVo.setId(i);
- heatMapVo.setName(date.toString());
- for (int i1 = 0; i1 < hourList.size(); i1++) {
- HashMap<String, Object> map = new HashMap<>();
- if (hourList.get(i).contains(date.toString())){
- map.put("name",hourList.get(i).substring(11,16));
- list.add(map);
- }
- }
- heatMapVo.setHourList(list);
- heatMapVos.add(heatMapVo);
- }*/
-
- }
-
+ List<HeatMapVo> heatMapVos = HeatMapTimeUtils.getTime(startTime, endTime, type);
return ResultMessage.ok(ObjectUtils.isEmpty(heatMapVos)?"0":heatMapVos);
}
--
Gitblit v1.8.0