Browse Source

四医大短信业务功能

liubo 3 years ago
parent
commit
7815f9866c

+ 4 - 0
docker/mysql/update/job-update.sql

@@ -1,3 +1,7 @@
 
 # 添加任务
 INSERT INTO `sys_job` (`job_id`, `job_name`, `job_group`, `invoke_target`, `cron_expression`, `misfire_policy`, `concurrent`, `status`, `create_by`, `create_time`, `update_by`, `update_time`, `remark`) VALUES (16, '实验室风险指标监测', 'DEFAULT', 'chemicalTask.indicatorMonitoring', '0 0 0/1 * * ?', '1', '1', '1', 'superAdmin', '2022-08-30 10:21:11', '', NULL, '');
+
+# 2022-09-19 liubo
+INSERT INTO `sys_job` (`job_id`, `job_name`, `job_group`, `invoke_target`, `cron_expression`, `misfire_policy`, `concurrent`, `status`, `create_by`, `create_time`, `update_by`, `update_time`, `remark`) VALUES (17, '监测四医大短信上行结果', 'DEFAULT', 'chemicalTask.queryUplinkResult', '0 0/5 * * * ? ', '1', '1', '0', 'superAdmin', '2022-09-19 15:31:02', '', '2022-09-19 15:31:06', '');
+INSERT INTO `sys_job` (`job_id`, `job_name`, `job_group`, `invoke_target`, `cron_expression`, `misfire_policy`, `concurrent`, `status`, `create_by`, `create_time`, `update_by`, `update_time`, `remark`) VALUES (18, '四医大短信告警方案', 'DEFAULT', 'chemicalTask.sendPhoneBySyd', '0 0/5 * * * ? ', '1', '1', '0', 'superAdmin', '2022-09-19 15:32:12', '', '2022-09-19 15:32:21', '');

+ 6 - 0
zd-api/zd-api-system/src/main/java/com/zd/system/api/chemical/RemoteStockService.java

@@ -39,4 +39,10 @@ public interface RemoteStockService {
                         @RequestParam(value = "purpose", required = true) Integer purpose,
                         @RequestParam(value = "lockApplyId") Long lockApplyId,
                         @RequestParam(value = "phones", required = true) @NotNull String... phones);
+
+    /**
+     * 四医大短信告警方案阶梯式通知流程
+     */
+    @GetMapping("/hxpAlarmRecord/sendPhoneBySyd")
+    public void sendPhoneBySyd();
 }

+ 5 - 0
zd-api/zd-api-system/src/main/java/com/zd/system/api/chemical/factory/RemoteStockFallbackFactory.java

@@ -53,6 +53,11 @@ public class RemoteStockFallbackFactory implements FallbackFactory<RemoteStockSe
                 logger.error("四医大短信调用失败:{}" ,throwable.getMessage());
                 return R.fail("四医大短信调用失败:" + throwable.getMessage());
             }
+
+            @Override
+            public void sendPhoneBySyd() {
+                logger.error("四医大短信告警方案阶梯式通知流程调用失败:{}" ,throwable.getMessage());
+            }
         };
     }
 }

+ 1 - 1
zd-modules/zd-chemical/src/main/java/com/zd/chemical/controller/HxpUserecordController.java

