| | |
| | | import java.util.*; |
| | | import javax.annotation.PostConstruct; |
| | | import javax.annotation.Resource; |
| | | import javax.servlet.http.HttpServletRequest; |
| | | import javax.servlet.http.HttpServletResponse; |
| | | |
| | | import com.ruoyi.common.core.domain.entity.SysUser; |
| | |
| | | import com.ruoyi.sy.service.IArdSyCarService; |
| | | import com.ruoyi.common.utils.poi.ExcelUtil; |
| | | import com.ruoyi.common.core.page.TableDataInfo; |
| | | import org.springframework.web.context.request.RequestContextHolder; |
| | | import org.springframework.web.context.request.ServletRequestAttributes; |
| | | import org.springframework.web.multipart.MultipartFile; |
| | | |
| | | /** |
| | |
| | | } |
| | | |
| | | @PreAuthorize("@ss.hasPermi('sy:syCar:carListById')") |
| | | @GetMapping("/carListById/{id}") |
| | | @PostMapping("/carListById/{id}") |
| | | @ApiOperation("根据车辆ID获取车辆列表") |
| | | public Results carListById(@PathVariable String id){ |
| | | return ardSyCarService.carListById(id); |
| | | } |
| | | |
| | | @PreAuthorize("@ss.hasPermi('sy:syCar:getCarGPSHistory')") |
| | | @PostMapping("getCarGPSHistory") |
| | | @ApiOperation("根据车辆ID获取历史轨迹") |
| | | public Results getCarGPSTrack(@RequestBody Map<String,String> map) { |
| | | String usersId = SecurityUtils.getUserId(); |
| | | ArdSyUser ardSyUser = iArdSyUserService.userById(usersId); |
| | | String syURL = sysConfigService.getSYURL(); |
| | | return ardSyCarService.getCarGPSTrack(map,syURL, ardSyUser); |
| | | } |
| | | } |
| | |
| | | */ |
| | | List<Map<String,String>> carIdByDeptList(List<Long> deptList,List<Map<String,String>> list); |
| | | |
| | | Results getCarGPSTrack(Map<String,String> map,String syURL, ArdSyUser ardSyUser); |
| | | } |
| | |
| | | } |
| | | return list; |
| | | } |
| | | |
| | | @Override |
| | | public Results getCarGPSTrack(Map<String,String> map,String syURL, ArdSyUser ardSyUser){ |
| | | String carId = map.get("carId"); |
| | | String startTime = map.get("startTime").replace(" ", "").replace("-", "").replace(":", ""); |
| | | String endTime = map.get("endTime").replace(" ", "").replace("-", "").replace(":", ""); |
| | | String maxSpeed = map.get("maxSpeed"); |
| | | //31用户名密码 |
| | | String username31 = ardSyUser.getUserId(); |
| | | String password31 = ardSyUser.getPassword(); |
| | | String passwordMd5 = DigestUtils.md5Hex(password31); |
| | | Map<String, Object> result1 = sYClient.logIn(syURL,passwordMd5, username31); |
| | | Map<String,Object> result0 = new HashMap(); |
| | | result0 = sYClient.getCarGPSTrack(syURL,carId,startTime,endTime,maxSpeed,(String) result1.get("sessionId")); |
| | | List<Map<String,Object>> list = (List<Map<String, Object>>) result0.get("list"); |
| | | if(list.isEmpty()){ |
| | | return Results.succeed(); |
| | | }else { |
| | | for(Map<String,Object> m : list) { |
| | | String alarmStts = (String) m.get("alarmStts"); |
| | | Map<String, List<String>> alarmMap = getInfo("alarm", alarmStts); |
| | | m.putAll(alarmMap); |
| | | String carStts = (String) m.get("carStts"); |
| | | Map<String, List<String>> carMap = getInfo("car", carStts); |
| | | m.putAll(carMap); |
| | | String sgnStts = (String) m.get("sgnStts"); |
| | | Map<String, List<String>> sgnMap = getInfo("sgn", sgnStts); |
| | | m.putAll(sgnMap); |
| | | } |
| | | return Results.succeed(list); |
| | | } |
| | | } |
| | | |
| | | public Map<String,List<String>> getInfo(String type,String stts){ |
| | | if(stts.isEmpty()){ |
| | | return new HashMap<>(); |
| | | } |
| | | String[] alarmTypes = {"紧急报警","超速报警","疲劳驾驶","危险预警","GNSS 模块发生故障","GNSS 天线未接或被剪断","GNSS 天线短路", |
| | | "终端主电源欠压","终端主电源掉电","终端LCD 或显示器故障","TTS 模块故障","摄像头故障","道路运输证IC 卡模块故障","超速预警", |
| | | "疲劳驾驶预警","违规行驶报警","胎压预警","右转盲区异常报警","当天累计驾驶超时","超时停车","进出区域","进出路线","路段行驶时间不足/过长", |
| | | "路线偏离报警","车辆VSS 故障","车辆油量异常","车辆被盗","车辆非法点火","车辆非法位移","碰撞预警","侧翻预警","非法开门报警"}; |
| | | |
| | | String[] carTypes89 = {"空车","半载","保留","满载"}; |
| | | |
| | | Object[] carTypes = {"ACC开","定位","南纬","西经","停运状态","经纬度已经保密插件加密","保留","保留",carTypes89,"车辆油路断开","车门加锁", |
| | | "车辆电路断开","门1开(前门)","门2开(中门)","门3开(后门","门4开(驾驶席门","门5开","使用GPS 卫星进行定位","使用北斗卫星进行定位", |
| | | "使用GLONASS卫星进行定位","使用Galileo卫星进行定位","保留","保留","保留","保留","保留","保留","保留","保留","保留","保留"}; |
| | | |
| | | String[] sgnTypes = {"近光灯信号","远光灯信号","右转向灯信号","左转向灯信号","制动信号","倒档信号","雾灯信号","示廓灯","喇叭信号","空调状态", |
| | | "空挡信号","缓速器工作","ABS 工作","加热器工作","离合器状态","保留","保留","保留","保留","保留","保留","保留","保留","保留","保留","保留", |
| | | "保留","保留","保留","保留","保留","保留"}; |
| | | Integer sttsHex = Integer.parseInt(stts, 16); |
| | | String sttsBin = Integer.toBinaryString(sttsHex); |
| | | if(sttsBin.length() < 32){ |
| | | while(sttsBin.length() < 32){ |
| | | sttsBin = "0" + sttsBin; |
| | | } |
| | | } |
| | | String[] sttsBinArray = sttsBin.split(""); |
| | | switch (type) { |
| | | case "alarm": |
| | | List<String> alarmTypeArray = new ArrayList(); |
| | | for (int i = 0; i < sttsBinArray.length; i++) { |
| | | if(sttsBinArray[i].equals("1")){ |
| | | alarmTypeArray.add(alarmTypes[i]); |
| | | } |
| | | } |
| | | Map<String,List<String>> alarmMap = new HashMap(); |
| | | alarmMap.put(type, alarmTypeArray); |
| | | return alarmMap; |
| | | case "car": |
| | | List<String> carTypeArray = new ArrayList(); |
| | | for (int i = 0; i < sttsBinArray.length; i++) { |
| | | if(i <= 7 || i >= 10){ |
| | | if(sttsBinArray[i].equals("1")){ |
| | | carTypeArray.add(alarmTypes[i]); |
| | | } |
| | | }else if(i == 8){ |
| | | switch (sttsBinArray[8]+sttsBinArray[9]) { |
| | | case "00": |
| | | carTypeArray.add(carTypes89[0]); |
| | | break; |
| | | case "01": |
| | | carTypeArray.add(carTypes89[1]); |
| | | break; |
| | | case "10": |
| | | carTypeArray.add(carTypes89[2]); |
| | | break; |
| | | case "11": |
| | | carTypeArray.add(carTypes89[3]); |
| | | break; |
| | | default: |
| | | break; |
| | | } |
| | | }else if(i == 9){ |
| | | continue; |
| | | }else{ |
| | | break; |
| | | } |
| | | } |
| | | Map<String,List<String>> carMap = new HashMap(); |
| | | List<String> carTypeArray0 = new ArrayList(); |
| | | for(String str : carTypeArray){ |
| | | if(!str.equals("保留")){ |
| | | carTypeArray0.add(str); |
| | | } |
| | | } |
| | | carMap.put(type, carTypeArray0); |
| | | return carMap; |
| | | case "sgn": |
| | | List<String> sgnTypeArray = new ArrayList(); |
| | | for (int i = 0; i < sttsBinArray.length; i++) { |
| | | if(sttsBinArray[i].equals("1")){ |
| | | sgnTypeArray.add(alarmTypes[i]); |
| | | } |
| | | } |
| | | Map<String,List<String>> sgnMap = new HashMap(); |
| | | List<String> sgnTypeArray0 = new ArrayList(); |
| | | for(String str : sgnTypeArray){ |
| | | if(!str.equals("保留")){ |
| | | sgnTypeArray0.add(str); |
| | | } |
| | | } |
| | | sgnMap.put(type, sgnTypeArray0); |
| | | return sgnMap; |
| | | default: |
| | | return new HashMap<String,List<String>>(); |
| | | } |
| | | } |
| | | } |
| | |
| | | |
| | | @Get(url = "${syURL}/gps-web/api/get_car_list.jsp?teamId=${teamId}&detail=true&userId=${userId}&loginType=user&loginWay=interface&loginLang=zh_CN&appDevId=&appId=android&sessionId=${sessionId}") |
| | | Map<String,Object> getCarList1(@Var("syURL") String syURL, @Var("teamId") String teamId, @Var("userId") String userId, @Var("sessionId") String sessionId); |
| | | |
| | | @Get(url = "${syURL}/gps-web/api/get_gps_h.jsp?carId=${carId}&startTime=${startTime}&endTime=${endTime}&filter0=true&maxSpeed=${maxSpeed}&stopLong=5&queryAlarm=false&userId=yanshi&loginType=user&loginWay=android&loginLang=zh_CN&appDevId=&sessionId=${sessionId}") |
| | | Map<String,Object> getCarGPSTrack(@Var("syURL") String syURL, @Var("carId") String carId, @Var("startTime") String startTime,@Var("endTime") String endTime,@Var("maxSpeed") String maxSpeed, @Var("sessionId") String sessionId); |
| | | |
| | | } |