浏览代码

首页-报警信息列表-新增

sunhh 1 年之前
父节点
当前提交
7b0da7f4b7

+ 2 - 1
business-service/src/main/java/com/ozs/service/mapper/MsgAlarmMapper.java

@@ -37,7 +37,6 @@ public interface MsgAlarmMapper extends BaseMapper<MsgAlarm> {
 
     MsgAlarm selectByCameraCode(@Param("cameraCode") String cameraCode);
 
-
     List<MsgAlarm> selectMsgAlarmList(MsgAlarmVo msgAlarmVo);
 
     MsgAlarm getByAlarmId(@Param("alarmId") String alarmId);
@@ -49,4 +48,6 @@ public interface MsgAlarmMapper extends BaseMapper<MsgAlarm> {
     Integer countWJC(MsgAlarmVo msgAlarmVo);
 
     List<MsgAlarm> queryAlarmInfoByAfterTenMinute();
+
+    List<MsgAlarm> selectMsgAlarmListHome(MsgAlarmVo msgAlarmVo);
 }

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

@@ -50,4 +50,6 @@ public interface MsgAlarmService extends IService<MsgAlarm> {
     List<MsgAlarm> msgAlarmList(MsgAlarmVo msgAlarmVo);
 
     List<MsgAlarm> queryAlarmInfoByAfterTenMinute();
+
+    IPage<MsgAlarm> queryPageHome(MsgAlarmVo msgAlarmVo);
 }

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

@@ -139,4 +139,17 @@ public class MsgAlarmServiceImpl extends ServiceImpl<MsgAlarmMapper, MsgAlarm> i
     public List<MsgAlarm> queryAlarmInfoByAfterTenMinute() {
         return msgAlarmMapper.queryAlarmInfoByAfterTenMinute();
     }
+
+    @Override
+    public IPage<MsgAlarm> queryPageHome(MsgAlarmVo msgAlarmVo) {
+        int pageNum = Integer.parseInt(msgAlarmVo.getPageNum().toString());
+        int pageSize = Integer.parseInt(msgAlarmVo.getPageSize().toString());
+        com.github.pagehelper.Page<MsgAlarm> page = PageHelper.startPage(pageNum, pageSize)
+                .doSelectPage(() -> msgAlarmMapper.selectMsgAlarmListHome(msgAlarmVo));
+        com.baomidou.mybatisplus.extension.plugins.pagination.Page<MsgAlarm> pageR =
+                new com.baomidou.mybatisplus.extension.plugins.pagination.Page<>(pageNum, pageSize);
+        pageR.setRecords(page.getResult());
+        pageR.setTotal(page.getTotal());
+        return pageR;
+    }
 }

+ 83 - 0
business-service/src/main/resources/mapper/service/MsgAlarmMapper.xml

@@ -286,6 +286,89 @@
         where camera_code = #{cameraCode}
         order by alarm_time desc limit 1
     </select>
