zhangnaisong
2024-07-24 9aac460a313ac8284e0fd633183c93815f95e0de
ard-work/src/main/java/com/ruoyi/sy/service/impl/ArdTankLockServiceImpl.java
@@ -2,12 +2,13 @@
import java.util.*;
import com.github.pagehelper.PageHelper;
import com.ruoyi.common.core.domain.entity.SysConfig;
import com.ruoyi.common.utils.uuid.IdUtils;
import com.ruoyi.sy.domain.ArdSyCar;
import com.ruoyi.sy.domain.ArdSyUser;
import com.ruoyi.sy.mapper.ArdSyUserMapper;
import com.ruoyi.sy.mapper.ArdTankWallLockMapper;
import com.ruoyi.sy.mapper.ArdTankWallLockTemporaryMapper;
import com.ruoyi.sy.domain.ArdTankLockState;
import com.ruoyi.sy.mapper.*;
import com.ruoyi.system.mapper.SysConfigMapper;
import com.ruoyi.utils.forest.SYClient;
import org.apache.commons.codec.digest.DigestUtils;
@@ -15,7 +16,6 @@
import java.util.stream.Collectors;
import com.ruoyi.sy.mapper.ArdTankLockMapper;
import com.ruoyi.sy.domain.ArdTankLock;
import com.ruoyi.sy.service.IArdTankLockService;
@@ -43,6 +43,12 @@
    @Resource
    private SysConfigMapper sysConfigMapper;
    @Resource
    private ArdSyCarMapper ardSyCarMapper;
    @Resource
    private ArdTankLockStateMapper ardTankLockStateMapper;
    @Resource
    private SYClient sYClient;
@@ -263,6 +269,24 @@
            }else{
                map.put("onlineTime",ardTankLock.getOnlineTime());
            }
            if(ardTankLock.getArdTankLockState() != null){//电磁锁状态
                map.put("ardTankLockState",ardTankLock.getArdTankLockState());
            }else{
                ArdTankLockState ardTankLockState = new ArdTankLockState();
                ardTankLockState.setId("");
                ardTankLockState.setLockId("");
                ardTankLockState.setLockNum("");
                ardTankLockState.setLockState("");
                ardTankLockState.setLockPositionState("");
                ardTankLockState.setLockShellState("");
                ardTankLockState.setRestartState("");
                ardTankLockState.setBatterVoltage("");
                ardTankLockState.setPowerVoltage("");
                ardTankLockState.setUploadTime("");
                ardTankLockState.setUniqueMark("");
                ardTankLockState.setLockStateMark(false);
                map.put("ardTankLockState",ardTankLockState);
            }
            Map<String,Object> carMap = ((List<Map<String,Object>>)syResult.get("list")).get(0);
            map.put("carPlate",carMap.get("carPlate"));
            result.add(map);
