refactor(autocall):优化任务和人员相关功能
- 修改 AICCCallRespDetail 中的 isComplete 字段为 isCompleted - 移除 AICCHelper 中的 API 响应日志输出 - 新增按预警 ID 获取人员信息的功能 -优化人员列表查询逻辑,支持按级别排序 - 修复任务状态更新和标签设置的问题 -优化拨号备注和标签处理逻辑master
parent
fc1f4e7383
commit
36c8945201
|
|
@ -163,8 +163,13 @@ public class AutoCallController {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@GetMapping("/newPerson")
|
@GetMapping("/newPersonByWarn")
|
||||||
public ResultJson newPerson(@RequestParam("taskId") Integer taskId) {
|
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);
|
AutoCallTask task = autoCallTaskService2.getTaskMapper().selectById(taskId);
|
||||||
return ResultJson.ok(autoCallTaskService2.newPerson(task));
|
return ResultJson.ok(autoCallTaskService2.newPerson(task));
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -36,7 +36,7 @@ public class AICCCallRespDetail {
|
||||||
private Integer status; //0进行中 2结束 4暂停
|
private Integer status; //0进行中 2结束 4暂停
|
||||||
private Integer totalCount;
|
private Integer totalCount;
|
||||||
private Integer sendCount;
|
private Integer sendCount;
|
||||||
private boolean isComplete;
|
private boolean isCompleted;
|
||||||
|
|
||||||
private RawVarListMap rawVarListMap;
|
private RawVarListMap rawVarListMap;
|
||||||
private List<Tag> tags;
|
private List<Tag> tags;
|
||||||
|
|
|
||||||
|
|
@ -125,7 +125,8 @@ public class WarningResponder extends Model<WarningResponder> implements Seriali
|
||||||
//18607251280 熊胜
|
//18607251280 熊胜
|
||||||
//18507191276 李陶
|
//18507191276 李陶
|
||||||
//18607251169 王锐
|
//18607251169 王锐
|
||||||
a.setPhone("18607181767");
|
//杨喆 18872619396 15327337261
|
||||||
|
a.setPhone("15327337261");
|
||||||
a.encryptPhone();
|
a.encryptPhone();
|
||||||
System.out.println(a.salt);
|
System.out.println(a.salt);
|
||||||
System.out.println(a.phone);
|
System.out.println(a.phone);
|
||||||
|
|
|
||||||
|
|
@ -59,8 +59,6 @@ public class AutoCallTaskService2 {
|
||||||
List<AutoCallTask> taskList;
|
List<AutoCallTask> taskList;
|
||||||
AutoCallTask task;
|
AutoCallTask task;
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
warn = qxWarningMapper.selectOne(
|
warn = qxWarningMapper.selectOne(
|
||||||
new QueryWrapper<QXWarning>()
|
new QueryWrapper<QXWarning>()
|
||||||
.orderByDesc("WARNID")
|
.orderByDesc("WARNID")
|
||||||
|
|
@ -75,22 +73,22 @@ public class AutoCallTaskService2 {
|
||||||
task.setWarnCnnm("钟祥 ");
|
task.setWarnCnnm("钟祥 ");
|
||||||
taskMapper.insert(task);
|
taskMapper.insert(task);
|
||||||
generatePerson(task);
|
generatePerson(task);
|
||||||
|
//
|
||||||
warn = qxWarningMapper.selectOne(
|
// warn = qxWarningMapper.selectOne(
|
||||||
new QueryWrapper<QXWarning>()
|
// new QueryWrapper<QXWarning>()
|
||||||
.orderByDesc("WARNID")
|
// .orderByDesc("WARNID")
|
||||||
.last("limit 1")
|
// .last("limit 1")
|
||||||
);
|
// );
|
||||||
warn.setCtnm("荆州市");
|
// warn.setCtnm("荆州市");
|
||||||
warn.setCnnm("张湾 ");
|
// warn.setCnnm("张湾 ");
|
||||||
taskList = newTask(warn);
|
// taskList = newTask(warn);
|
||||||
task = taskList.get(0);
|
// task = taskList.get(0);
|
||||||
task.setStatus(0);
|
// task.setStatus(0);
|
||||||
task.setCreateTm(new Date());
|
// task.setCreateTm(new Date());
|
||||||
task.setWarnCnnm("张湾 ");
|
// task.setWarnCnnm("张湾 ");
|
||||||
taskMapper.insert(task);
|
// taskMapper.insert(task);
|
||||||
generatePerson(task);
|
// generatePerson(task);
|
||||||
|
//
|
||||||
warn = qxWarningMapper.selectOne(
|
warn = qxWarningMapper.selectOne(
|
||||||
new QueryWrapper<QXWarning>()
|
new QueryWrapper<QXWarning>()
|
||||||
.orderByDesc("WARNID")
|
.orderByDesc("WARNID")
|
||||||
|
|
@ -126,6 +124,7 @@ public class AutoCallTaskService2 {
|
||||||
// .orderByDesc("WARNID")
|
// .orderByDesc("WARNID")
|
||||||
// .last("limit 1")
|
// .last("limit 1")
|
||||||
// );
|
// );
|
||||||
|
|
||||||
// warn.setCtnm("荆州市");
|
// warn.setCtnm("荆州市");
|
||||||
// warn.setCnnm("英山 ");
|
// warn.setCnnm("英山 ");
|
||||||
// taskList = newTask(warn);
|
// taskList = newTask(warn);
|
||||||
|
|
@ -150,7 +149,7 @@ public class AutoCallTaskService2 {
|
||||||
// task.setWarnCnnm("应城 ");
|
// task.setWarnCnnm("应城 ");
|
||||||
// taskMapper.insert(task);
|
// taskMapper.insert(task);
|
||||||
// generatePerson(task);
|
// generatePerson(task);
|
||||||
//
|
|
||||||
// warn = qxWarningMapper.selectOne(
|
// warn = qxWarningMapper.selectOne(
|
||||||
// new QueryWrapper<QXWarning>()
|
// new QueryWrapper<QXWarning>()
|
||||||
// .orderByDesc("WARNID")
|
// .orderByDesc("WARNID")
|
||||||
|
|
@ -165,7 +164,7 @@ public class AutoCallTaskService2 {
|
||||||
// task.setWarnCnnm("阳新 ");
|
// task.setWarnCnnm("阳新 ");
|
||||||
// taskMapper.insert(task);
|
// taskMapper.insert(task);
|
||||||
// generatePerson(task);
|
// generatePerson(task);
|
||||||
//
|
|
||||||
// warn = qxWarningMapper.selectOne(
|
// warn = qxWarningMapper.selectOne(
|
||||||
// new QueryWrapper<QXWarning>()
|
// new QueryWrapper<QXWarning>()
|
||||||
// .orderByDesc("WARNID")
|
// .orderByDesc("WARNID")
|
||||||
|
|
@ -272,20 +271,20 @@ public class AutoCallTaskService2 {
|
||||||
taskMapper.insert(task);
|
taskMapper.insert(task);
|
||||||
generatePerson(task);
|
generatePerson(task);
|
||||||
|
|
||||||
warn = qxWarningMapper.selectOne(
|
// warn = qxWarningMapper.selectOne(
|
||||||
new QueryWrapper<QXWarning>()
|
// new QueryWrapper<QXWarning>()
|
||||||
.orderByDesc("WARNID")
|
// .orderByDesc("WARNID")
|
||||||
.last("limit 1")
|
// .last("limit 1")
|
||||||
);
|
// );
|
||||||
warn.setCtnm("荆州市");
|
// warn.setCtnm("荆州市");
|
||||||
warn.setCnnm("秭归 ");
|
// warn.setCnnm("秭归 ");
|
||||||
taskList = newTask(warn);
|
// taskList = newTask(warn);
|
||||||
task = taskList.get(0);
|
// task = taskList.get(0);
|
||||||
task.setStatus(0);
|
// task.setStatus(0);
|
||||||
task.setCreateTm(new Date());
|
// task.setCreateTm(new Date());
|
||||||
task.setWarnCnnm("秭归 ");
|
// task.setWarnCnnm("秭归 ");
|
||||||
taskMapper.insert(task);
|
// taskMapper.insert(task);
|
||||||
generatePerson(task);
|
// generatePerson(task);
|
||||||
|
|
||||||
// warn = qxWarningMapper.selectOne(
|
// warn = qxWarningMapper.selectOne(
|
||||||
// new QueryWrapper<QXWarning>()
|
// new QueryWrapper<QXWarning>()
|
||||||
|
|
@ -356,6 +355,32 @@ public class AutoCallTaskService2 {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public List<AutoCallPerson> getPersonByWarnId(Integer warnId) {
|
||||||
|
QXWarning warn = qxWarningMapper.selectOne(
|
||||||
|
new QueryWrapper<QXWarning>()
|
||||||
|
.eq("warnid", warnId)
|
||||||
|
.last("limit 1")
|
||||||
|
);
|
||||||
|
List<Integer> warnLevels = mapWarnSignalLevel(warn.getWarnSignalLevel());
|
||||||
|
String cnnm = warn.getCnnm();
|
||||||
|
List<WarningResponder> wrList = warningResponderMapper.listByCnnmAndLevelOrderByLevelAsc(cnnm, warnLevels);
|
||||||
|
doSomethingWith(cnnm, wrList);
|
||||||
|
wrList.sort(Comparator.comparingInt(WarningResponder::getLevel));
|
||||||
|
|
||||||
|
List<AutoCallPerson> 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<AutoCallTask> newTask(QXWarning warn) {
|
private List<AutoCallTask> newTask(QXWarning warn) {
|
||||||
String cnnmStr = warn.getCnnm();
|
String cnnmStr = warn.getCnnm();
|
||||||
Integer warnId = warn.getWarnid();
|
Integer warnId = warn.getWarnid();
|
||||||
|
|
@ -402,6 +427,7 @@ public class AutoCallTaskService2 {
|
||||||
List<AutoCallPerson> personList = newPerson(task);
|
List<AutoCallPerson> personList = newPerson(task);
|
||||||
if (personList.size() == 0) {
|
if (personList.size() == 0) {
|
||||||
task.setRemark("未找到责任人");
|
task.setRemark("未找到责任人");
|
||||||
|
task.setTag("未找到责任人");
|
||||||
task.setStatus(AutoCallTask.STATUS_CANCELLED);
|
task.setStatus(AutoCallTask.STATUS_CANCELLED);
|
||||||
task.setErrorCode(AutoCallTask.ERRCODE_NO_PERSON);
|
task.setErrorCode(AutoCallTask.ERRCODE_NO_PERSON);
|
||||||
taskMapper.updateById(task);
|
taskMapper.updateById(task);
|
||||||
|
|
@ -448,7 +474,7 @@ public class AutoCallTaskService2 {
|
||||||
return ret;
|
return ret;
|
||||||
}
|
}
|
||||||
|
|
||||||
private static final String[] excludeNames = new String[]{"高新", "开发", "自治", "技术", "旅游", "管理", "工业", "产业", "示范"};
|
private static final String[] excludeNames = new String[]{"高新", "开发", "技术", "旅游", "管理", "工业", "产业", "示范"};
|
||||||
|
|
||||||
private static void doSomethingWith(String cnmm, List<WarningResponder> wrList) {
|
private static void doSomethingWith(String cnmm, List<WarningResponder> wrList) {
|
||||||
//预警包含高新等字符,可跳出
|
//预警包含高新等字符,可跳出
|
||||||
|
|
@ -513,7 +539,7 @@ public class AutoCallTaskService2 {
|
||||||
task.getWarnLevel() +
|
task.getWarnLevel() +
|
||||||
"预警信号:" +
|
"预警信号:" +
|
||||||
task.getWarnContent() +
|
task.getWarnContent() +
|
||||||
",相关信息以短信发送给您。"
|
"相关信息以短信发送给您。"
|
||||||
);
|
);
|
||||||
person.setSmsContent(
|
person.setSmsContent(
|
||||||
"我是省防办智能外呼系统," +
|
"我是省防办智能外呼系统," +
|
||||||
|
|
@ -620,7 +646,7 @@ public class AutoCallTaskService2 {
|
||||||
detail.getResult().getData() == null ||
|
detail.getResult().getData() == null ||
|
||||||
detail.getResult().getData().getRecords() == null ||
|
detail.getResult().getData().getRecords() == null ||
|
||||||
detail.getResult().getData().getRecords().isEmpty() ||
|
detail.getResult().getData().getRecords().isEmpty() ||
|
||||||
!detail.getResult().getData().getRecords().get(0).isComplete()
|
!detail.getResult().getData().getRecords().get(0).isCompleted()
|
||||||
) {
|
) {
|
||||||
return null; //tags为空代表联通平台还未或正在呼叫,还没有结果信息,应继续刷接口
|
return null; //tags为空代表联通平台还未或正在呼叫,还没有结果信息,应继续刷接口
|
||||||
}
|
}
|
||||||
|
|
@ -630,14 +656,17 @@ public class AutoCallTaskService2 {
|
||||||
String dialRemark = record.getRemark();
|
String dialRemark = record.getRemark();
|
||||||
AICCCallRespDetail.RawVarListMap rawVarListMap = record.getRawVarListMap();
|
AICCCallRespDetail.RawVarListMap rawVarListMap = record.getRawVarListMap();
|
||||||
//已产生结果信息
|
//已产生结果信息
|
||||||
person.setIsComplete(record.isComplete() ? 1 : 0);
|
person.setIsComplete(record.isCompleted() ? 1 : 0);
|
||||||
person.setDetailRemark(dialRemark);
|
person.setDetailRemark(dialRemark);
|
||||||
person.setDetailTalkTimes(record.getTalkTimes());
|
person.setDetailTalkTimes(record.getTalkTimes());
|
||||||
person.setDetailSipTermCause(rawVarListMap.getSipTermCause());
|
person.setDetailSipTermCause(rawVarListMap.getSipTermCause());
|
||||||
fillTimeData(person, record);
|
fillTimeData(person, record);
|
||||||
//话术部分
|
//话术部分
|
||||||
String tag = record.getTags().get(record.getTags().size() - 1).getTagName();
|
String tag = null;
|
||||||
|
if (record.getTags() != null && record.getTags().size() > 0) {
|
||||||
|
tag = record.getTags().get(record.getTags().size() - 1).getTagName();
|
||||||
person.setTag(tag);
|
person.setTag(tag);
|
||||||
|
}
|
||||||
|
|
||||||
//再判断状态
|
//再判断状态
|
||||||
// if ("接通".equals(dialRemark)) {
|
// if ("接通".equals(dialRemark)) {
|
||||||
|
|
|
||||||
|
|
@ -163,7 +163,6 @@ public class AICCHelper {
|
||||||
Map<String, String> headers = new HashMap<>();
|
Map<String, String> headers = new HashMap<>();
|
||||||
headers.put("X-Access-Token", token);
|
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);
|
String resp = httpHelper.postJsonString("https://aicc.cuopen.net:9801/aicc-api/ssb/callout/thirdParty/task/getTaskCallDetail", request.toJSONString(),headers);
|
||||||
log.info("apiGetTaskCallDetail: {}", resp);
|
|
||||||
TypeReference<AICCCallRespWrapper<AICCCallRespDetail>> type = new TypeReference<AICCCallRespWrapper<AICCCallRespDetail>>() {
|
TypeReference<AICCCallRespWrapper<AICCCallRespDetail>> type = new TypeReference<AICCCallRespWrapper<AICCCallRespDetail>>() {
|
||||||
};
|
};
|
||||||
AICCCallRespWrapper<AICCCallRespDetail> aICCCallRespWrapper = null;
|
AICCCallRespWrapper<AICCCallRespDetail> aICCCallRespWrapper = null;
|
||||||
|
|
|
||||||
|
|
@ -101,8 +101,8 @@
|
||||||
select * from ADDRESS_BOOK_OLD A
|
select * from ADDRESS_BOOK_OLD A
|
||||||
where 1=1
|
where 1=1
|
||||||
<if test="cnnm != null and cnnm != '' ">
|
<if test="cnnm != null and cnnm != '' ">
|
||||||
<!-- and A.CNNM like CONCAT('%',#{cnnm},'%')-->
|
and A.CNNM like CONCAT('%',#{cnnm},'%')
|
||||||
and A.CNNM = #{cnnm}
|
<!-- and A.CNNM = #{cnnm}-->
|
||||||
</if>
|
</if>
|
||||||
and level in
|
and level in
|
||||||
<foreach collection="levels" item="item" index="index" open="(" separator="," close=")">
|
<foreach collection="levels" item="item" index="index" open="(" separator="," close=")">
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue