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