|
@@ -15,7 +15,11 @@ import org.springframework.beans.factory.annotation.Autowired;
|
|
import org.springframework.stereotype.Component;
|
|
import org.springframework.stereotype.Component;
|
|
|
|
|
|
import java.util.ArrayList;
|
|
import java.util.ArrayList;
|
|
|
|
+import java.util.Collections;
|
|
|
|
+import java.util.Comparator;
|
|
|
|
+import java.util.HashMap;
|
|
import java.util.List;
|
|
import java.util.List;
|
|
|
|
+import java.util.Map;
|
|
|
|
|
|
/**
|
|
/**
|
|
* @Description: 调用AI服务业务实现
|
|
* @Description: 调用AI服务业务实现
|
|
@@ -69,21 +73,38 @@ public class AIFacade {
|
|
case "7":
|
|
case "7":
|
|
List<FeatureRate> items = new ArrayList<>();
|
|
List<FeatureRate> items = new ArrayList<>();
|
|
if (ListUtil.isNotEmpty(res.getData().getDis())){
|
|
if (ListUtil.isNotEmpty(res.getData().getDis())){
|
|
- List<String> depts = new ArrayList<>();
|
|
|
|
- FeatureRate item;
|
|
|
|
|
|
+ Double rate;
|
|
|
|
+ Map<String, Double> map = new HashMap<>();
|
|
for (FeatureRate featureRate: res.getData().getDis()){
|
|
for (FeatureRate featureRate: res.getData().getDis()){
|
|
- if (Double.valueOf(featureRate.getRate()) > 0.2d){
|
|
|
|
|
|
+ if (Double.valueOf(featureRate.getRate()) > 0.1d){
|
|
if (StringUtil.isNotBlank(featureRate.getExtraProperty())){
|
|
if (StringUtil.isNotBlank(featureRate.getExtraProperty())){
|
|
- if (!depts.contains(featureRate.getExtraProperty())){
|
|
|
|
- depts.add(featureRate.getExtraProperty());
|
|
|
|
- item = new FeatureRate();
|
|
|
|
- item.setExtraProperty(featureRate.getExtraProperty());
|
|
|
|
- items.add(item);
|
|
|
|
|
|
+ if (null != map.get(featureRate.getExtraProperty())){
|
|
|
|
+ rate = map.get(featureRate.getExtraProperty())
|
|
|
|
+ + Double.valueOf(featureRate.getRate());
|
|
|
|
+ map.replace(featureRate.getExtraProperty(), rate);
|
|
|
|
+ } else {
|
|
|
|
+ map.put(featureRate.getExtraProperty(), Double.valueOf(featureRate.getRate()));
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
|
|
|
|
+ List<Map.Entry<String,Double>> list = new ArrayList<Map.Entry<String,Double>>(map.entrySet());
|
|
|
|
+ Collections.sort(list,new Comparator<Map.Entry<String,Double>>() {
|
|
|
|
+ //降序排序
|
|
|
|
+ public int compare(Map.Entry<String, Double> o1,
|
|
|
|
+ Map.Entry<String, Double> o2) {
|
|
|
|
+ return o2.getValue().compareTo(o1.getValue());
|
|
|
|
+ }
|
|
|
|
+ });
|
|
|
|
+ FeatureRate item;
|
|
|
|
+ for (Map.Entry<String,Double> entry: list){
|
|
|
|
+ if (items.size() < 2){
|
|
|
|
+ item = new FeatureRate();
|
|
|
|
+ item.setExtraProperty(entry.getKey());
|
|
|
|
+ items.add(item);
|
|
|
|
+ }
|
|
|
|
+ }
|
|
}
|
|
}
|
|
if (ListUtil.isEmpty(items)){
|
|
if (ListUtil.isEmpty(items)){
|
|
throw new CommonException(CommonErrorCode.PARAM_IS_ERROR, "暂时无法推理出结果");
|
|
throw new CommonException(CommonErrorCode.PARAM_IS_ERROR, "暂时无法推理出结果");
|