|
@@ -2,14 +2,18 @@ package com.galaxis.manatee.task;
|
|
|
|
|
|
import com.fasterxml.jackson.core.type.TypeReference;
|
|
import com.fasterxml.jackson.core.type.TypeReference;
|
|
import com.fasterxml.jackson.databind.ObjectMapper;
|
|
import com.fasterxml.jackson.databind.ObjectMapper;
|
|
|
|
+import com.galaxis.manatee.dao.ChuanyunGroupProjectDao;
|
|
import com.galaxis.manatee.dao.ChuanyunLogDao;
|
|
import com.galaxis.manatee.dao.ChuanyunLogDao;
|
|
|
|
+import com.galaxis.manatee.entity.chuanyun.data.object.ChuanyunGroupProjectDO;
|
|
import com.galaxis.manatee.entity.chuanyun.data.object.ChuanyunLogDO;
|
|
import com.galaxis.manatee.entity.chuanyun.data.object.ChuanyunLogDO;
|
|
import com.galaxis.manatee.entity.chuanyun.dto.Filter;
|
|
import com.galaxis.manatee.entity.chuanyun.dto.Filter;
|
|
import com.galaxis.manatee.manager.ChuanYunManager;
|
|
import com.galaxis.manatee.manager.ChuanYunManager;
|
|
import lombok.extern.slf4j.Slf4j;
|
|
import lombok.extern.slf4j.Slf4j;
|
|
import org.springframework.scheduling.annotation.Scheduled;
|
|
import org.springframework.scheduling.annotation.Scheduled;
|
|
import org.springframework.stereotype.Service;
|
|
import org.springframework.stereotype.Service;
|
|
|
|
+import org.springframework.util.StringUtils;
|
|
|
|
|
|
|
|
+import java.util.ArrayList;
|
|
import java.util.List;
|
|
import java.util.List;
|
|
|
|
|
|
/**
|
|
/**
|
|
@@ -21,47 +25,80 @@ import java.util.List;
|
|
@Service
|
|
@Service
|
|
public class ChuanyunHumanResourceScheduledTask {
|
|
public class ChuanyunHumanResourceScheduledTask {
|
|
|
|
|
|
- private final Integer pageSize=100;
|
|
|
|
|
|
+ private final Integer pageSize = 100;
|
|
private final ChuanYunManager chuanYunManager;
|
|
private final ChuanYunManager chuanYunManager;
|
|
private final ChuanyunLogDao chuanyunLogDao;
|
|
private final ChuanyunLogDao chuanyunLogDao;
|
|
|
|
+ private final ChuanyunGroupProjectDao chuanyunGroupProjectDao;
|
|
|
|
|
|
- public ChuanyunHumanResourceScheduledTask(ChuanYunManager chuanYunManager, ChuanyunLogDao chuanyunLogDao) {
|
|
|
|
|
|
+ public ChuanyunHumanResourceScheduledTask(ChuanYunManager chuanYunManager, ChuanyunLogDao chuanyunLogDao, ChuanyunGroupProjectDao chuanyunGroupProjectDao) {
|
|
this.chuanYunManager = chuanYunManager;
|
|
this.chuanYunManager = chuanYunManager;
|
|
this.chuanyunLogDao = chuanyunLogDao;
|
|
this.chuanyunLogDao = chuanyunLogDao;
|
|
|
|
+ this.chuanyunGroupProjectDao = chuanyunGroupProjectDao;
|
|
}
|
|
}
|
|
|
|
|
|
-// @Scheduled(cron = "0 0 3 * * *")
|
|
|
|
|
|
+ // @Scheduled(cron = "0 0 3 * * *")
|
|
@Scheduled(fixedDelay = 1000000000L)
|
|
@Scheduled(fixedDelay = 1000000000L)
|
|
- private void updateLog(){
|
|
|
|
- var objectMapper=new ObjectMapper();
|
|
|
|
- var start=0;
|
|
|
|
- var totalCount=0L;
|
|
|
|
- var flag=true;
|
|
|
|
- while (flag){
|
|
|
|
|
|
+ private void updateLog() {
|
|
|
|
+ var objectMapper = new ObjectMapper();
|
|
|
|
+ var start = 0;
|
|
|
|
+ var totalCount = 0L;
|
|
|
|
+ var flag = true;
|
|
|
|
+ List<String> matchersString=new ArrayList<>();
|
|
|
|
+ matchersString.add("Status_2,1");
|
|
|
|
+ while (flag) {
|
|
try {
|
|
try {
|
|
//从氚云查询数据
|
|
//从氚云查询数据
|
|
- var filter= Filter.instance(start,start+pageSize,true);
|
|
|
|
- var chuanyunFindAllResponse=chuanYunManager.findAll(ChuanyunLogDO.SCHEMA_CODE,filter);
|
|
|
|
- if(chuanyunFindAllResponse.getReturnData()==null){
|
|
|
|
- flag=false;
|
|
|
|
|
|
+ var filter= Filter.instance(start,start+pageSize,true,Filter.AND,matchersString);
|
|
|
|
+ var chuanyunFindAllResponse = chuanYunManager.findAll(ChuanyunLogDO.SCHEMA_CODE, filter);
|
|
|
|
+ if (chuanyunFindAllResponse.getReturnData() == null) {
|
|
|
|
+ flag = false;
|
|
continue;
|
|
continue;
|
|
}
|
|
}
|
|
- if(chuanyunFindAllResponse.getReturnData().getTotalCount()>=start+pageSize){
|
|
|
|
- start+=pageSize;
|
|
|
|
- }else{
|
|
|
|
- flag=false;
|
|
|
|
|
|
+ if (chuanyunFindAllResponse.getReturnData().getTotalCount() >= start + pageSize) {
|
|
|
|
+ start += pageSize;
|
|
|
|
+ } else {
|
|
|
|
+ flag = false;
|
|
}
|
|
}
|
|
//转化为POJO
|
|
//转化为POJO
|
|
- List<ChuanyunLogDO> result=objectMapper.convertValue(chuanyunFindAllResponse.getReturnData().getBizObjectArray(), new TypeReference<>(){});
|
|
|
|
|
|
+ List<ChuanyunLogDO> result = objectMapper.convertValue(chuanyunFindAllResponse.getReturnData().getBizObjectArray(), new TypeReference<>() {
|
|
|
|
+ });
|
|
|
|
+ result.forEach(chuanyunLogDO -> {
|
|
|
|
+ if(chuanyunLogDO.getDayLogList()==null||chuanyunLogDO.getDayLogList().size()==0){
|
|
|
|
+ chuanyunLogDO.setDayLogList(new ArrayList<>());
|
|
|
|
+ log.warn(chuanyunLogDO+"");
|
|
|
|
+ log.warn("异常数据");
|
|
|
|
+ }else{
|
|
|
|
+ //如果有重复就删除
|
|
|
|
+ chuanyunLogDao.findById(chuanyunLogDO.getObjectId()).ifPresent(toDelete -> {
|
|
|
|
+ log.info("删除" + toDelete.getObjectId());
|
|
|
|
+ chuanyunLogDao.delete(toDelete);
|
|
|
|
+ });
|
|
|
|
+ //根据projectId获取code,如果是生产项目,则不用处理
|
|
|
|
+ //针对前期测试数据,可能出现日志为空的情况,跳过不处理
|
|
|
|
+ chuanyunLogDO.getDayLogList().forEach(chuanyunDayLog -> {
|
|
|
|
+ try{
|
|
|
|
+ if(!"生产项目".equals(chuanyunDayLog.getProjectType())&& StringUtils.isEmpty(chuanyunDayLog.getProjectId())){
|
|
|
|
+ log.info(chuanyunLogDO+"");
|
|
|
|
+ }else if(!"生产项目".equals(chuanyunDayLog.getProjectType())){
|
|
|
|
+ ChuanyunGroupProjectDO chuanyunGroupProjectDO=chuanyunGroupProjectDao.findById(chuanyunDayLog.getProjectId()).orElseThrow();
|
|
|
|
+ chuanyunDayLog.setProjectCode(chuanyunGroupProjectDO.getProjectCode());
|
|
|
|
+ }
|
|
|
|
+ }catch (Exception e){
|
|
|
|
+ e.printStackTrace();
|
|
|
|
+ log.warn(chuanyunDayLog+"");
|
|
|
|
+ }
|
|
|
|
+ });
|
|
|
|
+ }
|
|
|
|
+ });
|
|
//获取项目总数
|
|
//获取项目总数
|
|
- totalCount=chuanyunFindAllResponse.getReturnData().getTotalCount();
|
|
|
|
|
|
+ totalCount = chuanyunFindAllResponse.getReturnData().getTotalCount();
|
|
//保存
|
|
//保存
|
|
chuanyunLogDao.saveAll(result);
|
|
chuanyunLogDao.saveAll(result);
|
|
- }catch (Exception e){
|
|
|
|
|
|
+ } catch (Exception e) {
|
|
log.error(e.getMessage());
|
|
log.error(e.getMessage());
|
|
e.printStackTrace();
|
|
e.printStackTrace();
|
|
}
|
|
}
|
|
}
|
|
}
|
|
- log.info("日志信息保存"+totalCount);
|
|
|
|
|
|
+ log.info("日志信息保存" + totalCount);
|
|
}
|
|
}
|
|
}
|
|
}
|