吉安感知网项目-后端
rain
2026-01-20 3985b76772189b452c8be4b3b2916c3e899fdfb5
工单事件线索模块
10 files modified
2 files added
423 ■■■■ changed files
drone-service/drone-gd/src/main/java/org/sxkj/gd/workorder/controller/GdClueEventController.java 76 ●●●●● patch | view | raw | blame | history
drone-service/drone-gd/src/main/java/org/sxkj/gd/workorder/controller/GdTaskResultController.java 52 ●●●●● patch | view | raw | blame | history
drone-service/drone-gd/src/main/java/org/sxkj/gd/workorder/entity/GdClueEventEntity.java 20 ●●●●● patch | view | raw | blame | history
drone-service/drone-gd/src/main/java/org/sxkj/gd/workorder/entity/GdTaskResultEntity.java 13 ●●●●● patch | view | raw | blame | history
drone-service/drone-gd/src/main/java/org/sxkj/gd/workorder/excel/GdClueEventExcel.java 31 ●●●● patch | view | raw | blame | history
drone-service/drone-gd/src/main/java/org/sxkj/gd/workorder/excel/GdTaskResultExcel.java 12 ●●●● patch | view | raw | blame | history
drone-service/drone-gd/src/main/java/org/sxkj/gd/workorder/mapper/GdClueEventMapper.xml 17 ●●●● patch | view | raw | blame | history
drone-service/drone-gd/src/main/java/org/sxkj/gd/workorder/mapper/GdTaskResultMapper.xml 18 ●●●● patch | view | raw | blame | history
drone-service/drone-gd/src/main/java/org/sxkj/gd/workorder/param/GdClueEventDistributeParam.java 59 ●●●●● patch | view | raw | blame | history
drone-service/drone-gd/src/main/java/org/sxkj/gd/workorder/param/GdClueEventRejectParam.java 17 ●●●●● patch | view | raw | blame | history
drone-service/drone-gd/src/main/java/org/sxkj/gd/workorder/service/IGdClueEventService.java 17 ●●●●● patch | view | raw | blame | history
drone-service/drone-gd/src/main/java/org/sxkj/gd/workorder/service/impl/GdClueEventServiceImpl.java 91 ●●●●● patch | view | raw | blame | history
drone-service/drone-gd/src/main/java/org/sxkj/gd/workorder/controller/GdClueEventController.java
@@ -32,6 +32,7 @@
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.GdClueEventVO;
import org.sxkj.gd.workorder.excel.GdClueEventExcel;
import org.sxkj.gd.workorder.wrapper.GdClueEventWrapper;
@@ -90,26 +91,26 @@
        IPage<GdClueEventVO> pages = gdClueEventService.selectGdClueEventPage(Condition.getPage(query), gdClueEvent);
        return R.data(pages);
    }
    /**
     * 事件表(线索事件) 新增
     */
    @PostMapping("/save")
    @ApiOperationSupport(order = 4)
    @ApiOperation(value = "新增", notes = "传入gdClueEvent")
    public R save(@Valid @RequestBody GdClueEventEntity gdClueEvent) {
        return R.status(gdClueEventService.save(gdClueEvent));
    }
    /**
     * 事件表(线索事件) 修改
     */
    @PostMapping("/update")
    @ApiOperationSupport(order = 5)
    @ApiOperation(value = "修改", notes = "传入gdClueEvent")
    public R update(@Valid @RequestBody GdClueEventEntity gdClueEvent) {
        return R.status(gdClueEventService.updateById(gdClueEvent));
    }
