zhangnaisong
2024-08-03 53a8a9426f21c7f853c406e462486029c78018b2
电磁锁临时电子围栏加入主动操控失效提交
已修改1个文件
33 ■■■■■ 文件已修改
ard-work/src/main/java/com/ruoyi/sy/service/impl/ArdTankLockProcessLogServiceImpl.java 33 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ard-work/src/main/java/com/ruoyi/sy/service/impl/ArdTankLockProcessLogServiceImpl.java
@@ -9,15 +9,12 @@
import com.ruoyi.common.core.domain.AjaxResult;
import com.ruoyi.common.core.domain.entity.SysConfig;
import com.ruoyi.common.utils.uuid.IdUtils;
import com.ruoyi.sy.domain.ArdSyUser;
import com.ruoyi.sy.domain.ArdTankLock;
import com.ruoyi.sy.domain.ArdTankWall;
import com.ruoyi.sy.domain.*;
import com.ruoyi.sy.gps31.PositionContainer;
import com.ruoyi.sy.mapper.ArdSyUserMapper;
import com.ruoyi.sy.mapper.ArdTankLockMapper;
import com.ruoyi.sy.mapper.ArdTankWallMapper;
import com.ruoyi.sy.mapper.*;
import com.ruoyi.system.mapper.SysConfigMapper;
import com.ruoyi.utils.forest.SYClient;
import com.ruoyi.utils.gis.GisUtil;
import com.ruoyi.utils.gps.GeoTools;
import okhttp3.OkHttpClient;
import okhttp3.Request;
@@ -28,8 +25,6 @@
import com.ruoyi.common.utils.StringUtils;
import com.ruoyi.common.utils.SecurityUtils;
import com.ruoyi.sy.mapper.ArdTankLockProcessLogMapper;
import com.ruoyi.sy.domain.ArdTankLockProcessLog;
import com.ruoyi.sy.service.IArdTankLockProcessLogService;
import javax.annotation.Resource;
@@ -58,11 +53,12 @@
    private ArdTankLockMapper ardTankLockMapper;
    @Resource
    private ArdTankWallTemporaryMapper ardTankWallTemporaryMapper;
    @Resource
    private SYClient sYClient;
    private SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
    private Map<String,Timer> timerMap = new HashMap();
    /**
     * 查询罐车锁操控日志
@@ -176,6 +172,23 @@
        }else{
            return AjaxResult.error("三一平台报错");
        }
        //挂接了临时电子围栏
        List<ArdTankWallTemporary> ardTankWallTemporaryList = ardTankWallTemporaryMapper.getArdTankWallTemporaryByCarId((String) para.get("carId"));
        if(!ardTankWallTemporaryList.isEmpty()){
            for(ArdTankWallTemporary ardTankWallTemporary : ardTankWallTemporaryList){
                Double longitude = ardTankWallTemporary.getLongitude();
                Double latitude = ardTankWallTemporary.getLatitude();
                Integer distance = ardTankWallTemporary.getDistance();
                Double[] From = new Double[]{longitude,latitude};
                Double[] To = new Double[]{Double.valueOf(lng),Double.valueOf(lat)};
                Number realDistance = GisUtil.getDistance(From,To);
                if(realDistance.intValue() <= distance){//实际距离小于半径
                    return AjaxResult.error("当前车辆正处在" + ardTankWallTemporary.getWallName() + "中");
                }
            }
            return AjaxResult.error("当前车辆正处在临时电子围栏外");
        }
        List<ArdTankWall> ardTankWallList = ardTankWallMapper.getArdTankWallProcessByLockId(lockId);//查询锁挂接的全部需要动作的电子围栏
        if(!ardTankWallList.isEmpty()){//挂接了动作电子围栏