提交 9ea322d7 authored 作者: czq's avatar czq

czq

上级 eb3b263d
......@@ -22,6 +22,7 @@ import org.springframework.web.multipart.MultipartFile;
import org.springframework.web.multipart.commons.CommonsMultipartFile;
import java.io.*;
import java.io.File;
import java.util.*;
/**
......@@ -162,68 +163,41 @@ public class InspectController {
@PostMapping("/rapidAssessment")
public ResponseEntity rapidAssessment(@RequestBody Reform reform){
//File file = FileUtil.saveToLocal(multfile);
System.out.println(JSON.toJSONString(reform));
InspectParameter inspectParameter = new InspectParameter();
inspectParameter.setUsername(reform.getUsername());
inspectParameter.setValid("1");
inspectParameter.setSourceAddress(reform.getCodeUrl());
inspectParameter.setSystemFund(reform.getCost());
inspectParameter.setAdmin(reform.getAdmin());
inspectParameter.setModules(reform.getModuleNum());
inspectParameter.setSafety(reform.getSafe());
inspectParameter.setTables(reform.getTableNum());
// inspectParameter.setValid(valid);
// inspectParameter.setYears(years);
inspectParameter.setDisaster(reform.getDisasterTolerance());
inspectParameter.setData(reform.getDatabaseNum());
inspectParameter.setFramework(reform.getFramework());
inspectParameter.setPath(reform.getGitUrl());
inspectParameter.setGitAddress(reform.getGitUrl());
inspectParameter.setRecastMethod(reform.getMode());
inspectParameter.setYears(reform.getTime());
inspectParameter.setId(UUIDUtil.getUUID());
ReportVo reportVo = new ReportVo();
int count = technologyService.findAllTechnologyCount();
reportVo.setTechnologiesNum(count);
int support = technologyService.findAllTechnologyNotSupport();
reportVo.setTechnologiesRepair(support);
reportVo.setId(RandomUtil.getRandom());
reportVo.setUploadType("文件上传");
reportVo.setFileName(reform.getCodeName());
reportVo.setProjectName(reform.getProjectName());
reportVo.setSourceAddress(reform.getCodeUrl());
reportVo.setDatabaseType(null);
ReportVo inspect = inspectService.inspect(reportVo,inspectParameter);
Map map=new HashMap();
map.put("inspect",inspect);
map.put("time",TimeUtil.getTime());
HashMap<String, List<Warn>> warnMap = inspect.getWarnDetails();
List<Technology> technologies = inspect.getTechnologies();
Map techMap=new HashMap();
for (Technology technology : technologies) {
techMap.put(technology.getTechnologyName(),technology.getSupport());
}
map.put("techMap",techMap);
map.put("warnMap",warnMap);
map.put("technologies",technologies);
try {
String template = FreemarkerUtils.getTemplate("pg.ftl", map);
String s = inspectService.generateHtml(template, map);
String filePath = FileUtil.createFilePath();
File file1 = new File("./pgbg/" + filePath + "/" + reform.getCodeName() + ".html");
FileUtil.write(s,"./pgbg/"+filePath+"/"+reform.getCodeName()+".html");
reportVo.setHtmlAddress(file1.getCanonicalPath());
System.out.println("内容"+s);
} catch (Exception e) {
e.printStackTrace();
}
log.info("inspect:代码评估完成");
Report report = new Report();
String random = RandomUtil.getRandom();
report.setId(RandomUtil.getRandom());
report.setHtmlAddress(reportVo.getHtmlAddress());
reportService.saveReport(report);
inspectParameter.setReportId(random);
parameterService.saveParameter(inspectParameter);
/*
马晨俊运算结束
*/
......@@ -248,6 +222,8 @@ public class InspectController {
int api = 0;
//插件替换数量
int plugIn = 0;
//jni数量
int jni = 0;
HashMap<String, List<Warn>> warnDetails = inspect.getWarnDetails();
Set<String> keySet = warnDetails.keySet();
List<TechnologyReport> technologyReports = new ArrayList<>();
......@@ -271,6 +247,8 @@ public class InspectController {
api = technologyContents.size();
}else if(Objects.equals(key, "Microsoft JavaScript extensions(不支持)")){
plugIn = technologyContents.size();
}else if(Objects.equals(key, "JNI(不支持)")){
jni = technologyContents.size();
}
technologyReport.setTechnologyContents(technologyContents);
technologyReports.add(technologyReport);
......@@ -285,14 +263,15 @@ public class InspectController {
//难度数据填写
DifficultyAssessment difficultyAssessment = new DifficultyAssessment();
//系统部署架构难度,reform中获取,少一个前后端分离
//系统部署架构难度,reform中获取
FrameDifficulty frameDifficulty = new FrameDifficulty();
frameDifficulty.setDetails(inspect.getFramework());
SystemStructure systemStructure = reform.getSystemStructure();
frameDifficulty.setDisaster(systemStructure.getDisaster());
frameDifficulty.setDistributed(systemStructure.getDistributed());
frameDifficulty.setLoadBalance(systemStructure.getLoadBalance());
frameDifficulty.setOtherDemand(systemStructure.getOtherDemand());
difficultyAssessment.setFrameDifficulty(frameDifficulty);
//浏览器难度
BrowserDifficulty browserDifficulty = new BrowserDifficulty();
browserDifficulty.setApi(api);
......@@ -307,10 +286,78 @@ public class InspectController {
browserDifficulty.setDocument(browser.getDocument());
browserDifficulty.setMedia(browser.getMedia());
browserDifficulty.setFlash(browser.getFlash());
return ResponseEntity.ok(new AssessmentReport());
System.out.println("BrowserDifficulty:"+JSON.toJSONString(browserDifficulty));
difficultyAssessment.setBrowserDifficulty(browserDifficulty);
//中间件难度
MiddlewareDifficulty middlewareDifficulty = new MiddlewareDifficulty();
//所有的依赖
List<PomDependency> dependencies = inspect.getDependencyVo().getDepTreeList().get(0).getDependencies();
HashMap<String,Integer> num = new HashMap<>();
for (PomDependency pomDependency:dependencies) {
String groupId = pomDependency.getGroupId();
Integer integer = num.get(groupId);
if(integer == null){
num.put(groupId,1);
}else{
integer = integer+1;
num.put(groupId,integer);
}
}
System.out.println("所有依赖:"+JSON.toJSONString(num));
Set<String> strings = num.keySet();
List<DependOnNum> dependOnNums = new ArrayList<>();
for (String s:strings) {
DependOnNum dependOnNum = new DependOnNum();
dependOnNum.setName(s);
dependOnNum.setNum(num.get(s));
dependOnNums.add(dependOnNum);
}
middlewareDifficulty.setDependOnNum(dependOnNums);
Middleware middleware = reform.getMiddleware();
middlewareDifficulty.setWeb(middleware.getWeb());
middlewareDifficulty.setJms(middleware.getJms());
middlewareDifficulty.setJndi(middleware.getJndi());
middlewareDifficulty.setRoute(middleware.getRoute());
System.out.println("middlewareDifficulty"+JSON.toJSONString(middlewareDifficulty));
difficultyAssessment.setMiddlewareDifficulty(middlewareDifficulty);
//数据库难度
DatabaseDifficulty databaseDifficulty = new DatabaseDifficulty();
Database database = reform.getDatabase();
databaseDifficulty.setDisasterTolerance(database.getDisasterTolerance());
databaseDifficulty.setSafe(database.getSafe());
databaseDifficulty.setSeparate(database.getSeparate());
databaseDifficulty.setPerformance(database.getPerformance());
databaseDifficulty.setOtherContent(database.getOtherContent());
difficultyAssessment.setDatabaseDifficulty(databaseDifficulty);
//本地程序难度
ProgramDifficulty programDifficulty = new ProgramDifficulty();
List<DependOnNum> dependOns = new ArrayList<>();
DependOnNum dependOnNum = new DependOnNum("jni",jni);
dependOns.add(dependOnNum);
programDifficulty.setDependOnNum(dependOns);
difficultyAssessment.setProgramDifficulty(programDifficulty);
System.out.println("programDifficulty+:"+JSON.toJSONString(programDifficulty));
assessmentReport.setDifficultyAssessment(difficultyAssessment);
WorkLoadUtil workLoadUtil = new WorkLoadUtil();
//r:人工费
//计算f
Budget budget = inspect.getBudgets().getBudget().get(0);
double f = budget.getProportion()*budget.getSysFund()*budget.getMoneyRate()*budget.getCoefficient();
System.out.println("F:"+f);
workLoadUtil.result(reform, assessmentReport, f, 120);
return ResponseEntity.ok(assessmentReport);
}
@PostMapping("/uploads")
private ResponseEntity uploads(@RequestParam(value = "file") MultipartFile multfile){
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));
} catch (IOException e) {
e.printStackTrace();
return ResponseEntity.ok("上传失败");
}
}
}
......@@ -60,5 +60,5 @@ public class DatabaseDifficulty {
/**
* 其他内容
*/
private Integer otherContent = 1;
private String otherContent = "其他内容";
}
package com.zjty.inspect.entity;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;
/**
* <h4>Description : inspect</h4>
*
* @author : M@tr!x [xhyrzldf@foxmail.com]
* @Date : 2020-03-06 21:25
*/
@Data
@AllArgsConstructor
@NoArgsConstructor
public class File {
private String name;
private String path;
}
......@@ -108,7 +108,7 @@ public class Reform {
/**
* 运行时间
*/
private Date time;
private Integer time;
/**
* 数据库表数量
......
package com.zjty.inspect.inspect;
import com.alibaba.fastjson.JSON;
import com.zjty.inspect.dao.*;
import com.zjty.inspect.entity.*;
import com.zjty.inspect.enums.DependenceManagement;
......@@ -14,6 +15,7 @@ import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import springfox.documentation.spring.web.json.Json;
import java.io.IOException;
import java.nio.charset.MalformedInputException;
......@@ -521,6 +523,7 @@ public class Inspector {
stringBuilder.append(dependency.getGroupId()).append(":").append(dependency.getArtifactId());
if (inspectParameter.getAdmin() == 1) {
Rule rule = new Rule();
System.out.println(JSON.toJSONString(techJavaSupport));
rule.setTechnologyId(techJavaSupport.getId());
rule.setTarget(dependency.getGroupId());
rule.setTechnologyName(techJavaSupport.getTechnologyName());
......
package com.zjty.inspect.utils;
import com.alibaba.fastjson.JSON;
import com.zjty.inspect.dao.CoefficientModelDao;
import com.zjty.inspect.dao.ConfigParamDao;
import com.zjty.inspect.entity.*;
......@@ -61,6 +62,7 @@ public class BudgetUitl {
}
inspectParameter.setMoneyRate(Double.valueOf(doubleHashMap.get(1)));
Double moneyRate = inspectParameter.getMoneyRate();
System.out.println(JSON.toJSONString("inspectParameter:"+inspectParameter));
int years = inspectParameter.getYears();
double pow = Math.pow(moneyRate, years);
......
......@@ -48,6 +48,7 @@ public class WorkLoadUtil {
Browser browser = reform.getBrowser();
if(browser!=null) {
//如果原浏览器包含IE,+10
System.out.println(JSON.toJSONString(browser));
if (browser.getCompatibleBrowsers().contains(CompatibleBrowser.IETRIDENT)) {
score += 10;
logger.info("包含IE+10:" + score);
......@@ -222,7 +223,7 @@ public class WorkLoadUtil {
//f:工作量(马)
//r:人工费
public void result(Reform reform,AssessmentReport report,double f,double r){
public AssessmentReport result(Reform reform,AssessmentReport report,double f,double r){
logger.info("计算工作量,输入:"+JSON.toJSONString(report));
//总计J = F(马) * 人工费
......@@ -317,7 +318,7 @@ public class WorkLoadUtil {
eDatabase *= (1+(databaseDifficulty.getSafe()==1?1:0)/100)*
(1+(databaseDifficulty.getSeparate()==1?1:0)/100)*
(1+(databaseDifficulty.getPerformance()==1?1:0)/100)*
(1+(databaseDifficulty.getOtherContent()==1?1:0)/100);
(1+(databaseDifficulty.getOtherContent()!=null?1:0)/100);
logger.info("数据库难度:"+eDatabase);
databaseDifficulty.setDifficulty(eDatabase);
//工作量2*j*(z-1)
......@@ -366,6 +367,8 @@ public class WorkLoadUtil {
report.getWorkload().getDeploy().setDevelopmentVolume(deploymentWorkload);
report.getWorkload().getDeploy().setCorrectionFactor(deploymentCorrectionFactor);
report.getWorkload().getTotal().setDevelopmentVolume(totalWorkload);
return report;
}
public static void main(String[] args) {
......
Markdown 格式
0%
您添加了 0 到此讨论。请谨慎行事。
请先完成此评论的编辑!
注册 或者 后发表评论