From e0ba2cd8a5ef7142f7d6cab80ef2cbd9074ebb79 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?=E8=B5=B5=E5=95=B8=E9=9D=9E?= <13281114856@qq.com>
Date: Wed, 19 Apr 2023 17:49:30 +0800
Subject: [PATCH] =?UTF-8?q?=E6=B7=BB=E5=8A=A0=E4=BA=BA=E6=B5=81=E7=BB=9F?=
 =?UTF-8?q?=E8=AE=A1=E6=A8=A1=E5=9D=97?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

---
 .../admin/src/assets/utils/ajax.js            |  32 +++++
 .../task/RealTimePeopleStatTaskImpl.java      | 114 ++++++++++++++++++
 .../task/SyncAppointWaitAndFinTaskImpl.java   |  59 +++++----
 .../service/impl/HikCameraServiceImpl.java    |   4 +-
 .../door/service/impl/HikDoorServiceImpl.java |   2 +-
 .../service/impl/HikEventServiceImpl.java     |   2 +-
 .../face/service/impl/HikFaceServiceImpl.java |   6 +-
 .../face/service/impl/HikPlanServiceImpl.java |  14 +--
 .../service/impl/HikPersonServiceImpl.java    |   4 +-
 .../model/vo/RealtimeDataflowStatVo.java      |   1 +
 10 files changed, 201 insertions(+), 37 deletions(-)
 create mode 100644 refined-manager/src/main/java/com/mortals/xhx/daemon/task/RealTimePeopleStatTaskImpl.java

