吉安感知网项目-后端
xiebin
2026-01-06 d207a86cdf1ab52ef8cb7cd83bad8fceab8038cf
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
package org.sxkj.odm.service;
 
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.service.IService;
import org.locationtech.jts.geom.Point;
import org.springblade.core.tool.api.R;
import org.springframework.web.multipart.MultipartFile;
import org.sxkj.odm.entity.*;
import org.sxkj.odm.vo.MapLatLng;
import org.sxkj.odm.vo.OdmTaskInfoQueryParam;
import org.sxkj.odm.vo.OdmTaskInfoVO;
import org.sxkj.odm.vo.OdmTaskTilesVo;
import org.sxkj.system.vo.TreeVo;
 
import java.util.List;
import java.util.Map;
 
/**
 * odm 任务信息接口服务层
 * @author zhongrj
 * @date 2024/09/11
 * @version 0.1
 */
public interface IOdmTaskInfoService extends IService<OdmTaskInfo> {
 
    /**
     * 自定义分页列表查询
     * @param page
     * @param odmTaskInfo
     * @return
     */
    IPage<OdmTaskInfoVO> selectOdmTaskInfoPage(IPage<OdmTaskInfoVO> page, OdmTaskInfoVO odmTaskInfo);
 
    /**
     * 创建 odm 任务--定时创建
     * @return
     */
    Boolean createWebOdmTask();
 
    /**
     * odm 任务创建
     * @param jobId 航线任务id
     * @param ortRes 正射影像的分辨率,单位为 cm/pixel
     * @return
     */
    Boolean createWebOdmTask(String jobId,Double ortRes);
 
    /**
     * 定时补漏odm任务的的生成(由其他原因到时没有创建到任务的)
     * @return
     */
    Boolean leakRepairOdmTask();
 
    /**
     * 保存 odm 任务信息
     * @param jobId
     * @return
     */
    Boolean saveOdmTaskInfo(String jobId);
 
    /**
     * 获取正射影像信息
     * @param jobId 航线任务id
     * @return
     */
    String getOrthoimageUrl(String jobId);
 
    /**
     * 定时更新odm 任务状态
     * @return
     */
    Integer updateOdmTaskInfo();
 
    /**
     * 获取正射影像服务信息
     * @param dkbh 图斑编号
     * @param workspaceId 项目id
     * @return
     */
    R getOrthoimageInfo(String dkbh,String workspaceId,String jobId);
 
    /**
     * 获取正射影像列表信息
     * @param lotInfoId 图斑id
     * @param workspaceId 项目id
     * @return
     */
    R getOrthoimageInfos(String lotInfoId,String workspaceId,String jobId);
 
    /**
     * 自定义删除
     * @param idList
     * @return
     */
    Boolean removeOdmTaskByIds(List<Long> idList);
 
    /**
     * 定时任务----异常 odm 任务重试
     * @return
     */
    Boolean runErrorWebOdmTask();
 
    /**
     * 更新正射影像tif 信息到  附件表
     * @return
     */
    R updateOrthoimageToAttach();
 
    /**
     * odm 任务重启
     * @param taskId 航线任务id
     * @return
     */
    Boolean restartOdmTask(String taskId);
 
    /**
     * 获取odm 任务下载url
     * @param dkbh
     * @param workspaceId
     * @return
     */
    String getOdmTaskDownUrl(String dkbh, String workspaceId,String jobId);
 
    /**
     * 定时删除odm临时文件任务
     * @return
     */
    boolean deletedOdmTempFile();
 
    /**
     * 定时删除odm拼图任务中失效的文件
     * @return
     */
    boolean deletedOdmTaskInVFile();
 
    /**
     * 定时删除odm拼图任务中重复的任务(同一个图斑多个任务,保留最新的)
     * @return
     */
    boolean deletedRepOdmTask();
 
    /**
     * 定时删除odm拼图任务(航线任务已删除的)
     * @return
     */
    boolean delRepOdmTaskByNoWayJob();
 
    /**
     * tif 图片解析
     * @param dkbh 地块编号
     * @param flag 是否已完成拼图任务
     * @return
     */
    String tifParse(String dkbh,Boolean flag,String tifPath);
 
