108 lines
4.9 KiB
Java
108 lines
4.9 KiB
Java
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.WorkerHealthyHistory;
|
|
import com.zhgd.xmgl.modules.worker.entity.WorkerInfo;
|
|
import com.zhgd.xmgl.modules.worker.mapper.WorkerHealthyHistoryMapper;
|
|
import com.zhgd.xmgl.modules.worker.mapper.WorkerInfoMapper;
|
|
import com.zhgd.xmgl.modules.worker.service.IProjectCloseManageAnalysisService;
|
|
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 10:45
|
|
**/
|
|
@Log4j
|
|
@Component
|
|
public class ManageAnalysisTask {
|
|
@Autowired
|
|
private IProjectCloseManageAnalysisService projectCloseManageAnalysisService;
|
|
@Autowired
|
|
private ProjectMapper projectMapper;
|
|
@Autowired
|
|
private WorkerHealthyHistoryMapper workerHealthyHistoryMapper;
|
|
@Autowired
|
|
private WorkerInfoMapper workerInfoMapper;
|
|
/**
|
|
* 管理进出分析
|
|
*/
|
|
@SchedulerLock(name = "getManageAnalysisTask", lockAtMostFor = 1000*60*60, lockAtLeastFor = 1000*60*5)
|
|
@Scheduled(cron = "0 10 0 * * ?")
|
|
public void getManageAnalysisTask(){
|
|
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<ProjectCloseManageAnalysis> queryWrapper1=new QueryWrapper<>();
|
|
queryWrapper1.lambda().eq(ProjectCloseManageAnalysis::getQueryTime,queryTime);
|
|
projectCloseManageAnalysisService.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<ProjectCloseManageAnalysis> dataList = projectCloseManageAnalysisService.getProjectCloseManageAnalysisData(param);
|
|
projectCloseManageAnalysisService.saveBatch(dataList);
|
|
}
|
|
}
|
|
} catch (Exception e) {
|
|
log.error("管理进出分析失败", e);
|
|
}
|
|
}
|
|
@SchedulerLock(name = "workerHealthTask", lockAtMostFor = 1000*60*60, lockAtLeastFor = 1000*60*5)
|
|
@Scheduled(cron = "0 10 0 * * ?")
|
|
public void workerHealthTask(){
|
|
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<WorkerHealthyHistory> queryWrapper1=new QueryWrapper<>();
|
|
queryWrapper1.lambda().eq(WorkerHealthyHistory::getDate,queryTime);
|
|
workerHealthyHistoryMapper.delete(queryWrapper1);
|
|
Map<String, Object> param=new HashMap<>();
|
|
param.put("queryTime",queryTime);
|
|
if(list!=null&&list.size()>0){
|
|
for (Project project:list) {
|
|
QueryWrapper<WorkerInfo> infoQueryWrapper=new QueryWrapper<>();
|
|
infoQueryWrapper.lambda().eq(WorkerInfo::getProjectSn,project.getProjectSn())
|
|
.eq(WorkerInfo::getInserviceType,1);
|
|
List<WorkerInfo> infoList=workerInfoMapper.selectList(infoQueryWrapper);
|
|
if(infoList!=null&&infoList.size()>0){
|
|
for (WorkerInfo workerInfo:infoList){
|
|
WorkerHealthyHistory workerHealthyHistory=new WorkerHealthyHistory();
|
|
workerHealthyHistory.setWorkerId(workerInfo.getId());
|
|
workerHealthyHistory.setCodeState(workerInfo.getCodeState());
|
|
workerHealthyHistory.setDate(date);
|
|
workerHealthyHistoryMapper.insert(workerHealthyHistory);
|
|
}
|
|
}
|
|
}
|
|
}
|
|
} catch (Exception e) {
|
|
log.error("管理进出分析失败", e);
|
|
}
|
|
}
|
|
}
|