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