diff --git a/refined-manager-ui/admin/src/assets/utils/ajax.js b/refined-manager-ui/admin/src/assets/utils/ajax.js
index 8be5d85..dcc7f1c 100644
--- a/refined-manager-ui/admin/src/assets/utils/ajax.js
+++ b/refined-manager-ui/admin/src/assets/utils/ajax.js
@@ -10,6 +10,38 @@ const instance = axios.create({
     post: {
       'Content-Type': 'application/json;charset=UTF-8',
       'dataType': 'json',
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
     }
   },
   transformResponse: [data=>{
diff --git a/refined-manager/src/main/java/com/mortals/xhx/daemon/task/RealTimePeopleStatTaskImpl.java b/refined-manager/src/main/java/com/mortals/xhx/daemon/task/RealTimePeopleStatTaskImpl.java
new file mode 100644
index 0000000..3271dab
--- /dev/null
+++ b/refined-manager/src/main/java/com/mortals/xhx/daemon/task/RealTimePeopleStatTaskImpl.java
@@ -0,0 +1,114 @@
+package com.mortals.xhx.daemon.task;
+
+import cn.hutool.core.date.DateUtil;
+import com.mortals.framework.exception.AppException;
+import com.mortals.framework.service.ITask;
+import com.mortals.framework.service.ITaskExcuteService;
+import com.mortals.xhx.module.realtime.model.RealtimeDataflowEntity;
+import com.mortals.xhx.module.realtime.model.RealtimeDataflowQuery;
+import com.mortals.xhx.module.realtime.model.RealtimeDataflowStatEntity;
+import com.mortals.xhx.module.realtime.model.RealtimeDataflowStatQuery;
+import com.mortals.xhx.module.realtime.service.RealtimeDataflowService;
+import com.mortals.xhx.module.realtime.service.RealtimeDataflowStatService;
+import lombok.extern.slf4j.Slf4j;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Service;
+import org.springframework.util.ObjectUtils;
+
+import java.util.Date;
+import java.util.List;
+
+/**
+ * 浜烘祦缁熻鎺ュ彛
+ */
+@Slf4j
+@Service("RealTimePeopleStatTask")
+public class RealTimePeopleStatTaskImpl implements ITaskExcuteService {
+
+    @Autowired
+    private RealtimeDataflowService realtimeDataflowService;
+    @Autowired
+    private RealtimeDataflowStatService realtimeDataflowStatService;
+
+
+    @Override
+    public void excuteTask(ITask task) throws AppException {
+
+        statPeople();
+
+    }
+
+    private void statPeople() {
+        Date startTime = DateUtil.beginOfHour(new Date());
+        Date endTime = DateUtil.endOfHour(new Date());
+        // 鏍煎紡鍖栨椂闂翠负鎸囧畾鏍煎紡
+        String startTimeStr = DateUtil.format(startTime, "yyyy-MM-dd HH:00:00");
+        String endTimeStr = DateUtil.format(endTime, "yyyy-MM-dd HH:59:59");
+
+        RealtimeDataflowQuery realtimeDataflowQuery = new RealtimeDataflowQuery();
+        realtimeDataflowQuery.setCreateTimeStart(startTimeStr);
+        realtimeDataflowQuery.setCreateTimeEnd(endTimeStr);
+        List<RealtimeDataflowEntity> realtimeDataflowEntities = realtimeDataflowService.find(realtimeDataflowQuery, null);
+        if (ObjectUtils.isEmpty(realtimeDataflowEntities)) {
+            Long strangerCount = realtimeDataflowEntities.parallelStream().filter(f -> ObjectUtils.isEmpty(f.getIdNumber())).count();
+            int total = realtimeDataflowEntities.size();
+            Long recognizeCount = total - strangerCount;
+            Date date = new Date();
+            int year = DateUtil.year(date);
+            int month = DateUtil.month(date);
+            int day = DateUtil.dayOfMonth(date);
+            int hour = DateUtil.hour(date, true);
+
+            RealtimeDataflowStatQuery realtimeDataflowStatQuery = new RealtimeDataflowStatQuery();
+            realtimeDataflowStatQuery.setYear(year);
+            realtimeDataflowStatQuery.setMonth(month);
+            realtimeDataflowStatQuery.setDay(day);
+            realtimeDataflowStatQuery.setHour(hour);
+            RealtimeDataflowStatEntity realtimeDataflowStatEntity = realtimeDataflowStatService.selectOne(realtimeDataflowStatQuery);
+            if (ObjectUtils.isEmpty(realtimeDataflowStatEntity)) {
+                RealtimeDataflowStatEntity statEntity = new RealtimeDataflowStatEntity();
+                statEntity.initAttrValue();
+                statEntity.setPersonSum(total);
+                statEntity.setStrangerSum(strangerCount.intValue());
+                statEntity.setRecoginzeSum(recognizeCount.intValue());
+                statEntity.setYear(year);
+                statEntity.setMonth(month);
+                statEntity.setDay(day);
+                statEntity.setHour(hour);
+                statEntity.setPersonSum(total);
+                statEntity.setCreateUserId(1L);
+                statEntity.setCreateTime(new Date());
+                realtimeDataflowStatService.save(statEntity);
+            } else {
+                realtimeDataflowStatEntity.setPersonSum(total);
+                realtimeDataflowStatEntity.setStrangerSum(strangerCount.intValue());
+                realtimeDataflowStatEntity.setRecoginzeSum(recognizeCount.intValue());
+                realtimeDataflowStatEntity.setUpdateUserId(1L);
+                realtimeDataflowStatEntity.setUpdateTime(new Date());
+                realtimeDataflowStatService.update(realtimeDataflowStatEntity);
+            }
+        }
+    }
+
+
+    @Override
+    public void stopTask(ITask task) throws AppException {
+
+    }
+
+    public static void main(String[] args) {
+        // 鑾峰彇褰撳墠鏃堕棿鐨勫皬鏃舵暟
+        int hour = DateUtil.hour(new Date(), true);
+        // 鑾峰彇褰撳墠鏃堕棿鎵€鍦ㄥ皬鏃剁殑寮€濮嬫椂闂村拰缁撴潫鏃堕棿
+        Date startTime = DateUtil.beginOfHour(new Date());
+        Date endTime = DateUtil.endOfHour(new Date());
+
+        // 鏍煎紡鍖栨椂闂翠负鎸囧畾鏍煎紡
+        String startTimeStr = DateUtil.format(startTime, "yyyy-MM-dd HH:00:00");
+        String endTimeStr = DateUtil.format(endTime, "yyyy-MM-dd HH:59:59");
+
+        // 杈撳嚭缁撴灉
+        System.out.println("褰撳墠鏃堕棿鎵€鍦ㄥ皬鏃剁殑寮€濮嬫椂闂达細" + startTimeStr);
+        System.out.println("褰撳墠鏃堕棿鎵€鍦ㄥ皬鏃剁殑缁撴潫鏃堕棿锛�" + endTimeStr);
+    }
+}
diff --git a/refined-manager/src/main/java/com/mortals/xhx/daemon/task/SyncAppointWaitAndFinTaskImpl.java b/refined-manager/src/main/java/com/mortals/xhx/daemon/task/SyncAppointWaitAndFinTaskImpl.java
index 9e782e8..f321b04 100644
--- a/refined-manager/src/main/java/com/mortals/xhx/daemon/task/SyncAppointWaitAndFinTaskImpl.java
+++ b/refined-manager/src/main/java/com/mortals/xhx/daemon/task/SyncAppointWaitAndFinTaskImpl.java
@@ -89,9 +89,25 @@ public class SyncAppointWaitAndFinTaskImpl implements ITaskExcuteService {
     }
 
     private void syncWaitAndFinQueue() {
+        List<WaitPersonInfo> waitPersonInfos = new ArrayList<>();
+        List<FinPersonInfo> finPersonInfos = new ArrayList<>();
         cacheService.select(redisDb);//
-        List<WaitPersonInfo> waitPersonInfos = cacheService.lrange(RedisKey.KEY_WAITNUM_LIST_CACHE, WaitPersonInfo.class);
-        List<FinPersonInfo> finPersonInfos = cacheService.lrange(RedisKey.KEY_FIN_LIST_CACHE, FinPersonInfo.class);
+        while (true) {
+            WaitPersonInfo waitPersonInfo = cacheService.lpop(RedisKey.KEY_WAITNUM_LIST_CACHE, WaitPersonInfo.class);
+            if (ObjectUtils.isEmpty(waitPersonInfo)) {
+                break;
+            } else {
+                waitPersonInfos.add(waitPersonInfo);
+            }
+        }
+        while (true) {
+            FinPersonInfo finPersonInfo = cacheService.lpop(RedisKey.KEY_FIN_LIST_CACHE, FinPersonInfo.class);
+            if (ObjectUtils.isEmpty(finPersonInfo)) {
+                break;
+            } else {
+                finPersonInfos.add(finPersonInfo);
+            }
+        }
         cacheService.select(database);//
         if (!ObjectUtils.isEmpty(waitPersonInfos)) {
             List<CareRecordsEntity> recordsEntityList = waitPersonInfos.stream().map(item -> {
@@ -118,26 +134,27 @@ public class SyncAppointWaitAndFinTaskImpl implements ITaskExcuteService {
                 log.info("淇濆瓨鍏虫€€璁板綍鏁伴噺锛宻ize:{}", recordsEntityList.size());
                 careRecordsService.save(recordsEntityList);
             }
-
-            if (!ObjectUtils.isEmpty(finPersonInfos)) {
-                List<Long> waitIdList = finPersonInfos.stream().map(item -> item.getWaitId()).collect(Collectors.toList());
-                Map<Long, FinPersonInfo> waitMap = finPersonInfos.stream().collect(Collectors.toMap(x -> x.getWaitId(), y -> y, (o, n) -> n));
-
-                CareRecordsQuery careRecordsQuery = new CareRecordsQuery();
-                careRecordsQuery.setPersonIdList(waitIdList);
-                List<CareRecordsEntity> careRecordsEntities = careRecordsService.find(careRecordsQuery);
+        }
+        if (!ObjectUtils.isEmpty(finPersonInfos)) {
+            List<Long> waitIdList = finPersonInfos.stream().map(item -> item.getWaitId()).collect(Collectors.toList());
+            Map<Long, FinPersonInfo> waitMap = finPersonInfos.stream().collect(Collectors.toMap(x -> x.getWaitId(), y -> y, (o, n) -> n));
+
+            CareRecordsQuery careRecordsQuery = new CareRecordsQuery();
+            careRecordsQuery.setPersonIdList(waitIdList);
+            List<CareRecordsEntity> careRecordsEntities = careRecordsService.find(careRecordsQuery);
+            if (!ObjectUtils.isEmpty(careRecordsEntities)) {
+                careRecordsEntities.forEach(item -> {
+                    FinPersonInfo finPersonInfo = waitMap.get(item.getPersonId());
+                    item.setProcessStatus(ProcessStatusEnum.鎺ヤ欢缁撴潫.getValue());
+                    item.setCallTime(finPersonInfo.getCalltime());
+                    Long diff = DateUtil.between(item.getTakeTime(), finPersonInfo.getCalltime(), DateUnit.MINUTE);
+                    item.setWaitTime(diff.intValue());
+                    item.setUpdateTime(new Date());
+                    item.setUpdateUserId(1L);
+                    item.setUpdateUserName("system");
+                });
                 if (!ObjectUtils.isEmpty(careRecordsEntities)) {
-                    //todo 鏇存柊鍏虫€€璁板綍
-                    careRecordsEntities.forEach(item -> {
-                        FinPersonInfo finPersonInfo = waitMap.get(item.getPersonId());
-                        item.setProcessStatus(ProcessStatusEnum.鎺ヤ欢缁撴潫.getValue());
-                        item.setCallTime(finPersonInfo.getCalltime());
-                        Long diff = DateUtil.between(item.getTakeTime(), finPersonInfo.getCalltime(), DateUnit.MINUTE);
-                        item.setWaitTime(diff.intValue());
-                        item.setUpdateTime(new Date());
-                        item.setUpdateUserId(1L);
-                        item.setUpdateUserName("system");
-                    });
+                    log.info("鏇存柊鍏虫€€璁板綍鏁伴噺锛宻ize:{}", careRecordsEntities.size());
                     careRecordsService.update(careRecordsEntities);
                 }
             }
diff --git a/refined-manager/src/main/java/com/mortals/xhx/module/hik/camera/service/impl/HikCameraServiceImpl.java b/refined-manager/src/main/java/com/mortals/xhx/module/hik/camera/service/impl/HikCameraServiceImpl.java
index 3362782..3615332 100644
--- a/refined-manager/src/main/java/com/mortals/xhx/module/hik/camera/service/impl/HikCameraServiceImpl.java
+++ b/refined-manager/src/main/java/com/mortals/xhx/module/hik/camera/service/impl/HikCameraServiceImpl.java
@@ -35,12 +35,12 @@ public class HikCameraServiceImpl extends AbstractHikService implements IHikCame
         try {
             log.info("camera list req=>{}", JSON.toJSONString(cameraListReq));
             String respJson = ArtemisHttpUtil.doPostStringArtemis(config, path, JSON.toJSONString(cameraListReq), null, null, "application/json");
-            log.info("camera list resp=>{}", respJson);
             HikApiRest<CameraDataInfo> rest = JSON.parseObject(respJson, new TypeReference<HikApiRest<CameraDataInfo>>() {
             });
-            if (rest.getCode() == "0") {
+            if ("0".equals(rest.getCode())) {
                 return Rest.ok(rest.getData());
             } else {
+                log.info("camera list error resp=>{}", JSON.toJSONString(rest));
                 return Rest.fail(rest.getMsg());
             }
         } catch (Exception e) {
diff --git a/refined-manager/src/main/java/com/mortals/xhx/module/hik/door/service/impl/HikDoorServiceImpl.java b/refined-manager/src/main/java/com/mortals/xhx/module/hik/door/service/impl/HikDoorServiceImpl.java
index b23ae04..7d452d1 100644
--- a/refined-manager/src/main/java/com/mortals/xhx/module/hik/door/service/impl/HikDoorServiceImpl.java
+++ b/refined-manager/src/main/java/com/mortals/xhx/module/hik/door/service/impl/HikDoorServiceImpl.java
@@ -36,7 +36,7 @@ public class HikDoorServiceImpl extends AbstractHikService implements IHikDoorSe
         try {
             log.info("door events req=>{}", JSON.toJSONString(doorEventReq));
             String respJson = ArtemisHttpUtil.doPostStringArtemis(config, path, JSON.toJSONString(doorEventReq), null, null, "application/json");
-            log.info("door events error resp=>{}", respJson);
+            log.info("door events  resp=>{}", respJson);
             HikApiRest<DoorEventDataInfo> rest = JSON.parseObject(respJson, new TypeReference<HikApiRest<DoorEventDataInfo>>() {
             });
             if(rest.getCode()=="0"){
diff --git a/refined-manager/src/main/java/com/mortals/xhx/module/hik/event/service/impl/HikEventServiceImpl.java b/refined-manager/src/main/java/com/mortals/xhx/module/hik/event/service/impl/HikEventServiceImpl.java
index e0fc9d4..1d83489 100644
--- a/refined-manager/src/main/java/com/mortals/xhx/module/hik/event/service/impl/HikEventServiceImpl.java
+++ b/refined-manager/src/main/java/com/mortals/xhx/module/hik/event/service/impl/HikEventServiceImpl.java
@@ -53,7 +53,7 @@ public class HikEventServiceImpl extends AbstractHikService implements IHikEvent
             log.info("event sub resp=>{}", respJson);
             HikApiRest<String> rest = JSON.parseObject(respJson, new TypeReference<HikApiRest<String>>() {
             });
-            if (rest.getCode() == "0") {
+            if ("0".equals(rest.getCode())) {
                 return Rest.ok();
             } else {
                 return Rest.fail(rest.getMsg());
diff --git a/refined-manager/src/main/java/com/mortals/xhx/module/hik/face/service/impl/HikFaceServiceImpl.java b/refined-manager/src/main/java/com/mortals/xhx/module/hik/face/service/impl/HikFaceServiceImpl.java
index 16d7292..b622274 100644
--- a/refined-manager/src/main/java/com/mortals/xhx/module/hik/face/service/impl/HikFaceServiceImpl.java
+++ b/refined-manager/src/main/java/com/mortals/xhx/module/hik/face/service/impl/HikFaceServiceImpl.java
@@ -39,7 +39,7 @@ public class HikFaceServiceImpl extends AbstractHikService implements IHikFaceSe
             String respJson = ArtemisHttpUtil.doPostStringArtemis(config, path, JSON.toJSONString(faceListReq), null, null, "application/json");
             HikApiRest<List<FaceDataInfo>> rest = JSON.parseObject(respJson, new TypeReference<HikApiRest<List<FaceDataInfo>>>() {
             });
-            if (rest.getCode() == "0") {
+            if ("0".equals(rest.getCode())) {
                 return Rest.ok(rest.getData());
             } else {
                 log.info("face single error resp=>", respJson);
@@ -62,7 +62,7 @@ public class HikFaceServiceImpl extends AbstractHikService implements IHikFaceSe
             log.info("face single add resp=>{}", respJson);
             HikApiRest<FaceDataInfo> rest = JSON.parseObject(respJson, new TypeReference<HikApiRest<FaceDataInfo>>() {
             });
-            if (rest.getCode() == "0") {
+            if ("0".equals(rest.getCode())) {
                 return Rest.ok(rest.getData());
             } else {
                 return Rest.fail(rest.getMsg());
@@ -82,7 +82,7 @@ public class HikFaceServiceImpl extends AbstractHikService implements IHikFaceSe
             String respJson = ArtemisHttpUtil.doPostStringArtemis(config, path, JSON.toJSONString(faceReq), null, null, "application/json");
             HikApiRest<Boolean> rest = JSON.parseObject(respJson, new TypeReference<HikApiRest<Boolean>>() {
             });
-            if (rest.getCode() == "0") {
+            if ("0".equals(rest.getCode())) {
                 return Rest.ok(rest.getData());
             } else {
                 log.info("face single error resp=>{}", respJson);
diff --git a/refined-manager/src/main/java/com/mortals/xhx/module/hik/face/service/impl/HikPlanServiceImpl.java b/refined-manager/src/main/java/com/mortals/xhx/module/hik/face/service/impl/HikPlanServiceImpl.java
index 5e04ddd..df5e956 100644
--- a/refined-manager/src/main/java/com/mortals/xhx/module/hik/face/service/impl/HikPlanServiceImpl.java
+++ b/refined-manager/src/main/java/com/mortals/xhx/module/hik/face/service/impl/HikPlanServiceImpl.java
@@ -35,7 +35,7 @@ public class HikPlanServiceImpl extends AbstractHikService implements IHikPlanSe
             String respJson = ArtemisHttpUtil.doPostStringArtemis(config, path, JSON.toJSONString(planRecognBlackListReq), null, null, "application/json");
             HikApiRest<List<PlanRecognInfo>> rest = JSON.parseObject(respJson, new TypeReference<HikApiRest<List<PlanRecognInfo>>>() {
             });
-            if (rest.getCode() == "0") {
+            if ("0".equals(rest.getCode())) {
                 return Rest.ok(rest.getData());
             } else {
                 log.info("plan recognize balck list error resp=>{}", respJson);
@@ -83,7 +83,7 @@ public class HikPlanServiceImpl extends AbstractHikService implements IHikPlanSe
             log.info("plan recognize balck  resp=>{}", respJson);
             HikApiRest<String> rest = JSON.parseObject(respJson, new TypeReference<HikApiRest<String>>() {
             });
-            if (rest.getCode() == "0") {
+            if ("0".equals(rest.getCode())) {
                 return Rest.ok(rest.getData());
             } else {
                 log.info("plan recognize balck error resp=>{}", respJson);
@@ -104,7 +104,7 @@ public class HikPlanServiceImpl extends AbstractHikService implements IHikPlanSe
             String respJson = ArtemisHttpUtil.doPostStringArtemis(config, path, JSON.toJSONString(planRecognBlackReq), null, null, "application/json");
             HikApiRest<Boolean> rest = JSON.parseObject(respJson, new TypeReference<HikApiRest<Boolean>>() {
             });
-            if (rest.getCode() == "0") {
+            if ("0".equals(rest.getCode())) {
                 return Rest.ok(rest.getData());
             } else {
                 log.info("plan recognize balck error del resp=>{}", respJson);
@@ -125,7 +125,7 @@ public class HikPlanServiceImpl extends AbstractHikService implements IHikPlanSe
             String respJson = ArtemisHttpUtil.doPostStringArtemis(config, path, JSON.toJSONString(planRecognWhiteListReq), null, null, "application/json");
             HikApiRest<List<PlanRecognInfo>> rest = JSON.parseObject(respJson, new TypeReference<HikApiRest<List<PlanRecognInfo>>>() {
             });
-            if (rest.getCode() == "0") {
+            if ("0".equals(rest.getCode())) {
                 return Rest.ok(rest.getData());
             } else {
                 log.info("plan recognize white list error resp=>{}", respJson);
@@ -148,7 +148,7 @@ public class HikPlanServiceImpl extends AbstractHikService implements IHikPlanSe
             log.info("plan recognize white  resp=>{}", respJson);
             HikApiRest<String> rest = JSON.parseObject(respJson, new TypeReference<HikApiRest<String>>() {
             });
-            if (rest.getCode() == "0") {
+            if ("0".equals(rest.getCode())) {
                 return Rest.ok(rest.getData());
             } else {
                 log.info("plan recognize white add error resp=>{}", respJson);
@@ -171,7 +171,7 @@ public class HikPlanServiceImpl extends AbstractHikService implements IHikPlanSe
             log.info("plan recognize white  resp=>{}", respJson);
             HikApiRest<Boolean> rest = JSON.parseObject(respJson, new TypeReference<HikApiRest<Boolean>>() {
             });
-            if (rest.getCode() == "0") {
+            if ("0".equals(rest.getCode())) {
                 return Rest.ok(rest.getData());
             } else {
                 log.info("plan recognize white add error resp=>{}", respJson);
@@ -192,7 +192,7 @@ public class HikPlanServiceImpl extends AbstractHikService implements IHikPlanSe
             String respJson = ArtemisHttpUtil.doPostStringArtemis(config, path, JSON.toJSONString(planRecognWhiteReq), null, null, "application/json");
             HikApiRest<Boolean> rest = JSON.parseObject(respJson, new TypeReference<HikApiRest<Boolean>>() {
             });
-            if (rest.getCode() == "0") {
+            if ("0".equals(rest.getCode())) {
                 return Rest.ok(rest.getData());
             } else {
                 log.info("plan recognize white error del resp=>{}", respJson);
diff --git a/refined-manager/src/main/java/com/mortals/xhx/module/hik/person/service/impl/HikPersonServiceImpl.java b/refined-manager/src/main/java/com/mortals/xhx/module/hik/person/service/impl/HikPersonServiceImpl.java
index 2beebec..11b2fe5 100644
--- a/refined-manager/src/main/java/com/mortals/xhx/module/hik/person/service/impl/HikPersonServiceImpl.java
+++ b/refined-manager/src/main/java/com/mortals/xhx/module/hik/person/service/impl/HikPersonServiceImpl.java
@@ -38,7 +38,7 @@ public class HikPersonServiceImpl extends AbstractHikService implements IHikPers
             String respJson = ArtemisHttpUtil.doPostStringArtemis(config, path, JSON.toJSONString(personReq), null, null, "application/json");
             HikApiRest<PersonDataInfo> rest = JSON.parseObject(respJson, new TypeReference<HikApiRest<PersonDataInfo>>() {
             });
-            if (rest.getCode() == "0") {
+            if ("0".equals(rest.getCode())) {
                 return Rest.ok(rest.getData());
             } else {
                 log.info("person error resp=>{}", respJson);
@@ -74,7 +74,7 @@ public class HikPersonServiceImpl extends AbstractHikService implements IHikPers
             String respJson = ArtemisHttpUtil.doPostStringArtemis(config, path, JSON.toJSONString(orgListReq), null, null, "application/json");
             HikApiRest<OrgDataInfo> rest = JSON.parseObject(respJson, new TypeReference<HikApiRest<OrgDataInfo>>() {
             });
-            if (rest.getCode() == "0") {
+            if ("0".equals(rest.getCode())) {
                 return Rest.ok(rest.getData());
             } else {
                 log.info("org list error resp=>{}", respJson);
diff --git a/refined-manager/src/main/java/com/mortals/xhx/module/realtime/model/vo/RealtimeDataflowStatVo.java b/refined-manager/src/main/java/com/mortals/xhx/module/realtime/model/vo/RealtimeDataflowStatVo.java
index 7d55222..833c6b6 100644
--- a/refined-manager/src/main/java/com/mortals/xhx/module/realtime/model/vo/RealtimeDataflowStatVo.java
+++ b/refined-manager/src/main/java/com/mortals/xhx/module/realtime/model/vo/RealtimeDataflowStatVo.java
@@ -1,4 +1,5 @@
 package com.mortals.xhx.module.realtime.model.vo;
+import com.mortals.framework.annotation.Excel;
 import com.mortals.framework.model.BaseEntityLong;
 import com.mortals.xhx.module.realtime.model.RealtimeDataflowStatEntity;
 import java.util.ArrayList;
-- 
2.24.3