ソースを参照

服务站大屏

suntianwu 3 年 前
コミット
753e34c3f2

+ 46 - 3
src/main/java/com/care/bigscreen/controller/BigScreenController.java

@@ -247,6 +247,27 @@ public class BigScreenController {
         }
     }
 
+    /**
+     * 服务站大屏的安全事件总计查询
+     */
+    @ApiOperation(value = "服务站大屏的安全事件总计查询", notes = "服务站大屏的安全事件总计查询")
+    @GetMapping("/selectStationBigScreenEventTotal")
+    @ApiImplicitParams(
+            {
+                    @ApiImplicitParam(paramType = "header", required = true, name = "token", dataType = "String", value = "token验证信息"),
+                    @ApiImplicitParam(name = "stationId", value = "站点ID", dataTypeClass = Long.class,required = true)
+            }
+    )
+    public Result<BigScreenEventTotalVO> selectStationBigScreenEventTotal(@RequestHeader("token") String token,Long stationId) {
+        try {
+            BigScreenEventTotalVO bigScreenEventTotalVO =  bigScreenService.selectStationBigScreenEventTotal(stationId);
+            return Result.success(bigScreenEventTotalVO);
+        } catch (Exception e) {
+            log.error("服务站大屏的安全事件总计查询出现异常",e);
+            return Result.error("系统错误,服务站大屏的安全事件总计查询失败");
+        }
+    }
+
     /**
      * 服务站大屏的实时安全事件列表查询
      */
@@ -293,6 +314,27 @@ public class BigScreenController {
         }
     }
 
+    /**
+     * 服务站大屏的用户卡片总计查询
+     */
+    @ApiOperation(value = "服务站大屏的用户卡片总计查询", notes = "服务站大屏的用户卡片总计查询")
+    @GetMapping("/selectStationBigScreenOlderCardTotal")
+    @ApiImplicitParams(
+            {
+                    @ApiImplicitParam(paramType = "header", required = true, name = "token", dataType = "String", value = "token验证信息"),
+                    @ApiImplicitParam(name = "stationId", value = "站点ID", dataTypeClass = Long.class,required = true)
+            }
+    )
+    public Result<BigScreenOlderCardTotalVO> selectStationBigScreenOlderCardTotal(@RequestHeader("token") String token,Long stationId) {
+        try {
+            BigScreenOlderCardTotalVO bigScreenOlderCardTotalVO =  bigScreenService.selectStationBigScreenOlderCardTotal(stationId);
+            return Result.success(bigScreenOlderCardTotalVO);
+        } catch (Exception e) {
+            log.error("服务站大屏的用户卡片总计查询出现异常",e);
+            return Result.error("系统错误,服务站大屏的用户卡片总计查询失败");
+        }
+    }
+
     /**
      * 服务站大屏的用户卡片列表分页查询
      */
@@ -302,12 +344,13 @@ public class BigScreenController {
             {
                     @ApiImplicitParam(paramType = "header", required = true, name = "token", dataType = "String", value = "token验证信息"),
                     @ApiImplicitParam(name = "stationId", value = "站点ID", dataTypeClass = Long.class,required = true),
-                    @ApiImplicitParam(name = "olderName", value = "被监护人姓名", dataTypeClass = String.class,required = false)
+                    @ApiImplicitParam(name = "olderName", value = "被监护人姓名", dataTypeClass = String.class,required = false),
+                    @ApiImplicitParam(name = "isAlarm", value = "是告警:1,不是告警(全部):0", dataTypeClass = String.class,required = false)
             }
     )
