package com.zy.acs.manager.common.utils; import com.alibaba.fastjson.JSON; import com.zy.acs.framework.common.Cools; import com.zy.acs.manager.core.service.astart.WaveNodeType; import java.util.ArrayList; import java.util.List; import java.util.Optional; /** * Created by vincent on 8/7/2024 */ public class MapDataUtils { public static List parseWaveNode(String waveNodeStr) { List waveNodeList = new ArrayList<>(); if (Cools.isEmpty(waveNodeStr)) { return waveNodeList; } return JSON.parseArray(waveNodeStr, String.class); } public static List parseCdaNode(String cdaNodeStr) { List waveNodeList = new ArrayList<>(); if (Cools.isEmpty(cdaNodeStr)) { return waveNodeList; } return JSON.parseArray(cdaNodeStr, Double.class); } public static List hasOtherWave(List list, String vehicle) { if (Cools.isEmpty(list)) { return list; } list.removeIf(next -> next.equals(vehicle)); return list; } public static String generateWaveNode(String originStr, String waveNode) { List waveNodeList; if (originStr.equals(WaveNodeType.ENABLE.val)) { waveNodeList = new ArrayList<>(); waveNodeList.add(waveNode); } else { waveNodeList = JSON.parseArray(originStr, String.class); if (!waveNodeList.contains(waveNode)) { waveNodeList.add(waveNode); } } return JSON.toJSONString(waveNodeList); } public static Double getVehicleWaveSafeDistance(Integer diameter, Double coe) { if (Cools.isEmpty(diameter)) { return 0.0D; } coe = Optional.ofNullable(coe).orElse(1.0D); return diameter * coe; } }