提交 6e7f506b authored 作者: 孙洁清's avatar 孙洁清

关键技术接口根据name查询功能

package com.zjty.inspect.controller; package com.zjty.inspect.controller;
import com.zjty.inspect.dao.TechnologyDao;
import com.zjty.inspect.entity.InspectParameter; import com.zjty.inspect.entity.InspectParameter;
import com.zjty.inspect.entity.ReportVo; import com.zjty.inspect.entity.ReportVo;
import com.zjty.inspect.entity.Technology; import com.zjty.inspect.entity.Technology;
import com.zjty.inspect.entity.Warn; import com.zjty.inspect.entity.Warn;
import com.zjty.inspect.service.InspectService; import com.zjty.inspect.service.InspectService;
import com.zjty.inspect.service.TechnologyService;
import com.zjty.inspect.utils.*; import com.zjty.inspect.utils.*;
import freemarker.template.TemplateException; import freemarker.template.TemplateException;
import io.swagger.annotations.Api; import io.swagger.annotations.Api;
...@@ -34,6 +36,8 @@ public class InspectController { ...@@ -34,6 +36,8 @@ public class InspectController {
@Autowired @Autowired
private InspectService inspectService; private InspectService inspectService;
@Autowired
private TechnologyService technologyService;
/** /**
* 上传代码进行评估 * 上传代码进行评估
...@@ -53,8 +57,8 @@ public class InspectController { ...@@ -53,8 +57,8 @@ public class InspectController {
@PostMapping("/path") @PostMapping("/path")
@ApiOperation("上传代码进行评估") @ApiOperation("上传代码进行评估")
public ResponseEntity inspect(Integer years,Integer systemFund,Integer modules public ResponseEntity inspect(Integer years,Integer systemFund,Integer modules
,String valid,Double framework,Double safety,Double disaster,Integer data ,String valid,Integer framework,Integer safety,Integer disaster,Integer data
,Integer admin,String projectName,String fileName, MultipartFile multfile) throws IOException { ,Integer admin,String projectName,Integer tables,String databaseType, MultipartFile multfile) throws IOException {
File file = FileUtil.saveToLocal(multfile); File file = FileUtil.saveToLocal(multfile);
InspectParameter inspectParameter = new InspectParameter(); InspectParameter inspectParameter = new InspectParameter();
...@@ -63,6 +67,7 @@ public class InspectController { ...@@ -63,6 +67,7 @@ public class InspectController {
inspectParameter.setAdmin(admin); inspectParameter.setAdmin(admin);
inspectParameter.setModules(modules); inspectParameter.setModules(modules);
inspectParameter.setSafety(safety); inspectParameter.setSafety(safety);
inspectParameter.setTables(tables);
inspectParameter.setValid(valid); inspectParameter.setValid(valid);
inspectParameter.setYears(years); inspectParameter.setYears(years);
inspectParameter.setDisaster(disaster); inspectParameter.setDisaster(disaster);
...@@ -72,34 +77,42 @@ public class InspectController { ...@@ -72,34 +77,42 @@ public class InspectController {
inspectParameter.setId(UUIDUtil.getUUID()); inspectParameter.setId(UUIDUtil.getUUID());
ReportVo reportVo = new ReportVo(); ReportVo reportVo = new ReportVo();
int count = technologyService.findAllTechnologyCount();
reportVo.setTechnologiesNum(count);
int support = technologyService.findAllTechnologyNotSupport();
reportVo.setTechnologiesRepair(support);
reportVo.setId(TimeUtil.getNowDate()); reportVo.setId(TimeUtil.getNowDate());
reportVo.setUploadType("文件上传"); reportVo.setUploadType("文件上传");
reportVo.setFileName(fileName); reportVo.setFileName(file.getName());
reportVo.setProjectName(projectName); reportVo.setProjectName(projectName);
reportVo.setSourceAddress(file.getCanonicalPath()); reportVo.setSourceAddress(file.getCanonicalPath());
reportVo.setDatabaseType(databaseType);
ReportVo inspect = inspectService.inspect(reportVo,inspectParameter); ReportVo inspect = inspectService.inspect(reportVo,inspectParameter);
// Map map=new HashMap();
// map.put("inspect",inspect); /*Map map=new HashMap();
// map.put("time",TimeUtil.getTime()); map.put("inspect",inspect);
// HashMap<String, List<Warn>> warnMap = inspect.getWarnDetails(); map.put("time",TimeUtil.getTime());
// List<Technology> technologies = inspect.getTechnologies(); HashMap<String, List<Warn>> warnMap = inspect.getWarnDetails();
// Map techMap=new HashMap(); List<Technology> technologies = inspect.getTechnologies();
// for (Technology technology : technologies) { Map techMap=new HashMap();
// techMap.put(technology.getTechnologyName(),technology.getSupport()); for (Technology technology : technologies) {
// } techMap.put(technology.getTechnologyName(),technology.getSupport());
// map.put("techMap",techMap); }
// map.put("warnMap",warnMap); map.put("techMap",techMap);
// map.put("technologies",technologies); map.put("warnMap",warnMap);
// try { map.put("technologies",technologies);
// String template = FreemarkerUtils.getTemplate("pg.ftl", map); try {
// String s = inspectService.generateHtml(template, map); String template = FreemarkerUtils.getTemplate("pg.ftl", map);
// FileUtil.write(s,"/opt/pgbg/"+fileName+".html"); String s = inspectService.generateHtml(template, map);
// System.out.println("内容"+s); String filePath = FileUtil.createFilePath();
// } catch (TemplateException e) { FileUtil.write(s,"/opt/pgbg/"+filePath+"/"+file.getName()+".html");
// e.printStackTrace(); reportVo.setHtmlAddress("/opt/pgbg/"+filePath+"/"+file.getName()+".html");
// } System.out.println("内容"+s);
} catch (TemplateException e) {
e.printStackTrace();
}*/
return ResponseEntity.ok(inspect); return ResponseEntity.ok(inspect);
} }
...@@ -114,13 +127,13 @@ public class InspectController { ...@@ -114,13 +127,13 @@ public class InspectController {
public ResponseEntity inspect1(@RequestBody InspectParameter inspectParameter){ public ResponseEntity inspect1(@RequestBody InspectParameter inspectParameter){
String path = GitLabUtil.downLoadProject(inspectParameter.getGitAddress(),inspectParameter.getGitName()); String path = GitLabUtil.downLoadProject(inspectParameter.getGitAddress(),inspectParameter.getGitName());
inspectParameter.setId(UUIDUtil.getUUID()); inspectParameter.setId(UUIDUtil.getUUID());
inspectParameter.setPath(path); inspectParameter.setSourceAddress(path);
ReportVo reportVo = new ReportVo(); ReportVo reportVo = new ReportVo();
reportVo.setUploadType("git下载"); reportVo.setUploadType("git下载");
reportVo.setSourceAddress(path); reportVo.setSourceAddress(path);
reportVo.setGitAddress(inspectParameter.getGitAddress()); reportVo.setGitAddress(inspectParameter.getGitAddress());
inspectService.inspect(reportVo,inspectParameter); ReportVo inspect = inspectService.inspect(reportVo, inspectParameter);
return ResponseEntity.ok(200); return ResponseEntity.ok(inspect);
} }
@PostMapping("/frontend") @PostMapping("/frontend")
......
...@@ -16,6 +16,11 @@ public interface TechnologyDao extends JpaRepository<Technology,String>, JpaSpec ...@@ -16,6 +16,11 @@ public interface TechnologyDao extends JpaRepository<Technology,String>, JpaSpec
*/ */
Technology findAllByTechnologyNameEquals(String name); Technology findAllByTechnologyNameEquals(String name);
/**
* 模糊查询技术名称
* @param name
* @return
*/
List<Technology> findAllByTechnologyNameLike(String name); List<Technology> findAllByTechnologyNameLike(String name);
/** /**
...@@ -28,4 +33,11 @@ public interface TechnologyDao extends JpaRepository<Technology,String>, JpaSpec ...@@ -28,4 +33,11 @@ public interface TechnologyDao extends JpaRepository<Technology,String>, JpaSpec
@Query("select technologyName from Technology ") @Query("select technologyName from Technology ")
List<String> getTechnologyNames(); List<String> getTechnologyNames();
/**
* 查询不支持的技术个数
* @param support 是否支持
* @return
*/
int countAllBySupportIsNot(Integer support);
} }
package com.zjty.inspect.entity;
import lombok.Data;
import java.util.ArrayList;
import java.util.List;
/**
* 预算
* @author Mcj
* @date 2020-02-27 19:05
*/
@Data
public class BudgetVo {
private List<Budget> budget = new ArrayList<>();
private List<CoefficientModelVo> coefficientModelVos = new ArrayList<>();
}
...@@ -45,7 +45,10 @@ public class CoefficientModel { ...@@ -45,7 +45,10 @@ public class CoefficientModel {
private Integer scale; private Integer scale;
public Double countCoefficient(Double data) { public Double countCoefficient(Integer data) {
if(data==null || data==0){
return 1D;
}
if(data<min){ if(data<min){
return 1+belowCoefficient; return 1+belowCoefficient;
}else if(data>max){ }else if(data>max){
......
package com.zjty.inspect.entity;
import lombok.Data;
import javax.persistence.Entity;
import javax.persistence.Id;
/**
* 系数计算
*
* @author Mcj
*/
@Data
public class CoefficientModelVo {
/**
* 系数名称
*/
private String name;
/**
* 系数
*/
private double value;
}
...@@ -51,10 +51,20 @@ public class InspectParameter { ...@@ -51,10 +51,20 @@ public class InspectParameter {
* 数据量 * 数据量
*/ */
private Integer data; private Integer data;
/**
* 代码量
*/
private Integer codeSize;
/** /**
* 架构 * 架构
*/ */
private Double framework; private Integer framework;
/**
* 数据库表数量
*/
private Integer tables;
/** /**
* 安全能力 * 安全能力
...@@ -62,7 +72,7 @@ public class InspectParameter { ...@@ -62,7 +72,7 @@ public class InspectParameter {
* 2:弱 * 2:弱
* 3:强 * 3:强
*/ */
private Double safety; private Integer safety;
/** /**
* 容灾 * 容灾
...@@ -70,7 +80,7 @@ public class InspectParameter { ...@@ -70,7 +80,7 @@ public class InspectParameter {
* 2:有0,无-0.05 * 2:有0,无-0.05
* 3:有0,无-0.1 * 3:有0,无-0.1
*/ */
private Double disaster; private Integer disaster;
/** /**
* git地址 * git地址
...@@ -113,4 +123,9 @@ public class InspectParameter { ...@@ -113,4 +123,9 @@ public class InspectParameter {
* 0:否 * 0:否
*/ */
private Integer admin; private Integer admin;
/**
* 方式
*/
private Integer recastMethod;
} }
...@@ -62,8 +62,7 @@ public class ReportVo { ...@@ -62,8 +62,7 @@ public class ReportVo {
* 1:适配 * 1:适配
* 2:重构 * 2:重构
*/ */
@Column(length = 5) private Integer recastMethod;
private String recastMethod;
/** /**
* 源代码地址 * 源代码地址
...@@ -73,7 +72,7 @@ public class ReportVo { ...@@ -73,7 +72,7 @@ public class ReportVo {
/** /**
* 预算详情 * 预算详情
*/ */
private List<Budget> budgets; private BudgetVo budgets;
/** /**
* 依赖 * 依赖
...@@ -85,12 +84,22 @@ public class ReportVo { ...@@ -85,12 +84,22 @@ public class ReportVo {
*/ */
private List<Technology> technologies; private List<Technology> technologies;
private HashMap<String,Technology> technologyNameMap = new HashMap<>();
/** /**
* 告警点 * 告警点
*/ */
private HashMap<String, List<Warn>> warnDetails; private HashMap<String, List<Warn>> warnDetails;
/**
* 关键技术个数
*/
private Integer technologiesNum;
/**
* 需要改造的技术
*/
private Integer technologiesRepair;
/** /**
* 评估时间 * 评估时间
*/ */
......
package com.zjty.inspect.enums;
public enum Framework {
/**
* 架构
*/
分离型架构("分离型架构",1),
混合型架构("混合型架构",2);
Framework(String name,Integer status){
this.name=name;
this.status=status;
}
private String name;
private Integer status;
public String getName() {
return name;
}
public Integer getStatus() {
return status;
}
}
package com.zjty.inspect.enums;
public enum RecastMethod {
/**
* 架构
*/
适配重构("适配重构",1),
代码修改("代码修改",2);
RecastMethod(String name, Integer status){
this.name=name;
this.status=status;
}
private String name;
private Integer status;
public String getName() {
return name;
}
public Integer getStatus() {
return status;
}
}
...@@ -5,6 +5,7 @@ import com.zjty.inspect.entity.*; ...@@ -5,6 +5,7 @@ import com.zjty.inspect.entity.*;
import com.zjty.inspect.enums.DependenceManagement; 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.utils.*; import com.zjty.inspect.utils.*;
import lombok.AllArgsConstructor; import lombok.AllArgsConstructor;
import lombok.Data; import lombok.Data;
...@@ -79,6 +80,7 @@ public class Inspector { ...@@ -79,6 +80,7 @@ public class Inspector {
*/ */
private InspectParameter inspectParameter; private InspectParameter inspectParameter;
private double codeSize = 0;
/** /**
* 报告对象 * 报告对象
*/ */
...@@ -176,6 +178,8 @@ public class Inspector { ...@@ -176,6 +178,8 @@ public class Inspector {
for (Map.Entry<String, PathMatcher> entry : languageSuffixMatcherMapping.entrySet()) { for (Map.Entry<String, PathMatcher> entry : languageSuffixMatcherMapping.entrySet()) {
//通过正则表达式匹配.java类型后缀文件,并+1 //通过正则表达式匹配.java类型后缀文件,并+1
if (entry.getValue().matches(file)) { if (entry.getValue().matches(file)) {
long length = file.toFile().length();
codeSize+=length/1024;
languageMatchMap.get(entry.getKey()).plus(); languageMatchMap.get(entry.getKey()).plus();
} }
} }
...@@ -246,6 +250,7 @@ public class Inspector { ...@@ -246,6 +250,7 @@ public class Inspector {
} catch (IOException e) { } catch (IOException e) {
e.printStackTrace(); e.printStackTrace();
} }
inspectParameter.setCodeSize((int) codeSize);
return analysis(); return analysis();
} }
...@@ -331,7 +336,7 @@ public class Inspector { ...@@ -331,7 +336,7 @@ public class Inspector {
} }
//计算预算 //计算预算
if (inspectParameter.getValid() != null) { if (inspectParameter.getValid() != null) {
List<Budget> budget = budgetUitl.getBudget(fund, inspectParameter); BudgetVo budget = budgetUitl.getBudget(fund, report, inspectParameter);
report.setBudgets(budget); report.setBudgets(budget);
inspectParameter.setId(UUIDUtil.getUUID()); inspectParameter.setId(UUIDUtil.getUUID());
parameterDao.save(inspectParameter); parameterDao.save(inspectParameter);
...@@ -350,7 +355,6 @@ public class Inspector { ...@@ -350,7 +355,6 @@ public class Inspector {
HashMap<String, List<Warn>> warnMap = getWarnMap(map); HashMap<String, List<Warn>> warnMap = getWarnMap(map);
ruleDao.saveAll(rules); ruleDao.saveAll(rules);
report.setWarnDetails(warnMap); report.setWarnDetails(warnMap);
report.setTechnologyNameMap(map);
return report; return report;
} }
...@@ -373,9 +377,9 @@ public class Inspector { ...@@ -373,9 +377,9 @@ public class Inspector {
report.setFramework(languageMatchMap.get("jsp").i > 0 ? Framework.混合型架构.getStatus() : Framework.分离型架构.getStatus()); report.setFramework(languageMatchMap.get("jsp").i > 0 ? Framework.混合型架构.getStatus() : Framework.分离型架构.getStatus());
//设置是否需要重构 //设置是否需要重构
if (languageMatchMap.get("jsp").i == 0 & languageMatchMap.get("java").i == 0) { if (languageMatchMap.get("jsp").i == 0 & languageMatchMap.get("java").i == 0) {
report.setRecastMethod("建议重构"); report.setRecastMethod(RecastMethod.适配重构.getStatus());
} else { } else {
report.setRecastMethod("建议适配"); report.setRecastMethod(RecastMethod.代码修改.getStatus());
} }
} }
......
...@@ -30,4 +30,16 @@ public interface TechnologyService { ...@@ -30,4 +30,16 @@ public interface TechnologyService {
void update(Technology technology); void update(Technology technology);
Page<Technology> findSearch(Map searchMap, int page, int size); Page<Technology> findSearch(Map searchMap, int page, int size);
/**
* 查询全部技术个数
* @return 查询技术数量
*/
int findAllTechnologyCount();
/**
* 查询不支持的技术个数
* @return 查询技术数量
*/
int findAllTechnologyNotSupport();
} }
...@@ -27,7 +27,6 @@ public class InspectServiceImpl implements InspectService { ...@@ -27,7 +27,6 @@ public class InspectServiceImpl implements InspectService {
@Autowired @Autowired
Inspector inspector; Inspector inspector;
@Transactional @Transactional
@Override @Override
public ReportVo inspect(ReportVo reportVo,InspectParameter inspectParameter) { public ReportVo inspect(ReportVo reportVo,InspectParameter inspectParameter) {
...@@ -49,6 +48,8 @@ public class InspectServiceImpl implements InspectService { ...@@ -49,6 +48,8 @@ public class InspectServiceImpl implements InspectService {
inspector.setSuffixLanguageMapping(suffixLanguageMapping); inspector.setSuffixLanguageMapping(suffixLanguageMapping);
ReportVo report = inspector.inspect(); ReportVo report = inspector.inspect();
return report; return report;
} }
......
...@@ -89,6 +89,10 @@ public class TechnologyServiceImpl implements TechnologyService { ...@@ -89,6 +89,10 @@ public class TechnologyServiceImpl implements TechnologyService {
return technologyDao.findAllByTechnologyNameLike("%"+name+"%"); return technologyDao.findAllByTechnologyNameLike("%"+name+"%");
} }
/**
* 更新技术细节
* @param technology
*/
@Override @Override
public void update(Technology technology) { public void update(Technology technology) {
technologyDao.save(technology); technologyDao.save(technology);
...@@ -100,6 +104,17 @@ public class TechnologyServiceImpl implements TechnologyService { ...@@ -100,6 +104,17 @@ public class TechnologyServiceImpl implements TechnologyService {
PageRequest pageRequest = PageRequest.of(page-1, size); PageRequest pageRequest = PageRequest.of(page-1, size);
return technologyDao.findAll(specification, pageRequest); return technologyDao.findAll(specification, pageRequest);
} }
@Override
public int findAllTechnologyCount() {
return (int) technologyDao.count();
}
@Override
public int findAllTechnologyNotSupport() {
return technologyDao.countAllBySupportIsNot(1);
}
/** /**
* 动态条件构建 * 动态条件构建
* @param searchMap * @param searchMap
......
package com.zjty.inspect.utils; package com.zjty.inspect.utils;
import com.zjty.inspect.dao.CoefficientModelDao; import com.zjty.inspect.dao.CoefficientModelDao;
import com.zjty.inspect.entity.Budget; import com.zjty.inspect.entity.*;
import com.zjty.inspect.entity.CoefficientModel;
import com.zjty.inspect.entity.InspectParameter;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Component; import org.springframework.stereotype.Component;
...@@ -27,12 +25,26 @@ public class BudgetUitl { ...@@ -27,12 +25,26 @@ public class BudgetUitl {
/** /**
* 获取预算数据 * 获取预算数据
* @param fund 技术费用 * @param fund 技术费用
* @param report
* @param inspectParameter 计算所需数据 * @param inspectParameter 计算所需数据
* @return * @return
*/ */
public List<Budget> getBudget(Integer fund, InspectParameter inspectParameter){ public BudgetVo getBudget(Integer fund, ReportVo report, InspectParameter inspectParameter){
BudgetVo budgetVo = new BudgetVo();
// TODO: 2020-03-05 查询年复利率
inspectParameter.setMoneyRate(1.04); inspectParameter.setMoneyRate(1.04);
//代码重构比
double refactorProportion = 0D;
//代码修改比
double updateProportion = 0D;
if(report.getRecastMethod()==1){
inspectParameter.setProportion(0.6); inspectParameter.setProportion(0.6);
}else{
// TODO: 2020-03-05 查询config表0.3或者0.15
inspectParameter.setProportion(0.3);
}
int scale; int scale;
Integer systemFund = inspectParameter.getSystemFund(); Integer systemFund = inspectParameter.getSystemFund();
if(systemFund==0){ if(systemFund==0){
...@@ -46,58 +58,98 @@ public class BudgetUitl { ...@@ -46,58 +58,98 @@ public class BudgetUitl {
}else{ }else{
scale=3; scale=3;
} }
Budget budget = new Budget();
budget.setBudgetName("代码重构预算");
Double moneyRate = inspectParameter.getMoneyRate(); Double moneyRate = inspectParameter.getMoneyRate();
int i = 2020 - inspectParameter.getYears(); int years = inspectParameter.getYears();
double pow = Math.pow(moneyRate, i); double pow = Math.pow(moneyRate, years);
//不带修正系数资金
double v = inspectParameter.getProportion() * pow * systemFund + fund;
//带修正系数资金 //带修正系数资金
ArrayList<String> strings = new ArrayList<>(); ArrayList<String> strings = new ArrayList<>();
Double v1 = v;
strings.add("安全能力"); strings.add("安全能力");
strings.add("容灾能力"); strings.add("容灾能力");
strings.add("架构"); strings.add("架构");
strings.add("数据量"); strings.add("数据量");
strings.add("模块数"); strings.add("模块数");
strings.add("数据库表");
strings.add("代码量");
double coefficient = 1;
List<CoefficientModel> nameIn = coefficientModelDao.findAllByNameIn(strings); List<CoefficientModel> nameIn = coefficientModelDao.findAllByNameIn(strings);
List<CoefficientModel> collect = nameIn.stream().filter(a -> a.getScale() == scale).collect(Collectors.toList()); List<CoefficientModel> collect = nameIn.stream().filter(a -> a.getScale() == scale).collect(Collectors.toList());
for (CoefficientModel model : collect) { for (CoefficientModel model : collect) {
CoefficientModelVo coefficientModelVo = new CoefficientModelVo();
coefficientModelVo.setName(model.getName());
if("架构".equals(model.getName())){ if("架构".equals(model.getName())){
Double aDouble = model.countCoefficient(inspectParameter.getFramework()); Double value = model.countCoefficient(inspectParameter.getFramework());
v1*=aDouble; coefficientModelVo.setValue(value);
coefficient*=value;
}else if("容灾能力".equals(model.getName())){ }else if("容灾能力".equals(model.getName())){
Double aDouble = model.countCoefficient(inspectParameter.getDisaster()); Double value = model.countCoefficient(inspectParameter.getDisaster());
v1*=aDouble; coefficientModelVo.setValue(value);
coefficient*=value;
} }
else if("安全能力".equals(model.getName())){ else if("安全能力".equals(model.getName())){
Double aDouble = model.countCoefficient(inspectParameter.getSafety()); Double value = model.countCoefficient(inspectParameter.getSafety());
v1*=aDouble; coefficientModelVo.setValue(value);
coefficient*=value;
} }
else if("数据量".equals(model.getName())){ else if("数据量".equals(model.getName())){
Double aDouble = model.countCoefficient(Double.valueOf(inspectParameter.getData())); Double value = model.countCoefficient(inspectParameter.getData());
v1*=aDouble; coefficientModelVo.setValue(value);
coefficient*=value;
} }
else if("模块数".equals(model.getName())){ else if("模块数".equals(model.getName())){
Double aDouble = model.countCoefficient(Double.valueOf(inspectParameter.getModules())); Double value = model.countCoefficient(inspectParameter.getModules());
v1*=aDouble; coefficientModelVo.setValue(value);
coefficient*=value;
}
else if("数据库表".equals(model.getName())){
Double value = model.countCoefficient(inspectParameter.getTables());
coefficientModelVo.setValue(value);
coefficient *=value;
} }
else if("代码量".equals(model.getName())){
Double value = model.countCoefficient(inspectParameter.getCodeSize());
coefficientModelVo.setValue(value);
coefficient*=value;
} }
budgetVo.getCoefficientModelVos().add(coefficientModelVo);
}
Budget codeRefactor = new Budget();
codeRefactor.setBudgetName("代码重构预算");
//不带修正系数资金
double fundNotRepair = inspectParameter.getProportion() * pow * systemFund + fund;
double fundRepair=fundNotRepair*coefficient;
if(fundNotRepair<fundRepair){
codeRefactor.setFund(fundNotRepair +"--"+fundRepair);
}else if(fundNotRepair>fundRepair){
codeRefactor.setFund(fundRepair +"--"+fundNotRepair);
}else{
codeRefactor.setFund(fundRepair +"--"+fundNotRepair);
}
codeRefactor.setFundDetail("普通业务开发费用:"+fundNotRepair);
codeRefactor.setFundDetail("普通业务开发费用(修正):"+fundRepair);
codeRefactor.setFundDetail("关键适配技术成本:"+fund);
if(v<v1){ Budget codeUpdate = new Budget();
budget.setFund(v +"--"+v1); codeUpdate.setBudgetName("代码修改替换预算");
}else if(v>v1){ double findUpdateNotRepair = inspectParameter.getProportion() * pow * systemFund + fund;
budget.setFund(v1 +"--"+v); double findUpdateRepair = findUpdateNotRepair * coefficient;
if(findUpdateNotRepair<findUpdateRepair){
codeUpdate.setFund(findUpdateNotRepair +"--"+findUpdateRepair);
}else if(fundNotRepair>fundRepair){
codeUpdate.setFund(findUpdateRepair +"--"+findUpdateNotRepair);
}else{ }else{
budget.setFund(v1 +"--"+v); codeUpdate.setFund(findUpdateRepair +"--"+findUpdateNotRepair);
} }
budget.setFundDetail("普通业务开发费用:"+v); codeUpdate.setFundDetail("普通业务开发费用:"+findUpdateNotRepair);
budget.setFundDetail("普通业务开发费用(修正):"+v1); codeUpdate.setFundDetail("普通业务开发费用(修正):"+findUpdateRepair);
budget.setFundDetail("关键适配技术成本:"+fund); codeUpdate.setFundDetail("关键适配技术成本:"+fund);
budgetVo.getBudget().add(codeRefactor);
budgetVo.getBudget().add(codeUpdate);
ArrayList<Budget> budgets = new ArrayList<>(); return budgetVo;
budgets.add(budget);
return budgets;
} }
} }
package com.zjty.inspect.utils; package com.zjty.inspect.utils;
import com.fasterxml.jackson.databind.ObjectMapper;
import com.github.junrar.Archive; import com.github.junrar.Archive;
import com.github.junrar.rarfile.FileHeader; import com.github.junrar.rarfile.FileHeader;
import lombok.extern.slf4j.Slf4j; import lombok.extern.slf4j.Slf4j;
import net.lingala.zip4j.core.ZipFile; import net.lingala.zip4j.core.ZipFile;
import org.dom4j.Document;
import org.dom4j.io.SAXReader;
import org.springframework.web.multipart.MultipartFile; import org.springframework.web.multipart.MultipartFile;
import java.io.*; import java.io.File;
import java.io.FileOutputStream;
import java.io.FileWriter;
import java.io.IOException;
import java.time.LocalDate; import java.time.LocalDate;
import java.time.LocalDateTime;
@Slf4j @Slf4j
public class FileUtil { public class FileUtil {
static int BUFFER_SIZE = 1024; static int BUFFER_SIZE = 1024;
public static String createFilePath(){
//"./"+name+"/"+split1[0]
String[] split = UUIDUtil.getUUID().split("-");
String time = LocalDate.now().toString();
String filePath = time + "/"+split[0];
return filePath;
}
/** /**
* 保存文件到本地 * 保存文件到本地
...@@ -157,15 +163,4 @@ public class FileUtil { ...@@ -157,15 +163,4 @@ public class FileUtil {
return file; return file;
} }
public static void main(String[] args) throws IOException {
// System.out.println(LocalDate.now().toString());
// String[] split1 = UUIDUtil.getUUID().split("-");
// System.out.println(split1[0]);
// // FileUtil.unPackZip(new File("/Users/mcj/Downloads/acq-server.zip"),"", "./");
// //FileUtils.deleteDirectory(new File("./acq-server"));
// SAXReader reader = new SAXReader();
// Document document = null;
write("hello","E://test//text.txt");
}
} }
Markdown 格式
0%
您添加了 0 到此讨论。请谨慎行事。
请先完成此评论的编辑!
注册 或者 后发表评论