From 70ac6517f3e343ae59454c045eebf984fc6562b7 Mon Sep 17 00:00:00 2001
From: doum <doum>
Date: 星期五, 19 十二月 2025 09:11:55 +0800
Subject: [PATCH] Merge remote-tracking branch 'origin/wuhuyancao' into wuhuyancao

---
 server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/hksync/HkSyncPushServiceImpl.java |   97 +++++++++++++++++++++++++++++++++++++++---------
 1 files changed, 78 insertions(+), 19 deletions(-)

diff --git a/server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/hksync/HkSyncPushServiceImpl.java b/server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/hksync/HkSyncPushServiceImpl.java
index 50a1a94..bf7cb52 100644
--- a/server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/hksync/HkSyncPushServiceImpl.java
+++ b/server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/hksync/HkSyncPushServiceImpl.java
@@ -26,6 +26,7 @@
 import com.doumee.dao.business.model.*;
 import com.doumee.dao.business.model.Member;
 import com.doumee.dao.web.reqeust.SavePlatformWarnEventDTO;
+import com.doumee.dao.web.response.platformReport.CarmeraListVO;
 import com.doumee.service.business.VisitsService;
 import com.doumee.service.business.impl.JkCabinetGridServiceImpl;
 import com.doumee.service.business.impl.PlatformWarnEventServiceImpl;
@@ -37,6 +38,7 @@
 import org.apache.commons.lang3.StringUtils;
 import org.springframework.beans.BeanUtils;
 import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.data.redis.core.RedisTemplate;
 import org.springframework.stereotype.Service;
 import org.springframework.transaction.annotation.Transactional;
 import org.springframework.util.CollectionUtils;
