| | |
| | | Map<String, List<Temp>> listMap = tempList.stream().collect(Collectors.groupingBy(Temp::getPhone)); |
| | | // 遍历 map 发送短信 |
| | | listMap.forEach((s, temps) -> { |
| | | |
| | | List<AlarmRecordDetailVO> alarmRecordDetailList = new ArrayList<>(); |
| | | StringBuilder builder = new StringBuilder(); |
| | | StringBuilder smsRecordBuilder = new StringBuilder(); |
| | | builder.append(s).append(","); |
| | | // 水库去重 |
| | | // List<Temp> tempListNew = temps.stream().collect( |
| | | // Collectors.collectingAndThen( |
| | | // Collectors.toCollection(() -> new TreeSet<>(Comparator.comparing(Temp::getReservoirCode))), ArrayList::new) |
| | | // ); |
| | | // 如果一人对应水库数量超过30个,则分批发送 |
| | | List<List<Temp>> lists = Lists.partition(new ArrayList<>(temps), 30); |
| | | for (List<Temp> list : lists) { |
| | | List<AlarmRecordDetailVO> alarmRecordDetailList = new ArrayList<>(); |
| | | // 遍历 |
| | | for (Temp temp : list) { |
| | | builder.append(temp.getReservoirName()).append(","); |
| | |
| | | SmsRecord smsRecord = saveSendRecord(request, resultComResult.getCode().toString(), resultComResult.getMsg(), smsResult.getId()); |
| | | //保存告警记录详情信息 |
| | | if (null != smsRecord) { |
| | | List<AlarmRecordDetail> alarmRecordDetailArrayList = new ArrayList<>(); |
| | | for (AlarmRecordDetailVO alarmRecordDetail : alarmRecordDetailList) { |
| | | AlarmRecordDetail alarmRecordDetail1 = new AlarmRecordDetail(); |
| | | // 短信内容拼接(完成发送的结果信息) |
| | | String formatContent = String.format(str, alarmRecordDetail.getReservoirName().split(",")); |
| | | alarmRecordDetail.setAlarmContent(formatContent); |
| | | alarmRecordDetail.setSendRecordId(smsRecord.getId()); |
| | | alarmRecordDetail.setCreateTime(new Date()); |
| | | // 保存告警记录详情信息 |
| | | boolean save = alarmRecordDetailService.save(alarmRecordDetail); |
| | | alarmRecordDetail1.setAlarmContent(formatContent); |
| | | alarmRecordDetail1.setSendRecordId(smsRecord.getId()); |
| | | alarmRecordDetail1.setCreateTime(new Date()); |
| | | alarmRecordDetail1.setReservoirNumber(alarmRecordDetail.getReservoirNumber()); |
| | | alarmRecordDetail1.setAlarmRecordId(alarmRecordDetail.getAlarmRecordId()); |
| | | alarmRecordDetail1.setAlarmMode(alarmRecordDetail.getAlarmMode()); |
| | | alarmRecordDetail1.setPhone(alarmRecordDetail.getPhone()); |
| | | alarmRecordDetailArrayList.add(alarmRecordDetail1); |
| | | } |
| | | // 保存告警记录详情信息 |
| | | boolean save = alarmRecordDetailService.saveBatch(alarmRecordDetailArrayList); |
| | | } |
| | | } |
| | | }); |
| | | } |
| | | |
| | | /** |
| | | * 批量发送短信(集合数据) |
| | | * @param map (保护参数 1:短信模板id 2:数据集合 list<Map<String,Object>>) |
| | | * @return |
| | | */ |
| | | @Override |
| | | public Object batchSendSms(Map<String, Object> map) { |
| | | // 获取模板id |
| | | String templateId = map.get("templateId").toString(); |
| | | // 获取集合数据 |
| | | List<Map<String,Object>> list = (List<Map<String,Object>>) map.get("list"); |
| | | List<String> columnList = (List<String>) map.get("columnList"); |
| | | // 遍历 |
| | | for (Map<String, Object> param : list) { |
| | | // 放入集合数据 |
| | | } |
| | | return null; |
| | | } |
| | | } |