    List<MyPoint> getPixelByPointList(String inputPath, List<Point> pointList);
 
    /**
     * 处理没有 tif 画面的
     * @return
     */
    boolean handleNotParseTif();
 
    /**
     * 定时删除odm拼图任务(保留一个月内的数据) 按天来,动态传参
     * @param day 天
     * @return
     */
    boolean delRepOdmTaskByBefOneMon(Integer day);
 
    /**
     * 历史odm tif 数据处理
     * @return
     */
    Boolean hisOdmTaskTifDataHandler();
 
    /**
     * 视频处理成3d 白膜测试
     * @return
     */
    boolean videoToOdm(String jobId);
 
    /**
     * 根据经纬度获取tif数据
     * @param longitude 经度
     * @param latitude 纬度
     * @return tif数据
     */
    List<OdmTaskInfo> getTifDataByCoord(double longitude, double latitude);
 
    /**
     * 根据经纬度10公里获取tif数据
     * @param longitude 经度
     * @param latitude 纬度
     * @return tif数据
     */
    List<OdmTaskInfo> getAllTifDataByCoord(double longitude, double latitude);
 
    /**
     * 查询地图位置上3d-tiles数据
     * @param dto
     * @return
     */
    TreeVo getVoxGridTilesList(OdmTaskInfoQueryParam dto);
 
    /**
     * 查询地图位置上3d-tiles数据-单机巢
     * @param dto
     * @return
     */
    List<OdmTaskTilesVo> getVoxGridTilesListBySinglePlayer(OdmTaskInfoQueryParam dto);
 
    /**
     * 历史 odm 新增相关字段数据补充
     * @return
     */
    int historyOdmTaskDataHandler();
 
    /**
     * 测试远程调用资源模块
     * @return
     */
    Boolean testToResource(MultipartFile file);
 
    /**
     * 更新三维白膜信息到  附件表
     * @return
     */
    R updateVoxGridTilesToAttach();
 
    /**
     * 3d白膜部分生成失败补充
     * @return
     */
    void tilesSup();
 
    /**
     * 实景三维生成失败补充
     * @return
     */
    void liveTilesSup();
 
    /**
     * 3d白膜部分生成失败补充
     * @param odmTaskInfo
     * @return
     */
    void tilesSupByParam(OdmTaskInfoVO odmTaskInfo);
 
    /**
     * tif 图片解析
     * @param request
     * @return
     */
    TifParseResponse tifParseNew(TifParseRequest request);
 
    /**
     * 获取历史 obj 网格数据
     * @return
     */
    int getHisObjGridData();
 
    /**
     * 处理历史已飞的点云提取建筑生成白膜
     * @return
     */
    Boolean handleHistoryPointCloudTo3dtiles();
 
    /**
     * 获取历史 点云数据
     * @return
     */
    int getHisPointCloudData();
 
    /**
     * 航线路径规划
     * @param param
     * @return
     */
    List<PointParam> waylineFlightPathPlanning(List<PointParam> param);
 
    /**
     * 生成网格任务
     */
    void generateGridTask();
 
    /**
     * 保存禁飞区面数据
     * @param height 高度
     * @param geoData geo 数据
     * @return
     */
    Map<String, Object> saveMultipolygonInfo(Double height, String geoData);
 
    /**
     *
     * @param ids
     */
    Boolean deleteGrid(String ids);
 
    /**
     * 初始化机场地形高度
     * @param centerLon
     * @param centerLat
     * @param dockSn
     * @return
     */
    Boolean initAirportTerrainHeight(String centerLon, String centerLat, String dockSn);
 
    /**
     * 获取航线最大地形高度
     * @param mapLatLng
     * @return
     */
    Integer getWaylineMaxTerrainHeight(List<MapLatLng> mapLatLng);
 
    /**
     * 删除机场地形高度
     * @param dockSn
     * @return
     */
    Integer deleteAirportTerrainHeight(String dockSn);
 
    /**
     * 缓存机场地形高度参数
     * @param centerLon
     * @param centerLat
     * @param dockSn
     */
    Integer cacheAirportTerrainHeightParams(String centerLon, String centerLat, String dockSn);
 
    /**
     * 获取机场地形高度参数
     * @return
     */
    Map<String, String> getAirportTerrainHeightParams();
}