//
//    /**
//     * 事件表(线索事件) 新增
//     */
//    @PostMapping("/save")
//    @ApiOperationSupport(order = 4)
//    @ApiOperation(value = "新增", notes = "传入gdClueEvent")
//    public R save(@Valid @RequestBody GdClueEventEntity gdClueEvent) {
//        return R.status(gdClueEventService.save(gdClueEvent));
//    }
//
//    /**
//     * 事件表(线索事件) 修改
//     */
//    @PostMapping("/update")
//    @ApiOperationSupport(order = 5)
//    @ApiOperation(value = "修改", notes = "传入gdClueEvent")
//    public R update(@Valid @RequestBody GdClueEventEntity gdClueEvent) {
//        return R.status(gdClueEventService.updateById(gdClueEvent));
//    }
    /**
     * 事件表(线索事件) 新增或修改
@@ -131,21 +132,30 @@
        return R.status(gdClueEventService.deleteLogic(Func.toLongList(ids)));
    }
    /**
     * 导出数据
     * 事件驳回
     */
    @GetMapping("/export-gdClueEvent")
    @ApiOperationSupport(order = 9)
    @ApiOperation(value = "导出数据", notes = "传入gdClueEvent")
    public void exportGdClueEvent(@ApiIgnore @RequestParam Map<String, Object> gdClueEvent, BladeUser bladeUser, HttpServletResponse response) {
        QueryWrapper<GdClueEventEntity> queryWrapper = Condition.getQueryWrapper(gdClueEvent, GdClueEventEntity.class);
        //if (!AuthUtil.isAdministrator()) {
        //    queryWrapper.lambda().eq(GdClueEvent::getTenantId, bladeUser.getTenantId());
        //}
        queryWrapper.lambda().eq(GdClueEventEntity::getIsDeleted, BladeConstant.DB_NOT_DELETED);
        List<GdClueEventExcel> list = gdClueEventService.exportGdClueEvent(queryWrapper);
        ExcelUtil.export(response, "事件表(线索事件)数据" + DateUtil.time(), "事件表(线索事件)数据表", list, GdClueEventExcel.class);
    @PostMapping("/reject")
    @ApiOperationSupport(order = 8)
    @ApiOperation(value = "驳回", notes = "传入事件ID")
    public R reject(@Valid @RequestBody GdClueEventRejectParam rejectParam) {
        return R.status(gdClueEventService.rejectClueEvent(rejectParam));
    }
//    /**
//     * 导出数据
//     */
//    @GetMapping("/export-gdClueEvent")
//    @ApiOperationSupport(order = 9)
//    @ApiOperation(value = "导出数据", notes = "传入gdClueEvent")
//    public void exportGdClueEvent(@ApiIgnore @RequestParam Map<String, Object> gdClueEvent, BladeUser bladeUser, HttpServletResponse response) {
//        QueryWrapper<GdClueEventEntity> queryWrapper = Condition.getQueryWrapper(gdClueEvent, GdClueEventEntity.class);
//        //if (!AuthUtil.isAdministrator()) {
//        //    queryWrapper.lambda().eq(GdClueEvent::getTenantId, bladeUser.getTenantId());
//        //}
//        queryWrapper.lambda().eq(GdClueEventEntity::getIsDeleted, BladeConstant.DB_NOT_DELETED);
//        List<GdClueEventExcel> list = gdClueEventService.exportGdClueEvent(queryWrapper);
//        ExcelUtil.export(response, "事件表(线索事件)数据" + DateUtil.time(), "事件表(线索事件)数据表", list, GdClueEventExcel.class);
//    }
}
drone-service/drone-gd/src/main/java/org/sxkj/gd/workorder/controller/GdTaskResultController.java
@@ -35,6 +35,8 @@
import org.sxkj.gd.workorder.vo.GdTaskResultVO;
import org.sxkj.gd.workorder.excel.GdTaskResultExcel;
import org.sxkj.gd.workorder.wrapper.GdTaskResultWrapper;
import org.sxkj.gd.workorder.param.GdClueEventDistributeParam;
import org.sxkj.gd.workorder.service.IGdClueEventService;
import org.sxkj.gd.workorder.service.IGdTaskResultService;
import org.springblade.core.boot.ctrl.BladeController;
import org.springblade.core.tool.utils.DateUtil;
@@ -58,6 +60,7 @@
public class GdTaskResultController extends BladeController {
    private final IGdTaskResultService gdTaskResultService;
    private final IGdClueEventService gdClueEventService;
    /**
     * 成果表 详情
@@ -99,26 +102,26 @@
        IPage<GdTaskResultVO> pages = gdTaskResultService.selectGdTaskResultPage(Condition.getPage(query), gdTaskResult);
        return R.data(pages);
    }
    /**
     * 成果表 新增
     */
    @PostMapping("/save")
    @ApiOperationSupport(order = 4)
    @ApiOperation(value = "新增", notes = "传入gdTaskResult")
    public R save(@Valid @RequestBody GdTaskResultEntity gdTaskResult) {
        return R.status(gdTaskResultService.save(gdTaskResult));
    }
    /**
     * 成果表 修改
     */
    @PostMapping("/update")
    @ApiOperationSupport(order = 5)
    @ApiOperation(value = "修改", notes = "传入gdTaskResult")
    public R update(@Valid @RequestBody GdTaskResultEntity gdTaskResult) {
        return R.status(gdTaskResultService.updateById(gdTaskResult));
    }
//
//    /**
//     * 成果表 新增
//     */
//    @PostMapping("/save")
//    @ApiOperationSupport(order = 4)
//    @ApiOperation(value = "新增", notes = "传入gdTaskResult")
//    public R save(@Valid @RequestBody GdTaskResultEntity gdTaskResult) {
//        return R.status(gdTaskResultService.save(gdTaskResult));
//    }
//
//    /**
//     * 成果表 修改
//     */
//    @PostMapping("/update")
//    @ApiOperationSupport(order = 5)
//    @ApiOperation(value = "修改", notes = "传入gdTaskResult")
//    public R update(@Valid @RequestBody GdTaskResultEntity gdTaskResult) {
//        return R.status(gdTaskResultService.updateById(gdTaskResult));
//    }
    /**
     * 成果表 新增或修改
@@ -140,6 +143,15 @@
        return R.status(gdTaskResultService.deleteLogic(Func.toLongList(ids)));
    }
    /**
     * 成果分发事件
     */
    @PostMapping("/distribute")
    @ApiOperationSupport(order = 8)
    @ApiOperation(value = "分发事件", notes = "传入分发参数")
    public R distribute(@Valid @RequestBody GdClueEventDistributeParam distributeParam) {
        return R.status(gdClueEventService.distributeClueEvent(distributeParam));
    }
    /**
     * 导出数据
drone-service/drone-gd/src/main/java/org/sxkj/gd/workorder/entity/GdClueEventEntity.java
@@ -23,8 +23,6 @@
import lombok.EqualsAndHashCode;
import org.springblade.core.mp.base.BaseEntity;
import java.util.Date;
/**
 * 事件表(线索事件) 实体类
 *
@@ -58,20 +56,20 @@
    @ApiModelProperty(value = "处置部门")
    private String disposeDept;
    /**
     * 分发时间
     * 经度
     */
    @ApiModelProperty(value = "分发时间")
    private Date distributeTime;
    @ApiModelProperty(value = "经度")
    private Double longitude;
    /**
     * 工单位置(经纬度)
     * 纬度
     */
    @ApiModelProperty(value = "工单位置(经纬度)")
    private byte[] workOrderLocation;
    @ApiModelProperty(value = "纬度")
    private Double latitude;
    /**
     * 状态:0未知、1已分发、2已驳回
     * 状态:0未分发、1已分发、2已驳回
     */
    @ApiModelProperty(value = "状态:0未知、1已分发、2已驳回")
    private Byte eventStatus;
    @ApiModelProperty(value = "状态:0未分发、1已分发、2已驳回")
    private Integer eventStatus;
    /**
     * 区域编码
     */
drone-service/drone-gd/src/main/java/org/sxkj/gd/workorder/entity/GdTaskResultEntity.java
@@ -63,15 +63,20 @@
    @ApiModelProperty(value = "照片数据(JSON格式)")
    private String photoData;
    /**
     * 位置(经纬度)
     * 经度
     */
    @ApiModelProperty(value = "位置(经纬度)")
    private byte[] location;
    @ApiModelProperty(value = "经度")
    private Double longitude;
    /**
     * 纬度
     */
    @ApiModelProperty(value = "纬度")
    private Double latitude;
    /**
     * 分发事件状态:0未分发、1已分发、2已驳回
     */
    @ApiModelProperty(value = "分发事件状态:0未分发、1已分发、2已驳回")
    private Byte distributeStatus;
    private Integer distributeStatus;
    /**
     * 区域编码
     */
drone-service/drone-gd/src/main/java/org/sxkj/gd/workorder/excel/GdClueEventExcel.java
@@ -24,7 +24,6 @@
import lombok.Data;
import java.io.Serializable;
import java.util.Date;
/**
@@ -66,35 +65,23 @@
    @ExcelProperty("处置部门")
    private String disposeDept;
    /**
     * 分发人员
     * 经度
     */
    @ColumnWidth(20)
    @ExcelProperty("分发人员")
    private String distributeUser;
    @ExcelProperty("经度")
    private Double longitude;
    /**
     * 分发部门
     * 纬度
     */
    @ColumnWidth(20)
    @ExcelProperty("分发部门")
    private String distributeDept;
    @ExcelProperty("纬度")
    private Double latitude;
    /**
     * 分发时间
     * 状态:0未分发、1已分发、2已驳回
     */
    @ColumnWidth(20)
    @ExcelProperty("分发时间")
    private Date distributeTime;
    /**
     * 工单位置(经纬度)
     */
    @ColumnWidth(20)
    @ExcelProperty("工单位置(经纬度)")
    private byte[] workOrderLocation;
    /**
     * 状态:0未知、1已分发、2已驳回
     */
    @ColumnWidth(20)
    @ExcelProperty("状态:0未知、1已分发、2已驳回")
    private Byte eventStatus;
    @ExcelProperty("状态:0未分发、1已分发、2已驳回")
    private Integer eventStatus;
    /**
     * 区域编码
     */
drone-service/drone-gd/src/main/java/org/sxkj/gd/workorder/excel/GdTaskResultExcel.java
@@ -72,11 +72,17 @@
    @ExcelProperty("照片数据(JSON格式)")
    private String photoData;
    /**
     * 位置(经纬度)
     * 经度
     */
    @ColumnWidth(20)
    @ExcelProperty("位置(经纬度)")
    private byte[] location;
    @ExcelProperty("经度")
    private Double longitude;
    /**
     * 纬度
     */
    @ColumnWidth(20)
    @ExcelProperty("纬度")
    private Double latitude;
    /**
     * 分发事件状态:0未分发、1已分发、2已驳回
     */
drone-service/drone-gd/src/main/java/org/sxkj/gd/workorder/mapper/GdClueEventMapper.xml
@@ -9,8 +9,8 @@
        <result column="work_order_id" property="workOrderId"/>
        <result column="dispose_user" property="disposeUser"/>
        <result column="dispose_dept" property="disposeDept"/>
        <result column="distribute_time" property="distributeTime"/>
        <result column="work_order_location" property="workOrderLocation"/>
        <result column="longitude" property="longitude"/>
        <result column="latitude" property="latitude"/>
        <result column="event_status" property="eventStatus"/>
        <result column="area_code" property="areaCode"/>
        <result column="create_user" property="createUser"/>
@@ -22,13 +22,24 @@
        <result column="is_deleted" property="isDeleted"/>
    </resultMap>
    <resultMap id="gdClueEventExcelResultMap" type="org.sxkj.gd.workorder.excel.GdClueEventExcel">
        <result column="result_id" property="resultId"/>
        <result column="work_order_id" property="workOrderId"/>
        <result column="dispose_user" property="disposeUser"/>
        <result column="dispose_dept" property="disposeDept"/>
        <result column="longitude" property="longitude"/>
        <result column="latitude" property="latitude"/>
        <result column="event_status" property="eventStatus"/>
        <result column="area_code" property="areaCode"/>
        <result column="is_deleted" property="isDeleted"/>
    </resultMap>
    <select id="selectGdClueEventPage" resultMap="gdClueEventResultMap">
        select * from ja_gd_clue_event where is_deleted = 0
    </select>
    <select id="exportGdClueEvent" resultType="org.sxkj.gd.workorder.excel.GdClueEventExcel">
    <select id="exportGdClueEvent" resultMap="gdClueEventExcelResultMap">
        SELECT * FROM ja_gd_clue_event ${ew.customSqlSegment}
    </select>
drone-service/drone-gd/src/main/java/org/sxkj/gd/workorder/mapper/GdTaskResultMapper.xml
@@ -10,7 +10,8 @@
        <result column="result_url" property="resultUrl"/>
        <result column="shoot_time" property="shootTime"/>
        <result column="photo_data" property="photoData"/>
        <result column="location" property="location"/>
        <result column="longitude" property="longitude"/>
        <result column="latitude" property="latitude"/>
        <result column="distribute_status" property="distributeStatus"/>
        <result column="area_code" property="areaCode"/>
        <result column="create_user" property="createUser"/>
@@ -22,6 +23,19 @@
        <result column="is_deleted" property="isDeleted"/>
        <result column="distribute_user_name" property="distributeUserName"/>
        <result column="distribute_dept_name" property="distributeDeptName"/>
    </resultMap>
    <resultMap id="gdTaskResultExcelResultMap" type="org.sxkj.gd.workorder.excel.GdTaskResultExcel">
        <result column="patrol_task_id" property="patrolTaskId"/>
        <result column="result_code" property="resultCode"/>
        <result column="result_url" property="resultUrl"/>
        <result column="shoot_time" property="shootTime"/>
        <result column="photo_data" property="photoData"/>
        <result column="longitude" property="longitude"/>
        <result column="latitude" property="latitude"/>
        <result column="distribute_status" property="distributeStatus"/>
        <result column="area_code" property="areaCode"/>
        <result column="is_deleted" property="isDeleted"/>
    </resultMap>
@@ -42,7 +56,7 @@
    </select>
    <select id="exportGdTaskResult" resultType="org.sxkj.gd.workorder.excel.GdTaskResultExcel">
    <select id="exportGdTaskResult" resultMap="gdTaskResultExcelResultMap">
        SELECT * FROM ja_gd_task_result ${ew.customSqlSegment}
    </select>
drone-service/drone-gd/src/main/java/org/sxkj/gd/workorder/param/GdClueEventDistributeParam.java
New file
@@ -0,0 +1,59 @@
package org.sxkj.gd.workorder.param;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import javax.validation.constraints.NotBlank;
import javax.validation.constraints.NotNull;
@Data
public class GdClueEventDistributeParam {
    /**
     * 成果ID
     */
    @ApiModelProperty(value = "成果ID", required = true)
    @NotNull(message = "成果ID不能为空")
    private Long resultId;
    /**
     * 工单任务ID
     */
    @ApiModelProperty(value = "工单任务ID", required = true)
    @NotNull(message = "工单任务ID不能为空")
    private Long workOrderId;
    /**
     * 工单处置人
     */
    @ApiModelProperty(value = "工单处置人", required = true)
    @NotBlank(message = "工单处置人不能为空")
    private String disposeUser;
    /**
     * 处置部门
     */
    @ApiModelProperty(value = "处置部门", required = true)
    @NotBlank(message = "处置部门不能为空")
    private String disposeDept;
    /**
     * 经度
     */
    @ApiModelProperty(value = "经度", required = true)
    @NotNull(message = "经度不能为空")
    private Double longitude;
    /**
     * 纬度
     */
    @ApiModelProperty(value = "纬度", required = true)
    @NotNull(message = "纬度不能为空")
    private Double latitude;
    /**
     * 区域编码
     */
    @ApiModelProperty(value = "区域编码")
    private String areaCode;
}
drone-service/drone-gd/src/main/java/org/sxkj/gd/workorder/param/GdClueEventRejectParam.java
New file
@@ -0,0 +1,17 @@
package org.sxkj.gd.workorder.param;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import javax.validation.constraints.NotNull;
@Data
public class GdClueEventRejectParam {
    /**
     * 事件ID
     */
    @ApiModelProperty(value = "事件ID", required = true)
    @NotNull(message = "事件ID不能为空")
    private Long eventId;
}
drone-service/drone-gd/src/main/java/org/sxkj/gd/workorder/service/IGdClueEventService.java
@@ -18,6 +18,8 @@
import com.baomidou.mybatisplus.core.conditions.Wrapper;
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.GdClueEventVO;
import org.sxkj.gd.workorder.excel.GdClueEventExcel;
import com.baomidou.mybatisplus.core.metadata.IPage;
@@ -40,6 +42,21 @@
     */
    IPage<GdClueEventVO> selectGdClueEventPage(IPage<GdClueEventVO> page, GdClueEventVO gdClueEvent);
    /**
     * 分发事件
     *
     * @param distributeParam
     * @return
     */
    boolean distributeClueEvent(GdClueEventDistributeParam distributeParam);
    /**
     * 驳回事件
     *
     * @param rejectParam
     * @return
     */
    boolean rejectClueEvent(GdClueEventRejectParam rejectParam);
    /**
     * 导出数据
drone-service/drone-gd/src/main/java/org/sxkj/gd/workorder/service/impl/GdClueEventServiceImpl.java
@@ -16,15 +16,25 @@
 */
package org.sxkj.gd.workorder.service.impl;
import org.sxkj.gd.workorder.entity.GdClueEventEntity;
import org.sxkj.gd.workorder.vo.GdClueEventVO;
import org.sxkj.gd.workorder.excel.GdClueEventExcel;
import org.sxkj.gd.workorder.mapper.GdClueEventMapper;
import org.sxkj.gd.workorder.service.IGdClueEventService;
import org.springframework.stereotype.Service;
import com.baomidou.mybatisplus.core.conditions.Wrapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import lombok.AllArgsConstructor;
import org.springblade.core.secure.utils.AuthUtil;
import org.springblade.core.tool.utils.StringUtil;
import org.sxkj.gd.workorder.entity.GdClueEventEntity;
import org.sxkj.gd.workorder.entity.GdTaskResultEntity;
import org.sxkj.gd.workorder.excel.GdClueEventExcel;
import org.sxkj.gd.workorder.mapper.GdClueEventMapper;
import org.sxkj.gd.workorder.param.GdClueEventDistributeParam;
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.GdClueEventVO;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import org.springblade.core.mp.base.BaseServiceImpl;
import java.util.Date;
import java.util.List;
/**
@@ -34,13 +44,82 @@
 * @since 2026-01-14
 */
@Service
@AllArgsConstructor
public class GdClueEventServiceImpl extends BaseServiceImpl<GdClueEventMapper, GdClueEventEntity> implements IGdClueEventService {
    private final IGdTaskResultService gdTaskResultService;
    @Override
    public IPage<GdClueEventVO> selectGdClueEventPage(IPage<GdClueEventVO> page, GdClueEventVO gdClueEvent) {
        return page.setRecords(baseMapper.selectGdClueEventPage(page, gdClueEvent));
    }
    @Override
    @Transactional(rollbackFor = Exception.class)
    public boolean distributeClueEvent(GdClueEventDistributeParam distributeParam) {
        GdTaskResultEntity taskResult = gdTaskResultService.getById(distributeParam.getResultId());
        if (taskResult == null || (taskResult.getIsDeleted() != null && taskResult.getIsDeleted() != 0)) {
            throw new RuntimeException("成果不存在");
        }
        if (taskResult.getDistributeStatus() != null && taskResult.getDistributeStatus() == 1) {
            throw new RuntimeException("成果已分发,无法再次分发");
        }
        GdClueEventEntity clueEvent = new GdClueEventEntity();
        clueEvent.setResultId(distributeParam.getResultId());
        clueEvent.setWorkOrderId(distributeParam.getWorkOrderId());
        clueEvent.setDisposeUser(distributeParam.getDisposeUser());
        clueEvent.setDisposeDept(distributeParam.getDisposeDept());
        clueEvent.setLongitude(distributeParam.getLongitude());
        clueEvent.setLatitude(distributeParam.getLatitude());
        clueEvent.setEventStatus(1);
        if (StringUtil.isBlank(distributeParam.getAreaCode())) {
            clueEvent.setAreaCode(taskResult.getAreaCode());
        } else {
            clueEvent.setAreaCode(distributeParam.getAreaCode());
        }
        clueEvent.setCreateUser(AuthUtil.getUserId());
        clueEvent.setCreateDept(Long.valueOf(AuthUtil.getDeptId()));
        clueEvent.setCreateTime(new Date());
        if (!save(clueEvent)) {
            throw new RuntimeException("事件分发失败");
        }
        taskResult.setDistributeStatus(1);
        taskResult.setUpdateUser(AuthUtil.getUserId());
        taskResult.setUpdateTime(new Date());
        if (!gdTaskResultService.updateById(taskResult)) {
            throw new RuntimeException("成果状态更新失败");
        }
        return true;
    }
    @Override
    @Transactional(rollbackFor = Exception.class)
    public boolean rejectClueEvent(GdClueEventRejectParam rejectParam) {
        GdClueEventEntity clueEvent = getById(rejectParam.getEventId());
        if (clueEvent == null || (clueEvent.getIsDeleted() != null && clueEvent.getIsDeleted() != 0)) {
            throw new RuntimeException("事件不存在");
        }
        if (clueEvent.getEventStatus() == null || clueEvent.getEventStatus() != 1) {
            throw new RuntimeException("事件当前状态无法驳回");
        }
        clueEvent.setEventStatus(2);
        clueEvent.setUpdateUser(AuthUtil.getUserId());
        clueEvent.setUpdateTime(new Date());
        if (!updateById(clueEvent)) {
            throw new RuntimeException("事件驳回失败");
        }
        GdTaskResultEntity taskResult = gdTaskResultService.getById(clueEvent.getResultId());
        if (taskResult == null || (taskResult.getIsDeleted() != null && taskResult.getIsDeleted() != 0)) {
            throw new RuntimeException("成果不存在");
        }
        taskResult.setDistributeStatus(2);
        taskResult.setUpdateUser(AuthUtil.getUserId());
        taskResult.setUpdateTime(new Date());
        if (!gdTaskResultService.updateById(taskResult)) {
            throw new RuntimeException("成果状态更新失败");
        }
        return true;
    }
    @Override
    public List<GdClueEventExcel> exportGdClueEvent(Wrapper<GdClueEventEntity> queryWrapper) {