| 
						
						
							
								
							
						
						
					 | 
					@ -230,50 +230,18 @@ public class FactOriginProjectLogDailyServiceImpl extends BaseServiceImpl<FactOr | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					     * @date 2020.09.21 02:16 | 
					 | 
					 | 
					     * @date 2020.09.21 02:16 | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					     **/ | 
					 | 
					 | 
					     **/ | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					    @Override | 
					 | 
					 | 
					    @Override | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					    public Map<String, BigDecimal> getAgencyWorkPieceRatio(String customerId, String dimId) { | 
					 | 
					 | 
					    public Map<String, BigDecimal> getAgencyWorkPieceRatio(String customerId, String level, String dimId) { | 
				
			
			
				
				
			
		
	
		
		
	
		
		
			
				
					 | 
					 | 
					        //计算方法 : 评价周期内办结项目的平均处理时长的倒数
 | 
					 | 
					 | 
					        //计算方法 : 评价周期内办结项目的平均处理时长的倒数
 | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					
 | 
					 | 
					 | 
					
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					
 | 
					 | 
					 | 
					        //评价周期内每个机关结案了的项目耗时和项目数
 | 
				
			
			
				
				
			
		
	
		
		
			
				
					
					 | 
					 | 
					        //1.评价周期内结案了的项目
 | 
					 | 
					 | 
					        List<OrgStatisticsResultDTO> projectsHandledByAgency = baseDao.selectProjectIdHandledByAgency(customerId, level, dimId); | 
				
			
			
				
				
			
		
	
		
		
			
				
					 | 
					 | 
					        List<ProjectParticipatedAgencyResultDTO> projectsHandledByAgency = baseDao.selectProjectIdHandledByAgency(customerId, dimId); | 
					 | 
					 | 
					 | 
				
			
			
		
	
		
		
	
		
		
	
		
		
			
				
					 | 
					 | 
					        Map<String, BigDecimal> efficiencyMap = new HashMap<>(); | 
					 | 
					 | 
					        Map<String, BigDecimal> efficiencyMap = new HashMap<>(); | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					        List<String> projects = new LinkedList<>(); | 
					 | 
					 | 
					 | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					        if (!CollectionUtils.isEmpty(projectsHandledByAgency)) { | 
					 | 
					 | 
					        if (!CollectionUtils.isEmpty(projectsHandledByAgency)) { | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					            Map<String, List<String>> agencyProjectsMap = new HashMap<>(); | 
					 | 
					 | 
					 | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					
 | 
					 | 
					 | 
					 | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					            projectsHandledByAgency.forEach(o -> { | 
					 | 
					 | 
					            projectsHandledByAgency.forEach(o -> { | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					                String agencyId = o.getAgencyId(); | 
					 | 
					 | 
					                String agencyId = o.getAgencyId(); | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					                String projectId = o.getProjectId(); | 
					 | 
					 | 
					                //每个机关的项目平均耗时
 | 
				
			
			
				
				
			
		
	
		
		
			
				
					
					 | 
					 | 
					                if(CollectionUtils.isEmpty(agencyProjectsMap.get(agencyId))){ | 
					 | 
					 | 
					                BigDecimal avgCost = new BigDecimal(o.getSum()).divide(new BigDecimal(o.getCount()),6, RoundingMode.HALF_UP); | 
				
			
			
				
				
			
		
	
		
		
			
				
					
					 | 
					 | 
					                    List<String> projectUnit = new LinkedList<>(); | 
					 | 
					 | 
					                efficiencyMap.put(agencyId, avgCost); | 
				
			
			
				
				
			
		
	
		
		
			
				
					 | 
					 | 
					                    projectUnit.add(projectId); | 
					 | 
					 | 
					 | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					                    agencyProjectsMap.put(agencyId,projectUnit); | 
					 | 
					 | 
					 | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					                }else{ | 
					 | 
					 | 
					 | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					                    agencyProjectsMap.get(agencyId).add(projectId); | 
					 | 
					 | 
					 | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					                } | 
					 | 
					 | 
					 | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					                projects.add(projectId); | 
					 | 
					 | 
					 | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					            }); | 
					 | 
					 | 
					 | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					
 | 
					 | 
					 | 
					 | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					            //2.结案项目的总耗时
 | 
					 | 
					 | 
					 | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					            List<ProjectParticipatedAgencyResultDTO> costTimes = baseDao.selectProjectCostTime(projects); | 
					 | 
					 | 
					 | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					
 | 
					 | 
					 | 
					 | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					            Map<String,Integer> projectCostTime = costTimes.stream().collect(Collectors.toMap(ProjectParticipatedAgencyResultDTO::getProjectId,ProjectParticipatedAgencyResultDTO::getCount)); | 
					 | 
					 | 
					 | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					            agencyProjectsMap.forEach((k,v) -> { | 
					 | 
					 | 
					 | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					                //k -> agencyId    v  ->   projects
 | 
					 | 
					 | 
					 | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					                int total = NumConstant.ZERO; | 
					 | 
					 | 
					 | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					                if(!CollectionUtils.isEmpty(v)){ | 
					 | 
					 | 
					 | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					                    for(String p : v){ | 
					 | 
					 | 
					 | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					                        Integer cost = projectCostTime.get(p); | 
					 | 
					 | 
					 | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					                        total = total + (null == cost ? NumConstant.ZERO : cost); | 
					 | 
					 | 
					 | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					                    } | 
					 | 
					 | 
					 | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					                    //每个机关的项目平均耗时
 | 
					 | 
					 | 
					 | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					                    BigDecimal avgCost = new BigDecimal(total).divide(new BigDecimal(v.size()),4, BigDecimal.ROUND_HALF_UP); | 
					 | 
					 | 
					 | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					
 | 
					 | 
					 | 
					 | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					                    //efficiencyMap.put(k,BigDecimal.ONE.divide(avgCost,4, BigDecimal.ROUND_HALF_UP));
 | 
					 | 
					 | 
					 | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					                    efficiencyMap.put(k, null == avgCost ? BigDecimal.ZERO : avgCost.setScale(6, BigDecimal.ROUND_HALF_UP)); | 
					 | 
					 | 
					 | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					                }else{ | 
					 | 
					 | 
					 | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					                    efficiencyMap.put(k,BigDecimal.ZERO); | 
					 | 
					 | 
					 | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					                } | 
					 | 
					 | 
					 | 
				
			
			
		
	
		
		
	
		
		
	
		
		
	
		
		
			
				
					 | 
					 | 
					            }); | 
					 | 
					 | 
					            }); | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					        } | 
					 | 
					 | 
					        } | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					
 | 
					 | 
					 | 
					
 | 
				
			
			
		
	
	
		
		
			
				
					| 
						
							
								
							
						
						
						
					 | 
					
  |