bug修复

This commit is contained in:
guo 2023-11-15 10:40:51 +08:00
parent 0fd103dccc
commit 34d71ba875
3 changed files with 21 additions and 6 deletions

View File

@ -4,6 +4,7 @@ import com.zhgd.xmgl.modules.vehicleposition.entity.VehiclePositionAlarm;
import com.baomidou.mybatisplus.extension.service.IService;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.zhgd.xmgl.modules.vehicleposition.entity.VehiclePositionData;
import com.zhgd.xmgl.modules.vehicleposition.entity.VehiclePositionDev;
import java.util.HashMap;
import java.util.List;
@ -24,6 +25,7 @@ public interface IVehiclePositionAlarmService extends IService<VehiclePositionAl
* 是否超过围栏而报警
*
* @param vehiclePositionData
* @param dev
*/
void checkClimbOverAlarm(VehiclePositionData vehiclePositionData);
void checkClimbOverAlarm(VehiclePositionData vehiclePositionData, VehiclePositionDev dev);
}

View File

@ -9,11 +9,12 @@ import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.zhgd.jeecg.common.system.query.QueryGenerator;
import com.zhgd.xmgl.modules.vehicleposition.entity.VehiclePositionAlarm;
import com.zhgd.xmgl.modules.vehicleposition.entity.VehiclePositionData;
import com.zhgd.xmgl.modules.vehicleposition.entity.VehiclePositionDev;
import com.zhgd.xmgl.modules.vehicleposition.entity.VehiclePositionFence;
import com.zhgd.xmgl.modules.vehicleposition.mapper.VehiclePositionAlarmMapper;
import com.zhgd.xmgl.modules.vehicleposition.mapper.VehiclePositionDevMapper;
import com.zhgd.xmgl.modules.vehicleposition.mapper.VehiclePositionFenceMapper;
import com.zhgd.xmgl.modules.vehicleposition.service.IVehiclePositionAlarmService;
import com.zhgd.xmgl.modules.worker.entity.ElectricFenceLocation;
import com.zhgd.xmgl.util.PageUtil;
import com.zhgd.xmgl.util.RefUtil;
import com.zhgd.xmgl.util.RegionUtil;
@ -35,6 +36,9 @@ import java.util.Objects;
public class VehiclePositionAlarmServiceImpl extends ServiceImpl<VehiclePositionAlarmMapper, VehiclePositionAlarm> implements IVehiclePositionAlarmService {
@Autowired
VehiclePositionFenceMapper vehiclePositionFenceMapper;
@Autowired
VehiclePositionDevMapper vehiclePositionDevMapper;
@Override
public IPage<VehiclePositionAlarm> queryPageList(HashMap<String, Object> paramMap) {
@ -52,13 +56,14 @@ public class VehiclePositionAlarmServiceImpl extends ServiceImpl<VehiclePosition
}
@Override
public void checkClimbOverAlarm(VehiclePositionData d) {
public void checkClimbOverAlarm(VehiclePositionData d, VehiclePositionDev dev) {
List<VehiclePositionFence> vehiclePositionFences = vehiclePositionFenceMapper.selectList(new LambdaQueryWrapper<VehiclePositionFence>()
.eq(VehiclePositionFence::getProjectSn, d.getProjectSn()));
for (VehiclePositionFence fence : vehiclePositionFences) {
boolean alarm = false;
//判断是否在围栏范围内
if (Objects.equals(fence.getRangeType(), 1)) {
RegionUtil.isInCircle(d.getLongitude(), d.getLatitude(), fence.getLongitude(), fence.getLatitude(), fence.getAreaRadius());
alarm = !RegionUtil.isInCircle(d.getLongitude(), d.getLatitude(), fence.getLongitude(), fence.getLatitude(), fence.getAreaRadius());
} else if (Objects.equals(fence.getRangeType(), 2)) {
String fenceShape = fence.getFenceShape();
if (StrUtil.isNotBlank(fenceShape)) {
@ -71,9 +76,17 @@ public class VehiclePositionAlarmServiceImpl extends ServiceImpl<VehiclePosition
lon[i] = Double.valueOf(two[0]);
lat[i] = Double.valueOf(two[1]);
}
RegionUtil.isInPolygon(d.getLongitude(), d.getLatitude(), lon, lat);
alarm = !RegionUtil.isInPolygon(d.getLongitude(), d.getLatitude(), lon, lat);
}
}
if (alarm) {
VehiclePositionAlarm a = new VehiclePositionAlarm();
a.setDevSn(d.getDevSn());
a.setAlarmInformation(String.format("%s超出%s围栏范围经纬度(%s,%s)", dev.getType() == 1 ? dev.getNumberPlate() : dev.getPersonName(),
fence.getFenceName(), d.getLongitude(), d.getLatitude()));
a.setProjectSn(d.getProjectSn());
baseMapper.insert(a);
}
}
}

View File

@ -60,7 +60,7 @@ public class VehiclePositionDataServiceImpl extends ServiceImpl<VehiclePositionD
vehiclePositionData.setProjectSn(dev.getProjectSn());
save(vehiclePositionData);
//是否超过围栏而报警
vehiclePositionAlarmService.checkClimbOverAlarm(vehiclePositionData);
vehiclePositionAlarmService.checkClimbOverAlarm(vehiclePositionData, dev);
}
private QueryWrapper<VehiclePositionData> getQueryWrapper(HashMap<String, Object> paramMap) {