anderx 1 год назад
Родитель
Сommit
74a93f8808

+ 19 - 8
src/main/java/com/goafanti/techproject/service/impl/TaskDetailsServiceImpl.java

@@ -128,20 +128,31 @@ public class TaskDetailsServiceImpl extends BaseMybatisDao<TaskDetailsMapper> im
             int year = now.getYear();
             List<TaskAnnualReport> taskAnnualReports = taskAnnualReportMapper.selectThreeYear(taskDetails.getTid(), year);
             if (taskAnnualReports.size()==2){
-                BigDecimal threeYearsRdSalesAmount = rdSalesAmount;
-                BigDecimal threeYearsRdBudget = rdBudget;
-                for (TaskAnnualReport e : taskAnnualReports) {
-                    threeYearsRdBudget.add(e.getResearchAmount());
-                    threeYearsRdSalesAmount.add(e.getSalesAmount());
-                }
-                BigDecimal res2 = threeYearsRdBudget.divide(threeYearsRdSalesAmount, 4, RoundingMode.HALF_UP).multiply(new BigDecimal(100));
-               taskDetails.setThreeYearsRdBudgetRate(res2.doubleValue());
+                BigDecimal res2 = getBigDecimal(rdSalesAmount, rdBudget, taskAnnualReports);
+                taskDetails.setThreeYearsRdBudgetRate(res2.doubleValue());
             }
 
         }
+        //计算实际研发占比
+        if(taskDetails.getActualRdNumber() !=null ||
+                taskDetails.getActualRdAmount() !=null){
+            BigDecimal actualRdNumber = BigDecimal.valueOf(taskDetails.getActualRdNumber());
+            BigDecimal actualRdAmount = taskDetails.getActualRdAmount();
+            BigDecimal res = actualRdNumber.divide(actualRdAmount, 4, RoundingMode.HALF_UP).multiply(new BigDecimal(100));
+                }
 
     }
 
+    private BigDecimal getBigDecimal(BigDecimal rdSalesAmount, BigDecimal rdBudget, List<TaskAnnualReport> taskAnnualReports) {
+        BigDecimal threeYearsRdSalesAmount = rdSalesAmount;
+        BigDecimal threeYearsRdBudget = rdBudget;
+        for (TaskAnnualReport e : taskAnnualReports) {
+            threeYearsRdBudget=threeYearsRdBudget.add(e.getResearchAmount());
+            threeYearsRdSalesAmount=threeYearsRdSalesAmount.add(e.getSalesAmount());
+        }
+        return threeYearsRdBudget.divide(threeYearsRdSalesAmount, 4, RoundingMode.HALF_UP).multiply(new BigDecimal(100));
+    }
+
     /**
      * 修改数据
      *