skjcmanager/skjcmanager-service/skjcmanager-alerts/pom.xml
@@ -29,6 +29,14 @@ <groupId>cn.com.flaginfo.sdk.cmc</groupId> <artifactId>send-api-sdk</artifactId> <version>1.2.1</version> <!-- <type>jar</type>--> <!-- <scope>system</scope>--> <!-- <systemPath>${project.basedir}/libs/send-api-sdk-1.2.1.jar</systemPath>--> </dependency> <!--excel--> <dependency> <groupId>org.springblade</groupId> <artifactId>blade-starter-excel</artifactId> </dependency> <dependency> <groupId>cn.gistack</groupId> skjcmanager/skjcmanager-service/skjcmanager-alerts/src/main/java/cn/gistack/alerts/sms/controller/SmsController.java
@@ -7,16 +7,23 @@ import cn.com.flaginfo.sdk.cmc.api.sms.send.SMSSendRequest; import cn.gistack.alerts.sms.entity.SmsRequest; import cn.gistack.alerts.sms.entity.SmsResult; import cn.gistack.alerts.sms.excel.SendRainSmsExcel; import cn.gistack.alerts.sms.listener.ExcelListener; import cn.gistack.alerts.sms.service.SmsService; import cn.gistack.alerts.sms.util.SmsUtils; import cn.gistack.alerts.sms.vo.SmsRequestTemplate; import cn.gistack.system.user.entity.User; import cn.gistack.system.user.feign.IUserClient; import com.alibaba.excel.EasyExcel; import lombok.AllArgsConstructor; import lombok.extern.slf4j.Slf4j; import org.springblade.core.excel.util.ExcelUtil; import org.springblade.core.redis.cache.BladeRedis; import org.springblade.core.tool.api.R; import org.springframework.web.bind.annotation.*; import org.springframework.web.multipart.MultipartFile; import java.io.IOException; import java.util.Arrays; import java.util.List; import java.util.Map; @@ -284,4 +291,25 @@ public R getCallNotConnectSmsNoticeInfo(String callId){ return R.data(smsService.getCallNotConnectSmsNoticeInfo(callId)); } /** * 导入表格发送降雨短信 * @param file excel文件 * @param startTime 短信内容填报起始时间 * @param endTime 短信内容填报截止时间 * @return */ @GetMapping("/import-send-rain-sms") public R importSendRainSms(MultipartFile file,String startTime,String endTime){ ExcelListener<SendRainSmsExcel> listener = new ExcelListener<>(); //headRowNumber(1)从第2行开始读取,使用getDatas()方法取出数据 try { EasyExcel.read(file.getInputStream(), SendRainSmsExcel.class, listener).headRowNumber(1).sheet(0).doRead(); } catch (IOException e) { e.printStackTrace(); } List<SendRainSmsExcel> list = listener.getDatas(); // 导入并返回 return R.data(smsService.importSendRainSms(list,startTime,endTime)); } } skjcmanager/skjcmanager-service/skjcmanager-alerts/src/main/java/cn/gistack/alerts/sms/excel/SendRainSmsExcel.java
New file @@ -0,0 +1,22 @@ package cn.gistack.alerts.sms.excel; import com.alibaba.excel.annotation.ExcelProperty; import com.alibaba.excel.annotation.write.style.ColumnWidth; import com.alibaba.excel.annotation.write.style.ContentRowHeight; import com.alibaba.excel.annotation.write.style.HeadRowHeight; import lombok.Data; import java.io.Serializable; @Data @ColumnWidth(25) @HeadRowHeight(20) @ContentRowHeight(18) public class SendRainSmsExcel implements Serializable { private static final long serialVersionUID = 1L; @ColumnWidth(15) @ExcelProperty("水库代码") private String waterCode; } skjcmanager/skjcmanager-service/skjcmanager-alerts/src/main/java/cn/gistack/alerts/sms/listener/ExcelListener.java
New file @@ -0,0 +1,55 @@ package cn.gistack.alerts.sms.listener; import com.alibaba.excel.context.AnalysisContext; import com.alibaba.excel.event.AnalysisEventListener; import java.util.ArrayList; import java.util.List; /** * 自定义excel 解析监听器 * @param <T> */ public final class ExcelListener<T> extends AnalysisEventListener<T> { /** * 自定义用于暂时存储data * 可以通过实例获取该值 */ private List<T> datas = new ArrayList<>(); /** * 每解析一行都会回调invoke()方法 * @param object 读取后的数据对象 * @param context 内容 */ @Override @SuppressWarnings("unchecked") public void invoke(Object object, AnalysisContext context) { T map = (T) object; //数据存储到list,供批量处理,或后续自己业务逻辑处理。 datas.add(map); } @Override public void doAfterAllAnalysed(AnalysisContext context) { //解析结束销毁不用的资源 //注意不要调用datas.clear(),否则getDatas为null } /** * 返回数据 * @return 返回读取的数据集合 **/ public List<T> getDatas() { return datas; } /** * 设置读取的数据集合 * @param datas 设置读取的数据集合 **/ public void setDatas(List<T> datas) { this.datas = datas; } } skjcmanager/skjcmanager-service/skjcmanager-alerts/src/main/java/cn/gistack/alerts/sms/service/SmsService.java
@@ -3,6 +3,7 @@ import cn.com.flaginfo.sdk.cmc.api.sms.send.SMSSendRequest; import cn.gistack.alerts.sms.entity.SmsRecord; import cn.gistack.alerts.sms.entity.SmsResult; import cn.gistack.alerts.sms.excel.SendRainSmsExcel; import cn.gistack.alerts.sms.vo.SmsRequestTemplate; import java.util.List; @@ -77,4 +78,13 @@ * @return */ Object getCallNotConnectSmsNoticeInfo(String callId); /** * 导入表格发送降雨短信 * @param list 导入的excel 集合数据 * @param startTime 短信内容填报起始时间 * @param endTime 短信内容填报截止时间 * @return */ Object importSendRainSms(List<SendRainSmsExcel> list,String startTime,String endTime); } skjcmanager/skjcmanager-service/skjcmanager-alerts/src/main/java/cn/gistack/alerts/sms/service/impl/SmsServiceImpl.java
@@ -11,6 +11,7 @@ import cn.gistack.alerts.sms.entity.SmsRecord; import cn.gistack.alerts.sms.entity.SmsResult; import cn.gistack.alerts.sms.entity.SmsTemplate; import cn.gistack.alerts.sms.excel.SendRainSmsExcel; import cn.gistack.alerts.sms.service.ISmsRecordService; import cn.gistack.alerts.sms.service.ISmsResultService; import cn.gistack.alerts.sms.service.ISmsTemplateService; @@ -20,6 +21,7 @@ import cn.gistack.common.cache.CacheNames; import cn.gistack.sm.intelligentCall.entity.CallNotFillRecord; import cn.gistack.sm.intelligentCall.feign.OutCallClient; import cn.gistack.sm.sjztmd.feign.IAttResManagePersonClient; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.baomidou.mybatisplus.core.toolkit.IdWorker; import org.jetbrains.annotations.NotNull; @@ -61,6 +63,9 @@ @Autowired private OutCallClient outCallClient; @Autowired private IAttResManagePersonClient attResManagePersonClient; /** * 发送 xx 变量模板短信 @@ -523,4 +528,23 @@ // 没有,已过期 return map; } /** * 导入表格发送降雨短信 * @param list 导入的excel 集合数据 * @param startTime 短信内容填报起始时间 * @param endTime 短信内容填报截止时间 * @return */ @Override public Object importSendRainSms(List<SendRainSmsExcel> list,String startTime,String endTime) { // 获取水库个数 Integer size = list.size(); // 通过水库代码获取巡查责任人及技术责任人手机号 // Set<String> personList = attResManagePersonClient.getPersonListByWaterCodeList(list); // 返回 return null; } } skjcmanager/skjcmanager-service/skjcmanager-alerts/src/main/java/cn/gistack/alerts/sms/util/SmsUtils.java
@@ -11,6 +11,7 @@ import cn.com.flaginfo.sdk.cmc.api.sms.send.SMSSendRequest; import cn.com.flaginfo.sdk.cmc.common.ApiEnum; import cn.gistack.common.constant.SmsConstant; import org.springblade.core.tool.utils.StringUtil; import org.springframework.stereotype.Component; import java.text.SimpleDateFormat; @@ -122,4 +123,10 @@ // System.out.println(request.isSucc()); // System.out.println(JSON.toJSONString(request)); // } public static void main(String[] args) { String redisByTaskId = "123"; String taskId = ""; boolean flag = !StringUtil.equalsIgnoreCase(redisByTaskId, taskId); System.out.println("flag = " + flag); } }