|
|
@@ -42,7 +42,10 @@ public class TaskDetailsServiceImpl extends BaseMybatisDao<TaskDetailsMapper> im
|
|
|
@Resource
|
|
|
private TOrderTaskMapper tOrderTaskMapper;
|
|
|
@Resource
|
|
|
- private TaskAnnualReportMapper taskAnnualReportMapper;
|
|
|
+ private TaskFeatureMapper taskFeatureMapper;
|
|
|
+ @Resource
|
|
|
+ private TaskFeatureLogMapper taskFeatureLogMapper;
|
|
|
+
|
|
|
|
|
|
|
|
|
@Value(value = "${upload.path}")
|
|
|
@@ -133,7 +136,7 @@ public class TaskDetailsServiceImpl extends BaseMybatisDao<TaskDetailsMapper> im
|
|
|
* @return 实例对象
|
|
|
*/
|
|
|
@Override
|
|
|
- public TaskDetails insert(TaskDetails taskDetails) {
|
|
|
+ public TaskDetails insert(TaskDetails taskDetails,TaskFeature taskFeature) {
|
|
|
TOrderNew tOrderNew =tOrderNewMapper.selectByTid(taskDetails.getTid());
|
|
|
taskDetails.setUid(tOrderNew.getBuyerId());
|
|
|
taskDetails.setCreateTime(new Date());
|
|
|
@@ -141,19 +144,28 @@ public class TaskDetailsServiceImpl extends BaseMybatisDao<TaskDetailsMapper> im
|
|
|
//数据计算
|
|
|
countTaskDetails(taskDetails);
|
|
|
this.taskDetailsMapper.insert(taskDetails);
|
|
|
- addTaskDetailsLog(taskDetails);
|
|
|
+ taskFeature.setId(taskDetails.getId());
|
|
|
+ this.taskFeatureMapper.insert(taskFeature);
|
|
|
+ addTaskDetailsLog(taskDetails,taskFeature);
|
|
|
return taskDetails;
|
|
|
}
|
|
|
|
|
|
- private void addTaskDetailsLog(TaskDetails taskDetails) {
|
|
|
+ private void addTaskDetailsLog(TaskDetails taskDetails,TaskFeature taskFeature) {
|
|
|
+ Admin adminToken = TokenManager.getAdminToken();
|
|
|
TaskDetailsLog log=new TaskDetailsLog();
|
|
|
BeanUtils.copyProperties(taskDetails, log);
|
|
|
log.setTdid(taskDetails.getId());
|
|
|
log.setId(null);
|
|
|
- Admin adminToken = TokenManager.getAdminToken();
|
|
|
log.setAid(adminToken.getId());
|
|
|
log.setAname(adminToken.getName());
|
|
|
taskDetailsLogMapper.insert(log);
|
|
|
+ TaskFeatureLog tfLog = new TaskFeatureLog();
|
|
|
+ BeanUtils.copyProperties(taskFeature, tfLog);
|
|
|
+ tfLog.setTdlId(log.getId());
|
|
|
+ tfLog.setId(null);
|
|
|
+ tfLog.setAid(adminToken.getId());
|
|
|
+ tfLog.setAname(adminToken.getName());
|
|
|
+ taskFeatureLogMapper.insert(tfLog);
|
|
|
}
|
|
|
|
|
|
private void countTaskDetails(TaskDetails taskDetails) {
|
|
|
@@ -167,48 +179,37 @@ public class TaskDetailsServiceImpl extends BaseMybatisDao<TaskDetailsMapper> im
|
|
|
}
|
|
|
//计算年度研发占比
|
|
|
//计算三年度的研发占比
|
|
|
- List<TaskAnnualReport> taskAnnualReports = taskAnnualReportMapper.selectThreeYear(taskDetails.getTid(), null);
|
|
|
- if(taskDetails.getRdBudget() !=null ||
|
|
|
- taskDetails.getRdSalesAmount() !=null){
|
|
|
BigDecimal rdBudget = taskDetails.getRdBudget();
|
|
|
BigDecimal rdSalesAmount = taskDetails.getRdSalesAmount();
|
|
|
BigDecimal res = rdBudget.divide(rdSalesAmount, 4, RoundingMode.HALF_UP).multiply(new BigDecimal(100));
|
|
|
taskDetails.setRdBudgetRate(res.doubleValue());
|
|
|
//计算三年度的研发占比
|
|
|
- if (taskAnnualReports.size()==2){
|
|
|
- BigDecimal res2 = getBigDecimal(rdSalesAmount, rdBudget, taskAnnualReports);
|
|
|
- taskDetails.setThreeYearsRdBudgetRate(res2.doubleValue());
|
|
|
- }
|
|
|
-
|
|
|
-
|
|
|
- }
|
|
|
+ BigDecimal res2 = getBigDecimal(rdSalesAmount, rdBudget, taskDetails);
|
|
|
+ taskDetails.setThreeYearsRdBudgetRate(res2.doubleValue());
|
|
|
//计算实际研发占比
|
|
|
- if(taskDetails.getActualRdNumber() !=null ||
|
|
|
+ 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));
|
|
|
- taskDetails.setActualRdRate(res.doubleValue());
|
|
|
- if (taskAnnualReports.size()==2){
|
|
|
- BigDecimal res2 = getBigDecimal(actualRdAmount, actualRdNumber, taskAnnualReports);
|
|
|
- taskDetails.setThreeYearsActualRdRate(res2.doubleValue());
|
|
|
- }
|
|
|
+ BigDecimal res3 = actualRdNumber.divide(actualRdAmount, 4, RoundingMode.HALF_UP).multiply(new BigDecimal(100));
|
|
|
+ taskDetails.setActualRdRate(res3.doubleValue());
|
|
|
+ BigDecimal res4 = getBigDecimal(actualRdAmount, actualRdNumber, taskDetails);
|
|
|
+ taskDetails.setThreeYearsActualRdRate(res4.doubleValue());
|
|
|
+
|
|
|
}
|
|
|
//计算立项资料占比
|
|
|
if (taskDetails.getProjectApprovalWriteNumber()!=null){
|
|
|
BigDecimal projectApprovalWriteNumber = BigDecimal.valueOf(taskDetails.getProjectApprovalWriteNumber());
|
|
|
- BigDecimal res = projectApprovalWriteNumber.divide(new BigDecimal(taskDetails.getProjectApprovalNumber()), 4, RoundingMode.HALF_UP).multiply(new BigDecimal(100));
|
|
|
- taskDetails.setProjectApprovalWriteRate(res.doubleValue());
|
|
|
+ BigDecimal res5 = projectApprovalWriteNumber.divide(new BigDecimal(taskDetails.getProjectApprovalNumber()), 4, RoundingMode.HALF_UP).multiply(new BigDecimal(100));
|
|
|
+ taskDetails.setProjectApprovalWriteRate(res5.doubleValue());
|
|
|
}
|
|
|
}
|
|
|
|
|
|
- private BigDecimal getBigDecimal(BigDecimal rdSalesAmount, BigDecimal rdBudget, List<TaskAnnualReport> taskAnnualReports) {
|
|
|
+ private BigDecimal getBigDecimal(BigDecimal rdSalesAmount, BigDecimal rdBudget, TaskDetails taskDetails) {
|
|
|
BigDecimal threeYearsRdSalesAmount = rdSalesAmount;
|
|
|
BigDecimal threeYearsRdBudget = rdBudget;
|
|
|
- for (TaskAnnualReport e : taskAnnualReports) {
|
|
|
- threeYearsRdBudget=threeYearsRdBudget.add(e.getResearchAmount());
|
|
|
- threeYearsRdSalesAmount=threeYearsRdSalesAmount.add(e.getSalesAmount());
|
|
|
- }
|
|
|
+ threeYearsRdSalesAmount = threeYearsRdSalesAmount.add(taskDetails.getLastRdSalesAmount()).add(taskDetails.getBeforeLastRdSalesAmount());
|
|
|
+ threeYearsRdBudget = threeYearsRdBudget.add(taskDetails.getLastRdBudget()).add(taskDetails.getBeforeLastRdBudget());
|
|
|
return threeYearsRdBudget.divide(threeYearsRdSalesAmount, 4, RoundingMode.HALF_UP).multiply(new BigDecimal(100));
|
|
|
}
|
|
|
|
|
|
@@ -216,15 +217,16 @@ public class TaskDetailsServiceImpl extends BaseMybatisDao<TaskDetailsMapper> im
|
|
|
* 修改数据
|
|
|
*
|
|
|
* @param taskDetails 实例对象
|
|
|
+ * @param taskFeature
|
|
|
* @return 实例对象
|
|
|
*/
|
|
|
@Override
|
|
|
- public TaskDetails update(TaskDetails taskDetails) {
|
|
|
+ public TaskDetails update(TaskDetails taskDetails, TaskFeature taskFeature) {
|
|
|
taskDetails.setUpdateTime(new Date());
|
|
|
this.taskDetailsMapper.update(taskDetails);
|
|
|
countTaskDetails(taskDetails);
|
|
|
TaskDetails res = this.queryById(taskDetails.getId());
|
|
|
- addTaskDetailsLog(res);
|
|
|
+ addTaskDetailsLog(res,taskFeature);
|
|
|
return res;
|
|
|
}
|
|
|
|
|
|
@@ -263,4 +265,17 @@ public class TaskDetailsServiceImpl extends BaseMybatisDao<TaskDetailsMapper> im
|
|
|
TaskDetails res = taskDetailsMapper.selectByTid(taskDetails.getTid());
|
|
|
return res != null;
|
|
|
}
|
|
|
+
|
|
|
+ @Override
|
|
|
+ public TaskFeature addFeature(TaskFeature in) {
|
|
|
+ in.setCreateTime(new Date());
|
|
|
+ taskFeatureMapper.insert(in);
|
|
|
+ return in;
|
|
|
+ }
|
|
|
+
|
|
|
+ @Override
|
|
|
+ public TaskFeature updateFeature(TaskFeature in) {
|
|
|
+ taskFeatureMapper.update(in);
|
|
|
+ return taskFeatureMapper.selectById(in.getId());
|
|
|
+ }
|
|
|
}
|