Преглед изворни кода

添加报警消息导出功能

gao.qiang пре 1 година
родитељ
комит
bfa88c6478

+ 39 - 0
business-service/src/main/java/com/ozs/service/entity/MsgAlarm.java

@@ -44,17 +44,20 @@ public class MsgAlarm extends BaseEntity implements Serializable {
     /**
      * 报警唯一标识
      */
+    @Excel(name = "报警唯一标识")
     private String alarmId;
 
     /**
      * 相机编码
      */
+    @Excel(name = "相机编码")
     private String cameraCode;
 
     /**
      * 报警时间
      */
     @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
+    @Excel(name = "报警时间", width = 30, dateFormat = "yyyy-MM-dd HH:mm:ss")
     private Date alarmTime;
 
     /**
@@ -65,6 +68,7 @@ public class MsgAlarm extends BaseEntity implements Serializable {
     /**
      * 报警内容
      */
+    @Excel(name = "报警内容")
     private String content;
 
     /**
@@ -85,11 +89,13 @@ public class MsgAlarm extends BaseEntity implements Serializable {
     /**
      * 报警病害属性(可以给出泥石流的框定范围)
      */
+    @Excel(name = "报警病害属性")
     private String alarmAttr;
 
     /**
      * 报警图片地址
      */
+    @Excel(name = "报警图片地址")
     private String imageUrl;
 
     /**
@@ -101,6 +107,7 @@ public class MsgAlarm extends BaseEntity implements Serializable {
      * 解除时间
      */
     @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
+    @Excel(name = "解除时间", width = 30, dateFormat = "yyyy-MM-dd HH:mm:ss")
     private Date releasedTime;
 
     /**
@@ -133,6 +140,7 @@ public class MsgAlarm extends BaseEntity implements Serializable {
     /**
      * 备注
      */
+    @Excel(name = "备注")
     private String remark;
 
     /**
@@ -143,12 +151,21 @@ public class MsgAlarm extends BaseEntity implements Serializable {
     /**
      * 解除原因
      */
+    @Excel(name = "解除原因")
     private String releasedReason;
 
+    /**
+     * 解除报警类型名称   1真实报警2误报警
+     */
+    @TableField(exist = false)
+    @Excel(name = "解除报警类型")
+    private String releasedTypeName;
+
     /**
      * 线路名称
      */
     @TableField(exist = false)
+    @Excel(name = "报警线路")
     private String railwayName;
 
     /**
@@ -167,6 +184,7 @@ public class MsgAlarm extends BaseEntity implements Serializable {
      * 报警里程位置字符串形式
      */
     @TableField(exist = false)
+    @Excel(name = "报警里程位置")
     private String alarmMiles;
 
     /**
@@ -185,6 +203,7 @@ public class MsgAlarm extends BaseEntity implements Serializable {
      * 解除人真实姓名
      */
     @TableField(exist = false)
+    @Excel(name = "解除人")
     private String releasedByName;
 
     /**
@@ -198,4 +217,24 @@ public class MsgAlarm extends BaseEntity implements Serializable {
      */
     @TableField(exist = false)
     private String msgId;
+
+    /**
+     * 报警行别字符串(1上行2下行)
+     */
+    @TableField(exist = false)
+    @Excel(name = "报警行别")
+    private String lineDirName;
+
+    /**
+     * 报警病害类型(目前只有1泥石流,后续可扩展使用)
+     */
+    @TableField(exist = false)
+    @Excel(name = "报警病害类型")
+    private String alarmTypeName;
+
+    /**
+     * 报警是否解除 1已解除2未解除
+     */
+    @Excel(name = "报警是否解除")
+    private String  isLockName;
 }

+ 2 - 0
business-service/src/main/java/com/ozs/service/service/MsgAlarmService.java

@@ -51,4 +51,6 @@ public interface MsgAlarmService extends IService<MsgAlarm> {
     Map<String, Integer> statisticsNum(MsgAlarmVo msgAlarmVo);
 
     Integer appAlarmNum(MsgAlarmVo msgAlarmVo);
+
+    List<MsgAlarm> msgAlarmList(MsgAlarmVo msgAlarmVo);
 }

+ 5 - 0
business-service/src/main/java/com/ozs/service/service/impl/MsgAlarmServiceImpl.java

@@ -140,4 +140,9 @@ public class MsgAlarmServiceImpl extends ServiceImpl<MsgAlarmMapper, MsgAlarm> i
     public Integer appAlarmNum(MsgAlarmVo msgAlarmVo) {
         return msgAlarmMapper.countWJC(msgAlarmVo);
     }
+
+    @Override
+    public List<MsgAlarm> msgAlarmList(MsgAlarmVo msgAlarmVo) {
+        return msgAlarmMapper.selectMsgAlarmList(msgAlarmVo);
+    }
 }

