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

mcj:新增如果不上传源代码的逻辑

上级 f4b91a89
......@@ -51,11 +51,12 @@ public class InspectController {
@Autowired
private ConfigParamDao configParamDao;
//应用类型转换:小型0
Integer[] small = {3,4};
Integer[] small = {3, 4};
//应用类型转换:中型2
private Integer[] middle = {1,2,6,7,8,10};
private Integer[] middle = {1, 2, 6, 7, 8, 10};
//应用类型转换:大型4
private Integer[] big = {5,9};
private Integer[] big = {5, 9};
/**
* 上传代码进行评估
*
......@@ -76,12 +77,17 @@ 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 content, Integer method, String username, MultipartFile multfile) throws IOException {
, Integer admin, String projectName, Integer tables, String databaseType, Integer content, Integer method, String username, MultipartFile multfile) throws IOException {
InspectParameter inspectParameter = new InspectParameter();
ReportVo reportVo = new ReportVo();
if (multfile != null) {
File file = FileUtil.saveToLocal(multfile);
log.info("inspect:代码解压完成,地址为{}", file.getCanonicalPath());
InspectParameter inspectParameter = new InspectParameter();
inspectParameter.setSourceAddress(file.getCanonicalPath());
reportVo.setFileName(file.getName());
reportVo.setSourceAddress(file.getCanonicalPath());
}
inspectParameter.setUsername(username);
inspectParameter.setSystemFund(systemFund);
inspectParameter.setModules(modules);
......@@ -97,14 +103,9 @@ public class InspectController {
inspectParameter.setAdmin(admin);
inspectParameter.setSystemFund(systemFund);
inspectParameter.setRecastMethod(method);
inspectParameter.setSourceAddress(file.getCanonicalPath());
ReportVo reportVo = new ReportVo();
reportVo.setId(RandomUtil.getRandom());
reportVo.setUploadType("文件上传");
reportVo.setFileName(file.getName());
reportVo.setProjectName(projectName);
reportVo.setSourceAddress(file.getCanonicalPath());
reportVo.setDatabaseType(databaseType);
ReportVo inspect = inspectService.inspect(reportVo, inspectParameter);
......@@ -113,11 +114,9 @@ public class InspectController {
int support = technologyService.findAllTechnologyNotSupport();
reportVo.setTechnologiesRepair(support);
log.info("inspect:代码评估完成");
// String filePath = inspectService.freemakerData(inspect,count,support);
reportVo.setHtmlAddress(null);
Report report = new Report();
String random = RandomUtil.getRandom();
report.setId(RandomUtil.getRandom());
report.setHtmlAddress(reportVo.getHtmlAddress());
reportService.saveReport(report);
......@@ -135,10 +134,10 @@ public class InspectController {
public ResponseEntity rapidAssessment(@RequestBody Reform reform) throws IOException {
//输入参数
String in = JSON.toJSONString(reform);
Evaluation evaluation=new Evaluation();
Evaluation evaluation = new Evaluation();
evaluation.setInEva(in);
//判断评估类型
if(reform.getAssessmentType()!= null && reform.getAssessmentType() == 1){
if (reform.getAssessmentType() != null && reform.getAssessmentType() == 1) {
//快速评估
reform.setSystemStructure(new SystemStructure());
reform.setBrowser(new Browser());
......@@ -150,36 +149,36 @@ public class InspectController {
//获取admin
Config adminConfig = configParamDao.findByName("admin");
Integer admin;
if(adminConfig != null){
if (adminConfig != null) {
admin = Integer.valueOf(adminConfig.getValue());
}else{
} else {
admin = 2;
}
System.out.println("admin:"+admin);
System.out.println("admin:" + admin);
System.out.println(JSON.toJSONString(reform));
//架构类型
Integer framework = reform.getFramework();
if(framework!=null&&framework==1){
if (framework != null && framework == 1) {
framework = 2;
}
//应用类型
Integer content = 0;
List<Integer> applicationType = reform.getApplicationType();
if(applicationType == null || applicationType.size()==0){
if (applicationType == null || applicationType.size() == 0) {
content = -1;
}else {
for (Integer type:applicationType) {
if(Arrays.asList(middle).contains(type)){
if(content < 2){
} else {
for (Integer type : applicationType) {
if (Arrays.asList(middle).contains(type)) {
if (content < 2) {
content = 2;
}
}else if(Arrays.asList(big).contains(type)){
} else if (Arrays.asList(big).contains(type)) {
content = 4;
break;
}
}
}
System.out.println("content:"+content);
System.out.println("content:" + content);
InspectParameter inspectParameter = new InspectParameter();
inspectParameter.setContent(content);
......@@ -204,16 +203,16 @@ public class InspectController {
int support = technologyService.findAllTechnologyNotSupport();
reportVo.setTechnologiesRepair(support);
reportVo.setId(RandomUtil.getRandom());
if(reform.getGitUrl()==null){
if (reform.getGitUrl() == null) {
reportVo.setUploadType("文件上传");
}else{
} else {
reportVo.setUploadType("git下载");
}
reportVo.setFileName(reform.getCodeName());
reportVo.setProjectName(reform.getProjectName());
reportVo.setSourceAddress(reform.getCodeUrl());
reportVo.setDatabaseType(null);
ReportVo inspect = inspectService.inspect(reportVo,inspectParameter);
ReportVo inspect = inspectService.inspect(reportVo, inspectParameter);
log.info("inspect:代码评估完成");
Report report = new Report();
String random = RandomUtil.getRandom();
......@@ -236,9 +235,9 @@ public class InspectController {
将马晨俊的数据放入输出的表单
*/
AssessmentReport assessmentReport = new AssessmentReport();
if(reform.getMode()==1 && inspect.getLanguage()!=1){
if (reform.getMode() == 1 && inspect.getLanguage() != 1) {
assessmentReport.setCode(500);
}else{
} else {
assessmentReport.setCode(200);
}
//架构
......@@ -284,33 +283,33 @@ public class InspectController {
HashMap<String, List<Warn>> warnDetails = inspect.getWarnDetails();
Set<String> keySet = warnDetails.keySet();
List<TechnologyReport> technologyReports = new ArrayList<>();
for (String key:keySet) {
for (String key : keySet) {
List<Warn> warns = warnDetails.get(key);
if(warns.size()>0){
if (warns.size() > 0) {
TechnologyReport technologyReport = new TechnologyReport();
technologyReport.setTechnology(key);
//少一个策略
List<TechnologyContent> technologyContents = new ArrayList<>();
for (Warn warn:warns) {
for (Warn warn : warns) {
TechnologyContent technologyContent = new TechnologyContent();
//technologyContent.setLocal(warn.get);
technologyContent.setFile(warn.getFilePath());
technologyContent.setKeyWord(warn.getRule());
technologyContent.setPosition(warn.getLineNum().toString());
String categoryId = warn.getCategoryId();
if(!Objects.equals(categoryId, "0") &&categoryId!=null&& Objects.equals(categoryId, "1")
&& (key.contains("不支持") || key.contains("未知"))){
if (!Objects.equals(categoryId, "0") && categoryId != null && Objects.equals(categoryId, "1")
&& (key.contains("不支持") || key.contains("未知"))) {
number += 1;
}
technologyContents.add(technologyContent);
}
if(Objects.equals(key, "Microsoft CSS extensions(不支持)")){
if (Objects.equals(key, "Microsoft CSS extensions(不支持)")) {
css = technologyContents.size();
}else if(Objects.equals(key, "Microsoft API extensions(不支持)")){
} else if (Objects.equals(key, "Microsoft API extensions(不支持)")) {
api = technologyContents.size();
}else if(Objects.equals(key, "Microsoft JavaScript extensions(不支持)")){
} else if (Objects.equals(key, "Microsoft JavaScript extensions(不支持)")) {
plugIn = technologyContents.size();
}else if(Objects.equals(key, "JNI(不支持)")){
} else if (Objects.equals(key, "JNI(不支持)")) {
jni = technologyContents.size();
}
technologyReport.setTechnologyContents(technologyContents);
......@@ -349,7 +348,7 @@ public class InspectController {
browserDifficulty.setDocument(browser.getDocument());
browserDifficulty.setMedia(browser.getMedia());
browserDifficulty.setFlash(browser.getFlash());
System.out.println("BrowserDifficulty:"+JSON.toJSONString(browserDifficulty));
System.out.println("BrowserDifficulty:" + JSON.toJSONString(browserDifficulty));
difficultyAssessment.setBrowserDifficulty(browserDifficulty);
//中间件难度
MiddlewareDifficulty middlewareDifficulty = new MiddlewareDifficulty();
......@@ -387,7 +386,7 @@ public class InspectController {
middlewareDifficulty.setJms(middleware.getJms());
middlewareDifficulty.setJndi(middleware.getJndi());
middlewareDifficulty.setRoute(middleware.getRoute());
System.out.println("middlewareDifficulty"+JSON.toJSONString(middlewareDifficulty));
System.out.println("middlewareDifficulty" + JSON.toJSONString(middlewareDifficulty));
difficultyAssessment.setMiddlewareDifficulty(middlewareDifficulty);
//数据库难度
DatabaseDifficulty databaseDifficulty = new DatabaseDifficulty();
......@@ -401,11 +400,11 @@ public class InspectController {
//本地程序难度
ProgramDifficulty programDifficulty = new ProgramDifficulty();
List<DependOnNum> dependOns = new ArrayList<>();
DependOnNum dependOnNum2 = new DependOnNum("jni",jni);
DependOnNum dependOnNum2 = new DependOnNum("jni", jni);
dependOns.add(dependOnNum2);
programDifficulty.setDependOnNum(dependOns);
difficultyAssessment.setProgramDifficulty(programDifficulty);
System.out.println("programDifficulty+:"+JSON.toJSONString(programDifficulty));
System.out.println("programDifficulty+:" + JSON.toJSONString(programDifficulty));
assessmentReport.setDifficultyAssessment(difficultyAssessment);
WorkLoadUtil workLoadUtil = new WorkLoadUtil();
//r:人工费
......@@ -413,8 +412,8 @@ public class InspectController {
//restTemplate.exchange("localhost:8079/config", HttpMethod.GET,new HttpEntity<>())
//计算f
Budget budget = inspect.getBudgets().getBudget().get(0);
double f = budget.getProportion()*budget.getSysFund()*budget.getMoneyRate()*budget.getCoefficient();
System.out.println("F:"+f);
double f = budget.getProportion() * budget.getSysFund() * budget.getMoneyRate() * budget.getCoefficient();
System.out.println("F:" + f);
workLoadUtil.result(reform, assessmentReport, f, 1.5);
......@@ -431,23 +430,24 @@ public class InspectController {
}
@PostMapping("/uploads")
private ResponseEntity uploads(@RequestParam(value = "file") MultipartFile multfile,String s){
private ResponseEntity uploads(@RequestParam(value = "file") MultipartFile multfile, String s) {
try {
File file = FileUtil.saveToLocal(multfile);
String name = file.getName();
String path = file.getCanonicalPath();
return ResponseEntity.ok(new com.zjty.inspect.entity.File(name,path));
return ResponseEntity.ok(new com.zjty.inspect.entity.File(name, path));
} catch (IOException e) {
e.printStackTrace();
return ResponseEntity.ok("上传失败");
}
}
@PostMapping("/gitdownload")
private ResponseEntity gitDownloads(String gitAddress,String username,String password) {
private ResponseEntity gitDownloads(String gitAddress, String username, String password) {
try {
String gitPath = GitLabUtil.downLoadProject(gitAddress,username,password);
String gitPath = GitLabUtil.downLoadProject(gitAddress, username, password);
return ResponseEntity.ok(gitPath);
}catch (Exception e){
} catch (Exception e) {
return ResponseEntity.status(400).build();
}
}
......
......@@ -144,11 +144,13 @@ public class Inspector {
public ReportVo inspect() throws IOException {
//初始化值
initData();
//扫描文件
scanFiles();
inspectParameter.setCodeSize((int) codeSize);
report.setFileNum(fileNum);
report.setFileLine(fileLine);
log.info("inspect:源代码扫描完成,统计各个文件后缀完成");
//统计项目语言
setReportLanguageAndFrame();
//根据扫描结果以及用户配置得出需要使用的规则及技术
ruleTransform(report.getRecastMethod());
......@@ -537,6 +539,7 @@ public class Inspector {
}
//文件读取
if(inspectParameter.getSourceAddress()!=null){
Files.walkFileTree(Paths.get(inspectParameter.getSourceAddress()), new FileVisitor<Path>() {
@Override
public FileVisitResult preVisitDirectory(Path dir, BasicFileAttributes attrs) throws IOException {
......@@ -626,6 +629,7 @@ public class Inspector {
}
});
}
}
public class Counter {
private int i = 0;
......
Markdown 格式
0%
您添加了 0 到此讨论。请谨慎行事。
请先完成此评论的编辑!
注册 或者 后发表评论