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 projectInfoList = projectInfoService.getProjectInfoList(dto); projectInfoList.forEach(projectInfoDO -> { if(projectInfoDO.getProjectName().equals("产品化转型")){ System.out.println("断点"); } List 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); } } }); } }