吉安感知网项目-后端
linwei
6 days ago 4abab2cad20762720989747d9b0c4f250d9a6b6e
drone-service/drone-gd/src/main/java/org/sxkj/gd/workorder/service/impl/GdClueEventServiceImpl.java
@@ -19,6 +19,7 @@
import com.baomidou.mybatisplus.core.conditions.Wrapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import lombok.AllArgsConstructor;
import lombok.extern.slf4j.Slf4j;
import org.springblade.core.secure.utils.AuthUtil;
import org.springblade.core.tool.utils.StringUtil;
import org.sxkj.common.constant.WordOrderConstant;
@@ -48,6 +49,7 @@
 * @author lw
 * @since 2026-01-14
 */
@Slf4j
@Service
@AllArgsConstructor
public class GdClueEventServiceImpl extends BaseServiceImpl<GdClueEventMapper, GdClueEventEntity> implements IGdClueEventService {
@@ -83,6 +85,7 @@
         throw new RuntimeException("事件不存在");
      }
      String address = GdGeoAddressUtil.getFormattedAddress(detail.getLongitude(), detail.getLatitude());
      log.info("地址:{}", address);
      if (StringUtil.isNotBlank(address)) {
         detail.setEventLocation(address);
      }
@@ -132,13 +135,14 @@
      clueEvent.setCreateUser(AuthUtil.getUserId());
      clueEvent.setCreateDept(Long.valueOf(AuthUtil.getDeptId()));
      clueEvent.setCreateTime(new Date());
      clueEvent.setEventName(distributeParam.getEventName());
      if (!save(clueEvent)) {
         throw new RuntimeException("事件分发失败");
      }
      taskResult.setDistributeStatus(1);
      taskResult.setUpdateUser(AuthUtil.getUserId());
      taskResult.setUpdateTime(new Date());
      if (!gdTaskResultService.updateById(taskResult)) {
      if (!gdTaskResultService.updateTaskResultById(taskResult)) {
         throw new RuntimeException("成果状态更新失败");
      }
      return true;
@@ -169,10 +173,11 @@
      if (taskResult == null || (taskResult.getIsDeleted() != null && taskResult.getIsDeleted() != 0)) {
         throw new RuntimeException("成果不存在");
      }
      // 使用XML方式更新成果信息(更新所有字段)
      taskResult.setDistributeStatus(targetStatus);
      taskResult.setUpdateUser(AuthUtil.getUserId());
      taskResult.setUpdateTime(new Date());
      if (!gdTaskResultService.updateById(taskResult)) {
      if (!gdTaskResultService.updateTaskResultById(taskResult)) {
         throw new RuntimeException("成果状态更新失败");
      }
      return true;
@@ -187,4 +192,29 @@
      return gdClueEventList;
   }
   /**
    * 对外接口新增或修改事件
    * <p>
    * 步骤:
    * 1. 生成事件编号(使用SJ前缀)
    * 2. 设置事件编号到实体
    * 3. 保存或更新事件信息
    * </p>
    *
    * @param gdClueEvent 事件实体
    * @return 是否操作成功
    */
   @Override
   public boolean saveOrUpdateExternal(GdClueEventEntity gdClueEvent) {
      // 1. 生成事件编号
      String times = OrderNumUtils.initOrderNum(WordOrderConstant.EVENT_NUM_KEY);
      String eventNum = WordOrderConstant.SJ_EVENT_NUM_PREFIX + times;
      // 2. 设置事件编号
      gdClueEvent.setEventNum(eventNum);
      gdClueEvent.setCreateTime(new Date());
      gdClueEvent.setEventStatus(1);
      // 3. 保存或更新
      return saveOrUpdate(gdClueEvent);
   }
}