From 36c8945201d5570512863f6536fc4f2b7d10f294 Mon Sep 17 00:00:00 2001 From: lyf66 Date: Tue, 12 Aug 2025 09:20:50 +0800 Subject: [PATCH] =?UTF-8?q?refactor(autocall):=E4=BC=98=E5=8C=96=E4=BB=BB?= =?UTF-8?q?=E5=8A=A1=E5=92=8C=E4=BA=BA=E5=91=98=E7=9B=B8=E5=85=B3=E5=8A=9F?= =?UTF-8?q?=E8=83=BD?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - 修改 AICCCallRespDetail 中的 isComplete 字段为 isCompleted - 移除 AICCHelper 中的 API 响应日志输出 - 新增按预警 ID 获取人员信息的功能 -优化人员列表查询逻辑,支持按级别排序 - 修复任务状态更新和标签设置的问题 -优化拨号备注和标签处理逻辑 --- .../autocall/AutoCallController.java | 9 +- .../autocall/aicc/AICCCallRespDetail.java | 2 +- .../whdc/model/entity/WarningResponder.java | 3 +- .../autocall/AutoCallTaskService2.java | 109 +++++++++++------- src/main/java/com/whdc/utils/AICCHelper.java | 1 - .../mapper/WarningResponderMapper.xml | 4 +- 6 files changed, 81 insertions(+), 47 deletions(-) diff --git a/src/main/java/com/whdc/controller/autocall/AutoCallController.java b/src/main/java/com/whdc/controller/autocall/AutoCallController.java index 3607c7a..2f0163f 100644 --- a/src/main/java/com/whdc/controller/autocall/AutoCallController.java +++ b/src/main/java/com/whdc/controller/autocall/AutoCallController.java @@ -163,8 +163,13 @@ public class AutoCallController { } } - @GetMapping("/newPerson") - public ResultJson newPerson(@RequestParam("taskId") Integer taskId) { + @GetMapping("/newPersonByWarn") + public ResultJson newPersonByWarn(@RequestParam("warnId") Integer warnId) { + return ResultJson.ok(autoCallTaskService2.getPersonByWarnId(warnId)); + } + + @GetMapping("/newPersonByTask") + public ResultJson newPersonByTask(@RequestParam("taskId") Integer taskId) { AutoCallTask task = autoCallTaskService2.getTaskMapper().selectById(taskId); return ResultJson.ok(autoCallTaskService2.newPerson(task)); } diff --git a/src/main/java/com/whdc/model/autocall/aicc/AICCCallRespDetail.java b/src/main/java/com/whdc/model/autocall/aicc/AICCCallRespDetail.java index ca3bb50..b4efa05 100644 --- a/src/main/java/com/whdc/model/autocall/aicc/AICCCallRespDetail.java +++ b/src/main/java/com/whdc/model/autocall/aicc/AICCCallRespDetail.java @@ -36,7 +36,7 @@ public class AICCCallRespDetail { private Integer status; //0进行中 2结束 4暂停 private Integer totalCount; private Integer sendCount; - private boolean isComplete; + private boolean isCompleted; private RawVarListMap rawVarListMap; private List tags; diff --git a/src/main/java/com/whdc/model/entity/WarningResponder.java b/src/main/java/com/whdc/model/entity/WarningResponder.java index 77d429c..cef7e5f 100644 --- a/src/main/java/com/whdc/model/entity/WarningResponder.java +++ b/src/main/java/com/whdc/model/entity/WarningResponder.java @@ -125,7 +125,8 @@ public class WarningResponder extends Model implements Seriali //18607251280 熊胜 //18507191276 李陶 //18607251169 王锐 - a.setPhone("18607181767"); + //杨喆 18872619396 15327337261 + a.setPhone("15327337261"); a.encryptPhone(); System.out.println(a.salt); System.out.println(a.phone); diff --git a/src/main/java/com/whdc/service/autocall/AutoCallTaskService2.java b/src/main/java/com/whdc/service/autocall/AutoCallTaskService2.java index 5e36850..af3a923 100644 --- a/src/main/java/com/whdc/service/autocall/AutoCallTaskService2.java +++ b/src/main/java/com/whdc/service/autocall/AutoCallTaskService2.java @@ -59,8 +59,6 @@ public class AutoCallTaskService2 { List taskList; AutoCallTask task; - - warn = qxWarningMapper.selectOne( new QueryWrapper() .orderByDesc("WARNID") @@ -75,22 +73,22 @@ public class AutoCallTaskService2 { task.setWarnCnnm("钟祥 "); taskMapper.insert(task); generatePerson(task); - - warn = qxWarningMapper.selectOne( - new QueryWrapper() - .orderByDesc("WARNID") - .last("limit 1") - ); - warn.setCtnm("荆州市"); - warn.setCnnm("张湾 "); - taskList = newTask(warn); - task = taskList.get(0); - task.setStatus(0); - task.setCreateTm(new Date()); - task.setWarnCnnm("张湾 "); - taskMapper.insert(task); - generatePerson(task); - +// +// warn = qxWarningMapper.selectOne( +// new QueryWrapper() +// .orderByDesc("WARNID") +// .last("limit 1") +// ); +// warn.setCtnm("荆州市"); +// warn.setCnnm("张湾 "); +// taskList = newTask(warn); +// task = taskList.get(0); +// task.setStatus(0); +// task.setCreateTm(new Date()); +// task.setWarnCnnm("张湾 "); +// taskMapper.insert(task); +// generatePerson(task); +// warn = qxWarningMapper.selectOne( new QueryWrapper() .orderByDesc("WARNID") @@ -126,6 +124,7 @@ public class AutoCallTaskService2 { // .orderByDesc("WARNID") // .last("limit 1") // ); + // warn.setCtnm("荆州市"); // warn.setCnnm("英山 "); // taskList = newTask(warn); @@ -150,7 +149,7 @@ public class AutoCallTaskService2 { // task.setWarnCnnm("应城 "); // taskMapper.insert(task); // generatePerson(task); -// + // warn = qxWarningMapper.selectOne( // new QueryWrapper() // .orderByDesc("WARNID") @@ -165,7 +164,7 @@ public class AutoCallTaskService2 { // task.setWarnCnnm("阳新 "); // taskMapper.insert(task); // generatePerson(task); -// + // warn = qxWarningMapper.selectOne( // new QueryWrapper() // .orderByDesc("WARNID") @@ -272,20 +271,20 @@ public class AutoCallTaskService2 { taskMapper.insert(task); generatePerson(task); - warn = qxWarningMapper.selectOne( - new QueryWrapper() - .orderByDesc("WARNID") - .last("limit 1") - ); - warn.setCtnm("荆州市"); - warn.setCnnm("秭归 "); - taskList = newTask(warn); - task = taskList.get(0); - task.setStatus(0); - task.setCreateTm(new Date()); - task.setWarnCnnm("秭归 "); - taskMapper.insert(task); - generatePerson(task); +// warn = qxWarningMapper.selectOne( +// new QueryWrapper() +// .orderByDesc("WARNID") +// .last("limit 1") +// ); +// warn.setCtnm("荆州市"); +// warn.setCnnm("秭归 "); +// taskList = newTask(warn); +// task = taskList.get(0); +// task.setStatus(0); +// task.setCreateTm(new Date()); +// task.setWarnCnnm("秭归 "); +// taskMapper.insert(task); +// generatePerson(task); // warn = qxWarningMapper.selectOne( // new QueryWrapper() @@ -356,6 +355,32 @@ public class AutoCallTaskService2 { } } + public List getPersonByWarnId(Integer warnId) { + QXWarning warn = qxWarningMapper.selectOne( + new QueryWrapper() + .eq("warnid", warnId) + .last("limit 1") + ); + List warnLevels = mapWarnSignalLevel(warn.getWarnSignalLevel()); + String cnnm = warn.getCnnm(); + List wrList = warningResponderMapper.listByCnnmAndLevelOrderByLevelAsc(cnnm, warnLevels); + doSomethingWith(cnnm, wrList); + wrList.sort(Comparator.comparingInt(WarningResponder::getLevel)); + + List personList = new ArrayList<>(); + for (WarningResponder wr : wrList) { + Integer wrLevel = wr.getLevel(); + wr.decryptPhone(); + AutoCallPerson person = new AutoCallPerson(); + person.setUploadCustName(wr.getName()); + person.setLevel(wrLevel); + person.setPosition(wr.getPosition()); + person.setUploadNumber(wr.getPhone()); + personList.add(person); + } + return personList; + } + private List newTask(QXWarning warn) { String cnnmStr = warn.getCnnm(); Integer warnId = warn.getWarnid(); @@ -402,6 +427,7 @@ public class AutoCallTaskService2 { List personList = newPerson(task); if (personList.size() == 0) { task.setRemark("未找到责任人"); + task.setTag("未找到责任人"); task.setStatus(AutoCallTask.STATUS_CANCELLED); task.setErrorCode(AutoCallTask.ERRCODE_NO_PERSON); taskMapper.updateById(task); @@ -448,7 +474,7 @@ public class AutoCallTaskService2 { return ret; } - private static final String[] excludeNames = new String[]{"高新", "开发", "自治", "技术", "旅游", "管理", "工业", "产业", "示范"}; + private static final String[] excludeNames = new String[]{"高新", "开发", "技术", "旅游", "管理", "工业", "产业", "示范"}; private static void doSomethingWith(String cnmm, List wrList) { //预警包含高新等字符,可跳出 @@ -513,7 +539,7 @@ public class AutoCallTaskService2 { task.getWarnLevel() + "预警信号:" + task.getWarnContent() + - ",相关信息以短信发送给您。" + "相关信息以短信发送给您。" ); person.setSmsContent( "我是省防办智能外呼系统," + @@ -620,7 +646,7 @@ public class AutoCallTaskService2 { detail.getResult().getData() == null || detail.getResult().getData().getRecords() == null || detail.getResult().getData().getRecords().isEmpty() || - !detail.getResult().getData().getRecords().get(0).isComplete() + !detail.getResult().getData().getRecords().get(0).isCompleted() ) { return null; //tags为空代表联通平台还未或正在呼叫,还没有结果信息,应继续刷接口 } @@ -630,14 +656,17 @@ public class AutoCallTaskService2 { String dialRemark = record.getRemark(); AICCCallRespDetail.RawVarListMap rawVarListMap = record.getRawVarListMap(); //已产生结果信息 - person.setIsComplete(record.isComplete() ? 1 : 0); + person.setIsComplete(record.isCompleted() ? 1 : 0); person.setDetailRemark(dialRemark); person.setDetailTalkTimes(record.getTalkTimes()); person.setDetailSipTermCause(rawVarListMap.getSipTermCause()); fillTimeData(person, record); //话术部分 - String tag = record.getTags().get(record.getTags().size() - 1).getTagName(); - person.setTag(tag); + String tag = null; + if (record.getTags() != null && record.getTags().size() > 0) { + tag = record.getTags().get(record.getTags().size() - 1).getTagName(); + person.setTag(tag); + } //再判断状态 // if ("接通".equals(dialRemark)) { diff --git a/src/main/java/com/whdc/utils/AICCHelper.java b/src/main/java/com/whdc/utils/AICCHelper.java index d00e3eb..dc74b17 100644 --- a/src/main/java/com/whdc/utils/AICCHelper.java +++ b/src/main/java/com/whdc/utils/AICCHelper.java @@ -163,7 +163,6 @@ public class AICCHelper { Map headers = new HashMap<>(); headers.put("X-Access-Token", token); String resp = httpHelper.postJsonString("https://aicc.cuopen.net:9801/aicc-api/ssb/callout/thirdParty/task/getTaskCallDetail", request.toJSONString(),headers); - log.info("apiGetTaskCallDetail: {}", resp); TypeReference> type = new TypeReference>() { }; AICCCallRespWrapper aICCCallRespWrapper = null; diff --git a/src/main/resources/mapper/WarningResponderMapper.xml b/src/main/resources/mapper/WarningResponderMapper.xml index 80041f8..6b27fdb 100644 --- a/src/main/resources/mapper/WarningResponderMapper.xml +++ b/src/main/resources/mapper/WarningResponderMapper.xml @@ -101,8 +101,8 @@ select * from ADDRESS_BOOK_OLD A where 1=1 - - and A.CNNM = #{cnnm} + and A.CNNM like CONCAT('%',#{cnnm},'%') + and level in