+ 6 - 0
hazard-admin/src/main/java/com/ozs/web/controller/accountmanagment/BaseCameraManagementController.java

@@ -473,6 +473,12 @@ public class BaseCameraManagementController extends BaseController {
     @Log(title = "相机台账管理", businessType = BusinessType.EXPORT)
     public void exportBaseAccountManagement(HttpServletResponse response, @RequestBody BaseCameraManagementVo baseCameraManagementVo) {
         baseCameraManagementVo = (BaseCameraManagementVo) dataScoreUtil.setDataScore(getUserId(), baseCameraManagementVo);
+        if (!ObjectUtils.isEmpty(baseCameraManagementVo.getBeginMile())) {
+                baseCameraManagementVo.setBeginMile(baseCameraManagementVo.getBeginMile() * 1000);
+        }
+        if (!ObjectUtils.isEmpty(baseCameraManagementVo.getEndMile())) {
+                baseCameraManagementVo.setEndMile(baseCameraManagementVo.getEndMile() * 1000);
+        }
         List<BaseCameraManagement> baseCameraManagementList = baseCameraManagementService.baseCameraManagementList(baseCameraManagementVo);
         for (BaseCameraManagement baseCameraManagement : baseCameraManagementList) {
             SysDept sysDept = deptService.selectDeptById(baseCameraManagement.getDeptId());

+ 69 - 3
hazard-admin/src/main/java/com/ozs/web/controller/accountmanagment/MsgAlarmController.java

@@ -13,6 +13,7 @@ import com.ozs.common.core.domain.model.LoginUser;
 import com.ozs.common.enums.BusinessType;
 import com.ozs.common.utils.AppendUtils;
 import com.ozs.common.utils.StringUtils;
+import com.ozs.common.utils.file.FileUtils;
 import com.ozs.common.utils.poi.ExcelUtil;
 import com.ozs.service.entity.*;
 import com.ozs.service.entity.vo.*;
@@ -36,6 +37,7 @@ import org.slf4j.LoggerFactory;
 import org.springframework.beans.BeanUtils;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.beans.factory.annotation.Value;
+import org.springframework.http.MediaType;
 import org.springframework.util.CollectionUtils;
 import org.springframework.util.ObjectUtils;
 import org.springframework.web.bind.annotation.GetMapping;
@@ -47,12 +49,14 @@ import org.springframework.web.bind.annotation.RequestHeader;
 import org.springframework.web.bind.annotation.RequestMapping;
 import org.springframework.web.bind.annotation.RequestParam;
 import org.springframework.web.bind.annotation.RestController;
+import org.springframework.web.multipart.MultipartFile;
 
 import javax.annotation.Resource;
 import javax.servlet.http.HttpServletRequest;
 import javax.servlet.http.HttpServletResponse;
 import java.io.File;
 import java.io.FileOutputStream;
+import java.io.InputStream;
 import java.io.OutputStream;
 import java.util.*;
 import java.util.stream.Collectors;
@@ -169,21 +173,21 @@ public class MsgAlarmController extends BaseController {
             if (!msgAlarmVo.getAlarmMile().toString().matches(PATTERN)) {
                 return error("里程位置填写格式不正确!");
             } else {
-                msgAlarmVo.setAlarmMile(msgAlarmVo.getAlarmMile()*1000);
+                msgAlarmVo.setAlarmMile(msgAlarmVo.getAlarmMile() * 1000);
             }
         }
         if (!ObjectUtils.isEmpty(msgAlarmVo.getBeginMile())) {
             if (!msgAlarmVo.getBeginMile().toString().matches(PATTERN)) {
                 return error("监控范围开始里程位置填写格式不正确");
             } else {
-                msgAlarmVo.setBeginMile(msgAlarmVo.getBeginMile()*1000);
+                msgAlarmVo.setBeginMile(msgAlarmVo.getBeginMile() * 1000);
             }
         }
         if (!ObjectUtils.isEmpty(msgAlarmVo.getEndMile())) {
             if (!msgAlarmVo.getEndMile().toString().matches(PATTERN)) {
                 return error("监控范围结束里程位置填写格式不正确");
             } else {
-                msgAlarmVo.setEndMile(msgAlarmVo.getEndMile()*1000);
+                msgAlarmVo.setEndMile(msgAlarmVo.getEndMile() * 1000);
             }
         }
         IPage<MsgAlarm> page = msgAlarmService.queryPage(msgAlarmVo);
@@ -222,12 +226,74 @@ public class MsgAlarmController extends BaseController {
                     wrapper.eq(MsgAlarmFrequency::getAlarmId, o.getAlarmId());
                 }
                 o.setAlarmCount((int) msgAlarmFrequencyService.count(wrapper));
+                o.setReleasedTypeName(o.getReleasedType() == 1 ? "真实报警" : "误报警");
                 return o;
             }).collect(Collectors.toList());
             page.setRecords(dto1);
         }
         return AjaxResult.success(page);
     }
