zhangnaisong
2024-07-05 24e152d8a574e77b1909a8fea4703d4fe835c2a5
查询电磁锁及挂接的车辆提交
已修改6个文件
145 ■■■■ 文件已修改
ard-work/src/main/java/com/ruoyi/sy/controller/ArdTankLockController.java 13 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ard-work/src/main/java/com/ruoyi/sy/gps31/PushClientImplPosition.java 6 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ard-work/src/main/java/com/ruoyi/sy/service/IArdTankLockService.java 3 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ard-work/src/main/java/com/ruoyi/sy/service/impl/ArdTankLockServiceImpl.java 118 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ard-work/src/main/java/com/ruoyi/utils/forest/SYClient.java 3 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ard-work/src/main/resources/mapper/sy/ArdTankLockMapper.xml 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
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);
    }
}
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("定位数据:车辆carId:"+carId+"经度lng:"+lng+"纬度lat:"+lat);
                    //log.debug("定位数据:车辆carId:"+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");//获取父级部门
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;
/**
 * 电磁锁Service接口
@@ -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);
}
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;
    }
}
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);
}
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" >