-    public PageResult<List<BigScreenOlderDetailVO>> selectBigScreenOlderCardListByPage(@RequestHeader("token") String token,Long stationId,String olderName, PageResVO page) {
+    public PageResult<List<BigScreenOlderDetailVO>> selectBigScreenOlderCardListByPage(@RequestHeader("token") String token,Long stationId,String olderName,String isAlarm, PageResVO page) {
         try {
-            PageUtil<BigScreenOlderDetailVO> bigScreenOlderDetailVOList =  bigScreenService.selectBigScreenOlderCardListByPage(stationId,olderName,page);
+            PageUtil<BigScreenOlderDetailVO> bigScreenOlderDetailVOList =  bigScreenService.selectBigScreenOlderCardListByPage(stationId,olderName,isAlarm,page);
             return  PageResult.success(
                     "查询成功",bigScreenOlderDetailVOList.getListT(),
                     bigScreenOlderDetailVOList.getCurrent(),

+ 16 - 4
src/main/java/com/care/bigscreen/mapper/BigSreenMapper.java

@@ -61,6 +61,11 @@ public interface BigSreenMapper extends BaseMapper<StStation> {
      */
     BigScreenOlderDetailVO selectStationBigScreenOlderDetail(@Param("olderId") Long olderId);
 
+    /**
+     * 服务站大屏的事件总计查询
+     */
+    BigScreenEventTotalVO selectStationBigScreenEventTotal(@Param("stationId") Long stationId);
+
     /**
      * 服务站大屏的实时安全事件列表查询
      */
@@ -75,14 +80,21 @@ public interface BigSreenMapper extends BaseMapper<StStation> {
      */
     List<BigScreenEventVO> selectBigScreenHisEventListByPage(@Param("stationId") Long stationId, @Param("pageUtil") PageUtil<BigScreenEventVO> pageUtil);
 
+
     /**
-     * 服务站大屏的已完成安全事件总记录数
+     * 服务站大屏的告警用户卡片列表总记录数
      */
-    Integer selectBigScreenOlderCardListByCount(@Param("stationId") Long stationId, @Param("olderName") String olderName);
+    BigScreenOlderCardTotalVO selectStationBigScreenOlderCardTotal(@Param("stationId") Long stationId);
+
     /**
-     * 服务站大屏的已完成安全事件列表分页查询
+     * 服务站大屏的用户卡片列表总记录数
+     */
+    Integer selectBigScreenOlderCardListByCount(@Param("stationId") Long stationId, @Param("olderName") String olderName,@Param("isAlarm") String isAlarm);
+
+    /**
+     * 服务站大屏的用户卡片列表分页查询
      */
-    List<BigScreenOlderDetailVO> selectBigScreenOlderCardListByPage(@Param("stationId") Long stationId,@Param("olderName") String olderName, @Param("pageUtil") PageUtil<BigScreenOlderDetailVO> pageUtil);
+    List<BigScreenOlderDetailVO> selectBigScreenOlderCardListByPage(@Param("stationId") Long stationId,@Param("olderName") String olderName,@Param("isAlarm") String isAlarm, @Param("pageUtil") PageUtil<BigScreenOlderDetailVO> pageUtil);
 
 
 }

+ 12 - 2
src/main/java/com/care/bigscreen/service/BigScreenService.java

@@ -58,6 +58,11 @@ public interface BigScreenService {
      */
     BigScreenOlderDetailVO selectStationBigScreenOlderDetail(Long olderId);
 
+    /**
+     * 服务站大屏的事件总计查询
+     */
+    BigScreenEventTotalVO selectStationBigScreenEventTotal(Long stationId);
+
     /**
      * 服务站大屏的实时安全事件列表查询
      */
@@ -69,9 +74,14 @@ public interface BigScreenService {
     PageUtil<BigScreenEventVO> selectBigScreenHisEventListByPage(Long stationId, PageResVO page);
 
     /**
-     * 服务站大屏的已完成安全事件列表分页查询
+     * 服务站大屏的用户卡片总计查询
+     */
+    BigScreenOlderCardTotalVO selectStationBigScreenOlderCardTotal(Long stationId);
+
+    /**
+     * 服务站大屏的用户卡片列表分页查询
      */
-    PageUtil<BigScreenOlderDetailVO> selectBigScreenOlderCardListByPage(Long stationId, String olderName, PageResVO page);
+    PageUtil<BigScreenOlderDetailVO> selectBigScreenOlderCardListByPage(Long stationId, String olderName,String isAlarm, PageResVO page);
 
     /**
      * 调用websocket推送实时事件标识给前端

+ 22 - 4
src/main/java/com/care/bigscreen/service/impl/BigScreenServiceImpl.java

@@ -92,6 +92,16 @@ public class BigScreenServiceImpl implements BigScreenService {
         return bigSreenMapper.selectStationBigScreenOlderDetail(olderId);
     }
 
+
+    /**
+     * 服务站大屏的安全事件总计查询
+     * @return 搜索符合条件的大屏统计数据
+     */
+    @Override
+    public BigScreenEventTotalVO selectStationBigScreenEventTotal(Long stationId){
+        return bigSreenMapper.selectStationBigScreenEventTotal(stationId);
+    }
+
     /**
      * 服务站大屏的实时安全事件列表查询
      */
@@ -120,21 +130,29 @@ public class BigScreenServiceImpl implements BigScreenService {
 
     }
 
+    /**
+     * 服务站大屏的用户卡片总计查询
+     * @return 搜索符合条件的大屏统计数据
+     */
+    @Override
+    public BigScreenOlderCardTotalVO selectStationBigScreenOlderCardTotal(Long stationId){
+        return bigSreenMapper.selectStationBigScreenOlderCardTotal(stationId);
+    }
 
     /**
-     * 服务站大屏的已完成安全事件列表分页查询
+     * 服务站大屏的用户卡片列表分页查询
      */
     @Override
-    public PageUtil<BigScreenOlderDetailVO> selectBigScreenOlderCardListByPage(Long stationId, String olderName, PageResVO page) {
+    public PageUtil<BigScreenOlderDetailVO> selectBigScreenOlderCardListByPage(Long stationId, String olderName,String isAlarm, PageResVO page) {
         //1、创建一个分页工具对象(然后对分页数据进行整理)
         PageUtil<BigScreenOlderDetailVO> pageUtil = new PageUtil<>();
         //2、更新当前页面大小
         pageUtil.setPageSize(page.getPageSize());
         //3、获取多条件查询总记录数
-        pageUtil.setTotal(bigSreenMapper.selectBigScreenOlderCardListByCount(stationId,olderName));
+        pageUtil.setTotal(bigSreenMapper.selectBigScreenOlderCardListByCount(stationId,olderName,isAlarm));
         //4、更新当前页码(此时页码将不会再发生越界问题)
         pageUtil.setCurrent(page.getCurrent());
-        List<BigScreenOlderDetailVO> bigScreenOlderDetailVOList = bigSreenMapper.selectBigScreenOlderCardListByPage(stationId,olderName, pageUtil);
+        List<BigScreenOlderDetailVO> bigScreenOlderDetailVOList = bigSreenMapper.selectBigScreenOlderCardListByPage(stationId,olderName,isAlarm, pageUtil);
         pageUtil.setListT(bigScreenOlderDetailVOList);
         return pageUtil;
     }

+ 25 - 0
src/main/java/com/care/bigscreen/vo/BigScreenEventTotalVO.java

@@ -0,0 +1,25 @@
+package com.care.bigscreen.vo;
+
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+
+/**
+ * 服务站大屏事件总计响应类
+ *
+ * @author stw
+ * @since 2021-05-20
+ */
+@Data
+@ApiModel(value = "服务站大屏事件总计响应类", description = "服务站大屏事件总计响应类")
+public class BigScreenEventTotalVO {
+
+    @ApiModelProperty(value = "实时事件数")
+    private Long rtEventAmount;
+
+    @ApiModelProperty(value = "已完成事件数")
+    private Long hisEventAmount;
+
+}

+ 26 - 0
src/main/java/com/care/bigscreen/vo/BigScreenOlderCardTotalVO.java

@@ -0,0 +1,26 @@
+package com.care.bigscreen.vo;
+
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+
+
+/**
+ * 服务站大屏用户卡片总计响应类
+ *
+ * @author stw
+ * @since 2021-05-20
+ */
+@Data
+@ApiModel(value = "服务站大屏用户卡片总计响应类", description = "服务站大屏用户卡片总计响应类")
+public class BigScreenOlderCardTotalVO {
+
+    @ApiModelProperty(value = "全部用户数")
+    private Long allOlderAmount;
+
+    @ApiModelProperty(value = "紧急事件用户数")
+    private Long alarmOlderAmount;
+
+}

+ 3 - 0
src/main/java/com/care/bigscreen/vo/BigScreenOlderDetailVO.java

@@ -61,6 +61,9 @@ public class BigScreenOlderDetailVO {
     @ApiModelProperty("被监护人状态")
     private String olderStatus;
 
+    @ApiModelProperty("被监护人的事件状态")
+    private String olderEventStatus;
+
     @ApiModelProperty("紧急联系人列表")
     private List<BigSreenOlderContactVO>  olderContactList;
 

+ 1 - 3
src/main/java/com/care/outcall/controller/KoalaOutCallController.java

@@ -33,8 +33,6 @@ public class KoalaOutCallController {
 
     @Autowired
     private KoalaOutCallService koalaOutCallService;
-    @Autowired
-    JwtUtils jwtUtils;
 
     @ApiOperation(value = "考拉外呼--手动外呼--坐席基础信息接口", notes = "考拉外呼--手动外呼--坐席基础信息接口")
     @ApiImplicitParams({
@@ -44,7 +42,7 @@ public class KoalaOutCallController {
     public Result getAgentInfo(@RequestHeader(name = "token") String token) {
 
         try {
-            Claims claims = jwtUtils.tokenParse(token);
+            Claims claims = JwtUtils.tokenParse(token);
             if (claims != null) {
                 UserLogindConvertVO vo = JSONUtil.toBean(claims.getSubject(), UserLogindConvertVO.class);
                 String userId = vo.getId().toString();

+ 27 - 4
src/main/resources/mybatis/BigSreenMapper.xml

@@ -154,7 +154,7 @@
         and a.modify_time  in (
             SELECT modify_time from (SELECT MAX(modify_time) modify_time FROM care_event_order GROUP BY older_id) a
         )
-        order by a.modify_time desc
+        order by a.status,a.modify_time desc
     </select>
 
     <resultMap id="BigScreenOlderDetailVOMap" type="com.care.bigscreen.vo.BigScreenOlderDetailVO">
@@ -172,6 +172,7 @@
         <result column="phone" property="phone"/>
         <result column="has_our_door_device" property="hasOurDoorDevice"/>
         <result column="older_status" property="olderStatus"/>
+        <result column="older_event_status" property="olderEventStatus"/>
 
         <collection property="olderContactList" ofType="com.care.bigscreen.vo.BigSreenOlderContactVO">
             <id column="contact_id" property="contactId"/>
@@ -197,15 +198,23 @@
           a.phone,
           (case when (select count(1) from care_device b where b.dev_type='2' and b.id in (select c.dev_id from care_older_device_rel c where c.older_id = a.id)) > 0 then 'Y' else 'N' end)  has_our_door_device,
           (select sdc.name from sys_dim_code sdc where sdc.dim_code = a.status and sdc.type_code='older_status') older_status,
+          (select c.status from care_event_order c where c.older_id = a.id order by c.create_time desc limit 1) older_event_status,
            d.id contact_id,
           d.name contact_name,
           d.phone contact_phone,
           (select sdc.name from sys_dim_code sdc where sdc.dim_code = d.relation_type and sdc.type_code='older_contact_relation_type') relation_type
-        FROM care_older a left join care_older_contact d on a.id = d.older_id
-        where a.id = #{olderId} and d.status='1'
+        FROM care_older a left join care_older_contact d on a.id = d.older_id and d.status='1'
+        where a.id = #{olderId}
         order by a.id,d.contact_level
     </select>
 
+    <select id="selectStationBigScreenEventTotal" resultType="com.care.bigscreen.vo.BigScreenEventTotalVO">
+        SELECT
+        (select count(1) from care_event_order  where station_id = #{stationId} and status in ('0','1') ) rtEventAmount,
+        (select count(1) from care_event_order  where station_id = #{stationId} and status not in ('0','1') )  hisEventAmount
+         from dual
+    </select>
+
     <select id="selectBigScreenRtEventList" resultType="com.care.bigscreen.vo.BigScreenEventVO">
         SELECT
         a.title,
@@ -236,6 +245,13 @@
         LIMIT #{pageUtil.start}, #{pageUtil.pageSize}
     </select>
 
+    <select id="selectStationBigScreenOlderCardTotal" resultType="com.care.bigscreen.vo.BigScreenOlderCardTotalVO">
+        SELECT
+        (select count(1) from care_older  where station_id = #{stationId}  ) allOlderAmount,
+        (select count(1) from care_older  where station_id = #{stationId} and status not in ('0','1') )  alarmOlderAmount
+        from dual
+    </select>
+
     <select id="selectBigScreenOlderCardListByCount" resultType="int" >
         SELECT
         count(1)
@@ -244,6 +260,9 @@
         <if test="olderName != null and olderName != ''">
         AND a.name like CONCAT('%',#{olderName},'%')
         </if>
+        <if test="isAlarm == '1'.toString()">
+            AND a.status not in ('1','2')
+        </if>
     </select>
 
     <select id="selectBigScreenOlderCardListByPage" resultType="com.care.bigscreen.vo.BigScreenOlderDetailVO">
@@ -261,12 +280,16 @@
         a.addr,
         a.phone,
         (case when (select count(1) from care_device b where b.dev_type='2' and b.id in (select c.dev_id from care_older_device_rel c where c.older_id = a.id)) > 0 then 'Y' else 'N' end)  has_our_door_device,
-        (select sdc.name from sys_dim_code sdc where sdc.dim_code = a.status and sdc.type_code='older_status') olderStatus
+        (select sdc.name from sys_dim_code sdc where sdc.dim_code = a.status and sdc.type_code='older_status') olderStatus,
+        (select c.status from care_event_order c where c.older_id = a.id order by c.create_time desc limit 1) olderEventStatus
         FROM care_older a
         where a.station_id = #{stationId}
         <if test="olderName != null and olderName != ''">
             AND a.name like CONCAT('%',#{olderName},'%')
         </if>
+        <if test="isAlarm == '1'.toString()">
+            AND a.status not in ('1','2')
+        </if>
         order by (case when a.status in ('1','2') then 2 else 1 end), a.modify_time desc
         LIMIT #{pageUtil.start}, #{pageUtil.pageSize}
     </select>