From b5cf2539edf29b0da8bde02ad3b5c1c373824a34 Mon Sep 17 00:00:00 2001 From: 艾金辉 <1144154118@qq.com> Date: 星期一, 24 七月 2023 15:23:34 +0800 Subject: [PATCH] Merge remote-tracking branch 'origin/master' --- ard-work/src/main/java/com/ruoyi/sy/service/impl/ArdSyCarServiceImpl.java | 196 ++++++++++++++++++++++++++++++++++++++++++------ 1 files changed, 171 insertions(+), 25 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 800649c..014701b 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; @@ -20,16 +22,15 @@ import com.ruoyi.system.domain.SysConfig; import com.ruoyi.system.mapper.SysConfigMapper; import com.ruoyi.system.mapper.SysUserMapper; -import com.ruoyi.utils.httpclient.SYCarClient; -import com.ruoyi.utils.result.Constants; +import com.ruoyi.utils.forest.SYClient; 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; import com.ruoyi.sy.mapper.ArdSyCarMapper; import com.ruoyi.sy.domain.ArdSyCar; @@ -60,6 +61,10 @@ @Resource private SysUserMapper userMapper; + @Resource + private SYClient sYClient; + + private Map<Integer,Map<String,String>> logInMap = new HashMap(); /** * 鏌ヨ涓変竴杞﹁締 @@ -160,9 +165,12 @@ return result; }else{ ArdSyUser ardSyUser = ardSyUserList.get(0); - Map<String,Object> LogInResult = SYCarClient.logIn(syURL,ardSyUser.getUserId(), ardSyUser.getPassword()); + //Map<String,Object> LogInResult = SYCarClient.logIn(syURL,ardSyUser.getUserId(), ardSyUser.getPassword()); + String passwordMd5 = DigestUtils.md5Hex(ardSyUser.getPassword()); + Map<String,Object> LogInResult = sYClient.logIn(syURL,passwordMd5,ardSyUser.getUserId()); String sessionId = (String) LogInResult.get("sessionId"); - Map<String,Object> carListMap = SYCarClient.getCarList(syURL,sessionId); + //Map<String,Object> carListMap = SYCarClient.getCarList(syURL,sessionId); + Map<String,Object> carListMap = sYClient.getCarList(syURL,sessionId); if(((String)carListMap.get("rspCode")).equals("1")){ List<Map<String,Object>> list = (List<Map<String,Object>>) carListMap.get("list"); ArdSyCar ardSyCar = new ArdSyCar(); @@ -212,25 +220,14 @@ return result; }else{ ArdSyUser ardSyUser = ardSyUserList.get(0); - Map<String,Object> LogInResult = SYCarClient.logIn(syURL,ardSyUser.getUserId(), ardSyUser.getPassword()); + //Map<String,Object> LogInResult = SYCarClient.logIn(syURL,ardSyUser.getUserId(), ardSyUser.getPassword()); + String passwordMd5 = DigestUtils.md5Hex(ardSyUser.getPassword()); + Map<String,Object> LogInResult = sYClient.logIn(syURL,passwordMd5,ardSyUser.getUserId()); String sessionId = (String) LogInResult.get("sessionId"); - Map<String,Object> carListMap = SYCarClient.getCarList(syURL,sessionId); + //Map<String,Object> carListMap = SYCarClient.getCarList(syURL,sessionId); + Map<String,Object> carListMap = sYClient.getCarList(syURL,sessionId); if(((String)carListMap.get("rspCode")).equals("1")){ List<Map<String,Object>> list = (List<Map<String,Object>>) carListMap.get("list"); - /*ArdSyCar ardSyCar = new ArdSyCar(); - List<ArdSyCar> ardSyCarList = ardSyCarMapper.selectArdSyCarList(ardSyCar); - List<String> carIdList = new ArrayList(); - for(ArdSyCar innerArdSyCar : ardSyCarList){ - carIdList.add(innerArdSyCar.getCarId()); - } - - List<Map<String,Object>> carList = list.stream().filter(new Predicate<Map<String,Object>>(){ - @Override - public boolean test(Map<String,Object> map) { - return !carIdList.contains((String)map.get("carId")); - } - }).collect(Collectors.toList()); - result.put("data",carList);*/ result.put("data",list); result.put("code","200"); return result; @@ -371,12 +368,161 @@ SysUser sysUser = userMapper.selectUserById(key); String deptId = String.valueOf(sysUser.getDeptId()); Map<String,Map<String,Object>> map = PositionContainer.getDeptPositionMap().get(deptId); - List<Map<String,Object>> positionList = (List<Map<String, Object>>) map.values(); - if(positionList.size() != 0){ + if(map != null){ Map<Integer,Object> data = new HashMap(); - data.put(30000,positionList); - WebSocketUtils.sendMessage(ONLINE_USER_SESSIONS.get(key), JSON.toJSONString(positionList)); + 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)); + } + } + + /** + * 鏍规嵁鐢ㄦ埛鑾峰彇涓変竴鍒楄〃 + * @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