瀏覽代碼

merge test to main

tags/B.2.2.1_20231021_release
yk 2 年之前
父節點
當前提交
a0edf6f1a5
共有 4 個文件被更改,包括 71 次插入17 次删除
  1. +22
    -15
      xueyi-modules/xueyi-nlt/src/main/java/com/xueyi/nlt/nlt/controller/DmIntentController.java
  2. +43
    -0
      xueyi-modules/xueyi-system/src/main/java/com/xueyi/system/digitalmans/controller/DmDigitalmanController.java
  3. +5
    -1
      xueyi-modules/xueyi-system/src/main/java/com/xueyi/system/emcs/controller/DmExceptionLogController.java
  4. +1
    -1
      xueyi-modules/xueyi-system/src/main/java/com/xueyi/system/resource/controller/DmResourcesController.java

+ 22
- 15
xueyi-modules/xueyi-nlt/src/main/java/com/xueyi/nlt/nlt/controller/DmIntentController.java 查看文件

@@ -1,6 +1,6 @@
package com.xueyi.nlt.nlt.controller;

import co.elastic.clients.elasticsearch.ElasticsearchClient;
import co.elastic.clients.elasticsearch._types.query_dsl.MatchAllQuery;
import co.elastic.clients.elasticsearch._types.query_dsl.MatchQuery;
import co.elastic.clients.elasticsearch.core.SearchResponse;
import co.elastic.clients.elasticsearch.core.search.Hit;
@@ -10,8 +10,8 @@ import com.baomidou.mybatisplus.core.toolkit.StringUtils;
import com.xueyi.common.cache.utils.SourceUtil;
import com.xueyi.common.core.constant.basic.SecurityConstants;
import com.xueyi.common.core.constant.digitalman.MessageConstants;
import com.xueyi.common.core.constant.digitalman.SkillConstants.SkillType;
import com.xueyi.common.core.context.SecurityContextHolder;
import com.xueyi.common.core.utils.core.ListUtil;
import com.xueyi.common.core.web.result.AjaxResult;
import com.xueyi.common.core.web.result.R;
import com.xueyi.common.core.web.validate.V_A;
@@ -20,10 +20,14 @@ import com.xueyi.common.log.annotation.Log;
import com.xueyi.common.log.enums.BusinessType;
import com.xueyi.common.security.annotation.Logical;
import com.xueyi.common.security.annotation.RequiresPermissions;
import com.xueyi.common.security.utils.SecurityUtils;
import com.xueyi.common.web.entity.controller.BaseController;
import com.xueyi.nlt.api.netty.domain.vo.DmWebSocketMessageVo;
import com.xueyi.nlt.api.nlt.domain.vo.*;
import com.xueyi.nlt.api.nlt.domain.vo.CoversationSessionVo;
import com.xueyi.nlt.api.nlt.domain.vo.DmIntentVo;
import com.xueyi.nlt.api.nlt.domain.vo.DmLandingLlmVo;
import com.xueyi.nlt.api.nlt.domain.vo.DmRecognitionVo;
import com.xueyi.nlt.api.nlt.domain.vo.KnowledgeVo;
import com.xueyi.nlt.api.nlt.domain.vo.TaskKnowledgeVo;
import com.xueyi.nlt.api.nlt.feign.RemoteIntentService;
import com.xueyi.nlt.api.nlt.feign.RemoteLandingLlmService;
import com.xueyi.nlt.api.nlt.feign.RemoteQAService;
@@ -46,29 +50,32 @@ import com.xueyi.system.api.digitalmans.feign.RemoteSkillService;
import com.xueyi.system.api.model.Source;
import com.xueyi.system.api.organize.domain.dto.SysEnterpriseDto;
import com.xueyi.system.api.organize.feign.RemoteEnterpriseService;
import com.xueyi.tenant.api.tenant.domain.dto.TeTenantDto;
import com.xueyi.tenant.api.tenant.feign.RemoteTenantService;
import org.apache.commons.lang.time.DateUtils;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.data.redis.core.RedisTemplate;
import org.springframework.data.redis.core.StringRedisTemplate;
import org.springframework.validation.annotation.Validated;
import org.springframework.web.bind.annotation.*;
import com.xueyi.common.core.constant.digitalman.SkillConstants.SkillType;
import org.springframework.web.bind.annotation.DeleteMapping;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.PathVariable;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.PutMapping;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.ResponseBody;
import org.springframework.web.bind.annotation.RestController;

