ard-work/src/main/java/com/ruoyi/sy/controller/ArdSyCarController.java | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
ard-work/src/main/java/com/ruoyi/sy/gps31/PushClientImplAlarm.java | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
ard-work/src/main/java/com/ruoyi/sy/gps31/PushClientImplPosition.java | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
ard-work/src/main/java/com/ruoyi/sy/service/IArdSyCarService.java | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
ard-work/src/main/java/com/ruoyi/sy/service/impl/ArdSyCarServiceImpl.java | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
ruoyi-system/src/main/java/com/ruoyi/system/mapper/SysUserMapper.java | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
ruoyi-system/src/main/resources/mapper/system/SysUserMapper.xml | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 |
ard-work/src/main/java/com/ruoyi/sy/controller/ArdSyCarController.java
@@ -13,6 +13,7 @@ import com.ruoyi.common.utils.SecurityUtils; import com.ruoyi.common.utils.uuid.IdUtils; import com.ruoyi.sy.domain.ArdSyUser; import com.ruoyi.sy.gps31.PushClientImplAlarm; import com.ruoyi.sy.gps31.PushClientImplPosition; import com.ruoyi.sy.service.IArdSyUserService; import com.ruoyi.system.domain.SysConfig; @@ -95,6 +96,11 @@ } }; carPositionTimer.scheduleAtFixedRate(carPositionTask,date,3*1000);//å¯ç¨ //车è¾å®æ¶ä½ç½®çº¿ç¨ PushClientImplAlarm pushClientImplAlarm = new PushClientImplAlarm(ip,ardSyUserList.get(0).getUserId(),ardSyUserList.get(0).getPassword()); Thread pushClientImplAlarmThread = new Thread(pushClientImplAlarm); pushClientImplAlarmThread.start(); } /** ard-work/src/main/java/com/ruoyi/sy/gps31/PushClientImplAlarm.java
¶Ô±ÈÐÂÎļþ @@ -0,0 +1,128 @@ /** * <p>Description: </p> * <p>Copyright: Copyright (c) 2020</p> * <p>Company: www.31gps.net</p> * @author chencq * @version 1.0 */ package com.ruoyi.sy.gps31; import com.alibaba.fastjson2.JSON; import com.gps31.push.netty.PushClient; import com.gps31.push.netty.PushMsg; import com.gps31.push.netty.client.TcpClient; import com.gps31.push.util.MapUtil; import com.ruoyi.common.utils.spring.SpringUtils; import com.ruoyi.sy.service.impl.ArdSyCarServiceImpl; import org.apache.commons.logging.Log; import org.apache.commons.logging.LogFactory; import java.text.SimpleDateFormat; import java.util.Date; import java.util.HashMap; import java.util.Map; /** * <p>Description: </p> * <p>Copyright: Copyright (c) 2020</p> * <p>Company: www.31gps.net</p> * @author chencq * @version 1.0 */ public class PushClientImplAlarm extends PushClient implements Runnable { private static final Log log = LogFactory.getLog(PushClientImplAlarm.class); private String ip; private String userId; private String password; public PushClientImplAlarm(String ip, String userId, String password) { this.ip = ip; this.userId = userId; this.password = password; } public PushClientImplAlarm() { } @Override public void messageReceived(TcpClient tcpClient, PushMsg pushMsg) throws Exception { if("8001".equals(pushMsg.getCmd())) {//ç»å½åºç String rspResult = MapUtil.getStrVal(pushMsg.getJsonMap(),"rspResult","1"); if("0".equals(rspResult)) {//ç»å½æåï¼å®é å¨ææ¶æ¯ Map<String,Object> map = new HashMap<String,Object>(); map.put("seq", "1"); map.put("action", "add"); map.put("msgIds", JSON.toJSONString(getSubCmdSet())); PushMsg subMsg = getInstance("0003",map); sendMsg(subMsg); } }else if("8002".equals(pushMsg.getCmd())){//å¿è·³åºç }else if("8003".equals(pushMsg.getCmd())){//订é å¨ææ¶æ¯åºç String rspResult = MapUtil.getStrVal(pushMsg.getJsonMap(),"rspResult","1"); //log.error(String.format(" 订é åºç:%s", "0".equals(rspResult)?"æå":"失败")); }else if("0200".equals(pushMsg.getCmd())) {//å®ä½ä¿¡æ¯ Map<String,Object> gpsMap = pushMsg.getJsonMap(); String carName = MapUtil.getStrVal(gpsMap, "carName","");//è·å车çå· SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); System.out.println(sdf.format(new Date())); //log.error(String.format(" ---->æ¶å°å®ä½æ°æ®:%s",JSON.toJSONString(gpsMap))); /** * * 请å å ¥ä¸æ¹éææ¹çä¸å¡é»è¾ * */ }else if("0300".equals(pushMsg.getCmd())) {//æ¥è¦æ¶æ¯ Map<String,Object> alarmMap = pushMsg.getJsonMap(); /*String carName = MapUtil.getStrVal(alarmMap, "carName","");//è·å车çå· log.error(String.format(" ---->æ¶å°æ¥è¦æ°æ®:%s",JSON.toJSONString(alarmMap)));*/ String carId = (String)alarmMap.get("carId"); Map<String,Object> result = ((ArdSyCarServiceImpl) SpringUtils.getBean("ardSyCarServiceImpl")).getArdSyCarAndDeptByCarId(carId);//æ¥è¯¢è½¦è¾åé¨é¨ if(result != null){ alarmMap.putAll(result); } Map<Integer,Object> data = new HashMap(); data.put(40000, alarmMap); ((ArdSyCarServiceImpl) SpringUtils.getBean("ardSyCarServiceImpl")).sendArdSyCarAlarmByCarId(carId,data);//æ¥è¯¢è½¦è¾åé¨é¨ }else if("0401".equals(pushMsg.getCmd())) {//éä¼ æ¶æ¯ Map<String,Object> dataMap = pushMsg.getJsonMap(); String carName = MapUtil.getStrVal(dataMap, "carName","");//è·å车çå· //log.error(String.format(" ---->æ¶å°éä¼ æ°æ®:%s",JSON.toJSONString(dataMap))); /** * * 请å å ¥ä¸æ¹éææ¹çä¸å¡é»è¾ * */ } } public void sendMassage() { try { PushClientImplPosition client = new PushClientImplPosition(); client.setLog(false);//æ¯å¦æå°ææ client.setHost(this.ip);//æå¡å¨IP client.setPort(10100);//æå¡å¨ç«¯å£ client.setUserName(this.userId);//ç³»ç»ç¨æ·å client.setPwd(this.password);//ç³»ç»ç¨æ·å¯ç client.setSubMsgIds("0300");//订é çå¨ææ¶æ¯ï¼å¤ä¸ªå¨ææ¶æ¯ä½¿ç¨|è¾åï¼å½åç¤ºä¾æ¯è®¢é å®ä½æ¶æ¯(0x0200)åæ¥è¦æ¶æ¯(0x0300) client.setDesc("æµè¯å®¢æ·ç«¯");//客æ·ç«¯çæè¿°ï¼ client.start(); while(true) { Thread.sleep(1000); } } catch (Exception e) { e.printStackTrace(); } } @Override public void run() { sendMassage(); } } ard-work/src/main/java/com/ruoyi/sy/gps31/PushClientImplPosition.java
@@ -143,7 +143,7 @@ public void sendMassage() { try { PushClientImplPosition client = new PushClientImplPosition(); client.setLog(true);//æ¯å¦æå°ææ client.setLog(false);//æ¯å¦æå°ææ client.setHost(this.ip);//æå¡å¨IP client.setPort(10100);//æå¡å¨ç«¯å£ client.setUserName(this.userId);//ç³»ç»ç¨æ·å ard-work/src/main/java/com/ruoyi/sy/service/IArdSyCarService.java
@@ -92,6 +92,11 @@ * æ ¹æ®é¨é¨åé车è¾å®æ¶ä½ç½® */ public void sendArdSyCarPosition(); /** * æ ¹æ®é¨é¨åé车è¾å®æ¶æ¥è¦ */ public void sendArdSyCarAlarmByCarId(String carId, Map<Integer,Object> data); // List<ArdSyCar> getArdSyCarWithRightByCarIdList(List<String> carIdList); Results carListById(String id); ard-work/src/main/java/com/ruoyi/sy/service/impl/ArdSyCarServiceImpl.java
@@ -371,11 +371,17 @@ SysUser sysUser = userMapper.selectUserById(key); String deptId = String.valueOf(sysUser.getDeptId()); Map<String,Map<String,Object>> map = PositionContainer.getDeptPositionMap().get(deptId); System.out.println("/////////////"); System.out.println(PositionContainer.getDeptPositionMap()); Map<Integer,Object> data = new HashMap(); data.put(30000, map.values()); WebSocketUtils.sendMessage(ONLINE_USER_SESSIONS.get(key), JSON.toJSONString(data)); } } @Override public void sendArdSyCarAlarmByCarId(String carId, Map<Integer,Object> data) { List<SysUser> result = userMapper.getSysUserByCarId(carId); for(SysUser sysUser : result){ WebSocketUtils.sendMessage(ONLINE_USER_SESSIONS.get(sysUser.getUserId()), JSON.toJSONString(data)); } } } ruoyi-system/src/main/java/com/ruoyi/system/mapper/SysUserMapper.java
@@ -130,4 +130,10 @@ * @return ç»æ */ public SysUser checkEmailUnique(String email); /** * æ ¹æ®è½¦è¾ä¸»é®æ¥è¯¢ç´å±åä¸çº§ç¨æ· * */ public List<SysUser> getSysUserByCarId(String carId); } ruoyi-system/src/main/resources/mapper/system/SysUserMapper.xml
@@ -283,4 +283,11 @@ </foreach> </delete> <select id="getSysUserByCarId" parameterType="java.lang.String" resultMap="SysUserResult"> select * from sys_user su where su.dept_id in ( select cast(unnest(array_append(string_to_array(sd.ancestors,','), cast(sd.dept_id as text))) as int) from ard_sy_car asy inner join sys_dept sd on asy.dept_id = sd.dept_id where asy.car_id = #{carId}) </select> </mapper>