From a381426bb74009f45db150beadb9f67ea72a7df5 Mon Sep 17 00:00:00 2001
From: rain <1679827795@qq.com>
Date: Thu, 22 Jan 2026 16:00:55 +0800
Subject: [PATCH] 事件线索app相关接口
---
drone-service/drone-gd/src/main/java/org/sxkj/gd/workorder/service/impl/GdClueEventServiceImpl.java | 22 ++++
drone-service/drone-gd/src/main/java/org/sxkj/gd/workorder/service/IGdClueEventService.java | 17 +++
drone-service/drone-gd/src/main/java/org/sxkj/gd/workorder/controller/GdClueEventController.java | 24 ++--
drone-service/drone-gd/src/main/java/org/sxkj/gd/workorder/vo/GdClueEventListVO.java | 43 ++++++++
drone-service/drone-gd/src/main/java/org/sxkj/gd/workorder/mapper/GdClueEventMapper.java | 20 ++++
drone-service/drone-gd/src/main/java/org/sxkj/gd/workorder/vo/GdClueEventVO.java | 85 +++++++++++++++++
drone-service/drone-gd/src/main/java/org/sxkj/gd/workorder/mapper/GdClueEventMapper.xml | 48 +++++++++
7 files changed, 246 insertions(+), 13 deletions(-)
diff --git a/drone-service/drone-gd/src/main/java/org/sxkj/gd/workorder/controller/GdClueEventController.java b/drone-service/drone-gd/src/main/java/org/sxkj/gd/workorder/controller/GdClueEventController.java
index cdc07d6..4675cbc 100644
--- a/drone-service/drone-gd/src/main/java/org/sxkj/gd/workorder/controller/GdClueEventController.java
+++ b/drone-service/drone-gd/src/main/java/org/sxkj/gd/workorder/controller/GdClueEventController.java
@@ -29,13 +29,12 @@
import org.springblade.core.tool.api.R;
import org.springblade.core.tool.utils.Func;
import org.springframework.web.bind.annotation.*;
-import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import org.sxkj.gd.workorder.entity.GdClueEventEntity;
import org.sxkj.gd.workorder.param.GdClueEventRejectParam;
+import org.sxkj.gd.workorder.vo.GdClueEventListVO;
import org.sxkj.gd.workorder.vo.GdClueEventVO;
import org.sxkj.gd.workorder.excel.GdClueEventExcel;
-import org.sxkj.gd.workorder.wrapper.GdClueEventWrapper;
import org.sxkj.gd.workorder.service.IGdClueEventService;
import org.springblade.core.boot.ctrl.BladeController;
import org.springblade.core.tool.utils.DateUtil;
@@ -65,22 +64,21 @@
*/
@GetMapping("/detail")
@ApiOperationSupport(order = 1)
- @ApiOperation(value = "详情", notes = "传入gdClueEvent")
- public R<GdClueEventVO> detail(GdClueEventEntity gdClueEvent) {
- GdClueEventEntity detail = gdClueEventService.getOne(Condition.getQueryWrapper(gdClueEvent));
- return R.data(GdClueEventWrapper.build().entityVO(detail));
+ @ApiOperation(value = "详情", notes = "传入事件ID")
+ public R<GdClueEventVO> detail(@ApiParam(value = "事件ID", required = true) @RequestParam Long id) {
+ return R.data(gdClueEventService.getGdClueEventDetail(id));
}
+
/**
- * 事件表(线索事件) 分页
+ * 事件表(线索事件) 列表
*/
@GetMapping("/list")
@ApiOperationSupport(order = 2)
- @ApiOperation(value = "分页", notes = "传入gdClueEvent")
- public R<IPage<GdClueEventVO>> list(@ApiIgnore @RequestParam Map<String, Object> gdClueEvent, Query query) {
- QueryWrapper<GdClueEventEntity> queryWrapper = Condition.getQueryWrapper(gdClueEvent, GdClueEventEntity.class);
- queryWrapper.lambda().eq(GdClueEventEntity::getIsDeleted, BladeConstant.DB_NOT_DELETED);
- IPage<GdClueEventVO> pages = gdClueEventService.selectGdClueEventList(Condition.getPage(query), queryWrapper);
- return R.data(pages);
+ @ApiOperation(value = "列表", notes = "固定过滤本部门,onlyMine=1时仅我的数据")
+ public R<List<GdClueEventListVO>> list(@ApiParam(value = "是否仅我的数据,1为是,0为否")
+ @RequestParam(value = "onlyMine", required = false, defaultValue = "0") Integer onlyMine) {
+ List<GdClueEventListVO> list = gdClueEventService.listGdClueEventByDept(onlyMine);
+ return R.data(list);
}
/**
diff --git a/drone-service/drone-gd/src/main/java/org/sxkj/gd/workorder/mapper/GdClueEventMapper.java b/drone-service/drone-gd/src/main/java/org/sxkj/gd/workorder/mapper/GdClueEventMapper.java
index 7963093..22ea340 100644
--- a/drone-service/drone-gd/src/main/java/org/sxkj/gd/workorder/mapper/GdClueEventMapper.java
+++ b/drone-service/drone-gd/src/main/java/org/sxkj/gd/workorder/mapper/GdClueEventMapper.java
@@ -17,6 +17,7 @@
package org.sxkj.gd.workorder.mapper;
import org.sxkj.gd.workorder.entity.GdClueEventEntity;
+import org.sxkj.gd.workorder.vo.GdClueEventListVO;
import org.sxkj.gd.workorder.vo.GdClueEventVO;
import org.sxkj.gd.workorder.excel.GdClueEventExcel;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
@@ -51,6 +52,25 @@
*/
List<GdClueEventVO> selectGdClueEventList(IPage page, @Param("ew") Wrapper<GdClueEventEntity> queryWrapper);
+ /**
+ * 列表查询(不分页)
+ *
+ * @param deptId
+ * @param userId
+ * @param onlyMine
+ * @return
+ */
+ List<GdClueEventListVO> selectGdClueEventSimpleList(@Param("deptId") Long deptId, @Param("userId") Long userId, @Param("onlyMine") Integer onlyMine);
+
+ /**
+ * 详情查询
+ *
+ * @param id
+ * @param deptId
+ * @return
+ */
+ GdClueEventVO selectGdClueEventDetailById(@Param("id") Long id, @Param("deptId") Long deptId);
+
/**
* 获取导出数据
diff --git a/drone-service/drone-gd/src/main/java/org/sxkj/gd/workorder/mapper/GdClueEventMapper.xml b/drone-service/drone-gd/src/main/java/org/sxkj/gd/workorder/mapper/GdClueEventMapper.xml
index 250bcbc..07badd0 100644
--- a/drone-service/drone-gd/src/main/java/org/sxkj/gd/workorder/mapper/GdClueEventMapper.xml
+++ b/drone-service/drone-gd/src/main/java/org/sxkj/gd/workorder/mapper/GdClueEventMapper.xml
@@ -34,6 +34,13 @@
<result column="latitude" property="latitude"/>
<result column="event_status" property="eventStatus"/>
<result column="area_code" property="areaCode"/>
+ <result column="event_code" property="eventCode"/>
+ <result column="event_location" property="eventLocation"/>
+ <result column="shoot_time" property="shootTime"/>
+ <result column="event_image_url" property="eventImageUrl"/>
+ <result column="distribute_user_name" property="distributeUserName"/>
+ <result column="distribute_dept_name" property="distributeDeptName"/>
+ <result column="distribute_time" property="distributeTime"/>
<result column="create_user" property="createUser"/>
<result column="create_dept" property="createDept"/>
<result column="create_time" property="createTime"/>
@@ -41,6 +48,12 @@
<result column="update_time" property="updateTime"/>
<result column="status" property="status"/>
<result column="is_deleted" property="isDeleted"/>
+ </resultMap>
+
+ <resultMap id="gdClueEventListVoResultMap" type="org.sxkj.gd.workorder.vo.GdClueEventListVO">
+ <result column="id" property="id"/>
+ <result column="event_image_url" property="eventImageUrl"/>
+ <result column="create_time" property="createTime"/>
</resultMap>
<resultMap id="gdClueEventExcelResultMap" type="org.sxkj.gd.workorder.excel.GdClueEventExcel">
@@ -68,6 +81,41 @@
left join blade_dept bd on bd.id = ce.dispose_dept and bd.is_deleted = 0
</select>
+ <select id="selectGdClueEventSimpleList" resultMap="gdClueEventListVoResultMap">
+ select ce.id as id,
+ tr.result_url as event_image_url,
+ ce.create_time as create_time
+ from ja_gd_clue_event ce
+ left join ja_gd_task_result tr on tr.id = ce.result_id and tr.is_deleted = 0
+ where ce.is_deleted = 0
+ and ce.dispose_dept = #{deptId}
+ <if test="onlyMine != null and onlyMine == 1">
+ and ce.dispose_user = #{userId}
+ </if>
+ </select>
+
+ <select id="selectGdClueEventDetailById" resultMap="gdClueEventVoResultMap">
+ select ce.*,
+ ifnull(bu.real_name, bu.name) as dispose_user_name,
+ bd.dept_name as dispose_dept_name,
+ ifnull(cu.real_name, cu.name) as distribute_user_name,
+ cd.dept_name as distribute_dept_name,
+ ce.create_time as distribute_time,
+ concat(ce.longitude, ',', ce.latitude) as event_location,
+ tr.result_code as event_code,
+ tr.shoot_time as shoot_time,
+ tr.result_url as event_image_url
+ from ja_gd_clue_event ce
+ left join blade_user bu on bu.id = ce.dispose_user and bu.is_deleted = 0
+ left join blade_dept bd on bd.id = ce.dispose_dept and bd.is_deleted = 0
+ left join blade_user cu on cu.id = ce.create_user and cu.is_deleted = 0
+ left join blade_dept cd on cd.id = ce.create_dept and cd.is_deleted = 0
+ left join ja_gd_task_result tr on tr.id = ce.result_id and tr.is_deleted = 0
+ where ce.is_deleted = 0
+ and ce.dispose_dept = #{deptId}
+ and ce.id = #{id}
+ </select>
+
<select id="exportGdClueEvent" resultMap="gdClueEventExcelResultMap">
SELECT * FROM ja_gd_clue_event ${ew.customSqlSegment}
diff --git a/drone-service/drone-gd/src/main/java/org/sxkj/gd/workorder/service/IGdClueEventService.java b/drone-service/drone-gd/src/main/java/org/sxkj/gd/workorder/service/IGdClueEventService.java
index db91143..53d5a32 100644
--- a/drone-service/drone-gd/src/main/java/org/sxkj/gd/workorder/service/IGdClueEventService.java
+++ b/drone-service/drone-gd/src/main/java/org/sxkj/gd/workorder/service/IGdClueEventService.java
@@ -20,6 +20,7 @@
import org.sxkj.gd.workorder.entity.GdClueEventEntity;
import org.sxkj.gd.workorder.param.GdClueEventDistributeParam;
import org.sxkj.gd.workorder.param.GdClueEventRejectParam;
+import org.sxkj.gd.workorder.vo.GdClueEventListVO;
import org.sxkj.gd.workorder.vo.GdClueEventVO;
import org.sxkj.gd.workorder.excel.GdClueEventExcel;
import com.baomidou.mybatisplus.core.metadata.IPage;
@@ -52,6 +53,22 @@
IPage<GdClueEventVO> selectGdClueEventList(IPage<GdClueEventVO> page, Wrapper<GdClueEventEntity> queryWrapper);
/**
+ * 列表查询(不分页)
+ *
+ * @param onlyMine
+ * @return
+ */
+ List<GdClueEventListVO> listGdClueEventByDept(Integer onlyMine);
+
+ /**
+ * 详情查询
+ *
+ * @param id
+ * @return
+ */
+ GdClueEventVO getGdClueEventDetail(Long id);
+
+ /**
* 分发事件
*
* @param distributeParam
diff --git a/drone-service/drone-gd/src/main/java/org/sxkj/gd/workorder/service/impl/GdClueEventServiceImpl.java b/drone-service/drone-gd/src/main/java/org/sxkj/gd/workorder/service/impl/GdClueEventServiceImpl.java
index 52e3614..2a107c3 100644
--- a/drone-service/drone-gd/src/main/java/org/sxkj/gd/workorder/service/impl/GdClueEventServiceImpl.java
+++ b/drone-service/drone-gd/src/main/java/org/sxkj/gd/workorder/service/impl/GdClueEventServiceImpl.java
@@ -29,6 +29,7 @@
import org.sxkj.gd.workorder.param.GdClueEventRejectParam;
import org.sxkj.gd.workorder.service.IGdClueEventService;
import org.sxkj.gd.workorder.service.IGdTaskResultService;
+import org.sxkj.gd.workorder.vo.GdClueEventListVO;
import org.sxkj.gd.workorder.vo.GdClueEventVO;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
@@ -60,6 +61,27 @@
}
@Override
+ public List<GdClueEventListVO> listGdClueEventByDept(Integer onlyMine) {
+ Long deptId = Long.valueOf(AuthUtil.getDeptId());
+ Long userId = AuthUtil.getUserId();
+ Integer mine = onlyMine == null ? 0 : onlyMine;
+ return baseMapper.selectGdClueEventSimpleList(deptId, userId, mine);
+ }
+
+ @Override
+ public GdClueEventVO getGdClueEventDetail(Long id) {
+ if (id == null) {
+ throw new RuntimeException("事件ID不能为空");
+ }
+ Long deptId = Long.valueOf(AuthUtil.getDeptId());
+ GdClueEventVO detail = baseMapper.selectGdClueEventDetailById(id, deptId);
+ if (detail == null) {
+ throw new RuntimeException("事件不存在");
+ }
+ return detail;
+ }
+
+ @Override
@Transactional(rollbackFor = Exception.class)
public boolean distributeClueEvent(GdClueEventDistributeParam distributeParam) {
GdTaskResultEntity taskResult = gdTaskResultService.getById(distributeParam.getResultId());
diff --git a/drone-service/drone-gd/src/main/java/org/sxkj/gd/workorder/vo/GdClueEventListVO.java b/drone-service/drone-gd/src/main/java/org/sxkj/gd/workorder/vo/GdClueEventListVO.java
new file mode 100644
index 0000000..44521e5
--- /dev/null
+++ b/drone-service/drone-gd/src/main/java/org/sxkj/gd/workorder/vo/GdClueEventListVO.java
@@ -0,0 +1,43 @@
+/*
+ * Copyright (c) 2018-2028, Chill Zhuang All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions are met:
+ *
+ * Redistributions of source code must retain the above copyright notice,
+ * this list of conditions and the following disclaimer.
+ * Redistributions in binary form must reproduce the above copyright
+ * notice, this list of conditions and the following disclaimer in the
+ * documentation and/or other materials provided with the distribution.
+ * Neither the name of the dreamlu.net developer nor the names of its
+ * contributors may be used to endorse or promote products derived from
+ * this software without specific prior written permission.
+ * Author: Chill 庄骞 (smallchill@163.com)
+ */
+package org.sxkj.gd.workorder.vo;
+
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+import java.io.Serializable;
+import java.util.Date;
+
+/**
+ * 事件表(线索事件) 列表视图实体类
+ *
+ * @author lw
+ * @since 2026-01-14
+ */
+@Data
+public class GdClueEventListVO implements Serializable {
+ private static final long serialVersionUID = 1L;
+
+ @ApiModelProperty("事件ID")
+ private Long id;
+
+ @ApiModelProperty(value = "事件图片url")
+ private String eventImageUrl;
+
+ @ApiModelProperty(value = "事件生成时间")
+ private Date createTime;
+}
diff --git a/drone-service/drone-gd/src/main/java/org/sxkj/gd/workorder/vo/GdClueEventVO.java b/drone-service/drone-gd/src/main/java/org/sxkj/gd/workorder/vo/GdClueEventVO.java
index c39e632..b2939ee 100644
--- a/drone-service/drone-gd/src/main/java/org/sxkj/gd/workorder/vo/GdClueEventVO.java
+++ b/drone-service/drone-gd/src/main/java/org/sxkj/gd/workorder/vo/GdClueEventVO.java
@@ -19,6 +19,7 @@
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import java.io.Serializable;
+import java.util.Date;
/**
* 事件表(线索事件) 视图实体类
@@ -74,10 +75,94 @@
@ApiModelProperty(value = "区域编码")
private String areaCode;
+ /**
+ * 事件编号
+ */
+ @ApiModelProperty(value = "事件编号")
+ private String eventCode;
+
+ /**
+ * 事件位置
+ */
+ @ApiModelProperty(value = "事件位置")
+ private String eventLocation;
+
+ /**
+ * 拍摄时间
+ */
+ @ApiModelProperty(value = "拍摄时间")
+ private Date shootTime;
+
+ /**
+ * 事件图片url
+ */
+ @ApiModelProperty(value = "事件图片url")
+ private String eventImageUrl;
+
@ApiModelProperty(value = "处置人姓名")
private String disposeUserName;
@ApiModelProperty(value = "处置部门名称")
private String disposeDeptName;
+ /**
+ * 分发人员名称
+ */
+ @ApiModelProperty(value = "分发人员名称")
+ private String distributeUserName;
+
+ /**
+ * 分发部门名称
+ */
+ @ApiModelProperty(value = "分发部门名称")
+ private String distributeDeptName;
+
+ /**
+ * 分发时间
+ */
+ @ApiModelProperty(value = "分发时间")
+ private Date distributeTime;
+
+ /**
+ * 创建人
+ */
+ @ApiModelProperty(value = "创建人")
+ private Long createUser;
+
+ /**
+ * 创建部门
+ */
+ @ApiModelProperty(value = "创建部门")
+ private Long createDept;
+
+ /**
+ * 创建时间
+ */
+ @ApiModelProperty(value = "创建时间")
+ private Date createTime;
+
+ /**
+ * 更新人
+ */
+ @ApiModelProperty(value = "更新人")
+ private Long updateUser;
+
+ /**
+ * 更新时间
+ */
+ @ApiModelProperty(value = "更新时间")
+ private Date updateTime;
+
+ /**
+ * 状态(0正常 1停用)
+ */
+ @ApiModelProperty(value = "状态(0正常 1停用)")
+ private Integer status;
+
+ /**
+ * 删除标志(0存在 1删除)
+ */
+ @ApiModelProperty(value = "删除标志(0存在 1删除)")
+ private Integer isDeleted;
+
}
--
Gitblit v1.9.3