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

mcj:新增规则查询逻辑

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