| 
						
						
						
					 | 
				
				 | 
				
					@ -1,13 +1,30 @@ | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					package com.epmet.service.impl; | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					
 | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					import com.epmet.commons.tools.constant.NumConstant; | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					import com.epmet.constant.ProjectConstant; | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					import com.epmet.dto.stats.DimAgencyDTO; | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					import com.epmet.dto.stats.DimDateDTO; | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					import com.epmet.entity.project.ProjectEntity; | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					import com.epmet.entity.project.ProjectProcessEntity; | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					import com.epmet.entity.stats.DimDateEntity; | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					import com.epmet.entity.stats.FactAgencyProjectDailyEntity; | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					import com.epmet.service.StatsProjectService; | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					import com.epmet.service.project.ProjectProcessService; | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					import com.epmet.service.project.ProjectService; | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					import com.epmet.service.stats.*; | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					import org.springframework.beans.factory.annotation.Autowired; | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					import org.springframework.stereotype.Service; | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					
 | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					import java.math.BigDecimal; | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					import java.text.DateFormat; | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					import java.text.NumberFormat; | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					import java.text.SimpleDateFormat; | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					import java.util.*; | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					import java.util.concurrent.atomic.AtomicInteger; | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					
 | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					/** | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					 * 数据统计-项目(独立于任何具体数据源外层的service) | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					 * | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					 * @author sun | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					 */ | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					@Service | 
				
			
			
		
	
	
		
			
				
					| 
						
						
						
							
								
							
						
					 | 
				
				 | 
				
					@ -28,6 +45,8 @@ public class StatsProjectServiceImpl implements StatsProjectService { | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					    @Autowired | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					    private ProjectService projectService; | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					    @Autowired | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					    private ProjectProcessService projectProcessService; | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					    @Autowired | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					    private FactAgencyProjectDailyService factAgencyProjectDailyService; | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					    @Autowired | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					    private FactAgencyProjectMonthlyService factAgencyProjectMonthlyService; | 
				
			
			
		
	
	
		
			
				
					| 
						
						
						
							
								
							
						
					 | 
				
				 | 
				
					@ -44,6 +63,192 @@ public class StatsProjectServiceImpl implements StatsProjectService { | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					     **/ | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					    @Override | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					    public void statsAgencyProject(String customerId) { | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					        //1:执行机关日数据统计
 | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					        agencyDateProjectStats(customerId); | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					        //2:执行机关月数据统计
 | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					        if (Calendar.getInstance().get(Calendar.DATE) == 1) { | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					            agencyMonthProjectStats(customerId); | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					        } | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					
 | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					    } | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					
 | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					    /** | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					     * @param customerId | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					     * @Author sun | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					     * @Description 数据-项目-机关日统计 | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					     **/ | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					    private String agencyDateProjectStats(String customerId) { | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					        Date date = yesterDay(); | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					        //1:查询各维度表Id,方便使用 //TODO
 | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					        DimDateDTO dimDateDTO = new DimDateDTO(); | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					        dimDateDTO.setCreatedTime(date); | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					        dimDateDTO = dimDateService.getDimDate(dimDateDTO).get(0); | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					
 | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					        //2:根据客户Id查询机关维度表数据
 | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					        DimAgencyDTO dimAgencyDTO = new DimAgencyDTO(); | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					        dimAgencyDTO.setCustomerId(customerId); | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					        List<DimAgencyDTO> dimAgencyList = dimAgencyService.getDimAgencyList(dimAgencyDTO); | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					        if (null == dimAgencyList || dimAgencyList.size() < NumConstant.ONE) { | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					            return null; | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					        } | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					
 | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					        //3:根据客户Id查询项目业务表数据
 | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					        List<ProjectEntity> projectList = projectService.getProjectList(customerId); | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					
 | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					        //4:查询项目处理进展表中是创建项目和结案两种进展的有效数据(创建日期截取yyyy-mm-dd格式字段值)
 | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					        List<ProjectProcessEntity> processList = projectProcessService.getProcessList(customerId); | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					
 | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					        //5:遍历统计每个机关各项指标数
 | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					        //批量机关日统计新增对象
 | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					        List<FactAgencyProjectDailyEntity> dimDateEntityList = new ArrayList<>(); | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					        //计算百分比使用,保留小数点后两位
 | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					        NumberFormat numberFormat = NumberFormat.getInstance(); | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					        numberFormat.setMaximumFractionDigits(2); | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					        //遍历机关维度数据
 | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					        for (DimAgencyDTO agency : dimAgencyList) { | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					            //存放当前机关及所有下级机关Id
 | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					            Map map = new HashMap<>(); | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					            map.put(agency.getId(), agency.getId()); | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					            String subPids = ((null == agency.getPids() || "".equals(agency.getPids())) ? agency.getId() : agency.getPids() + ":" + agency.getId()); | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					            dimAgencyList.forEach(sub -> { | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					                if (sub.getPids().contains(subPids)) { | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					                    map.put(sub.getId(), sub.getId()); | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					                } | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					            }); | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					            //机关下截止当前日期的项目总数、处理中总数、已结案总数、已结案已解决总数、已结案未解决总数
 | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					            AtomicInteger projectTotal = new AtomicInteger(0); | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					            AtomicInteger pendingTotal = new AtomicInteger(0); | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					            AtomicInteger closedTotal = new AtomicInteger(0); | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					            AtomicInteger resolvedTotal = new AtomicInteger(0); | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					            AtomicInteger unResolvedTotal = new AtomicInteger(0); | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					            //存放当前机关及下级已结案切已解决的项目信息
 | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					            Map resolvedMap = new HashMap<>(); | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					            //存放当前机关及下级已结案切未解决的项目信息
 | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					            Map unResolvedMap = new HashMap<>(); | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					            //遍历项目数据,统计不同数据值
 | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					            projectList.forEach(project -> { | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					                if (map.containsKey(project.getAgencyId())) { | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					                    projectTotal.addAndGet(1); | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					                    if (ProjectConstant.PENDING.equals(project.getStatus())) { | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					                        pendingTotal.addAndGet(1); | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					                    } | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					                    if (ProjectConstant.CLOSED.equals(project.getStatus())) { | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					                        closedTotal.addAndGet(1); | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					                        if (ProjectConstant.RESOLVED.equals(project.getClosedStatus())) { | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					                            resolvedTotal.addAndGet(1); | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					                            resolvedMap.put(project.getAgencyId(), project.getClosedStatus()); | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					                        } | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					                        if (ProjectConstant.UNRESOLVED.equals(project.getClosedStatus())) { | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					                            unResolvedTotal.addAndGet(1); | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					                            unResolvedMap.put(project.getAgencyId(), project.getClosedStatus()); | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					                        } | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					                    } | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					                } | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					            }); | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					            //日增量中项目总数、处理中总数、已结案总数、已结案已解决总数、已结案未解决总数
 | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					            AtomicInteger pendingIncr = new AtomicInteger(0); | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					            AtomicInteger closedIncr = new AtomicInteger(0); | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					            AtomicInteger resolvedIncr = new AtomicInteger(0); | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					            AtomicInteger unResolvedIncr = new AtomicInteger(0); | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					            //遍历项目进展列表数据,统计日增量数据
 | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					            processList.forEach(process -> { | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					                if (date.equals(process.getCreatedTime())) { | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					                    if (ProjectConstant.CREATED.equals(process.getOperation())) { | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					                        pendingIncr.addAndGet(1); | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					                    } | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					                    if (ProjectConstant.CLOSE.equals(process.getOperation())) { | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					                        closedIncr.addAndGet(1); | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					                    } | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					                    if (resolvedMap.containsKey(process.getAgencyId())) { | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					                        resolvedIncr.addAndGet(1); | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					                    } | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					                    if (unResolvedMap.containsKey(process.getAgencyId())) { | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					                        unResolvedIncr.addAndGet(1); | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					                    } | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					                } | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					            }); | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					            //封装日数据对象
 | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					            FactAgencyProjectDailyEntity agencyDailyEntity = new FactAgencyProjectDailyEntity(); | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					            agencyDailyEntity.setCustomerId(customerId); | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					            agencyDailyEntity.setAgencyId(agency.getId()); | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					            agencyDailyEntity.setParentId(agency.getPid()); | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					            //TODO
 | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					            agencyDailyEntity.setDateId(""); | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					            agencyDailyEntity.setWeekId(""); | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					            agencyDailyEntity.setMonthId(""); | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					            agencyDailyEntity.setYearId(""); | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					            agencyDailyEntity.setProjectTotal(projectTotal.intValue()); | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					            agencyDailyEntity.setPendingTotal(pendingTotal.intValue()); | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					            agencyDailyEntity.setClosedTotal(closedTotal.intValue()); | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					            agencyDailyEntity.setResolvedTotal(resolvedTotal.intValue()); | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					            agencyDailyEntity.setUnresolvedTotal(unResolvedTotal.intValue()); | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					            if (projectTotal.intValue() > NumConstant.ZERO) { | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					                agencyDailyEntity.setPendingRatio(new BigDecimal(numberFormat.format((float) pendingTotal.intValue() / (float) projectTotal.intValue() * 100))); | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					                agencyDailyEntity.setClosedRatio(new BigDecimal(numberFormat.format((float) closedTotal.intValue() / (float) projectTotal.intValue() * 100))); | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					            } | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					            if (closedTotal.intValue() > NumConstant.ZERO) { | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					                agencyDailyEntity.setResolvedRatio(new BigDecimal(numberFormat.format((float) resolvedTotal.intValue() / (float) closedTotal.intValue() * 100))); | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					                agencyDailyEntity.setUnresolvedRatio(new BigDecimal(numberFormat.format((float) unResolvedTotal.intValue() / (float) closedTotal.intValue() * 100))); | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					            } | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					            agencyDailyEntity.setProjectIncr(pendingIncr.intValue() + closedIncr.intValue()); | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					            agencyDailyEntity.setPendingIncr(pendingIncr.intValue()); | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					            agencyDailyEntity.setClosedIncr(closedIncr.intValue()); | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					            agencyDailyEntity.setResolvedIncr(resolvedIncr.intValue()); | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					            agencyDailyEntity.setUnresolvedIncr(unResolvedIncr.intValue()); | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					
 | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					            dimDateEntityList.add(agencyDailyEntity); | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					        } | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					
 | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					        //6:批量保存机关日统计数据
 | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					        if (null != dimDateEntityList && dimDateEntityList.size() > NumConstant.ZERO) { | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					            factAgencyProjectDailyService.insertBatch(dimDateEntityList); | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					        } | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					        return null; | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					    } | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					
 | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					    /** | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					     * @param customerId | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					     * @Author sun | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					     * @Description 数据-项目-机关月统计 | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					     **/ | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					    private void agencyMonthProjectStats(String customerId) { | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					
 | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					    } | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					
 | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					    /** | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					     * @param customerId | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					     * @return | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					     * @Author sun | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					     * @Description 数据-项目-网格日(月)统计 | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					     **/ | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					    @Override | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					    public void statsGridProject(String customerId) { | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					        //1:查询各维度表Id,方便使用
 | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					        //2:根据客户Id查询网格维度表数据
 | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					        //3:根据客户Id查询项目业务表数据
 | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					        //4:查询项目处理进展表中是创建项目和结案两种进展的有效数据(创建日期截取yyyy-mm-dd格式字段值)
 | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					        //5:根据客户Id查询议题表已转项目的议题数据(为了匹配项目所属的网格Id)
 | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					        //6:遍历统计每个网格各项指标数据
 | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					        //7:批量保存网格日统计数据
 | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					        //8:判断当前日期是否为当月首日,执行网格月数据统计
 | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					    } | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					
 | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					    /** | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					     * @Author sun | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					     * @Description 获取当前日期的前一天日期(yyyy-mm-dd) | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					     **/ | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					    private Date yesterDay() { | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					        Date date = new Date(); | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					        try { | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					            DateFormat sdf = new SimpleDateFormat("yyyy-MM-dd"); | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					            Calendar calendar = Calendar.getInstance(); | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					            calendar.set(Calendar.HOUR_OF_DAY, -24); | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					            String str = sdf.format(calendar.getTime()); | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					            date = sdf.parse(str); | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					        } catch (Exception e) { | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					            e.printStackTrace(); | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					        } | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					        return date; | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					    } | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					
 | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					} | 
				
			
			
		
	
	
		
			
				
					| 
						
						
						
					 | 
				
				 | 
				
					
  |