| 
						
						
							
								
							
						
						
					 | 
				
				 | 
				
					@ -33,11 +33,11 @@ import com.epmet.constant.DataSourceConstant; | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					import com.epmet.dao.evaluationindex.screen.ScreenProjectDataDao; | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					import com.epmet.dao.evaluationindex.screen.ScreenProjectImgDataDao; | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					import com.epmet.dto.screen.ScreenProjectDataDTO; | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					import com.epmet.dto.screen.ScreenProjectImgDataDTO; | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					import com.epmet.dto.screen.form.ScreenProjectDataInfoFormDTO; | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					import com.epmet.dto.screencoll.ScreenCollFormDTO; | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					import com.epmet.entity.evaluationindex.screen.ScreenProjectCategoryEntity; | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					import com.epmet.entity.evaluationindex.screen.ScreenProjectDataEntity; | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					import com.epmet.entity.evaluationindex.screen.ScreenProjectImgDataEntity; | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					import com.epmet.entity.stats.CustomerProjectCategoryDictEntity; | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					import com.epmet.feign.EpmetMessageOpenFeignClient; | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					import com.epmet.feign.OperCrmOpenFeignClient; | 
				
			
			
		
	
	
		
			
				
					| 
						
						
						
							
								
							
						
					 | 
				
				 | 
				
					@ -47,6 +47,7 @@ import com.epmet.service.evaluationindex.screen.ScreenProjectCategoryService; | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					import com.epmet.service.evaluationindex.screen.ScreenProjectDataService; | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					import com.epmet.service.stats.CustomerProjectCategoryDictService; | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					import com.github.pagehelper.PageHelper; | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					import lombok.extern.slf4j.Slf4j; | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					import org.apache.commons.collections4.ListUtils; | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					import org.apache.commons.lang3.ArrayUtils; | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					import org.apache.commons.lang3.StringUtils; | 
				
			
			
		
	
	
		
			
				
					| 
						
						
						
							
								
							
						
					 | 
				
				 | 
				
					@ -56,7 +57,6 @@ import org.springframework.util.CollectionUtils; | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					
 | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					import javax.annotation.Resource; | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					import java.math.BigDecimal; | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					import java.text.SimpleDateFormat; | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					import java.util.*; | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					import java.util.stream.Collectors; | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					
 | 
				
			
			
		
	
	
		
			
				
					| 
						
						
						
							
								
							
						
					 | 
				
				 | 
				
					@ -66,6 +66,7 @@ import java.util.stream.Collectors; | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					 * @author qu qu@elink-cn.com | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					 * @since v1.0.0 2021-02-23 | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					 */ | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					@Slf4j | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					@Service | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					@DataSource(value = DataSourceConstant.EVALUATION_INDEX) | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					public class ScreenProjectDataServiceImpl extends BaseServiceImpl<ScreenProjectDataDao, ScreenProjectDataEntity> implements ScreenProjectDataService { | 
				
			
			
		
	
	
		
			
				
					| 
						
							
								
							
						
						
							
								
							
						
						
					 | 
				
				 | 
				
					@ -136,76 +137,13 @@ public class ScreenProjectDataServiceImpl extends BaseServiceImpl<ScreenProjectD | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					    } | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					
 | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					    @Override | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					    @Transactional(rollbackFor = Exception.class) | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					    @DataSource(value = DataSourceConstant.EVALUATION_INDEX, datasourceNameFromArg = true) | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					    public void collect(ScreenCollFormDTO<ScreenProjectDataInfoFormDTO> param) { | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					        /*if (param.getIsFirst()) { | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					            int affectedRows = baseDao.deleteByDateIdAndCustomerId(param.getCustomerId(), param.getDateId()); | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					            while (affectedRows > 0) { | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					                affectedRows = baseDao.deleteByDateIdAndCustomerId(param.getCustomerId(), param.getDateId()); | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					            } | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					        }*/ | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					        SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					        Date today = new Date(); | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					        List<ScreenProjectDataEntity> projectList = new ArrayList<>(); | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					        param.getDataList().forEach(item -> { | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					            String projectStatusCode = item.getProjectStatusCode(); | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					
 | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					            //2021.3.8  epmet中,调用方传level,这边不再计算
 | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					            if(item.getProjectLevel() == null){ | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					                //todo 动态获取超时时间
 | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					                //如果结案 结案时间立项时间;
 | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					                if ("closed_case".equals(projectStatusCode)) { | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					                    Date createTime = item.getProjectCreateTime(); | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					                    Date closeCaseTime = item.getCloseCaseTime(); | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					
 | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					                    if (closeCaseTime.getTime() - createTime.getTime() <= 1000 * 60 * 60 * 24 * 4) { | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					                        //如果结案时间-立项时间小于等于4天 未超期 level3
 | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					                        item.setProjectLevel(3); | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					                    } else if (closeCaseTime.getTime() - createTime.getTime() <= 1000 * 60 * 60 * 24 * 5) { | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					                        //如果结案时间-立项时间大于4天小于5天 即将超期 level2
 | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					                        item.setProjectLevel(2); | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					                    } else { | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					                        //大于5天 已超期 level1
 | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					                        item.setProjectLevel(1); | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					                    } | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					                } else if ("pending".equals(projectStatusCode)) { | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					                    //如果处理中 当前时间-立项时间;
 | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					                    Date createTime = item.getProjectCreateTime(); | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					
 | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					                    if (today.getTime() - createTime.getTime() <= 1000 * 60 * 60 * 24 * 4) { | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					                        //如果当前时间-立项时间小于等于4天 未超期 level3
 | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					                        item.setProjectLevel(3); | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					                    } else if (today.getTime() - createTime.getTime() <= 1000 * 60 * 60 * 24 * 5) { | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					                        //如果当前时间-立项时间大于4天小于5天 即将超期 level2
 | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					                        item.setProjectLevel(2); | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					                    } else { | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					                        //大于5天 已超期 level1
 | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					                        item.setProjectLevel(1); | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					                    } | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					                } | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					            } | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					            //先删除该projectId对应的旧数据
 | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					            baseDao.deleteByProjectId(param.getCustomerId(), item.getProjectId()); | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					            screenProjectImgDataDao.deleteByProjectId(param.getCustomerId(), item.getProjectId()); | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					
 | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					            //如果orgType未知,获取一下
 | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					//            if ("unknown".equals(item.getOrgType())){
 | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					//                ScreenCustomerAgencyEntity screenCustomerAgencyEntity = agencyDao.selectById(item.getOrgId());
 | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					//                if (screenCustomerAgencyEntity != null){
 | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					//                    item.setOrgType("agency");
 | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					//                }else {
 | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					//                    ScreenCustomerDeptEntity screenCustomerDeptEntity = deptDao.selectById(item.getOrgId());
 | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					//                    if (screenCustomerDeptEntity!=null){
 | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					//                        item.setOrgType("department");
 | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					//                    }else {
 | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					//                        ScreenCustomerGridEntity screenCustomerGridEntity = gridDao.selectById(item.getOrgId());
 | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					//                        if (screenCustomerGridEntity != null){
 | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					//                           item.setOrgType("grid");
 | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					//                        }
 | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					//                    }
 | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					//                }
 | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					//            }
 | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					            setLevelByCreateTime(item, projectStatusCode); | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					
 | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					            //插入项目表
 | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					            ScreenProjectDataEntity screenProjectDataEntity = ConvertUtils.sourceToTarget(item, ScreenProjectDataEntity.class); | 
				
			
			
		
	
	
		
			
				
					| 
						
						
						
							
								
							
						
					 | 
				
				 | 
				
					@ -215,23 +153,67 @@ public class ScreenProjectDataServiceImpl extends BaseServiceImpl<ScreenProjectD | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					            if(StringUtils.isNotBlank(agencyId)) { | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					                screenProjectDataEntity.setAllParentIds(agencyId.concat(StrConstant.COMMA).concat(screenProjectDataEntity.getAllParentIds())); | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					            } | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					            baseDao.insert(screenProjectDataEntity); | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					            projectList.add(screenProjectDataEntity); | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					            //插入图片表
 | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					            String[] projectImgUrl = item.getProjectImgUrl(); | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					            if (ArrayUtils.isNotEmpty(projectImgUrl)) { | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					                for (int i = 0; i < projectImgUrl.length; i++) { | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					                    ScreenProjectImgDataEntity screenProjectImgDataEntity = new ScreenProjectImgDataEntity(); | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					                    screenProjectImgDataEntity.setCustomerId(param.getCustomerId()); | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					                    screenProjectImgDataEntity.setProjectId(item.getProjectId()); | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					                    screenProjectImgDataEntity.setProjectImgUrl(projectImgUrl[i]); | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					                    screenProjectImgDataEntity.setSort(i); | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					                    screenProjectImgDataDao.insert(screenProjectImgDataEntity); | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					                } | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					            } | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					            //删除 并插入新的项目数据
 | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					            delAndInsertProjectData(param, item, screenProjectDataEntity); | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					        }); | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					    } | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					    @Transactional(rollbackFor = Exception.class) | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					    public void delAndInsertProjectData(ScreenCollFormDTO<ScreenProjectDataInfoFormDTO> param, ScreenProjectDataInfoFormDTO item, ScreenProjectDataEntity screenProjectDataEntity) { | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					        //先删除该projectId对应的旧数据
 | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					        baseDao.deleteByProjectId(param.getCustomerId(), item.getProjectId()); | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					        screenProjectImgDataDao.deleteByProjectId(param.getCustomerId(), item.getProjectId()); | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					        baseDao.insert(screenProjectDataEntity); | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					        saveCategory(param.getCustomerId(), Collections.singletonList(screenProjectDataEntity)) | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					        //插入该项目图片表
 | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					        String[] projectImgUrl = item.getProjectImgUrl(); | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					        if (ArrayUtils.isNotEmpty(projectImgUrl)) { | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					            List<ScreenProjectImgDataDTO> imgList = new ArrayList<>(); | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					            for (int i = 0; i < projectImgUrl.length; i++) { | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					                ScreenProjectImgDataDTO screenProjectImgDataEntity = new ScreenProjectImgDataDTO(); | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					                screenProjectImgDataEntity.setCustomerId(param.getCustomerId()); | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					                screenProjectImgDataEntity.setProjectId(item.getProjectId()); | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					                screenProjectImgDataEntity.setProjectImgUrl(projectImgUrl[i]); | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					                screenProjectImgDataEntity.setSort(i); | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					                imgList.add(screenProjectImgDataEntity) | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					            } | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					            screenProjectImgDataDao.insertBatch(imgList); | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					        } | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					    } | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					
 | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					        saveCategory(param.getCustomerId(), projectList); | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					    private void setLevelByCreateTime(ScreenProjectDataInfoFormDTO item, String projectStatusCode) { | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					        if(item.getProjectLevel() == null){ | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					            //todo 动态获取超时时间
 | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					            //如果结案 结案时间立项时间;
 | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					            if ("closed_case".equals(projectStatusCode)) { | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					                Date createTime = item.getProjectCreateTime(); | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					                Date closeCaseTime = item.getCloseCaseTime(); | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					
 | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					                if (closeCaseTime.getTime() - createTime.getTime() <= 1000 * 60 * 60 * 24 * 4L) { | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					                    //如果结案时间-立项时间小于等于4天 未超期 level3
 | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					                    item.setProjectLevel(3); | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					                } else if (closeCaseTime.getTime() - createTime.getTime() <= 1000 * 60 * 60 * 24 * 5L) { | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					                    //如果结案时间-立项时间大于4天小于5天 即将超期 level2
 | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					                    item.setProjectLevel(2); | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					                } else { | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					                    //大于5天 已超期 level1
 | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					                    item.setProjectLevel(1); | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					                } | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					            } else if ("pending".equals(projectStatusCode)) { | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					                //如果处理中 当前时间-立项时间;
 | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					                Date createTime = item.getProjectCreateTime(); | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					                Date today = new Date(); | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					                if (today.getTime() - createTime.getTime() <= 1000 * 60 * 60 * 24 * 4L) { | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					                    //如果当前时间-立项时间小于等于4天 未超期 level3
 | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					                    item.setProjectLevel(3); | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					                } else if (today.getTime() - createTime.getTime() <= 1000 * 60 * 60 * 24 * 5L) { | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					                    //如果当前时间-立项时间大于4天小于5天 即将超期 level2
 | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					                    item.setProjectLevel(2); | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					                } else { | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					                    //大于5天 已超期 level1
 | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					                    item.setProjectLevel(1); | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					                } | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					            } | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					        } | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					    } | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					
 | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					
 | 
				
			
			
		
	
	
		
			
				
					| 
						
							
								
							
						
						
							
								
							
						
						
					 | 
				
				 | 
				
					@ -278,7 +260,7 @@ public class ScreenProjectDataServiceImpl extends BaseServiceImpl<ScreenProjectD | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					        //复采集时数不会重复
 | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					        if(!CollectionUtils.isEmpty(meta)){ | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					            int affectedRows = baseDao.deleteByProjectTimeAndCustomerId(customerId,dateId); | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					            while (affectedRows > 0) { | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					            while (affectedRows > NumConstant.ZERO) { | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					                affectedRows = baseDao.deleteByProjectTimeAndCustomerId(customerId, dateId); | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					            } | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					            List<List<ScreenProjectDataDTO>> partition = ListUtils.partition(meta, NumConstant.ONE_HUNDRED); | 
				
			
			
		
	
	
		
			
				
					| 
						
							
								
							
						
						
							
								
							
						
						
					 | 
				
				 | 
				
					@ -359,32 +341,43 @@ public class ScreenProjectDataServiceImpl extends BaseServiceImpl<ScreenProjectD | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					        List<ScreenProjectCategoryEntity> projectCategoryList = new ArrayList<>(); | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					        projectList.forEach(project -> { | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					            //分类为空不作处理
 | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					            if (StringUtils.isNotBlank(project.getCategoryCode())) { | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					                List<String> categoryList = Arrays.asList(project.getCategoryCode().split(StrConstant.COMMA)); | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					                categoryList.forEach(category -> { | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					                    ScreenProjectCategoryEntity entity = new ScreenProjectCategoryEntity(); | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					                    entity.setCustomerId(customerId); | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					                    entity.setProjectId(project.getProjectId()); | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					                    entity.setOriginCategoryCode(category); | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					                    CustomerProjectCategoryDictEntity categoryEntity = customerProjectCategoryDictService.getByCategoryCode(customerId, category); | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					                    if (null != categoryEntity) { | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					                        //
 | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					                        if ("external".equals(categoryEntity.getCustomerType())) { | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					                            entity.setCategoryCode(categoryEntity.getEpmetCategoryCode()); | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					                            CustomerProjectCategoryDictEntity parent = customerProjectCategoryDictService.getByCategoryCode(parentCustomer.getData(), categoryEntity.getEpmetCategoryCode()); | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					                            entity.setParentCategoryCode(parent.getParentCategoryCode()); | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					                            entity.setLevel(parent.getLevel()); | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					                        } else { | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					                            entity.setCategoryCode(categoryEntity.getCategoryCode()); | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					                            entity.setParentCategoryCode(categoryEntity.getParentCategoryCode()); | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					                            entity.setLevel(categoryEntity.getLevel()); | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					                        } | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					                    } | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					                    projectCategoryList.add(entity); | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					                }); | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					            if (StringUtils.isBlank(project.getCategoryCode())) { | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					                return; | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					            } | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					
 | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					            List<String> categoryList = Arrays.asList(project.getCategoryCode().split(StrConstant.COMMA)); | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					            categoryList.forEach(category -> { | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					                ScreenProjectCategoryEntity entity = new ScreenProjectCategoryEntity(); | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					                entity.setCustomerId(customerId); | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					                entity.setProjectId(project.getProjectId()); | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					                entity.setOriginCategoryCode(category); | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					                CustomerProjectCategoryDictEntity categoryEntity = customerProjectCategoryDictService.getByCategoryCode(customerId, category); | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					                if (null != categoryEntity) { | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					                    log.error("customerId:{} categoryCode:{} is not exist in ProjectCategoryDict", customerId, category); | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					                    return; | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					                } | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					                if ("external".equals(categoryEntity.getCustomerType())) { | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					                    entity.setCategoryCode(categoryEntity.getEpmetCategoryCode()); | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					                    CustomerProjectCategoryDictEntity parent = customerProjectCategoryDictService.getByCategoryCode(parentCustomer.getData(), categoryEntity.getEpmetCategoryCode()); | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					                    entity.setParentCategoryCode(parent.getParentCategoryCode()); | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					                    entity.setLevel(parent.getLevel()); | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					                } else { | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					                    entity.setCategoryCode(categoryEntity.getCategoryCode()); | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					                    entity.setParentCategoryCode(categoryEntity.getParentCategoryCode()); | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					                    entity.setLevel(categoryEntity.getLevel()); | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					                } | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					                projectCategoryList.add(entity); | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					                //如果分类数据已经超过100了 就插入一批
 | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					                if (projectCategoryList.size() > NumConstant.ONE_HUNDRED){ | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					                    screenProjectCategoryService.insertBatch(projectCategoryList); | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					                    projectCategoryList.clear(); | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					                } | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					            }); | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					        }); | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					        screenProjectCategoryService.insertBatch(projectCategoryList); | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					        //如果不为空 则插入剩余的那一部分
 | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					        if (projectCategoryList.size() > NumConstant.ZERO){ | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					            screenProjectCategoryService.insertBatch(projectCategoryList); | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					        } | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					    } | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					
 | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					} | 
				
			
			
		
	
	
		
			
				
					| 
						
						
						
					 | 
				
				 | 
				
					
  |