zhangnaisong
2024-08-09 7e2382e701604e97f775dca55dc00cee7c5da053
电磁锁异常停车加入临时电子围栏提交
已修改2个文件
41 ■■■■ 文件已修改
ard-work/src/main/java/com/ruoyi/sy/service/impl/ArdTankAbnormalParkAlarmServiceImpl.java 34 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ard-work/src/main/java/com/ruoyi/sy/service/impl/ArdTankLockProcessLogServiceImpl.java 7 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ard-work/src/main/java/com/ruoyi/sy/service/impl/ArdTankAbnormalParkAlarmServiceImpl.java
@@ -11,16 +11,13 @@
import com.ruoyi.common.core.domain.entity.SysDept;
import com.ruoyi.common.core.domain.entity.SysUser;
import com.ruoyi.common.utils.uuid.IdUtils;
import com.ruoyi.sy.domain.ArdSyCar;
import com.ruoyi.sy.domain.ArdTankLoadLog;
import com.ruoyi.sy.domain.ArdTankWall;
import com.ruoyi.sy.domain.*;
import com.ruoyi.sy.gps31.PositionContainer;
import com.ruoyi.sy.mapper.ArdSyCarMapper;
import com.ruoyi.sy.mapper.ArdTankLoadLogMapper;
import com.ruoyi.sy.mapper.ArdTankWallMapper;
import com.ruoyi.sy.mapper.*;
import com.ruoyi.system.mapper.SysConfigMapper;
import com.ruoyi.system.mapper.SysDeptMapper;
import com.ruoyi.system.mapper.SysUserMapper;
import com.ruoyi.utils.gis.GisUtil;
import com.ruoyi.utils.gps.GeoTools;
import com.ruoyi.utils.websocket.util.WebSocketUtils;
import org.springframework.beans.factory.annotation.Autowired;
@@ -28,8 +25,6 @@
import com.ruoyi.common.utils.StringUtils;
import com.ruoyi.common.utils.SecurityUtils;
import com.ruoyi.sy.mapper.ArdTankAbnormalParkAlarmMapper;
import com.ruoyi.sy.domain.ArdTankAbnormalParkAlarm;
import com.ruoyi.sy.service.IArdTankAbnormalParkAlarmService;
import javax.annotation.Resource;
@@ -61,6 +56,9 @@
    @Resource
    private SysUserMapper sysUserMapper;
    @Resource
    private ArdTankWallTemporaryMapper ardTankWallTemporaryMapper;
    @Resource
    private ArdTankLoadLogMapper ardTankLoadLogMapper;
@@ -262,6 +260,26 @@
                }
            }
            //临时电子围栏
            List<ArdTankWallTemporary> ardTankWallTemporaryList = ardTankWallTemporaryMapper.getArdTankWallTemporaryByCarId((String) gpsMap.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[]{((Number) gpsMap.get("lng")).doubleValue(),((Number) gpsMap.get("lat")).doubleValue()};
                    Number realDistance = GisUtil.getDistance(From,To);
                    if(realDistance.intValue() <= distance) {//实际距离小于半径
                        PositionContainer.getTankCarParkingAlarmTHread().remove((String)gpsMap.get("carId"));
                        return ardTankLoadLogMapper.deleteArdTankLoadLogByCarId((String)gpsMap.get("carId"));//进入临时电子围栏就删除装油记录
                    }
                }
            }
            for(ArdTankWall ardTankWall : unloadOilOrGarageArdTankWallResult){//在任意卸油点或车库电子围栏内
                pts.clear();
                String[] wallpoiArro = ardTankWall.getWallPoi().split(",");
ard-work/src/main/java/com/ruoyi/sy/service/impl/ArdTankLockProcessLogServiceImpl.java
@@ -218,7 +218,7 @@
            return AjaxResult.error("当前车辆正处在电子围栏外");
        }else{
            try{
                if(PositionContainer.getCarLockProcessThreadMap().get(carId).get(lockNum).get("lockProcess") != null){
                if(PositionContainer.getCarLockProcessThreadMap().get(carId).get(lockNum).get("lockProcess") == null){
                    PositionContainer.getCarLockProcessThreadMap().get(carId).get(lockNum).put("lockProcess",new Thread());//加入容器
                    String lockNumHead = lockNum.substring(0,2);
                    String lockNumTail = lockNum.substring(2,4);
@@ -451,7 +451,10 @@
                                continue;
                            }
                        }
                        break;//处在任意电子围栏中
                        //break;
                        return;//处在任意电子围栏中
                    }else{
                        continue;
                    }
                }
            }