2 changed files with 0 additions and 125 deletions
@ -1,21 +0,0 @@ |
|||||
package com.epmet.service.evaluationindex.extract.todata; |
|
||||
|
|
||||
import com.epmet.dto.extract.form.ExtractOriginFormDTO; |
|
||||
|
|
||||
/** |
|
||||
* @Desc 业务数据抽取 - 项目节点历时 |
|
||||
* @Author wangc |
|
||||
* @DateTime 2020/9/14 5:07 下午 |
|
||||
*/ |
|
||||
public interface ProjectPeriodExtractService { |
|
||||
|
|
||||
/** |
|
||||
* @param param |
|
||||
* @return |
|
||||
* @Description 抽取项目节点历时逻辑 |
|
||||
* @author wangc |
|
||||
* @date 2020.09.17 14:05 |
|
||||
**/ |
|
||||
void extractProjectPeriodData(ExtractOriginFormDTO param); |
|
||||
|
|
||||
} |
|
@ -1,104 +0,0 @@ |
|||||
package com.epmet.service.evaluationindex.extract.todata.impl; |
|
||||
|
|
||||
import com.epmet.commons.tools.constant.NumConstant; |
|
||||
import com.epmet.commons.tools.utils.ConvertUtils; |
|
||||
import com.epmet.commons.tools.utils.DateUtils; |
|
||||
import com.epmet.dao.evaluationindex.extract.FactOriginProjectOrgPeriodDailyDao; |
|
||||
import com.epmet.dto.extract.form.ExtractOriginFormDTO; |
|
||||
import com.epmet.dto.project.result.ProjectOrgPeriodResultDTO; |
|
||||
import com.epmet.entity.evaluationindex.extract.FactOriginProjectOrgPeriodDailyEntity; |
|
||||
import com.epmet.service.evaluationindex.extract.todata.ProjectPeriodExtractService; |
|
||||
import com.epmet.service.project.ProjectProcessService; |
|
||||
import lombok.extern.slf4j.Slf4j; |
|
||||
import org.apache.commons.lang3.StringUtils; |
|
||||
import org.springframework.beans.factory.annotation.Autowired; |
|
||||
import org.springframework.stereotype.Service; |
|
||||
import org.springframework.util.CollectionUtils; |
|
||||
|
|
||||
import java.text.SimpleDateFormat; |
|
||||
import java.util.Date; |
|
||||
import java.util.LinkedList; |
|
||||
import java.util.List; |
|
||||
import java.util.stream.Collectors; |
|
||||
|
|
||||
/** |
|
||||
* @Description 业务数据抽取 - 项目节点历时 |
|
||||
* @ClassName ProjectPeriodExtractServiceImpl |
|
||||
* @Auth wangc |
|
||||
* @Date 2020-09-17 13:52 |
|
||||
*/ |
|
||||
@Service |
|
||||
@Slf4j |
|
||||
public class ProjectPeriodExtractServiceImpl implements ProjectPeriodExtractService { |
|
||||
|
|
||||
@Autowired |
|
||||
private FactOriginProjectOrgPeriodDailyDao factOriginProjectOrgPeriodDailyDao; |
|
||||
@Autowired |
|
||||
private ProjectProcessService projectProcessService; |
|
||||
|
|
||||
/** |
|
||||
* @param param |
|
||||
* @return |
|
||||
* @Description 抽取项目节点历时逻辑 |
|
||||
* @author wangc |
|
||||
* @date 2020.09.17 14:05 |
|
||||
**/ |
|
||||
@Override |
|
||||
public void extractProjectPeriodData(ExtractOriginFormDTO param) { |
|
||||
int trace = factOriginProjectOrgPeriodDailyDao.selectIfExisted(param.getCustomerId()); |
|
||||
Boolean isFirst = trace <= NumConstant.ZERO ? true : false; |
|
||||
if (StringUtils.isBlank(param.getDateId())) { |
|
||||
Date yesterday = new Date(System.currentTimeMillis() - 1000 * 60 * 60 * 24); |
|
||||
SimpleDateFormat format = new SimpleDateFormat(DateUtils.DATE_PATTERN_YYYYMMDD); |
|
||||
param.setDateId(format.format(yesterday)); |
|
||||
} |
|
||||
List<ProjectOrgPeriodResultDTO> extractData = |
|
||||
projectProcessService.getProjectPeriod(isFirst, param.getCustomerId(), param.getDateId()); |
|
||||
List<FactOriginProjectOrgPeriodDailyEntity> formattingData = new LinkedList<>(); |
|
||||
extractData.forEach(original -> { |
|
||||
FactOriginProjectOrgPeriodDailyEntity dest |
|
||||
= ConvertUtils.sourceToTarget(original,FactOriginProjectOrgPeriodDailyEntity.class); |
|
||||
if(StringUtils.isNotBlank(original.getDepartmentId())){ |
|
||||
dest.setOrgType("dept"); |
|
||||
dest.setPid(original.getOrgId()); |
|
||||
dest.setPids(original.getOrgIdPath()); |
|
||||
}else if(StringUtils.isNotBlank(original.getGridId())){ |
|
||||
dest.setOrgType("grid"); |
|
||||
dest.setPid(original.getOrgId()); |
|
||||
dest.setPids(original.getOrgIdPath()); |
|
||||
}else{ |
|
||||
dest.setOrgType("agency"); |
|
||||
dest.setPids(""); |
|
||||
String[] array = original.getOrgIdPath().split(":"); |
|
||||
if(null == array || array.length <= NumConstant.ZERO){ |
|
||||
dest.setPid(NumConstant.ZERO_STR); |
|
||||
} |
|
||||
if(array[NumConstant.ZERO] == original.getOrgId() && array.length == NumConstant.ONE){ |
|
||||
dest.setPid(NumConstant.ZERO_STR); |
|
||||
} |
|
||||
if(array.length > NumConstant.ONE && original.getOrgId() == array[array.length - NumConstant.ONE]){ |
|
||||
dest.setPid(array[array.length - NumConstant.TWO]); |
|
||||
dest.setPids(original.getOrgIdPath().replace(original.getOrgId(),"")); |
|
||||
} |
|
||||
if(StringUtils.isNotBlank(dest.getPids())){ |
|
||||
while(dest.getPids().endsWith(":")){ |
|
||||
dest.setPids(dest.getPids().substring(NumConstant.ZERO,dest.getPids().length() - NumConstant.ONE)); |
|
||||
} |
|
||||
while(dest.getPids().startsWith(":")){ |
|
||||
dest.setPids(dest.getPids().replaceFirst(":","")); |
|
||||
} |
|
||||
} |
|
||||
dest.setPids(dest.getPids().replaceAll(" ","")); |
|
||||
} |
|
||||
|
|
||||
formattingData.add(dest); |
|
||||
}); |
|
||||
if(!CollectionUtils.isEmpty(formattingData)) { |
|
||||
List<String> projectIds = formattingData.stream().map(FactOriginProjectOrgPeriodDailyEntity::getProjectId).distinct().collect(Collectors.toList()); |
|
||||
if (!CollectionUtils.isEmpty(projectIds)) { |
|
||||
factOriginProjectOrgPeriodDailyDao.deleteByProjectId(projectIds); |
|
||||
factOriginProjectOrgPeriodDailyDao.insertBatch(formattingData); |
|
||||
} |
|
||||
} |
|
||||
} |
|
||||
} |
|
Loading…
Reference in new issue