import java.io.IOException;
import java.io.Serializable;
import java.text.DateFormat;
import java.text.SimpleDateFormat;
import java.util.*;
import java.time.Instant;
import java.time.LocalDateTime;
import java.time.ZoneId;
import java.util.Arrays;
import java.util.Date;
import java.util.List;
import java.util.Map;
import java.util.regex.Matcher;
import java.util.regex.Pattern;
import java.util.concurrent.TimeUnit;
import java.util.stream.Collectors;

import static com.xueyi.common.core.constant.digitalman.MessageConstants.SYS_DICT_DATA_SPLITED;
@@ -145,7 +152,6 @@ public class DmIntentController extends BaseController<DmIntentQuery, DmIntentDt
public AjaxResult conversationApi(@RequestBody DmIntentVo intent) {
log.info("对话详情:{}", intent.toString());
TerminalSecurityContextHolder.setOperatorId(String.valueOf(intent.getOperator()));
log.info("交互对象:{}", intent.toString());
redisTemplate.opsForValue().increment("dashboard:server", 1);
// 获取今天日期,并格式化成yyyy-MM-dd
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
@@ -474,6 +480,7 @@ public class DmIntentController extends BaseController<DmIntentQuery, DmIntentDt
// 从列表中获取知识库任务
TaskKnowledgeVo vo = (TaskKnowledgeVo) redisTemplate2.opsForList().leftPop("group:task");

log.info("从缓存中获取对象:{}",vo.toString());
if (vo == null) {
return R.ok(null,"没有任务");
}


+ 43
- 0
xueyi-modules/xueyi-system/src/main/java/com/xueyi/system/digitalmans/controller/DmDigitalmanController.java 查看文件

@@ -3,6 +3,7 @@ package com.xueyi.system.digitalmans.controller;
import com.alibaba.fastjson2.JSONObject;
import com.baomidou.mybatisplus.core.toolkit.StringUtils;
import com.baomidou.mybatisplus.core.toolkit.Wrappers;
import com.xueyi.common.cache.utils.DictUtil;
import com.xueyi.common.core.constant.basic.BaseConstants;
import com.xueyi.common.core.constant.basic.SecurityConstants;
import com.xueyi.common.core.constant.basic.SqlConstants;
@@ -20,12 +21,15 @@ import com.xueyi.common.web.utils.DateUtils;
import com.xueyi.message.api.transfer.feign.RemoteTransferService;
import com.xueyi.system.api.device.domain.vo.DeviceTenantSourceMergeVo;
import com.xueyi.system.api.device.feign.RemoteDeviceTenantMergeService;
import com.xueyi.system.api.dict.domain.dto.SysDictDataDto;
import com.xueyi.system.api.digitalmans.domain.dto.DmDigitalmanWorktimeDto;
import com.xueyi.system.api.digitalmans.domain.dto.DmManDeviceDto;
import com.xueyi.system.api.digitalmans.domain.dto.DmSyncDigitalmanDto;
import com.xueyi.system.api.digitalmans.domain.po.DmDigitalmanExtPo;
import com.xueyi.system.api.digitalmans.domain.po.DmManDevicePo;
import com.xueyi.system.api.digitalmans.feign.RemoteDigitalmanService;
import com.xueyi.system.api.sms.domain.vo.DingdingReqEntity;
import com.xueyi.system.api.sms.feign.RemoteDingdingService;
import com.xueyi.system.device.service.impl.DmDeviceTenantMergeServiceImpl;
import com.xueyi.system.digitalmans.domain.dto.DmDigitalmanDto;
import com.xueyi.system.digitalmans.domain.dto.DmDigitalmanExtDto;
@@ -48,6 +52,7 @@ import com.xueyi.system.emcs.service.BaseRedisListDataCache;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.data.redis.core.RedisTemplate;
import org.springframework.validation.annotation.Validated;
import org.springframework.web.bind.annotation.DeleteMapping;
@@ -63,7 +68,10 @@ import org.springframework.web.bind.annotation.RestController;
import java.io.Serializable;
import java.text.ParseException;
import java.time.Duration;
import java.time.LocalDateTime;
import java.time.format.DateTimeFormatter;
import java.util.List;
import java.util.concurrent.TimeUnit;

/**
* 数字人基础管理 业务处理
@@ -122,6 +130,15 @@ public class DmDigitalmanController extends BaseController<DmDigitalmanQuery, Dm
@Autowired
private RedisTemplate<String, Serializable> redisTemplate;

@Autowired
RemoteDingdingService remoteDingdingService;

/**
* dingding连接token
*/
@Value("${notification.dingding.access-token}")
private String token;

/** 定义节点名称 */
@Override
protected String getNodeName() {
@@ -338,6 +355,7 @@ public class DmDigitalmanController extends BaseController<DmDigitalmanQuery, Dm
Integer uploadType = uploadObj.getInteger("upload_type");



DmExceptionLogDto exceptionLogDto = new DmExceptionLogDto();
exceptionLogDto.setType(type);
exceptionLogDto.setLevel(level);
@@ -370,6 +388,31 @@ public class DmDigitalmanController extends BaseController<DmDigitalmanQuery, Dm
} catch (ParseException e) {
throw new RuntimeException(e);
}
//判断上传异常日志类型是否为字典中类型,符合则使用钉钉通知
List<SysDictDataDto> dictDataDtos = DictUtil.getDictCache("monitoring_alarm_type");
if (type != null ) {
for (SysDictDataDto dictDataDto : dictDataDtos) {
if (StringUtils.equals(type,dictDataDto.getValue())) {
String dingTalkTimestamp = (String) redisTemplate.opsForValue().get("exceptionLog:dingTalk:" + devId + ":" + type);
if (!redisTemplate.hasKey("exceptionLog:dingTalk:" + devId + ":" + type)) {
//设置当前时间格式为yyyy-MM-dd HH:mm:ss
LocalDateTime localDateTime = LocalDateTime.now();
DateTimeFormatter dateTimeFormatter = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss");
String format = localDateTime.format(dateTimeFormatter);

DingdingReqEntity entity = new DingdingReqEntity();
entity.setMsgtype("text");
com.alibaba.fastjson.JSONObject jo = new com.alibaba.fastjson.JSONObject();
jo.put("content", "【客户】:" + devicePo.getTenantName() + "\n【设备号】:" + devId + "\n【类型】:" + dictDataDto.getLabel() + "\n【发生时间】:" + format + "\n【报警等级】"+ level +"\n请尽快排查原因,并在运维端解除预警状态。");
entity.setText(jo);
remoteDingdingService.send(token, entity);
// 更新缓存
redisTemplate.opsForValue().set("exceptionLog:dingTalk:" + devId + ":" + type, System.currentTimeMillis() + "",10, TimeUnit.MINUTES);
}
break;
}
}
}
}




