wisdomisite-java/src/main/java/com/zhgd/xmgl/task/EnterpriseWorkerStatisticsTask.java

67 lines
2.9 KiB
Java
Raw Normal View History

2023-02-16 15:28:15 +08:00
package com.zhgd.xmgl.task;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.zhgd.xmgl.modules.project.entity.Project;
import com.zhgd.xmgl.modules.project.mapper.ProjectMapper;
import com.zhgd.xmgl.modules.worker.entity.ProjectCloseManageAnalysis;
import com.zhgd.xmgl.modules.worker.entity.ProjectEnterpriseWorkerStatistics;
import com.zhgd.xmgl.modules.worker.service.IProjectCloseManageAnalysisService;
import com.zhgd.xmgl.modules.worker.service.IProjectEnterpriseWorkerStatisticsService;
import lombok.extern.log4j.Log4j;
import net.javacrumbs.shedlock.core.SchedulerLock;
import org.apache.commons.lang.time.DateUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.scheduling.annotation.Scheduled;
import org.springframework.stereotype.Component;
import java.text.SimpleDateFormat;
import java.util.Date;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
/**
* @program: wisdomSite
* @description:项目下的各企业的人员统计
* @author: Mr.Peng
* @create: 2022-04-18 17:07
**/
@Log4j
@Component
public class EnterpriseWorkerStatisticsTask {
@Autowired
private IProjectEnterpriseWorkerStatisticsService projectEnterpriseWorkerStatisticsService;
@Autowired
private ProjectMapper projectMapper;
/**
* 项目下的各企业的人员统计
*/
@SchedulerLock(name = "getWorkerStatisticsTask", lockAtMostFor = 1000*60*60, lockAtLeastFor = 1000*60*5)
// @Scheduled(cron = "0 10 0 * * ?")
@Scheduled(cron = "30 10 * * * ?")//每小时的10分30秒触发任务
public void getWorkerStatisticsTask(){
try {
SimpleDateFormat sft = new SimpleDateFormat("yyyy-MM-dd");
//计算前一天的考勤状况
Date date = DateUtils.addDays(new Date(), -1);
QueryWrapper<Project> queryWrapper=new QueryWrapper<>();
List<Project> list=projectMapper.selectList(queryWrapper);
String queryTime=sft.format(date);
QueryWrapper<ProjectEnterpriseWorkerStatistics> queryWrapper1=new QueryWrapper<>();
queryWrapper1.lambda().eq(ProjectEnterpriseWorkerStatistics::getQueryTime,queryTime);
projectEnterpriseWorkerStatisticsService.remove(queryWrapper1);
Map<String, Object> param=new HashMap<>();
param.put("queryTime",queryTime);
if(list!=null&&list.size()>0){
for (Project project:list) {
param.put("projectSn",project.getProjectSn());
List<ProjectEnterpriseWorkerStatistics> dataList = projectEnterpriseWorkerStatisticsService.getRealProjectEnterpriseStatisticsList(param);
projectEnterpriseWorkerStatisticsService.saveBatch(dataList);
}
}
} catch (Exception e) {
log.error("项目下的各企业的人员统计失败", e);
}
}
}