From 7596f5582c6639e93f25a81b2ec199abe5fce8ca Mon Sep 17 00:00:00 2001 From: yz <3614508250@qq.com> Date: Thu, 29 Aug 2024 15:52:55 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BF=AE=E5=A4=8D=E5=AF=BC=E5=87=BA=E9=97=AE?= =?UTF-8?q?=E9=A2=98=EF=BC=8C=E6=96=B0=E5=A2=9E=E4=BA=A7=E5=93=81=E4=B8=AD?= =?UTF-8?q?=E5=BF=83=E5=88=86=E9=A1=B5=EF=BC=8C=E4=BF=AE=E5=A4=8D=E6=8E=92?= =?UTF-8?q?=E5=90=8D=E9=97=AE=E9=A2=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../controller/GradeController.java | 399 ++++++++++++++++-- .../controller/ProductCenter.java | 45 +- .../service/impl/ScoreRankServiceImpl.java | 46 +- 3 files changed, 443 insertions(+), 47 deletions(-) diff --git a/src/main/java/com/sztzjy/money_management/controller/GradeController.java b/src/main/java/com/sztzjy/money_management/controller/GradeController.java index 78ee2c0..7217bb7 100644 --- a/src/main/java/com/sztzjy/money_management/controller/GradeController.java +++ b/src/main/java/com/sztzjy/money_management/controller/GradeController.java @@ -74,6 +74,20 @@ public class GradeController { CaseCashPlanMapper caseCashPlanMapper; @Autowired CaseLifeEducationPlanMapper caseLifeEducationPlanMapper; + @Autowired + CaseConsumptionPlanMapper caseConsumptionPlanMapper; + @Autowired + CaseStartAnUndertakingPlanMapper caseStartAnUndertakingPlanMapper; + @Autowired + CaseRetirementPlanMapper caseRetirementPlanMapper; + @Autowired + CaseInsurancePlanMapper caseInsurancePlanMapper; + @Autowired + CaseTaxPlanMapper caseTaxPlanMapper; + @Autowired + CaseDistributionOfPropertyMapper caseDistributionOfPropertyMapper; + @Autowired + CaseHeritageMapper caseHeritageMapper; @AnonymousAccess @ApiOperation("实训演练-学习成绩得分情况展示") @@ -385,7 +399,7 @@ public class GradeController { String[] headers = {"排名", "姓名", "学号", "总成绩", "班级", "客户案例成绩", "综合规划成绩", "理论考核成绩"}; //具体需要写入excel需要哪些字段,这些字段取自UserReward类,也就是上面的实际数据结果集的泛型 - List listColumn = Arrays.asList("rankId", "name", "studentId", "totalScore", "classId", "khalScore", "zhghScore","llkhScore"); + List listColumn = Arrays.asList("rankId", "name", "studentId", "totalScore", "className", "khalScore", "zhghScore","llkhScore"); try { FilePortUtil.exportExcel(response, title, headers, scoreRankList, listColumn); } catch (Exception e) { @@ -437,9 +451,9 @@ public class GradeController { //导出的表名 String title = IdUtil.simpleUUID(); //表中第一行表头字段 - String[] headers = {"排名", "姓名", "学号", "总成绩", "风险测评分数", "财务分析分数", "现金规划分数","教育规划分数","消费规划分数","创业规划分数","退休规划分数","保险规划分数","投资规划分数","税务筹划分数","财产分配分数","财产传承分数"}; + String[] headers = {"排名", "姓名", "学号","班级","总成绩", "风险测评分数", "财务分析分数", "现金规划分数","教育规划分数","消费规划分数","创业规划分数","退休规划分数","保险规划分数","投资规划分数","税务筹划分数","财产分配分数","财产传承分数"}; //具体需要写入excel需要哪些字段,这些字段取自UserReward类,也就是上面的实际数据结果集的泛型 - List listColumn = Arrays.asList("rankId", "name", "studentId", "khalScore", "fxcp", "cwfx","xjgh","jygh","xfgh","cygh","txgh","bxgh","tzgh","swch","ccfp","cccc"); + List listColumn = Arrays.asList("rankId", "name", "studentId","className","khalScore", "fxcp", "cwfx","xjgh","jygh","xfgh","cygh","txgh","bxgh","tzgh","swch","ccfp","cccc"); try { FilePortUtil.exportExcel(response, title, headers, scoreRankList, listColumn); } catch (Exception e) { @@ -608,9 +622,9 @@ public class GradeController { //导出的表名 String title = IdUtil.simpleUUID(); //表中第一行表头字段 - String[] headers = {"排名", "姓名", "学号", "总成绩", "完成案例个数"}; + String[] headers = {"排名", "姓名", "学号","班级","总成绩", "完成案例个数"}; //具体需要写入excel需要哪些字段,这些字段取自UserReward类,也就是上面的实际数据结果集的泛型 - List listColumn = Arrays.asList("classId", "name", "studentId", "zhghScore", "countCase"); + List listColumn = Arrays.asList("classId", "name", "studentId","className", "zhghScore", "countCase"); try { FilePortUtil.exportExcel(response, title, headers, scoreRankList, listColumn); } catch (Exception e) { @@ -720,7 +734,7 @@ public class GradeController { caseFinancialRatiosMapper.updateByPrimaryKeyWithBLOBs(caseFinancialRatiosWithBLOBs); //并设置综合规划成绩表 修改分数 SynthesisPlanScoreExample scoreExample = new SynthesisPlanScoreExample(); - scoreExample.createCriteria().andCaseidEqualTo(caseid).andUseridEqualTo(userid).andTestCenterEqualTo("财务分析-财务比例分析"); + scoreExample.createCriteria().andCaseidEqualTo(caseid).andUseridEqualTo(userid).andManageMoneyMattersTypeEqualTo("财务分析-财务比例分析").andTestCenterEqualTo("客户财务情况分析"); List scoreList = synthesisPlanScoreMapper.selectByExample(scoreExample); SynthesisPlanScore synthesisPlanScore = scoreList.get(0); synthesisPlanScore.setScore(teacherScore); @@ -752,7 +766,7 @@ public class GradeController { caseCashPlanMapper.updateByPrimaryKey(caseCashPlan); //并设置综合规划成绩表 修改分数 SynthesisPlanScoreExample scoreExample = new SynthesisPlanScoreExample(); - scoreExample.createCriteria().andCaseidEqualTo(caseid).andUseridEqualTo(userid).andTestCenterEqualTo("现金规划"); + scoreExample.createCriteria().andCaseidEqualTo(caseid).andUseridEqualTo(userid).andManageMoneyMattersTypeEqualTo("现金规划").andTestCenterEqualTo("现金规划分析"); List scoreList = synthesisPlanScoreMapper.selectByExample(scoreExample); SynthesisPlanScore synthesisPlanScore = scoreList.get(0); synthesisPlanScore.setScore(teacherScore); @@ -765,44 +779,44 @@ public class GradeController { if(list.isEmpty()){ continue; } - CaseLifeEducationPlan caseLifeEducationPlan = list.get(0); - String analysis = caseLifeEducationPlan.getAnalysis(); + CaseLifeEducationPlan stuPlan = list.get(0); + String analysis = stuPlan.getAnalysis(); BigDecimal teacherScore=BigDecimal.ZERO; //设置分析分数 if(StringUtils.isBlank(analysis)){ - caseLifeEducationPlan.setAnalysisTeacherScore(teacherScore); + stuPlan.setAnalysisTeacherScore(teacherScore); }else { if(analysis.length()<20){ - caseLifeEducationPlan.setAnalysisTeacherScore(teacherScore); + stuPlan.setAnalysisTeacherScore(teacherScore); }else if(analysis.length()>=50){ teacherScore=BigDecimal.valueOf(2); - caseLifeEducationPlan.setAnalysisTeacherScore(teacherScore); + stuPlan.setAnalysisTeacherScore(teacherScore); }else { teacherScore=BigDecimal.valueOf(1); - caseLifeEducationPlan.setAnalysisTeacherScore(teacherScore); + stuPlan.setAnalysisTeacherScore(teacherScore); } } //设置理财方案分数 先获取案例题答案的分数 再获取学生理财方案的四个对象 按照公式对比大小 如果大于老师的答案 则给两分 低于给0分 CaseLifeEducationPlanExample teaExample = new CaseLifeEducationPlanExample(); teaExample.createCriteria().andCaseidEqualTo(caseid).andIsAnswerEqualTo("题目答案"); - List teaCaseLifeEducationPlans = caseLifeEducationPlanMapper.selectByExample(example); - CaseLifeEducationPlan teaPlan = teaCaseLifeEducationPlans.get(0); + List teaCasePlanList = caseLifeEducationPlanMapper.selectByExample(teaExample); + CaseLifeEducationPlan teaPlan = teaCasePlanList.get(0); BigDecimal teaFinancialPlanningMoney = teaPlan.getReturnOnInvestment(); - BigDecimal returnOnInvestment = caseLifeEducationPlan.getReturnOnInvestment(); - BigDecimal disposableInput = caseLifeEducationPlan.getDisposableInput(); - BigDecimal monthlyInvestment = caseLifeEducationPlan.getMonthlyInvestment(); - Integer regularYear = caseLifeEducationPlan.getRegularYear(); //定期定额投资年限 n + BigDecimal returnOnInvestment = stuPlan.getReturnOnInvestment(); + BigDecimal disposableInput = stuPlan.getDisposableInput(); + BigDecimal monthlyInvestment = stuPlan.getMonthlyInvestment(); + Integer regularYear = stuPlan.getRegularYear(); //定期定额投资年限 n BigDecimal stuFinancialPlanningMoney = getFinancialPlanningMoney(returnOnInvestment,disposableInput,monthlyInvestment,regularYear); BigDecimal teacherFinancialPlanningScore=BigDecimal.ZERO; //老师理财分数 用于保存到综合规划成绩表中 if(stuFinancialPlanningMoney.compareTo(teaFinancialPlanningMoney)>=0){ teacherFinancialPlanningScore=BigDecimal.valueOf(2); - caseLifeEducationPlan.setCaseTeacherScore(teacherFinancialPlanningScore); + stuPlan.setCaseTeacherScore(teacherFinancialPlanningScore); }else { - caseLifeEducationPlan.setCaseTeacherScore(teacherFinancialPlanningScore); + stuPlan.setCaseTeacherScore(teacherFinancialPlanningScore); } - caseLifeEducationPlanMapper.updateByPrimaryKey(caseLifeEducationPlan); + caseLifeEducationPlanMapper.updateByPrimaryKey(stuPlan); //并设置综合规划成绩表 修改老师评分分数 SynthesisPlanScoreExample scoreExample = new SynthesisPlanScoreExample(); scoreExample.createCriteria().andCaseidEqualTo(caseid).andUseridEqualTo(userid).andManageMoneyMattersTypeEqualTo("生涯规划-教育规划").andTestCenterEqualTo("教育规划分析"); @@ -819,33 +833,352 @@ public class GradeController { synthesisPlanScore2.setScore(teacherFinancialPlanningScore); synthesisPlanScoreMapper.updateByPrimaryKey(synthesisPlanScore2); }else if("生涯规划-消费规划".equals(type)){ + CaseConsumptionPlanExample example = new CaseConsumptionPlanExample(); + example.createCriteria().andCaseIdEqualTo(caseid).andUserIdEqualTo(userid); + List list = caseConsumptionPlanMapper.selectByExample(example); + //如果不存在 则跳过 + if(list.isEmpty()){ + continue; + } + CaseConsumptionPlan stuPlan = list.get(0); + String analysis = stuPlan.getAnalysis(); + BigDecimal teacherScore=BigDecimal.ZERO; + //设置分析分数 + if(StringUtils.isBlank(analysis)){ + stuPlan.setAnalysisTeacherScore(teacherScore); + }else { + if(analysis.length()<20){ + stuPlan.setAnalysisTeacherScore(teacherScore); + }else if(analysis.length()>=50){ + teacherScore=BigDecimal.valueOf(2); + stuPlan.setAnalysisTeacherScore(teacherScore); + }else { + teacherScore=BigDecimal.valueOf(1); + stuPlan.setAnalysisTeacherScore(teacherScore); + } + } + //设置理财方案分数 先获取案例题答案的分数 再获取学生理财方案的四个对象 按照公式对比大小 如果大于老师的答案 则给两分 低于给0分 + CaseConsumptionPlanExample teaExample = new CaseConsumptionPlanExample(); + teaExample.createCriteria().andCaseIdEqualTo(caseid).andIsAnswerEqualTo("题目答案"); + List teaCasePlanList = caseConsumptionPlanMapper.selectByExample(teaExample); + CaseConsumptionPlan teaPlan = teaCasePlanList.get(0); + BigDecimal teaFinancialPlanningMoney = teaPlan.getReturnOnInvestment(); + BigDecimal returnOnInvestment = stuPlan.getReturnOnInvestment(); + BigDecimal disposableInput = stuPlan.getDisposableInput(); + BigDecimal monthlyInvestment = stuPlan.getMonthlyInvestment(); + Integer regularYear = stuPlan.getRegularYear(); //定期定额投资年限 n + BigDecimal stuFinancialPlanningMoney = getFinancialPlanningMoney(returnOnInvestment,disposableInput,monthlyInvestment,regularYear); + BigDecimal teacherFinancialPlanningScore=BigDecimal.ZERO; //老师理财分数 用于保存到综合规划成绩表中 + if(stuFinancialPlanningMoney.compareTo(teaFinancialPlanningMoney)>=0){ + teacherFinancialPlanningScore=BigDecimal.valueOf(2); + stuPlan.setCaseTeacherScore(teacherFinancialPlanningScore); + }else { + stuPlan.setCaseTeacherScore(teacherFinancialPlanningScore); + } + + caseConsumptionPlanMapper.updateByPrimaryKey(stuPlan); + //并设置综合规划成绩表 修改老师评分分数 + SynthesisPlanScoreExample scoreExample = new SynthesisPlanScoreExample(); + scoreExample.createCriteria().andCaseidEqualTo(caseid).andUseridEqualTo(userid).andManageMoneyMattersTypeEqualTo("生涯规划-消费规划").andTestCenterEqualTo("消费规划分析"); + List scoreList = synthesisPlanScoreMapper.selectByExample(scoreExample); + SynthesisPlanScore synthesisPlanScore = scoreList.get(0); + synthesisPlanScore.setScore(teacherScore); + synthesisPlanScoreMapper.updateByPrimaryKey(synthesisPlanScore); + + //修改理财方案老师评分 + SynthesisPlanScoreExample scoreExample2 = new SynthesisPlanScoreExample(); + scoreExample2.createCriteria().andCaseidEqualTo(caseid).andUseridEqualTo(userid).andManageMoneyMattersTypeEqualTo("生涯规划-消费规划").andTestCenterEqualTo("理财方案"); + List scoreList2 = synthesisPlanScoreMapper.selectByExample(scoreExample2); + SynthesisPlanScore synthesisPlanScore2 = scoreList2.get(0); + synthesisPlanScore2.setScore(teacherFinancialPlanningScore); + synthesisPlanScoreMapper.updateByPrimaryKey(synthesisPlanScore2); }else if("生涯规划-创业规划".equals(type)){ + CaseStartAnUndertakingPlanExample example = new CaseStartAnUndertakingPlanExample(); + example.createCriteria().andCaseidEqualTo(caseid).andUserIdEqualTo(userid); + List list = caseStartAnUndertakingPlanMapper.selectByExample(example); + //如果不存在 则跳过 + if(list.isEmpty()){ + continue; + } + CaseStartAnUndertakingPlan stuPlan = list.get(0); + String analysis = stuPlan.getAnalysis(); + BigDecimal teacherScore=BigDecimal.ZERO; + //设置分析分数 + if(StringUtils.isBlank(analysis)){ + stuPlan.setAnalysisTeacherScore(teacherScore); + }else { + if(analysis.length()<20){ + stuPlan.setAnalysisTeacherScore(teacherScore); + }else if(analysis.length()>=50){ + teacherScore=BigDecimal.valueOf(2); + stuPlan.setAnalysisTeacherScore(teacherScore); + }else { + teacherScore=BigDecimal.valueOf(1); + stuPlan.setAnalysisTeacherScore(teacherScore); + } + } + //设置理财方案分数 先获取案例题答案的分数 再获取学生理财方案的四个对象 按照公式对比大小 如果大于老师的答案 则给两分 低于给0分 + CaseStartAnUndertakingPlanExample teaExample = new CaseStartAnUndertakingPlanExample(); + teaExample.createCriteria().andCaseidEqualTo(caseid).andIsAnswerEqualTo("题目答案"); + List teaCasePlanList = caseStartAnUndertakingPlanMapper.selectByExample(teaExample); + CaseStartAnUndertakingPlan teaPlan = teaCasePlanList.get(0); + BigDecimal teaFinancialPlanningMoney = teaPlan.getReturnOnInvestmentRate(); + BigDecimal returnOnInvestment = stuPlan.getReturnOnInvestmentRate(); + BigDecimal disposableInput = stuPlan.getDisposableInput(); + BigDecimal monthlyInvestment = stuPlan.getMonthlyInvestment(); + Integer regularYear = stuPlan.getRegularYear(); //定期定额投资年限 n + BigDecimal stuFinancialPlanningMoney = getFinancialPlanningMoney(returnOnInvestment,disposableInput,monthlyInvestment,regularYear); + BigDecimal teacherFinancialPlanningScore=BigDecimal.ZERO; //老师理财分数 用于保存到综合规划成绩表中 + if(stuFinancialPlanningMoney.compareTo(teaFinancialPlanningMoney)>=0){ + teacherFinancialPlanningScore=BigDecimal.valueOf(2); + stuPlan.setCaseTeacherScore(teacherFinancialPlanningScore); + }else { + stuPlan.setCaseTeacherScore(teacherFinancialPlanningScore); + } + + caseStartAnUndertakingPlanMapper.updateByPrimaryKey(stuPlan); + //并设置综合规划成绩表 修改老师评分分数 + SynthesisPlanScoreExample scoreExample = new SynthesisPlanScoreExample(); + scoreExample.createCriteria().andCaseidEqualTo(caseid).andUseridEqualTo(userid).andManageMoneyMattersTypeEqualTo("生涯规划-创业规划").andTestCenterEqualTo("创业规划分析"); + List scoreList = synthesisPlanScoreMapper.selectByExample(scoreExample); + SynthesisPlanScore synthesisPlanScore = scoreList.get(0); + synthesisPlanScore.setScore(teacherScore); + synthesisPlanScoreMapper.updateByPrimaryKey(synthesisPlanScore); + + //修改理财方案老师评分 + SynthesisPlanScoreExample scoreExample2 = new SynthesisPlanScoreExample(); + scoreExample2.createCriteria().andCaseidEqualTo(caseid).andUseridEqualTo(userid).andManageMoneyMattersTypeEqualTo("生涯规划-创业规划").andTestCenterEqualTo("理财方案"); + List scoreList2 = synthesisPlanScoreMapper.selectByExample(scoreExample2); + SynthesisPlanScore synthesisPlanScore2 = scoreList2.get(0); + synthesisPlanScore2.setScore(teacherFinancialPlanningScore); + synthesisPlanScoreMapper.updateByPrimaryKey(synthesisPlanScore2); }else if("生涯规划-退休规划".equals(type)){ + CaseRetirementPlanExample example = new CaseRetirementPlanExample(); + example.createCriteria().andCaseidEqualTo(caseid).andUserIdEqualTo(userid); + List list = caseRetirementPlanMapper.selectByExample(example); + //如果不存在 则跳过 + if(list.isEmpty()){ + continue; + } + CaseRetirementPlan stuPlan = list.get(0); + String analysis = stuPlan.getAnalysis(); + BigDecimal teacherScore=BigDecimal.ZERO; + //设置分析分数 + if(StringUtils.isBlank(analysis)){ + stuPlan.setAnalysisTeacherScore(teacherScore); + }else { + if(analysis.length()<20){ + stuPlan.setAnalysisTeacherScore(teacherScore); + }else if(analysis.length()>=50){ + teacherScore=BigDecimal.valueOf(2); + stuPlan.setAnalysisTeacherScore(teacherScore); + }else { + teacherScore=BigDecimal.valueOf(1); + stuPlan.setAnalysisTeacherScore(teacherScore); + } + } + //设置理财方案分数 先获取案例题答案的分数 再获取学生理财方案的四个对象 按照公式对比大小 如果大于老师的答案 则给两分 低于给0分 + CaseRetirementPlanExample teaExample = new CaseRetirementPlanExample(); + teaExample.createCriteria().andCaseidEqualTo(caseid).andIsAnswerEqualTo("题目答案"); + List teaCasePlanList = caseRetirementPlanMapper.selectByExample(teaExample); + CaseRetirementPlan teaPlan = teaCasePlanList.get(0); + BigDecimal teaFinancialPlanningMoney = teaPlan.getReturnOnInvestmentRate(); + BigDecimal returnOnInvestment = stuPlan.getReturnOnInvestmentRate(); + BigDecimal disposableInput = stuPlan.getDisposableInput(); + BigDecimal monthlyInvestment = stuPlan.getMonthlyInvestment(); + Integer regularYear = stuPlan.getRegularYear(); //定期定额投资年限 n + BigDecimal stuFinancialPlanningMoney = getFinancialPlanningMoney(returnOnInvestment,disposableInput,monthlyInvestment,regularYear); + BigDecimal teacherFinancialPlanningScore=BigDecimal.ZERO; //老师理财分数 用于保存到综合规划成绩表中 + if(stuFinancialPlanningMoney.compareTo(teaFinancialPlanningMoney)>=0){ + teacherFinancialPlanningScore=BigDecimal.valueOf(2); + stuPlan.setCaseTeacherScore(teacherFinancialPlanningScore); + }else { + stuPlan.setCaseTeacherScore(teacherFinancialPlanningScore); + } - }else if("生涯规划-保险规划".equals(type)){ + caseRetirementPlanMapper.updateByPrimaryKey(stuPlan); + //并设置综合规划成绩表 修改老师评分分数 + SynthesisPlanScoreExample scoreExample = new SynthesisPlanScoreExample(); + scoreExample.createCriteria().andCaseidEqualTo(caseid).andUseridEqualTo(userid).andManageMoneyMattersTypeEqualTo("生涯规划-退休规划").andTestCenterEqualTo("退休规划分析"); + List scoreList = synthesisPlanScoreMapper.selectByExample(scoreExample); + SynthesisPlanScore synthesisPlanScore = scoreList.get(0); + synthesisPlanScore.setScore(teacherScore); + synthesisPlanScoreMapper.updateByPrimaryKey(synthesisPlanScore); + + //修改理财方案老师评分 + SynthesisPlanScoreExample scoreExample2 = new SynthesisPlanScoreExample(); + scoreExample2.createCriteria().andCaseidEqualTo(caseid).andUseridEqualTo(userid).andManageMoneyMattersTypeEqualTo("生涯规划-退休规划").andTestCenterEqualTo("理财方案"); + List scoreList2 = synthesisPlanScoreMapper.selectByExample(scoreExample2); + SynthesisPlanScore synthesisPlanScore2 = scoreList2.get(0); + synthesisPlanScore2.setScore(teacherFinancialPlanningScore); + synthesisPlanScoreMapper.updateByPrimaryKey(synthesisPlanScore2); + }else if("生涯规划-保险规划".equals(type)){ + //根据caseid和userId查询case_Financial_Ratios表 + CaseInsurancePlanExample example = new CaseInsurancePlanExample(); + example.createCriteria().andCaseidEqualTo(caseid).andUserIdEqualTo(userid); + List list = caseInsurancePlanMapper.selectByExample(example); + //如果不存在 则跳过 + if(list.isEmpty()){ + continue; + } + CaseInsurancePlan stuPlan = list.get(0); + String analysis = stuPlan.getAnalysis(); + BigDecimal teacherScore=BigDecimal.ZERO; + if(StringUtils.isBlank(analysis)){ + stuPlan.setAnalysisTeacherScore(teacherScore); + }else { + if(analysis.length()<20){ + stuPlan.setAnalysisTeacherScore(teacherScore); + }else if(analysis.length()>=50){ + teacherScore=BigDecimal.valueOf(2); + stuPlan.setAnalysisTeacherScore(teacherScore); + }else { + teacherScore=BigDecimal.valueOf(1); + stuPlan.setAnalysisTeacherScore(teacherScore); + } + } + caseInsurancePlanMapper.updateByPrimaryKey(stuPlan); + //并设置综合规划成绩表 修改分数 + SynthesisPlanScoreExample scoreExample = new SynthesisPlanScoreExample(); + List testCenterList=new ArrayList<>(); + testCenterList.add("寿险需求测算方法选择-遗属需求法-保险规划分析"); + testCenterList.add("寿险需求测算方法选择-生命价值法-保险规划分析"); + scoreExample.createCriteria().andCaseidEqualTo(caseid).andUseridEqualTo(userid).andManageMoneyMattersTypeEqualTo("生涯规划-保险规划").andTestCenterIn(testCenterList); + List scoreList = synthesisPlanScoreMapper.selectByExample(scoreExample); + SynthesisPlanScore synthesisPlanScore = scoreList.get(0); + synthesisPlanScore.setScore(teacherScore); + synthesisPlanScoreMapper.updateByPrimaryKey(synthesisPlanScore); }else if("投资规划".equals(type)){ }else if("税务筹划".equals(type)){ - + //根据caseid和userId查询case_Financial_Ratios表 + CaseTaxPlanExample example = new CaseTaxPlanExample(); + example.createCriteria().andCaseidEqualTo(caseid).andUserIdEqualTo(userid); + List list = caseTaxPlanMapper.selectByExample(example); + //如果不存在 则跳过 + if(list.isEmpty()){ + continue; + } + CaseTaxPlan stuPlan = list.get(0); + String analysis = stuPlan.getAnalysis(); + BigDecimal teacherScore=BigDecimal.ZERO; + if(StringUtils.isBlank(analysis)){ + stuPlan.setAnalysisTeacherScore(teacherScore); + }else { + if(analysis.length()<20){ + stuPlan.setAnalysisTeacherScore(teacherScore); + }else if(analysis.length()>=50){ + teacherScore=BigDecimal.valueOf(2); + stuPlan.setAnalysisTeacherScore(teacherScore); + }else { + teacherScore=BigDecimal.valueOf(1); + stuPlan.setAnalysisTeacherScore(teacherScore); + } + } + caseTaxPlanMapper.updateByPrimaryKey(stuPlan); + //并设置综合规划成绩表 修改分数 + SynthesisPlanScoreExample scoreExample = new SynthesisPlanScoreExample(); + scoreExample.createCriteria().andCaseidEqualTo(caseid).andUseridEqualTo(userid).andManageMoneyMattersTypeEqualTo("税务筹划").andTestCenterEqualTo("税务筹划分析"); + List scoreList = synthesisPlanScoreMapper.selectByExample(scoreExample); + SynthesisPlanScore synthesisPlanScore = scoreList.get(0); + synthesisPlanScore.setScore(teacherScore); + synthesisPlanScoreMapper.updateByPrimaryKey(synthesisPlanScore); }else if("财产分配".equals(type)){ - + //根据caseid和userId查询case_Financial_Ratios表 + CaseDistributionOfPropertyExample example = new CaseDistributionOfPropertyExample(); + example.createCriteria().andCaseidEqualTo(caseid).andUserIdEqualTo(userid); + List list = caseDistributionOfPropertyMapper.selectByExampleWithBLOBs(example); + //如果不存在 则跳过 + if(list.isEmpty()){ + continue; + } + CaseDistributionOfPropertyWithBLOBs stuPlan = list.get(0); + String analysis1 = stuPlan.getSituationAnalysis(); + BigDecimal teacherScore1=BigDecimal.ZERO; + if(StringUtils.isBlank(analysis1)){ + stuPlan.setSituationanalysisTeacherScore(teacherScore1); + }else { + if(analysis1.length()<20){ + stuPlan.setSituationanalysisTeacherScore(teacherScore1); + }else if(analysis1.length()>=50){ + teacherScore1=BigDecimal.valueOf(2); + stuPlan.setSituationanalysisTeacherScore(teacherScore1); + }else { + teacherScore1=BigDecimal.valueOf(1); + stuPlan.setSituationanalysisTeacherScore(teacherScore1); + } + } + String analysis2 = stuPlan.getPlanAnalysis(); + BigDecimal teacherScore2=BigDecimal.ZERO; + if(StringUtils.isBlank(analysis2)){ + stuPlan.setPlananalysisTeacherScore(teacherScore2); + }else { + if(analysis2.length()<20){ + stuPlan.setPlananalysisTeacherScore(teacherScore2); + }else if(analysis2.length()>=50){ + teacherScore2=BigDecimal.valueOf(2); + stuPlan.setPlananalysisTeacherScore(teacherScore2); + }else { + teacherScore2=BigDecimal.valueOf(1); + stuPlan.setPlananalysisTeacherScore(teacherScore2); + } + } + caseDistributionOfPropertyMapper.updateByPrimaryKey(stuPlan); + //并设置综合规划成绩表 修改分数 + SynthesisPlanScoreExample scoreExample = new SynthesisPlanScoreExample(); + scoreExample.createCriteria().andCaseidEqualTo(caseid).andUseridEqualTo(userid).andManageMoneyMattersTypeEqualTo("财产分配").andTestCenterEqualTo("婚姻、财产状况分析"); + List scoreList = synthesisPlanScoreMapper.selectByExample(scoreExample); + SynthesisPlanScore synthesisPlanScore = scoreList.get(0); + synthesisPlanScore.setScore(teacherScore1); + synthesisPlanScoreMapper.updateByPrimaryKey(synthesisPlanScore); + SynthesisPlanScoreExample scoreExample2 = new SynthesisPlanScoreExample(); + scoreExample2.createCriteria().andCaseidEqualTo(caseid).andUseridEqualTo(userid).andManageMoneyMattersTypeEqualTo("财产分配").andTestCenterEqualTo("财产分配规划分析"); + List scoreList2 = synthesisPlanScoreMapper.selectByExample(scoreExample2); + SynthesisPlanScore synthesisPlanScore2 = scoreList2.get(0); + synthesisPlanScore2.setScore(teacherScore2); + synthesisPlanScoreMapper.updateByPrimaryKey(synthesisPlanScore2); }else if("财产传承".equals(type)){ - + //根据caseid和userId查询case_Financial_Ratios表 + CaseHeritageExample example = new CaseHeritageExample(); + example.createCriteria().andCaseidEqualTo(caseid).andUserIdEqualTo(userid); + List list = caseHeritageMapper.selectByExampleWithBLOBs(example); + //如果不存在 则跳过 + if(list.isEmpty()){ + continue; + } + CaseHeritageWithBLOBs stuPlan = list.get(0); + String analysis2 = stuPlan.getPlanAnalysis(); + BigDecimal teacherScore2=BigDecimal.ZERO; + if(StringUtils.isBlank(analysis2)){ + stuPlan.setPlananalysisTeacherScore(teacherScore2); + }else { + if(analysis2.length()<20){ + stuPlan.setPlananalysisTeacherScore(teacherScore2); + }else if(analysis2.length()>=50){ + teacherScore2=BigDecimal.valueOf(2); + stuPlan.setPlananalysisTeacherScore(teacherScore2); + }else { + teacherScore2=BigDecimal.valueOf(1); + stuPlan.setPlananalysisTeacherScore(teacherScore2); + } + } + caseHeritageMapper.updateByPrimaryKey(stuPlan); + //并设置综合规划成绩表 修改分数 + SynthesisPlanScoreExample scoreExample2 = new SynthesisPlanScoreExample(); + scoreExample2.createCriteria().andCaseidEqualTo(caseid).andUseridEqualTo(userid).andManageMoneyMattersTypeEqualTo("财产传承").andTestCenterEqualTo("财产传承规划分析"); + List scoreList2 = synthesisPlanScoreMapper.selectByExample(scoreExample2); + SynthesisPlanScore synthesisPlanScore2 = scoreList2.get(0); + synthesisPlanScore2.setScore(teacherScore2); + synthesisPlanScoreMapper.updateByPrimaryKey(synthesisPlanScore2); }else { continue; } } } - //根据caseid和userId查询case_InsurancePlan表 如果不存在 则跳过 如果存在 则获取Analysis参数 如果不为null则不进行修改 后续不操作 如果参数字数大于20个 则Analysis_teacher_score获得1分 50 两分 否则0分 并设置综合规划成绩表 先判断成绩是否存在 存在则修改分数、不存在则新增 - //根据caseid和userId查询case_InvestmentPlan表 如果不存在 则跳过 如果存在 则获取Analysis参数 如果不为null则不进行修改 后续不操作 如果参数字数大于20个 则Analysis_teacher_score获得1分 50 两分 否则0分 并设置综合规划成绩表 先判断成绩是否存在 存在则修改分数、不存在则新增 - //根据caseid和userId查询case_tax_plan表 如果不存在 则跳过 如果存在 则获取Analysis参数 如果不为null则不进行修改 后续不操作 如果参数字数大于20个 则Analysis_teacher_score获得1分 50 两分 否则0分 并设置综合规划成绩表 先判断成绩是否存在 存在则修改分数、不存在则新增 - //根据caseid和case_Distribution Of Property表(双参数) 如果不存在 则跳过 如果存在 则获取Analysis参数 如果不为null则不进行修改 后续不操作 如果参数字数大于20个 则Analysis_teacher_score获得1分 50 两分 否则0分 并设置综合规划成绩表 先判断成绩是否存在 存在则修改分数、不存在则新增 - //根据caseid和case_heritage表(双参数) 如果不存在 则跳过 如果存在 则获取Analysis参数 如果不为null则不进行修改 后续不操作 如果参数字数大于20个 则Analysis_teacher_score获得1分 50 两分 否则0分 并设置综合规划成绩表 先判断成绩是否存在 存在则修改分数、不存在则新增 - //生涯规划需要判断理财方案得分情况 - return null; + return new ResultEntity(HttpStatus.OK, "一键评分成功"); } //计算理财方案 diff --git a/src/main/java/com/sztzjy/money_management/controller/ProductCenter.java b/src/main/java/com/sztzjy/money_management/controller/ProductCenter.java index eaa4b74..e851bac 100644 --- a/src/main/java/com/sztzjy/money_management/controller/ProductCenter.java +++ b/src/main/java/com/sztzjy/money_management/controller/ProductCenter.java @@ -1,5 +1,7 @@ package com.sztzjy.money_management.controller; +import com.github.pagehelper.PageHelper; +import com.github.pagehelper.PageInfo; import com.sztzjy.money_management.annotation.AnonymousAccess; import com.sztzjy.money_management.entity.*; import com.sztzjy.money_management.mapper.*; @@ -7,6 +9,7 @@ import com.sztzjy.money_management.util.ResultEntity; import io.swagger.annotations.Api; import io.swagger.annotations.ApiOperation; import io.swagger.annotations.ApiParam; +import io.swagger.models.auth.In; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.http.HttpStatus; import org.springframework.web.bind.annotation.PostMapping; @@ -36,7 +39,10 @@ public class ProductCenter { @PostMapping("selectFundProduct") @ApiOperation("基金产品查询") @AnonymousAccess - public ResultEntity> selectFundProduct(@RequestParam(required = false) String param) { + public ResultEntity> selectFundProduct(@RequestParam(required = false) String param, + @RequestParam Integer index, + @RequestParam Integer size) { + PageHelper.startPage(index, size); FundProductExample example = new FundProductExample(); if (param != null) { FundProductExample.Criteria criteria1 = example.createCriteria(); @@ -51,20 +57,26 @@ public class ProductCenter { } example.setOrderByClause("update_date asc"); List fundProducts = fundProductMapper.selectByExample(example); - return new ResultEntity<>(HttpStatus.OK, "基金产品查询成功", fundProducts); + PageInfo pageInfo = new PageInfo<>(fundProducts); + return new ResultEntity<>(HttpStatus.OK, "基金产品查询成功!", pageInfo); + } @PostMapping("selectBankDeposits") @ApiOperation("银行储蓄查询") @AnonymousAccess - public ResultEntity> selectBankDeposits(@RequestParam(required = false) String bankName, @RequestParam String schoolId) { + public ResultEntity> selectBankDeposits(@RequestParam(required = false) String bankName, @RequestParam String schoolId, + @RequestParam Integer index, + @RequestParam Integer size) { + PageHelper.startPage(index, size); BankDepositsExample example = new BankDepositsExample(); BankDepositsExample.Criteria criteria = example.createCriteria(); if (bankName != null) { criteria.andBankNameLike("%" + bankName + "%"); } List bankDepositsList = bankDepositsMapper.selectByExample(example); - return new ResultEntity<>(HttpStatus.OK, "银行储蓄查询成功", bankDepositsList); + PageInfo pageInfo = new PageInfo<>(bankDepositsList); + return new ResultEntity<>(HttpStatus.OK, "银行储蓄查询成功!", pageInfo); } @PostMapping("updateBankDeposits") @@ -79,7 +91,10 @@ public class ProductCenter { @PostMapping("selectP2PProduct") @ApiOperation("P2P产品查询") @AnonymousAccess - public ResultEntity> selectP2PProduct(@RequestParam(required = false) String productName) { + public ResultEntity> selectP2PProduct(@RequestParam(required = false) String productName, + @RequestParam Integer index, + @RequestParam Integer size) { + PageHelper.startPage(index, size); p2pProductExample example = new p2pProductExample(); if (productName != null) { p2pProductExample.Criteria criteria = example.createCriteria(); @@ -87,25 +102,32 @@ public class ProductCenter { } example.setOrderByClause("update_time asc"); List p2pProducts = p2pProductMapper.selectByExample(example); - return new ResultEntity<>(HttpStatus.OK, "P2P产品查询成功", p2pProducts); + PageInfo pageInfo = new PageInfo<>(p2pProducts); + return new ResultEntity<>(HttpStatus.OK, "P2P产品查询成功!", pageInfo); } @PostMapping("selectRealGoldProduct") @ApiOperation("实务黄金查询") @AnonymousAccess - public ResultEntity> selectRealGoldProduct() { + public ResultEntity> selectRealGoldProduct(@RequestParam Integer index, + @RequestParam Integer size) { + PageHelper.startPage(index, size); RealGoldProductExample example = new RealGoldProductExample(); example.setOrderByClause("trading_day asc"); List realGoldProducts = realGoldProductMapper.selectByExample(example); - return new ResultEntity<>(HttpStatus.OK, "实务黄金查询成功", realGoldProducts); + PageInfo pageInfo = new PageInfo<>(realGoldProducts); + return new ResultEntity<>(HttpStatus.OK, "实务黄金查询成功!", pageInfo); } @PostMapping("selectInsurancePro") @ApiOperation("保险产品查询") @AnonymousAccess - public ResultEntity> selectInsurancePro(@ApiParam("保险子类") @RequestParam(required = false) String kind, - @ApiParam("搜索参数") @RequestParam(required = false) String name) { + public ResultEntity> selectInsurancePro(@ApiParam("保险子类") @RequestParam(required = false) String kind, + @ApiParam("搜索参数") @RequestParam(required = false) String name, + @RequestParam Integer index, + @RequestParam Integer size) { + PageHelper.startPage(index, size); InsuranceProExample example = new InsuranceProExample(); InsuranceProExample.Criteria criteria = example.createCriteria(); if (kind != null) { @@ -115,7 +137,8 @@ public class ProductCenter { criteria.andNameLike("%" + name + "%"); } List insurancePros = insuranceProMapper.selectByExample(example); - return new ResultEntity<>(HttpStatus.OK, "保险产品查询成功", insurancePros); + PageInfo pageInfo = new PageInfo<>(insurancePros); + return new ResultEntity<>(HttpStatus.OK, "保险产品查询成功!", pageInfo); } diff --git a/src/main/java/com/sztzjy/money_management/service/impl/ScoreRankServiceImpl.java b/src/main/java/com/sztzjy/money_management/service/impl/ScoreRankServiceImpl.java index 4f30495..c6321b8 100644 --- a/src/main/java/com/sztzjy/money_management/service/impl/ScoreRankServiceImpl.java +++ b/src/main/java/com/sztzjy/money_management/service/impl/ScoreRankServiceImpl.java @@ -11,6 +11,7 @@ import java.math.BigDecimal; import java.time.*; import java.time.format.DateTimeFormatter; import java.util.*; +import java.util.stream.Collectors; @Service public class ScoreRankServiceImpl implements ScoreRankService { @@ -33,13 +34,12 @@ public class ScoreRankServiceImpl implements ScoreRankService { @Autowired StuTheoryRecordMapper stuTheoryRecordMapper; - //***** 未设置排名,未将数据保存到数据库 设置班级名称 @Override public Boolean doRank() { //先查询userInfo表 获取所有学校ID List schoolIdList = userInfoMapper.selectAllSchoolIds(); - List scoreRankList=new ArrayList<>(); for (int i = 0; i < schoolIdList.size(); i++) { + List scoreRankList=new ArrayList<>(); String schoolId = schoolIdList.get(i); //根据学校ID 获取所有学生userId UserInfoExample userInfoExample = new UserInfoExample(); @@ -58,6 +58,7 @@ public class ScoreRankServiceImpl implements ScoreRankService { scoreRank.setName(userInfo.getName()); scoreRank.setStudentId(userInfo.getStudentId()); scoreRank.setClassId(userInfo.getClassId()); + scoreRank.setClassName(userInfo.getClassName()); scoreRank.setSchoolId(userInfo.getSchoolId()); //设置更新日期 年月日 @@ -156,8 +157,47 @@ public class ScoreRankServiceImpl implements ScoreRankService { } scoreRankList.add(scoreRank); } - } + //总排名排序 + List totalSortedList = scoreRankList.stream() + .sorted((o1, o2) -> o2.getTotalScore().compareTo(o1.getTotalScore())) + .collect(Collectors.toList()); + + for (int j = 0; j < totalSortedList.size(); j++) { + totalSortedList.get(j).setTotalRank(j+1); + } + + //客户案例排序 + List khanSortedList = totalSortedList.stream() + .sorted((o1, o2) -> o2.getKhalScore().compareTo(o1.getKhalScore())) + .collect(Collectors.toList()); + + for (int j = 0; j < khanSortedList.size(); j++) { + khanSortedList.get(j).setKhalRank(j+1); + } + + //综合规划排序 + List zhghSortedList = khanSortedList.stream() + .sorted((o1, o2) -> o2.getZhghScore().compareTo(o1.getZhghScore())) + .collect(Collectors.toList()); + for (int j = 0; j < zhghSortedList.size(); j++) { + zhghSortedList.get(j).setKhalRank(j+1); + } + + //理论考核排序 + List llkhSortedList = zhghSortedList.stream() + .sorted((o1, o2) -> o2.getLlkhScore().compareTo(o1.getLlkhScore())) + .collect(Collectors.toList()); + + for (int j = 0; j < llkhSortedList.size(); j++) { + llkhSortedList.get(j).setKhalRank(j+1); + } + + //保存到数据库 + for (int j = 0; j < llkhSortedList.size(); j++) { + scoreRankMapper.insert(llkhSortedList.get(j)); + } + } return true; }