package com.cloudroam.task;
|
|
import com.cloudroam.bo.ProjectStatisticsBO;
|
import com.cloudroam.dto.projectInfo.QueryProjectInfoDTO;
|
import com.cloudroam.model.ProjectInfoDO;
|
import com.cloudroam.service.ProjectDailyService;
|
import com.cloudroam.service.ProjectInfoService;
|
import org.springframework.beans.factory.annotation.Autowired;
|
import org.springframework.scheduling.annotation.Scheduled;
|
import org.springframework.stereotype.Component;
|
|
import java.util.List;
|
import java.util.Objects;
|
|
/**
|
* 每个小时统计一次已经确认过的工时
|
*/
|
@Component
|
public class PmsStatisticsProjectActualHourTask {
|
|
@Autowired
|
private ProjectDailyService projectDailyService;
|
|
@Autowired
|
private ProjectInfoService projectInfoService;
|
// @Scheduled(cron ="0 0 * * * *")
|
// @Scheduled(fixedRate = 5000)
|
// @Scheduled(cron ="0 0 * * * *")
|
// @Scheduled(fixedRate = 60000)
|
// @Scheduled(fixedRate = 60000)
|
@Scheduled(fixedRate = 60*1000)
|
public void statisticsActualHour(){
|
|
QueryProjectInfoDTO dto=new QueryProjectInfoDTO();
|
List<ProjectInfoDO> projectInfoList = projectInfoService.getProjectInfoList(dto);
|
projectInfoList.forEach(projectInfoDO -> {
|
if(projectInfoDO.getProjectName().equals("产品化转型")){
|
System.out.println("断点");
|
}
|
List<ProjectStatisticsBO> actualHoursStatistic = projectDailyService.getActualHoursStatistic(projectInfoDO.getId());
|
if(null!=actualHoursStatistic && actualHoursStatistic.size()>0){
|
ProjectStatisticsBO projectStatisticsBO = actualHoursStatistic.get(0);
|
// 更新到项目中
|
ProjectInfoDO updateStatisticsProjectDO =new ProjectInfoDO();
|
updateStatisticsProjectDO.setId(projectInfoDO.getId());
|
updateStatisticsProjectDO.setDailyHours(projectStatisticsBO.getActualHours());
|
if(!Objects.isNull(projectInfoDO.getBaseHours())&&!Objects.isNull(projectStatisticsBO.getActualHours())){
|
updateStatisticsProjectDO.setActualHours(projectInfoDO.getBaseHours().add(projectStatisticsBO.getActualHours()));
|
}else if(!Objects.isNull(projectInfoDO.getBaseHours())&&Objects.isNull(projectStatisticsBO.getActualHours())){
|
updateStatisticsProjectDO.setActualHours(projectInfoDO.getBaseHours());
|
}else if(Objects.isNull(projectInfoDO.getBaseHours())&&!Objects.isNull(projectStatisticsBO.getActualHours())){
|
updateStatisticsProjectDO.setActualHours(projectStatisticsBO.getActualHours());
|
}
|
|
// if(Objects.nonNull(projectStatisticsBO.getEstimatedHours())){
|
// // 预估工时统计
|
// updateStatisticsProjectDO.setEstimatedHours(projectStatisticsBO.getEstimatedHours());
|
// }
|
|
if(null!=projectStatisticsBO.getActualHours()){
|
projectInfoService.updateById(updateStatisticsProjectDO);
|
}
|
|
}
|
});
|
|
|
|
}
|
}
|