Browse Source

调整逻辑

lyq 1 year ago
parent
commit
c9affd6981

+ 28 - 33
src/main/java/com/sooka/sponest/event/centereventteventcatalogue/controller/FireIncidentController.java

@@ -9,10 +9,9 @@ import com.ruoyi.common.core.web.domain.AjaxResult;
 import com.ruoyi.common.security.utils.SecurityUtils;
 import com.ruoyi.system.api.model.LoginUser;
 import com.sooka.sponest.event.centereventteventcatalogue.domain.DaHuaEventBO;
-import com.sooka.sponest.event.centereventteventcatalogue.domain.RemoteFireVO;
+import com.sooka.sponest.event.centereventteventcatalogue.domain.FireEventVO;
 import com.sooka.sponest.event.centereventteventcatalogue.domain.sensor.SensorEventVo;
 import com.sooka.sponest.event.centereventteventcatalogue.service.AlarmEventService;
-import com.sooka.sponest.event.centereventteventcatalogue.service.IFireIncidentService;
 import com.sooka.sponest.event.centereventteventtype.domain.CentereventTEventtype;
 import com.sooka.sponest.event.centereventteventtype.service.ICentereventTEventtypeService;
 import com.sooka.sponest.event.centereventtreportmessage.domain.CentereventTReportmessage;