@@ -156,8 +158,9 @@
             }
             if(delRetentionLis.size()>0){
                 //鍏堝垹闄ゅ師鏈夌殑鍦ㄥ満浜哄憳(鍐呴儴浜哄憳锛�
+                //@ApiModelProperty(value = "绫诲瀷 0鍔冲姟璁垮 1鏅�氳瀹� 2鍐呴儴鍛樺伐 3杞﹁締淇℃伅 4鐩稿叧鏂逛汉鍛� 5璐ц繍鍙告満  ")
                 retentionMapper.delete(new UpdateWrapper<Retention>().lambda()
-//                        .eq(Retention::getType,Constants.memberType.internal)
+                        .ne(Retention::getType,Constants.THREE)
                         .in(Retention::getMemberId,delRetentionLis));
             }
             if(retentionList.size()>0){
@@ -482,7 +485,7 @@
             for(EventBaseInfoRequest request : events){
                 Warning warning = warningMapper.selectOne(new QueryWrapper<Warning>().lambda()
                         .eq(Warning::getIsdeleted,Constants.ZERO)
-                        .eq(Warning::getCode, request.getSrcType()).last("limit 1"));
+                        .eq(Warning::getCode, request.getEventType()).last("limit 1"));
 
                 Constants.WarningConfig warningConfig = Constants.WarningConfig.getConfig(request.getEventType());
                 
@@ -497,26 +500,30 @@
                     warningEvent.setEventId(request.getEventId());
                     warningEvent.setEventType(request.getEventType().toString());
                     warningEvent.setHappenTime(request.getHappenTime());
-                    warningEvent.setJsonContent(request.getData().toJSONString());
+                    if(Objects.nonNull(request.getData())){
+                        warningEvent.setJsonContent(request.getData().toJSONString());
+                    }
                     warningEvent.setSrcIndex(request.getSrcIndex());
                     warningEvent.setSrcType(request.getSrcType());
                     warningEvent.setSrcName(request.getSrcName());
+                    warningEvent.setWarningId(warning.getId());
+                    warningEvent.setDeviceId(request.getSrcIndex());
+                    warningEvent.setRegion(this.getRegionsName(warningEvent.getSrcIndex(),warning.getType()));
                     warningEventMapper.insert(warningEvent);
 
                     if(Objects.nonNull(warningConfig)){
                         List<Integer> ruleIdList =  impl.processWarnFront(warningConfig);
 
+
                         Boolean falg = true;
                         if(com.github.xiaoymin.knife4j.core.util.CollectionUtils.isNotEmpty(ruleIdList)){
-                            for (Integer ruleId:ruleIdList) {
+                            Set<Integer> ruleIdSet = new HashSet<>(ruleIdList);
+                            for (Integer ruleId:ruleIdSet) {
                                 WarningRule warningRule = warningRuleMapper.selectById(ruleId);
                                 if (Objects.isNull(warningRule)) {
                                     break;
                                 }
                                 List<Member> memberList = impl.getWarningRuleMemberList(warningRule);
-                                if (com.github.xiaoymin.knife4j.core.util.CollectionUtils.isEmpty(memberList)) {
-                                    break;
-                                }
                                 try {
                                     WarningPush warningPush = new WarningPush();
                                     warningPush.setCreateDate(new Date());
@@ -527,17 +534,14 @@
                                     warningPush.setContent(content);
                                     warningPush.setStatus(Constants.ZERO);
                                     warningPush.setPushType(Constants.ZERO);
-                                    //TODO 鏍规嵁鍏蜂綋鏁版嵁瀵规瘮鑾峰彇
-                                    warningPush.setRegion( "鏈煡浣嶇疆");
-                                    warningPush.setMemberIds(
-                                            StringUtils.join(memberList.stream().map(i -> i.getId()).collect(Collectors.toList()), ",")
-                                    );
-                                    warningPush.setMemberIds(
-                                            StringUtils.join(memberList.stream().map(i -> i.getId()).collect(Collectors.toList()), ",")
-                                    );
-                                    warningPush.setMemberNames(StringUtils.join(memberList.stream().map(i -> i.getName()).collect(Collectors.toList()), ",")
-                                    );
-
+                                    warningPush.setRegion( warningEvent.getRegion());
+                                    if (com.github.xiaoymin.knife4j.core.util.CollectionUtils.isEmpty(memberList)) {
+                                        warningPush.setMemberIds(
+                                                StringUtils.join(memberList.stream().map(i -> i.getId()).collect(Collectors.toList()), ",")
+                                        );
+                                        warningPush.setMemberNames(StringUtils.join(memberList.stream().map(i -> i.getName()).collect(Collectors.toList()), ",")
+                                        );
+                                    }
                                     if(Constants.equalsInteger(warningRule.getMemberNotice(),Constants.ONE)){
                                         //            Boolean noticeFlag = dingTalk.workInfoOANotice(Long.valueOf(systemDictDataBiz.queryByCode(Constants.DD_TALK,Constants.AGENT_ID).getCode()),
                                         //                    StringUtils.join(memberList.stream().filter(i->StringUtils.isNotBlank(i.getDdId())).map(i->i.getDdId()).collect(Collectors.toList()),","),
@@ -569,9 +573,64 @@
         }
         saveInterfaceLog(param,"/business/hksync/push/notice",result,true);
         return  null;
-
     }
 
+    @Autowired
+    private RedisTemplate<String,Object> stringRedisTemplate;
+
+    public String getRegionsName(String srcIndex,Integer warningType){
+        log.error("銆愬尮閰嶈澶囦笌鍖哄煙鍏崇郴淇℃伅銆�========寮�濮�=======锛�"+srcIndex);
+        String regionName = "鏈煡鍖哄煙";
+        if(StringUtils.isBlank(srcIndex)){
+            return regionName;
+        }
+        try{
+            if(Constants.equalsInteger(warningType,Constants.ZERO)){
+                List<CarmeraListVO> carmeraListVOList = (List<CarmeraListVO>) stringRedisTemplate.opsForValue().get(Constants.RedisKeys.HK_CAMERAS);//鎵�鏈夌洃鎺х偣鏁版嵁
+                if(com.github.xiaoymin.knife4j.core.util.CollectionUtils.isNotEmpty(carmeraListVOList)){
+                    if(com.github.xiaoymin.knife4j.core.util.CollectionUtils.isNotEmpty(carmeraListVOList)){
+                        for (CarmeraListVO c:carmeraListVOList) {
+                            if(c.getIndexCode().equals(srcIndex)){
+                                log.error("銆愮洃鎺у尯鍩熷尮閰嶇粨鏋溿��===============锛�"+c.getRegionName());
+                                return c.getRegionName();
+                            }
+                        }
+                    }
+                }
+            }else{
+                List<CarmeraListVO>  fireDeviceListVOList = (List<CarmeraListVO>) stringRedisTemplate.opsForValue().get(Constants.RedisKeys.HK_FIRE_DEVICE);//鎵�鏈夋秷闃茶澶囨暟鎹�
+                List<CarmeraListVO>  sensorListVOList = (List<CarmeraListVO>) stringRedisTemplate.opsForValue().get(Constants.RedisKeys.HK_SENSOR);//鎵�鏈変紶鎰熷櫒
+                if(com.github.xiaoymin.knife4j.core.util.CollectionUtils.isNotEmpty(fireDeviceListVOList)){
+                    if(com.github.xiaoymin.knife4j.core.util.CollectionUtils.isNotEmpty(fireDeviceListVOList)){
+                        for (CarmeraListVO c:fireDeviceListVOList) {
+                            if(c.getIndexCode().equals(srcIndex)){
+                                log.error("銆愭秷闃插尯鍩熷尮閰嶇粨鏋溿��===============锛�"+c.getRegionName());
+                                return c.getRegionName();
+                            }
+                        }
+                    }
+                }
+
+                if(com.github.xiaoymin.knife4j.core.util.CollectionUtils.isNotEmpty(sensorListVOList)){
+                    if(com.github.xiaoymin.knife4j.core.util.CollectionUtils.isNotEmpty(sensorListVOList)){
+                        for (CarmeraListVO c:sensorListVOList) {
+                            if(c.getIndexCode().equals(srcIndex)){
+                                log.error("銆愪紶鎰熷櫒鍖哄煙鍖归厤缁撴灉銆�==============锛�"+c.getRegionName());
+                                return c.getRegionName();
+                            }
+                        }
+                    }
+                }
+            }
+
+        }catch (Exception e){
+            e.printStackTrace();
+        }
+        log.error("銆愬尮閰嶈澶囦笌鍖哄煙鍏崇郴淇℃伅銆�========缁撴潫=======锛�"+srcIndex);
+        return regionName;
+    }
+
+
     /**
      * 娴峰悍璁垮浜嬩欢鎺ㄩ��
      * @param param

--
Gitblit v1.9.3