艾金辉
2023-07-24 651186d7fce51274500b66d7ed8a53bedc6a1339
ard-work/src/main/java/com/ruoyi/sy/controller/ArdSyCarController.java
@@ -4,25 +4,32 @@
import java.util.*;
import java.util.*;
import javax.annotation.PostConstruct;
import javax.annotation.Resource;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import com.alibaba.fastjson2.JSON;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.ruoyi.client.ARDCarGPSLogInClient;
import com.ruoyi.client.ARDCarSYGPSClient;
import com.ruoyi.common.core.domain.entity.SysDept;
import com.ruoyi.common.core.domain.entity.SysUser;
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;
import com.ruoyi.system.service.ISysConfigService;
import com.ruoyi.system.service.ISysDeptService;
import com.ruoyi.system.service.ISysUserService;
import com.ruoyi.utils.forest.RongCloudClient;
import com.ruoyi.utils.forest.SYClient;
import com.ruoyi.utils.httpclient.SYCarClient;
import com.ruoyi.utils.result.Results;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import org.apache.commons.codec.digest.DigestUtils;
import org.springframework.security.access.prepost.PreAuthorize;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;
@@ -61,6 +68,14 @@
    @Autowired
    private IArdSyUserService iArdSyUserService;
    @Autowired
    private ISysUserService sysUserService;
    @Autowired
    private ISysDeptService sysDeptService;
    @Resource
    private SYClient sYClient;
    private ArdSyCarController ardSyCarController;
@@ -89,11 +104,17 @@
        Date date = new Date();
        Timer carPositionTimer = new Timer();//定时推送实时位置
        TimerTask carPositionTask =new TimerTask(){
            @Override
            public void run(){
                ardSyCarService.sendArdSyCarPosition();
            }
        };
        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();
    }
    /**
@@ -187,7 +208,9 @@
            return error("三一车辆url没有录入");
        }else{
            syURL = sysConfigResult.get(0).getConfigValue();
            Map<String,Object> result = SYCarClient.logIn(syURL,userId, password);
            //Map<String,Object> result = SYCarClient.logIn(syURL,userId, password);
            String passwordMd5 = DigestUtils.md5Hex(password);
            Map<String,Object> result = sYClient.logIn(syURL,passwordMd5,userId);
            return success(result);
        }
    }
@@ -387,13 +410,31 @@
                    break;
            }
        }
//        for(Map<String,String> m : list0){
//            for(Map<String,String> ma : list1){
        //根据userId查询部门Id
        SysUser sysUser = sysUserService.selectUserById(usersId);
        Long deptId = sysUser.getDeptId();
        //根据当前deptId或者当前及所属下级的所有deptId
        List<Long> deptList = sysDeptService.deptIdBySub(deptId);
        //根据dept集合查询出所有对应的车辆列表
        List<ArdSyCar> carList = ardSyCarService.carIdByDeptList(deptList);
        //对比把匹配到的数据添加到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());
                }
            }
//            for(Map<String,String> ma :){
//                if(m.get("carId").equals(ma.get("carId"))){
//                    m.put("stateCn", ma.get("carState"));
//                }
//            }
//        }
        }
//        Collections.sort((List)result0.get("list"),new Comparator<Map<String, Object>>() {
//            @Override
//            public int compare(Map<String, Object> o1, Map<String, Object> o2) {