| | |
| | | package com.ruoyi.sy.controller; |
| | | |
| | | import java.io.IOException; |
| | | import java.io.UnsupportedEncodingException; |
| | | import java.text.SimpleDateFormat; |
| | | import java.util.*; |
| | | import javax.annotation.PostConstruct; |
| | | import javax.annotation.Resource; |
| | | import javax.servlet.http.HttpServletRequest; |
| | | import javax.servlet.http.HttpServletResponse; |
| | | |
| | | import com.alibaba.fastjson2.JSON; |
| | | import com.github.pagehelper.PageHelper; |
| | | import com.github.pagehelper.PageInfo; |
| | | import com.ruoyi.common.core.domain.entity.SysUser; |
| | | import com.ruoyi.common.utils.SecurityUtils; |
| | | import com.ruoyi.common.utils.spring.SpringUtils; |
| | | import com.ruoyi.common.utils.uuid.IdUtils; |
| | | import com.ruoyi.sy.domain.ArdTankLock; |
| | | import com.ruoyi.sy.gps31.PushClientImplSerialPort; |
| | | import com.ruoyi.sy.param.ArdSyCarParam; |
| | | import com.ruoyi.sy.service.IArdTankAbnormalParkAlarmService; |
| | | import com.ruoyi.sy.service.IArdTankLockService; |
| | | import com.ruoyi.sy.service.impl.ArdTankLockServiceImpl; |
| | | import com.ruoyi.sy.vo.ArdSyCarVo; |
| | | import com.ruoyi.sy.domain.ArdSyUser; |
| | | import com.ruoyi.sy.gps31.PositionContainer; |
| | | import com.ruoyi.sy.gps31.PushClientImplAlarm; |
| | | import com.ruoyi.sy.gps31.PushClientImplPosition; |
| | | import com.ruoyi.sy.service.IArdSyUserService; |
| | | import com.ruoyi.system.domain.SysConfig; |
| | | import com.ruoyi.common.core.domain.entity.SysConfig; |
| | | import com.ruoyi.system.service.ISysConfigService; |
| | | import com.ruoyi.system.service.ISysDeptService; |
| | | import com.ruoyi.system.service.ISysUserService; |
| | | import com.ruoyi.system.service.impl.SysConfigServiceImpl; |
| | | import com.ruoyi.utils.forest.SYClient; |
| | | import com.ruoyi.utils.result.Results; |
| | | import io.swagger.annotations.Api; |
| | | import io.swagger.annotations.ApiOperation; |
| | | import okhttp3.OkHttpClient; |
| | | import okhttp3.Request; |
| | | import okhttp3.Response; |
| | | import org.apache.commons.codec.digest.DigestUtils; |
| | | import org.springframework.beans.factory.annotation.Value; |
| | | import org.springframework.security.access.prepost.PreAuthorize; |
| | | import org.springframework.beans.factory.annotation.Autowired; |
| | | import org.springframework.web.bind.annotation.*; |
| | |
| | | import com.ruoyi.sy.domain.ArdSyCar; |
| | | 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; |
| | | |
| | | import static com.ruoyi.utils.websocket.util.WebSocketUtils.ONLINE_USER_SESSIONS; |
| | | |
| | | /** |
| | | * 三一车辆Controller |
| | | * |
| | | * |
| | | * @author ard |
| | | * @date 2023-06-26 |
| | | */ |
| | |
| | | @Autowired |
| | | private ISysDeptService sysDeptService; |
| | | |
| | | @Autowired |
| | | private IArdTankAbnormalParkAlarmService ardTankAbnormalParkAlarmService; |
| | | |
| | | @Autowired |
| | | private IArdTankLockService ardTankLockService; |
| | | |
| | | @Resource |
| | | private SYClient sYClient; |
| | | |
| | | private ArdSyCarController ardSyCarController; |
| | | |
| | | @Value("${syCar.enabled}") |
| | | private Boolean syCarEnabled; |
| | | |
| | | @Value("${syCar.userId}") |
| | | private String userId; |
| | | |
| | | @Value("${syCar.password}") |
| | | private String password; |
| | | |
| | | private Timer lockStateTimer; |
| | | |
| | | @PostConstruct |
| | | public void init(){ |
| | | ardSyCarController = this; |
| | | ardSyCarController.sysConfigService = this.sysConfigService; |
| | | ardSyCarController.iArdSyUserService = this.iArdSyUserService; |
| | | |
| | | SysConfig config = new SysConfig(); |
| | | config.setConfigKey("syCarPT"); |
| | | List<SysConfig> sysConfigResult = sysConfigService.selectConfigList(config); |
| | | String syURL = ""; |
| | | if(sysConfigResult.size() == 0){ |
| | | //if(sysConfigResult.size() == 0){ |
| | | if(!syCarEnabled){//三一车辆加入开关 |
| | | return; |
| | | }else{ |
| | | syURL = sysConfigResult.get(0).getConfigValue(); |
| | |
| | | String ip = syURL.split(":")[1].replace("//", ""); |
| | | List<ArdSyUser> ardSyUserList = iArdSyUserService.selectSyUser(); |
| | | //车辆实时位置线程 |
| | | PushClientImplPosition pushClientImplPosition = new PushClientImplPosition(ip,ardSyUserList.get(0).getUserId(),ardSyUserList.get(0).getPassword()); |
| | | if(ardSyUserList.size()==0) |
| | | { |
| | | return; |
| | | } |
| | | //PushClientImplPosition pushClientImplPosition = new PushClientImplPosition(ip,ardSyUserList.get(0).getUserId(),ardSyUserList.get(0).getPassword()); |
| | | PushClientImplPosition pushClientImplPosition = new PushClientImplPosition(ip,userId,password); |
| | | Thread pushClientImplPositionThread = new Thread(pushClientImplPosition); |
| | | pushClientImplPositionThread.start(); |
| | | |
| | |
| | | ardSyCarService.sendArdSyCarPosition(); |
| | | } |
| | | }; |
| | | carPositionTimer.scheduleAtFixedRate(carPositionTask,date,3*1000);//启用 |
| | | |
| | | //车辆实时位置线程 |
| | | PushClientImplAlarm pushClientImplAlarm = new PushClientImplAlarm(ip,ardSyUserList.get(0).getUserId(),ardSyUserList.get(0).getPassword()); |
| | | //carPositionTimer.scheduleAtFixedRate(carPositionTask,date,3*1000);//弃用 |
| | | //车辆实时报警线程 |
| | | //PushClientImplAlarm pushClientImplAlarm = new PushClientImplAlarm(ip,ardSyUserList.get(0).getUserId(),ardSyUserList.get(0).getPassword()); |
| | | PushClientImplAlarm pushClientImplAlarm = new PushClientImplAlarm(ip,userId,password); |
| | | Thread pushClientImplAlarmThread = new Thread(pushClientImplAlarm); |
| | | pushClientImplAlarmThread.start(); |
| | | //串口线程 |
| | | PushClientImplSerialPort pushClientImplSerialPort = new PushClientImplSerialPort(ip,userId,password); |
| | | Thread pushClientImplSerialPortThread = new Thread(pushClientImplSerialPort); |
| | | pushClientImplSerialPortThread.start(); |
| | | |
| | | //删除结束时间为null的记录 |
| | | int result = ardTankAbnormalParkAlarmService.deleteArdTankAbnormalParkAlarmByEndTime(); |
| | | |
| | | this.lockStateTimer = new Timer();//定时获取各个锁的状态 |
| | | TimerTask lockStateTask =new TimerTask(){ |
| | | @Override |
| | | public void run(){ |
| | | Thread thread = new Thread(){ |
| | | @Override |
| | | public void run() { |
| | | SysConfig config = new SysConfig(); |
| | | config.setConfigKey("syCarPT"); |
| | | List<SysConfig> sysConfigResult = sysConfigService.selectConfigList(config); |
| | | String syURL = ""; |
| | | |
| | | if(sysConfigResult.size() == 0){ |
| | | return; |
| | | }else{ |
| | | syURL = sysConfigResult.get(0).getConfigValue(); |
| | | } |
| | | String passwordMd5 = DigestUtils.md5Hex(password); |
| | | Map<String, Object> LogInResult = sYClient.logIn(syURL, passwordMd5, userId); |
| | | String sessionId = (String) LogInResult.get("sessionId"); |
| | | |
| | | String finalSyURL = syURL; |
| | | |
| | | List<ArdTankLock> result = ardTankLockService.getArdTankLockAll();//查询全部电磁锁 |
| | | for(ArdTankLock ardTankLock : result){ |
| | | Thread LockThread = new Thread(finalSyURL){ |
| | | @Override |
| | | public void run() { |
| | | String lockNumHead = ardTankLock.getLockNum().substring(0,2); |
| | | String lockNumTail = ardTankLock.getLockNum().substring(2,4); |
| | | //计算校验 |
| | | String checkNum = Integer.toHexString(Integer.parseInt(lockNumHead, 16) + Integer.parseInt(lockNumTail, 16) + Integer.parseInt("01", 16)); |
| | | |
| | | if(checkNum.length() == 1){ |
| | | checkNum = "0" + checkNum; |
| | | }else if(checkNum.length() > 2){ |
| | | checkNum = checkNum.substring(checkNum.length() - 2,checkNum.length()); |
| | | } |
| | | |
| | | String paramsStr = "%7B%22type%22%3A%22ff%22%2C%22dataCnt%22%3A%22" + ardTankLock.getLockNum() + "01" + checkNum + "%22%7D"; |
| | | |
| | | sendCmd(finalSyURL,userId,ardTankLock.getCarId(),199,"DataDownTransfer", paramsStr,sessionId); |
| | | } |
| | | }; |
| | | LockThread.start(); |
| | | } |
| | | } |
| | | }; |
| | | thread.start(); |
| | | } |
| | | }; |
| | | //lockStateTimer.scheduleAtFixedRate(lockStateTask,date,3000); |
| | | lockStateTimer.scheduleAtFixedRate(lockStateTask,date,5000); |
| | | |
| | | SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); |
| | | Timer lockCheckTimeTimer = new Timer();//定时校准时间 |
| | | TimerTask lockCheckTimeTask =new TimerTask(){ |
| | | @Override |
| | | public void run() { |
| | | SysConfig config = new SysConfig(); |
| | | config.setConfigKey("syCarPT"); |
| | | List<SysConfig> sysConfigResult = sysConfigService.selectConfigList(config); |
| | | String syURL = ""; |
| | | |
| | | if(sysConfigResult.size() == 0){ |
| | | return; |
| | | }else{ |
| | | syURL = sysConfigResult.get(0).getConfigValue(); |
| | | } |
| | | String passwordMd5 = DigestUtils.md5Hex(password); |
| | | Map<String, Object> LogInResult = sYClient.logIn(syURL, passwordMd5, userId); |
| | | String sessionId = (String) LogInResult.get("sessionId"); |
| | | |
| | | String finalSyURL = syURL; |
| | | |
| | | List<ArdTankLock> result = ardTankLockService.getArdTankLockAll();//查询全部电磁锁 |
| | | for(ArdTankLock ardTankLock : result){ |
| | | Thread LockThread = new Thread(finalSyURL){ |
| | | @Override |
| | | public void run() { |
| | | //获取时间并拆分年月日时分秒 |
| | | String nowTime = sdf.format(new Date()); |
| | | String nowYear = nowTime.substring(2,4); |
| | | String nowMonth = nowTime.substring(5,7); |
| | | String nowDay = nowTime.substring(8,10); |
| | | String nowHour = nowTime.substring(11,13); |
| | | String nowMinute = nowTime.substring(14,16); |
| | | String nowSecond = nowTime.substring(17,19); |
| | | |
| | | String nowYearHex = Integer.toHexString(Integer.parseInt(nowYear)); |
| | | if(nowYearHex.length() == 1){ |
| | | nowYearHex = "0" + nowYearHex; |
| | | } |
| | | String nowMonthHex = Integer.toHexString(Integer.parseInt(nowMonth)); |
| | | if(nowMonthHex.length() == 1){ |
| | | nowMonthHex = "0" + nowMonthHex; |
| | | } |
| | | String nowDayHex = Integer.toHexString(Integer.parseInt(nowDay)); |
| | | if(nowDayHex.length() == 1){ |
| | | nowDayHex = "0" + nowDayHex; |
| | | } |
| | | String nowHourHex = Integer.toHexString(Integer.parseInt(nowHour)); |
| | | if(nowHourHex.length() == 1){ |
| | | nowHourHex = "0" + nowHourHex; |
| | | } |
| | | String nowMinuteHex = Integer.toHexString(Integer.parseInt(nowMinute)); |
| | | if(nowMinuteHex.length() == 1){ |
| | | nowMinuteHex = "0" + nowMinuteHex; |
| | | } |
| | | String nowSecondHex = Integer.toHexString(Integer.parseInt(nowSecond)); |
| | | if(nowSecondHex.length() == 1){ |
| | | nowSecondHex = "0" + nowSecondHex; |
| | | } |
| | | //16进制时间 |
| | | String timeHex = nowYearHex + nowMonthHex + nowDayHex + nowHourHex + nowMinuteHex + nowSecondHex; |
| | | String lockNumHead = ardTankLock.getLockNum().substring(0,2); |
| | | String lockNumTail = ardTankLock.getLockNum().substring(2,4); |
| | | //计算校验 |
| | | String checkNum = Integer.toHexString(Integer.parseInt(lockNumHead, 16) + Integer.parseInt(lockNumTail, 16) + Integer.parseInt("08", 16) + |
| | | Integer.parseInt(nowYearHex, 16) + Integer.parseInt(nowMonthHex, 16) + Integer.parseInt(nowDayHex, 16) + |
| | | Integer.parseInt(nowHourHex, 16) + Integer.parseInt(nowMinuteHex, 16) + Integer.parseInt(nowSecondHex, 16)); |
| | | if(checkNum.length() == 1){ |
| | | checkNum = "0" + checkNum; |
| | | }else if(checkNum.length() > 2){ |
| | | checkNum = checkNum.substring(checkNum.length() - 2,checkNum.length()); |
| | | } |
| | | String paramsStr = "%7B%22type%22%3A%22ff%22%2C%22dataCnt%22%3A%22" + ardTankLock.getLockNum() + "08" + timeHex + checkNum + "%22%7D"; |
| | | |
| | | sendCmd(finalSyURL,userId,ardTankLock.getCarId(),199,"DataDownTransfer", paramsStr,sessionId); |
| | | } |
| | | }; |
| | | LockThread.start(); |
| | | } |
| | | } |
| | | }; |
| | | lockCheckTimeTimer.scheduleAtFixedRate(lockCheckTimeTask,date,10000); |
| | | |
| | | Timer sendTimer = new Timer();//定时发送锁状态 |
| | | TimerTask sendLockStateTask =new TimerTask(){ |
| | | @Override |
| | | public void run() { |
| | | SysConfig config = new SysConfig(); |
| | | config.setConfigKey("syCarPT"); |
| | | List<SysConfig> sysConfigResult = sysConfigService.selectConfigList(config); |
| | | String syURL = ""; |
| | | |
| | | if(sysConfigResult.size() == 0){ |
| | | return; |
| | | }else{ |
| | | syURL = sysConfigResult.get(0).getConfigValue(); |
| | | } |
| | | String passwordMd5 = DigestUtils.md5Hex(password); |
| | | Map<String, Object> LogInResult = sYClient.logIn(syURL, passwordMd5, userId); |
| | | String sessionId = (String) LogInResult.get("sessionId"); |
| | | |
| | | String finalSyURL = syURL; |
| | | |
| | | for (String key : ONLINE_USER_SESSIONS.keySet()){ |
| | | Thread lockThread = new Thread(finalSyURL) { |
| | | @Override |
| | | public void run() { |
| | | String usersId = key.split("_")[0]; |
| | | ardTankLockService.sendLockState(usersId,userId,password); |
| | | } |
| | | }; |
| | | lockThread.start(); |
| | | } |
| | | } |
| | | }; |
| | | //sendTimer.scheduleAtFixedRate(sendLockStateTask,date,3000); |
| | | |
| | | |
| | | } |
| | | |
| | | /** |
| | |
| | | */ |
| | | @PreAuthorize("@ss.hasPermi('sy:syCar:list')") |
| | | @GetMapping("/list") |
| | | public TableDataInfo list(ArdSyCar ardSyCar) |
| | | @ApiOperation("查询三一车辆列表") |
| | | public AjaxResult list(ArdSyCarParam ardSyCarParam) |
| | | { |
| | | startPage(); |
| | | List<ArdSyCar> list = ardSyCarService.selectArdSyCarList(ardSyCar); |
| | | return getDataTable(list); |
| | | PageHelper.startPage(ardSyCarParam.getPageNum(),ardSyCarParam.getPageSize()); |
| | | String userId = SecurityUtils.getUserId(); |
| | | Map<String,Object> result = ardSyCarService.getArdSyCarAll(userId); |
| | | return ardSyCarService.ardSyCarList(ardSyCarParam,result); |
| | | } |
| | | |
| | | /** |
| | |
| | | */ |
| | | @PreAuthorize("@ss.hasPermi('sy:syCar:remove')") |
| | | @Log(title = "三一车辆", businessType = BusinessType.DELETE) |
| | | @DeleteMapping("/{ids}") |
| | | @DeleteMapping("/{ids}") |
| | | @ApiOperation("删除三一车辆") |
| | | public AjaxResult remove(@PathVariable String[] ids) |
| | | { |
| | |
| | | /** |
| | | * 获取未挂接权限的三一车辆 |
| | | */ |
| | | @PreAuthorize("@ss.hasPermi('sy:syCar:getArdSyCarNoRight')") |
| | | // @PreAuthorize("@ss.hasPermi('sy:syCar:getArdSyCarNoRight')") |
| | | @PostMapping("/getArdSyCarNoRight") |
| | | @ApiOperation("获取未挂接权限的三一车辆") |
| | | public Map<String,Object> getArdSyCarNoRight(){ |
| | |
| | | /** |
| | | * 获取全部的三一车辆 |
| | | */ |
| | | @PreAuthorize("@ss.hasPermi('sy:syCar:getArdSyCarAll')") |
| | | // @PreAuthorize("@ss.hasPermi('sy:syCar:getArdSyCarAll')") |
| | | @PostMapping("/getArdSyCarAll") |
| | | @ApiOperation("获取全部的三一车辆") |
| | | public Map<String,Object> getArdSyCarAll(){ |
| | |
| | | /** |
| | | * 获取全部车辆模型 |
| | | */ |
| | | @PreAuthorize("@ss.hasPermi('sy:syCar:getAllCarModel')") |
| | | // @PreAuthorize("@ss.hasPermi('sy:syCar:getAllCarModel')") |
| | | @PostMapping("/getAllCarModel") |
| | | @ApiOperation("获取全部车辆模型") |
| | | public Map<String,Object> getAllCarModel(){ |
| | |
| | | String usersId = SecurityUtils.getUserId(); |
| | | ArdSyUser ardSyUser = iArdSyUserService.userById(usersId); |
| | | String syURL = sysConfigService.getSYURL(); |
| | | return ardSyCarService.allListByUser(ardSyUser,syURL,usersId); |
| | | //根据userId查询部门Id |
| | | SysUser sysUser = sysUserService.selectUserById(usersId); |
| | | //根据当前deptId或者当前及所属下级的所有deptId |
| | | List<Long> deptList = sysDeptService.deptIdBySub(sysUser.getDeptId()); |
| | | return ardSyCarService.allListByUser(ardSyUser,syURL,usersId,deptList); |
| | | } |
| | | |
| | | @PreAuthorize("@ss.hasPermi('sy:syCar:carList')") |
| | |
| | | } |
| | | } |
| | | |
| | | @PreAuthorize("@ss.hasPermi('sy:syCar:carListById')") |
| | | // @PreAuthorize("@ss.hasPermi('sy:syCar:carListById')") |
| | | @PostMapping("/carListById/{id}") |
| | | @ApiOperation("根据车辆ID获取车辆列表") |
| | | public Results carListById(@PathVariable String id){ |
| | |
| | | return Results.succeed(); |
| | | }else { |
| | | map.put("userId",ardSyUser.getUserId()); |
| | | map.put("password",ardSyUser.getPassword()); |
| | | map.put("passwords",DigestUtils.md5Hex(ardSyUser.getPassword())); |
| | | } |
| | | return Results.succeed(map); |
| | | } |
| | |
| | | SysUser sysUser = sysUserService.selectUserById(usersId); |
| | | Map<String, Map<String,Map<String,Object>>> deptPositionMap = PositionContainer.getDeptPositionMap(); |
| | | if(deptPositionMap.isEmpty()){ |
| | | return Results.succeed(); |
| | | return Results.error("31平台无车辆位置返回"); |
| | | }else { |
| | | // return Results.succeed(deptPositionMap.get(sysUser.getDeptId().toString()).get(map.get("carId"))); |
| | | return Results.succeed(deptPositionMap.get(sysUser.getDeptId().toString())); |
| | |
| | | ArdSyUser ardSyUser = iArdSyUserService.userById(usersId); |
| | | String carId = map.get("carId"); |
| | | String syURL = sysConfigService.getSYURL(); |
| | | return ardSyCarService.getCarGPSBycarId(usersId,carId,syURL,ardSyUser); |
| | | return Results.succeed(ardSyCarService.getCarGPSBycarId(usersId,carId,syURL,ardSyUser)); |
| | | } |
| | | |
| | | @PreAuthorize("@ss.hasPermi('sy:syCar:chaseCarByCarId')") |
| | |
| | | String time = map.get("time"); |
| | | return ardSyCarService.getExistTraceByCarIdAndMonth(userId,carId,time); |
| | | } |
| | | |
| | | @GetMapping("getCarPicture") |
| | | @ApiOperation("清淤获取照片") |
| | | public AjaxResult getCarNearPositionByCarId(String carId) throws UnsupportedEncodingException { |
| | | SimpleDateFormat sdf = new SimpleDateFormat("yyyyMMddHHmmss"); |
| | | Date currentTime = new Date(); |
| | | long tenSeconds = 1000L; |
| | | Date beforeTenSeconds = new Date(currentTime.getTime() - tenSeconds); |
| | | String startTime = sdf.format(beforeTenSeconds); |
| | | String usersId = SecurityUtils.getUserId(); |
| | | ArdSyUser ardSyUser = iArdSyUserService.userById(usersId); |
| | | String syURL = sysConfigService.getSYURL(); |
| | | String sessionId = ardSyCarService.getSessionId(syURL,ardSyUser); |
| | | System.out.println("sessionId:"+sessionId); |
| | | //获取摄像通道信息 |
| | | Map<String, Object> result = ardSyCarService.getCarPicture(carId,syURL,sessionId); |
| | | String vs = ""; |
| | | try { |
| | | //提取通道信息 |
| | | Map<String,Object> map = ((List<Map<String,Object>>)result.get("list")).get(0); |
| | | Map<String, Object> videos = (Map<String, Object>) JSON.parse((String) map.get("videos")); |
| | | System.out.println("通道:"+videos); |
| | | vs = (String) videos.get("vs"); |
| | | } catch (Exception e) { |
| | | return AjaxResult.error("该车辆没有摄像通道无照片数据!"); |
| | | } |
| | | //筛选通道信息 |
| | | String[] vsArray = vs.split(","); |
| | | List<String> channelList = new ArrayList<>(); |
| | | for (int i = 0; i < vsArray.length; i++) { |
| | | channelList.add(vsArray[i].substring(0,1)); |
| | | } |
| | | //拍照 |
| | | Map<String,Object> sendCmdMap = ardSyCarService.sendCmd(ardSyUser.getUserId(),syURL,sessionId,carId,channelList); |
| | | System.out.println("拍照:"+sendCmdMap); |
| | | //获取照片 |
| | | Map<String,Object> photoMap = ardSyCarService.getPhoto(syURL,carId,sessionId,startTime); |
| | | System.out.println("获取照片:"+photoMap); |
| | | return AjaxResult.success(photoMap); |
| | | } |
| | | |
| | | @GetMapping("getVideo") |
| | | @ApiOperation("清淤获取视频") |
| | | public AjaxResult getVideo(String carId){ |
| | | String usersId = SecurityUtils.getUserId(); |
| | | ArdSyUser ardSyUser = iArdSyUserService.userById(usersId); |
| | | String syURL = sysConfigService.getSYURL(); |
| | | Map<String,Object> video = ardSyCarService.getVideo(syURL,carId,ardSyUser); |
| | | return AjaxResult.success(video); |
| | | } |
| | | |
| | | @GetMapping("getThreeOne") |
| | | @ApiOperation("获取三一视频地址") |
| | | public AjaxResult getThreeOne() { |
| | | return AjaxResult.success("获取地址成功!",sysConfigService.getSYVideo()); |
| | | } |
| | | |
| | | @PreAuthorize("@ss.hasPermi('sy:syCar:getAlarmHPfmCountDetail')") |
| | | @PostMapping("getAlarmHPfmCountDetail") |
| | | @ApiOperation("根据车辆和时间段查询报警历史记录详情") |
| | | public AjaxResult getAlarmHPfmCountDetail(@RequestBody Map<String,String> map){ |
| | | String usersId = SecurityUtils.getUserId(); |
| | | ArdSyUser ardSyUser = iArdSyUserService.userById(usersId); |
| | | String carId = map.get("carId"); |
| | | String startTime = map.get("startTime"); |
| | | String endTime = map.get("endTime"); |
| | | String syURL = sysConfigService.getSYURL(); |
| | | String sessionId = ardSyCarService.getSessionId(syURL,ardSyUser); |
| | | Map<String, Object> mapDetail = ardSyCarService.getAlarmHPfmCountDetail(sessionId,usersId,carId,startTime,endTime,syURL); |
| | | return AjaxResult.success(mapDetail); |
| | | } |
| | | |
| | | @GetMapping("/getOnlineSYCarPosition") |
| | | @ApiOperation("单兵端查看已通过审批的在线三一车辆位置") |
| | | public AjaxResult getOnlineSYCarPosition() { |
| | | String soilderId = SecurityUtils.getUserId(); |
| | | try{ |
| | | Map<String,Object> result = ardSyCarService.getOnlineSYCarPosition(soilderId); |
| | | return AjaxResult.success(result); |
| | | }catch(Exception e){ |
| | | e.printStackTrace(); |
| | | return AjaxResult.error(); |
| | | } |
| | | } |
| | | |
| | | public Map<String,Object> sendCmd(String syURL,String userId,String carId,Integer cmdId,String cmd,String paramsStr,String sessionId){ |
| | | OkHttpClient okHttpClient = new OkHttpClient(); |
| | | |
| | | Request request = new Request.Builder() |
| | | .url(syURL + "/gps-web/api/send_cmd.jsp?params="+paramsStr+"&userId="+userId+"&carId="+carId+"&cmdId="+cmdId+"&cmd="+cmd+"&sessionId="+sessionId) |
| | | .build(); |
| | | //System.out.println("url = " + syURL + "/gps-web/api/send_cmd.jsp?params="+paramsStr+"&userId="+userId+"&carId="+carId+"&cmdId="+cmdId+"&cmd="+cmd+"&sessionId="+sessionId); |
| | | Response response = null; |
| | | try { |
| | | response = okHttpClient.newCall(request).execute(); |
| | | } catch (IOException e) { |
| | | // TODO Auto-generated catch block |
| | | e.printStackTrace(); |
| | | } |
| | | |
| | | okhttp3.ResponseBody responseBody = response.body(); |
| | | |
| | | try { |
| | | String message = responseBody.string();// 响应体 |
| | | Map<String,Object> map = (Map<String, Object>) JSON.parse(message); |
| | | return map; |
| | | } catch (IOException e) { |
| | | // TODO Auto-generated catch block |
| | | e.printStackTrace(); |
| | | return new HashMap(); |
| | | } |
| | | } |
| | | |
| | | } |