@@ -42,9 +41,6 @@ public class FireIncidentController {
     private ICentereventTReportmessageService centereventTReportmessageService;
 
     @Autowired
-    private IFireIncidentService fireIncidentService;
-
-    @Autowired
     private ICentereventTEventtypeService centereventTEventtypeService;
 
     /**
@@ -62,7 +58,7 @@ public class FireIncidentController {
             logger.error(e.getMessage());
         }
         if (StringUtils.isBlank(eventCode)) {
-            eventCode = String.valueOf(System.currentTimeMillis()) + "_";
+            eventCode = System.currentTimeMillis() + "_";
         }
         try {
             String[] array = eventCode.split("_");
@@ -104,47 +100,46 @@ public class FireIncidentController {
     }
 
     /**
-     * 上报事件
+     * 119事件上报
      *
-     * @param RemoteFireVO
+     * @param fireEventVO
      * @return
      */
     @PostMapping("/insert3rdSystemEvent")
-    public AjaxResult insert3rdSystemEvent(@Validated @RequestBody RemoteFireVO remoteFireVO) {
+    public R insert3rdSystemEvent(@Validated @RequestBody FireEventVO fireEventVO) {
+        // 验证token
+        LoginUser loginUser = SecurityUtils.getLoginUser();
+        if (StringUtils.isNull(loginUser)) {
+            logger.error("权限认证失败---{}", fireEventVO);
+            return R.fail("权限认证失败");
+        }
+        // 根据事件小类,反查事件大类
+        CentereventTEventtype eventtype = centereventTEventtypeService.selectCentereventTEventtypeById(fireEventVO.getEventType());
+        if (StringUtils.isNull(eventtype)) {
+            logger.error("不支持的事件类型---{}", fireEventVO);
+            return R.fail("不支持的事件类型");
+        }
         StringBuilder eventCode = new StringBuilder();
-        //业务处理
         try {
-            // 增加判断,防止没有token时空指针异常。
-            LoginUser loginUser = SecurityUtils.getLoginUser();
-            if(StringUtils.isNull(loginUser)){
-                return AjaxResult.error(20001,"权限认证失败");
-            }
-
-            //根据事件小类,反查事件大类
-            CentereventTEventtype eventtype = centereventTEventtypeService.selectCentereventTEventtypeById(remoteFireVO.getEventType());
-            if (StringUtils.isNull(eventtype)) {
-                return AjaxResult.error(20002, "参数错误");
-            }
-            remoteFireVO.setEventSupType(eventtype.getParentId());
-            //处理上报逻辑
-            eventCode.append(fireIncidentService.insertFireIncident(remoteFireVO, loginUser));
+            fireEventVO.setEventSupType(eventtype.getParentId());
+            // 处理上报逻辑
+            eventCode.append(alarmEventService.insert3rdSystemEvent(fireEventVO));
         } catch (Exception e) {
             logger.error(e.getMessage());
-            return AjaxResult.error(40001, "上报失败");
         }
-        //写入报文
-        try{
-            if (StringUtils.isBlank(eventCode.toString())) {
-                eventCode.append(System.currentTimeMillis());
-            }
+        if (StringUtils.isBlank(eventCode.toString())) {
+            eventCode.append(System.currentTimeMillis());
+        }
+        // 写入报文
+        try {
             CentereventTReportmessage tReportMessage = new CentereventTReportmessage();
             tReportMessage.setId(eventCode.toString());
-            tReportMessage.setSource("第三方上传-" + remoteFireVO.getEventType());
-            tReportMessage.setContext(JSON.toJSONString(remoteFireVO));
+            tReportMessage.setSource("119接处警-" + eventtype.getEventTypeName());
+            tReportMessage.setContext(JSON.toJSONString(fireEventVO));
             centereventTReportmessageService.insertCentereventTReportmessage(tReportMessage);
         } catch (Exception e) {
             logger.error(e.getMessage());
         }
-        return AjaxResult.success("上报成功");
+        return R.ok(null, "接收成功");
     }
 }

+ 12 - 6
src/main/java/com/sooka/sponest/event/centereventteventcatalogue/domain/RemoteFireVO.java

@@ -1,12 +1,12 @@
 package com.sooka.sponest.event.centereventteventcatalogue.domain;
 
 import com.fasterxml.jackson.annotation.JsonFormat;
-import com.sooka.sponest.event.centereventteventcatalogue.domain.dahua.InfoVO;
 import lombok.AllArgsConstructor;
 import lombok.Data;
 import lombok.NoArgsConstructor;
 
 import javax.validation.constraints.NotBlank;
+import javax.validation.constraints.NotEmpty;
 import javax.validation.constraints.NotNull;
 import javax.validation.constraints.Pattern;
 import java.util.Date;
@@ -15,7 +15,7 @@ import java.util.List;
 @Data
 @AllArgsConstructor
 @NoArgsConstructor
-public class RemoteFireVO {
+public class FireEventVO {
 
     /**
      * 事件名称
@@ -24,13 +24,13 @@ public class RemoteFireVO {
     private String eventName;
 
     /**
-     * 事件详细类型( 101森林火情、102秸秆禁烧、103建筑物火情、1002消防占道、510水压监测异常、1001电瓶车进电梯)
+     * 事件小类( 101森林火情、102秸秆禁烧、103建筑物火情、1002消防占道、510水压监测异常、1001电瓶车进电梯)
      */
     @NotBlank(message = "事件类型不能为空")
     private String eventType;
 
     /**
-     * 事件
+     * 事件
      */
     private String eventSupType;
 
@@ -74,8 +74,14 @@ public class RemoteFireVO {
     private String eventLatitude;
 
     /**
-     * 事件图片
+     * 事件图片-原路径
      */
-    @NotNull(message = "事件图片不能为空")
+    @NotEmpty(message = "事件图片不能为空")
     private List<String> eventPicture;
+
+    /**
+     * 事件图片-转换路径
+     */
+    @NotEmpty(message = "事件图片不能为空")
+    private List<String> pictureUrlList;
 }

+ 4 - 5
src/main/java/com/sooka/sponest/event/centereventteventcatalogue/service/AlarmEventService.java

@@ -1,16 +1,13 @@
 package com.sooka.sponest.event.centereventteventcatalogue.service;
 
 import com.dahuatech.icc.exception.ClientException;
-import com.sooka.sponest.event.centereventteventcatalogue.domain.CentereventTEventcatalogue;
 import com.sooka.sponest.event.centereventteventcatalogue.domain.DaHuaEventBO;
+import com.sooka.sponest.event.centereventteventcatalogue.domain.FireEventVO;
 import com.sooka.sponest.event.centereventteventcatalogue.domain.dahua.DaHuaFireEventVO;
 import com.sooka.sponest.event.centereventteventcatalogue.domain.dahua.DaHuaOtherEventVO;
 import com.sooka.sponest.event.centereventteventcatalogue.domain.haikang.EventsVo;
 import com.sooka.sponest.event.centereventteventcatalogue.domain.haikang.HaiKangEventVo;
 import com.sooka.sponest.event.centereventteventcatalogue.domain.sensor.SensorEventVo;
-import com.sooka.sponest.monitor.api.domain.CenterdataTAidevicedept;
-
-import java.util.List;
 
 public interface AlarmEventService {
 
@@ -34,5 +31,7 @@ public interface AlarmEventService {
     // 传感器事件
     String insertSensorEvent(SensorEventVo sensorEventVo);
 
-    String getFunction(CentereventTEventcatalogue centereventTEventcatalogue, List<CenterdataTAidevicedept> listDept);
+
+    // 119接处警
+    String insert3rdSystemEvent(FireEventVO fireEventVO);
 }

+ 0 - 8
src/main/java/com/sooka/sponest/event/centereventteventcatalogue/service/IFireIncidentService.java

@@ -1,8 +0,0 @@
-package com.sooka.sponest.event.centereventteventcatalogue.service;
-
-import com.ruoyi.system.api.model.LoginUser;
-import com.sooka.sponest.event.centereventteventcatalogue.domain.RemoteFireVO;
-
-public interface IFireIncidentService {
-    String insertFireIncident(RemoteFireVO remoteFireVO, LoginUser loginUser);
-}

+ 38 - 10
src/main/java/com/sooka/sponest/event/centereventteventcatalogue/service/impl/AlarmEventServiceImpl.java

@@ -9,11 +9,11 @@ import com.ruoyi.common.core.utils.SpringUtils;
 import com.ruoyi.common.core.utils.StringUtils;
 import com.ruoyi.common.core.utils.uuid.IdUtils;
 import com.ruoyi.common.security.utils.SecurityUtils;
-import com.ruoyi.system.api.model.LoginUser;
 import com.sooka.sponest.event.centereventtdeptevent.domain.CentereventDeptEvent;
 import com.sooka.sponest.event.centereventtdeptevent.service.ICentereventDeptEventService;
 import com.sooka.sponest.event.centereventteventcatalogue.domain.CentereventTEventcatalogue;
 import com.sooka.sponest.event.centereventteventcatalogue.domain.DaHuaEventBO;
+import com.sooka.sponest.event.centereventteventcatalogue.domain.FireEventVO;
 import com.sooka.sponest.event.centereventteventcatalogue.domain.dahua.DaHuaFireEventVO;
 import com.sooka.sponest.event.centereventteventcatalogue.domain.dahua.DaHuaOtherEventVO;
 import com.sooka.sponest.event.centereventteventcatalogue.domain.dahua.PictureVO;
@@ -176,13 +176,6 @@ public class AlarmEventServiceImpl implements AlarmEventService {
         return centereventTEventcatalogue.getEventCode();
     }
 
-    @Override
-    public String getFunction(CentereventTEventcatalogue centereventTEventcatalogue, List<CenterdataTAidevicedept> listDept) {
-        CentereventTEventcatalogue eventcatalogue = this.insertEventCatalogue(centereventTEventcatalogue);
-        this.insertEventDept(eventcatalogue, listDept);
-        return this.insertEventLog(eventcatalogue);
-    }
-
     // 事件目录
     private CentereventTEventcatalogue insertEventCatalogue(CentereventTEventcatalogue eventcatalogue) {
         //生成uuid
@@ -210,10 +203,11 @@ public class AlarmEventServiceImpl implements AlarmEventService {
             deptEvent.setIsUrged(SYS_ISURGE_2);
             deptEvent.setEventStatus(eventcatalogue.getEventStatus());
             deptEvent.setEventStatusValue(eventcatalogue.getEventStatusValue());
-            deptEvent.setDeptHandleType(DEPT_HANDLE_TYPE_2);
-            if(REPORTING_SOURCE_5.equals(eventcatalogue.getReportSource())){
+            if (REPORTING_SOURCE_5.equals(eventcatalogue.getReportSource())) {
                 deptEvent.setDeptHandleType(DEPT_HANDLE_TYPE_1);
                 deptEvent.setCreateBy(eventcatalogue.getCreateBy());
+            } else {
+                deptEvent.setDeptHandleType(DEPT_HANDLE_TYPE_2);
             }
             deptEvent.setCreateName(eventcatalogue.getCreateName());
             deptEvent.setCreateTime(eventcatalogue.getCreateTime());
@@ -421,4 +415,38 @@ public class AlarmEventServiceImpl implements AlarmEventService {
         }
         return centereventTEventcatalogue.getEventCode() + "_" + eventtype.getEventTypeName();
     }
+
+    /**
+     * 119平台上报事件
+     *
+     * @param fireEventVO
+     * @return
+     */
+    @Override
+    public String insert3rdSystemEvent(FireEventVO fireEventVO) {
+        // 事件信息
+        CentereventTEventcatalogue eventcatalogue = new CentereventTEventcatalogue(fireEventVO.getEventSupType(), fireEventVO.getEventType(), fireEventVO.getEventName(), fireEventVO.getEventDescription(),
+                fireEventVO.getEventLongitude(), fireEventVO.getEventLatitude(), fireEventVO.getEventReporter(), fireEventVO.getEventReportTime(), fireEventVO.getEventLocation(), REPORTING_SOURCE_5,
+                "签收", FOREST_EVENT_STATUS_2, SecurityUtils.getLoginUser().getSysUser().getUserId().toString(), SecurityUtils.getLoginUser().getSysUser().getNickName(), DateUtils.getNowDate());
+        eventcatalogue.setDeptId(SecurityUtils.getLoginUser().getSysUser().getDeptId());
+        eventcatalogue.setDeptName(SecurityUtils.getLoginUser().getSysUser().getDeptNames());
+        eventcatalogue = this.insertEventCatalogue(eventcatalogue);
+        // 事件部门
+        List<CenterdataTAidevicedept> listDept = new ArrayList<>();
+        listDept.add(new CenterdataTAidevicedept(eventcatalogue.getDeptId(), eventcatalogue.getDeptName()));
+        this.insertEventDept(eventcatalogue, listDept);
+        String logId = this.insertEventLog(eventcatalogue);
+        List<CenterdataTAttach> attachList = new ArrayList<>();
+        for (String picture : fireEventVO.getPictureUrlList()) {
+            CenterdataTAttach attach = new CenterdataTAttach();
+            attach.setBusId(logId);
+            attach.setAttachPath(picture);
+            attach.setBusIndx(BUS_INDEX_1);
+            attach.setBusSource("3RD");
+            attach.setFileType(FILE_TYPE_1);
+            attachList.add(attach);
+        }
+        remoteDataService.delAndInsertBatch(JSON.toJSONString(attachList));
+        return eventcatalogue.getEventCode();
+    }
 }

+ 0 - 93
src/main/java/com/sooka/sponest/event/centereventteventcatalogue/service/impl/FireInsidentServiceImpl.java

@@ -1,93 +0,0 @@
-package com.sooka.sponest.event.centereventteventcatalogue.service.impl;
-
-import com.alibaba.fastjson.JSON;
-import com.ruoyi.common.core.utils.DateUtils;
-import com.ruoyi.common.core.utils.SpringUtils;
-import com.ruoyi.common.core.utils.StringUtils;
-import com.ruoyi.common.core.utils.file.FilePrefixUtils;
-import com.ruoyi.system.api.RemoteFileService;
-import com.ruoyi.system.api.domain.SysFile;
-import com.ruoyi.system.api.model.LoginUser;
-import com.sooka.sponest.event.centereventteventcatalogue.domain.CentereventTEventcatalogue;
-import com.sooka.sponest.event.centereventteventcatalogue.domain.RemoteFireVO;
-import com.sooka.sponest.event.centereventteventcatalogue.service.AlarmEventService;
-import com.sooka.sponest.event.centereventteventcatalogue.service.IFireIncidentService;
-import com.sooka.sponest.event.remoteapi.RemoteDataService;
-import com.sooka.sponest.event.remoteapi.domain.CenterdataTAttach;
-import com.sooka.sponest.monitor.api.domain.CenterdataTAidevicedept;
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
-import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.stereotype.Service;
-import org.springframework.web.multipart.MultipartFile;
-
-import java.text.SimpleDateFormat;
-import java.util.ArrayList;
-import java.util.List;
-
-import static com.sooka.sponest.event.utils.EventConstants.*;
-
-@Service
-public class FireInsidentServiceImpl implements IFireIncidentService {
-
-    Logger logger = LoggerFactory.getLogger(FireInsidentServiceImpl.class);
-
-    @Autowired
-    private AlarmEventService alarmEventService;
-
-    @Autowired
-    private RemoteDataService remoteDataService;
-
-    /**
-     * 119平台上报事件
-     *
-     * @param remoteFireVO
-     * @param loginUser
-     * @return
-     */
-    @Override
-    public String insertFireIncident(RemoteFireVO remoteFireVO, LoginUser loginUser) {
-        String userId = new StringBuilder().append(loginUser.getSysUser().getUserId()).toString();
-        String nickName = new StringBuilder().append(loginUser.getSysUser().getNickName()).toString();
-        // 事件目录
-        CentereventTEventcatalogue eventcatalogue = new CentereventTEventcatalogue(
-                remoteFireVO.getEventSupType(),
-                remoteFireVO.getEventType(),
-                null == remoteFireVO.getEventName() || "".equals(remoteFireVO.getEventName()) ? remoteFireVO.getEventLocation() + new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(remoteFireVO.getEventReportTime()) + remoteFireVO.getEventType() : remoteFireVO.getEventName(),
-                remoteFireVO.getEventDescription(),
-                remoteFireVO.getEventLongitude(),
-                remoteFireVO.getEventLatitude(),
-                remoteFireVO.getEventReporter(),
-                remoteFireVO.getEventReportTime(),
-                remoteFireVO.getEventLocation(),
-                REPORTING_SOURCE_5, "签收", FOREST_EVENT_STATUS_2, userId, nickName, DateUtils.getNowDate());
-        eventcatalogue.setDeptId(loginUser.getSysUser().getDeptId());
-        eventcatalogue.setDeptName(loginUser.getSysUser().getDeptNames());
-    // 事件信息
-        //后续应该修改为调用接口获取部门信息
-        List<CenterdataTAidevicedept> listDept = new ArrayList<>();
-        listDept.add(new CenterdataTAidevicedept(loginUser.getSysUser().getDeptId(), loginUser.getSysUser().getDeptNames()));
-        String logId = alarmEventService.getFunction(eventcatalogue, listDept);
-
-
-
-        if(StringUtils.isNotEmpty(remoteFireVO.getEventPicture())){
-            List<CenterdataTAttach> attachList = new ArrayList<>();
-            for (String picture : remoteFireVO.getEventPicture()) {
-
-                MultipartFile multipartFile = FilePrefixUtils.urlToMultipartFile(picture, System.currentTimeMillis() + ".jpg");
-                SysFile sysFile = SpringUtils.getBean(RemoteFileService.class).upload(multipartFile).getData();
-
-                CenterdataTAttach tAttach = new CenterdataTAttach();
-                tAttach.setBusId(logId);
-                tAttach.setAttachPath(sysFile.getUrl());
-                tAttach.setBusIndx(BUS_INDEX_1);
-                tAttach.setBusSource("platform - 119");
-                tAttach.setFileType(FILE_TYPE_1);
-                attachList.add(tAttach);
-            }
-            remoteDataService.delAndInsertBatch(JSON.toJSONString(attachList));
-        }
-        return eventcatalogue.getEventCode();
-    }
-}