From 058af30d739fa97315cb41f63e2c542fa5fa6f4c Mon Sep 17 00:00:00 2001 From: zhangheng <3226558941@qq.com> Date: Thu, 25 Jun 2026 17:55:01 +0800 Subject: [PATCH] =?UTF-8?q?=E7=9F=AD=E4=BF=A1=E5=9B=9E=E6=89=A7=E4=BF=AE?= =?UTF-8?q?=E6=94=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../PhoneDialRecordMapper.java | 9 +++ .../ShortMessageSendRecordMapper.java | 9 +++ .../SignPatientManageRouteMapper.java | 2 + .../SignPatientManageRouteNodeMapper.java | 8 ++ .../SignPatientManageRouteVO.java | 5 ++ .../phonedialrecord/PhoneDialRecordMapper.xml | 9 +++ .../ShortMessageSendRecordMapper.xml | 9 +++ .../SignPatientManageRouteMapper.xml | 18 +++++ .../SignPatientManageRouteNodeMapper.xml | 7 ++ .../controller/SendTextMessageController.java | 16 +++- .../service/SendTextMessageService.java | 3 +- .../impl/SendTextMessageServiceImpl.java | 9 ++- .../java/com/xinelu/quartz/task/BillTask.java | 19 +++-- .../quartz/task/SendTextMessageTask.java | 73 +++++++++++++------ 14 files changed, 164 insertions(+), 32 deletions(-) diff --git a/postdischarge-manage/src/main/java/com/xinelu/manage/mapper/phonedialrecord/PhoneDialRecordMapper.java b/postdischarge-manage/src/main/java/com/xinelu/manage/mapper/phonedialrecord/PhoneDialRecordMapper.java index 19499942..63f74ec0 100644 --- a/postdischarge-manage/src/main/java/com/xinelu/manage/mapper/phonedialrecord/PhoneDialRecordMapper.java +++ b/postdischarge-manage/src/main/java/com/xinelu/manage/mapper/phonedialrecord/PhoneDialRecordMapper.java @@ -122,4 +122,13 @@ public interface PhoneDialRecordMapper { * @return PhoneDialRecord */ List selectPhoneDialBySendTime(@Param("startMonth") LocalDateTime startMonth, @Param("endMonth") LocalDateTime endMonth); + + /** + * 根据ids修改账单id + * + * @param ids + * @param billId + * @return int + */ + int updatePhoneDialRecordByIds(@Param("ids") List ids, @Param("billId") Long billId); } diff --git a/postdischarge-manage/src/main/java/com/xinelu/manage/mapper/shortmessagesendrecord/ShortMessageSendRecordMapper.java b/postdischarge-manage/src/main/java/com/xinelu/manage/mapper/shortmessagesendrecord/ShortMessageSendRecordMapper.java index 56abdd7c..a89f64a4 100644 --- a/postdischarge-manage/src/main/java/com/xinelu/manage/mapper/shortmessagesendrecord/ShortMessageSendRecordMapper.java +++ b/postdischarge-manage/src/main/java/com/xinelu/manage/mapper/shortmessagesendrecord/ShortMessageSendRecordMapper.java @@ -114,4 +114,13 @@ public interface ShortMessageSendRecordMapper { * @return PhoneDialRecord */ List selectRecordBySendTime(@Param("startMonth") LocalDateTime startMonth, @Param("endMonth") LocalDateTime endMonth); + + /** + * 根据ids修改账单id + * + * @param ids + * @param billId + * @return int + */ + int updateShortMessageSendRecordByIds(@Param("ids") List ids , @Param("billId") Long billId); } \ No newline at end of file diff --git a/postdischarge-manage/src/main/java/com/xinelu/manage/mapper/signpatientmanageroute/SignPatientManageRouteMapper.java b/postdischarge-manage/src/main/java/com/xinelu/manage/mapper/signpatientmanageroute/SignPatientManageRouteMapper.java index c5f419d3..1146f8df 100644 --- a/postdischarge-manage/src/main/java/com/xinelu/manage/mapper/signpatientmanageroute/SignPatientManageRouteMapper.java +++ b/postdischarge-manage/src/main/java/com/xinelu/manage/mapper/signpatientmanageroute/SignPatientManageRouteMapper.java @@ -156,4 +156,6 @@ public interface SignPatientManageRouteMapper { * @return int */ int insertBatch(List signPatientManageRoutes); + + List selectRouteByBatchSendTaskRecordId(List batchSendTaskRecordId); } diff --git a/postdischarge-manage/src/main/java/com/xinelu/manage/mapper/signpatientmanageroutenode/SignPatientManageRouteNodeMapper.java b/postdischarge-manage/src/main/java/com/xinelu/manage/mapper/signpatientmanageroutenode/SignPatientManageRouteNodeMapper.java index f235abc2..484729d4 100644 --- a/postdischarge-manage/src/main/java/com/xinelu/manage/mapper/signpatientmanageroutenode/SignPatientManageRouteNodeMapper.java +++ b/postdischarge-manage/src/main/java/com/xinelu/manage/mapper/signpatientmanageroutenode/SignPatientManageRouteNodeMapper.java @@ -265,4 +265,12 @@ public interface SignPatientManageRouteNodeMapper { * @return SignPatientManageRouteNode */ SignPatientManageRouteNode selectSignPatientManageRouteNode(SignPatientManageRouteNode signPatientManageRouteNode); + + /** + * 查询签约患者管理任务路径节点 + * + * @param routeId 签约患者管理任务路径节点主键 + * @return 签约患者管理任务路径节点 + */ + List selectNodeByRouteId(Long routeId); } diff --git a/postdischarge-manage/src/main/java/com/xinelu/manage/vo/signpatientmanageroute/SignPatientManageRouteVO.java b/postdischarge-manage/src/main/java/com/xinelu/manage/vo/signpatientmanageroute/SignPatientManageRouteVO.java index 5bb36e6c..c2d7e769 100644 --- a/postdischarge-manage/src/main/java/com/xinelu/manage/vo/signpatientmanageroute/SignPatientManageRouteVO.java +++ b/postdischarge-manage/src/main/java/com/xinelu/manage/vo/signpatientmanageroute/SignPatientManageRouteVO.java @@ -42,4 +42,9 @@ public class SignPatientManageRouteVO extends SignPatientManageRoute { * 触发条件 */ List triggerConditionList; + + /** + * 联系方式(短信任务回调使用) + */ + private String phone; } diff --git a/postdischarge-manage/src/main/resources/mapper/manage/phonedialrecord/PhoneDialRecordMapper.xml b/postdischarge-manage/src/main/resources/mapper/manage/phonedialrecord/PhoneDialRecordMapper.xml index cd77c7d9..fc01c277 100644 --- a/postdischarge-manage/src/main/resources/mapper/manage/phonedialrecord/PhoneDialRecordMapper.xml +++ b/postdischarge-manage/src/main/resources/mapper/manage/phonedialrecord/PhoneDialRecordMapper.xml @@ -398,4 +398,13 @@ and dial_time <= #{endMonth} + + + UPDATE phone_dial_record + SET bill_id = #{billId} + WHERE id IN + + #{id} + + \ No newline at end of file diff --git a/postdischarge-manage/src/main/resources/mapper/manage/shortmessagesendrecord/ShortMessageSendRecordMapper.xml b/postdischarge-manage/src/main/resources/mapper/manage/shortmessagesendrecord/ShortMessageSendRecordMapper.xml index 8b370b6a..3fa6c70d 100644 --- a/postdischarge-manage/src/main/resources/mapper/manage/shortmessagesendrecord/ShortMessageSendRecordMapper.xml +++ b/postdischarge-manage/src/main/resources/mapper/manage/shortmessagesendrecord/ShortMessageSendRecordMapper.xml @@ -421,4 +421,13 @@ and send_time <= #{endMonth} + + + UPDATE short_message_send_record + SET bill_id = #{billId} + WHERE id IN + + #{id} + + \ No newline at end of file diff --git a/postdischarge-manage/src/main/resources/mapper/manage/signpatientmanageroute/SignPatientManageRouteMapper.xml b/postdischarge-manage/src/main/resources/mapper/manage/signpatientmanageroute/SignPatientManageRouteMapper.xml index a8db0709..9cfeeac2 100644 --- a/postdischarge-manage/src/main/resources/mapper/manage/signpatientmanageroute/SignPatientManageRouteMapper.xml +++ b/postdischarge-manage/src/main/resources/mapper/manage/signpatientmanageroute/SignPatientManageRouteMapper.xml @@ -781,4 +781,22 @@ #{id} + + diff --git a/postdischarge-manage/src/main/resources/mapper/manage/signpatientmanageroutenode/SignPatientManageRouteNodeMapper.xml b/postdischarge-manage/src/main/resources/mapper/manage/signpatientmanageroutenode/SignPatientManageRouteNodeMapper.xml index 03746256..8d808f9d 100644 --- a/postdischarge-manage/src/main/resources/mapper/manage/signpatientmanageroutenode/SignPatientManageRouteNodeMapper.xml +++ b/postdischarge-manage/src/main/resources/mapper/manage/signpatientmanageroutenode/SignPatientManageRouteNodeMapper.xml @@ -1429,4 +1429,11 @@ where create_by = #{createBy} order by create_time desc limit 1 + + diff --git a/postdischarge-quartz/src/main/java/com/xinelu/quartz/controller/SendTextMessageController.java b/postdischarge-quartz/src/main/java/com/xinelu/quartz/controller/SendTextMessageController.java index 50b79818..9146d5c5 100644 --- a/postdischarge-quartz/src/main/java/com/xinelu/quartz/controller/SendTextMessageController.java +++ b/postdischarge-quartz/src/main/java/com/xinelu/quartz/controller/SendTextMessageController.java @@ -5,6 +5,8 @@ import com.aliyuncs.exceptions.ClientException; import com.xinelu.manage.domain.shortmessagesendrecord.ShortMessageSendRecord; import com.xinelu.manage.domain.textmessage.SmsReport; import com.xinelu.manage.mapper.shortmessagesendrecord.ShortMessageSendRecordMapper; +import com.xinelu.manage.mapper.signpatientmanageroute.SignPatientManageRouteMapper; +import com.xinelu.manage.vo.signpatientmanageroute.SignPatientManageRouteVO; import com.xinelu.quartz.service.SendTextMessageService; import com.xinelu.quartz.task.SendTextMessageTask; import org.apache.commons.collections4.CollectionUtils; @@ -36,6 +38,8 @@ public class SendTextMessageController { private ShortMessageSendRecordMapper shortMessageSendRecordMapper; @Resource private SendTextMessageTask sendTextMessageTask; + @Resource + private SignPatientManageRouteMapper signPatientManageRouteMapper; /** * 手动执行短信发送定时任务 @@ -52,8 +56,18 @@ public class SendTextMessageController { if (Objects.isNull(data) || StringUtils.isBlank(data.getPhone_number())) { return retObj; } + List longs = new ArrayList<>(); + longs.add(Long.valueOf(data.getOut_id())); + List signPatientManageRoutes = signPatientManageRouteMapper.selectRouteByBatchSendTaskRecordId(longs); + if (CollectionUtils.isEmpty(signPatientManageRoutes)){ + return retObj; + } + SignPatientManageRouteVO signPatientManageRoute = signPatientManageRoutes.stream().filter(Objects::nonNull).filter(item -> data.getPhone_number().equals(item.getPhone())).findFirst().orElse(new SignPatientManageRouteVO()); + if (Objects.isNull(signPatientManageRoute.getId())){ + return retObj; + } List shortMessageSendRecords = new ArrayList<>(); - JSONObject jsonObject = sendTextMessageService.taskTextMessageSendBack(data, shortMessageSendRecords); + JSONObject jsonObject = sendTextMessageService.taskTextMessageSendBack(data, shortMessageSendRecords, signPatientManageRoute); if (CollectionUtils.isNotEmpty(shortMessageSendRecords)) { shortMessageSendRecordMapper.insertShortMessageSendRecords(shortMessageSendRecords); } diff --git a/postdischarge-quartz/src/main/java/com/xinelu/quartz/service/SendTextMessageService.java b/postdischarge-quartz/src/main/java/com/xinelu/quartz/service/SendTextMessageService.java index 7d5df2e6..8228ac10 100644 --- a/postdischarge-quartz/src/main/java/com/xinelu/quartz/service/SendTextMessageService.java +++ b/postdischarge-quartz/src/main/java/com/xinelu/quartz/service/SendTextMessageService.java @@ -5,6 +5,7 @@ import com.aliyuncs.exceptions.ClientException; import com.xinelu.manage.domain.shortmessagesendrecord.ShortMessageSendRecord; import com.xinelu.manage.domain.textmessage.SmsReport; import com.xinelu.manage.domain.textmessage.TaskMessageBackEntity; +import com.xinelu.manage.vo.signpatientmanageroute.SignPatientManageRouteVO; import java.util.List; @@ -28,7 +29,7 @@ public interface SendTextMessageService { * @param data 任务单通电话回调传输data * @return JSONObject */ - JSONObject taskTextMessageSendBack(SmsReport data, List shortMessageSendRecords); + JSONObject taskTextMessageSendBack(SmsReport data, List shortMessageSendRecords, SignPatientManageRouteVO signPatientManageRoute); Integer updateReadState(Integer readState, List ids); diff --git a/postdischarge-quartz/src/main/java/com/xinelu/quartz/service/impl/SendTextMessageServiceImpl.java b/postdischarge-quartz/src/main/java/com/xinelu/quartz/service/impl/SendTextMessageServiceImpl.java index 8d162394..b09d2697 100644 --- a/postdischarge-quartz/src/main/java/com/xinelu/quartz/service/impl/SendTextMessageServiceImpl.java +++ b/postdischarge-quartz/src/main/java/com/xinelu/quartz/service/impl/SendTextMessageServiceImpl.java @@ -15,6 +15,7 @@ import com.xinelu.manage.dto.smssend.SmsInfoDTO; import com.xinelu.manage.mapper.shortmessagesendrecord.ShortMessageSendRecordMapper; import com.xinelu.manage.mapper.signpatientmanageroutenode.SignPatientManageRouteNodeMapper; import com.xinelu.manage.service.patienttaskstatistics.IPatientTaskStatisticsService; +import com.xinelu.manage.vo.signpatientmanageroute.SignPatientManageRouteVO; import com.xinelu.manage.vo.signpatientmanageroutenode.TextMessage; import com.xinelu.manage.vo.subscribemessagesendrecord.RecordNum; import com.xinelu.mobile.utils.SmsSendUtils; @@ -247,10 +248,14 @@ public class SendTextMessageServiceImpl implements SendTextMessageService { } @Override - public JSONObject taskTextMessageSendBack(SmsReport data, List shortMessageSendRecords) { + public JSONObject taskTextMessageSendBack(SmsReport data, List shortMessageSendRecords, SignPatientManageRouteVO signPatientManageRouteVO) { JSONObject retObj = new JSONObject(); retObj.fluentPut("code", 0).fluentPut("msg", "成功"); - SignPatientManageRouteNode signPatientManageRouteNode = signPatientManageRouteNodeMapper.selectSignPatientManageRouteNodeById(Long.valueOf(data.getOut_id())); + List signPatientManageRouteNodes = signPatientManageRouteNodeMapper.selectNodeByRouteId(signPatientManageRouteVO.getId()); + if (CollectionUtils.isEmpty(signPatientManageRouteNodes)){ + return retObj; + } + SignPatientManageRouteNode signPatientManageRouteNode = signPatientManageRouteNodes.stream().filter(Objects::nonNull).findFirst().orElse(new SignPatientManageRouteNode()); if (Objects.isNull(signPatientManageRouteNode) || signPatientManageRouteNode.getNodeExecuteStatus().equals(NodeExecuteStatusEnum.EXECUTED.getInfo())) { return retObj; } diff --git a/postdischarge-quartz/src/main/java/com/xinelu/quartz/task/BillTask.java b/postdischarge-quartz/src/main/java/com/xinelu/quartz/task/BillTask.java index 5355a3c3..aa0d5c34 100644 --- a/postdischarge-quartz/src/main/java/com/xinelu/quartz/task/BillTask.java +++ b/postdischarge-quartz/src/main/java/com/xinelu/quartz/task/BillTask.java @@ -13,6 +13,7 @@ import com.xinelu.manage.mapper.shortmessagesendrecord.ShortMessageSendRecordMap import lombok.extern.slf4j.Slf4j; import org.apache.commons.collections4.CollectionUtils; import org.springframework.stereotype.Component; +import org.springframework.transaction.annotation.Transactional; import javax.annotation.Resource; import java.math.BigDecimal; @@ -20,6 +21,7 @@ import java.time.LocalDateTime; import java.time.YearMonth; import java.util.List; import java.util.Objects; +import java.util.stream.Collectors; /** * @description: 月初生成上月的的账单任务 @@ -39,6 +41,7 @@ public class BillTask { @Resource private BillInfoMapper billInfoMapper; + @Transactional(rollbackFor = Exception.class) public void generateBillTask() { // 1.1 获取上个月的 YearMonth 对象 YearMonth lastMonth = YearMonth.now().minusMonths(1); @@ -49,8 +52,8 @@ public class BillTask { //2.查询上月短信推送记录 BillInfo shortBillInfo = new BillInfo(); shortBillInfo.setBillCode(Constants.BILL_CODE + generateSystemCodeUtil.generateSystemCode(Constants.AGENCY_CODE)); - shortBillInfo.setBillName(lastMonth.getMonth().toString() + "月份短信账单"); - shortBillInfo.setBillMonth(lastMonth.getMonth().toString()); + shortBillInfo.setBillName(lastMonth.getMonthValue() + "月份短信账单"); + shortBillInfo.setBillMonth(lastMonth.toString()); shortBillInfo.setPaymentStatus(PaymentStatusConstants.UNPAID_FEES); shortBillInfo.setBillSource(BillSourceEnum.MESSAGE.getInfo()); List shortMessageSendRecords = shortMessageSendRecordMapper.selectRecordBySendTime(startOfLastMonth, endOfLastMonth); @@ -65,12 +68,14 @@ public class BillTask { .reduce(BigDecimal.ZERO, BigDecimal::add); shortBillInfo.setBillExpense(totalAmount); billInfoMapper.insertBillInfo(shortBillInfo); + List shortIds = shortMessageSendRecords.stream().filter(Objects::nonNull).map(ShortMessageSendRecord::getId).collect(Collectors.toList()); + shortMessageSendRecordMapper.updateShortMessageSendRecordByIds(shortIds, shortBillInfo.getId()); } //2.查询上月电话推送记录 BillInfo phoneBillInfo = new BillInfo(); phoneBillInfo.setBillCode(Constants.BILL_CODE + generateSystemCodeUtil.generateSystemCode(Constants.AGENCY_CODE)); - phoneBillInfo.setBillName(lastMonth.getMonth().toString() + "月份电话账单"); - phoneBillInfo.setBillMonth(lastMonth.getMonth().toString()); + phoneBillInfo.setBillName(lastMonth.getMonthValue() + "月份电话账单"); + phoneBillInfo.setBillMonth(lastMonth.toString()); phoneBillInfo.setPaymentStatus(PaymentStatusConstants.UNPAID_FEES); phoneBillInfo.setBillSource(BillSourceEnum.TELEPHONE.getInfo()); List phoneDialRecords = phoneDialRecordMapper.selectPhoneDialBySendTime(startOfLastMonth, endOfLastMonth); @@ -78,13 +83,15 @@ public class BillTask { BigDecimal sum = phoneDialRecords.stream().filter(Objects::nonNull) .map(PhoneDialRecord::getPhoneDuration) .reduce(BigDecimal.ZERO, BigDecimal::add); - shortBillInfo.setPushLength(sum); + phoneBillInfo.setPushLength(sum); BigDecimal totalAmount = phoneDialRecords.stream().filter(Objects::nonNull) .map(PhoneDialRecord::getPhoneExpense) .reduce(BigDecimal.ZERO, BigDecimal::add); - shortBillInfo.setBillExpense(totalAmount); + phoneBillInfo.setBillExpense(totalAmount); billInfoMapper.insertBillInfo(phoneBillInfo); + List phoneIds = phoneDialRecords.stream().filter(Objects::nonNull).map(PhoneDialRecord::getId).collect(Collectors.toList()); + phoneDialRecordMapper.updatePhoneDialRecordByIds(phoneIds, phoneBillInfo.getId()); } } } \ No newline at end of file diff --git a/postdischarge-quartz/src/main/java/com/xinelu/quartz/task/SendTextMessageTask.java b/postdischarge-quartz/src/main/java/com/xinelu/quartz/task/SendTextMessageTask.java index 130ded5f..dc6d94e6 100644 --- a/postdischarge-quartz/src/main/java/com/xinelu/quartz/task/SendTextMessageTask.java +++ b/postdischarge-quartz/src/main/java/com/xinelu/quartz/task/SendTextMessageTask.java @@ -7,9 +7,12 @@ import com.xinelu.manage.domain.shortmessagesendrecord.ShortMessageSendRecord; import com.xinelu.manage.domain.textmessage.SmsReport; import com.xinelu.manage.domain.textmessage.TaskMessageBackEntity; import com.xinelu.manage.mapper.shortmessagesendrecord.ShortMessageSendRecordMapper; +import com.xinelu.manage.mapper.signpatientmanageroute.SignPatientManageRouteMapper; +import com.xinelu.manage.vo.signpatientmanageroute.SignPatientManageRouteVO; import com.xinelu.quartz.service.SendTextMessageService; import lombok.extern.slf4j.Slf4j; import org.apache.commons.collections4.CollectionUtils; +import org.apache.commons.lang3.StringUtils; import org.springframework.stereotype.Component; import javax.annotation.Resource; @@ -31,6 +34,8 @@ public class SendTextMessageTask { private SendTextMessageService sendTextMessageService; @Resource private ShortMessageSendRecordMapper shortMessageSendRecordMapper; + @Resource + private SignPatientManageRouteMapper signPatientManageRouteMapper; /** * 签约患者管理任务路径节点短信发送定时任务 @@ -47,30 +52,54 @@ public class SendTextMessageTask { taskMessageBackEntity.setReadState(0); List taskMessageBackEntityList = sendTextMessageService.taskMessageBack(taskMessageBackEntity); List shortMessageSendRecords = new ArrayList<>(); - if (!CollectionUtils.isEmpty(taskMessageBackEntityList)) { - // 回调数据提取 - List smsReports = new ArrayList<>(); - taskMessageBackEntityList.forEach(entity -> { - // JSONString 转 SmsReport - smsReports.addAll(JSON.parseArray(entity.getMessageBackData().toString(), SmsReport.class)); - }); - log.info("短信数据提取完成共" + smsReports.size() + "条"); - if (CollectionUtils.isNotEmpty(smsReports)) { - for (SmsReport smsReport : smsReports) { - // 回调数据解析 - sendTextMessageService.taskTextMessageSendBack(smsReport, shortMessageSendRecords); + if (CollectionUtils.isEmpty(taskMessageBackEntityList)) { + log.info("完成同步短信回调数据定时任务,未查询到未读短信回执......"); + } + // 回调数据提取 + List smsReports = new ArrayList<>(); + taskMessageBackEntityList.forEach(entity -> { + // JSONString 转 SmsReport + smsReports.addAll(JSON.parseArray(entity.getMessageBackData().toString(), SmsReport.class)); + }); + log.info("短信数据提取完成,共" + smsReports.size() + "条"); + if (CollectionUtils.isNotEmpty(smsReports)) { + List outIds = smsReports.stream().filter(Objects::nonNull).map(SmsReport::getOut_id).filter(Objects::nonNull) + .map(id -> { + try { + return Long.parseLong(id); + } catch (NumberFormatException e) { + // 打印日志或忽略,这里返回 null 然后被下一个 filter 过滤 + return null; + } + }) + .filter(Objects::nonNull) // 过滤掉转换失败的 null + .distinct().collect(Collectors.toList()); + if (CollectionUtils.isEmpty(outIds)) { + log.info("短信数据缺少任务信息!"); + return; + } + List signPatientManageRoutes = signPatientManageRouteMapper.selectRouteByBatchSendTaskRecordId(outIds); + for (SmsReport smsReport : smsReports) { + // 回调数据解析 + SignPatientManageRouteVO signPatientManageRoute = signPatientManageRoutes.stream().filter(Objects::nonNull).filter(item -> smsReport.getPhone_number().equals(item.getPhone())).findFirst().orElse(new SignPatientManageRouteVO()); + if (StringUtils.isBlank(signPatientManageRoute.getPhone()) || Objects.isNull(signPatientManageRoute.getId())){ + continue; } + sendTextMessageService.taskTextMessageSendBack(smsReport, shortMessageSendRecords, signPatientManageRoute); } - if (CollectionUtils.isNotEmpty(shortMessageSendRecords)) { - log.info("新增短信发送记录" + shortMessageSendRecords.size() + "条"); - shortMessageSendRecordMapper.insertShortMessageSendRecords(shortMessageSendRecords); - } - List ids = taskMessageBackEntityList.stream().filter(Objects::nonNull).map(TaskMessageBackEntity::getId).collect(Collectors.toList()); - // 修改阿里云服务器回调数据已读状态 - if (CollectionUtils.isNotEmpty(ids)) { - log.info("修改中站记录" + ids.size() + "条"); - sendTextMessageService.updateReadState(1, ids); - } + } + if (CollectionUtils.isNotEmpty(shortMessageSendRecords) && shortMessageSendRecords.size() > 0) { + log.info("新增短信发送记录" + shortMessageSendRecords.size() + "条"); + shortMessageSendRecordMapper.insertShortMessageSendRecords(shortMessageSendRecords); + } + if (CollectionUtils.isEmpty(shortMessageSendRecords) && shortMessageSendRecords.size() == 0) { + return; + } + List ids = taskMessageBackEntityList.stream().filter(Objects::nonNull).map(TaskMessageBackEntity::getId).collect(Collectors.toList()); + // 修改阿里云服务器回调数据已读状态 + if (CollectionUtils.isNotEmpty(ids)) { + log.info("修改中站记录" + ids.size() + "条"); + sendTextMessageService.updateReadState(1, ids); } log.info("完成同步短信回调数据定时任务......"); }