forked from rongchao/epmet-cloud-rizhao
18 changed files with 463 additions and 8 deletions
@ -0,0 +1,24 @@ |
|||||
|
package com.epmet.dto.project.result; |
||||
|
|
||||
|
import lombok.Data; |
||||
|
|
||||
|
import java.io.Serializable; |
||||
|
|
||||
|
/** |
||||
|
* @Description 客户项目超期相关参数 |
||||
|
* @ClassName ProjectExceedParamsResultDTO |
||||
|
* @Auth wangc |
||||
|
* @Date 2021-03-05 17:02 |
||||
|
*/ |
||||
|
@Data |
||||
|
public class ProjectExceedParamsResultDTO implements Serializable { |
||||
|
private static final long serialVersionUID = 7621539816482416776L; |
||||
|
|
||||
|
private Integer defaultExceedLimit; |
||||
|
|
||||
|
private Integer defaultAbout2ExceedLimit; |
||||
|
|
||||
|
private Integer exceedLimit; |
||||
|
|
||||
|
private Integer about2ExceedLimit; |
||||
|
} |
||||
@ -0,0 +1,27 @@ |
|||||
|
package com.epmet.service.evaluationindex.extract.toscreen; |
||||
|
|
||||
|
import com.epmet.dto.screen.form.ScreenCentralZoneDataFormDTO; |
||||
|
|
||||
|
/** |
||||
|
* @Description |
||||
|
* 给【screen_project_data】 |
||||
|
* 【screen_project_process_attachment】 |
||||
|
* 【screen_project_img_data】 |
||||
|
* 【screen_project_process】这四个表定时整理数据 |
||||
|
* @author wangc |
||||
|
* @date 2021.03.04 13:38 |
||||
|
*/ |
||||
|
|
||||
|
public interface ScreenProjectSettleService { |
||||
|
|
||||
|
|
||||
|
/** |
||||
|
* @Description 抽取项目数据到screen_project_* |
||||
|
* @param param |
||||
|
* @return void |
||||
|
* @author wangc |
||||
|
* @date 2021.03.04 23:09 |
||||
|
*/ |
||||
|
void extractScreenData(ScreenCentralZoneDataFormDTO param); |
||||
|
|
||||
|
} |
||||
@ -0,0 +1,91 @@ |
|||||
|
package com.epmet.service.evaluationindex.extract.toscreen.impl; |
||||
|
|
||||
|
import com.epmet.commons.tools.constant.NumConstant; |
||||
|
import com.epmet.dto.project.result.ProjectExceedParamsResultDTO; |
||||
|
import com.epmet.dto.screen.ScreenProjectDataDTO; |
||||
|
import com.epmet.dto.screen.form.ScreenCentralZoneDataFormDTO; |
||||
|
import com.epmet.entity.project.ProjectEntity; |
||||
|
import com.epmet.service.evaluationindex.extract.todata.FactOriginProjectMainDailyService; |
||||
|
import com.epmet.service.evaluationindex.extract.toscreen.ScreenProjectSettleService; |
||||
|
import com.epmet.service.evaluationindex.screen.ScreenProjectDataService; |
||||
|
import com.epmet.service.project.ProjectProcessService; |
||||
|
import com.epmet.service.project.ProjectService; |
||||
|
import org.apache.commons.lang3.StringUtils; |
||||
|
import org.springframework.beans.factory.annotation.Autowired; |
||||
|
import org.springframework.transaction.annotation.Transactional; |
||||
|
import org.springframework.util.CollectionUtils; |
||||
|
|
||||
|
import java.util.List; |
||||
|
import java.util.stream.Collector; |
||||
|
import java.util.stream.Collectors; |
||||
|
|
||||
|
/** |
||||
|
* @Description |
||||
|
* @ClassName ScreenProjectSettleServiceImpl |
||||
|
* @Auth wangc |
||||
|
* @Date 2021-03-04 23:10 |
||||
|
*/ |
||||
|
public class ScreenProjectSettleServiceImpl implements ScreenProjectSettleService { |
||||
|
|
||||
|
|
||||
|
@Autowired |
||||
|
private ScreenProjectDataService targetDbService; |
||||
|
@Autowired |
||||
|
private FactOriginProjectMainDailyService originMainService; |
||||
|
@Autowired |
||||
|
private ProjectService projectService; |
||||
|
@Autowired |
||||
|
private ProjectProcessService processService; |
||||
|
|
||||
|
/** |
||||
|
* @Description 抽取项目数据到screen_project_* |
||||
|
* @param param |
||||
|
* @return void |
||||
|
* @author wangc |
||||
|
* @date 2021.03.04 23:09 |
||||
|
*/ |
||||
|
@Override |
||||
|
@Transactional |
||||
|
public void extractScreenData(ScreenCentralZoneDataFormDTO param) { |
||||
|
int rows = targetDbService.checkIfExisted(param.getCustomerId()); |
||||
|
List<ProjectExceedParamsResultDTO> exceedParams = projectService.getProjectExceedParams(param.getCustomerId()); |
||||
|
Integer exceedLimit = NumConstant.FIVE; |
||||
|
Integer about2ExceedLimit = NumConstant.FIVE; |
||||
|
|
||||
|
|
||||
|
if(!CollectionUtils.isEmpty(exceedParams)){ |
||||
|
for(ProjectExceedParamsResultDTO ex :exceedParams){ |
||||
|
if(null != ex.getDefaultExceedLimit()){ |
||||
|
exceedLimit = null == ex.getExceedLimit() ? ex.getDefaultExceedLimit() : ex.getExceedLimit(); |
||||
|
} |
||||
|
if(null != ex.getDefaultAbout2ExceedLimit()){ |
||||
|
about2ExceedLimit = null == ex.getAbout2ExceedLimit() ? ex.getDefaultAbout2ExceedLimit() : ex.getDefaultAbout2ExceedLimit(); |
||||
|
} |
||||
|
} |
||||
|
|
||||
|
} |
||||
|
List<ScreenProjectDataDTO> metaData = |
||||
|
originMainService.initNewScreenProjectData(param.getCustomerId(), param.getDateId(),exceedLimit,about2ExceedLimit); |
||||
|
|
||||
|
if(!CollectionUtils.isEmpty(metaData)) { |
||||
|
List<ProjectEntity> info = projectService.getProjectInfo(metaData.stream().map(ScreenProjectDataDTO::getProjectId).collect(Collectors.toList())); |
||||
|
if(!CollectionUtils.isEmpty(info)){ |
||||
|
metaData.stream().flatMap(meta -> info.stream().filter(nature -> StringUtils.equals(meta.getProjectId(), |
||||
|
nature.getId())).map(projectInfo -> { |
||||
|
meta.setProjectCreateTime(projectInfo.getCreatedTime()); |
||||
|
meta.setProjectTitle(projectInfo.getTitle()); |
||||
|
return null; |
||||
|
})); |
||||
|
} |
||||
|
|
||||
|
} |
||||
|
ScreenProjectDataDTO orientCase = new ScreenProjectDataDTO(); |
||||
|
orientCase.setCustomerId(param.getCustomerId()); |
||||
|
//待更新的数据 需要检测更新的字段为:①projectStatusCode ②closeCaseTime ③allCategoryName ④projectLevel
|
||||
|
List<ScreenProjectDataDTO> orientData = |
||||
|
targetDbService.getPending(orientCase); |
||||
|
|
||||
|
|
||||
|
|
||||
|
} |
||||
|
} |
||||
Loading…
Reference in new issue