+ 5
- 1
xueyi-modules/xueyi-system/src/main/java/com/xueyi/system/emcs/controller/DmExceptionLogController.java 查看文件

@@ -19,6 +19,7 @@ import com.xueyi.system.emcs.service.IDmExceptionLogService;
import com.xueyi.system.emcs.service.LogMqttMessageHandler;
import com.xueyi.system.emcs.service.impl.DmExceptionLogServiceImpl;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.validation.annotation.Validated;
import org.springframework.web.bind.annotation.DeleteMapping;
import org.springframework.web.bind.annotation.GetMapping;
@@ -54,6 +55,9 @@ public class DmExceptionLogController extends BaseController<DmExceptionLogQuery
private final static String HEART_MQTT_PREFIX = "digital-man";

private final static String[] CHART_TYPES = new String[]{"network", "cpu", "memory"};

@Value("${spring.profiles.active}")
private String activeProfile;
@Autowired
private MqttTemplate mqttTemplate;

@@ -299,7 +303,7 @@ public class DmExceptionLogController extends BaseController<DmExceptionLogQuery
JSONObject jsonObject = new JSONObject();
jsonObject.put("devId", devId);

mqttTemplate.sendToMqtt("/prod/digital_man"+"/"+devId+"/log_upload", jsonObject.toJSONString());
mqttTemplate.sendToMqtt("/" + activeProfile + "/digital_man"+"/"+devId+"/log_upload", jsonObject.toJSONString());
return success("操作成功");
}



+ 1
- 1
xueyi-modules/xueyi-system/src/main/java/com/xueyi/system/resource/controller/DmResourcesController.java 查看文件

@@ -145,7 +145,7 @@ public class DmResourcesController extends BaseController<DmResourcesQuery, DmRe
}


private static final String PARAM_RESOURCE_ID = "resource_id";
private static final String PARAM_RESOURCE_ID = "resourceId";
private static final String PARAM_URL = "url";

private static final String PARAM_TYPE = "type";


Loading…
取消
儲存