@@ -288,6 +312,14 @@
        }
        //Set<String> newIdSet = new HashSet();//传参的主键
        List<Map<String,Object>> lockList = (List<Map<String, Object>>) para.get("lockList");
        if(lockList.isEmpty()){//数组为空,做删除操作
            if(ardTankLockOldList.isEmpty()){//若没有挂接,不做操作
                return 1;
            }
            result = ardTankLockMapper.deleteLockByCarId(carId);
            return result;
        }
        List<ArdTankLock> ardTankLocks = new ArrayList();
        for(Map<String,Object> map : lockList){
            if(map.get("id") != null){//有主键,做修改操作
@@ -302,7 +334,7 @@
                ardTankLock.setCarId((String) map.get("carId"));
                ardTankLock.setEnable((String) map.get("enable"));
                result = result + ardTankLockMapper.updateArdTankLock(ardTankLock);
            }else{//无主键,做修改操作
            }else{//无主键,做新增操作
                ArdTankLock ardTankLock = new ArdTankLock();
                ardTankLock.setId(IdUtils.simpleUUID());
                ardTankLock.setLockNum((String) map.get("lockNum"));
@@ -324,36 +356,38 @@
    }
    @Override
    public List<Map<String, Object>> getLockByCarPlate(String usersId, String carPlate) {
        List<ArdTankLock> ardTankLockList = ardTankLockMapper.getAll();
    public Map<String,Object> getLockByCarPlate(String usersId, String carPlate, Integer pageNum, Integer pageSize) {
        ArdSyUser ardSyUser = ardSyUserMapper.userById(usersId);
        if(ardSyUser == null){
            return new ArrayList();
            return new HashMap();
        }
        List<SysConfig> syURLResult = sysConfigMapper.selectByType("syCarPT");
        String syURL = "";
        if(syURLResult.size() != 0){
            syURL = syURLResult.get(0).getConfigValue();
        }else{
            return new ArrayList();
            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");
        //List<ArdTankLock> ardTankLockList = ardTankLockMapper.getAll();
        List<ArdTankLock> ardTankLockList = new ArrayList();
        List<Map<String,Object>> result = new ArrayList();
        List<String> carIdList = 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();
                return new HashMap();
            }
            List<String> carIdList = new ArrayList();//记录三一车辆主键
            //List<String> carIdList = new ArrayList();//记录三一车辆主键
            for(Map<String,Object> map : carList){
                carIdList.add((String) map.get("carId"));
            }
            PageHelper.startPage(pageNum, pageSize);//分页
            ardTankLockList = ardTankLockMapper.getLockByCarIdList(carIdList);
            for(ArdTankLock ardTankLock : ardTankLockList){
                if(carIdList.contains(ardTankLock.getCarId())){//返回的车辆包含数据库录入的车辆
                    Map<String,Object> map = new HashMap();
@@ -382,6 +416,8 @@
                }
            }
        }else{
            PageHelper.startPage(pageNum, pageSize);//分页
            ardTankLockList = ardTankLockMapper.getAll();
            for(ArdTankLock ardTankLock : ardTankLockList){
                Map<String,Object> map = new HashMap();
                map.put("id",ardTankLock.getId());
@@ -409,6 +445,56 @@
                result.add(map);
            }
        }
        Long total = Long.valueOf(0);
        if(!carPlate.equals("")){
            total = ardTankLockMapper.selectArdTankLockTotalByCarIdList(carIdList);
        }else{
            total = ardTankLockMapper.selectArdTankLockAllTotal();
        }
        Map<String,Object> mapResult = new HashMap();
        mapResult.put("list",result);
        mapResult.put("total",total);
        return mapResult;
    }
    @Override
    public List<ArdTankLock> getArdTankLockAll() {
        List<ArdTankLock> result = ardTankLockMapper.getAll();
        return result;
    }
    @Override
    public void sendLockState(String userId, String syUserId, String syPassword) {
        /*List<SysConfig> syURLResult = sysConfigMapper.selectByType("syCarPT");
        String syURL = "";
        if(syURLResult.size() != 0){
            syURL = syURLResult.get(0).getConfigValue();
        }else{
            return;
        }
        String passwordMd5 = DigestUtils.md5Hex(syPassword);
        Map<String, Object> LogInResult = sYClient.logIn(syURL, passwordMd5, syUserId);
        String sessionId = (String) LogInResult.get("sessionId");
        Map<String,Object> syResult = sYClient.getCarNearPositionByCarId(syURL, carId, syUserId, sessionId);
        List<Map<String,Object>> result = new ArrayList();
        List<ArdSyCar> ardSyCarResult = ardSyCarMapper.selectArdSyCarAndTankLockByUserId(userId);
        for(ArdSyCar ardSyCar : ardSyCarResult){
            Map<String,Object> map = new HashMap();
            map.put("id",ardSyCar.getId());
            map.put("carId",ardSyCar.getCarId());
            map.put("carModel",ardSyCar.getCarModel());
            map.put("carType",ardSyCar.getCarType());
            map.put("carBrand",ardSyCar.getCarBrand());
            map.put("deptId",ardSyCar.getDeptId());
            List<ArdTankLock> ardTankLockList = ardSyCar.getArdTankLockList();
            for(ArdTankLock ardTankLock : ardTankLockList){
                ArdTankLockState ardTankLockStateResult = ardTankLockStateMapper.selectArdTankLockStateByLockIdLimitOne(ardTankLock.getId());
            }
        }*/
    }
}