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

mcj:修复国产化,非国产化,未知依赖查找bug

上级 07726d86
......@@ -10,6 +10,7 @@ import com.zjty.inspect.utils.*;
import freemarker.template.TemplateException;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import lombok.extern.slf4j.Slf4j;
import org.apache.commons.io.FileUtils;
import org.apache.tomcat.util.http.fileupload.disk.DiskFileItem;
import org.springframework.beans.factory.annotation.Autowired;
......@@ -28,6 +29,7 @@ import java.util.Map;
* 评估接口
* @author mcj
*/
@Slf4j
@RestController
@RequestMapping("/inspect")
@Api(value = "评估接口管理接口",description = "评估管理接口,提供页面的增、删、改、查")
......@@ -62,26 +64,33 @@ public class InspectController {
@ApiOperation("上传代码进行评估")
public ResponseEntity inspect(Integer years,Integer systemFund,Integer modules
,String valid,Integer framework,Integer safety,Integer disaster,Integer data
,Integer admin,String projectName,Integer tables,String databaseType,Integer method, MultipartFile multfile) throws IOException {
,Integer admin,String projectName,Integer tables,String databaseType,Integer method,String username, MultipartFile multfile) throws IOException {
File file = FileUtil.saveToLocal(multfile);
InspectParameter inspectParameter = new InspectParameter();
inspectParameter.setSourceAddress(file.getCanonicalPath());
inspectParameter.setSystemFund(systemFund);
inspectParameter.setAdmin(admin);
inspectParameter.setModules(modules);
inspectParameter.setSafety(safety);
inspectParameter.setTables(tables);
inspectParameter.setValid(valid);
inspectParameter.setYears(years);
inspectParameter.setDisaster(disaster);
inspectParameter.setData(data);
inspectParameter.setFramework(framework);
inspectParameter.setPath(file.getCanonicalPath());
inspectParameter.setRecastMethod(method);
inspectParameter.setId(UUIDUtil.getUUID());
log.info("inspect:代码解压完成,地址为{}",file.getCanonicalPath());
InspectParameter inspectParameter;
InspectParameter parameterByUsername = parameterService.getParameterByUsername(username);
if(parameterByUsername==null){
inspectParameter = new InspectParameter();
inspectParameter.setUsername(username);
inspectParameter.setSourceAddress(file.getCanonicalPath());
inspectParameter.setSystemFund(systemFund);
inspectParameter.setAdmin(admin);
inspectParameter.setModules(modules);
inspectParameter.setSafety(safety);
inspectParameter.setTables(tables);
inspectParameter.setValid(valid);
inspectParameter.setYears(years);
inspectParameter.setDisaster(disaster);
inspectParameter.setData(data);
inspectParameter.setFramework(framework);
inspectParameter.setPath(file.getCanonicalPath());
inspectParameter.setRecastMethod(method);
inspectParameter.setId(UUIDUtil.getUUID());
}else{
inspectParameter=parameterByUsername;
}
ReportVo reportVo = new ReportVo();
int count = technologyService.findAllTechnologyCount();
reportVo.setTechnologiesNum(count);
int support = technologyService.findAllTechnologyNotSupport();
......@@ -93,9 +102,9 @@ public class InspectController {
reportVo.setProjectName(projectName);
reportVo.setSourceAddress(file.getCanonicalPath());
reportVo.setDatabaseType(databaseType);
//查找当前用户的参数是否存在
ReportVo inspect = inspectService.inspect(reportVo,inspectParameter);
log.info("inspect:代码评估完成");
Map map=new HashMap();
map.put("inspect",inspect);
map.put("time",TimeUtil.getTime());
......
......@@ -4,4 +4,6 @@ import com.zjty.inspect.entity.InspectParameter;
import org.springframework.data.jpa.repository.JpaRepository;
public interface ParameterDao extends JpaRepository<InspectParameter,String> {
InspectParameter findByUsernameEquals(String username);
}
......@@ -22,6 +22,10 @@ public class InspectParameter {
@Id
private String id;
/**
* 用户名
*/
private String username;
/**
* 重构占比
*/
......
......@@ -26,10 +26,7 @@ public class Report {
*/
private String htmlAddress;
//前端适配预算
//代码重构预算
//代码修改预算
private String username;
/**
* 数据创建时间
*/
......
......@@ -137,7 +137,7 @@ public class Inspector {
warns.clear();
rules.clear();
statisticsLanguage();
this.ruleList=ruleDao.findAll();
this.ruleList = ruleDao.findAll();
//统计项目组成文件构成
//统计配置文件地址
statisticsConfigFile();
......@@ -248,6 +248,7 @@ public class Inspector {
e.printStackTrace();
}
inspectParameter.setCodeSize((int) codeSize);
log.info("inspect:源代码扫描完成,统计各个文件后缀完成");
return analysis();
}
......@@ -287,20 +288,20 @@ public class Inspector {
}
break;
case "gradle":
// for (Path path : entry.getValue()) {
// if (path.getFileName().endsWith("build.gradle")) {
// ProjectPom projectPom = new ProjectPom();
// report.setManager(DependenceManagement.GRADLE.getStatus());
// List<PomDependency> pomDependencies = AnalysisFile.analysisGradle(path);
// projectPom.setDependencies(pomDependencies);
// //设置依赖
// StringBuilder stringBuilder = new StringBuilder();
// for (PomDependency dependency : pomDependencies) {
// setRule(path, stringBuilder, dependency);
// }
// dependencyVo.add(projectPom);
// }
// }
for (Path path : entry.getValue()) {
if (path.getFileName().endsWith("build.gradle")) {
ProjectPom projectPom = new ProjectPom();
report.setManager(DependenceManagement.GRADLE.getStatus());
List<PomDependency> pomDependencies = AnalysisFile.analysisGradle(path);
projectPom.setDependencies(pomDependencies);
//设置依赖
StringBuilder stringBuilder = new StringBuilder();
for (PomDependency dependency : pomDependencies) {
setRule(path, stringBuilder, dependency);
}
dependencyVo.add(projectPom);
}
}
break;
default:
}
......@@ -381,6 +382,7 @@ public class Inspector {
//设置是否需要重构
if (languageMatchMap.get("jsp").i == 0 & languageMatchMap.get("java").i == 0) {
report.setRecastMethod(RecastMethod.适配重构.getStatus());
log.info("inspect:代码解析完成,建议进行");
} else {
report.setRecastMethod(RecastMethod.代码修改.getStatus());
}
......@@ -390,17 +392,17 @@ public class Inspector {
* rule所需要数据装配
*/
private void ruleTransform(int i) {
if(i==1){
if (i == 1) {
List<Technology> front = technologyDao.findAllByBackorfrontEquals("1");
List<String> ids = front.stream().map(Technology::getId).collect(Collectors.toList());
this.ruleList=ruleDao.findAllByTechnologyIdIn(ids);
}else{
if(inspectParameter.getRecastMethod()==1){
this.ruleList=ruleDao.findAll();
}else{
this.ruleList = ruleDao.findAllByTechnologyIdIn(ids);
} else {
if (inspectParameter.getRecastMethod() == 1) {
this.ruleList = ruleDao.findAll();
} else {
List<Technology> front = technologyDao.findAllByBackorfrontEquals("1");
List<String> ids = front.stream().map(Technology::getId).collect(Collectors.toList());
this.ruleList=ruleDao.findAllByTechnologyIdIn(ids);
this.ruleList = ruleDao.findAllByTechnologyIdIn(ids);
}
}
Set<String> id = ruleList.stream().map(Rule::getTechnologyId).collect(Collectors.toSet());
......@@ -442,9 +444,9 @@ public class Inspector {
}
private void findExistTechnology() {
techJavaSupport = technologyDao.findAllByTechnologyNameEquals("Java依赖");
techNotCnSupport = technologyDao.findAllByTechnologyNameEquals("非国产化依赖");
techUnKnowSupport = technologyDao.findAllByTechnologyNameEquals("未知依赖");
techJavaSupport = technologyDao.findAllByTechnologyNameEquals("国产化依赖(支持)");
techNotCnSupport = technologyDao.findAllByTechnologyNameEquals("非国产化依赖(不支持)");
techUnKnowSupport = technologyDao.findAllByTechnologyNameEquals("未知依赖(未知)");
}
private HashMap<String, List<Warn>> getWarnMap(HashMap<String, Technology> map) {
......@@ -470,32 +472,27 @@ public class Inspector {
stringBuilder.append(dependency.getGroupId()).append(":").append(dependency.getArtifactId());
if (inspectParameter.getAdmin() == 1) {
if(path.getFileName().endsWith("build.gradle")){
}else{
Rule rule = new Rule();
rule.setTechnologyId(techJavaSupport.getId());
rule.setTarget(dependency.getGroupId());
rule.setTechnologyName(techJavaSupport.getTechnologyName());
rule.setSuffix("*");
rule.setId(UUIDUtil.getUUID());
Rule rule1 = new Rule();
rule1.setTechnologyId(techJavaSupport.getId());
rule1.setTarget(dependency.getArtifactId());
rule1.setTechnologyName(techJavaSupport.getTechnologyName());
rule1.setSuffix("*");
rule1.setId(UUIDUtil.getUUID());
if (!ruleMap.containsKey(dependency.getGroupId() + ":" + rule.getSuffix())) {
rules.add(rule);
ruleMap.put(dependency.getGroupId() + ":" + rule.getSuffix(), rule);
}
if (!ruleMap.containsKey(dependency.getArtifactId() + ":" + rule1.getSuffix())) {
rules.add(rule1);
ruleMap.put(dependency.getArtifactId() + ":" + rule1.getSuffix(), rule1);
}
dependency.setSupport(1);
Rule rule = new Rule();
rule.setTechnologyId(techJavaSupport.getId());
rule.setTarget(dependency.getGroupId());
rule.setTechnologyName(techJavaSupport.getTechnologyName());
rule.setSuffix("*");
rule.setId(UUIDUtil.getUUID());
Rule rule1 = new Rule();
rule1.setTechnologyId(techJavaSupport.getId());
rule1.setTarget(dependency.getArtifactId());
rule1.setTechnologyName(techJavaSupport.getTechnologyName());
rule1.setSuffix("*");
rule1.setId(UUIDUtil.getUUID());
if (!ruleMap.containsKey(dependency.getGroupId() + ":" + rule.getSuffix())) {
rules.add(rule);
ruleMap.put(dependency.getGroupId() + ":" + rule.getSuffix(), rule);
}
if (!ruleMap.containsKey(dependency.getArtifactId() + ":" + rule1.getSuffix())) {
rules.add(rule1);
ruleMap.put(dependency.getArtifactId() + ":" + rule1.getSuffix(), rule1);
}
dependency.setSupport(1);
} else {
int i = valiWarn(ruleList, path, stringBuilder.toString(), 0);
dependency.setSupport(i);
......
......@@ -20,4 +20,11 @@ public interface ParameterService {
* @param id id
*/
public InspectParameter getParameterById(String id);
/**
* 根据用户名获取参数
* @param username 用户名
* @return 参数对象
*/
public InspectParameter getParameterByUsername(String username);
}
......@@ -7,6 +7,9 @@ import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import java.util.Objects;
import java.util.Optional;
/**
* 参数
* @author Mcj
......@@ -32,4 +35,15 @@ public class ParameterServiceImpl implements ParameterService {
}
return new InspectParameter();
}
/**
* 根据用户名查询参数
* @param username 用户名
* @return 参数
*/
@Override
public InspectParameter getParameterByUsername(String username) {
InspectParameter inspectParameter = parameterDao.findByUsernameEquals(username);
return inspectParameter;
}
}
......@@ -38,9 +38,11 @@ public class AnalysisFile {
if(string.indexOf("compile")>0){
PomDependency pomDependency = new PomDependency();
int compile = string.indexOf("compile");
int i = compile + 8;
int i = compile + 9;
String substring = string.substring(i);
pomDependency.setGradle(substring);
String[] split = substring.split(":");
pomDependency.setGroupId(split[0]);
pomDependency.setArtifactId(split[1]);
dependencies.add(pomDependency);
}
}
......@@ -172,4 +174,20 @@ public class AnalysisFile {
projectPom.setDependencies(dependencies);
return projectPom;
}
public static void main(String[] args) {
String string = " compile 'com.spring.test:spring-core:4.25'";
String[] split = string.split(":");
if(string.indexOf("compile")>-1){
PomDependency pomDependency = new PomDependency();
int compile = string.indexOf("compile");
int i = compile + 9;
String substring = string.substring(i);
String[] split1 = substring.split(":");
System.out.println(split1[0]);
System.out.println(split1[1]);
pomDependency.setGradle(substring);
}
}
}
......@@ -43,12 +43,12 @@ public class FileUtil {
// MultipartFile to File
multipartFile.transferTo(excelFile);
if(prefix.equals(".zip")){
FileUtil.unPackZip(excelFile,"", "./"+name+"/"+split1[0]);
FileUtil.unPackZip(excelFile,"", ".././"+name+"/"+split1[0]);
}else{
FileUtil.unPackRar(excelFile, "./"+name+"/"+split1[0]);
FileUtil.unPackRar(excelFile, ".././"+name+"/"+split1[0]);
}
String[] split = fileName.split("\\.");
File file3 = new File("./"+name+"/"+split1[0]+"/"+split[0]);
File file3 = new File(".././"+name+"/"+split1[0]+"/"+split[0]);
excelFile.delete();
log.info("end unpack file");
System.out.println(file3.getCanonicalPath());
......
Markdown 格式
0%
您添加了 0 到此讨论。请谨慎行事。
请先完成此评论的编辑!
注册 或者 后发表评论