From ca5d33a1a8b4447ee4fc07019d1d3956e8a76fb3 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E7=8E=8B=E5=85=B4=E7=90=B3?= <1911390090@qq.com> Date: Tue, 2 Jul 2024 10:14:12 +0800 Subject: [PATCH 1/4] =?UTF-8?q?=E4=BC=98=E5=8C=96=20=E8=B7=AF=E5=86=B5?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../DcTrafficStatisticsController.java | 5 ++- .../impl/DcTrafficStatisticsServiceImpl.java | 40 +++++++++++-------- 2 files changed, 28 insertions(+), 17 deletions(-) diff --git a/zc-business/src/main/java/com/zc/business/controller/DcTrafficStatisticsController.java b/zc-business/src/main/java/com/zc/business/controller/DcTrafficStatisticsController.java index 957a3c72..c47d18eb 100644 --- a/zc-business/src/main/java/com/zc/business/controller/DcTrafficStatisticsController.java +++ b/zc-business/src/main/java/com/zc/business/controller/DcTrafficStatisticsController.java @@ -24,6 +24,8 @@ import org.apache.poi.ss.usermodel.*; import org.apache.poi.ss.util.CellRangeAddress; import org.apache.poi.xssf.usermodel.XSSFWorkbook; import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.scheduling.annotation.Scheduled; +import org.springframework.stereotype.Component; import org.springframework.web.bind.annotation.*; import javax.servlet.ServletOutputStream; @@ -42,6 +44,7 @@ import java.util.stream.Collectors; * * @author xiepufeng */ +//@Component @Api(tags = "交通数据统计") @RestController @RequestMapping("/business/traffic-statistics") @@ -704,7 +707,7 @@ public AjaxResult realTimeTrafficFlow(String startDate, String direction,String // 将获取到的交通指标数据封装为成功的结果并返回 return AjaxResult.success(jsonArray); } - + // @Scheduled(cron = "0/30 * * * * ?") @ApiOperation("获取当前拥堵路段") @GetMapping("/current/getTheCurrentCongestedSection") public AjaxResult getTheCurrentCongestedSection() throws HttpException, IOException { diff --git a/zc-business/src/main/java/com/zc/business/service/impl/DcTrafficStatisticsServiceImpl.java b/zc-business/src/main/java/com/zc/business/service/impl/DcTrafficStatisticsServiceImpl.java index 12ce6a3a..88a2798c 100644 --- a/zc-business/src/main/java/com/zc/business/service/impl/DcTrafficStatisticsServiceImpl.java +++ b/zc-business/src/main/java/com/zc/business/service/impl/DcTrafficStatisticsServiceImpl.java @@ -933,44 +933,52 @@ public class DcTrafficStatisticsServiceImpl implements IDcTrafficStatisticsServi for (Object object : jsonArray) { JSONObject jsonObject = (JSONObject) object; Integer asOneRoad = jsonObject.getInteger("as_one_road"); - double endPileNo = jsonObject.getDouble("end_pile_no"); + if (jsonObject.getDouble("end_pile_no")!=null){ + double endPileNo = jsonObject.getDouble("end_pile_no"); + String endMark = formatNumber(endPileNo); + jsonObject.put("endMark", endMark);//结束桩号 + } double startPileNo = jsonObject.getDouble("start_pile_no"); String stakeMark = formatNumber(startPileNo); - String endMark = formatNumber(endPileNo); - jsonObject.put("stakeMark", stakeMark);//当前拥堵距离 - jsonObject.put("endMark", endMark);//当前拥堵距离 + jsonObject.put("stakeMark", stakeMark);// //as_one_road //是否为同一条路,1-是,0-否 - if (asOneRoad == UniversalEnum.ZERO.getNumber()) { + if (asOneRoad == UniversalEnum.ZERO.getNumber()) { String string = jsonObject.getString("list_link_info"); JSONArray jsonlist = JSON.parseArray(string); - JSONObject o = (JSONObject) jsonlist.get(0); + JSONObject o = (JSONObject) jsonlist.get(UniversalEnum.ZERO.getNumber()); String string1 = o.getString("firstPoint"); String string2 = o.getString("lastPoint"); String lngLats = o.getString("lngLats"); String[] lngLatsString = lngLats.split(";"); - double s = Double.parseDouble(lngLatsString[0].split(",")[0]); - double s2 = Double.parseDouble(lngLatsString[0].split(",")[1]); - double s3 = Double.parseDouble(lngLatsString[lngLatsString.length - 1].split(",")[0]); - double s4 = Double.parseDouble(lngLatsString[lngLatsString.length - 1].split(",")[1]); - double distanceM = calculateDistance(s2, s, s4, s3) * 1000; + double s = Double.parseDouble(lngLatsString[UniversalEnum.ZERO.getNumber()].split(",")[UniversalEnum.ZERO.getNumber()]); + double s2 = Double.parseDouble(lngLatsString[UniversalEnum.ZERO.getNumber()].split(",")[UniversalEnum.ONE.getNumber()]); + double s3 = Double.parseDouble(lngLatsString[lngLatsString.length - UniversalEnum.ONE.getNumber()].split(",")[UniversalEnum.ZERO.getNumber()]); + double s4 = Double.parseDouble(lngLatsString[lngLatsString.length - UniversalEnum.ONE.getNumber()].split(",")[UniversalEnum.ONE.getNumber()]); + double distanceM = calculateDistance(s2, s, s4, s3); // System.out.printf("最大距离为: %.2f 米%n", distanceM); jsonObject.put("max_jam_dist", distanceM);//最大拥堵距离 + double endMake = startPileNo +Double.parseDouble(String.format("%.3f", distanceM)); + + String endmark = formatNumber(endMake); + jsonObject.put("endMark", endmark);//结束桩号 + + String[] split = string1.split(","); - double firstLon = Double.parseDouble(split[0]); - double firstLat = Double.parseDouble(split[1]); + double firstLon = Double.parseDouble(split[UniversalEnum.ZERO.getNumber()]); + double firstLat = Double.parseDouble(split[UniversalEnum.ONE.getNumber()]); String[] split2 = string2.split(","); - double lastLon = Double.parseDouble(split2[0]); - double lastLat = Double.parseDouble(split2[1]); + double lastLon = Double.parseDouble(split2[UniversalEnum.ZERO.getNumber()]); + double lastLat = Double.parseDouble(split2[UniversalEnum.ONE.getNumber()]); //double firstLat = 35.38524527319016; // double firstLon = 118.39808642864227; //double lastLat = 35.386351346969604; // double lastLon = 118.4038907289505; double distanceKm = calculateDistance(firstLat, firstLon, lastLat, lastLon); - double distanceMeters = distanceKm * 1000; // 将距离转换为米 + double distanceMeters = distanceKm * UniversalEnum.THOUSAND.getNumber(); // 将距离转换为米 //System.out.printf("两点之间的距离为: %.2f 米%n", distanceMeters); jsonObject.put("jam_dist", distanceMeters);//当前拥堵距离 From 28d3454afbd874c54c1b545439e3a428ea1a48c9 Mon Sep 17 00:00:00 2001 From: zhaoxianglong Date: Tue, 2 Jul 2024 10:20:44 +0800 Subject: [PATCH 2/4] =?UTF-8?q?=E4=BC=98=E5=8C=96=E9=AD=94=E6=B3=95?= =?UTF-8?q?=E5=80=BC=20=E4=BC=98=E5=8C=96=E8=AE=BE=E5=A4=87=E7=8A=B6?= =?UTF-8?q?=E6=80=81=E5=88=97=E8=A1=A8=E4=BB=A5=E5=8F=8A=E8=AE=BE=E5=A4=87?= =?UTF-8?q?=E7=8A=B6=E6=80=81=E7=BB=9F=E8=AE=A1?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../business/controller/StatusController.java | 13 ++- .../java/com/zc/business/domain/Status.java | 101 +++++++----------- .../mapper/business/StatusMapper.xml | 15 +++ 3 files changed, 67 insertions(+), 62 deletions(-) diff --git a/zc-business/src/main/java/com/zc/business/controller/StatusController.java b/zc-business/src/main/java/com/zc/business/controller/StatusController.java index 9c6087ad..e7ac9b3d 100644 --- a/zc-business/src/main/java/com/zc/business/controller/StatusController.java +++ b/zc-business/src/main/java/com/zc/business/controller/StatusController.java @@ -53,7 +53,10 @@ public class StatusController extends BaseController { @GetMapping ("/tablist") public TableDataInfo getTabList(Status status) { - //startPage(); + if (status.getDeviceName()!=null) { + status.setDeviceName(status.getDeviceName().replaceAll(UniversalEnum.BLANK_SPACE.getValue(),UniversalEnum.PLUS_SIGN.getValue())); + } + startPage(); status.setTypes(status.getType().split(UniversalEnum.COMMA.getValue())); List listStatus = statusService.listStatusByTypes(status); return getDataTable(listStatus); @@ -68,6 +71,9 @@ public class StatusController extends BaseController { @PostMapping("/export") public void export(HttpServletResponse response, Status status) { + if (status.getDeviceName()!=null) { + status.setDeviceName(status.getDeviceName().replaceAll(UniversalEnum.BLANK_SPACE.getValue(),UniversalEnum.PLUS_SIGN.getValue())); + } status.setTypes(status.getType().split(UniversalEnum.COMMA.getValue())); List listStatus = statusService.export(status); ExcelUtil util = new ExcelUtil<>(Status.class); @@ -78,6 +84,9 @@ public class StatusController extends BaseController { @ApiOperation("设备状态柱状图按时间和类型") @GetMapping("/list") public AjaxResult getStatusList(Status status) { + if (status.getDeviceName()!=null) { + status.setDeviceName(status.getDeviceName().replaceAll(UniversalEnum.BLANK_SPACE.getValue(),UniversalEnum.PLUS_SIGN.getValue())); + } LocalDateTime todayStart = status.getStartTime().truncatedTo(ChronoUnit.DAYS); LocalDateTime currentTime = status.getTime().truncatedTo(ChronoUnit.DAYS).plusDays(UniversalEnum.ONE.getNumber()); status.setStartTime(todayStart); @@ -91,7 +100,7 @@ public class StatusController extends BaseController { for (String type : types) { Map collect = statuses.stream().filter(item -> Objects.equals(item.getType(), type)) .collect(Collectors.toMap( - item -> item.getTime().getYear() + UniversalEnum.SHORT_BAR.getNumber() + item.getTime().getMonthValue() + UniversalEnum.SHORT_BAR.getValue() + item.getTime().getDayOfMonth(), + item -> item.getTime().getYear() + UniversalEnum.SHORT_BAR.getValue() + item.getTime().getMonthValue() + UniversalEnum.SHORT_BAR.getValue() + item.getTime().getDayOfMonth(), Status::getSuccessRate )); maps.put(type, collect); diff --git a/zc-business/src/main/java/com/zc/business/domain/Status.java b/zc-business/src/main/java/com/zc/business/domain/Status.java index 95b79ba2..f682a145 100644 --- a/zc-business/src/main/java/com/zc/business/domain/Status.java +++ b/zc-business/src/main/java/com/zc/business/domain/Status.java @@ -11,6 +11,45 @@ import java.time.LocalDateTime; * @Date 2024/01/04 */ public class Status { + private long id; + @Excel(name = "设备桩号") + private String deviceNo; + @Excel(name = "设备名称") + private String deviceName; + @Excel(name = "状态") + private String deviceStatus; + //@Excel(name = "使用状态") + private Integer useState; + private Integer pageNum; + private Integer pageSize; + private Long deviceId; + private String sectionId; + @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss") + @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss") + private LocalDateTime startTime; + @Excel(name = "设备IP") + private String deviceIp; + private String successRate; + private String lostRate; + @Excel(name = "方向") + private String direction; + @Excel(name = "厂家") + private String production; + // @Excel(name = "型号") + private String model; + @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss") + @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss") + @Excel(name = "监测时间", width = 30, dateFormat = "yyyy-MM-dd HH:mm:ss") + private LocalDateTime time; + //@Excel(name = "网段") + private String network; + private String content; + //@Excel(name = "类型") + private String type; + private String[] types; + private String orderByField; + private String orderDirection; + public String getDeviceIp() { return deviceIp; } @@ -18,11 +57,12 @@ public class Status { public void setDeviceIp(String deviceIp) { this.deviceIp = deviceIp; } + public LocalDateTime getStartTime() { return startTime; } - public Status(long id, String deviceNo, String deviceName, String deviceStatus, String sectionId, LocalDateTime time, LocalDateTime startTime, String deviceIp, String successRate, String lostRate, String direction, String production, String model, String network, String content, String type,Integer pageNum, Integer pageSize) { + public Status(long id, String deviceNo, String deviceName, String deviceStatus, String sectionId, LocalDateTime time, LocalDateTime startTime, String deviceIp, String successRate, String lostRate, String direction, String production, String model, String network, String content, String type, Integer pageNum, Integer pageSize) { this.id = id; this.deviceNo = deviceNo; this.deviceName = deviceName; @@ -110,31 +150,6 @@ public class Status { this.deviceStatus = deviceStatus; } - private long id; - @Excel(name = "设备桩号") - - private String deviceNo; - - @Excel(name = "设备类型") - private String deviceName; - - @Excel(name = "状态") - private String deviceStatus; - //@Excel(name = "使用状态") - private Integer useState; - private Integer pageNum; - private Integer pageSize; - - - - private Long deviceId; - - private String sectionId; - @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss") - @JsonFormat(pattern ="yyyy-MM-dd HH:mm:ss") - @Excel(name = "监测时间", width = 30, dateFormat = "yyyy-MM-dd HH:mm:ss") - private LocalDateTime time; - public String getSuccessRate() { return successRate; } @@ -150,22 +165,6 @@ public class Status { public void setLostRate(String lostRate) { this.lostRate = lostRate; } - @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss") - @JsonFormat(pattern ="yyyy-MM-dd HH:mm:ss") - private LocalDateTime startTime; - @Excel(name = "设备IP") - - private String deviceIp; - - private String successRate; - - private String lostRate; - @Excel(name = "方向") - - private String direction; - @Excel(name = "厂家") - - private String production; public String getDirection() { return direction; @@ -215,10 +214,6 @@ public class Status { this.deviceId = deviceId; } - // @Excel(name = "型号") - - private String model; - public String getType() { return type; } @@ -227,20 +222,6 @@ public class Status { this.type = type; } - //@Excel(name = "网段") - - private String network; - - private String content; - - //@Excel(name = "类型") - - private String type; - private String[] types; - private String orderByField; - private String orderDirection; - - public Integer getUseState() { return useState; } diff --git a/zc-business/src/main/resources/mapper/business/StatusMapper.xml b/zc-business/src/main/resources/mapper/business/StatusMapper.xml index 06fe274b..225df1d7 100644 --- a/zc-business/src/main/resources/mapper/business/StatusMapper.xml +++ b/zc-business/src/main/resources/mapper/business/StatusMapper.xml @@ -187,10 +187,19 @@ AND d.use_state = #{status.useState} + + AND s.device_name like concat('%', #{status.deviceName}, '%') + + + AND d.direction = #{status.direction} + ORDER BY ${status.orderByField} ${status.orderDirection} + + + @@ -223,6 +232,12 @@ AND d.use_state = #{status.useState} + + AND s.device_name like concat('%', #{status.deviceName}, '%') + + + AND d.direction = #{status.direction} + GROUP BY d.child_type, d.device_type, From d8386b83ea0ab5f61dfe6aeac8e4344aa89c4c6f Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E7=8E=8B=E5=85=B4=E7=90=B3?= <1911390090@qq.com> Date: Tue, 2 Jul 2024 10:53:02 +0800 Subject: [PATCH 3/4] =?UTF-8?q?=E4=BA=A4=E9=80=9A=E6=B5=81=E9=A2=84?= =?UTF-8?q?=E8=AD=A6=EF=BC=8C=E6=97=B6=E9=97=B4=E6=8E=92=E5=BA=8F?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../controller/DcTrafficFlowWarning.java | 17 +++++++---------- .../java/com/zc/business/domain/DcEvent.java | 2 +- 2 files changed, 8 insertions(+), 11 deletions(-) diff --git a/zc-business/src/main/java/com/zc/business/controller/DcTrafficFlowWarning.java b/zc-business/src/main/java/com/zc/business/controller/DcTrafficFlowWarning.java index 577a4509..b15cc53a 100644 --- a/zc-business/src/main/java/com/zc/business/controller/DcTrafficFlowWarning.java +++ b/zc-business/src/main/java/com/zc/business/controller/DcTrafficFlowWarning.java @@ -17,10 +17,7 @@ import javax.annotation.Resource; import java.text.ParseException; import java.time.LocalDate; import java.time.format.DateTimeFormatter; -import java.util.Date; -import java.util.HashMap; -import java.util.List; -import java.util.Map; +import java.util.*; /** * @@ -56,7 +53,7 @@ public class DcTrafficFlowWarning { DateTimeFormatter formatterStr = DateTimeFormatter.ofPattern(UniversalEnum.PURE_CHINESE_CHARACTER_TIME_FORMATS_YEARS_MONTH_DAY.getValue()); String formattedDate = dateAfterSevenDays.format(formatter); String formattedDateStr = dateAfterSevenDays.format(formatterStr); - // String formattedDate ="2024-05-01"; + // String formattedDate ="2024-05-01"; for (DcHolidays holidays : dcHolidaysList) { String vacation = holidays.getVacation(); @@ -72,12 +69,12 @@ public class DcTrafficFlowWarning { String[] date = vacation1.split(UniversalEnum.THERE_S_A_LOT_GOING_ON.getValue()); - Map>>> mapListOne = new HashMap<>(); + Map>>> mapListOne = new LinkedHashMap<>(); - Map>> map = new HashMap<>(); - Map>> map2 = new HashMap<>(); - Map>> map3 = new HashMap<>(); - Map>> map4 = new HashMap<>(); + Map>> map = new LinkedHashMap<>(); + Map>> map2 = new LinkedHashMap<>(); + Map>> map3 = new LinkedHashMap<>(); + Map>> map4 = new LinkedHashMap<>(); for (int i1 = UniversalEnum.ZERO.getNumber(); i1 < date.length; i1++) { //交通流 List> mapList = dcGantryStatisticsDataService.realTimeTrafficFlow(date[i1], UniversalEnum.ONE.getValue(), UniversalEnum.FOUR.getValue()); diff --git a/zc-business/src/main/java/com/zc/business/domain/DcEvent.java b/zc-business/src/main/java/com/zc/business/domain/DcEvent.java index b251bbe9..eef30096 100644 --- a/zc-business/src/main/java/com/zc/business/domain/DcEvent.java +++ b/zc-business/src/main/java/com/zc/business/domain/DcEvent.java @@ -189,7 +189,7 @@ public class DcEvent { * 2-关联事件 */ @ApiModelProperty("事件性质 * 1-首发事件* 2-关联事件") - @Excel(name = "事件性质") + @Excel(name = "事件性质", readConverterExp = "1=首发事件,2=关联事件" ) private Long eventNature; /** From a499665efac3afba50943ee4ea27e4027d7acb6d Mon Sep 17 00:00:00 2001 From: lau572 <1010031226@qq.com> Date: Tue, 2 Jul 2024 11:39:39 +0800 Subject: [PATCH 4/4] =?UTF-8?q?=E5=AF=BC=E5=87=BA=E4=BA=A4=E9=80=9A?= =?UTF-8?q?=E6=8C=87=E6=A0=87=E6=97=B6=E9=97=B4=E5=88=86=E5=B8=83?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../DcTrafficStatisticsController.java | 46 +++++++++++++++++-- 1 file changed, 42 insertions(+), 4 deletions(-) diff --git a/zc-business/src/main/java/com/zc/business/controller/DcTrafficStatisticsController.java b/zc-business/src/main/java/com/zc/business/controller/DcTrafficStatisticsController.java index c47d18eb..1de21bf8 100644 --- a/zc-business/src/main/java/com/zc/business/controller/DcTrafficStatisticsController.java +++ b/zc-business/src/main/java/com/zc/business/controller/DcTrafficStatisticsController.java @@ -2,6 +2,7 @@ package com.zc.business.controller; import com.alibaba.fastjson.JSONArray; import com.alibaba.fastjson.JSONObject; +import com.ruoyi.common.annotation.Excel; import com.ruoyi.common.annotation.Log; import com.ruoyi.common.core.controller.BaseController; import com.ruoyi.common.core.domain.AjaxResult; @@ -33,6 +34,7 @@ import javax.servlet.http.HttpServletResponse; import java.io.IOException; import java.text.DecimalFormat; import java.time.LocalDate; +import java.time.LocalDateTime; import java.time.format.DateTimeFormatter; import java.util.*; import java.util.function.Function; @@ -524,7 +526,27 @@ public AjaxResult realTimeTrafficFlow(String startDate, String direction,String endDate = String.valueOf(year); } List> thisYearList = dcGantryMetricsStatisticsDataService.passIndicatorTimeDistribution(startDate,direction,periodType); - Map>> thisYearData = thisYearList.stream().collect(Collectors.groupingBy(item -> item.get("groupTime").toString())); + Map>> thisYearData = new HashMap<>(); + DateTimeFormatter inputFormatter = DateTimeFormatter.ofPattern("yyyy-MM-dd'T'HH:mm"); + if (UniversalEnum.FOUR.getValue().equals(periodType)){ + thisYearData = thisYearList.stream().collect(Collectors.groupingBy(item -> { + LocalDateTime dateTime = LocalDateTime.parse(item.get("groupTime").toString(), inputFormatter); + DateTimeFormatter outputFormatter = DateTimeFormatter.ofPattern("HH时"); + return outputFormatter.format(dateTime); + })); + } else if (UniversalEnum.THREE.getValue().equals(periodType)){ + thisYearData = thisYearList.stream().collect(Collectors.groupingBy(item -> { + LocalDateTime dateTime = LocalDateTime.parse(item.get("groupTime").toString(), inputFormatter); + DateTimeFormatter outputFormatter = DateTimeFormatter.ofPattern("M月d日"); + return dateTime.format(outputFormatter); + })); + } else if (UniversalEnum.ONE.getValue().equals(periodType)){ + thisYearData = thisYearList.stream().collect(Collectors.groupingBy(item -> { + LocalDateTime dateTime = LocalDateTime.parse(item.get("groupTime").toString(), inputFormatter); + DateTimeFormatter outputFormatter = DateTimeFormatter.ofPattern("M月"); + return dateTime.format(outputFormatter); + })); + } List> lastYearList = dcGantryMetricsStatisticsDataService.passIndicatorTimeDistribution(endDate,direction,periodType); Map>> lastYearData = lastYearList.stream().collect(Collectors.groupingBy(item -> item.get("groupTime").toString())); @@ -536,20 +558,36 @@ public AjaxResult realTimeTrafficFlow(String startDate, String direction,String allKey.addAll(lastYearData.keySet()); } - for (String key : allKey) { + List keyList = new ArrayList<>(allKey); + Collections.sort(keyList); + + for (String key : keyList) { PassIndicatorTimeDistribution passIndicatorTimeDistribution = new PassIndicatorTimeDistribution(); passIndicatorTimeDistribution.setTime(key); if (thisYearData != null && thisYearData.containsKey(key)){ Map sectionData = thisYearData.get(key).get(UniversalEnum.ZERO.getNumber()); passIndicatorTimeDistribution.setCrowdingRate(sectionData.get("crowdingRate").toString()); - passIndicatorTimeDistribution.setSaturationRate(sectionData.get("saturationRate").toString()); + + if (sectionData.get("saturationRate") instanceof Double){ + double saturationRate = (Double)sectionData.get("saturationRate"); + passIndicatorTimeDistribution.setSaturationRate(String.format("%.4f", saturationRate)); + } else { + passIndicatorTimeDistribution.setSaturationRate("0"); + } +// passIndicatorTimeDistribution.setSaturationRate(sectionData.get("saturationRate").toString()); passIndicatorTimeDistribution.setTrafficCompositionRate(sectionData.get("trafficCompositionRate").toString()); } if (lastYearData != null && lastYearData.containsKey(key)){ Map sectionData = lastYearData.get(key).get(UniversalEnum.ZERO.getNumber()); passIndicatorTimeDistribution.setCrowdingRateLastYear(sectionData.get("crowdingRate").toString()); - passIndicatorTimeDistribution.setSaturationRateLastYear(sectionData.get("saturationRate").toString()); +// passIndicatorTimeDistribution.setSaturationRateLastYear(sectionData.get("saturationRate").toString()); + if (sectionData.get("saturationRate") instanceof Double){ + double saturationRate = (Double)sectionData.get("saturationRate"); + passIndicatorTimeDistribution.setSaturationRateLastYear(String.format("%.4f", saturationRate)); + } else { + passIndicatorTimeDistribution.setSaturationRateLastYear("0"); + } passIndicatorTimeDistribution.setTrafficCompositionRateLastYear(sectionData.get("trafficCompositionRate").toString()); } list.add(passIndicatorTimeDistribution);