@@ -124,7 +124,7 @@ public class HxpUserecordController extends BaseController {
     }
 
     /**
-     * 检测领用超时
+     * 定时四医大短信上行查询结果
      */
     @GetMapping(value = "/queryUplink")
     public void queryUplinkResult() {

+ 23 - 7
zd-modules/zd-chemical/src/main/java/com/zd/chemical/service/impl/HxpChemicalServiceImpl.java

@@ -1,6 +1,8 @@
 package com.zd.chemical.service.impl;
 
+import cn.hutool.core.date.DateUtil;
 import cn.hutool.core.util.StrUtil;
+import cn.hutool.json.JSONUtil;
 import com.zd.chemical.domain.HxpAlarmRecord;
 import com.zd.chemical.domain.HxpChemical;
 import com.zd.chemical.domain.HxpChemicalClassify;
@@ -11,15 +13,18 @@ import com.zd.chemical.mapper.HxpChemicalClassifyMapper;
 import com.zd.chemical.mapper.HxpChemicalMapper;
 import com.zd.chemical.mapper.HxpUserecordMapper;
 import com.zd.chemical.service.IHxpChemicalService;
+import com.zd.chemical.util.SmsSydUtil;
 import com.zd.common.core.domain.per.PerPrefix;
 import com.zd.common.core.exception.ServiceException;
 import com.zd.common.core.utils.DateUtils;
 import com.zd.common.core.utils.Pinyin4jUtil;
 import com.zd.common.core.utils.SecurityUtils;
 import com.zd.common.core.utils.StringUtils;
+import com.zd.common.core.web.domain.AjaxResult;
 import com.zd.common.datascope.annotation.DataScope;
 import com.zd.common.security.utils.DictUtils;
 import com.zd.common.security.utils.SaveUtil;
+import com.zd.system.api.alarm.RemoteAlarmService;
 import com.zd.system.api.alarm.domain.AlarmEntrty;
 import com.zd.system.api.alarm.domain.Routes;
 import com.zd.system.api.alarm.domain.SendTypes;
@@ -34,6 +39,7 @@ import org.apache.commons.collections4.CollectionUtils;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
 
+import javax.annotation.Resource;
 import java.math.BigDecimal;
 import java.util.*;
 import java.util.concurrent.atomic.DoubleAdder;
@@ -58,6 +64,10 @@ public class HxpChemicalServiceImpl implements IHxpChemicalService {
     private HxpUserecordMapper hxpUserecordMapper;
     @Autowired
     private HxpAlarmRecordMapper hxpAlarmRecordMapper;
+    @Autowired
+    private RemoteAlarmService remoteAlarmService;
+    @Resource
+    private SmsSydUtil smsSydUtil;
 
 
     /**
@@ -536,21 +546,27 @@ public class HxpChemicalServiceImpl implements IHxpChemicalService {
 
                     hxpAlarmRecordMapper.insertHxpAlarmRecord(hxpAlarmRecord);
 
-                    // TODO 此处需要发送短信通知 - 等 MQTT 提前为公共服务
+                    // 此处需要发送短信通知
 
                     String[] strings = Stream.of(new String[]{subInfo.get("phones")+""})
                             .filter(a -> StrUtil.isNotBlank(a))
                             .collect(Collectors.joining(","))
                             .split(",");
 
-//                    AlarmEntrty alarmEntrty = new AlarmEntrty(Routes.NoticePush, strings, "房间内危化品已定为重大危险源,请确认安全存放量");
-//                    MessageBody messageBody = new MessageBody();
-//                    messageBody.setData(alarmEntrty);
-//                    commonSend.send("alarm/"+map.get("subId"),messageBody, SendMode.DISTINCT);
+                    String subName = subInfo.get("name")==null?"":subInfo.get("name")+"";
+                    String content = subName + "房间内危化品已定为重大危险源,请确认安全存放量!";
+                    if(HxpStockServiceImpl.phoneMode == 0){
+
+                        AlarmEntrty alarmEntrty = new AlarmEntrty(Routes.NoticePush, strings,content);
+                        remoteAlarmService.send(alarmEntrty);
+                    }else if(HxpStockServiceImpl.phoneMode == 1){
+                        try {
+                            smsSydUtil.sendSydSms(content, 1, null, strings);
+                        } catch (Exception e) {
+                        }
+                    }
                 }
             });
-
-
         }
     }
 }

+ 1 - 1
zd-modules/zd-chemical/src/main/java/com/zd/chemical/service/impl/HxpStockServiceImpl.java

@@ -63,7 +63,7 @@ public class HxpStockServiceImpl implements IHxpStockService {
     }
 
     @Value("${phoneMode:0}")
-    private Integer phoneMode;
+    public static Integer phoneMode;
 
     @Autowired
     private HxpStockMapper hxpStockMapper;

+ 0 - 2
zd-modules/zd-chemical/src/main/java/com/zd/chemical/util/SmsSydUtil.java

@@ -50,8 +50,6 @@ public class SmsSydUtil {
     private ISydSmsLogService sydSmsLogService;
 
     SmsSydUtil(){
-        // TODO 参数配置化
-
         DOWN_MAP = new HashMap<>();
         DOWN_MAP.put(0 , "成功");
         DOWN_MAP.put(-1 , "账号无效,或者账号停用、过期等。");

+ 8 - 0
zd-modules/zd-modules-job/src/main/java/com/zd/job/task/ChemicalTask.java

@@ -3,6 +3,7 @@ package com.zd.job.task;
 import com.zd.system.api.chemical.RemoteStockService;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Component;
+import org.springframework.web.bind.annotation.GetMapping;
 import org.springframework.web.bind.annotation.PostMapping;
 
 @Component("chemicalTask")
@@ -38,4 +39,11 @@ public class ChemicalTask {
     public void queryUplinkResult(){
         remoteStockService.queryUplinkResult();
     }
+
+    /**
+     * 四医大短信告警方案阶梯式通知流程
+     */
+    public void sendPhoneBySyd(){
+        remoteStockService.sendPhoneBySyd();
+    }
 }