Browse Source

添加 履职提醒的短信推送

gaoxiong 1 year ago
parent
commit
195d89fb50

+ 13 - 4
soc-api/soc-api-system/src/main/java/com/xunmei/system/api/RemoteSmsService.java

@@ -1,15 +1,15 @@
 package com.xunmei.system.api;
 
+import com.xunmei.common.core.constant.SecurityConstants;
 import com.xunmei.common.core.constant.ServiceNameConstants;
 import com.xunmei.common.core.domain.R;
 import com.xunmei.common.core.web.domain.AjaxResult;
 import com.xunmei.system.api.factory.RemoteSmsFallbackFactory;
 import com.xunmei.system.api.vo.SmsInfoVo;
 import org.springframework.cloud.openfeign.FeignClient;
-import org.springframework.web.bind.annotation.GetMapping;
-import org.springframework.web.bind.annotation.PostMapping;
-import org.springframework.web.bind.annotation.RequestBody;
-import org.springframework.web.bind.annotation.RequestParam;
+import org.springframework.web.bind.annotation.*;
+
+import java.util.Date;
 
 @FeignClient(contextId = "remoteSmsService", value = ServiceNameConstants.SMS, fallbackFactory = RemoteSmsFallbackFactory.class)
 public interface RemoteSmsService {
@@ -30,4 +30,13 @@ public interface RemoteSmsService {
      */
     @PostMapping("/api/sms/sendSmsIot")
     void sendSmsIot(@RequestParam("orgId") Long orgId,@RequestParam("alarmContent") String alarmContent,@RequestParam("alarmTime") String alarmTime);
+
+    /**
+     * 发送待办数据
+     * @param orgId
+     * @param content
+     * @param time
+     */
+    @PostMapping("/api/sms/sendSmsTodo")
+    void sendSmsTodo(@RequestParam("orgId") Long orgId,@RequestParam("content")  String content,@RequestParam("time") Date time);
 }

+ 7 - 0
soc-api/soc-api-system/src/main/java/com/xunmei/system/api/factory/RemoteSmsFallbackFactory.java

@@ -9,6 +9,8 @@ import org.slf4j.LoggerFactory;
 import org.springframework.cloud.openfeign.FallbackFactory;
 import org.springframework.stereotype.Component;
 
+import java.util.Date;
+
 /**
  * @description:
  * @author: lj
@@ -28,7 +30,12 @@ public class RemoteSmsFallbackFactory implements FallbackFactory<RemoteSmsServic
 
             @Override
             public void sendSmsIot(Long orgId, String alarmContent, String alarmTime) {
+                log.error("短信服务未找到");
+            }
 
+            @Override
+            public void sendSmsTodo(Long orgId, String content, Date time) {
+                log.error("短信服务未找到");
             }
 
         };

+ 1 - 1
soc-modules/soc-modules-core/src/main/java/com/xunmei/core/SocCoreApplication.java

@@ -14,7 +14,7 @@ import org.springframework.scheduling.annotation.EnableAsync;
 @RefreshScope
 @MapperScan("com.xunmei.core.**.mapper")
 @EnableCustomConfig
-@ComponentScan(basePackages = {"com.xunmei.core", "com.xunmei.common.redis"})
+@ComponentScan(basePackages = {"com.xunmei.core", "com.xunmei.common.redis","com.xunmei.system.api"})
 @EnableCustomSwagger2
 @EnableSocFeignClients
 @SpringBootApplication

+ 29 - 10
soc-modules/soc-modules-core/src/main/java/com/xunmei/core/information/service/impl/CoreResumptionConfigurationServiceImpl.java

@@ -6,23 +6,24 @@ import com.baomidou.mybatisplus.core.toolkit.CollectionUtils;
 import com.baomidou.mybatisplus.core.toolkit.IdWorker;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
 import com.xunmei.common.core.constant.SecurityConstants;
-import com.xunmei.common.core.utils.StringUtils;
-import com.xunmei.core.information.service.ICoreMessageCenterService;
-import com.xunmei.system.api.RemoteJobService;
-import com.xunmei.system.api.domain.SysUser;
-import com.xunmei.system.api.dto.SysJobDTO;
-import com.xunmei.system.api.dto.SysPlanOrgDTO;
 import com.xunmei.common.core.utils.DateUtils;
+import com.xunmei.common.core.utils.StringUtils;
 import com.xunmei.common.security.utils.SecurityUtils;
 import com.xunmei.core.information.domain.CoreMessageCenter;
 import com.xunmei.core.information.domain.CoreResumptionConfiguration;
-import com.xunmei.core.resumption.domain.Resumption;
-import com.xunmei.core.resumption.dto.CoreResumptionConfigurationDTO;
 import com.xunmei.core.information.mapper.CoreResumptionConfigurationMapper;
+import com.xunmei.core.information.service.ICoreMessageCenterService;
 import com.xunmei.core.information.service.ICoreResumptionConfigurationService;
+import com.xunmei.core.resumption.domain.Resumption;
+import com.xunmei.core.resumption.dto.CoreResumptionConfigurationDTO;
 import com.xunmei.core.resumption.mapper.ResumptionMapper;
 import com.xunmei.core.resumption.vo.CoreResumptionConfigurationVO;
+import com.xunmei.system.api.RemoteJobService;
+import com.xunmei.system.api.RemoteSmsService;
 import com.xunmei.system.api.RemoteUserService;
+import com.xunmei.system.api.domain.SysUser;
+import com.xunmei.system.api.dto.SysJobDTO;
+import com.xunmei.system.api.dto.SysPlanOrgDTO;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
 
@@ -46,12 +47,25 @@ public class CoreResumptionConfigurationServiceImpl extends ServiceImpl<CoreResu
     @Autowired
     private ResumptionMapper resumptionMapper;
 
+
+
     @Autowired
     private RemoteUserService remoteUserService;
-    @Autowired
-    private ICoreMessageCenterService coreMessageCenterService;
+
     @Autowired
     private RemoteJobService remoteJobService;
+
+    @Autowired
+    private RemoteSmsService remoteSmsService;
+
+
+    @Autowired
+    private ICoreMessageCenterService coreMessageCenterService;
+
+
+
+
+
     private static final String TIME = ":00";
 
     /**
@@ -273,6 +287,7 @@ public class CoreResumptionConfigurationServiceImpl extends ServiceImpl<CoreResu
         if (CollectionUtils.isNotEmpty(coreResumptionConfigurations) && CollectionUtils.isNotEmpty(resumptions)) {
             resumptions.forEach(r -> {
                 addMassageCenter(r.getName(), null, coreResumptionConfigurations.get(0).getTimeUnit(), r.getOrgId(), r.getPlanId());
+                remoteSmsService.sendSmsTodo(r.getOrgId(),r.getName(), r.getPlanEndTime());
             });
         }
     }
@@ -287,6 +302,7 @@ public class CoreResumptionConfigurationServiceImpl extends ServiceImpl<CoreResu
         if (CollectionUtils.isNotEmpty(coreResumptionConfigurations) && CollectionUtils.isNotEmpty(resumptions)) {
             resumptions.forEach(r -> {
                 addMassageCenter(r.getName(), null, coreResumptionConfigurations.get(0).getTimeUnit(), r.getOrgId(), r.getPlanId());
+                remoteSmsService.sendSmsTodo(r.getOrgId(),r.getName(), r.getPlanEndTime());
             });
         }
     }
@@ -301,6 +317,7 @@ public class CoreResumptionConfigurationServiceImpl extends ServiceImpl<CoreResu
         if (CollectionUtils.isNotEmpty(coreResumptionConfigurations) && CollectionUtils.isNotEmpty(resumptions)) {
             resumptions.forEach(r -> {
                 addMassageCenter(r.getName(), null, coreResumptionConfigurations.get(0).getTimeUnit(), r.getOrgId(), r.getPlanId());
+                remoteSmsService.sendSmsTodo(r.getOrgId(),r.getName(), r.getPlanEndTime());
             });
         }
     }
@@ -315,6 +332,8 @@ public class CoreResumptionConfigurationServiceImpl extends ServiceImpl<CoreResu
         if (CollectionUtils.isNotEmpty(coreResumptionConfigurations) && CollectionUtils.isNotEmpty(resumptions)) {
             resumptions.forEach(r -> {
                 addMassageCenter(r.getName(), null, coreResumptionConfigurations.get(0).getTimeUnit(), r.getOrgId(), r.getPlanId());
+
+                remoteSmsService.sendSmsTodo(r.getOrgId(),r.getName(), r.getPlanEndTime());
             });
         }
     }

+ 1 - 0
soc-modules/soc-modules-mediator/src/main/java/com/xunmei/mediator/api/service/impl/IotAlarmDataServiceImpl.java

@@ -8,6 +8,7 @@ import com.alibaba.fastjson.JSONArray;
 import com.alibaba.fastjson.JSONObject;
 import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import com.xunmei.common.core.constant.SecurityConstants;
 import com.xunmei.common.core.domain.iot.domain.IotDevice;
 import com.xunmei.common.core.domain.iot.domain.IotDvrDisk;
 import com.xunmei.common.core.domain.iot.domain.IotDvrHardDiskDetection;

+ 7 - 1
soc-modules/soc-modules-sms/src/main/java/com/xunmei/sms/controller/SmsController.java

@@ -7,6 +7,7 @@ import com.xunmei.system.api.vo.SmsInfoVo;
 import org.springframework.web.bind.annotation.*;
 
 import javax.annotation.Resource;
+import java.util.Date;
 
 
 /**
@@ -36,6 +37,11 @@ public class SmsController extends BaseController {
 
     @PostMapping("/sendSmsIot")
     public void sendSmsIot(Long orgId,String alarmContent,String alarmTime){
-
+        smsService.sendSmsIot(orgId,alarmContent,alarmTime);
     };
+
+    @PostMapping("/sendSmsTodo")
+    public void sendSmsTodo(Long orgId, String content, Date time){
+        smsService.sendSmsTodo(orgId,content,time);
+    }
 }

+ 11 - 0
soc-modules/soc-modules-sms/src/main/java/com/xunmei/sms/service/ISmsService.java

@@ -3,6 +3,8 @@ package com.xunmei.sms.service;
 import com.xunmei.common.core.web.domain.AjaxResult;
 import com.xunmei.system.api.vo.SmsInfoVo;
 
+import java.util.Date;
+
 /**
  * 短信服务
  * @author wubiyu[2024/03/15]
@@ -22,4 +24,13 @@ public interface ISmsService {
      * @return
      */
     void sendSmsIot(Long orgId,String alarmContent,String alarmTime);
+
+
+    /**
+     * 发动待办短信
+     * @param orgId 机构id
+     * @param content 内容
+     * @param time 待办时间
+     */
+    void sendSmsTodo(Long orgId,String content, Date time);
 }

