From 269d0db0c285fa05ecc093b7d0579b3bd8057273 Mon Sep 17 00:00:00 2001
From: rk <94314517@qq.com>
Date: 星期三, 10 十二月 2025 10:53:51 +0800
Subject: [PATCH] 处理设备消息推送

---
 server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/WarningServiceImpl.java |   89 ++++++++++++++++++++++++++++++++++++++++++--
 1 files changed, 85 insertions(+), 4 deletions(-)

diff --git a/server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/WarningServiceImpl.java b/server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/WarningServiceImpl.java
index 1ea06ee..cdf162f 100644
--- a/server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/WarningServiceImpl.java
+++ b/server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/WarningServiceImpl.java
@@ -7,6 +7,10 @@
 import com.doumee.core.constants.ResponseStatus;
 import com.doumee.core.dingTalk.DingTalk;
 import com.doumee.core.exception.BusinessException;
+import com.doumee.core.haikang.model.HKConstants;
+import com.doumee.core.haikang.model.param.BaseResponse;
+import com.doumee.core.haikang.model.param.request.EventSubRequest;
+import com.doumee.core.haikang.service.HKService;
 import com.doumee.core.utils.Constants;
 import com.doumee.core.utils.DateUtil;
 import com.doumee.core.utils.WeatherUtil;
@@ -64,6 +68,9 @@
     @Autowired
     private SystemDictDataBiz systemDictDataBiz;
 
+    @Autowired
+    private DdNoticeConfigMapper ddNoticeConfigMapper;
+
 
     @Override
     public Integer create(Warning warning) {
@@ -72,6 +79,23 @@
                 .eq(Warning::getName,warning.getName()) )>0){
             throw new BusinessException(ResponseStatus.BAD_REQUEST.getCode(),"瀵逛笉璧凤紝浜嬩欢绫诲瀷宸插瓨鍦紝璇疯繑鍥炲埛鏂伴〉闈㈡煡鐪嬶紒");
         }
+
+        if(StringUtils.isNotBlank(warning.getCode())&&Constants.equalsInteger(warning.getType(),Constants.ZERO)||Constants.equalsInteger(warning.getType(),Constants.ONE)){
+            EventSubRequest eventParam = new EventSubRequest();
+            String path =systemDictDataBiz.queryByCode(Constants.HK_PARAM, Constants.HK_PUSH_URL).getCode();
+            eventParam.setEventDest(path+"/notice");
+            try {
+                eventParam.setEventTypes(new Integer[]{Integer.valueOf(warning.getCode())});
+            }catch (Exception e){
+                throw new BusinessException(ResponseStatus.NOT_ALLOWED.getCode(),"浜嬩欢缂栫爜閿欒锛�");
+            }
+            HKService.cancelEventSub(eventParam);//鍏堝彇娑�
+            if(Constants.equalsInteger(warning.getStatus(),Constants.ONE)){
+                HKService.eventSub(eventParam);//瀹夐槻浜嬩欢
+            }
+        }
+
+
         warning.setStatus(Constants.formatIntegerNum(warning.getStatus()));
         warning.setIsdeleted(Constants.ZERO);
         warning.setCreator(warning.getLoginUserInfo().getId());
@@ -86,6 +110,23 @@
 
     @Override
     public void deleteById(Integer id, LoginUserInfo user) {
+        Warning warning = warningMapper.selectById(id);
+        if(Objects.isNull(warning)){
+            throw new BusinessException(ResponseStatus.DATA_EMPTY);
+        }
+
+        if(StringUtils.isNotBlank(warning.getCode())&&Constants.equalsInteger(warning.getType(),Constants.ZERO)||Constants.equalsInteger(warning.getType(),Constants.ONE)){
+            EventSubRequest eventParam = new EventSubRequest();
+            String path =systemDictDataBiz.queryByCode(Constants.HK_PARAM, Constants.HK_PUSH_URL).getCode();
+            eventParam.setEventDest(path+"/notice");
+            try {
+                eventParam.setEventTypes(new Integer[]{Integer.valueOf(warning.getCode())});
+            }catch (Exception e){
+                throw new BusinessException(ResponseStatus.NOT_ALLOWED.getCode(),"浜嬩欢缂栫爜閿欒锛�");
+            }
+            HKService.cancelEventSub(eventParam);//鍏堝彇娑�
+        }
+
         warningMapper.update(null,new UpdateWrapper<Warning>().lambda()
                 .set(Warning::getIsdeleted,Constants.ONE)
                 .set(Warning::getEditor,user.getId())
@@ -121,6 +162,22 @@
                 .eq(Warning::getName,warning.getName()) )>0){
             throw new BusinessException(ResponseStatus.BAD_REQUEST.getCode(),"瀵逛笉璧凤紝浜嬩欢绫诲瀷宸插瓨鍦紝璇疯繑鍥炲埛鏂伴〉闈㈡煡鐪嬶紒");
         }
