调整保持数据库JSON对象

This commit is contained in:
zhangfan
2024-12-26 18:18:46 +08:00
parent 35c3bb05b5
commit 55c7c7fea3
7 changed files with 51 additions and 22 deletions

View File

@@ -2,9 +2,7 @@ package com.volvo.ai.analytic.center.constant;
public class Constant {
public static final String rabbitMqFormQueue = "Voc-Defeat-Dcc";
public static final String rabbitToFormQueue = "Voc-DefeatResponse-Dcc";
public static final String CHANNEL_DCC = "Channel_Dcc";
public static final String DISPLAY_STATUS = "FINISHED";
}

View File

@@ -6,7 +6,7 @@ import lombok.Data;
* mq消息体解析对象
*/
@Data
public class RabbitMqFormData {
public class MqFormData {
private String formId;
private Integer sinceType;
private Integer subSinceType;

View File

@@ -1,9 +1,13 @@
package com.volvo.ai.analytic.center.dto.req;
import com.alibaba.fastjson.annotation.JSONField;
import lombok.Data;
@Data
public class Result {
@JSONField(name = "analysis_info")
private AnalysisInfo analysisInfo;
private String text;
}

View File

@@ -6,7 +6,7 @@ import lombok.Data;
* mq消息体解析对象
*/
@Data
public class RabbitMqToData {
public class MqToData {
private String formId;
private int sinceType;
private int subSinceType;

View File

@@ -0,0 +1,23 @@
package com.volvo.ai.analytic.center.enums;
public enum RuleCategoryEnum {
TEXT("文本", "文本"),
REGEX("正则", "正则"),
;
private String code;
private String message;
RuleCategoryEnum(String code, String message) {
this.code = code;
this.message = message;
}
public String getCode() {
return this.code;
}
public String getMessage() {
return this.message;
}
}

View File

@@ -4,12 +4,14 @@ import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.volvo.ai.analytic.center.constant.YesOrNoConstants;
import com.volvo.ai.analytic.center.dto.req.RunMaskingRuleInput;
import com.volvo.ai.analytic.center.entity.DataMaskingRule;
import com.volvo.ai.analytic.center.enums.RuleCategoryEnum;
import com.volvo.ai.analytic.center.mapper.DataMaskingRuleMapper;
import com.volvo.ai.analytic.center.service.DataMaskingRuleService;
import lombok.extern.slf4j.Slf4j;
import org.springframework.stereotype.Service;
import java.util.List;
import java.util.Objects;
import java.util.regex.Matcher;
import java.util.regex.Pattern;
@@ -34,15 +36,17 @@ public class DataMaskingRuleServiceImpl extends ServiceImpl<DataMaskingRuleMappe
if (input.getDataMaskingRules() != null && !input.getDataMaskingRules().isEmpty()) {
for (DataMaskingRule ruleItem : input.getDataMaskingRules()) {
try {
if ("文本".equals(ruleItem.getCategoryName())) {
if (Objects.equals(RuleCategoryEnum.TEXT.getCode(),ruleItem.getCategoryName())) {
output = output.replace(ruleItem.getRuleText(), ruleItem.getRuleMappingText());
} else if ("正则".equals(ruleItem.getCategoryName())) {
} else if (Objects.equals(RuleCategoryEnum.REGEX.getCode(),ruleItem.getCategoryName())) {
Pattern pattern = Pattern.compile(ruleItem.getRuleText(), Pattern.CASE_INSENSITIVE);
Matcher matcher = pattern.matcher(output);
while (matcher.find()) {
String matchedValue = matcher.group();
output = output.replace(matchedValue, ruleItem.getRuleMappingText());
}
} else {
log.info("runMaskingRule categoryName:{} not support", ruleItem.getCategoryName());
}
} catch (Exception e) {
e.printStackTrace();

View File

@@ -73,7 +73,7 @@ public class MqMessageRecordServiceImpl extends ServiceImpl<MqMessageRecordMappe
public boolean processMessageByMQ(String message) {
log.info("processMessageByMQ message: {}", message);
LocalDateTime currTime = LocalDateTime.now();
RabbitMqFormData oldItem = JSONObject.parseObject(message, RabbitMqFormData.class);
MqFormData oldItem = JSONObject.parseObject(message, MqFormData.class);
log.info("processMessageByMQ 真假战败数据已获取 {}",oldItem.getFormId());
MqMessageRecord curMQMessageRecord = new MqMessageRecord();
try {
@@ -101,7 +101,7 @@ public class MqMessageRecordServiceImpl extends ServiceImpl<MqMessageRecordMappe
return true;
}
private void processMqSinceType51(RabbitMqFormData oldItem,MqMessageRecord curMQMessageRecord){
private void processMqSinceType51(MqFormData oldItem, MqMessageRecord curMQMessageRecord){
log.info("processMqSinceType51 辨别数据为分析请求 {}" ,SubSinceTypeEnum.SINCETYPE51.getCode());
DiffDefeatanAlysis diffDefeatanAlysis = JSON.parseObject(JSON.toJSONString(oldItem.getData()), DiffDefeatanAlysis.class);
DiffDefeatAnalyseOutputResult response = this.processChatRecord(diffDefeatanAlysis);
@@ -143,7 +143,7 @@ public class MqMessageRecordServiceImpl extends ServiceImpl<MqMessageRecordMappe
}
}
private void processMqSinceType52(RabbitMqFormData oldItem,MqMessageRecord curMQMessageRecord){
private void processMqSinceType52(MqFormData oldItem, MqMessageRecord curMQMessageRecord){
log.info("processMqSinceType52 辨别数据为分析请求 {}" ,SubSinceTypeEnum.SINCETYPE52.getCode());
com.volvo.ai.analytic.center.dto.req.DiffDefeatanApprove curDiffDefeatApprove = JSON.parseObject(JSON.toJSONString(oldItem.getData()), com.volvo.ai.analytic.center.dto.req.DiffDefeatanApprove.class);
DiffdefeatApprove approveEntity = diffdefeatApproveService.lambdaQuery().eq(DiffdefeatApprove::getFormId, oldItem.getFormId()).last("limit 1").one();
@@ -210,8 +210,8 @@ public class MqMessageRecordServiceImpl extends ServiceImpl<MqMessageRecordMappe
log.info("processChatRecord 企微用户信息为空,不附加企微数据");
}else {
try {
String userIdSql = "select distinct userid as userid from ods_workuserinfo_d where middleuserid ='" + input.getVdqwUserId()
+ "' union ALL select externaluserid as userid from ods_externalcontact_d where unionid ='" + input.getVdqwCustomerId() + "'";
String userIdSql = "select distinct userid as userid from ods_workuserinfo_d where middleuserid =" + input.getVdqwUserId()
+ " union ALL select externaluserid as userid from ods_externalcontact_d where unionid ='" + input.getVdqwCustomerId() + "'";
log.info("processChatRecord 查询企微用户数据sql {}",userIdSql);
List<Map<String, Object>> userList = clickhouseJdbcTemplate.queryForList(userIdSql);
if (!CollectionUtils.isEmpty(userList) && userList.size() == 2) {
@@ -262,7 +262,7 @@ public class MqMessageRecordServiceImpl extends ServiceImpl<MqMessageRecordMappe
CollectTranscriberJobResponse resp = JSON.parseObject(item.getCorpuText(), CollectTranscriberJobResponse.class);
// CollectTranscriberJobResponse resp = JSON.parseObject(oldItem.getDisplay(), CollectTranscriberJobResponse.class);
// 检查状态并处理Segments
if (Objects.equals("FINISHED",resp.getStatus()) && !CollectionUtils.isEmpty(resp.getSegments())) {
if (Objects.equals(Constant.DISPLAY_STATUS,resp.getStatus()) && !CollectionUtils.isEmpty(resp.getSegments())) {
StringBuilder vocStr = new StringBuilder();
for (Segment segment : resp.getSegments()) {
if (Objects.equals(RoleEnum.AGENT.getCode(),segment.getResult().getAnalysisInfo().getRole())) {
@@ -328,7 +328,7 @@ public class MqMessageRecordServiceImpl extends ServiceImpl<MqMessageRecordMappe
}
for (MqMessageRecord curMQMessageRecord : mqMessageRecords){
log.info("processMessageByTask 辨别数据为分析请求");
RabbitMqFormData oldItem = JSONObject.parseObject(curMQMessageRecord.getMessageContent(), RabbitMqFormData.class);
MqFormData oldItem = JSONObject.parseObject(curMQMessageRecord.getMessageContent(), MqFormData.class);
try {
if (Objects.equals(SinceTypeEnum.SINCETYPE2.getCode(),curMQMessageRecord.getSinceType()) && Objects.equals(SubSinceTypeEnum.SINCETYPE51.getCode(),curMQMessageRecord.getSubSinceType())) {
DiffDefeatResult diffDefeatResult;
@@ -464,19 +464,19 @@ public class MqMessageRecordServiceImpl extends ServiceImpl<MqMessageRecordMappe
}
}
public void toMqSinceType53(DiffDefeatanAlysis diffDefeatanAlysis, DiffDefeatResult diffDefeatResult, RabbitMqFormData oldItem){
public void toMqSinceType53(DiffDefeatanAlysis diffDefeatanAlysis, DiffDefeatResult diffDefeatResult, MqFormData oldItem){
String userStatus = getUserStatus(diffDefeatResult.getUserStatus());
DiffDefeatanCallbak curDiffDefeatCallback = new DiffDefeatanCallbak();
curDiffDefeatCallback.setBusinessId(diffDefeatanAlysis.getBusinessId());
curDiffDefeatCallback.setResponseCode(HandleStatusEnum.ANALYSIS_NORMAL.getCode().toString());
curDiffDefeatCallback.setLabel(userStatus);
curDiffDefeatCallback.setDescribe(diffDefeatResult.getAppointmentResult());
RabbitMqToData rabbitMqToData = new RabbitMqToData();
rabbitMqToData.setFormId(oldItem.getFormId());
rabbitMqToData.setSinceType(SinceTypeEnum.SINCETYPE2.getCode());
rabbitMqToData.setSubSinceType(SubSinceTypeEnum.SINCETYPE53.getCode());
rabbitMqToData.setData(curDiffDefeatCallback);
String callbackInput = JSONObject.toJSONString(rabbitMqToData);
MqToData mqToData = new MqToData();
mqToData.setFormId(oldItem.getFormId());
mqToData.setSinceType(SinceTypeEnum.SINCETYPE2.getCode());
mqToData.setSubSinceType(SubSinceTypeEnum.SINCETYPE53.getCode());
mqToData.setData(curDiffDefeatCallback);
String callbackInput = JSONObject.toJSONString(mqToData);
// rabbitTemplate.convertAndSend(Constant.rabbitToFormQueue, callbackInput);
rocketMQTemplate.syncSend(topic, callbackInput);
log.info("toMqSinceType53 发送回调MQ完成: {}", callbackInput);