+
+    <select id="selectMsgAlarmListHome" resultType="com.ozs.service.entity.MsgAlarm"
+            parameterType="com.ozs.service.entity.vo.MsgAlarmVo">
+        SELECT
+        a.alarm_id AS alarmId,
+        a.alarm_time AS alarmTime,
+        a.alarm_mile AS alarmMile,
+        a.line_dir AS lineDir,
+        a.alarm_type AS alarmType,
+        a.camera_code AS cameraCode,
+        a.id AS id,
+        a.content AS content,
+        a.alarm_confidence AS alarmConfidence,
+        a.alarm_attr AS alarmAttr,
+        a.image_url AS imageUrl,
+        a.released_by AS releasedBy,
+        a.is_lock AS isLock,
+        a.released_time AS releasedTime,
+        a.released_type AS releasedType,
+        a.released_reason AS releasedReason,
+        a.remark AS remark
+        FROM msg_alarm AS a
+            join base_camera_management AS b on a.camera_code=b.camera_code
+            join base_railway_management AS l on b.railway_code=l.railway_code
+        <where>
+            <if test="railwayCode != null and railwayCode != ''">
+                concat(l.railway_name,l.railway_code)
+                like concat("%",#{railwayCode},"%")
+            </if>
+            <if test="beginMile != null and beginMile != 0">
+                and b.begin_mile &gt;=#{beginMile}
+            </if>
+            <if test="endMile != null and endMile != 0">
+                and b.end_mile &lt;=#{endMile}
+            </if>
+            <if test="ids != null and ids.size>0">
+                and a.id in
+                <foreach item="items" collection="ids" separator="," open="(" close=")" index="">
+                    #{items}
+                </foreach>
+            </if>
+            <if test="!dsFlay">
+                and
+                <trim prefix="(" prefixOverrides="or" suffix=")">
+                    <if test="dsUserId != null and dsUserId != ''">
+                        or a.create_by=#{dsUserId}
+                    </if>
+                    <if test="dsDeptId != null and dsDeptId != 0">
+                        or b.dept_id=#{dsDeptId}
+                    </if>
+                    <if test="dsDeptIds != null">
+                        or b.dept_id in
+                        <foreach item="item" collection="dsDeptIds" separator="," open="(" close=")" index="">
+                            #{item}
+                        </foreach>
+                    </if>
+                </trim>
+            </if>
+            <if test="alarmType != null and alarmType != 0">
+                and a.alarm_type=#{alarmType}
+            </if>
+            <if test="alarmMile != null and alarmMile != 0">
+                and a.alarm_mile=#{alarmMile}
+            </if>
+            <if test="isLock != null and isLock != 0">
+                and a.is_lock=#{isLock}
+            </if>
+            <if test="lineDir != null and lineDir != 0">
+                and a.line_dir =#{lineDir}
+            </if>
+            <if test="releasedType != null and releasedType != 0">
+                and a.released_type =#{releasedType}
+            </if>
+            <if test="beginAlarmTime != null and beginAlarmTime != ''">
+                and date_format(a.alarm_time,'%Y-%m-%d') &gt;= date_format(#{beginAlarmTime},'%Y-%m-%d')
+            </if>
+            <if test="endAlarmTime != null and endAlarmTime != ''">
+                AND date_format(a.alarm_time,'%Y-%m-%d') &lt;= date_format(#{endAlarmTime},'%Y-%m-%d')
+            </if>
+        </where>
+        order by a.is_lock desc, a.alarm_time desc
+    </select>
+
     <select id="selectMsgAlarmList" resultType="com.ozs.service.entity.MsgAlarm"
             parameterType="com.ozs.service.entity.vo.MsgAlarmVo">
         SELECT

+ 75 - 0
hazard-admin/src/main/java/com/ozs/web/controller/accountmanagment/MsgAlarmController.java

@@ -164,6 +164,81 @@ public class MsgAlarmController extends BaseController {
         return toAjax(msgWebPushService.read(msgWebPush));
     }
 
+    /**
+     * 首页报警信息列表
+     * 首页左侧报警默认为全部,先按照未解除、已解除排序,然后再按照时间倒序排序
+     *
+     * @param msgAlarmVo
+     * @return
+     */
+    @ApiOperation(value = "首页报警信息列表")
+    @PostMapping("/listHome")
+    @Log(title = "首页", businessType = BusinessType.SELECT)
+    public AjaxResult selectMsgAlarmHome(@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);
+        }
+        IPage<MsgAlarm> page = msgAlarmService.queryPageHome(msgAlarmVo);
+        page.setTotal(page.getTotal());
+        page.setCurrent(page.getCurrent());
+        page.setPages(page.getPages());
+        if (!ObjectUtils.isEmpty(page) && page.getRecords().size() > 0) {
+            List<MsgAlarm> dto1 = page.getRecords().stream().map(o -> {
+                String[] split = o.getImageUrl().split(";");
+                ArrayList<String> objects = new ArrayList<>(Arrays.asList(split));
+                o.setImageUrls(objects);
+                LambdaQueryWrapper<BaseCameraManagement> cameraManagementLambdaQueryWrapper = new LambdaQueryWrapper<BaseCameraManagement>();
+                if (!ObjectUtils.isEmpty(o.getCameraCode())) {
+                    cameraManagementLambdaQueryWrapper.eq(BaseCameraManagement::getCameraCode, o.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);
+                o.setRailwayName(baseRailwayManagement.getRailwayName());
+                if (StringUtils.isNotEmpty(o.getReleasedBy())) {
+                    BaseUser user = baseUserService.getUser(o.getReleasedBy());
+                    o.setReleasedByName(user.getNickName());
+                }
+                String mils = AppendUtils.stringAppend(cameraManagement.getInstallMile());
+                o.setAlarmMiles(mils);
+                if (!ObjectUtils.isEmpty(cameraManagement.getEndMile())) {
+                    String end = AppendUtils.stringAppend(cameraManagement.getEndMile());
+                    o.setEndMile(end);
+                }
+                if (!ObjectUtils.isEmpty(cameraManagement.getBeginMile())) {
+                    String begin = AppendUtils.stringAppend(cameraManagement.getBeginMile());
+                    o.setBeginMile(begin);
+                }
+                LambdaQueryWrapper<MsgAlarmFrequency> wrapper = new LambdaQueryWrapper<MsgAlarmFrequency>();
+                if (!ObjectUtils.isEmpty(o.getAlarmId())) {
+                    wrapper.eq(MsgAlarmFrequency::getAlarmId, o.getAlarmId());
+                }
+                o.setAlarmCount((int) msgAlarmFrequencyService.count(wrapper));
+                if (!ObjectUtils.isEmpty(o.getReleasedType())) {
+                    o.setReleasedTypeName(o.getReleasedType() == 1 ? "实报" : "误报");
+                }
+                String[] split1 = o.getAlarmAttr().split(",");
+                String stringBuilder = "画面,大小为" + split1[0] + "×" + split1[1] + "," +
+                        "泥石流范围为左上角坐标(" + split1[2] + "," + split1[3] + ")" +
+                        "大小" + split1[4] + "×" + split1[5];
+                o.setAlarmAttr(stringBuilder);
+                return o;
+            }).collect(Collectors.toList());
+            page.setRecords(dto1);
+        }
+        return AjaxResult.success(page);
+    }
+
     /**
      * 报警信息分页
      *