提交 4ce132da authored 作者: 马晨俊's avatar 马晨俊

mcj:新增规则查询逻辑

上级 32f582fe
......@@ -7,6 +7,7 @@ import com.zjty.inspect.enums.DependenceManagement;
import com.zjty.inspect.enums.Framework;
import com.zjty.inspect.enums.Language;
import com.zjty.inspect.enums.RecastMethod;
import com.zjty.inspect.service.RuleService;
import com.zjty.inspect.utils.*;
import lombok.AllArgsConstructor;
import lombok.Data;
......@@ -42,7 +43,7 @@ public class Inspector {
private BudgetUitl budgetUitl;
@Autowired
private RuleDao ruleDao;
private RuleService ruleService;
@Autowired
private TechnologyDao technologyDao;
@Autowired
......@@ -226,7 +227,7 @@ public class Inspector {
report.setDependencyVo(dependencyVo);
//数据转换
HashMap<String, List<Warn>> warnMap = getWarnMap();
ruleDao.saveAll(rules);
ruleService.addRule(rules);
report.setWarnDetails(warnMap);
log.info("评估报告关键技术,{}", warnMap);
return report;
......@@ -272,12 +273,12 @@ public class Inspector {
private void ruleTransform(Integer status) {
//如果需要改造则查询所有规则
if (status == 1) {
this.ruleList = ruleDao.findAll();
this.ruleList = ruleService.findRules();
} else {
//只查询前端技术
List<Technology> front = technologyDao.findAllByBackorfrontEquals(1);
List<String> technologyIds = front.stream().map(Technology::getId).collect(Collectors.toList());
this.ruleList = ruleDao.findAllByTechnologyIdIn(technologyIds);
this.ruleList = ruleService.findAllByTechnologyIdIn(technologyIds);
}
//得到目前适用的技术id
Set<String> technologyIds = ruleList.stream().map(Rule::getTechnologyId).collect(Collectors.toSet());
......@@ -357,7 +358,7 @@ public class Inspector {
*/
private void initRule() {
//查询所有规则,第一遍扫描文件需要
this.ruleList = ruleDao.findAll();
this.ruleList = ruleService.findRules();
//根据后缀名,收集文件进行操作
for (Rule rule : ruleList) {
if (!ruleSuffixFilePathMap.containsKey(rule.getSuffix())) {
......@@ -426,16 +427,16 @@ public class Inspector {
Rule rule = new Rule();
if (inspectParameter.getAdmin() == 1) {
rule.setTechnologyId(techJavaSupport.getId());
rule.setTarget(dependency.getGroupId());
rule.setTechnologyName(techJavaSupport.getTechnologyName());
dependency.setSupport(1);
} else {
rule.setTechnologyId(techUnKnowSupport.getId());
rule.setTarget(dependency.getGroupId());
rule.setTechnologyName(techUnKnowSupport.getTechnologyName());
}
rule.setTarget(dependency.getGroupId());
rule.setSuffix("*");
rule.setId(UUIDUtil.getUUID());
Rule rule1 = new Rule();
rule1.setTechnologyId(techJavaSupport.getId());
rule1.setTarget(dependency.getArtifactId());
......
package com.zjty.inspect.service;
import com.zjty.inspect.entity.Page;
import com.zjty.inspect.entity.Rule;
import com.zjty.inspect.entity.RuleCollection;
import com.zjty.inspect.entity.RuleQo;
......@@ -17,6 +18,8 @@ public interface RuleService {
* @param ruleQo 规则封装类
*/
public void addRule(RuleQo ruleQo);
public void addRule(List<Rule> rules);
/**
* 修改规则
* @param ruleQo 规则封装类
......@@ -35,7 +38,15 @@ public interface RuleService {
*/
List<RuleCollection> findAll();
/**
* 查询所有规则
* @return 规则
*/
List<Rule> findRules();
List<RuleCollection> findByName(String name);
Page<RuleCollection> findSearch(Map searchMap, int page, int size);
List<Rule> findAllByTechnologyIdIn(List<String> technologyIds);
}
......@@ -65,11 +65,18 @@ public class RuleServiceImpl implements RuleService {
rule.setId(UUIDUtil.getUUID());
ruleDao.save(rule);
}
RuleCollection ruleCollection = data2RuleCollection(ruleQo);
RuleCollection ruleCollection = dataQo2RuleCollection(ruleQo);
ruleCollectionDao.save(ruleCollection);
}
@Override
public void addRule(List<Rule> rules) {
ruleDao.saveAll(rules);
List<RuleCollection> ruleCollections = dataList2RuleCollection(rules);
ruleCollectionDao.saveAll(ruleCollections);
}
/**
* 条件查询+分页
*
......@@ -92,6 +99,11 @@ public class RuleServiceImpl implements RuleService {
return myPage;
}
@Override
public List<Rule> findAllByTechnologyIdIn(List<String> technologyIds) {
return ruleDao.findAllByTechnologyIdIn(technologyIds);
}
/**
* 动态条件构建
*
......@@ -159,35 +171,18 @@ public class RuleServiceImpl implements RuleService {
return rules;
}
@Override
public List<Rule> findRules() {
return ruleDao.findAll();
}
@Override
public List<RuleCollection> findByName(String name) {
List<RuleCollection> rules = ruleCollectionDao.findAllByTargetLike("%" + name + "%");
return rules;
}
private List<RuleQo> data2RuleQo(List<Rule> rules){
HashMap<String, RuleQo> hashMap = new HashMap<>();
for (Rule rule : rules) {
if(!hashMap.containsKey(rule.getTarget()+rule.getTechnologyId())){
RuleQo ruleQo = new RuleQo();
ruleQo.setId(rule.getId());
ruleQo.setTarget(rule.getTarget());
ruleQo.setTechnologyId(rule.getTechnologyId());
ruleQo.setTechnologyName(rule.getTechnologyName());
ArrayList<String> suffix = new ArrayList<>();
suffix.add(rule.getSuffix());
ruleQo.setSuffix(suffix);
hashMap.put(rule.getTarget()+rule.getTechnologyId(),ruleQo);
}else{
RuleQo ruleQo = hashMap.get(rule.getTarget() + rule.getTechnologyId());
ruleQo.getSuffix().add(rule.getSuffix());
}
}
return new ArrayList<>(hashMap.values());
}
private RuleCollection data2RuleCollection(RuleQo ruleQo){
private RuleCollection dataQo2RuleCollection(RuleQo ruleQo){
RuleCollection ruleCollection = new RuleCollection();
ruleCollection.setTechnologyName(ruleQo.getTechnologyName());
ruleCollection.setTechnologyId(ruleQo.getTechnologyId());
......@@ -204,4 +199,41 @@ public class RuleServiceImpl implements RuleService {
ruleCollection.setSuffix(stringBuilder.toString());
return ruleCollection;
}
private List<RuleCollection> dataList2RuleCollection(List<Rule> rules){
ArrayList<RuleCollection> ruleCollections = new ArrayList<>();
HashMap<String, ArrayList<String>> map = new HashMap<>();
HashMap<String, Rule> ruleMap = new HashMap<>();
for (Rule rule : rules) {
ruleMap.put(rule.getTarget()+":"+rule.getTechnologyId(),rule);
if(map.containsKey(rule.getTarget()+":"+rule.getTechnologyId())){
ArrayList<String> suffix = map.get(rule.getTarget()+":"+rule.getTechnologyId());
suffix.add(rule.getSuffix());
}else{
ArrayList<String> suffix = new ArrayList<>();
suffix.add(rule.getSuffix());
map.put(rule.getTarget()+":"+rule.getTechnologyId(),suffix);
}
}
for (String target : map.keySet()) {
Rule rule = ruleMap.get(target);
RuleCollection ruleCollection = new RuleCollection();
ruleCollection.setTarget(rule.getTarget());
ruleCollection.setTechnologyId(rule.getTechnologyId());
ruleCollection.setTechnologyName(rule.getTechnologyName());
ruleCollection.setId(UUIDUtil.getUUID());
StringBuilder stringBuilder = new StringBuilder();
for (String suffix : map.get(target)) {
if(stringBuilder.length()==0){
stringBuilder.append(suffix);
}else{
stringBuilder.append(",").append(suffix);
}
}
ruleCollection.setSuffix(stringBuilder.toString());
ruleCollections.add(ruleCollection);
}
return ruleCollections;
}
}
Markdown 格式
0%
您添加了 0 到此讨论。请谨慎行事。
请先完成此评论的编辑!
注册 或者 后发表评论