diff --git a/src/main/java/com/sztzjy/fund_investment/config/security/TokenProvider.java b/src/main/java/com/sztzjy/fund_investment/config/security/TokenProvider.java index edda1cd..cd36afa 100644 --- a/src/main/java/com/sztzjy/fund_investment/config/security/TokenProvider.java +++ b/src/main/java/com/sztzjy/fund_investment/config/security/TokenProvider.java @@ -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"; diff --git a/src/main/java/com/sztzjy/fund_investment/controller/FoundProjectController.java b/src/main/java/com/sztzjy/fund_investment/controller/FoundProjectController.java index abf21fc..c598b35 100644 --- a/src/main/java/com/sztzjy/fund_investment/controller/FoundProjectController.java +++ b/src/main/java/com/sztzjy/fund_investment/controller/FoundProjectController.java @@ -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 pageInfo=projectPoolService.selectList(size,index); - return new ResultEntity(HttpStatus.OK,"寻找项目数据展示成功",pageInfo); + PageInfo pageInfo = projectPoolService.selectList(size, index); + return new ResultEntity(HttpStatus.OK, "寻找项目数据展示成功", pageInfo); + } + + @GetMapping("getCompanyNameList") + @ApiOperation("根据来源查询公司名集合") + @AnonymousAccess + public ResultEntity getCompanyNameList(@ApiParam("来源名称") @RequestParam String projectSource) { + List 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 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 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); } diff --git a/src/main/java/com/sztzjy/fund_investment/controller/IlabController.java b/src/main/java/com/sztzjy/fund_investment/controller/IlabController.java index 8774d8b..9001884 100644 --- a/src/main/java/com/sztzjy/fund_investment/controller/IlabController.java +++ b/src/main/java/com/sztzjy/fund_investment/controller/IlabController.java @@ -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 { + } diff --git a/src/main/java/com/sztzjy/fund_investment/controller/ProjectDueDiligenceController.java b/src/main/java/com/sztzjy/fund_investment/controller/ProjectDueDiligenceController.java index 2098a29..4d5638b 100644 --- a/src/main/java/com/sztzjy/fund_investment/controller/ProjectDueDiligenceController.java +++ b/src/main/java/com/sztzjy/fund_investment/controller/ProjectDueDiligenceController.java @@ -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 proJudicialRiskList = projectDueDiligenceService.getProJudicialRiskListByFlowId(flowId); TreeMap 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 proBusinessRiskListByFlowId = projectDueDiligenceService.getProBusinessRiskListByFlowId(flowId); TreeMap 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 proCoreTeamListByFlowId = projectDueDiligenceService.getProCoreTeamListByFlowId(flowId); TreeMap 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 treeMap42 = new TreeMap<>(); - treeMap42.put("产品名称", proCoreBusiness.getProductnameName()); - treeMap42.put("行业", proCoreBusiness.getIndustry()); - treeMap42.put("产品介绍", proCoreBusiness.getProductIntroduction()); + List 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 proCoreCompProListByFlowId = projectDueDiligenceService.getProCoreCompProListByFlowId(flowId); TreeMap 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 proManaSituRecruitListByFlowId = projectDueDiligenceService.getProManaSituRecruitListByFlowId(flowId); TreeMap 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 proManaSituCheckListByFlowId = projectDueDiligenceService.getProManaSituCheckListByFlowId(flowId); TreeMap 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 proManaSituLicenseListByFlowId = projectDueDiligenceService.getProManaSituLicenseListByFlowId(flowId); TreeMap 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 proManaSituTenderingBiddingListByFlowId = projectDueDiligenceService.getProManaSituTenderingBiddingListByFlowId(flowId); TreeMap 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 proIntelPropertyPatentInfoListByFlowId = projectDueDiligenceService.getProIntelPropertyPatentInfoListByFlowId(flowId); TreeMap 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 proIntelPropertyWebsiteRecordListByFlowId = projectDueDiligenceService.getProIntelPropertyWebsiteRecordListByFlowId(flowId); TreeMap 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 proAdminiPenaltyListByFlowId = projectDueDiligenceService.getProAdminiPenaltyListByFlowId(flowId); TreeMap 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); diff --git a/src/main/java/com/sztzjy/fund_investment/controller/ProjectValuationController.java b/src/main/java/com/sztzjy/fund_investment/controller/ProjectValuationController.java index 875446b..fa70c8d 100644 --- a/src/main/java/com/sztzjy/fund_investment/controller/ProjectValuationController.java +++ b/src/main/java/com/sztzjy/fund_investment/controller/ProjectValuationController.java @@ -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 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 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 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 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 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 eduProjectValuationList = projectValuationService.getPS(flowId); for (int i = 0; i < eduProjectValuationList.size(); i++) { eduProjectValuationList.get(i).setId(companyName); diff --git a/src/main/java/com/sztzjy/fund_investment/service/ISysProjectPoolService.java b/src/main/java/com/sztzjy/fund_investment/service/ISysProjectPoolService.java index bb1fd58..793d537 100644 --- a/src/main/java/com/sztzjy/fund_investment/service/ISysProjectPoolService.java +++ b/src/main/java/com/sztzjy/fund_investment/service/ISysProjectPoolService.java @@ -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 selectList(Integer size, Integer index); + + List getCompanyNameList(String projectSource); + + ProjectPool getProjectPoolByCompanyName(String companyName); } diff --git a/src/main/java/com/sztzjy/fund_investment/service/serviceImpl/SysEduDDMServiceImpl.java b/src/main/java/com/sztzjy/fund_investment/service/serviceImpl/SysEduDDMServiceImpl.java index 945860c..730775f 100644 --- a/src/main/java/com/sztzjy/fund_investment/service/serviceImpl/SysEduDDMServiceImpl.java +++ b/src/main/java/com/sztzjy/fund_investment/service/serviceImpl/SysEduDDMServiceImpl.java @@ -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, "保存成功"); } } diff --git a/src/main/java/com/sztzjy/fund_investment/service/serviceImpl/SysEduFCFFServiceImpl.java b/src/main/java/com/sztzjy/fund_investment/service/serviceImpl/SysEduFCFFServiceImpl.java index 28db953..8f24ea2 100644 --- a/src/main/java/com/sztzjy/fund_investment/service/serviceImpl/SysEduFCFFServiceImpl.java +++ b/src/main/java/com/sztzjy/fund_investment/service/serviceImpl/SysEduFCFFServiceImpl.java @@ -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); diff --git a/src/main/java/com/sztzjy/fund_investment/service/serviceImpl/SysProjectDueDiligenceServiceImpl.java b/src/main/java/com/sztzjy/fund_investment/service/serviceImpl/SysProjectDueDiligenceServiceImpl.java index 55dd679..beb7b08 100644 --- a/src/main/java/com/sztzjy/fund_investment/service/serviceImpl/SysProjectDueDiligenceServiceImpl.java +++ b/src/main/java/com/sztzjy/fund_investment/service/serviceImpl/SysProjectDueDiligenceServiceImpl.java @@ -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; } diff --git a/src/main/java/com/sztzjy/fund_investment/service/serviceImpl/SysProjectPoolServiceImpl.java b/src/main/java/com/sztzjy/fund_investment/service/serviceImpl/SysProjectPoolServiceImpl.java index 13c3b0a..535088d 100644 --- a/src/main/java/com/sztzjy/fund_investment/service/serviceImpl/SysProjectPoolServiceImpl.java +++ b/src/main/java/com/sztzjy/fund_investment/service/serviceImpl/SysProjectPoolServiceImpl.java @@ -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 pageInfo = new PageInfo<>(projectPools); return pageInfo; } + + @Override + public List getCompanyNameList(String projectSource) { + ProjectPoolExample projectPoolExample = new ProjectPoolExample(); + projectPoolExample.createCriteria().andProjectSourceEqualTo(projectSource); + List projectPools = projectPoolMapper.selectByExample(projectPoolExample); + List 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 projectPools = projectPoolMapper.selectByExample(projectPoolExample); + return projectPools.get(0); + } } diff --git a/src/main/java/com/sztzjy/fund_investment/service/serviceImpl/SysProjectValuationServiceImpl.java b/src/main/java/com/sztzjy/fund_investment/service/serviceImpl/SysProjectValuationServiceImpl.java index 67084a3..5c8c8fd 100644 --- a/src/main/java/com/sztzjy/fund_investment/service/serviceImpl/SysProjectValuationServiceImpl.java +++ b/src/main/java/com/sztzjy/fund_investment/service/serviceImpl/SysProjectValuationServiceImpl.java @@ -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 valuationList = getPB(flowId); + List 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; } } diff --git a/src/main/java/com/sztzjy/fund_investment/service/serviceImpl/tea/ClassScoreServiceImpl.java b/src/main/java/com/sztzjy/fund_investment/service/serviceImpl/tea/ClassScoreServiceImpl.java index f0e6971..5450b12 100644 --- a/src/main/java/com/sztzjy/fund_investment/service/serviceImpl/tea/ClassScoreServiceImpl.java +++ b/src/main/java/com/sztzjy/fund_investment/service/serviceImpl/tea/ClassScoreServiceImpl.java @@ -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();//绝对估值结论得分