+    
+    /**
+     * 导出报警消息
+     *
+     * @param response
+     */
+    @ApiOperation("导出报警消息")
+    @PostMapping("/exportMsgAlarm")
+    @Log(title = "报警信息管理", businessType = BusinessType.EXPORT)
+    public void exportMsgAlarm(HttpServletResponse response, @RequestBody MsgAlarmVo msgAlarmVo) {
+        msgAlarmVo = (MsgAlarmVo) dataScoreUtil.setDataScore(getUserId(), msgAlarmVo);
+        if (!ObjectUtils.isEmpty(msgAlarmVo.getAlarmMile())) {
+            msgAlarmVo.setAlarmMile(msgAlarmVo.getAlarmMile() * 1000);
+        }
+        if (!ObjectUtils.isEmpty(msgAlarmVo.getBeginMile())) {
+            msgAlarmVo.setBeginMile(msgAlarmVo.getBeginMile() * 1000);
+        }
+        if (!ObjectUtils.isEmpty(msgAlarmVo.getEndMile())) {
+            msgAlarmVo.setEndMile(msgAlarmVo.getEndMile() * 1000);
+        }
+        List<MsgAlarm> msgAlarmList = msgAlarmService.msgAlarmList(msgAlarmVo);
+        for (MsgAlarm msgAlarm : msgAlarmList) {
+            String[] split = msgAlarm.getImageUrl().split(";");
+            ArrayList<String> objects = new ArrayList<>(Arrays.asList(split));
+            msgAlarm.setImageUrls(objects);
+            LambdaQueryWrapper<BaseCameraManagement> cameraManagementLambdaQueryWrapper = new LambdaQueryWrapper<BaseCameraManagement>();
+            if (!ObjectUtils.isEmpty(msgAlarm.getCameraCode())) {
+                cameraManagementLambdaQueryWrapper.eq(BaseCameraManagement::getCameraCode, msgAlarm.getCameraCode());
+            }
+            BaseCameraManagement cameraManagement = baseCameraManagementService.getOne(cameraManagementLambdaQueryWrapper);
+            LambdaQueryWrapper<BaseRailwayManagement> queryWrapper = new LambdaQueryWrapper<BaseRailwayManagement>();
+            if (!ObjectUtils.isEmpty(cameraManagement.getRailwayCode())) {
+                queryWrapper.eq(BaseRailwayManagement::getRailwayCode, cameraManagement.getRailwayCode());
+            }
+            BaseRailwayManagement baseRailwayManagement = baseRailwayManagementService.getOne(queryWrapper);
+            msgAlarm.setRailwayName(baseRailwayManagement.getRailwayName());
+            if (StringUtils.isNotEmpty(msgAlarm.getReleasedBy())) {
+                BaseUser user = baseUserService.getUser(msgAlarm.getReleasedBy());
+                msgAlarm.setReleasedByName(user.getNickName());
+            }
+            String mils = AppendUtils.stringAppend(cameraManagement.getInstallMile());
+            msgAlarm.setAlarmMiles(mils);
+            String end = AppendUtils.stringAppend(cameraManagement.getEndMile());
+            msgAlarm.setEndMile(end);
+            String begin = AppendUtils.stringAppend(cameraManagement.getBeginMile());
+            msgAlarm.setBeginMile(begin);
+            LambdaQueryWrapper<MsgAlarmFrequency> wrapper = new LambdaQueryWrapper<MsgAlarmFrequency>();
+            if (!ObjectUtils.isEmpty(msgAlarm.getAlarmId())) {
+                wrapper.eq(MsgAlarmFrequency::getAlarmId, msgAlarm.getAlarmId());
+            }
+            msgAlarm.setAlarmCount((int) msgAlarmFrequencyService.count(wrapper));
+            if (!ObjectUtils.isEmpty(msgAlarm.getReleasedType())) {
+                msgAlarm.setReleasedTypeName(msgAlarm.getReleasedType() == 1 ? "真实报警" : "误报警");
+            }
+            msgAlarm.setLineDirName(msgAlarm.getLineDir() == 1 ? "上行" : "下行");
+            msgAlarm.setIsLockName(msgAlarm.getIsLock() == 1 ? "已解除" : "未解除");
+            msgAlarm.setAlarmTypeName("泥石流");
+        }
+        ExcelUtil<MsgAlarm> util = new ExcelUtil<>(MsgAlarm.class);
+        util.exportExcel(response, msgAlarmList, "报警信息管理");
+    }
 
     @GetMapping(value = "/getByAlarmId/{alarmId}")
     @ApiOperation("根据报警信息ID获取详细信息-app")

BIN
hazard-admin/src/main/resources/template/baseCameraManagement.xlsx