Przeglądaj źródła

增加 获取到事件时 自动发送短信开关

lilt085163@126.com 3 lat temu
rodzic
commit
d54665ab9e

+ 21 - 3
src/main/java/com/care/bms/controller/TestController.java

@@ -1,6 +1,9 @@
 package com.care.bms.controller;
 
 import com.care.bms.service.BmsEventOrderService;
+import com.care.common.cache.RedisKeyConstant;
+import com.care.common.cache.RedisUtil;
+import com.care.common.service.SmsSendService;
 import com.care.common.util.Result;
 import io.swagger.annotations.Api;
 import io.swagger.annotations.ApiOperation;
@@ -8,8 +11,11 @@ import lombok.extern.slf4j.Slf4j;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.web.bind.annotation.GetMapping;
 import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RequestParam;
 import org.springframework.web.bind.annotation.RestController;
 
+import javax.annotation.Resource;
+
 /**
  * @Author: lilt
  * @Date: 2021/5/26
@@ -18,16 +24,28 @@ import org.springframework.web.bind.annotation.RestController;
 @RestController
 @Api(value = "TestController", tags = { "测试" })
 @Slf4j
-@RequestMapping("/bms/event")
+@RequestMapping("/bms")
 public class TestController {
-
+    @Resource
+    private RedisUtil redisUtil;
     @Autowired
     private BmsEventOrderService bmsEventOrderService;
 
-    @GetMapping("/testData")
+    @GetMapping("/event/testData")
     @ApiOperation(tags = {"未处理事件"},value = "模拟生成定单数据")
     public Result<Object> listMyHandle(){
             this.bmsEventOrderService.insertTestData();
             return Result.success("生成成功");
     }
+
+    @GetMapping("/bms/switch/autoSms")
+    @ApiOperation(value = "自动发送短信")
+    public Result<Object> autoSmsSwitch(@RequestParam("flag") String flag){
+        if ("on".equals(flag)){
+            redisUtil.set(RedisKeyConstant.SWITCH_SMS,"on",60*60*24);
+        }else{
+            redisUtil.del(RedisKeyConstant.SWITCH_SMS);
+        }
+        return Result.success("生成成功",redisUtil.get(RedisKeyConstant.SWITCH_SMS));
+    }
 }

+ 11 - 1
src/main/java/com/care/bms/mqtt/MqttDataConnector.java

@@ -205,7 +205,17 @@ public class MqttDataConnector {
             xbMqttDataConnector.setReSubscribe("5JPD/monitor/a1/event", new MqttMessageListener());
 
             while (true){
-                xbMqttDataConnector.publish("5JPD/monitor/a1/event","hello mqtt!999");
+                xbMqttDataConnector.publish("5JPD/monitor/a1/event","{\n" +
+                        " \"type\": \"FallDown\",\n" +
+                        " \"msg\": {\n" +
+                        "  \"ts\": 1,\n" +
+                        "  \"tid\": 2,\n" +
+                        "  \"conf\": 3,\n" +
+                        "  \"x\": 1.2,\n" +
+                        "  \"y\": 0.3,\n" +
+                        "  \"z\": 3.4\n" +
+                        " }\n" +
+                        "}");
                 Thread.sleep(5000);
             }
 

+ 1 - 0
src/main/java/com/care/bms/mqtt/MqttMessageListener.java

@@ -147,6 +147,7 @@ public class MqttMessageListener implements IMqttMessageListener {
         order.setCreateTime(DateUtil.date());
         order.setModifyTime(DateUtil.date());
         careEventOrderService.saveOrder(order);
+
     }
 
 }

+ 2 - 0
src/main/java/com/care/common/cache/RedisKeyConstant.java

@@ -48,4 +48,6 @@ public class RedisKeyConstant {
 
     public static final String KEY_APPLY_LOCAK = "KEY_APPLY:LOCK";
 
+    public static final String SWITCH_SMS = "SWITCH:SMS";
+
 }

+ 2 - 1
src/main/java/com/care/common/interceptor/AuthorizationInterceptorConf.java

@@ -31,7 +31,8 @@ public class AuthorizationInterceptorConf extends WebMvcConfigurerAdapter implem
             "/bms/bigscreen/ws",
             //不拦截登录接口
             "/bms/login",
-            "/bms/event/testData"
+            "/bms/event/testData",
+            "/bms/switch/autoSms"
 
 
     };

+ 34 - 3
src/main/java/com/care/common/service/impl/CareEventOrderServiceImpl.java

@@ -5,6 +5,8 @@ import cn.hutool.core.collection.CollUtil;
 import cn.hutool.core.date.DateUtil;
 import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import com.care.common.cache.RedisKeyConstant;
+import com.care.common.cache.RedisUtil;
 import com.care.common.entity.*;
 import com.care.common.enums.*;
 import com.care.common.mapper.CareEventOrderMapper;
@@ -43,6 +45,10 @@ public class CareEventOrderServiceImpl extends ServiceImpl<CareEventOrderMapper,
 
     @Resource
     private CareSysUserService careSysUserService;
+    @Resource
+    private RedisUtil redisUtil;
+    @Resource
+    private SmsSendService smsSendService;
     /**
      * 统计事件数量
      *
@@ -80,7 +86,31 @@ public class CareEventOrderServiceImpl extends ServiceImpl<CareEventOrderMapper,
         his.setCreateTime(DateUtil.date());
         addOlderToOrderOlder(order);
         addChamberlainToOrder(order);
-        addContactToOrderContact(order);
+        List<CareEventOrderContactStatus> contacts = addContactToOrderContact(order);
+        Object switchSms = redisUtil.get(RedisKeyConstant.SWITCH_SMS);
+        if (switchSms != null){
+            //给联系人发送短信
+            if (CollUtil.isNotEmpty(contacts)){
+                CareHouse house = this.careHouseService.getById(order.getHouseId());
+                contacts.forEach(item ->{
+                    boolean smsResult = smsSendService.sendSmsToLianxiren(item.getContactPhone(),house.getName());
+                    if (smsResult){
+                        CareEventOrderHandleHis his2 = new CareEventOrderHandleHis();
+                        his2.setOrgId(item.getOrgId());
+                        his2.setStationId(item.getStationId());
+                        his2.setOrderId(item.getOrderId());
+                        his2.setLogType(LogTypeEnum.SMS.getValue());
+                        his2.setLogObjectId(item.getContactId());
+                        his2.setLogObjectName(item.getContactName());
+                        his2.setLogResult("短信通知");
+                        his2.setOpUserRole(UserRoleEnum.SEAT.getValue());
+                        his2.setCreateTime(DateUtil.date());
+                        his2.setRelationTypeDesc(item.getRelationTypeDesc());
+                        this.careEventOrderHandleHisService.save(his);
+                    }
+                });
+            }
+        }
         this.careEventOrderHandleHisService.save(his);
         return true;
     }
@@ -143,10 +173,10 @@ public class CareEventOrderServiceImpl extends ServiceImpl<CareEventOrderMapper,
      * 将紧急联系人加入到联系人当中
      * @param order
      */
-    private void addContactToOrderContact(CareEventOrder order){
+    private List<CareEventOrderContactStatus> addContactToOrderContact(CareEventOrder order){
+        List<CareEventOrderContactStatus> orderContactList = Lists.newArrayList();
         List<CareHouseContact> cons = this.careHouseContactService.queryContactByHouseId(order.getHouseId());
         if (CollUtil.isNotEmpty(cons)){
-            List<CareEventOrderContactStatus> orderContactList = Lists.newArrayList();
             cons.forEach(item ->{
                 CareEventOrderContactStatus orderContactStatus = new CareEventOrderContactStatus();
                 orderContactStatus.setOrgId(order.getOrgId());
@@ -168,5 +198,6 @@ public class CareEventOrderServiceImpl extends ServiceImpl<CareEventOrderMapper,
             });
             this.careEventOrderContactStatusService.saveBatch(orderContactList);
         }
+        return orderContactList;
     }
 }