From 7232359aa5435f135cee8a9e2b0a1592c91a0388 Mon Sep 17 00:00:00 2001 From: zhangheng <3226558941@qq.com> Date: Wed, 13 May 2026 00:38:18 +0800 Subject: [PATCH] =?UTF-8?q?=E7=9F=AD=E4=BF=A1=E5=9B=9E=E8=B0=83=E4=BF=AE?= =?UTF-8?q?=E6=94=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../impl/BatchSendTaskInfoServiceImpl.java | 2 +- .../ShortMessageSendRecordMapper.xml | 4 ++-- .../quartz/controller/SendTextMessageController.java | 2 +- .../quartz/service/SendTextMessageService.java | 2 +- .../service/impl/SendTextMessageServiceImpl.java | 12 +++++++++--- .../com/xinelu/quartz/task/SendTextMessageTask.java | 12 ++++++++---- 6 files changed, 22 insertions(+), 12 deletions(-) diff --git a/postdischarge-manage/src/main/java/com/xinelu/manage/service/batchsendtaskinfo/impl/BatchSendTaskInfoServiceImpl.java b/postdischarge-manage/src/main/java/com/xinelu/manage/service/batchsendtaskinfo/impl/BatchSendTaskInfoServiceImpl.java index 0cb029af..43439e28 100644 --- a/postdischarge-manage/src/main/java/com/xinelu/manage/service/batchsendtaskinfo/impl/BatchSendTaskInfoServiceImpl.java +++ b/postdischarge-manage/src/main/java/com/xinelu/manage/service/batchsendtaskinfo/impl/BatchSendTaskInfoServiceImpl.java @@ -355,10 +355,10 @@ public class BatchSendTaskInfoServiceImpl implements IBatchSendTaskInfoService { SignPatientManageRouteNode signPatientManageRouteNode = new SignPatientManageRouteNode(); signPatientManageRouteNode.setManageRouteName(batchSendTaskRecordDto.getManageRouteName()); signPatientManageRouteNode.setSn(batchTaskNumber); - signPatientManageRouteNode.setDialStatus(DialStatusEnum.NODIALED.getInfo()); signPatientManageRouteNode.setTaskExcuteType(TaskExcuteTypeEnum.BATCH_TASK.getInfo()); signPatientManageRouteNode.setNodePlanTime(batchSendTaskRecordDto.getNodePlanTime()); if (batchSendTaskRecordDto.getBatchTaskSource().equals(BillSourceEnum.TELEPHONE.getInfo())) { + signPatientManageRouteNode.setDialStatus(DialStatusEnum.NODIALED.getInfo()); signPatientManageRouteNode.setTaskNodeType(TaskNodeTypeEnum.PHONE_OUTBOUND.getInfo()); signPatientManageRouteNode.setPhonePushSign(1); signPatientManageRouteNode.setScriptInfoId(Objects.isNull(batchSendTaskRecordDto.getScriptInfoId()) ? null : batchSendTaskRecordDto.getScriptInfoId()); 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 02eec252..36065e7a 100644 --- a/postdischarge-manage/src/main/resources/mapper/manage/shortmessagesendrecord/ShortMessageSendRecordMapper.xml +++ b/postdischarge-manage/src/main/resources/mapper/manage/shortmessagesendrecord/ShortMessageSendRecordMapper.xml @@ -350,7 +350,7 @@ - insert into sign_patient_manage_route( + insert into short_message_send_record( patient_id, manage_route_node_id, patient_phone, @@ -380,8 +380,8 @@ #{ShortMessageSendRecord.errorCode}, #{ShortMessageSendRecord.errorStatus}, #{ShortMessageSendRecord.createBy}, - #{ShortMessageSendRecord.errorStatus}, #{ShortMessageSendRecord.createTime}, + #{ShortMessageSendRecord.messageType}, #{ShortMessageSendRecord.messageLength}, #{ShortMessageSendRecord.messageQuantity}, #{ShortMessageSendRecord.messageUnitPrice}, 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 3bfa0487..50b79818 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 @@ -53,7 +53,7 @@ public class SendTextMessageController { return retObj; } List shortMessageSendRecords = new ArrayList<>(); - JSONObject jsonObject = sendTextMessageService.taskTextMessageSendBack(data, shortMessageSendRecords, null); + JSONObject jsonObject = sendTextMessageService.taskTextMessageSendBack(data, shortMessageSendRecords); 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 d442a1d4..7d5df2e6 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 @@ -28,7 +28,7 @@ public interface SendTextMessageService { * @param data 任务单通电话回调传输data * @return JSONObject */ - JSONObject taskTextMessageSendBack(SmsReport data, List shortMessageSendRecords, List ids); + JSONObject taskTextMessageSendBack(SmsReport data, List shortMessageSendRecords); 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 1a58044b..dad68bc9 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 @@ -34,6 +34,7 @@ import javax.annotation.Resource; import java.math.BigDecimal; import java.time.LocalDate; import java.time.LocalDateTime; +import java.time.format.DateTimeFormatter; import java.time.temporal.ChronoUnit; import java.util.*; import java.util.stream.Collectors; @@ -229,6 +230,7 @@ public class SendTextMessageServiceImpl implements SendTextMessageService { List taskMessageBackEntityList = new ArrayList<>(); HttpEntity requestEntity = new HttpEntity<>((JSONObject) JSON.toJSON(taskMessageBackEntity)); RestTemplate restTemplate = new RestTemplate(); + log.info("接口获取短信回调数据"); ResponseEntity responseEntity = restTemplate.exchange(callBackUrl + "/getMessageBackList", HttpMethod.POST, requestEntity, String.class); JSONObject object = JSON.parseObject(responseEntity.getBody()); if (object == null || object.getInteger("code") == null || object.getInteger("code") != 0) { @@ -240,11 +242,12 @@ public class SendTextMessageServiceImpl implements SendTextMessageService { taskMessageBackEntityList = data.toJavaList(TaskMessageBackEntity.class); } } + log.info("共短信回调数据" + taskMessageBackEntityList.size() + "条"); return taskMessageBackEntityList; } @Override - public JSONObject taskTextMessageSendBack(SmsReport data, List shortMessageSendRecords, List ids) { + public JSONObject taskTextMessageSendBack(SmsReport data, List shortMessageSendRecords) { JSONObject retObj = new JSONObject(); retObj.fluentPut("code", 0).fluentPut("msg", "成功"); SignPatientManageRouteNode signPatientManageRouteNode = signPatientManageRouteNodeMapper.selectSignPatientManageRouteNodeById(Long.valueOf(data.getOut_id())); @@ -266,16 +269,19 @@ public class SendTextMessageServiceImpl implements SendTextMessageService { shortMessageSendRecord.setErrorStatus(ErrorStatusEnum.fail.getValue()); shortMessageSendRecord.setErrorCode(1L); } + shortMessageSendRecord.setSendTime(LocalDateTime.parse(data.getSend_time(), DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"))); shortMessageSendRecord.setManageRouteNodeId(signPatientManageRouteNode.getId()); shortMessageSendRecord.setPatientPhone(data.getPhone_number()); - shortMessageSendRecord.setMessageTemplateId(shortMessageSendRecord.getMessageTemplateId()); + shortMessageSendRecord.setMessageTemplateId(signPatientManageRouteNode.getMessageTemplateCode()); shortMessageSendRecord.setMessageNodeContent(signPatientManageRouteNode.getMessageNodeContent()); + shortMessageSendRecord.setMessageType("COMMON"); shortMessageSendRecord.setMessageQuantity(Long.valueOf(data.getSms_size())); shortMessageSendRecord.setMessageUnitPrice(new BigDecimal("0.1")); + shortMessageSendRecord.setCreateBy("system"); + shortMessageSendRecord.setCreateTime(LocalDateTime.now()); shortMessageSendRecord.setMessageExpense(shortMessageSendRecord.getMessageUnitPrice().multiply(new BigDecimal(shortMessageSendRecord.getMessageQuantity()))); shortMessageSendRecords.add(shortMessageSendRecord); signPatientManageRouteNodeMapper.updateSignPatientManageRouteNode(signPatientManageRouteNode); - ids.add(Integer.valueOf(data.getOut_id())); } return retObj; } 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 a0b8c9a6..130ded5f 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 @@ -15,6 +15,8 @@ import org.springframework.stereotype.Component; import javax.annotation.Resource; import java.util.ArrayList; import java.util.List; +import java.util.Objects; +import java.util.stream.Collectors; /** * @Description 短信相关定时任务 @@ -45,7 +47,6 @@ public class SendTextMessageTask { taskMessageBackEntity.setReadState(0); List taskMessageBackEntityList = sendTextMessageService.taskMessageBack(taskMessageBackEntity); List shortMessageSendRecords = new ArrayList<>(); - List ids = new ArrayList<>(); if (!CollectionUtils.isEmpty(taskMessageBackEntityList)) { // 回调数据提取 List smsReports = new ArrayList<>(); @@ -53,22 +54,25 @@ public class SendTextMessageTask { // 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, ids); + sendTextMessageService.taskTextMessageSendBack(smsReport, shortMessageSendRecords); } } if (CollectionUtils.isNotEmpty(shortMessageSendRecords)) { + log.info("新增短信发送记录" + shortMessageSendRecords.size() + "条"); shortMessageSendRecordMapper.insertShortMessageSendRecords(shortMessageSendRecords); } - //List ids = taskMessageBackEntityList.stream().filter(Objects::nonNull).map(TaskMessageBackEntity::getId).collect(Collectors.toList()); + 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("完成同步百度外呼回调数据定时任务......"); + log.info("完成同步短信回调数据定时任务......"); } public void clearCallbackData() {