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

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

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