| 
						
						
							
								
							
						
						
					 | 
					@ -2,16 +2,20 @@ package com.epmet.service.impl; | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					
 | 
					 | 
					 | 
					
 | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					import com.epmet.commons.tools.constant.NumConstant; | 
					 | 
					 | 
					import com.epmet.commons.tools.constant.NumConstant; | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					import com.epmet.constant.ProjectConstant; | 
					 | 
					 | 
					import com.epmet.constant.ProjectConstant; | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					 | 
					 | 
					 | 
					import com.epmet.dto.project.form.MonthProjectListFormDTO; | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					import com.epmet.dto.stats.DimAgencyDTO; | 
					 | 
					 | 
					import com.epmet.dto.stats.DimAgencyDTO; | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					import com.epmet.dto.stats.DimDateDTO; | 
					 | 
					 | 
					import com.epmet.dto.stats.DimDateDTO; | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					import com.epmet.entity.project.ProjectEntity; | 
					 | 
					 | 
					import com.epmet.entity.project.ProjectEntity; | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					import com.epmet.entity.project.ProjectProcessEntity; | 
					 | 
					 | 
					import com.epmet.entity.project.ProjectProcessEntity; | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					import com.epmet.entity.stats.DimDateEntity; | 
					 | 
					 | 
					import com.epmet.entity.stats.DimDateEntity; | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					import com.epmet.entity.stats.FactAgencyProjectDailyEntity; | 
					 | 
					 | 
					import com.epmet.entity.stats.FactAgencyProjectDailyEntity; | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					 | 
					 | 
					 | 
					import com.epmet.entity.stats.FactAgencyProjectMonthlyEntity; | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					import com.epmet.service.StatsProjectService; | 
					 | 
					 | 
					import com.epmet.service.StatsProjectService; | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					import com.epmet.service.project.ProjectProcessService; | 
					 | 
					 | 
					import com.epmet.service.project.ProjectProcessService; | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					import com.epmet.service.project.ProjectService; | 
					 | 
					 | 
					import com.epmet.service.project.ProjectService; | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					import com.epmet.service.stats.*; | 
					 | 
					 | 
					import com.epmet.service.stats.*; | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					 | 
					 | 
					 | 
					import com.epmet.util.DimIdGenerator; | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					 | 
					 | 
					 | 
					import oracle.sql.NUMBER; | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					import org.springframework.beans.factory.annotation.Autowired; | 
					 | 
					 | 
					import org.springframework.beans.factory.annotation.Autowired; | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					import org.springframework.stereotype.Service; | 
					 | 
					 | 
					import org.springframework.stereotype.Service; | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					
 | 
					 | 
					 | 
					
 | 
				
			
			
		
	
	
		
		
			
				
					| 
						
							
								
							
						
						
							
								
							
						
						
					 | 
					@ -63,13 +67,20 @@ public class StatsProjectServiceImpl implements StatsProjectService { | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					     **/ | 
					 | 
					 | 
					     **/ | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					    @Override | 
					 | 
					 | 
					    @Override | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					    public void statsAgencyProject(String customerId) { | 
					 | 
					 | 
					    public void statsAgencyProject(String customerId) { | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					        //1:执行机关日数据统计
 | 
					 | 
					 | 
					        //1:根据客户Id查询机关维度表数据
 | 
				
			
			
				
				
			
		
	
		
		
			
				
					
					 | 
					 | 
					        agencyDateProjectStats(customerId); | 
					 | 
					 | 
					        DimAgencyDTO dimAgencyDTO = new DimAgencyDTO(); | 
				
			
			
				
				
			
		
	
		
		
			
				
					
					 | 
					 | 
					        //2:执行机关月数据统计
 | 
					 | 
					 | 
					        dimAgencyDTO.setCustomerId(customerId); | 
				
			
			
				
				
			
		
	
		
		
			
				
					
					 | 
					 | 
					        if (Calendar.getInstance().get(Calendar.DATE) == 1) { | 
					 | 
					 | 
					        List<DimAgencyDTO> dimAgencyList = dimAgencyService.getDimAgencyList(dimAgencyDTO); | 
				
			
			
				
				
			
		
	
		
		
			
				
					
					 | 
					 | 
					            agencyMonthProjectStats(customerId); | 
					 | 
					 | 
					
 | 
				
			
			
				
				
			
		
	
		
		
			
				
					
					 | 
					 | 
					        } | 
					 | 
					 | 
					        if (null != dimAgencyList && dimAgencyList.size() > NumConstant.ZERO) { | 
				
			
			
				
				
			
		
	
		
		
	
		
		
	
		
		
	
		
		
	
		
		
	
		
		
	
		
		
			
				
					 | 
					 | 
					 | 
					 | 
					 | 
					            //2:执行机关日数据统计
 | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					 | 
					 | 
					 | 
					            agencyDateProjectStats(customerId, dimAgencyList); | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					
 | 
					 | 
					 | 
					
 | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					 | 
					 | 
					 | 
					            //3:执行机关月数据统计
 | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					 | 
					 | 
					 | 
					            if (Calendar.getInstance().get(Calendar.DATE) == 1) { | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					 | 
					 | 
					 | 
					                agencyMonthProjectStats(customerId, dimAgencyList); | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					 | 
					 | 
					 | 
					            } | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					 | 
					 | 
					 | 
					        } | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					    } | 
					 | 
					 | 
					    } | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					
 | 
					 | 
					 | 
					
 | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					    /** | 
					 | 
					 | 
					    /** | 
				
			
			
		
	
	
		
		
			
				
					| 
						
						
						
							
								
							
						
					 | 
					@ -77,28 +88,18 @@ public class StatsProjectServiceImpl implements StatsProjectService { | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					     * @Author sun | 
					 | 
					 | 
					     * @Author sun | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					     * @Description 数据-项目-机关日统计 | 
					 | 
					 | 
					     * @Description 数据-项目-机关日统计 | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					     **/ | 
					 | 
					 | 
					     **/ | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					    private String agencyDateProjectStats(String customerId) { | 
					 | 
					 | 
					    private String agencyDateProjectStats(String customerId, List<DimAgencyDTO> dimAgencyList) { | 
				
			
			
				
				
			
		
	
		
		
	
		
		
			
				
					 | 
					 | 
					        Date date = yesterDay(); | 
					 | 
					 | 
					        Date date = yesterDay(); | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					        //1:查询各维度表Id,方便使用 //TODO
 | 
					 | 
					 | 
					        //1:查询各维度表Id,方便使用
 | 
				
			
			
				
				
			
		
	
		
		
			
				
					
					 | 
					 | 
					        DimDateDTO dimDateDTO = new DimDateDTO(); | 
					 | 
					 | 
					        DimIdGenerator.DimIdBean dimId = DimIdGenerator.getDimIdBean(yesterDay()); | 
				
			
			
				
				
			
		
	
		
		
			
				
					 | 
					 | 
					        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查询项目业务表数据
 | 
					 | 
					 | 
					        //2:根据客户Id查询项目业务表数据
 | 
				
			
			
				
				
			
		
	
		
		
	
		
		
			
				
					 | 
					 | 
					        List<ProjectEntity> projectList = projectService.getProjectList(customerId); | 
					 | 
					 | 
					        List<ProjectEntity> projectList = projectService.getProjectList(customerId); | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					
 | 
					 | 
					 | 
					
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					        //4:查询项目处理进展表中是创建项目和结案两种进展的有效数据(创建日期截取yyyy-mm-dd格式字段值)
 | 
					 | 
					 | 
					        //3:查询项目处理进展表中是创建项目和结案两种进展的有效数据(创建日期截取yyyy-mm-dd格式字段值)
 | 
				
			
			
				
				
			
		
	
		
		
	
		
		
			
				
					 | 
					 | 
					        List<ProjectProcessEntity> processList = projectProcessService.getProcessList(customerId); | 
					 | 
					 | 
					        List<ProjectProcessEntity> processList = projectProcessService.getProcessList(customerId); | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					
 | 
					 | 
					 | 
					
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					        //5:遍历统计每个机关各项指标数
 | 
					 | 
					 | 
					        //4:遍历统计每个机关各项指标数
 | 
				
			
			
				
				
			
		
	
		
		
	
		
		
			
				
					 | 
					 | 
					        //批量机关日统计新增对象
 | 
					 | 
					 | 
					        //批量机关日统计新增对象
 | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					        List<FactAgencyProjectDailyEntity> dimDateEntityList = new ArrayList<>(); | 
					 | 
					 | 
					        List<FactAgencyProjectDailyEntity> dimDateEntityList = new ArrayList<>(); | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					        //计算百分比使用,保留小数点后两位
 | 
					 | 
					 | 
					        //计算百分比使用,保留小数点后两位
 | 
				
			
			
		
	
	
		
		
			
				
					| 
						
							
								
							
						
						
							
								
							
						
						
					 | 
					@ -172,11 +173,10 @@ public class StatsProjectServiceImpl implements StatsProjectService { | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					            agencyDailyEntity.setCustomerId(customerId); | 
					 | 
					 | 
					            agencyDailyEntity.setCustomerId(customerId); | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					            agencyDailyEntity.setAgencyId(agency.getId()); | 
					 | 
					 | 
					            agencyDailyEntity.setAgencyId(agency.getId()); | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					            agencyDailyEntity.setParentId(agency.getPid()); | 
					 | 
					 | 
					            agencyDailyEntity.setParentId(agency.getPid()); | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					            //TODO
 | 
					 | 
					 | 
					            agencyDailyEntity.setDateId(dimId.getDateId()); | 
				
			
			
				
				
			
		
	
		
		
			
				
					
					 | 
					 | 
					            agencyDailyEntity.setDateId(""); | 
					 | 
					 | 
					            agencyDailyEntity.setWeekId(dimId.getWeekId()); | 
				
			
			
				
				
			
		
	
		
		
			
				
					
					 | 
					 | 
					            agencyDailyEntity.setWeekId(""); | 
					 | 
					 | 
					            agencyDailyEntity.setMonthId(dimId.getMonthId()); | 
				
			
			
				
				
			
		
	
		
		
			
				
					
					 | 
					 | 
					            agencyDailyEntity.setMonthId(""); | 
					 | 
					 | 
					            agencyDailyEntity.setYearId(dimId.getYearId()); | 
				
			
			
				
				
			
		
	
		
		
			
				
					 | 
					 | 
					            agencyDailyEntity.setYearId(""); | 
					 | 
					 | 
					 | 
				
			
			
		
	
		
		
	
		
		
	
		
		
	
		
		
	
		
		
			
				
					 | 
					 | 
					            agencyDailyEntity.setProjectTotal(projectTotal.intValue()); | 
					 | 
					 | 
					            agencyDailyEntity.setProjectTotal(projectTotal.intValue()); | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					            agencyDailyEntity.setPendingTotal(pendingTotal.intValue()); | 
					 | 
					 | 
					            agencyDailyEntity.setPendingTotal(pendingTotal.intValue()); | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					            agencyDailyEntity.setClosedTotal(closedTotal.intValue()); | 
					 | 
					 | 
					            agencyDailyEntity.setClosedTotal(closedTotal.intValue()); | 
				
			
			
		
	
	
		
		
			
				
					| 
						
						
						
							
								
							
						
					 | 
					@ -199,8 +199,15 @@ public class StatsProjectServiceImpl implements StatsProjectService { | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					            dimDateEntityList.add(agencyDailyEntity); | 
					 | 
					 | 
					            dimDateEntityList.add(agencyDailyEntity); | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					        } | 
					 | 
					 | 
					        } | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					
 | 
					 | 
					 | 
					
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					        //6:批量保存机关日统计数据
 | 
					 | 
					 | 
					        //先删后增
 | 
				
			
			
				
				
			
		
	
		
		
	
		
		
			
				
					 | 
					 | 
					        if (null != dimDateEntityList && dimDateEntityList.size() > NumConstant.ZERO) { | 
					 | 
					 | 
					        if (null != dimDateEntityList && dimDateEntityList.size() > NumConstant.ZERO) { | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					 | 
					 | 
					 | 
					            //5:根据客户Id、日维度Id批量物理删除一下可能存在的历史数据
 | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					 | 
					 | 
					 | 
					            FactAgencyProjectDailyEntity delEntity = new FactAgencyProjectDailyEntity(); | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					 | 
					 | 
					 | 
					            delEntity.setCustomerId(customerId); | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					 | 
					 | 
					 | 
					            delEntity.setDateId(dimId.getDateId()); | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					 | 
					 | 
					 | 
					            factAgencyProjectDailyService.delDateProject(delEntity); | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					 | 
					 | 
					 | 
					
 | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					 | 
					 | 
					 | 
					            //6:批量保存机关日统计数据
 | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					            factAgencyProjectDailyService.insertBatch(dimDateEntityList); | 
					 | 
					 | 
					            factAgencyProjectDailyService.insertBatch(dimDateEntityList); | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					        } | 
					 | 
					 | 
					        } | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					        return null; | 
					 | 
					 | 
					        return null; | 
				
			
			
		
	
	
		
		
			
				
					| 
						
						
						
							
								
							
						
					 | 
					@ -211,8 +218,76 @@ public class StatsProjectServiceImpl implements StatsProjectService { | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					     * @Author sun | 
					 | 
					 | 
					     * @Author sun | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					     * @Description 数据-项目-机关月统计 | 
					 | 
					 | 
					     * @Description 数据-项目-机关月统计 | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					     **/ | 
					 | 
					 | 
					     **/ | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					    private void agencyMonthProjectStats(String customerId) { | 
					 | 
					 | 
					    private String agencyMonthProjectStats(String customerId, List<DimAgencyDTO> dimAgencyList) { | 
				
			
			
				
				
			
		
	
		
		
	
		
		
			
				
					 | 
					 | 
					 | 
					 | 
					 | 
					        //1:获取个维度Id方便使用
 | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					 | 
					 | 
					 | 
					        DimIdGenerator.DimIdBean dimId = DimIdGenerator.getDimIdBean(yesterDay()); | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					 | 
					 | 
					 | 
					
 | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					 | 
					 | 
					 | 
					        //2:获取昨天日期所在月份的起始日期和结束日期
 | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					 | 
					 | 
					 | 
					        MonthProjectListFormDTO formDTO = new MonthProjectListFormDTO(); | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					 | 
					 | 
					 | 
					        formDTO.setCustomerId(customerId); | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					 | 
					 | 
					 | 
					        formDTO.setStartTime(getMonthBegin(yesterDay())); | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					 | 
					 | 
					 | 
					        formDTO.setEndTime(getMonthEnd(yesterDay())); | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					 | 
					 | 
					 | 
					
 | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					 | 
					 | 
					 | 
					        //批量月数据新增对象
 | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					 | 
					 | 
					 | 
					        List<FactAgencyProjectMonthlyEntity> monthlyEntityList = new ArrayList<>(); | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					 | 
					 | 
					 | 
					        //3:遍历机关维度数据,分别统计每个组织月数据
 | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					 | 
					 | 
					 | 
					        for (DimAgencyDTO agency : dimAgencyList) { | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					 | 
					 | 
					 | 
					            //4:查询上一月机关日统计数据,按时间倒序
 | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					 | 
					 | 
					 | 
					            formDTO.setAgencyId(agency.getId()); | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					 | 
					 | 
					 | 
					            List<FactAgencyProjectDailyEntity> projectDailyList = factAgencyProjectDailyService.getMonthProjectList(formDTO); | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					
 | 
					 | 
					 | 
					
 | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					 | 
					 | 
					 | 
					            //5:汇总统计上一月机关月统计数据
 | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					 | 
					 | 
					 | 
					            //月增量中项目总数、处理中总数、已结案总数、已结案已解决总数、已结案未解决总数
 | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					 | 
					 | 
					 | 
					            int pendingIncr = 0; | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					 | 
					 | 
					 | 
					            int closedIncr = 0; | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					 | 
					 | 
					 | 
					            int resolvedIncr = 0; | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					 | 
					 | 
					 | 
					            int unResolvedIncr = 0; | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					 | 
					 | 
					 | 
					            for (FactAgencyProjectDailyEntity date : projectDailyList) { | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					 | 
					 | 
					 | 
					                pendingIncr += date.getPendingIncr(); | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					 | 
					 | 
					 | 
					                closedIncr += date.getClosedIncr(); | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					 | 
					 | 
					 | 
					                resolvedIncr += date.getResolvedIncr(); | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					 | 
					 | 
					 | 
					                unResolvedIncr += date.getUnresolvedIncr(); | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					 | 
					 | 
					 | 
					            } | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					 | 
					 | 
					 | 
					            //6:实体字段属性赋值
 | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					 | 
					 | 
					 | 
					            FactAgencyProjectMonthlyEntity monthlyEntity = new FactAgencyProjectMonthlyEntity(); | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					 | 
					 | 
					 | 
					            monthlyEntity.setCustomerId(customerId); | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					 | 
					 | 
					 | 
					            monthlyEntity.setAgencyId(agency.getId()); | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					 | 
					 | 
					 | 
					            monthlyEntity.setParentId(agency.getPid()); | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					 | 
					 | 
					 | 
					            monthlyEntity.setMonthId(dimId.getMonthId()); | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					 | 
					 | 
					 | 
					            monthlyEntity.setQuarterId(dimId.getQuarterId()); | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					 | 
					 | 
					 | 
					            monthlyEntity.setYearId(dimId.getYearId()); | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					 | 
					 | 
					 | 
					            if (null != projectDailyList && projectDailyList.size() > NumConstant.ZERO) { | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					 | 
					 | 
					 | 
					                FactAgencyProjectDailyEntity entity = projectDailyList.get(0); | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					 | 
					 | 
					 | 
					                monthlyEntity.setProjectTotal(entity.getProjectTotal()); | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					 | 
					 | 
					 | 
					                monthlyEntity.setPendingTotal(entity.getPendingTotal()); | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					 | 
					 | 
					 | 
					                monthlyEntity.setPendingRatio(entity.getPendingRatio()); | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					 | 
					 | 
					 | 
					                monthlyEntity.setClosedTotal(entity.getClosedTotal()); | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					 | 
					 | 
					 | 
					                monthlyEntity.setClosedRatio(entity.getClosedRatio()); | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					 | 
					 | 
					 | 
					                monthlyEntity.setResolvedTotal(entity.getResolvedTotal()); | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					 | 
					 | 
					 | 
					                monthlyEntity.setResolvedRatio(entity.getResolvedRatio()); | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					 | 
					 | 
					 | 
					                monthlyEntity.setUnresolvedTotal(entity.getUnresolvedTotal()); | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					 | 
					 | 
					 | 
					                monthlyEntity.setUnresolvedRatio(entity.getUnresolvedRatio()); | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					 | 
					 | 
					 | 
					                monthlyEntity.setProjectIncr(pendingIncr + closedIncr); | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					 | 
					 | 
					 | 
					                monthlyEntity.setPendingIncr(pendingIncr); | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					 | 
					 | 
					 | 
					                monthlyEntity.setClosedIncr(closedIncr); | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					 | 
					 | 
					 | 
					                monthlyEntity.setResolvedIncr(resolvedIncr); | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					 | 
					 | 
					 | 
					                monthlyEntity.setUnresolvedIncr(unResolvedIncr); | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					 | 
					 | 
					 | 
					            } | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					 | 
					 | 
					 | 
					
 | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					 | 
					 | 
					 | 
					            monthlyEntityList.add(monthlyEntity); | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					 | 
					 | 
					 | 
					        } | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					 | 
					 | 
					 | 
					
 | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					 | 
					 | 
					 | 
					        if (null != monthlyEntityList && monthlyEntityList.size() > NumConstant.ZERO) { | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					 | 
					 | 
					 | 
					            //7:根据客户Id、月份Id批量删除一下可能存在的历史数据
 | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					 | 
					 | 
					 | 
					            FactAgencyProjectMonthlyEntity delEntity = new FactAgencyProjectMonthlyEntity(); | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					 | 
					 | 
					 | 
					            delEntity.setCustomerId(customerId); | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					 | 
					 | 
					 | 
					            delEntity.setMonthId(dimId.getMonthId()); | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					 | 
					 | 
					 | 
					            factAgencyProjectMonthlyService.delMonthProject(delEntity); | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					 | 
					 | 
					 | 
					
 | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					 | 
					 | 
					 | 
					            //8:批量保存机关月统计数据
 | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					 | 
					 | 
					 | 
					            factAgencyProjectMonthlyService.insertBatch(monthlyEntityList); | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					 | 
					 | 
					 | 
					        } | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					 | 
					 | 
					 | 
					        return null; | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					    } | 
					 | 
					 | 
					    } | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					
 | 
					 | 
					 | 
					
 | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					    /** | 
					 | 
					 | 
					    /** | 
				
			
			
		
	
	
		
		
			
				
					| 
						
							
								
							
						
						
							
								
							
						
						
					 | 
					@ -251,4 +326,47 @@ public class StatsProjectServiceImpl implements StatsProjectService { | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					        return date; | 
					 | 
					 | 
					        return date; | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					    } | 
					 | 
					 | 
					    } | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					
 | 
					 | 
					 | 
					
 | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					 | 
					 | 
					 | 
					    /** | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					 | 
					 | 
					 | 
					     * @Author sun | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					 | 
					 | 
					 | 
					     * @Description 获取指定日期所在月份开始的时间 | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					 | 
					 | 
					 | 
					     **/ | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					 | 
					 | 
					 | 
					    public Date getMonthBegin(Date date) { | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					 | 
					 | 
					 | 
					        Calendar c = Calendar.getInstance(); | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					 | 
					 | 
					 | 
					        c.setTime(date); | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					 | 
					 | 
					 | 
					        //设置为1号,当前日期既为本月第一天
 | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					 | 
					 | 
					 | 
					        c.set(Calendar.DAY_OF_MONTH, 1); | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					 | 
					 | 
					 | 
					        //将小时至0
 | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					 | 
					 | 
					 | 
					        c.set(Calendar.HOUR_OF_DAY, 0); | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					 | 
					 | 
					 | 
					        //将分钟至0
 | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					 | 
					 | 
					 | 
					        c.set(Calendar.MINUTE, 0); | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					 | 
					 | 
					 | 
					        //将秒至0
 | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					 | 
					 | 
					 | 
					        c.set(Calendar.SECOND, 0); | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					 | 
					 | 
					 | 
					        //将毫秒至0
 | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					 | 
					 | 
					 | 
					        c.set(Calendar.MILLISECOND, 0); | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					 | 
					 | 
					 | 
					        //获取本月第一天的时间
 | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					 | 
					 | 
					 | 
					        return c.getTime(); | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					 | 
					 | 
					 | 
					    } | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					 | 
					 | 
					 | 
					
 | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					 | 
					 | 
					 | 
					    /** | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					 | 
					 | 
					 | 
					     * @Author sun | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					 | 
					 | 
					 | 
					     * @Description 获取指定日期所在月份结束的时间 | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					 | 
					 | 
					 | 
					     **/ | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					 | 
					 | 
					 | 
					    public Date getMonthEnd(Date date) { | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					 | 
					 | 
					 | 
					        Calendar c = Calendar.getInstance(); | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					 | 
					 | 
					 | 
					        c.setTime(date); | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					 | 
					 | 
					 | 
					        //设置为当月最后一天
 | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					 | 
					 | 
					 | 
					        c.set(Calendar.DAY_OF_MONTH, c.getActualMaximum(Calendar.DAY_OF_MONTH)); | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					 | 
					 | 
					 | 
					        //将小时至23
 | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					 | 
					 | 
					 | 
					        c.set(Calendar.HOUR_OF_DAY, 23); | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					 | 
					 | 
					 | 
					        //将分钟至59
 | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					 | 
					 | 
					 | 
					        c.set(Calendar.MINUTE, 59); | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					 | 
					 | 
					 | 
					        //将秒至59
 | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					 | 
					 | 
					 | 
					        c.set(Calendar.SECOND, 59); | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					 | 
					 | 
					 | 
					        //将毫秒至999
 | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					 | 
					 | 
					 | 
					        c.set(Calendar.MILLISECOND, 999); | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					 | 
					 | 
					 | 
					        //获取本月最后一天的时间
 | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					 | 
					 | 
					 | 
					        System.out.println(c.getTime()); | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					 | 
					 | 
					 | 
					        System.out.println(c); | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					 | 
					 | 
					 | 
					        return c.getTime(); | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					 | 
					 | 
					 | 
					    } | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					} | 
					 | 
					 | 
					} | 
				
			
			
		
	
	
		
		
			
				
					| 
						
						
						
					 | 
					
  |