From 24e152d8a574e77b1909a8fea4703d4fe835c2a5 Mon Sep 17 00:00:00 2001 From: zhangnaisong <2434969829@qq.com> Date: 星期五, 05 七月 2024 11:53:07 +0800 Subject: [PATCH] 查询电磁锁及挂接的车辆提交 --- ard-work/src/main/java/com/ruoyi/sy/controller/ArdTankLockController.java | 13 ++++ ard-work/src/main/java/com/ruoyi/sy/service/IArdTankLockService.java | 3 ard-work/src/main/resources/mapper/sy/ArdTankLockMapper.xml | 2 ard-work/src/main/java/com/ruoyi/utils/forest/SYClient.java | 3 + ard-work/src/main/java/com/ruoyi/sy/gps31/PushClientImplPosition.java | 6 +- ard-work/src/main/java/com/ruoyi/sy/service/impl/ArdTankLockServiceImpl.java | 118 +++++++++++++++++++++++++++++++++------ 6 files changed, 122 insertions(+), 23 deletions(-) diff --git a/ard-work/src/main/java/com/ruoyi/sy/controller/ArdTankLockController.java b/ard-work/src/main/java/com/ruoyi/sy/controller/ArdTankLockController.java index eeff2ee..5a47087 100644 --- a/ard-work/src/main/java/com/ruoyi/sy/controller/ArdTankLockController.java +++ b/ard-work/src/main/java/com/ruoyi/sy/controller/ArdTankLockController.java @@ -235,4 +235,17 @@ public AjaxResult getArdTankWallById(@PathVariable String id) { return success(ardTankWallService.selectArdTankWallById(id)); } + + /** + * 妯$硦鏌ヨ鐢电閿佸強鎸傛帴鐨勮溅杈� + */ + @ApiOperation("妯$硦鏌ヨ鐢电閿佸強鎸傛帴鐨勮溅杈�") + @PreAuthorize("@ss.hasPermi('sy:lock:getLockByCarPlate')") + @PostMapping("/getLockByCarPlate") + public TableDataInfo getLockByCarPlate(@RequestBody Map<String,String> para) { + startPage(); + String userId = SecurityUtils.getUserId(); + List<Map<String,String>> result = ardTankLockService.getLockByCarPlate(userId,para.get("carPlate")); + return getDataTable(result); + } } diff --git a/ard-work/src/main/java/com/ruoyi/sy/gps31/PushClientImplPosition.java b/ard-work/src/main/java/com/ruoyi/sy/gps31/PushClientImplPosition.java index bf31f63..881433c 100644 --- a/ard-work/src/main/java/com/ruoyi/sy/gps31/PushClientImplPosition.java +++ b/ard-work/src/main/java/com/ruoyi/sy/gps31/PushClientImplPosition.java @@ -87,7 +87,7 @@ Map<String,Object> result = ((ArdSyCarServiceImpl)SpringUtils.getBean("ardSyCarServiceImpl")).getArdSyCarAndDeptByCarId(carId);//鏌ヨ杞﹁締鍙婇儴闂� if(result != null){ //娓呮筏寮�濮�---------- - try{ + /*try{ String lng = (String) gpsMap.get("lng").toString();//鑾峰彇缁忓害 String lat = (String) gpsMap.get("lat").toString();//鑾峰彇绾害 String carName = (String) gpsMap.get("carName");//鑾峰彇杞︾墝鍙� @@ -109,7 +109,7 @@ //鏃犻攣 rtuType = false; } - // log.debug("瀹氫綅鏁版嵁锛氳溅杈哻arId:"+carId+"缁忓害lng:"+lng+"绾害lat:"+lat); + //log.debug("瀹氫綅鏁版嵁锛氳溅杈哻arId:"+carId+"缁忓害lng:"+lng+"绾害lat:"+lat); //瀹氫箟2缁寸┖闂� Point2D.Double point = new Point2D.Double(Double.parseDouble(lng), Double.parseDouble(lat)); List<Point2D.Double> pts = new ArrayList<Point2D.Double>(); @@ -374,7 +374,7 @@ //娓呮筏缁撴潫------------ }catch(Exception e){ - } + }*/ gpsMap.putAll(result); String ancestors = (String) gpsMap.get("ancestors");//鑾峰彇鐖剁骇閮ㄩ棬 diff --git a/ard-work/src/main/java/com/ruoyi/sy/service/IArdTankLockService.java b/ard-work/src/main/java/com/ruoyi/sy/service/IArdTankLockService.java index 9054df8..ef31435 100644 --- a/ard-work/src/main/java/com/ruoyi/sy/service/IArdTankLockService.java +++ b/ard-work/src/main/java/com/ruoyi/sy/service/IArdTankLockService.java @@ -4,7 +4,6 @@ import java.util.Map; import com.ruoyi.sy.domain.ArdTankLock; -import com.ruoyi.utils.result.Results; /** * 鐢电閿丼ervice鎺ュ彛 @@ -71,4 +70,6 @@ public int deleteLockByCarId(String carId); public int updateLockByCarId(Map<String,Object> para); + + public List<Map<String, String>> getLockByCarPlate(String usersId, String carPlate); } diff --git a/ard-work/src/main/java/com/ruoyi/sy/service/impl/ArdTankLockServiceImpl.java b/ard-work/src/main/java/com/ruoyi/sy/service/impl/ArdTankLockServiceImpl.java index d7980f6..95d0239 100644 --- a/ard-work/src/main/java/com/ruoyi/sy/service/impl/ArdTankLockServiceImpl.java +++ b/ard-work/src/main/java/com/ruoyi/sy/service/impl/ArdTankLockServiceImpl.java @@ -2,7 +2,6 @@ import java.util.*; -import com.dtflys.forest.annotation.Var; import com.ruoyi.common.core.domain.entity.SysConfig; import com.ruoyi.common.utils.uuid.IdUtils; import com.ruoyi.sy.domain.ArdSyUser; @@ -11,15 +10,11 @@ import com.ruoyi.sy.mapper.ArdTankWallLockTemporaryMapper; import com.ruoyi.system.mapper.SysConfigMapper; import com.ruoyi.utils.forest.SYClient; -import com.ruoyi.utils.result.Results; import org.apache.commons.codec.digest.DigestUtils; -import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; import java.util.stream.Collectors; -import com.ruoyi.common.utils.StringUtils; -import com.ruoyi.common.utils.SecurityUtils; import com.ruoyi.sy.mapper.ArdTankLockMapper; import com.ruoyi.sy.domain.ArdTankLock; import com.ruoyi.sy.service.IArdTankLockService; @@ -77,7 +72,6 @@ /** * 鏂板鐢电閿� * - * @param ardTankLock 鐢电閿� * @return 缁撴灉 */ @Override @@ -146,16 +140,16 @@ //public Results List<Map<String,Object>> getAll(String usersId) { public List<Map<String,Object>> getAll(String usersId) { ArdSyUser ardSyUser = ardSyUserMapper.userById(usersId); - /*if(ardSyUser == null){ - return Results.error("娌℃湁鎸傛帴涓変竴杞﹁締鐢ㄦ埛"); - }*/ + if(ardSyUser == null){ + return new ArrayList(); + } List<SysConfig> syURLResult = sysConfigMapper.selectByType("syCarPT"); String syURL = ""; if(syURLResult.size() != 0){ syURL = syURLResult.get(0).getConfigValue(); - }/*else{ - return Results.error("涓変竴杞﹁締鍦板潃鏈綍鍏�"); - }*/ + }else{ + return new ArrayList(); + } String passwordMd5 = DigestUtils.md5Hex(ardSyUser.getPassword()); Map<String, Object> LogInResult = sYClient.logIn(syURL, passwordMd5, ardSyUser.getUserId()); String sessionId = (String) LogInResult.get("sessionId"); @@ -213,16 +207,16 @@ @Override public Map<String, Object> getLockByCarId(String carId, String usersId) { ArdSyUser ardSyUser = ardSyUserMapper.userById(usersId); - /*if(ardSyUser == null){ - return Results.error("娌℃湁鎸傛帴涓変竴杞﹁締鐢ㄦ埛"); - }*/ + if(ardSyUser == null){ + return new HashMap(); + } List<SysConfig> syURLResult = sysConfigMapper.selectByType("syCarPT"); String syURL = ""; if(syURLResult.size() != 0){ syURL = syURLResult.get(0).getConfigValue(); - }/*else{ - return Results.error("涓変竴杞﹁締鍦板潃鏈綍鍏�"); - }*/ + }else{ + return new HashMap(); + } String passwordMd5 = DigestUtils.md5Hex(ardSyUser.getPassword()); Map<String, Object> LogInResult = sYClient.logIn(syURL, passwordMd5, ardSyUser.getUserId()); String sessionId = (String) LogInResult.get("sessionId"); @@ -324,4 +318,92 @@ } return result; } + + @Override + public List<Map<String, String>> getLockByCarPlate(String usersId, String carPlate) { + ArdSyUser ardSyUser = ardSyUserMapper.userById(usersId); + if(ardSyUser == null){ + return new ArrayList(); + } + List<SysConfig> syURLResult = sysConfigMapper.selectByType("syCarPT"); + String syURL = ""; + if(syURLResult.size() != 0){ + syURL = syURLResult.get(0).getConfigValue(); + }else{ + return new ArrayList(); + } + String passwordMd5 = DigestUtils.md5Hex(ardSyUser.getPassword()); + Map<String, Object> LogInResult = sYClient.logIn(syURL, passwordMd5, ardSyUser.getUserId()); + String sessionId = (String) LogInResult.get("sessionId"); + List<ArdTankLock> ardTankLockList = ardTankLockMapper.getAll(); + List<Map<String,String>> result = new ArrayList(); + if(!carPlate.equals("")){ + Map<String,Object> carMap = sYClient.getCarListByPlate(syURL,carPlate,ardSyUser.getUserId(),sessionId);//杞︾墝鍙锋ā绯婃悳绱㈣溅杈� + List<Map<String,Object>> carList = new ArrayList(); + if(((String)carMap.get("rspCode")).equals("1")){ + carList = (List<Map<String, Object>>) carMap.get("list"); + }else{ + return new ArrayList(); + } + List<String> carIdList = new ArrayList();//璁板綍涓変竴杞﹁締涓婚敭 + for(Map<String,Object> map : carList){ + carIdList.add((String) map.get("carId")); + } + for(ArdTankLock ardTankLock : ardTankLockList){ + if(carIdList.contains(ardTankLock.getCarId())){//杩斿洖鐨勮溅杈嗗寘鍚暟鎹簱褰曞叆鐨勮溅杈� + Map<String,String> map = new HashMap(); + map.put("id",ardTankLock.getId()); + map.put("lockNum",ardTankLock.getLockNum()); + map.put("lockName",ardTankLock.getLockName()); + map.put("imgPositionTop",ardTankLock.getImgPositionTop()); + map.put("imgPositionLeft",ardTankLock.getImgPositionLeft()); + map.put("carId",ardTankLock.getCarId()); + map.put("enable",ardTankLock.getEnable()); + if(ardTankLock.getRestartState() == null){ + map.put("restartState",""); + }else{ + map.put("restartState",ardTankLock.getRestartState()); + } + if(ardTankLock.getOnlineTime() == null){ + map.put("onlineTime",""); + }else{ + map.put("onlineTime",ardTankLock.getOnlineTime()); + } + Map<String,Object> car = carList.stream().filter(mapCar -> ((String)mapCar.get("carId")).equals(ardTankLock.getCarId())).collect(Collectors.toList()).get(0); + map.put("carPlate", (String) car.get("carPlate")); + result.add(map); + }else{ + continue; + } + } + }else{ + for(ArdTankLock ardTankLock : ardTankLockList){ + Map<String,String> map = new HashMap(); + map.put("id",ardTankLock.getId()); + map.put("lockNum",ardTankLock.getLockNum()); + map.put("lockName",ardTankLock.getLockName()); + map.put("imgPositionTop",ardTankLock.getImgPositionTop()); + map.put("imgPositionLeft",ardTankLock.getImgPositionLeft()); + map.put("carId",ardTankLock.getCarId()); + map.put("enable",ardTankLock.getEnable()); + if(ardTankLock.getRestartState() == null){ + map.put("restartState",""); + }else{ + map.put("restartState",ardTankLock.getRestartState()); + } + if(ardTankLock.getOnlineTime() == null){ + map.put("onlineTime",""); + }else{ + map.put("onlineTime",ardTankLock.getOnlineTime()); + } + Map<String,Object> syResult = sYClient.getCarNearPositionByCarId(syURL, ardTankLock.getCarId(), ardSyUser.getUserId(), sessionId); + if(((String)syResult.get("rspCode")).equals("1")){ + Map<String,Object> carMap = ((List<Map<String,Object>>)syResult.get("list")).get(0); + map.put("carPlate", (String) carMap.get("carPlate")); + } + result.add(map); + } + } + return result; + } } diff --git a/ard-work/src/main/java/com/ruoyi/utils/forest/SYClient.java b/ard-work/src/main/java/com/ruoyi/utils/forest/SYClient.java index d515734..1c8b41e 100644 --- a/ard-work/src/main/java/com/ruoyi/utils/forest/SYClient.java +++ b/ard-work/src/main/java/com/ruoyi/utils/forest/SYClient.java @@ -44,4 +44,7 @@ @Get(url = "${syURL}/gps-web/api/send_cmd.jsp?params=${paramsStr}&userId=admin&loginType=user&carId=${carId}&cmdId=${cmdId}&cmd=${cmd}&sessionId=${sessionId}") Map<String,Object> changePositionSendMode(@Var("syURL") String syURL, @Var("carId") String carId,@Var("cmdId") Integer cmdId,@Var("cmd") String cmd,@Var("paramsStr") String paramsStr,@Var("sessionId") String sessionId); + + @Get(url = "${syURL}/gps-web/api/search_car.jsp?type=1&plate=${plate}&video=false&userId=${userId}&loginType=user&loginWay=interface&loginLang=zh_CN&appDevId=&appId=android&sessionId=${sessionId}") + Map<String,Object> getCarListByPlate(@Var("syURL") String syURL, @Var("plate") String plate,@Var("userId") String userId,@Var("sessionId") String sessionId); } diff --git a/ard-work/src/main/resources/mapper/sy/ArdTankLockMapper.xml b/ard-work/src/main/resources/mapper/sy/ArdTankLockMapper.xml index cba1517..c8e672e 100644 --- a/ard-work/src/main/resources/mapper/sy/ArdTankLockMapper.xml +++ b/ard-work/src/main/resources/mapper/sy/ArdTankLockMapper.xml @@ -92,7 +92,7 @@ </delete> <select id="getAll" resultMap="ArdTankLockResult"> - select * from ard_tank_lock atl order by atl.car_id + select * from ard_tank_lock atl order by atl.car_id,lock_num </select> <insert id="insertArdTankLocks" parameterType="com.ruoyi.sy.domain.ArdTankLock" > -- Gitblit v1.9.3