+ 31 - 0
soc-modules/soc-modules-sms/src/main/java/com/xunmei/sms/service/SmsService.java

@@ -130,6 +130,37 @@ public class SmsService implements ISmsService {
         }
     }
 
+    @Override
+    public void sendSmsTodo(Long orgId, String content, Date time) {
+        List<SysUser> userList = RemoteCallHandlerExecutor.executeRemoteCall(() ->
+                remoteRoleService.selectUserByRoleNameAndOrgId("网点负责人", orgId, 0, SecurityConstants.INNER), ErrorMsgConstants.QUERY_USER_DATA_ERROR);
+        SysOrg sysOrg = remoteOrgService.selectOrgById(orgId, SecurityConstants.INNER);
+        String date = DateUtil.format(time, "yyyy-MM-dd");
+        Date now = new Date();
+        String day = DateUtil.format(now, "yyyy-MM-dd");
+        String sfm = DateUtil.format(now, "hh:mm:ss");
+        if (ObjectUtil.isNotEmpty(userList)){
+            for (SysUser sysUser : userList) {
+                String phone = sysUser.getPhone();
+                SmsInfoVo smsInfoVo = new SmsInfoVo();
+                smsInfoVo.setBelongBranchId(sysOrg.getGuid());
+                smsInfoVo.setTranType(TODO_CODE);
+                smsInfoVo.setMobile(phone);
+                smsInfoVo.setOccurDate(day);
+                smsInfoVo.setOccurTime(sfm);
+                smsInfoVo.setBak3("任务【"+ content + "】未完成,将于"+date+"逾期。");
+                CompositeData smsCompositeData = SmsUtil.createSmsBody(smsInfoVo,systemCode,systemName,serviceCode,serviceScene);
+                CompositeData rspData = null;
+                try {
+                    rspData = ESBClient.request(smsCompositeData);
+                } catch (Exception e) {
+                    e.printStackTrace();
+                }
+                getResult(rspData);
+            }
+        }
+    }
+
     private AjaxResult getResult(CompositeData repData) {
         boolean result = false;
         try {