@t2652009480 1 year ago
commit ded67082db

@ -21,7 +21,7 @@ import java.util.List;
public class TokenProvider {
private final static String SECRET = "MIIBVAIBADANBgkqhkiG9w0BAQEFAASCAT4wggE6AgEAAkEAghgsx+OLLThi7c+/HgCaRla8n+/QLHt++uscoK22dMeaVa3WJvRb5C5qtHGzj9V74pI96JpxdWWCN3Zr1QtanQIDAQABAkB2fWRUD1jVMBVS+rPctLnPNPMKTRdzXGv0SC5D3tRfGZqdcfsmZg8hzBVndHxngmwZS73d+hPjofcdefDDnXq1AiEAz/r1AMF7fweN70mbKgBJuTja37puJMsH2Szwrvb5jlcCIQCgIaLZ5d9J7OomL0NwH8ghba/xgBEpKzErfGbFnTfeKwIgc8ptczFFV1DWZb2eJIEqinOr79l0jwl2YiQSD+cyw1sCIHqxCvv1Wx5jPgy/zeYNE+Q5DMP3Ii7u/x+Yk436JiI9AiEAio84hFm44YTUuV7YCYsbyvnCn/vtcAaqZlczbeHlP1I=";
private final static long EXP_TIME = 1000 * 60 * 60 * 2;
private final static long EXP_TIME = 1000 * 60 * 60 * 4;
private final static String SECRET_ZHIYUN = "zy_wh_mnjy_fp76ckwuczzmb67w0a8x0";

@ -2,11 +2,11 @@ package com.sztzjy.fund_investment.controller;
import com.github.pagehelper.PageInfo;
import com.sztzjy.fund_investment.annotation.AnonymousAccess;
import com.sztzjy.fund_investment.entity.FoundProject;
import com.sztzjy.fund_investment.entity.PerformanceScore;
import com.sztzjy.fund_investment.entity.ProjectPool;
import com.sztzjy.fund_investment.entity.*;
import com.sztzjy.fund_investment.mapper.FoundProjectMapper;
import com.sztzjy.fund_investment.mapper.FundraisingMapper;
import com.sztzjy.fund_investment.mapper.PerformanceScoreMapper;
import com.sztzjy.fund_investment.mapper.ProjectPoolMapper;
import com.sztzjy.fund_investment.service.ISysFoundProjectService;
import com.sztzjy.fund_investment.service.ISysProjectPoolService;
import com.sztzjy.fund_investment.service.PerformanceScoreService;
@ -25,8 +25,10 @@ import org.springframework.web.bind.annotation.*;
import javax.servlet.http.HttpServletResponse;
import java.io.File;
import java.math.BigDecimal;
import java.nio.file.Paths;
import java.util.Date;
import java.util.List;
//yz
@RestController
@ -45,14 +47,34 @@ public class FoundProjectController {
PerformanceScoreService scoreService;
@Autowired
PerformanceScoreMapper performanceScoreMapper;
@Autowired
ProjectPoolMapper projectPoolMapper;
@Autowired
FundraisingMapper fundraisingMapper;
@GetMapping("getProjectPoolList")
@ApiOperation("寻找项目数据展示")
@AnonymousAccess
public ResultEntity getFundraising(@ApiParam("条数") @RequestParam Integer size,
@ApiParam("页数") @RequestParam Integer index) {
PageInfo<ProjectPool> pageInfo=projectPoolService.selectList(size,index);
return new ResultEntity(HttpStatus.OK,"寻找项目数据展示成功",pageInfo);
PageInfo<ProjectPool> pageInfo = projectPoolService.selectList(size, index);
return new ResultEntity(HttpStatus.OK, "寻找项目数据展示成功", pageInfo);
}
@GetMapping("getCompanyNameList")
@ApiOperation("根据来源查询公司名集合")
@AnonymousAccess
public ResultEntity getCompanyNameList(@ApiParam("来源名称") @RequestParam String projectSource) {
List<String> CompanyNameList = projectPoolService.getCompanyNameList(projectSource);
return new ResultEntity(HttpStatus.OK, "根据来源查询公司名集合成功", CompanyNameList);
}
@GetMapping("getProjectPoolByCompanyName")
@ApiOperation("根据公司名查询项目信息")
@AnonymousAccess
public ResultEntity getProjectPoolByCompanyName(@ApiParam("公司名") @RequestParam String CompanyName) {
ProjectPool projectPool = projectPoolService.getProjectPoolByCompanyName(CompanyName);
return new ResultEntity(HttpStatus.OK, "根据公司名查询项目信息成功", projectPool);
}
@ -60,7 +82,7 @@ public class FoundProjectController {
@ApiOperation("BP按钮")
@AnonymousAccess
public ResponseEntity<FileSystemResource> getFundraising(@ApiParam("企业简称") @RequestParam String companyName, HttpServletResponse response) {
String PDFPath = filePath +"/bpbdf/商业计划书-"+ companyName+".pdf";
String PDFPath = filePath + "/bpbdf/商业计划书-" + companyName + ".pdf";
File videoFile = new File(PDFPath);
if (videoFile.exists()) {
Paths.get(PDFPath);
@ -76,44 +98,77 @@ public class FoundProjectController {
@PostMapping("projectApproval")
@ApiOperation("立项")
@AnonymousAccess
public ResultEntity projectApproval(@ApiParam("传递flow_id,project_pool_id,found_project_conclusion") @RequestBody FoundProject foundProject){
if(StringUtils.isBlank(foundProject.getFlowId())){
return new ResultEntity(HttpStatus.BAD_REQUEST,"流程ID未上传");
public ResultEntity projectApproval(@ApiParam("传递flow_id,project_pool_id,found_project_conclusion") @RequestBody FoundProject foundProject) {
if (StringUtils.isBlank(foundProject.getFlowId())) {
return new ResultEntity(HttpStatus.BAD_REQUEST, "流程ID未上传");
}
if(StringUtils.isBlank(foundProject.getProjectPoolId())){
return new ResultEntity(HttpStatus.BAD_REQUEST,"未选择项目");
if (StringUtils.isBlank(foundProject.getProjectPoolId())) {
return new ResultEntity(HttpStatus.BAD_REQUEST, "未选择项目");
}
if(StringUtils.isBlank(foundProject.getFoundProjectConclusion())){
return new ResultEntity(HttpStatus.BAD_REQUEST,"未填写选择理由");
if (StringUtils.isBlank(foundProject.getFoundProjectConclusion())) {
return new ResultEntity(HttpStatus.BAD_REQUEST, "未填写选择理由");
}
FoundProject foundProject1 = foundProjectMapper.selectByPrimaryKey(foundProject.getFlowId());
if(foundProject1!=null){
return new ResultEntity(HttpStatus.BAD_REQUEST,"本次实训已立项过");
if (foundProject1 != null) {
if("lxyzsb".equals(foundProject1.getFoundProjectConclusion()) || "lxyzsb2".equals(foundProject1.getFoundProjectConclusion())){
}else {
return new ResultEntity(HttpStatus.BAD_REQUEST, "本次实训已立项过");
}
}
foundProjectMapper.insert(foundProject);
if(foundProject.getFoundProjectConclusion()!=null){
scoreService.calculateScoreByModule("projectSearchReportScore",2,foundProject.getFlowId());
}else {
scoreService.calculateScoreByModule("projectSearchReportScore",0,foundProject.getFlowId());
//验证募集的资金要大于等于估值的5%
//先根据项目池ID查询立项中的估值 再根据flowid 获取资金募资表中的基金募资金额 做对比
String projectPoolId = foundProject.getProjectPoolId();
String latestValuation = projectPoolMapper.selectByPrimaryKey(projectPoolId).getLatestValuation(); //估值
FundraisingExample example = new FundraisingExample();
example.createCriteria().andFlowIdEqualTo(foundProject.getFlowId());
List<Fundraising> fundraisings = fundraisingMapper.selectByExample(example);
if (fundraisings.isEmpty()) {
return new ResultEntity(HttpStatus.BAD_REQUEST, "立项失败,募资基金不存在");
} else {
BigDecimal latestValuationBigDecimal = new BigDecimal(latestValuation);
BigDecimal fundraisingAmount = fundraisings.get(0).getFundraisingAmount(); //基金募资金额
boolean bool = fundraisingAmount.compareTo(latestValuationBigDecimal.multiply(new BigDecimal("0.05"))) >= 0;
if (!bool) {
if(foundProject1==null){
foundProject.setFoundProjectConclusion("lxyzsb"); //立项验证失败 记录第一次立项
foundProjectMapper.insert(foundProject);
return new ResultEntity(HttpStatus.BAD_REQUEST, "立项失败1募资基金必须大于等于估值的5%");
}else {
foundProject.setFoundProjectConclusion("lxyzsb2"); //立项验证失败 记录第二次立项
foundProjectMapper.insert(foundProject);
return new ResultEntity(HttpStatus.BAD_REQUEST, "立项失败2募资基金必须大于等于估值的5%");
}
}
}
scoreService.calculateScoreByModule("projectSearchScore",3,foundProject.getFlowId());
// scoreService.calculateScoreByModule("projectSearchReportScore", 2, foundProject.getFlowId());
if (foundProject1 == null) { //foundProject1 为数据库中的数据 foundProject为前端传递的数据
scoreService.calculateScoreByModule("projectSearchScore", 3, foundProject.getFlowId());
} else {
if("lxyzsb".equals(foundProject1.getFoundProjectConclusion())){
scoreService.calculateScoreByModule("projectSearchScore", 1, foundProject.getFlowId());
}else {
scoreService.calculateScoreByModule("projectSearchScore", 0, foundProject.getFlowId());
}
}
foundProjectMapper.insert(foundProject);
PerformanceScore performanceScore = scoreService.getByFlowId(foundProject.getFlowId());
performanceScore.setProjectSearchTime(new Date());
performanceScoreMapper.updateByPrimaryKey(performanceScore);
return new ResultEntity(HttpStatus.OK,"立项成功");
return new ResultEntity(HttpStatus.OK, "立项成功");
}
@GetMapping("getProjectApproval")
@ApiOperation("立项回显")
@AnonymousAccess
public ResultEntity getProjectApproval(@ApiParam("流程ID") @RequestParam String flowId){
FoundProject foundProject=foundProjectService.selectByFlowId(flowId);
public ResultEntity getProjectApproval(@ApiParam("流程ID") @RequestParam String flowId) {
FoundProject foundProject = foundProjectService.selectByFlowId(flowId);
foundProject.setFinancialDueDiligence(null);
foundProject.setServiceDueDiligence(null);
foundProject.setProjectValuationRelative(null);
foundProject.setProjectValuationAbsolute(null);
return new ResultEntity(HttpStatus.OK,"立项回显成功",foundProject);
return new ResultEntity(HttpStatus.OK, "立项回显成功", foundProject);
}

@ -4,6 +4,8 @@ import com.alibaba.fastjson.JSON;
import com.alibaba.fastjson.JSONObject;
import com.sztzjy.fund_investment.annotation.AnonymousAccess;
import com.sztzjy.fund_investment.service.IIlabService;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import io.swagger.annotations.ApiParam;
import org.apache.http.HttpResponse;
import org.apache.http.client.methods.HttpPost;
@ -12,6 +14,7 @@ import org.apache.http.impl.client.CloseableHttpClient;
import org.apache.http.impl.client.HttpClients;
import org.apache.http.util.EntityUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.util.DigestUtils;
import org.springframework.web.bind.annotation.*;
@ -25,13 +28,19 @@ import java.net.URL;
import java.util.Date;
import java.util.Map;
import java.util.Scanner;
import java.util.UUID;
@RestController
@RequestMapping("/stu/ilabController")
@Api(tags = "学生端--国家虚拟仿真接口")
public class IlabController {
@Autowired
IIlabService iIlabService;
@Value("${file.path}")
private String filePath;
String appid = "107223";
String secret = "5F2pfvRDXq5ybF4imPA02TJZfaYA1hPXTTvPjtwk+OE=";
@ -46,27 +55,160 @@ public class IlabController {
@PostMapping("dataUpload")
@AnonymousAccess
public void dataUpload(@ApiParam("access_token") @RequestParam String accessToken) throws IOException {
accessToken = URLEncoder.encode(accessToken);
@ApiOperation("数据上传+实验报告上传")
public void dataUpload(@ApiParam("access_token") @RequestParam String accessToken,
@ApiParam("un") @RequestParam String un,
@ApiParam("userId") @RequestParam String userId) throws IOException {
accessToken = URLEncoder.encode(accessToken, "UTF-8");
String accessTokenRepalce = accessToken.replaceAll("\\+", "%2B");
// long nowTime = System.currentTimeMillis();
long endTime = System.currentTimeMillis()-10000;
long startTime = endTime- 1000 * 100;
//定义发送数据
String requestBody = "{\n" +
" \"username\": \"mj_993115\",\n" +
" \"username\": \""+un+"\",\n" +
" \"title\": \"股权基金投资虚拟仿真实验\",\n" +
" \"status\": 1,\n" +
" \"score\": 100,\n" +
" \"startTime\": 1704252457000,\n" +
" \"endTime\": 1704252467000,\n" +
" \"startTime\": "+startTime+",\n" +
" \"endTime\": "+endTime+",\n" +
" \"timeUsed\": 100,\n" +
" \"appid\": \"107223\",\n" +
" \"originId\": \"1\",\n" +
" \"originId\": \""+userId+"\",\n" +
" \"steps\": [\n" +
" {\n" +
" \"seq\": 1,\n" +
" \"title\": \"实验步骤1\",\n" +
" \"startTime\": 1704252457000,\n" +
" \"endTime\": 1704252467000,\n" +
" \"startTime\": "+startTime+",\n" +
" \"endTime\": "+endTime+",\n" +
" \"timeUsed\": 100,\n" +
" \"expectTime\": 100,\n" +
" \"expectTime\": 2,\n" +
" \"maxScore\": 10,\n" +
" \"score\": 10,\n" +
" \"repeatCount\": 1,\n" +
" \"evaluation\": \"优\",\n" +
" \"scoringModel\": \"赋分模型\",\n" +
" \"remarks\": \"备注\"\n" +
" },\n" +
" {\n" +
" \"seq\": 2,\n" +
" \"title\": \"实验步骤2\",\n" +
" \"startTime\": "+startTime+",\n" +
" \"endTime\": "+endTime+",\n" +
" \"timeUsed\": 100,\n" +
" \"expectTime\": 2,\n" +
" \"maxScore\": 10,\n" +
" \"score\": 10,\n" +
" \"repeatCount\": 1,\n" +
" \"evaluation\": \"优\",\n" +
" \"scoringModel\": \"赋分模型\",\n" +
" \"remarks\": \"备注\"\n" +
" },\n" +
" {\n" +
" \"seq\": 3,\n" +
" \"title\": \"实验步骤3\",\n" +
" \"startTime\": "+startTime+",\n" +
" \"endTime\": "+endTime+",\n" +
" \"timeUsed\": 100,\n" +
" \"expectTime\": 2,\n" +
" \"maxScore\": 10,\n" +
" \"score\": 10,\n" +
" \"repeatCount\": 1,\n" +
" \"evaluation\": \"优\",\n" +
" \"scoringModel\": \"赋分模型\",\n" +
" \"remarks\": \"备注\"\n" +
" },\n" +
" {\n" +
" \"seq\": 4,\n" +
" \"title\": \"实验步骤4\",\n" +
" \"startTime\": "+startTime+",\n" +
" \"endTime\": "+endTime+",\n" +
" \"timeUsed\": 100,\n" +
" \"expectTime\": 2,\n" +
" \"maxScore\": 10,\n" +
" \"score\": 10,\n" +
" \"repeatCount\": 1,\n" +
" \"evaluation\": \"优\",\n" +
" \"scoringModel\": \"赋分模型\",\n" +
" \"remarks\": \"备注\"\n" +
" },\n" +
" {\n" +
" \"seq\": 5,\n" +
" \"title\": \"实验步骤5\",\n" +
" \"startTime\": "+startTime+",\n" +
" \"endTime\": "+endTime+",\n" +
" \"timeUsed\": 100,\n" +
" \"expectTime\": 2,\n" +
" \"maxScore\": 10,\n" +
" \"score\": 10,\n" +
" \"repeatCount\": 1,\n" +
" \"evaluation\": \"优\",\n" +
" \"scoringModel\": \"赋分模型\",\n" +
" \"remarks\": \"备注\"\n" +
" },\n" +
" {\n" +
" \"seq\": 6,\n" +
" \"title\": \"实验步骤6\",\n" +
" \"startTime\": "+startTime+",\n" +
" \"endTime\": "+endTime+",\n" +
" \"timeUsed\": 100,\n" +
" \"expectTime\": 2,\n" +
" \"maxScore\": 10,\n" +
" \"score\": 10,\n" +
" \"repeatCount\": 1,\n" +
" \"evaluation\": \"优\",\n" +
" \"scoringModel\": \"赋分模型\",\n" +
" \"remarks\": \"备注\"\n" +
" },\n" +
" {\n" +
" \"seq\": 7,\n" +
" \"title\": \"实验步骤7\",\n" +
" \"startTime\": "+startTime+",\n" +
" \"endTime\": "+endTime+",\n" +
" \"timeUsed\": 100,\n" +
" \"expectTime\": 2,\n" +
" \"maxScore\": 10,\n" +
" \"score\": 10,\n" +
" \"repeatCount\": 1,\n" +
" \"evaluation\": \"优\",\n" +
" \"scoringModel\": \"赋分模型\",\n" +
" \"remarks\": \"备注\"\n" +
" },\n" +
" {\n" +
" \"seq\": 8,\n" +
" \"title\": \"实验步骤8\",\n" +
" \"startTime\": "+startTime+",\n" +
" \"endTime\": "+endTime+",\n" +
" \"timeUsed\": 100,\n" +
" \"expectTime\": 2,\n" +
" \"maxScore\": 10,\n" +
" \"score\": 10,\n" +
" \"repeatCount\": 1,\n" +
" \"evaluation\": \"优\",\n" +
" \"scoringModel\": \"赋分模型\",\n" +
" \"remarks\": \"备注\"\n" +
" },\n" +
" {\n" +
" \"seq\": 9,\n" +
" \"title\": \"实验步骤9\",\n" +
" \"startTime\": "+startTime+",\n" +
" \"endTime\": "+endTime+",\n" +
" \"timeUsed\": 100,\n" +
" \"expectTime\": 2,\n" +
" \"maxScore\": 10,\n" +
" \"score\": 10,\n" +
" \"repeatCount\": 1,\n" +
" \"evaluation\": \"优\",\n" +
" \"scoringModel\": \"赋分模型\",\n" +
" \"remarks\": \"备注\"\n" +
" },\n" +
" {\n" +
" \"seq\": 10,\n" +
" \"title\": \"实验步骤10\",\n" +
" \"startTime\": "+startTime+",\n" +
" \"endTime\": "+endTime+",\n" +
" \"timeUsed\": 100,\n" +
" \"expectTime\": 2,\n" +
" \"maxScore\": 10,\n" +
" \"score\": 10,\n" +
" \"repeatCount\": 1,\n" +
@ -79,8 +221,7 @@ public class IlabController {
"\n";
//定义接收数据
JSONObject result = new JSONObject();
String url = "https://www.ilab-x.com/open/api/v2/data_upload?access_token=rnVop9mKUfzuJm656m%2BTLLGy2RIx7JFUQ5xnGJ18xSC3P5yQizr5gVmnUpGiWbNQIVj9z2AnFOXXA3L0LUKaRuuYBu5cHJeL1AHvjbxanwQ%3D";
String url = "https://www.ilab-x.com/open/api/v2/data_upload?access_token="+accessTokenRepalce;
HttpPost httpPost = new HttpPost(url);
CloseableHttpClient client = HttpClients.createDefault();
//请求参数转JOSN字符串
@ -92,6 +233,7 @@ public class IlabController {
HttpResponse response = client.execute(httpPost);
if (response.getStatusLine().getStatusCode() == 200) {
result = JSON.parseObject(EntityUtils.toString(response.getEntity(), "UTF-8"));
System.out.println(result.toString());
}
} catch (IOException e) {
e.printStackTrace();
@ -103,16 +245,32 @@ public class IlabController {
} catch (Exception e) {
System.out.println(e.getMessage());
}
try {
Thread.sleep(5);
} catch (InterruptedException e) {
e.printStackTrace();
}
attachmentUpload(accessTokenRepalce,userId);
}
//实验报告上传
@PostMapping("attachmentUpload")
@AnonymousAccess
public void attachmentUpload(@ApiParam("access_token") @RequestParam String accessToken) throws IOException {
String url = "https://www.ilab-x.com/open/api/v2/attachment_upload?access_token=rnVop9mKUfzuJm656m%2BTLLGy2RIx7JFUQ5xnGJ18xSDnVYvcUct5d6rGXoY8hgmbwAOzee3xBPgBfBrc3ZMDfZEizkxP0rkmGyBDVojBPTI%3D&appid=107223&originId=1&filename=abc.pdf&title=%E6%B5%8B%E8%AF%95%E5%AE%9E%E9%AA%8C%E6%8A%A5%E5%91%8A";
String filePath = "C:\\Users\\86132\\Desktop\\abc.pdf";
public void attachmentUpload(@ApiParam("access_token") @RequestParam String accessToken,
@ApiParam("userId")@RequestParam String userId) throws IOException {
// accessToken = URLEncoder.encode(accessToken, "UTF-8");
// String accessTokenRepalce = accessToken.replaceAll("\\+", "%2B");
String url = "https://www.ilab-x.com/open/api/v2/attachment_upload" +
"?access_token=" + accessToken +
"&appid=" + appid +
"&originId=" + userId+
"&filename=abc.pdf&title=%E6%B5%8B%E8%AF%95%E5%AE%9E%E9%AA%8C%E6%8A%A5%E5%91%8A";
File file = new File(filePath);
String pdfFilePath = filePath +"/abc.pdf";
// String pdfFilePath = "C:\\Users\\86132\\Desktop\\abc.pdf";
File file = new File(pdfFilePath);
URL apiUrl = new URL(url);
HttpURLConnection connection = (HttpURLConnection) apiUrl.openConnection();
@ -159,4 +317,5 @@ public class IlabController {
}

@ -198,7 +198,7 @@ public class ProjectDueDiligenceController {
return new ResultEntity(HttpStatus.BAD_REQUEST, "业务尽调结论为空");
}
projectDueDiligenceService.updateServiceDueDiligence(foundProject);
scoreService.calculateScoreByModule("projectDueDiligenceBusinessReportScore", 2, foundProject.getFlowId());
// scoreService.calculateScoreByModule("projectDueDiligenceBusinessReportScore", 2, foundProject.getFlowId());
return new ResultEntity(HttpStatus.OK, "业务尽调结论保存成功");
}
@ -346,7 +346,7 @@ public class ProjectDueDiligenceController {
return new ResultEntity(HttpStatus.BAD_REQUEST, "财务尽调结论为空");
}
projectDueDiligenceService.updateServiceDueDiligence(foundProject);
scoreService.calculateScoreByModule("projectDueDiligenceFinanceReportScore", 2, foundProject.getFlowId());
// scoreService.calculateScoreByModule("projectDueDiligenceFinanceReportScore", 2, foundProject.getFlowId());
PerformanceScore performanceScore = scoreService.getByFlowId(foundProject.getFlowId());
performanceScore.setProjectDueDiligenceTime(new Date());
performanceScoreMapper.updateByPrimaryKey(performanceScore);
@ -491,13 +491,22 @@ public class ProjectDueDiligenceController {
HeaderAndFooterEvent.SetFont(BaseColor.BLACK, "黑体", 14, Font.BOLD);
document.add(HeaderAndFooterEvent.AddParagraph("司法风险:", 0, 1.5f));
ProJudicialRisk proJudicialRisk = projectDueDiligenceService.getProJudicialRiskListByFlowId(flowId).get(0);
List<ProJudicialRisk> proJudicialRiskList = projectDueDiligenceService.getProJudicialRiskListByFlowId(flowId);
TreeMap<String, String> treeMap2 = new TreeMap<>();
treeMap2.put("开庭日期", proJudicialRisk.getLawfulDay());
treeMap2.put("案号", proJudicialRisk.getCaseCode());
treeMap2.put("案由", proJudicialRisk.getCause());
treeMap2.put("公诉人/原告", proJudicialRisk.getPlaintiff());
treeMap2.put("被告人", proJudicialRisk.getDefendant());
if(!proJudicialRiskList.isEmpty()){
ProJudicialRisk proJudicialRisk = proJudicialRiskList.get(0);
treeMap2.put("开庭日期", proJudicialRisk.getLawfulDay());
treeMap2.put("案号", proJudicialRisk.getCaseCode());
treeMap2.put("案由", proJudicialRisk.getCause());
treeMap2.put("公诉人/原告", proJudicialRisk.getPlaintiff());
treeMap2.put("被告人", proJudicialRisk.getDefendant());
}else {
treeMap2.put("开庭日期", "");
treeMap2.put("案号", "");
treeMap2.put("案由", "");
treeMap2.put("公诉人/原告", "");
treeMap2.put("被告人", "");
}
PdfPTable table2 = returnPdfPTable(treeMap2);
document.add(table2);
@ -507,14 +516,24 @@ public class ProjectDueDiligenceController {
HeaderAndFooterEvent.SetFont(BaseColor.BLACK, "黑体", 14, Font.BOLD);
document.add(HeaderAndFooterEvent.AddParagraph("经营风险:", 0, 1.5f));
ProBusinessRisk proBusinessRisk = projectDueDiligenceService.getProBusinessRiskListByFlowId(flowId).get(0);
List<ProBusinessRisk> proBusinessRiskListByFlowId = projectDueDiligenceService.getProBusinessRiskListByFlowId(flowId);
TreeMap<String, String> treeMap3 = new TreeMap<>();
treeMap3.put("列入日期 ", proBusinessRisk.getIncludedDate());
treeMap3.put("列入经营异常名录原因", proBusinessRisk.getIncludedCause());
treeMap3.put("列入机关 ", proBusinessRisk.getIncludedOrganization());
treeMap3.put("移出日期", proBusinessRisk.getRemovedDate());
treeMap3.put("移出经营异常名录原因", proBusinessRisk.getRemovedCause());
treeMap3.put("移出决定机关 ", proBusinessRisk.getRemovedOrganization());
if (!proBusinessRiskListByFlowId.isEmpty()){
ProBusinessRisk proBusinessRisk=proBusinessRiskListByFlowId.get(0);
treeMap3.put("列入日期 ", proBusinessRisk.getIncludedDate());
treeMap3.put("列入经营异常名录原因", proBusinessRisk.getIncludedCause());
treeMap3.put("列入机关 ", proBusinessRisk.getIncludedOrganization());
treeMap3.put("移出日期", proBusinessRisk.getRemovedDate());
treeMap3.put("移出经营异常名录原因", proBusinessRisk.getRemovedCause());
treeMap3.put("移出决定机关 ", proBusinessRisk.getRemovedOrganization());
}else {
treeMap3.put("列入日期 ", "");
treeMap3.put("列入经营异常名录原因", "");
treeMap3.put("列入机关 ", "");
treeMap3.put("移出日期","");
treeMap3.put("移出经营异常名录原因", "");
treeMap3.put("移出决定机关 ", "");
}
PdfPTable table3 = returnPdfPTable(treeMap3);
document.add(table3);
@ -524,35 +543,63 @@ public class ProjectDueDiligenceController {
HeaderAndFooterEvent.SetFont(BaseColor.BLACK, "黑体", 14, Font.BOLD);
document.add(HeaderAndFooterEvent.AddParagraph("核心团队:", 0, 1.5f));
ProCoreTeam proCoreTeam = projectDueDiligenceService.getProCoreTeamListByFlowId(flowId).get(0);
List<ProCoreTeam> proCoreTeamListByFlowId = projectDueDiligenceService.getProCoreTeamListByFlowId(flowId);
TreeMap<String, String> treeMap4 = new TreeMap<>();
treeMap4.put("姓名", proCoreTeam.getName());
treeMap4.put("职位", proCoreTeam.getDuty());
treeMap4.put("简介", proCoreTeam.getIntroduction());
if (!proCoreTeamListByFlowId.isEmpty()){
ProCoreTeam proCoreTeam = proCoreTeamListByFlowId.get(0);
treeMap4.put("姓名", proCoreTeam.getName());
treeMap4.put("职位", proCoreTeam.getDuty());
treeMap4.put("简介", proCoreTeam.getIntroduction());
}else {
treeMap4.put("姓名", "");
treeMap4.put("职位", "");
treeMap4.put("简介", "");
}
PdfPTable table4 = returnPdfPTable(treeMap4);
document.add(table4);
HeaderAndFooterEvent.SetFont(BaseColor.BLACK, "黑体", 14, Font.BOLD);
document.add(HeaderAndFooterEvent.AddParagraph("核心业务:", 0, 1.5f));
ProCoreBusiness proCoreBusiness = projectDueDiligenceService.getProCoreBusinessListByFlowId(flowId).get(0);
TreeMap<String, String> treeMap42 = new TreeMap<>();
treeMap42.put("产品名称", proCoreBusiness.getProductnameName());
treeMap42.put("行业", proCoreBusiness.getIndustry());
treeMap42.put("产品介绍", proCoreBusiness.getProductIntroduction());
List<ProCoreBusiness> proCoreBusinessListByFlowId = projectDueDiligenceService.getProCoreBusinessListByFlowId(flowId);
if(!proCoreBusinessListByFlowId.isEmpty()){
ProCoreBusiness proCoreBusiness = proCoreBusinessListByFlowId.get(0);
treeMap42.put("产品名称", proCoreBusiness.getProductnameName());
treeMap42.put("行业", proCoreBusiness.getIndustry());
treeMap42.put("产品介绍", proCoreBusiness.getProductIntroduction());
}else {
treeMap42.put("产品名称", "");
treeMap42.put("行业", "");
treeMap42.put("产品介绍", "");
}
PdfPTable table42 = returnPdfPTable(treeMap42);
document.add(table42);
HeaderAndFooterEvent.SetFont(BaseColor.BLACK, "黑体", 14, Font.BOLD);
document.add(HeaderAndFooterEvent.AddParagraph("相关竞品:", 0, 1.5f));
ProCoreCompPro proCoreCompPro = projectDueDiligenceService.getProCoreCompProListByFlowId(flowId).get(0);
List<ProCoreCompPro> proCoreCompProListByFlowId = projectDueDiligenceService.getProCoreCompProListByFlowId(flowId);
TreeMap<String, String> treeMap43 = new TreeMap<>();
treeMap43.put("竞品名称", proCoreCompPro.getCompProName());
treeMap43.put("地区", proCoreCompPro.getIndustry());
treeMap43.put("当前融资轮次", proCoreCompPro.getArea());
treeMap43.put("行业", proCoreCompPro.getIndustry());
treeMap43.put("业务", proCoreCompPro.getBusiness());
treeMap43.put("成立时间", proCoreCompPro.getCreateDate());
treeMap43.put("估值", proCoreCompPro.getValuation());
if(!proCoreCompProListByFlowId.isEmpty()){
ProCoreCompPro proCoreCompPro = proCoreCompProListByFlowId.get(0);
treeMap43.put("竞品名称", proCoreCompPro.getCompProName());
treeMap43.put("地区", proCoreCompPro.getIndustry());
treeMap43.put("当前融资轮次", proCoreCompPro.getArea());
treeMap43.put("行业", proCoreCompPro.getIndustry());
treeMap43.put("业务", proCoreCompPro.getBusiness());
treeMap43.put("成立时间", proCoreCompPro.getCreateDate());
treeMap43.put("估值", proCoreCompPro.getValuation());
}else {
treeMap43.put("竞品名称", "");
treeMap43.put("地区", "");
treeMap43.put("当前融资轮次", "");
treeMap43.put("行业", "");
treeMap43.put("业务", "");
treeMap43.put("成立时间", "");
treeMap43.put("估值", "");
}
PdfPTable table43 = returnPdfPTable(treeMap43);
document.add(table43);
@ -563,45 +610,81 @@ public class ProjectDueDiligenceController {
HeaderAndFooterEvent.SetFont(BaseColor.BLACK, "黑体", 14, Font.BOLD);
document.add(HeaderAndFooterEvent.AddParagraph("公司招聘:", 0, 1.5f));
ProManaSituRecruit proManaSituRecruit = projectDueDiligenceService.getProManaSituRecruitListByFlowId(flowId).get(0);
List<ProManaSituRecruit> proManaSituRecruitListByFlowId = projectDueDiligenceService.getProManaSituRecruitListByFlowId(flowId);
TreeMap<String, String> treeMap51 = new TreeMap<>();
treeMap51.put("发布日期", proManaSituRecruit.getReleaseDate());
treeMap51.put("招聘职位", proManaSituRecruit.getDuty());
treeMap51.put("月薪", proManaSituRecruit.getSalary());
treeMap51.put("学历", proManaSituRecruit.getDegrees());
treeMap51.put("工作经验", proManaSituRecruit.getExperience());
treeMap51.put("地区", proManaSituRecruit.getArea());
if(!proManaSituRecruitListByFlowId.isEmpty()){
ProManaSituRecruit proManaSituRecruit = proManaSituRecruitListByFlowId.get(0);
treeMap51.put("发布日期", proManaSituRecruit.getReleaseDate());
treeMap51.put("招聘职位", proManaSituRecruit.getDuty());
treeMap51.put("月薪", proManaSituRecruit.getSalary());
treeMap51.put("学历", proManaSituRecruit.getDegrees());
treeMap51.put("工作经验", proManaSituRecruit.getExperience());
treeMap51.put("地区", proManaSituRecruit.getArea());
}else {
treeMap51.put("发布日期", "");
treeMap51.put("招聘职位", "");
treeMap51.put("月薪", "");
treeMap51.put("学历", "");
treeMap51.put("工作经验", "");
treeMap51.put("地区", "");
}
PdfPTable table51 = returnPdfPTable(treeMap51);
document.add(table51);
HeaderAndFooterEvent.SetFont(BaseColor.BLACK, "黑体", 14, Font.BOLD);
document.add(HeaderAndFooterEvent.AddParagraph("抽查检查:", 0, 1.5f));
ProManaSituCheck proManaSituCheck = projectDueDiligenceService.getProManaSituCheckListByFlowId(flowId).get(0);
List<ProManaSituCheck> proManaSituCheckListByFlowId = projectDueDiligenceService.getProManaSituCheckListByFlowId(flowId);
TreeMap<String, String> treeMap52 = new TreeMap<>();
treeMap52.put("日期", proManaSituCheck.getCheckDate());
treeMap52.put("类型", proManaSituCheck.getCheckType());
treeMap52.put("结果", proManaSituCheck.getConsequence());
treeMap52.put("检查实施机关", proManaSituCheck.getOrganization());
if(!proManaSituCheckListByFlowId.isEmpty()){
ProManaSituCheck proManaSituCheck = proManaSituCheckListByFlowId.get(0);
treeMap52.put("日期", proManaSituCheck.getCheckDate());
treeMap52.put("类型", proManaSituCheck.getCheckType());
treeMap52.put("结果", proManaSituCheck.getConsequence());
treeMap52.put("检查实施机关", proManaSituCheck.getOrganization());
}else {
treeMap52.put("日期", "");
treeMap52.put("类型", "");
treeMap52.put("结果", "");
treeMap52.put("检查实施机关", "");
}
PdfPTable table52 = returnPdfPTable(treeMap52);
document.add(table52);
HeaderAndFooterEvent.SetFont(BaseColor.BLACK, "黑体", 14, Font.BOLD);
document.add(HeaderAndFooterEvent.AddParagraph("行政许可:", 0, 1.5f));
ProManaSituLicense proManaSituLicense = projectDueDiligenceService.getProManaSituLicenseListByFlowId(flowId).get(0);
List<ProManaSituLicense> proManaSituLicenseListByFlowId = projectDueDiligenceService.getProManaSituLicenseListByFlowId(flowId);
TreeMap<String, String> treeMap53 = new TreeMap<>();
treeMap53.put("行政许可文书号", proManaSituLicense.getWrittenDecisionNum());
treeMap53.put("许可决定机关", proManaSituLicense.getOrganization());
treeMap53.put("许可决定日期", proManaSituLicense.getLicenseDate());
if(!proManaSituLicenseListByFlowId.isEmpty()){
ProManaSituLicense proManaSituLicense = proManaSituLicenseListByFlowId.get(0);
treeMap53.put("行政许可文书号", proManaSituLicense.getWrittenDecisionNum());
treeMap53.put("许可决定机关", proManaSituLicense.getOrganization());
treeMap53.put("许可决定日期", proManaSituLicense.getLicenseDate());
}else {
treeMap53.put("行政许可文书号", "");
treeMap53.put("许可决定机关", "");
treeMap53.put("许可决定日期", "");
}
PdfPTable table53 = returnPdfPTable(treeMap53);
document.add(table53);
HeaderAndFooterEvent.SetFont(BaseColor.BLACK, "黑体", 14, Font.BOLD);
document.add(HeaderAndFooterEvent.AddParagraph("招投标:", 0, 1.5f));
ProManaSituTenderingBidding proManaSituTenderingBidding = projectDueDiligenceService.getProManaSituTenderingBiddingListByFlowId(flowId).get(0);
List<ProManaSituTenderingBidding> proManaSituTenderingBiddingListByFlowId = projectDueDiligenceService.getProManaSituTenderingBiddingListByFlowId(flowId);
TreeMap<String, String> treeMap54 = new TreeMap<>();
treeMap54.put("发布日期", proManaSituTenderingBidding.getReleaseDate());
treeMap54.put("标题", proManaSituTenderingBidding.getTitle());
treeMap54.put("采购人", proManaSituTenderingBidding.getPurchaser());
if(!proManaSituTenderingBiddingListByFlowId.isEmpty()){
ProManaSituTenderingBidding proManaSituTenderingBidding = proManaSituTenderingBiddingListByFlowId.get(0);
treeMap54.put("发布日期", proManaSituTenderingBidding.getReleaseDate());
treeMap54.put("标题", proManaSituTenderingBidding.getTitle());
treeMap54.put("采购人", proManaSituTenderingBidding.getPurchaser());
}else {
treeMap54.put("发布日期", "");
treeMap54.put("标题", "");
treeMap54.put("采购人", "");
}
PdfPTable table54 = returnPdfPTable(treeMap54);
document.add(table54);
@ -611,24 +694,43 @@ public class ProjectDueDiligenceController {
HeaderAndFooterEvent.SetFont(BaseColor.BLACK, "黑体", 14, Font.BOLD);
document.add(HeaderAndFooterEvent.AddParagraph("专利信息:", 0, 1.5f));
ProIntelPropertyPatentinfo proIntelPropertyPatentinfo = projectDueDiligenceService.getProIntelPropertyPatentInfoListByFlowId(flowId).get(0);
List<ProIntelPropertyPatentinfo> proIntelPropertyPatentInfoListByFlowId = projectDueDiligenceService.getProIntelPropertyPatentInfoListByFlowId(flowId);
TreeMap<String, String> treeMap61 = new TreeMap<>();
treeMap61.put("申请公布日", proIntelPropertyPatentinfo.getPublishDate());
treeMap61.put("专利名称", proIntelPropertyPatentinfo.getPatentName());
treeMap61.put("申请号", proIntelPropertyPatentinfo.getApplicationNum());
treeMap61.put("申请公布号", proIntelPropertyPatentinfo.getApplicationPubNum());
treeMap61.put("专利类型", proIntelPropertyPatentinfo.getPatentType());
if(!proIntelPropertyPatentInfoListByFlowId.isEmpty()){
ProIntelPropertyPatentinfo proIntelPropertyPatentinfo = proIntelPropertyPatentInfoListByFlowId.get(0);
treeMap61.put("申请公布日", proIntelPropertyPatentinfo.getPublishDate());
treeMap61.put("专利名称", proIntelPropertyPatentinfo.getPatentName());
treeMap61.put("申请号", proIntelPropertyPatentinfo.getApplicationNum());
treeMap61.put("申请公布号", proIntelPropertyPatentinfo.getApplicationPubNum());
treeMap61.put("专利类型", proIntelPropertyPatentinfo.getPatentType());
}else {
treeMap61.put("申请公布日", "");
treeMap61.put("专利名称","");
treeMap61.put("申请号", "");
treeMap61.put("申请公布号", "");
treeMap61.put("专利类型", "");
}
PdfPTable table61 = returnPdfPTable(treeMap61);
document.add(table61);
HeaderAndFooterEvent.SetFont(BaseColor.BLACK, "黑体", 14, Font.BOLD);
document.add(HeaderAndFooterEvent.AddParagraph("网站备案:", 0, 1.5f));
ProIntelPropertyWebsiteRecord proIntelPropertyWebsiteRecord = projectDueDiligenceService.getProIntelPropertyWebsiteRecordListByFlowId(flowId).get(0);
List<ProIntelPropertyWebsiteRecord> proIntelPropertyWebsiteRecordListByFlowId = projectDueDiligenceService.getProIntelPropertyWebsiteRecordListByFlowId(flowId);
TreeMap<String, String> treeMap62 = new TreeMap<>();
treeMap62.put("审核日期", proIntelPropertyWebsiteRecord.getReviewDate());
treeMap62.put("网站名称", proIntelPropertyWebsiteRecord.getWebsiteName());
treeMap62.put("IP地址", proIntelPropertyWebsiteRecord.getIpAddress());
treeMap62.put("域名信息", proIntelPropertyWebsiteRecord.getDomainNameInfo());
if(!proIntelPropertyWebsiteRecordListByFlowId.isEmpty()){
ProIntelPropertyWebsiteRecord proIntelPropertyWebsiteRecord = proIntelPropertyWebsiteRecordListByFlowId.get(0);
treeMap62.put("审核日期", proIntelPropertyWebsiteRecord.getReviewDate());
treeMap62.put("网站名称", proIntelPropertyWebsiteRecord.getWebsiteName());
treeMap62.put("IP地址", proIntelPropertyWebsiteRecord.getIpAddress());
treeMap62.put("域名信息", proIntelPropertyWebsiteRecord.getDomainNameInfo());
}else {
treeMap62.put("审核日期", "");
treeMap62.put("网站名称", "");
treeMap62.put("IP地址", "");
treeMap62.put("域名信息", "");
}
PdfPTable table62 = returnPdfPTable(treeMap62);
document.add(table62);
@ -638,14 +740,25 @@ public class ProjectDueDiligenceController {
HeaderAndFooterEvent.SetFont(BaseColor.BLACK, "黑体", 14, Font.BOLD);
document.add(HeaderAndFooterEvent.AddParagraph("行政处罚:", 0, 1.5f));
ProAdminiPenalty proAdminiPenalty = projectDueDiligenceService.getProAdminiPenaltyListByFlowId(flowId).get(0);
List<ProAdminiPenalty> proAdminiPenaltyListByFlowId = projectDueDiligenceService.getProAdminiPenaltyListByFlowId(flowId);
TreeMap<String, String> treeMap7 = new TreeMap<>();
treeMap7.put("公司名称", projectPoolName);
treeMap7.put("决定日期", proAdminiPenalty.getDecisionDate());
treeMap7.put("决定书文号", proAdminiPenalty.getWrittenDecisionNum());
treeMap7.put("处罚事由", proAdminiPenalty.getPunishmentCause());
treeMap7.put("处罚结果", proAdminiPenalty.getPunishmentResult());
treeMap7.put("处罚机关", proAdminiPenalty.getPunishmentOrganization());
if(!proAdminiPenaltyListByFlowId.isEmpty()){
ProAdminiPenalty proAdminiPenalty = proAdminiPenaltyListByFlowId.get(0);
treeMap7.put("公司名称", projectPoolName);
treeMap7.put("决定日期", proAdminiPenalty.getDecisionDate());
treeMap7.put("决定书文号", proAdminiPenalty.getWrittenDecisionNum());
treeMap7.put("处罚事由", proAdminiPenalty.getPunishmentCause());
treeMap7.put("处罚结果", proAdminiPenalty.getPunishmentResult());
treeMap7.put("处罚机关", proAdminiPenalty.getPunishmentOrganization());
}else {
treeMap7.put("公司名称", projectPoolName);
treeMap7.put("决定日期", "");
treeMap7.put("决定书文号", "");
treeMap7.put("处罚事由", "");
treeMap7.put("处罚结果", "");
treeMap7.put("处罚机关", "");
}
PdfPTable table7 = returnPdfPTable(treeMap7);
document.add(table7);

@ -118,10 +118,10 @@ public class ProjectValuationController {
Boolean aBoolean = projectValuationService.updatePB(flowId, valuePerShare);
if(aBoolean){
scoreService.calculateScoreByModule2("projectUseValuationRelativeScore",2,flowId);
return new ResultEntity(HttpStatus.OK, "相对估值法-PB市率法,修改成功");
return new ResultEntity(HttpStatus.OK, "相对估值法-PB市率法,修改成功");
}
scoreService.calculateScoreByModule2("projectUseValuationRelativeScore",0,flowId);
return new ResultEntity(HttpStatus.BAD_REQUEST, "您计算的值有误,请检查!(相对估值法-PB市率法)");
return new ResultEntity(HttpStatus.BAD_REQUEST, "您计算的值有误,请检查!(相对估值法-PB市率法)");
}
@GetMapping("updatePS")
@ -132,10 +132,10 @@ public class ProjectValuationController {
Boolean aBoolean = projectValuationService.updatePS(flowId, valuePerShare);
if(aBoolean){
scoreService.calculateScoreByModule2("projectUseValuationRelativeScore",2,flowId);
return new ResultEntity(HttpStatus.OK, "相对估值法-PS市率法,修改成功");
return new ResultEntity(HttpStatus.OK, "相对估值法-PS市率法,修改成功");
}
scoreService.calculateScoreByModule2("projectUseValuationRelativeScore",0,flowId);
return new ResultEntity(HttpStatus.BAD_REQUEST, "您计算的值有误,请检查!(相对估值法-PS市率法)");
return new ResultEntity(HttpStatus.BAD_REQUEST, "您计算的值有误,请检查!(相对估值法-PS市率法)");
}
@PostMapping("updateProjectValuationRelative")
@ -149,7 +149,7 @@ public class ProjectValuationController {
return new ResultEntity(HttpStatus.BAD_REQUEST, "相对估值结论为空");
}
projectDueDiligenceService.updateServiceDueDiligence(foundProject);
scoreService.calculateScoreByModule("projectValuationRelativeScore",2,foundProject.getFlowId());
// scoreService.calculateScoreByModule("projectValuationRelativeScore",2,foundProject.getFlowId());
return new ResultEntity(HttpStatus.OK, "相对估值结论保存成功");
}
@ -176,7 +176,7 @@ public class ProjectValuationController {
return new ResultEntity(HttpStatus.BAD_REQUEST, "绝对估值结论为空");
}
projectDueDiligenceService.updateServiceDueDiligence(foundProject);
scoreService.calculateScoreByModule("projectValuationRelativeScore",2,foundProject.getFlowId());
// scoreService.calculateScoreByModule("projectValuationAbsoluteScore",2,foundProject.getFlowId());
PerformanceScore performanceScore = scoreService.getByFlowId(foundProject.getFlowId());
performanceScore.setProjectValuationTime(new Date());
performanceScoreMapper.updateByPrimaryKey(performanceScore);
@ -259,8 +259,8 @@ public class ProjectValuationController {
//表中第一行表头字段
String[] headers = null;
List<String> listColumn;
headers = new String[]{"可比公司名称", "每股市价", "每股收益", "增长率","目标公司名称","增长率", "每股收益","每股价值"};
listColumn = Arrays.asList("companyid", "marketPrice", "earnings", "growthRate","id","growthRate1","earnings1","projectPoolId");
headers = new String[]{"可比公司名称", "每股市价", "每股收益", "增长率","目标公司名称","增长率", "每股收益"};
listColumn = Arrays.asList("companyid", "marketPrice", "earnings", "growthRate","id","growthRate1","earnings1");
List<EduProjectValuation> eduProjectValuationList = projectValuationService.getPE(flowId);
for (int i = 0; i < eduProjectValuationList.size(); i++) {
eduProjectValuationList.get(i).setId(companyName);
@ -286,8 +286,8 @@ public class ProjectValuationController {
//表中第一行表头字段
String[] headers = null;
List<String> listColumn;
headers = new String[]{"可比公司名称", "每股市价", "每股净资产", "权益净利率","目标公司名称","权益净利率", "每股净资产","每股价值"};
listColumn = Arrays.asList("companyid", "marketPrice", "netWorth", "netInterest","id","netInterest1","netWorth1","projectPoolId");
headers = new String[]{"可比公司名称", "每股市价", "每股净资产", "权益净利率","目标公司名称","权益净利率", "每股净资产"};
listColumn = Arrays.asList("companyid", "marketPrice", "netWorth", "netInterest","id","netInterest1","netWorth1");
List<EduProjectValuation> eduProjectValuationList = projectValuationService.getPB(flowId);
for (int i = 0; i < eduProjectValuationList.size(); i++) {
eduProjectValuationList.get(i).setId(companyName);
@ -313,8 +313,8 @@ public class ProjectValuationController {
//表中第一行表头字段
String[] headers = null;
List<String> listColumn;
headers = new String[]{"可比公司名称", "每股市价", "每股营业收入", "营业净利率","目标公司名称","营业净利率", "每股营业收入","每股价值"};
listColumn = Arrays.asList("companyid", "marketPrice", "operatingIncome", "netOperatinginterestRate","id","netOperatinginterestRate1","operatingIncome1","projectPoolId");
headers = new String[]{"可比公司名称", "每股市价", "每股营业收入", "营业净利率","目标公司名称","营业净利率", "每股营业收入"};
listColumn = Arrays.asList("companyid", "marketPrice", "operatingIncome", "netOperatinginterestRate","id","netOperatinginterestRate1","operatingIncome1");
List<EduProjectValuation> eduProjectValuationList = projectValuationService.getPS(flowId);
for (int i = 0; i < eduProjectValuationList.size(); i++) {
eduProjectValuationList.get(i).setId(companyName);

@ -3,6 +3,12 @@ package com.sztzjy.fund_investment.service;
import com.github.pagehelper.PageInfo;
import com.sztzjy.fund_investment.entity.ProjectPool;
import java.util.List;
public interface ISysProjectPoolService {
PageInfo<ProjectPool> selectList(Integer size, Integer index);
List<String> getCompanyNameList(String projectSource);
ProjectPool getProjectPoolByCompanyName(String companyName);
}

@ -60,7 +60,7 @@ public class SysEduDDMServiceImpl implements ISysEduDDMService {
if(eduDDM.getGlnzzl2021()==null || eduDDM.getGdbybcl2021()==null || eduDDM.getQwgl2021()==null){
num++;
}else {
if(eduDDM.getGsfxgpdnzjz2021().setScale(2, BigDecimal.ROUND_HALF_UP).compareTo(eduDDM.getQwgl2021().divide(eduDDM.getGdbybcl2021().subtract(eduDDM.getGlnzzl2021())).setScale(2,BigDecimal.ROUND_HALF_UP))!=0){
if(eduDDM.getGsfxgpdnzjz2021().setScale(2, BigDecimal.ROUND_HALF_UP).compareTo(eduDDM.getQwgl2021().divide(eduDDM.getGdbybcl2021().subtract(eduDDM.getGlnzzl2021()),4,BigDecimal.ROUND_HALF_UP).setScale(2,BigDecimal.ROUND_HALF_UP))!=0){
num++;
}
}
@ -71,7 +71,7 @@ public class SysEduDDMServiceImpl implements ISysEduDDMService {
if(eduDDM.getGlnzzl2022()==null || eduDDM.getGdbybcl2022()==null || eduDDM.getQwgl2022()==null){
num++;
}else {
if(eduDDM.getGsfxgpdnzjz2022().setScale(2, BigDecimal.ROUND_HALF_UP).compareTo(eduDDM.getQwgl2022().divide(eduDDM.getGdbybcl2022().subtract(eduDDM.getGlnzzl2022())).setScale(2,BigDecimal.ROUND_HALF_UP))!=0){
if(eduDDM.getGsfxgpdnzjz2022().setScale(2, BigDecimal.ROUND_HALF_UP).compareTo(eduDDM.getQwgl2022().divide(eduDDM.getGdbybcl2022().subtract(eduDDM.getGlnzzl2022()),4,BigDecimal.ROUND_HALF_UP).setScale(2,BigDecimal.ROUND_HALF_UP))!=0){
num++;
}
}
@ -82,7 +82,7 @@ public class SysEduDDMServiceImpl implements ISysEduDDMService {
if(eduDDM.getGlnzzl2023()==null || eduDDM.getGdbybcl2023()==null || eduDDM.getQwgl2023()==null){
num++;
}else {
if(eduDDM.getGsfxgpdnzjz2023().setScale(2, BigDecimal.ROUND_HALF_UP).compareTo(eduDDM.getQwgl2023().divide(eduDDM.getGdbybcl2023().subtract(eduDDM.getGlnzzl2023())).setScale(2,BigDecimal.ROUND_HALF_UP))!=0){
if(eduDDM.getGsfxgpdnzjz2023().setScale(2, BigDecimal.ROUND_HALF_UP).compareTo(eduDDM.getQwgl2023().divide(eduDDM.getGdbybcl2023().subtract(eduDDM.getGlnzzl2023()),4,BigDecimal.ROUND_HALF_UP).setScale(2,BigDecimal.ROUND_HALF_UP))!=0){
num++;
}
}
@ -111,15 +111,21 @@ public class SysEduDDMServiceImpl implements ISysEduDDMService {
}else {
num++;
}
if(num>=4){
scoreService.calculateScoreByModule2("projectUseValuationAbsoluteScore",0,flowId);
}else {
scoreService.calculateScoreByModule2("projectUseValuationAbsoluteScore",4-num,flowId);
}
}
EduDDM eduDDM1 = ddmMapper.selectByPrimaryKey(flowId);
if (eduDDM1 == null) {
ddmMapper.insert(eduDDM);
return new ResultEntity(HttpStatus.OK, "保存成功");
}
ddmMapper.updateByPrimaryKeySelective(eduDDM);
return new ResultEntity(HttpStatus.OK, "保存成功");
}
}

@ -72,7 +72,7 @@ public class SysEduFCFFServiceImpl implements ISysEduFCFFService {
//更新FCFF
@Override
public ResultEntity updateFCFFByFlowId(String flowId,EduFCFF eduFCFF) {
ResultEntity resultEntity=null;
ResultEntity resultEntity=new ResultEntity(HttpStatus.OK, "保存成功");
EduFCFF fcff = fcffMapper.selectByPrimaryKey(flowId);
if(fcff==null){
fcffMapper.insert(eduFCFF);

@ -372,14 +372,12 @@ public class SysProjectDueDiligenceServiceImpl implements ISysProjectDueDiligenc
num++;
}
}
if (num - 17 > 0) {
scoreService.calculateScoreByModule("projectValuationEstimationRiskScore", num - 17, flowId);
return flag;
} else {
if(proFinancialIndexDetailList.size()-num<=5){
scoreService.calculateScoreByModule("projectValuationEstimationRiskScore", 6-proFinancialIndexDetailList.size()+num, flowId);
}else {
scoreService.calculateScoreByModule("projectValuationEstimationRiskScore", 0, flowId);
return flag;
}
return flag;
}

@ -9,6 +9,7 @@ import com.sztzjy.fund_investment.service.ISysProjectPoolService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import java.util.ArrayList;
import java.util.List;
@Service
@ -23,4 +24,24 @@ public class SysProjectPoolServiceImpl implements ISysProjectPoolService {
PageInfo<ProjectPool> pageInfo = new PageInfo<>(projectPools);
return pageInfo;
}
@Override
public List<String> getCompanyNameList(String projectSource) {
ProjectPoolExample projectPoolExample = new ProjectPoolExample();
projectPoolExample.createCriteria().andProjectSourceEqualTo(projectSource);
List<ProjectPool> projectPools = projectPoolMapper.selectByExample(projectPoolExample);
List<String> companyNameList=new ArrayList<>();
for (int i = 0; i < projectPools.size(); i++) {
companyNameList.add(projectPools.get(i).getCompanyName());
}
return companyNameList;
}
@Override
public ProjectPool getProjectPoolByCompanyName(String companyName) {
ProjectPoolExample projectPoolExample = new ProjectPoolExample();
projectPoolExample.createCriteria().andCompanyNameEqualTo(companyName);
List<ProjectPool> projectPools = projectPoolMapper.selectByExample(projectPoolExample);
return projectPools.get(0);
}
}

@ -91,25 +91,31 @@ public class SysProjectValuationServiceImpl implements ISysProjectValuationServi
growthRate1=valuation.getGrowthRate1();
earnings1=valuation.getEarnings1();
}
BigDecimal marketPrice = valuation.getMarketPrice(); //对比公司 每股市价
BigDecimal earnings = valuation.getEarnings(); //对比公司 每股收益
BigDecimal growthRate = valuation.getGrowthRate(); //对比公司 增长率
flag = flag.add(marketPrice.divide(earnings).divide(growthRate));
BigDecimal marketPrice = valuation.getMarketPrice().setScale(4,BigDecimal.ROUND_HALF_UP); //对比公司 每股市价
BigDecimal earnings = valuation.getEarnings().setScale(4,BigDecimal.ROUND_HALF_UP); //对比公司 每股收益
BigDecimal growthRate = valuation.getGrowthRate().setScale(4,BigDecimal.ROUND_HALF_UP); //对比公司 增长率
try {
flag = flag.add(marketPrice.divide(earnings,4,BigDecimal.ROUND_HALF_UP).divide(growthRate,4,BigDecimal.ROUND_HALF_UP));
}catch (Exception e){
return false;
}
}
BigDecimal avg = flag.divide(BigDecimal.valueOf(3)); //平均数
BigDecimal avg = flag.divide(BigDecimal.valueOf(3),4,BigDecimal.ROUND_HALF_UP); //平均数
BigDecimal answer = avg.multiply(growthRate1).multiply(earnings1).setScale(2,BigDecimal.ROUND_HALF_UP);
if(answer.compareTo(valuePerShare)!=0){
return false;
}
if(bigDecimal.compareTo(BigDecimal.ZERO)==0){
EduProjectValuationAnswer projectValuationAnswer=new EduProjectValuationAnswer();
String uuid = String.valueOf(UUID.randomUUID());
projectValuationAnswer.setAnswerId(uuid);
projectValuationAnswer.setFlowId(flowId);
projectValuationAnswer.setMethod("PE");
projectValuationAnswer.setValuePerShare(answer);
projectValuationAnswer.setValuePerShare(valuePerShare);
projectValuationAnswerMapper.insert(projectValuationAnswer);
}
if(valuePerShare.subtract(answer).abs().compareTo(new BigDecimal("0.1"))>0){
return false;
}
return true;
}
@ -132,13 +138,10 @@ public class SysProjectValuationServiceImpl implements ISysProjectValuationServi
BigDecimal marketPrice = valuation.getMarketPrice(); //对比公司 每股市价
BigDecimal netWorth = valuation.getNetWorth();//对比公司 每股净资产
BigDecimal netInterest = valuation.getNetInterest();//对比公司 权益净利率
flag = flag.add(marketPrice.divide(netWorth,2,BigDecimal.ROUND_HALF_UP).divide(netInterest,2,BigDecimal.ROUND_HALF_UP));
flag = flag.add(marketPrice.divide(netWorth,6,BigDecimal.ROUND_HALF_UP).divide(netInterest,6,BigDecimal.ROUND_HALF_UP));
}
BigDecimal avg = flag.divide(BigDecimal.valueOf(3)); //平均数
BigDecimal avg = flag.divide(BigDecimal.valueOf(3),6,BigDecimal.ROUND_HALF_UP); //平均数
BigDecimal answer = avg.multiply(netWorth1).multiply(netInterest1).setScale(2,BigDecimal.ROUND_HALF_UP);
if(answer.compareTo(valuePerShare)!=0){
return false;
}
if(bigDecimal.compareTo(BigDecimal.ZERO)==0){
EduProjectValuationAnswer projectValuationAnswer=new EduProjectValuationAnswer();
@ -146,9 +149,12 @@ public class SysProjectValuationServiceImpl implements ISysProjectValuationServi
projectValuationAnswer.setAnswerId(uuid);
projectValuationAnswer.setFlowId(flowId);
projectValuationAnswer.setMethod("PB");
projectValuationAnswer.setValuePerShare(answer);
projectValuationAnswer.setValuePerShare(valuePerShare);
projectValuationAnswerMapper.insert(projectValuationAnswer);
}
if(valuePerShare.subtract(answer).abs().compareTo(new BigDecimal("0.1"))>0){
return false;
}
return true;
}
@ -158,7 +164,7 @@ public class SysProjectValuationServiceImpl implements ISysProjectValuationServi
if (bigDecimal.compareTo(BigDecimal.ZERO)>0){
return true;
}
List<EduProjectValuation> valuationList = getPB(flowId);
List<EduProjectValuation> valuationList = getPS(flowId);
BigDecimal flag=BigDecimal.ZERO;
BigDecimal operatingIncome1=BigDecimal.ZERO;
BigDecimal netOperatinginterestRate1=BigDecimal.ZERO;
@ -168,16 +174,13 @@ public class SysProjectValuationServiceImpl implements ISysProjectValuationServi
operatingIncome1 = valuation.getOperatingIncome1();
netOperatinginterestRate1 = valuation.getNetOperatinginterestRate1();
}
BigDecimal marketPrice = valuation.getMarketPrice(); //对比公司 每股市价
BigDecimal operatingIncome = valuation.getOperatingIncome();//对比公司 每股营业收入
BigDecimal netOperatinginterestRate = valuation.getNetOperatinginterestRate();//对比公司 营业净利率
flag = flag.add(marketPrice.divide(operatingIncome).divide(netOperatinginterestRate));
BigDecimal marketPrice = valuation.getMarketPrice().setScale(4,BigDecimal.ROUND_HALF_UP); //对比公司 每股市价
BigDecimal operatingIncome = valuation.getOperatingIncome().setScale(4,BigDecimal.ROUND_HALF_UP);//对比公司 每股营业收入
BigDecimal netOperatinginterestRate = valuation.getNetOperatinginterestRate().setScale(4,BigDecimal.ROUND_HALF_UP);//对比公司 营业净利率
flag = flag.add(marketPrice.divide(operatingIncome,4,BigDecimal.ROUND_HALF_UP).divide(netOperatinginterestRate,4,BigDecimal.ROUND_HALF_UP));
}
BigDecimal avg = flag.divide(BigDecimal.valueOf(3)); //平均数
BigDecimal avg = flag.divide(BigDecimal.valueOf(3),4,BigDecimal.ROUND_HALF_UP); //平均数
BigDecimal answer = avg.multiply(operatingIncome1).multiply(netOperatinginterestRate1).setScale(2,BigDecimal.ROUND_HALF_UP);
if(answer.compareTo(valuePerShare)!=0){
return false;
}
if(bigDecimal.compareTo(BigDecimal.ZERO)==0){
EduProjectValuationAnswer projectValuationAnswer=new EduProjectValuationAnswer();
@ -185,9 +188,12 @@ public class SysProjectValuationServiceImpl implements ISysProjectValuationServi
projectValuationAnswer.setAnswerId(uuid);
projectValuationAnswer.setFlowId(flowId);
projectValuationAnswer.setMethod("PS");
projectValuationAnswer.setValuePerShare(answer);
projectValuationAnswer.setValuePerShare(valuePerShare);
projectValuationAnswerMapper.insert(projectValuationAnswer);
}
if(valuePerShare.subtract(answer).abs().compareTo(new BigDecimal("0.1"))>0){
return false;
}
return true;
}
}

@ -283,27 +283,27 @@ public class ClassScoreServiceImpl implements ClassScoreService {
String projectValuationRelative = "";
String projectValuationAbsolute = "";
String foundProjectConclusion = "";
if (foundProject.getFoundProjectConclusion() == null) {
if (StringUtils.isBlank(foundProject.getFoundProjectConclusion())) {
performanceScoreService.updateScore("projectSearchReportScore", 0, flowId);
} else {
foundProjectConclusion = foundProject.getFoundProjectConclusion(); // 寻找项目结论
}
if (foundProject.getServiceDueDiligence() == null) {
if (StringUtils.isBlank(foundProject.getServiceDueDiligence())) {
performanceScoreService.updateScore("projectDueDiligenceBusinessReportScore", 0, flowId);
} else {
serviceDueDiligence = foundProject.getServiceDueDiligence(); // 业务尽调结论
}
if (foundProject.getFinancialDueDiligence() == null) {
if (StringUtils.isBlank(foundProject.getFinancialDueDiligence())) {
performanceScoreService.updateScore("projectDueDiligenceFinanceReportScore", 0, flowId);
} else {
financialDueDiligence = foundProject.getFinancialDueDiligence(); //财务尽调结论
}
if (foundProject.getProjectValuationRelative() == null) {
if (StringUtils.isBlank(foundProject.getProjectValuationRelative())) {
performanceScoreService.updateScore("projectValuationRelativeScore", 0, flowId);
} else {
projectValuationRelative = foundProject.getProjectValuationRelative();//相对估值结论得分
}
if (foundProject.getProjectValuationAbsolute() == null) {
if (StringUtils.isBlank(foundProject.getProjectValuationAbsolute())) {
performanceScoreService.updateScore("projectValuationAbsoluteScore", 0, flowId);
} else {
projectValuationAbsolute = foundProject.getProjectValuationAbsolute();//绝对估值结论得分

Loading…
Cancel
Save