bug修复
This commit is contained in:
parent
0fd103dccc
commit
34d71ba875
@ -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);
|
||||
}
|
||||
|
||||
@ -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);
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
@ -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) {
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user