Browse Source

修正:大模型德云物联减少查询策略次数

zhongwei
ty 3 months ago
parent
commit
1fbcc2ecf1
  1. 42
      hzims-service/equipment/src/main/java/com/hnac/hzims/delian/service/impl/DeLianServiceImpl.java

42
hzims-service/equipment/src/main/java/com/hnac/hzims/delian/service/impl/DeLianServiceImpl.java

@ -13,6 +13,7 @@ import lombok.extern.slf4j.Slf4j;
import org.springblade.core.log.exception.ServiceException; import org.springblade.core.log.exception.ServiceException;
import org.springblade.core.tool.api.R; import org.springblade.core.tool.api.R;
import org.springframework.beans.factory.annotation.Value; import org.springframework.beans.factory.annotation.Value;
import org.springframework.data.redis.core.RedisTemplate;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
import javax.servlet.http.HttpServletResponse; import javax.servlet.http.HttpServletResponse;
@ -30,6 +31,9 @@ public class DeLianServiceImpl implements IDeLianService {
private String hostId; private String hostId;
@Value("${deLian.passWord}") @Value("${deLian.passWord}")
private String passWord; private String passWord;
private final RedisTemplate redisTemplate;
private final static String load_strategys_key = "hzims:equipment:delian:strategys:key";
@Override @Override
public List<StrategyDataVO> getStrategys() { public List<StrategyDataVO> getStrategys() {
@ -37,29 +41,42 @@ public class DeLianServiceImpl implements IDeLianService {
HashMap<String, Object> requestData = new HashMap<String, Object>() {{ HashMap<String, Object> requestData = new HashMap<String, Object>() {{
put("Strategy_Type", 0); put("Strategy_Type", 0);
}}; }};
param.put("request_data",requestData); param.put("request_data", requestData);
param.put("request_cmd",DeLianConstants.STRATEGYS.getCode()); param.put("request_cmd", DeLianConstants.STRATEGYS.getCode());
String jsonString = JSON.toJSONString(param); String jsonString = JSON.toJSONString(param);
HttpResponse response = HttpRequest.post(deLianUrl).body(jsonString).execute(); HttpResponse response = HttpRequest.post(deLianUrl).body(jsonString).execute();
if(response.getStatus() == HttpServletResponse.SC_OK ) { if (response.getStatus() == HttpServletResponse.SC_OK) {
List<StrategyDataVO> responseData = JSONObject.parseArray(JSONObject.parseObject(response.body()).getString("response_data"), StrategyDataVO.class); List<StrategyDataVO> responseData = JSONObject.parseArray(JSONObject.parseObject(response.body()).getString("response_data"), StrategyDataVO.class);
redisTemplate.opsForValue().set(load_strategys_key, responseData);
return responseData; return responseData;
} }
return new ArrayList<>(); return new ArrayList<>();
} }
@Override @Override
public R executeScene(String key) { public R executeScene(String key) {
long start = System.currentTimeMillis();
log.info("executeScene接口请求开始------");
HashMap<String, Object> param = getOauthToken(); HashMap<String, Object> param = getOauthToken();
param.put("request_cmd",DeLianConstants.EXECUTESCENE.getCode()); param.put("request_cmd", DeLianConstants.EXECUTESCENE.getCode());
List<StrategyDataVO> strategys = getStrategys(); List<StrategyDataVO> strategys = new ArrayList<>();
if (redisTemplate.hasKey(load_strategys_key)) {
strategys = (List<StrategyDataVO>) redisTemplate.opsForValue().get(load_strategys_key);
} else {
strategys = getStrategys();
}
for (StrategyDataVO strategy : strategys) { for (StrategyDataVO strategy : strategys) {
if (key.equals(strategy.getSn())){ if (key.equals(strategy.getSn())) {
param.put("request_data",strategy.getSID()); param.put("request_data", strategy.getSID());
} }
} }
long start1 = System.currentTimeMillis();
log.info("deLian策略查询耗时:{}", start1 - start);
log.info("deLian一键执行接口请求开始------");
HttpResponse response = HttpRequest.post(deLianUrl).body(JSON.toJSONString(param)).execute(); HttpResponse response = HttpRequest.post(deLianUrl).body(JSON.toJSONString(param)).execute();
if(response.getStatus() == HttpServletResponse.SC_OK ) { if (response.getStatus() == HttpServletResponse.SC_OK) {
long end = System.currentTimeMillis();
log.info("deLian一键执行接口耗时:{}", end - start1);
return R.success("执行成功"); return R.success("执行成功");
} }
return R.fail("执行成功"); return R.fail("执行成功");
@ -78,15 +95,14 @@ public class DeLianServiceImpl implements IDeLianService {
String jsonString = JSON.toJSONString(param); String jsonString = JSON.toJSONString(param);
HttpResponse response = HttpRequest.post(deLianUrl).body(jsonString).execute(); HttpResponse response = HttpRequest.post(deLianUrl).body(jsonString).execute();
String token = JSONObject.parseObject(response.body()).getString("request_token"); String token = JSONObject.parseObject(response.body()).getString("request_token");
if(response.getStatus() == HttpServletResponse.SC_OK && if (response.getStatus() == HttpServletResponse.SC_OK &&
StringUtils.isNotBlank(token)) { StringUtils.isNotBlank(token)) {
param.remove("request_data"); param.remove("request_data");
param.remove("request_cmd"); param.remove("request_cmd");
param.put("request_token",token); param.put("request_token", token);
return param; return param;
}else { } else {
throw new ServiceException("获取权限失败,请稍后重试!"); throw new ServiceException("获取权限失败,请稍后重试!");
} }
} }
} }

Loading…
Cancel
Save