From 3bc7faf3efd9d73cfa1726a553833872881dba3f Mon Sep 17 00:00:00 2001 From: zhangjian <zhangjianrock@163.com> Date: 星期一, 05 六月 2023 16:13:25 +0800 Subject: [PATCH] 视频巡检任务,步骤按相对相机位置顺时针方向转,北 东 南 西 --- ard-work/src/main/java/com/ruoyi/inspect/controller/ArdVideoInspectTaskStepController.java | 36 ++++++----- ard-work/src/main/java/com/ruoyi/inspect/service/IArdVideoInspectTaskStepService.java | 7 ++ ard-work/src/main/java/com/ruoyi/inspect/service/impl/ArdVideoInspectTaskStepServiceImpl.java | 9 ++ ruoyi-quartz/src/main/java/com/ruoyi/quartz/task/PatrolInspectionTask.java | 2 ard-work/src/main/java/com/ruoyi/inspect/service/impl/ArdVideoInspectTaskStepComparator.java | 58 +++++++++++++++++++ ard-work/src/main/resources/mapper/inspect/ArdVideoInspectTaskMapper.xml | 2 ard-work/src/main/java/com/ruoyi/inspect/mapper/ArdVideoInspectTaskStepMapper.java | 21 ++++--- ard-work/src/main/java/com/ruoyi/inspect/domain/ArdVideoInspectRecord.java | 2 ard-work/src/main/java/com/ruoyi/inspect/service/impl/ArdVideoInspectTaskServiceImpl.java | 13 +++ ard-work/src/main/resources/mapper/inspect/ArdVideoInspectTaskStepMapper.xml | 9 ++ ruoyi-admin/src/main/resources/application.yml | 2 ard-work/src/main/resources/mapper/inspect/ArdVideoInspectRecordMapper.xml | 8 ++ 12 files changed, 135 insertions(+), 34 deletions(-) diff --git a/ard-work/src/main/java/com/ruoyi/inspect/controller/ArdVideoInspectTaskStepController.java b/ard-work/src/main/java/com/ruoyi/inspect/controller/ArdVideoInspectTaskStepController.java index ec75e98..fa5f449 100644 --- a/ard-work/src/main/java/com/ruoyi/inspect/controller/ArdVideoInspectTaskStepController.java +++ b/ard-work/src/main/java/com/ruoyi/inspect/controller/ArdVideoInspectTaskStepController.java @@ -2,6 +2,7 @@ import java.util.List; import javax.servlet.http.HttpServletResponse; + import org.springframework.security.access.prepost.PreAuthorize; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.web.bind.annotation.GetMapping; @@ -23,14 +24,13 @@ /** * 瑙嗛宸℃姝ラController - * + * * @author ruoyi * @date 2023-05-30 */ @RestController @RequestMapping("/inspect/step") -public class ArdVideoInspectTaskStepController extends BaseController -{ +public class ArdVideoInspectTaskStepController extends BaseController { @Autowired private IArdVideoInspectTaskStepService ardVideoInspectTaskStepService; @@ -39,8 +39,7 @@ */ @PreAuthorize("@ss.hasPermi('inspect:step:list')") @GetMapping("/list") - public TableDataInfo list(ArdVideoInspectTaskStep ardVideoInspectTaskStep) - { + public TableDataInfo list(ArdVideoInspectTaskStep ardVideoInspectTaskStep) { startPage(); List<ArdVideoInspectTaskStep> list = ardVideoInspectTaskStepService.selectArdVideoInspectTaskStepList(ardVideoInspectTaskStep); return getDataTable(list); @@ -52,8 +51,7 @@ @PreAuthorize("@ss.hasPermi('inspect:step:export')") @Log(title = "瑙嗛宸℃姝ラ", businessType = BusinessType.EXPORT) @PostMapping("/export") - public void export(HttpServletResponse response, ArdVideoInspectTaskStep ardVideoInspectTaskStep) - { + public void export(HttpServletResponse response, ArdVideoInspectTaskStep ardVideoInspectTaskStep) { List<ArdVideoInspectTaskStep> list = ardVideoInspectTaskStepService.selectArdVideoInspectTaskStepList(ardVideoInspectTaskStep); ExcelUtil<ArdVideoInspectTaskStep> util = new ExcelUtil<ArdVideoInspectTaskStep>(ArdVideoInspectTaskStep.class); util.exportExcel(response, list, "瑙嗛宸℃姝ラ鏁版嵁"); @@ -64,8 +62,7 @@ */ @PreAuthorize("@ss.hasPermi('inspect:step:query')") @GetMapping(value = "/{taskId}") - public AjaxResult getInfo(@PathVariable("taskId") String taskId) - { + public AjaxResult getInfo(@PathVariable("taskId") String taskId) { return success(ardVideoInspectTaskStepService.selectArdVideoInspectTaskStepByTaskId(taskId)); } @@ -75,8 +72,7 @@ @PreAuthorize("@ss.hasPermi('inspect:step:add')") @Log(title = "瑙嗛宸℃姝ラ", businessType = BusinessType.INSERT) @PostMapping - public AjaxResult add(@RequestBody ArdVideoInspectTaskStep ardVideoInspectTaskStep) - { + public AjaxResult add(@RequestBody ArdVideoInspectTaskStep ardVideoInspectTaskStep) { return toAjax(ardVideoInspectTaskStepService.insertArdVideoInspectTaskStep(ardVideoInspectTaskStep)); } @@ -85,9 +81,18 @@ */ @PreAuthorize("@ss.hasPermi('inspect:step:edit')") @Log(title = "瑙嗛宸℃姝ラ", businessType = BusinessType.UPDATE) + @GetMapping("/selectByTaskId") + public List selectByTaskId(String taskId) { + return ardVideoInspectTaskStepService.selectByTaskId(taskId); + } + + /** + * 淇敼瑙嗛宸℃姝ラ + */ + @PreAuthorize("@ss.hasPermi('inspect:step:edit')") + @Log(title = "瑙嗛宸℃姝ラ", businessType = BusinessType.UPDATE) @PutMapping - public AjaxResult edit(@RequestBody ArdVideoInspectTaskStep ardVideoInspectTaskStep) - { + public AjaxResult edit(@RequestBody ArdVideoInspectTaskStep ardVideoInspectTaskStep) { return toAjax(ardVideoInspectTaskStepService.updateArdVideoInspectTaskStep(ardVideoInspectTaskStep)); } @@ -96,9 +101,8 @@ */ @PreAuthorize("@ss.hasPermi('inspect:step:remove')") @Log(title = "瑙嗛宸℃姝ラ", businessType = BusinessType.DELETE) - @DeleteMapping("/{taskIds}") - public AjaxResult remove(@PathVariable String[] taskIds) - { + @DeleteMapping("/{taskIds}") + public AjaxResult remove(@PathVariable String[] taskIds) { return toAjax(ardVideoInspectTaskStepService.deleteArdVideoInspectTaskStepByTaskIds(taskIds)); } } diff --git a/ard-work/src/main/java/com/ruoyi/inspect/domain/ArdVideoInspectRecord.java b/ard-work/src/main/java/com/ruoyi/inspect/domain/ArdVideoInspectRecord.java index 1b32a2f..e16233a 100644 --- a/ard-work/src/main/java/com/ruoyi/inspect/domain/ArdVideoInspectRecord.java +++ b/ard-work/src/main/java/com/ruoyi/inspect/domain/ArdVideoInspectRecord.java @@ -117,6 +117,7 @@ return userId; } + @Override public String toString() { return new ToStringBuilder(this,ToStringStyle.MULTI_LINE_STYLE) @@ -127,6 +128,7 @@ .append("stepId", getStepId()) .append("deptId", getDeptId()) .append("userId", getUserId()) + .append("wellName", getWellName()) .toString(); } } diff --git a/ard-work/src/main/java/com/ruoyi/inspect/mapper/ArdVideoInspectTaskStepMapper.java b/ard-work/src/main/java/com/ruoyi/inspect/mapper/ArdVideoInspectTaskStepMapper.java index 0acfbee..6662238 100644 --- a/ard-work/src/main/java/com/ruoyi/inspect/mapper/ArdVideoInspectTaskStepMapper.java +++ b/ard-work/src/main/java/com/ruoyi/inspect/mapper/ArdVideoInspectTaskStepMapper.java @@ -1,19 +1,20 @@ package com.ruoyi.inspect.mapper; import java.util.List; +import java.util.Map; + import com.ruoyi.inspect.domain.ArdVideoInspectTaskStep; /** * 瑙嗛宸℃姝ラMapper鎺ュ彛 - * + * * @author ruoyi * @date 2023-05-30 */ -public interface ArdVideoInspectTaskStepMapper -{ +public interface ArdVideoInspectTaskStepMapper { /** * 鏌ヨ瑙嗛宸℃姝ラ - * + * * @param taskId 瑙嗛宸℃姝ラ涓婚敭 * @return 瑙嗛宸℃姝ラ */ @@ -21,7 +22,7 @@ /** * 鏌ヨ瑙嗛宸℃姝ラ鍒楄〃 - * + * * @param ardVideoInspectTaskStep 瑙嗛宸℃姝ラ * @return 瑙嗛宸℃姝ラ闆嗗悎 */ @@ -29,7 +30,7 @@ /** * 鏂板瑙嗛宸℃姝ラ - * + * * @param ardVideoInspectTaskStep 瑙嗛宸℃姝ラ * @return 缁撴灉 */ @@ -37,7 +38,7 @@ /** * 淇敼瑙嗛宸℃姝ラ - * + * * @param ardVideoInspectTaskStep 瑙嗛宸℃姝ラ * @return 缁撴灉 */ @@ -45,7 +46,7 @@ /** * 鍒犻櫎瑙嗛宸℃姝ラ - * + * * @param taskId 瑙嗛宸℃姝ラ涓婚敭 * @return 缁撴灉 */ @@ -53,9 +54,11 @@ /** * 鎵归噺鍒犻櫎瑙嗛宸℃姝ラ - * + * * @param taskIds 闇�瑕佸垹闄ょ殑鏁版嵁涓婚敭闆嗗悎 * @return 缁撴灉 */ public int deleteArdVideoInspectTaskStepByTaskIds(String[] taskIds); + + public List<Map> selectByTaskId(String taskId); } diff --git a/ard-work/src/main/java/com/ruoyi/inspect/service/IArdVideoInspectTaskStepService.java b/ard-work/src/main/java/com/ruoyi/inspect/service/IArdVideoInspectTaskStepService.java index 3738182..57381be 100644 --- a/ard-work/src/main/java/com/ruoyi/inspect/service/IArdVideoInspectTaskStepService.java +++ b/ard-work/src/main/java/com/ruoyi/inspect/service/IArdVideoInspectTaskStepService.java @@ -58,4 +58,11 @@ * @return 缁撴灉 */ public int deleteArdVideoInspectTaskStepByTaskId(String taskId); + + /** + * 鎸変换鍔$紪鍙锋煡璇� + * @param taskId + * @return + */ + public List selectByTaskId(String taskId); } diff --git a/ard-work/src/main/java/com/ruoyi/inspect/service/impl/ArdVideoInspectTaskServiceImpl.java b/ard-work/src/main/java/com/ruoyi/inspect/service/impl/ArdVideoInspectTaskServiceImpl.java index 11c9de2..19077f2 100644 --- a/ard-work/src/main/java/com/ruoyi/inspect/service/impl/ArdVideoInspectTaskServiceImpl.java +++ b/ard-work/src/main/java/com/ruoyi/inspect/service/impl/ArdVideoInspectTaskServiceImpl.java @@ -50,6 +50,8 @@ private ArdCamerasMapper ardCamerasMapper; @Resource private IHikClientService hikClientService; + @Resource + private ArdCamerasMapper camerasMapper; @PostConstruct public void initTask() { @@ -172,9 +174,16 @@ */ public void insertArdVideoInspectTaskStep(ArdVideoInspectTask ardVideoInspectTask) { List<ArdVideoInspectTaskStep> ardVideoInspectTaskStepList = ardVideoInspectTask.getArdVideoInspectTaskStepList(); - String id = ardVideoInspectTask.getId(); + //鑾峰彇鐩告満 + ArdCameras camera = camerasMapper.selectArdCamerasById(ardVideoInspectTask.getCameraId()); + Collections.sort(ardVideoInspectTaskStepList,new ArdVideoInspectTaskStepComparator(this.ardAlarmpointsWellMapper,camera.getLongitude(),camera.getLatitude())); + String taskId = ardVideoInspectTask.getId(); + for (int i = 0; i < ardVideoInspectTaskStepList.size(); i++) { + ArdVideoInspectTaskStep step = ardVideoInspectTaskStepList.get(i); + step.setTaskId(taskId); + step.setOrderNumber(new Integer(i+1)); + } if (StringUtils.isNotNull(ardVideoInspectTaskStepList)) { - List<ArdVideoInspectTaskStep> list = new ArrayList<ArdVideoInspectTaskStep>(); for (ArdVideoInspectTaskStep ardVideoInspectTaskStep : ardVideoInspectTaskStepList) { if (ardVideoInspectTaskStep.getId() == null) { //鏂扮殑姝ラ,娣诲姞 diff --git a/ard-work/src/main/java/com/ruoyi/inspect/service/impl/ArdVideoInspectTaskStepComparator.java b/ard-work/src/main/java/com/ruoyi/inspect/service/impl/ArdVideoInspectTaskStepComparator.java new file mode 100644 index 0000000..aa5b4c6 --- /dev/null +++ b/ard-work/src/main/java/com/ruoyi/inspect/service/impl/ArdVideoInspectTaskStepComparator.java @@ -0,0 +1,58 @@ +package com.ruoyi.inspect.service.impl; + +import com.ruoyi.alarmpoints.well.domain.ArdAlarmpointsWell; +import com.ruoyi.alarmpoints.well.mapper.ArdAlarmpointsWellMapper; +import com.ruoyi.alarmpoints.well.service.IArdAlarmpointsWellService; +import com.ruoyi.device.hiksdk.util.hikSdkUtil.GisUtil; +import com.ruoyi.inspect.domain.ArdVideoInspectTask; +import com.ruoyi.inspect.domain.ArdVideoInspectTaskStep; +import com.ruoyi.inspect.service.IArdVideoInspectTaskService; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Service; + +import java.util.Comparator; + +@Service +public class ArdVideoInspectTaskStepComparator implements Comparator<ArdVideoInspectTaskStep> { + private ArdAlarmpointsWellMapper ardAlarmpointsWellMapper; + private double cameraLon; + private double cameraLat; + + public ArdVideoInspectTaskStepComparator() { + } + + public ArdVideoInspectTaskStepComparator(ArdAlarmpointsWellMapper ardAlarmpointsWellMapper,double cameraLon, double cameraLat) { + this.ardAlarmpointsWellMapper = ardAlarmpointsWellMapper; + this.cameraLon = cameraLon; + this.cameraLat = cameraLat; + } + + public double getCameraLon() { + return cameraLon; + } + + public void setCameraLon(double cameraLon) { + this.cameraLon = cameraLon; + } + + public double getCameraLat() { + return cameraLat; + } + + public void setCameraLat(double cameraLat) { + this.cameraLat = cameraLat; + } + + + @Override + public int compare(ArdVideoInspectTaskStep s1, ArdVideoInspectTaskStep s2) { + ArdAlarmpointsWell well1 = this.ardAlarmpointsWellMapper.selectArdAlarmpointsWellById(s1.getWellId()); + ArdAlarmpointsWell well2 = this.ardAlarmpointsWellMapper.selectArdAlarmpointsWellById(s2.getWellId()); + //璁$畻s1鐩稿瑙掑害 + double angle1 = GisUtil.getNorthAngle(this.cameraLon, this.cameraLat, well1.getLongitude(), well1.getLatitude()) * 1000; + //璁$畻s2鐩稿瑙掑害 + double angle2 = GisUtil.getNorthAngle(this.cameraLon, this.cameraLat, well2.getLongitude(), well2.getLatitude()) * 1000; + return (int) (angle1 - angle2); + } + +} diff --git a/ard-work/src/main/java/com/ruoyi/inspect/service/impl/ArdVideoInspectTaskStepServiceImpl.java b/ard-work/src/main/java/com/ruoyi/inspect/service/impl/ArdVideoInspectTaskStepServiceImpl.java index b96363c..a610283 100644 --- a/ard-work/src/main/java/com/ruoyi/inspect/service/impl/ArdVideoInspectTaskStepServiceImpl.java +++ b/ard-work/src/main/java/com/ruoyi/inspect/service/impl/ArdVideoInspectTaskStepServiceImpl.java @@ -50,8 +50,8 @@ */ @Override public int insertArdVideoInspectTaskStep(ArdVideoInspectTaskStep ardVideoInspectTaskStep) { - ardVideoInspectTaskStep.setUserId(SecurityUtils.getUserId()); - return ardVideoInspectTaskStepMapper.insertArdVideoInspectTaskStep(ardVideoInspectTaskStep); + ardVideoInspectTaskStep.setUserId(SecurityUtils.getUserId()); + return ardVideoInspectTaskStepMapper.insertArdVideoInspectTaskStep(ardVideoInspectTaskStep); } /** @@ -86,4 +86,9 @@ public int deleteArdVideoInspectTaskStepByTaskId(String taskId) { return ardVideoInspectTaskStepMapper.deleteArdVideoInspectTaskStepByTaskId(taskId); } + + @Override + public List selectByTaskId(String taskId) { + return ardVideoInspectTaskStepMapper.selectByTaskId(taskId); + } } diff --git a/ard-work/src/main/resources/mapper/inspect/ArdVideoInspectRecordMapper.xml b/ard-work/src/main/resources/mapper/inspect/ArdVideoInspectRecordMapper.xml index cf1963a..a4182a0 100644 --- a/ard-work/src/main/resources/mapper/inspect/ArdVideoInspectRecordMapper.xml +++ b/ard-work/src/main/resources/mapper/inspect/ArdVideoInspectRecordMapper.xml @@ -22,7 +22,7 @@ <include refid="selectArdVideoInspectRecordVo"/> <where> <if test="startTime != null and startTime != ''"> and start_time = #{startTime}</if> - <if test="endTime != null and endTime != ''"> and end_time = #{endTime}</if> + <if test="endTime != null and endTime != ''"> and end_time = #{ejava.util.HashMapndTime}</if> <if test="recordFilePath != null and recordFilePath != ''"> and record_file_path = #{recordFilePath}</if> <if test="stepId != null and stepId != ''"> and step_id = #{stepId}</if> <if test="deptId != null and deptId != ''"> and dept_id = #{deptId}</if> @@ -31,6 +31,11 @@ </select> <!--鎸夋棩鏈熸煡璇�--> <select id="selectArdVideoInspectRecordListByStartTime" parameterType="ArdVideoInspectRecord" resultType="java.util.HashMap"> + <include refid="selectArdVideoInspectRecordVo"/> + <where> + <if test="startTime != null and startTime != ''">and start_time like ('${startTime}%')</if> + <if test="stepId != null and stepId != ''">and step_id = #{stepId}</if> + </where> select r.*,s.well_id,w.well_id as well_name from ard_video_inspect_record r ,ard_video_inspect_task_step s,ard_alarmpoints_well w where start_time like ('${startTime}%') and r.step_id = s.id and s.well_id = w.id order by start_time desc @@ -81,6 +86,7 @@ <if test="stepId != null">step_id = #{stepId},</if> <if test="deptId != null">dept_id = #{deptId},</if> <if test="userId != null">user_id = #{userId},</if> + <if test="wellName != null">well_name = #{wellName},</if> </trim> where id = #{id} </update> diff --git a/ard-work/src/main/resources/mapper/inspect/ArdVideoInspectTaskMapper.xml b/ard-work/src/main/resources/mapper/inspect/ArdVideoInspectTaskMapper.xml index 86edb02..d6498b6 100644 --- a/ard-work/src/main/resources/mapper/inspect/ArdVideoInspectTaskMapper.xml +++ b/ard-work/src/main/resources/mapper/inspect/ArdVideoInspectTaskMapper.xml @@ -180,7 +180,7 @@ <!--鏌ヨ浠诲姟涓浉鏈哄凡浣跨敤鏃舵--> <select id="getTaskUsedCameraPeriods" parameterType="String" resultType="java.util.HashMap"> select t.start_time,t.end_time from ard_video_inspect_task t - where t.camera_id=#{startMonth} + where t.camera_id=#{cameraId} ORDER BY t.start_time </select> </mapper> \ No newline at end of file diff --git a/ard-work/src/main/resources/mapper/inspect/ArdVideoInspectTaskStepMapper.xml b/ard-work/src/main/resources/mapper/inspect/ArdVideoInspectTaskStepMapper.xml index a97c646..c36c9b4 100644 --- a/ard-work/src/main/resources/mapper/inspect/ArdVideoInspectTaskStepMapper.xml +++ b/ard-work/src/main/resources/mapper/inspect/ArdVideoInspectTaskStepMapper.xml @@ -20,7 +20,7 @@ <select id="selectArdVideoInspectTaskStepList" parameterType="ArdVideoInspectTaskStep" resultMap="ArdVideoInspectTaskStepResult"> <include refid="selectArdVideoInspectTaskStepVo"/> - <where> + <where> <if test="taskId != null and taskId != ''"> and task_id = #{taskId}</if> <if test="deptId != null and deptId != ''"> and dept_id = #{deptId}</if> <if test="userId != null and userId != ''"> and user_id = #{userId}</if> @@ -29,6 +29,13 @@ <if test="wellId != null and wellId != ''"> and well_id = #{wellId}</if> </where> </select> + <select id="selectByTaskId" parameterType="String" resultType="java.util.HashMap"> + select s.*, w.well_id as well_name + from ard_video_inspect_task_step s, + ard_alarmpoints_well w + where s.task_id = #{taskId} + and s.well_id = w.id + </select> <select id="selectArdVideoInspectTaskStepByTaskId" parameterType="String" resultMap="ArdVideoInspectTaskStepResult"> <include refid="selectArdVideoInspectTaskStepVo"/> diff --git a/ruoyi-admin/src/main/resources/application.yml b/ruoyi-admin/src/main/resources/application.yml index 10a760b..3ae70a3 100644 --- a/ruoyi-admin/src/main/resources/application.yml +++ b/ruoyi-admin/src/main/resources/application.yml @@ -36,7 +36,7 @@ # 鏃ュ織閰嶇疆 logging: level: - com.ruoyi: info + com.ruoyi.inspect: debug org.springframework: warn # 鐢ㄦ埛閰嶇疆 diff --git a/ruoyi-quartz/src/main/java/com/ruoyi/quartz/task/PatrolInspectionTask.java b/ruoyi-quartz/src/main/java/com/ruoyi/quartz/task/PatrolInspectionTask.java index 6837327..9d6d45b 100644 --- a/ruoyi-quartz/src/main/java/com/ruoyi/quartz/task/PatrolInspectionTask.java +++ b/ruoyi-quartz/src/main/java/com/ruoyi/quartz/task/PatrolInspectionTask.java @@ -38,6 +38,6 @@ //宸℃浠诲姟 public void scanRun() { - ardVideoInspectTaskService.autoTaskRun(); + /* ardVideoInspectTaskService.autoTaskRun();*/ } } -- Gitblit v1.9.3