From 664fd1119db534b3746bc211f063f89b57d9db3b Mon Sep 17 00:00:00 2001 From: zhangnaisong <2434969829@qq.com> Date: 星期一, 24 七月 2023 17:18:26 +0800 Subject: [PATCH] 三一车辆命令代码修改提交 --- ard-work/src/main/java/com/ruoyi/sy/service/impl/ArdSyCarServiceImpl.java | 159 ++++++++++++++++++++++++++++++++++++++++++++++++++-- 1 files changed, 152 insertions(+), 7 deletions(-) diff --git a/ard-work/src/main/java/com/ruoyi/sy/service/impl/ArdSyCarServiceImpl.java b/ard-work/src/main/java/com/ruoyi/sy/service/impl/ArdSyCarServiceImpl.java index 5f23307..b594f6d 100644 --- a/ard-work/src/main/java/com/ruoyi/sy/service/impl/ArdSyCarServiceImpl.java +++ b/ard-work/src/main/java/com/ruoyi/sy/service/impl/ArdSyCarServiceImpl.java @@ -9,7 +9,9 @@ import java.util.stream.Collectors; import com.alibaba.fastjson.JSON; +import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.ruoyi.common.core.domain.entity.SysUser; +import com.ruoyi.common.utils.SecurityUtils; import com.ruoyi.common.utils.uuid.IdUtils; import com.ruoyi.common.websocket.util.WebSocketUtils; import com.ruoyi.device.hiksdk.config.MinioClientSingleton; @@ -21,15 +23,12 @@ import com.ruoyi.system.mapper.SysConfigMapper; import com.ruoyi.system.mapper.SysUserMapper; import com.ruoyi.utils.forest.SYClient; -import com.ruoyi.utils.httpclient.SYCarClient; -import com.ruoyi.utils.result.Constants; import com.ruoyi.utils.result.Results; import io.minio.GetPresignedObjectUrlArgs; import io.minio.ListObjectsArgs; import io.minio.PutObjectArgs; import io.minio.Result; import io.minio.http.Method; -import io.minio.messages.Contents; import io.minio.messages.Item; import org.apache.commons.codec.digest.DigestUtils; import org.springframework.stereotype.Service; @@ -64,6 +63,8 @@ @Resource private SYClient sYClient; + + private Map<Integer,Map<String,String>> logInMap = new HashMap(); /** * 鏌ヨ涓変竴杞﹁締 @@ -367,17 +368,161 @@ SysUser sysUser = userMapper.selectUserById(key); String deptId = String.valueOf(sysUser.getDeptId()); Map<String,Map<String,Object>> map = PositionContainer.getDeptPositionMap().get(deptId); - Map<Integer,Object> data = new HashMap(); - data.put(30000, map.values()); - WebSocketUtils.sendMessage(ONLINE_USER_SESSIONS.get(key), JSON.toJSONString(data)); + if(map != null){ + Map<String,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) { + public void sendArdSyCarAlarmByCarId(String carId, Map<String,Object> data) { List<SysUser> result = userMapper.getSysUserByCarId(carId); for(SysUser sysUser : result){ WebSocketUtils.sendMessage(ONLINE_USER_SESSIONS.get(sysUser.getUserId()), JSON.toJSONString(data)); } } + + /** + * 鏍规嵁鐢ㄦ埛鑾峰彇涓変竴鍒楄〃 + * @return + */ + @Override + public Map<String,Object> allListByUser(ArdSyUser ardSyUser,String syURL,String usersId){ + Map<String,Object> result0 = new HashMap(); + //鍒ゆ柇鍏宠仈琛ㄦ槸鍚︽湁鏁版嵁 + if(ardSyUser!=null){ + Map<String, String> result = logInMap.get(Integer.parseInt(usersId)); + //31鐢ㄦ埛鍚嶅瘑鐮� + String username31 = ardSyUser.getUserId(); + String password31 = ardSyUser.getPassword(); + String passwordMd5 = DigestUtils.md5Hex(password31); + Map<String, Object> result1 = sYClient.logIn(syURL,passwordMd5, username31); + result = new HashMap(); + result.put("userId", username31); + result.put("sessionId", (String) result1.get("sessionId")); + try { + result0 = sYClient.getTeamList(syURL,result.get("userId"),result.get("sessionId")); + } catch (Exception e) { + Map<String,Object> map = new HashMap(); + map.put("rspCode", 0); + map.put("list", new ArrayList()); + return map; + } + int online = 0; + for(Map<String,Object> map : (List<Map<String,Object>>) result0.get("list")){ + Map<String,Object> resultMap = sYClient.getTeamCarList(syURL,(String)map.get("teamId"),result.get("sessionId")); + List<Map<String,Object>> carList = (List<Map<String, Object>>) resultMap.get("carList"); + for(Map<String,Object> m : carList){ + if(((String) m.get("stateCn")).contains("鍦ㄧ嚎")){ + online = online + 1; + }else{ + continue; + } + } + for(Map<String,Object> m : (List<Map<String,Object>>) result0.get("list")){ + if(((String) m.get("teamId")).equals(((String) map.get("teamId")))){ + map.put("count", Integer.parseInt((String) m.get("carNum"))); + } + } + map.put("online", online); + online = 0; + } + }else { + result0.put("鍒楄〃涓虹┖锛�","鏃犲叧鑱旇处鍙凤紒"); + } + return result0; + } + + @Override + public List<Map<String,String>> getCarList(ArdSyUser ardSyUser, String syURL, String usersId,String teamId){ + List<Map<String,String>> list = new ArrayList<>(); + Map<String, String> result = logInMap.get(Integer.parseInt(usersId)); + //31鐢ㄦ埛鍚嶅瘑鐮� + String username31 = ardSyUser.getUserId(); + String password31 = ardSyUser.getPassword(); + String passwordMd5 = DigestUtils.md5Hex(password31); + Map<String, Object> result1 = sYClient.logIn(syURL,passwordMd5, username31); + result = new HashMap(); + result.put("userId", username31); + result.put("sessionId", (String) result1.get("sessionId")); + //鏌ヨ璇eamId涓嬬殑杞﹁締鏁版嵁 + Map<String,Object> carList31 = new HashMap(); + carList31 = sYClient.getCarList1(syURL,teamId, result.get("userId"),result.get("sessionId")); + //鎷垮埌杞﹁締鏁版嵁 + list= (List) carList31.get("list"); + List<String> carIdList = new ArrayList(); + //鎵�鏈塩arId + for(Map<String,String> m : list){ + carIdList.add(m.get("carId")); + } + if(carIdList.size() == 0){ + Map<String,String> map0 = new HashMap(); + map0.put("list", "{}"); + map0.put("rspCode", "1"); + list.add(map0); + return list; + } + //娣诲姞杞﹁締灞炴�� + for(Map<String,String> m : list){ + switch (m.get("state")) { + case "1": + m.put("carState", "绂荤嚎-浠庢湭鎶ュ畾浣�");break; + case "2": + m.put("carState", "绂荤嚎-娆犺垂");break; + case "3": + m.put("carState", "绂荤嚎");break; + case "4": + m.put("carState", "绂荤嚎-鎶ヨ");break; + case "5": + m.put("carState", "鍦ㄧ嚎-浠庢湭鎶ュ畾浣�");break; + case "6": + m.put("carState", "鍦ㄧ嚎-娆犺垂");break; + case "7": + m.put("carState", "鍦ㄧ嚎-琛岄┒");break; + case "8": + m.put("carState", "鍦ㄧ嚎-琛岄┒-鎶ヨ");break; + case "9": + m.put("carState", "鍦ㄧ嚎-鍋滆溅-ACC鍏�");break; + case "10": + m.put("carState", "鍦ㄧ嚎-鍋滆溅-ACC寮�");break; + case "11": + m.put("carState", "鍦ㄧ嚎-鍋滆溅-ACC鍏�-鎶ヨ");break; + case "12": + m.put("carState", "鍦ㄧ嚎-鍋滆溅-ACC寮�-鎶ヨ");break; + case "13": + m.put("carState", "鍦ㄧ嚎-鏃犳晥瀹氫綅");break; + default: + break; + } + } + return list; + } + + /** + * 鏍规嵁dept闆嗗悎鏌ヨ鍑烘墍鏈夊搴旂殑carId + * @param deptList + * @return + */ + @Override + public List<Map<String,String>> carIdByDeptList(List<Long> deptList,List<Map<String,String>> list){ + QueryWrapper<ArdSyCar> queryWrapper = new QueryWrapper<>(); + queryWrapper.in("dept_id",deptList); + List<ArdSyCar> carList = ardSyCarMapper.selectList(queryWrapper); + //瀵规瘮鎶婂尮閰嶅埌鐨勬暟鎹坊鍔犲埌list涓� + for(Map<String,String> m : list){ + String carId = m.get("carId"); + for (int i = 0; i < carList.size(); i++) { + ArdSyCar ardSyCar = carList.get(i); + if(carId.equals(ardSyCar.getCarId())){ + m.put("carModel",ardSyCar.getCarModel()); + m.put("carTypeArd",ardSyCar.getCarType()); + m.put("carBrand",ardSyCar.getCarBrand()); + m.put("carPicture",ardSyCar.getCarPicture()); + } + } + } + return list; + } } -- Gitblit v1.9.3