From 509d655f6c1c70c38cb54ca3e5b0bac3dcfe0020 Mon Sep 17 00:00:00 2001
From: ‘liusuyi’ <1951119284@qq.com>
Date: Wed, 27 Sep 2023 10:47:48 +0800
Subject: [PATCH] 增加获取附近井接口
---
/dev/null | 40 -------------
ard-work/src/main/java/com/ruoyi/alarmpoints/well/service/IArdAlarmpointsWellService.java | 9 ++
ard-work/src/main/java/com/ruoyi/utils/gis/GisUtil.java | 9 +++
ard-work/src/main/java/com/ruoyi/alarmpoints/well/service/impl/ArdAlarmpointsWellServiceImpl.java | 70 +++++++++++++++--------
ruoyi-admin/Dockerfile | 3
ard-work/src/main/java/com/ruoyi/alarmpoints/well/controller/ArdAlarmpointsWellController.java | 8 ++
6 files changed, 71 insertions(+), 68 deletions(-)
diff --git a/ard-work/src/main/java/com/ruoyi/alarmpoints/well/controller/ArdAlarmpointsWellController.java b/ard-work/src/main/java/com/ruoyi/alarmpoints/well/controller/ArdAlarmpointsWellController.java
index e091a7b..0324f85 100644
--- a/ard-work/src/main/java/com/ruoyi/alarmpoints/well/controller/ArdAlarmpointsWellController.java
+++ b/ard-work/src/main/java/com/ruoyi/alarmpoints/well/controller/ArdAlarmpointsWellController.java
@@ -211,6 +211,12 @@
//根据deptId获取对应兴趣点数据
return Results.succeed(ardAlarmpointsWellService.conditionList(ardAlarmpointsWellParam));
}
-
+ @PostMapping("/getNearbyWells")
+ @ApiOperation("查询附近的所有井")
+ public TableDataInfo getNearbyWells(Long deptId,Double[]position){
+ startPage();
+ List<ArdAlarmpointsWell> nearbyWellList = ardAlarmpointsWellService.getNearbyWellList(deptId,position,1000);
+ return getDataTable(nearbyWellList);
+ }
}
diff --git a/ard-work/src/main/java/com/ruoyi/alarmpoints/well/service/IArdAlarmpointsWellService.java b/ard-work/src/main/java/com/ruoyi/alarmpoints/well/service/IArdAlarmpointsWellService.java
index 747dff2..f2432e8 100644
--- a/ard-work/src/main/java/com/ruoyi/alarmpoints/well/service/IArdAlarmpointsWellService.java
+++ b/ard-work/src/main/java/com/ruoyi/alarmpoints/well/service/IArdAlarmpointsWellService.java
@@ -102,7 +102,7 @@
/**
* 核对井号是否唯一
*
- * @param id 需要核对的井的主键
+ * @param well 需要核对的井
* @return 结果
*/
@@ -117,5 +117,10 @@
PageInfo<ArdAlarmpointsWell> conditionList(ArdAlarmpointsWellParam ardAlarmpointsWellParam);
List<ArdAlarmpointsWellDeptVo> wellListDept(List<Long> deptList);
-
+ /**
+ * 获取附近的井
+ * 刘苏义
+ * 2023/9/27 10:26:35
+ */
+ List<ArdAlarmpointsWell> getNearbyWellList(Long deptId,Double[] position,Integer range);
}
diff --git a/ard-work/src/main/java/com/ruoyi/alarmpoints/well/service/impl/ArdAlarmpointsWellServiceImpl.java b/ard-work/src/main/java/com/ruoyi/alarmpoints/well/service/impl/ArdAlarmpointsWellServiceImpl.java
index 7a1d553..7b20289 100644
--- a/ard-work/src/main/java/com/ruoyi/alarmpoints/well/service/impl/ArdAlarmpointsWellServiceImpl.java
+++ b/ard-work/src/main/java/com/ruoyi/alarmpoints/well/service/impl/ArdAlarmpointsWellServiceImpl.java
@@ -1,5 +1,6 @@
package com.ruoyi.alarmpoints.well.service.impl;
+import java.util.ArrayList;
import java.util.List;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
@@ -19,6 +20,7 @@
import com.ruoyi.common.utils.bean.BeanValidators;
import com.ruoyi.common.utils.spring.SpringUtils;
import com.ruoyi.common.utils.uuid.IdUtils;
+import com.ruoyi.utils.gis.GisUtil;
import lombok.ToString;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
@@ -42,6 +44,7 @@
private ArdAlarmpointsWellMapper ardAlarmpointsWellMapper;
@Autowired
protected Validator validator;
+
/**
* 查询井管理
*
@@ -52,6 +55,7 @@
public ArdAlarmpointsWell selectArdAlarmpointsWellById(String id) {
return ardAlarmpointsWellMapper.selectArdAlarmpointsWellById(id);
}
+
/**
* 查询井管理
*
@@ -70,18 +74,17 @@
* @return 井管理
*/
@Override
- @DataScope(deptAlias = "d",userAlias = "u")
+ @DataScope(deptAlias = "d", userAlias = "u")
public List<ArdAlarmpointsWell> selectArdAlarmpointsWellList(ArdAlarmpointsWell ardAlarmpointsWell) {
return ardAlarmpointsWellMapper.selectArdAlarmpointsWellList(ardAlarmpointsWell);
}
/**
- *
* @param ardAlarmpointsWell 按井编号查询
* @return
*/
@Override
- @DataScope(deptAlias = "d",userAlias = "u")
+ @DataScope(deptAlias = "d", userAlias = "u")
public List<ArdAlarmpointsWell> selectArdAlarmpointsWellByWellIdLike(ArdAlarmpointsWell ardAlarmpointsWell) {
return ardAlarmpointsWellMapper.selectArdAlarmpointsWellByWellIdLike(ardAlarmpointsWell);
}
@@ -96,8 +99,7 @@
@Transactional
public int insertArdAlarmpointsWell(ArdAlarmpointsWell ardAlarmpointsWell) {
boolean wellIdExists = checkWellIdExists(ardAlarmpointsWell);
- if(wellIdExists)
- {
+ if (wellIdExists) {
throw new RuntimeException("井号已存在");
}
ardAlarmpointsWell.setId(IdUtils.simpleUUID());
@@ -117,8 +119,7 @@
@Transactional
public int updateArdAlarmpointsWell(ArdAlarmpointsWell ardAlarmpointsWell) {
boolean wellIdExists = checkWellIdExists(ardAlarmpointsWell);
- if(wellIdExists)
- {
+ if (wellIdExists) {
throw new RuntimeException("井号已存在");
}
ardAlarmpointsWell.setUpdateBy(SecurityUtils.getUsername());
@@ -204,10 +205,8 @@
* @param well 井信息
*/
@Override
- public void checkWellAllowed(ArdAlarmpointsWell well)
- {
- if (StringUtils.isNotNull(well.getId()))
- {
+ public void checkWellAllowed(ArdAlarmpointsWell well) {
+ if (StringUtils.isNotNull(well.getId())) {
throw new ServiceException("不允许操作井");
}
}
@@ -218,23 +217,21 @@
* @param userId 用户id
*/
@Override
- public void checkWellDataScope(String userId)
- {
- if (!SysUser.isAdmin(SecurityUtils.getUserId()))
- {
+ public void checkWellDataScope(String userId) {
+ if (!SysUser.isAdmin(SecurityUtils.getUserId())) {
ArdAlarmpointsWell well = new ArdAlarmpointsWell();
well.setUserId(userId);
List<ArdAlarmpointsWell> wells = SpringUtils.getAopProxy(this).selectArdAlarmpointsWellList(well);
- if (StringUtils.isEmpty(wells))
- {
+ if (StringUtils.isEmpty(wells)) {
throw new ServiceException("没有权限访问井数据!");
}
}
}
+
/**
* 核对井号是否唯一
*
- * @param wellId 需要核对的井号
+ * @param well 需要核对的井
* @return 结果
*/
@Override
@@ -254,7 +251,7 @@
@Override
public List<ArdAlarmpointsWell> wellByDeptList(List<Long> deptList) {
QueryWrapper<ArdAlarmpointsWell> queryWrapper = new QueryWrapper<>();
- queryWrapper.in("dept_id",deptList);
+ queryWrapper.in("dept_id", deptList);
return ardAlarmpointsWellMapper.selectList(queryWrapper);
}
@@ -266,18 +263,18 @@
@Override
public List<ArdAlarmpointsWell> wellList(List<Long> deptList) {
QueryWrapper<ArdAlarmpointsWell> queryWrapper = new QueryWrapper<>();
- queryWrapper.select("id","well_id","oil_production","longitude","latitude","altitude").in("dept_id",deptList);
+ queryWrapper.select("id", "well_id", "oil_production", "longitude", "latitude", "altitude").in("dept_id", deptList);
return ardAlarmpointsWellMapper.selectList(queryWrapper);
}
@Override
- public PageInfo<ArdAlarmpointsWell> conditionList(ArdAlarmpointsWellParam ardAlarmpointsWellParam){
+ public PageInfo<ArdAlarmpointsWell> conditionList(ArdAlarmpointsWellParam ardAlarmpointsWellParam) {
Integer pageNum = ardAlarmpointsWellParam.getPageNum();
Integer pageSize = ardAlarmpointsWellParam.getPageSize();
- PageHelper.startPage(pageNum,pageSize);
+ PageHelper.startPage(pageNum, pageSize);
QueryWrapper<ArdAlarmpointsWell> queryWrapper = new QueryWrapper<>();
- queryWrapper.in("dept_id",ardAlarmpointsWellParam.getDeptList())
- .like(!StringUtils.isBlank(ardAlarmpointsWellParam.getWellId()),"well_id",ardAlarmpointsWellParam.getWellId());
+ queryWrapper.in("dept_id", ardAlarmpointsWellParam.getDeptList())
+ .like(!StringUtils.isBlank(ardAlarmpointsWellParam.getWellId()), "well_id", ardAlarmpointsWellParam.getWellId());
// .eq(!StringUtils.isBlank(ardAlarmpointsWellParam.getWellNumber()),"well_number",ardAlarmpointsWellParam.getWellNumber())
// .eq(!StringUtils.isBlank(ardAlarmpointsWellParam.getOilProduction()),"oil_production",ardAlarmpointsWellParam.getOilProduction())
// .eq(!StringUtils.isBlank(ardAlarmpointsWellParam.getWellBlock()),"well_block",ardAlarmpointsWellParam.getWellBlock())
@@ -297,4 +294,29 @@
public List<ArdAlarmpointsWellDeptVo> wellListDept(List<Long> deptList) {
return ardAlarmpointsWellMapper.wellListDept(deptList);
}
+
+ @Override
+ public List<ArdAlarmpointsWell> getNearbyWellList(Long deptId, Double[] position, Integer range) {
+ List<ArdAlarmpointsWell> nearbyWellList = new ArrayList<>();
+ try {
+ ArdAlarmpointsWell ardAlarmpointsWell = new ArdAlarmpointsWell();
+ ardAlarmpointsWell.setDeptId(deptId);
+ List<ArdAlarmpointsWell> ardAlarmpointsWells = ardAlarmpointsWellMapper.selectArdAlarmpointsWellList(ardAlarmpointsWell);
+ if (ardAlarmpointsWells.size() > 0) {
+ for (ArdAlarmpointsWell well : ardAlarmpointsWells) {
+ Double longitude = well.getLongitude();
+ Double latitude = well.getLatitude();
+ if (longitude != null && latitude != null) {
+ double distance = GisUtil.getDistance(position, new Double[]{longitude, latitude});
+ if (distance <= range) {
+ nearbyWellList.add(well);
+ }
+ }
+ }
+ }
+ } catch (Exception ex) {
+ log.error("获取附近井异常:" + ex.getMessage());
+ }
+ return nearbyWellList;
+ }
}
diff --git a/ard-work/src/main/java/com/ruoyi/utils/gis/GisUtil.java b/ard-work/src/main/java/com/ruoyi/utils/gis/GisUtil.java
index 85979a9..c8ec803 100644
--- a/ard-work/src/main/java/com/ruoyi/utils/gis/GisUtil.java
+++ b/ard-work/src/main/java/com/ruoyi/utils/gis/GisUtil.java
@@ -26,6 +26,15 @@
GlobalCoordinates target = new GlobalCoordinates(latitudeTo, longitudeTo);
return geodeticCalculator.calculateGeodeticCurve(Ellipsoid.WGS84, source, target).getEllipsoidalDistance();
}
+ public static double getDistance(Double[] From, Double[] To) {
+ double longitudeFrom = From[0];
+ double latitudeFrom = From[1];
+ double longitudeTo = To[0];
+ double latitudeTo = To[1];
+ GlobalCoordinates source = new GlobalCoordinates(latitudeFrom, longitudeFrom);
+ GlobalCoordinates target = new GlobalCoordinates(latitudeTo, longitudeTo);
+ return geodeticCalculator.calculateGeodeticCurve(Ellipsoid.WGS84, source, target).getEllipsoidalDistance();
+ }
/**
* 根据经纬度,计算两点间的距离
*
diff --git a/ard-work/src/main/resources/templates/mediaMTX.html b/ard-work/src/main/resources/templates/mediaMTX.html
deleted file mode 100644
index 7b1680a..0000000
--- a/ard-work/src/main/resources/templates/mediaMTX.html
+++ /dev/null
@@ -1,40 +0,0 @@
-<!DOCTYPE html>
-<html>
-<head>
- <meta charset="UTF-8">
- <title>video.js播放rtmp流</title>
- <!--引入播放器样式-->
- <link href="http://vjs.zencdn.net/5.19/video-js.min.css" rel="stylesheet">
- <!--引入播放器js-->
- <script src="http://vjs.zencdn.net/5.19/video.min.js"></script>
- <script src="https://cdn.jsdelivr.net/npm/videojs-flash@2/dist/videojs-flash.min.js"></script>
-</head>
-<body>
-<!--vjs-big-play-centered 播放按钮居中-->
-<!--poster默认的显示界面,就是还没点播放,给你显示的界面-->
-<!--controls 规定浏览器应该为视频提供播放控件-->
-<!--preload="auto" 是否提前加载-->
-<!--autoplay 自动播放-->
-<!--loop=true 自动循环-->
-<!--data-setup='{"example_option":true}' 可以把一些属性写到这个里面来,如data-setup={"autoplay":true}-->
-<video id="my-player"
- class="video-js vjs-default-skin vjs-big-play-centered" controls
- preload="auto" autoplay="autoplay"
- poster="images/logo.png" width="500" height="400"
- data-setup='{}'>
- <!--src: 规定媒体文件的 URL type:规定媒体资源的类型-->
- <source src='rtmp://192.168.1.194:1935/164' type='rtmp/flv' />
-</video>
-<script type="text/javascript">
- // 设置flash路径,用于在videojs发现浏览器不支持HTML5播放器的时候自动唤起flash播放器
- videojs.options.flash.swf = 'https://cdn.bootcss.com/videojs-swf/5.4.1/video-js.swf';
- //my-player为页面video元素的id
- var player = videojs('my-player');
- //播放
- player.play();
- // 1. 播放 player.play()
- // 2. 停止 player.pause()
- // 3. 暂停 player.pause()
-</script>
-</body>
-</html>
diff --git a/ruoyi-admin/Dockerfile b/ruoyi-admin/Dockerfile
index cf735a9..280c76f 100644
--- a/ruoyi-admin/Dockerfile
+++ b/ruoyi-admin/Dockerfile
@@ -4,4 +4,5 @@
ENV TimeZone=Asia/Shanghai
# 使用软连接,并且将时区配置覆盖/etc/timezone
RUN ln -snf /usr/share/zoneinfo/$TimeZone /etc/localtime && echo $TimeZone > /etc/timezone
-ENTRYPOINT ["java","-jar","/ruoyi-admin.jar"]
\ No newline at end of file
+RUN mkdir -p /work
+ENTRYPOINT ["java","-Dloader.path=/work/libs","-jar","/ruoyi-admin.jar"]
\ No newline at end of file
--
Gitblit v1.9.3