+
+        if(StringUtils.isNotBlank(warning.getCode())&&Constants.equalsInteger(warning.getType(),Constants.ZERO)||Constants.equalsInteger(warning.getType(),Constants.ONE)){
+            EventSubRequest eventParam = new EventSubRequest();
+            String path =systemDictDataBiz.queryByCode(Constants.HK_PARAM, Constants.HK_PUSH_URL).getCode();
+            eventParam.setEventDest(path+"/notice");
+            try {
+                eventParam.setEventTypes(new Integer[]{Integer.valueOf(warning.getCode())});
+            }catch (Exception e){
+                throw new BusinessException(ResponseStatus.NOT_ALLOWED.getCode(),"浜嬩欢缂栫爜閿欒锛�");
+            }
+            HKService.cancelEventSub(eventParam);//鍏堝彇娑�
+            if(Constants.equalsInteger(warning.getStatus(),Constants.ONE)){
+                HKService.eventSub(eventParam);//瀹夐槻浜嬩欢
+            }
+        }
+
         warning.setEditDate(warning.getCreateDate());
         warning.setEditor(warning.getCreator());
         warningMapper.updateById(warning);
@@ -239,6 +296,29 @@
         if(Constants.equalsInteger(model.getStatus(),param.getStatus())){
             return;
         }
+
+        if(StringUtils.isNotBlank(model.getCode())&&(Constants.equalsInteger(model.getType(),Constants.ZERO)||Constants.equalsInteger(model.getType(),Constants.ONE))){
+            EventSubRequest eventParam = new EventSubRequest();
+            String path =systemDictDataBiz.queryByCode(Constants.HK_PARAM, Constants.HK_PUSH_URL).getCode();
+            eventParam.setEventDest(path+"/notice");
+            try {
+                eventParam.setEventTypes(new Integer[]{Integer.valueOf(model.getCode())});
+            }catch (Exception e){
+                throw new BusinessException(ResponseStatus.NOT_ALLOWED.getCode(),"浜嬩欢缂栫爜閿欒锛�");
+            }
+            HKService.cancelEventSub(eventParam);//鍏堝彇娑�
+            if(Constants.equalsInteger(param.getStatus(),Constants.ONE)){
+                BaseResponse response =  HKService.eventSub(eventParam);//瀹夐槻浜嬩欢
+                if(Objects.nonNull(response)&&StringUtils.equals(response.getCode(), HKConstants.RESPONSE_SUCCEE)){
+                    model.setSubscribeStatus(Constants.ONE);
+                }else{
+                    model.setSubscribeStatus(Constants.TWO);
+                    model.setSubscribeInfo(response.getMsg());
+                }
+            }else{
+                model.setSubscribeStatus(Constants.ZERO);
+            }
+        }
         model.setStatus(param.getStatus());
         model.setEditDate(new Date());
         model.setEditor(param.getLoginUserInfo().getId());
@@ -315,9 +395,13 @@
                         if(com.github.xiaoymin.knife4j.core.util.CollectionUtils.isNotEmpty(memberList)&&memberList.size()>Constants.ZERO){
                             List<String> ddUserIdList = memberList.stream().map(j->j.getErpId()).collect(Collectors.toList());
                             //鍙戦�佹帹閫侀拤閽夋秷鎭�
+
                             Boolean isSuccess = dingTalk.workInfoOANotice(Long.valueOf(systemDictDataBiz.queryByCode(Constants.DD_TALK,Constants.AGENT_ID).getCode()),
                                     String.join(",",ddUserIdList),
-                                    dingTalk.getWeatherNoticeMsg(title,text));
+                                    ddNoticeConfigMapper.selectCount(new QueryWrapper<DdNoticeConfig>().lambda()
+                                            .eq(DdNoticeConfig::getIsdeleted,Constants.ZERO).eq(DdNoticeConfig::getStatus,Constants.ZERO)
+                                            .eq(DdNoticeConfig::getObjType,13))>Constants.ZERO?
+                                    dingTalk.getWeatherNoticeMsg(title,text):null);
                             for (Member member:memberList) {
                                 WarningPush warningPush = new WarningPush();
                                 warningPush.setCreateDate(new Date());
@@ -339,9 +423,6 @@
         }catch (Exception e){
 
         }
-
-
-
 
     }
 

--
Gitblit v1.9.3