| 
						
						
							
								
							
						
						
					 | 
				
				 | 
				
					@ -64,10 +64,7 @@ public class BizDataStatsServiceImpl implements BizDataStatsService { | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					    @Override | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					    public void exeDailyAll(BizDataFormDTO dataFormDTO) { | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					        String customerId = dataFormDTO.getCustomerId(); | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					        if (StringUtils.isBlank(dataFormDTO.getDateId()) && (StringUtils.isBlank(dataFormDTO.getStartDate()) && StringUtils.isBlank(dataFormDTO.getEndDate()))) { | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					            //如果没有设置开始日期、结束日期,默认查询昨天
 | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					            dataFormDTO.setDateId(DimIdGenerator.getDateDimId(DateUtils.addDateDays(new Date(), -1))); | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					        } | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					
 | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					        List<String> customerIds = new ArrayList<>(); | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					        if (StringUtils.isNotBlank(customerId)) { | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					            //指定某个客户
 | 
				
			
			
		
	
	
		
			
				
					| 
						
							
								
							
						
						
							
								
							
						
						
					 | 
				
				 | 
				
					@ -94,28 +91,38 @@ public class BizDataStatsServiceImpl implements BizDataStatsService { | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					        //校正参数里的前一天日期的数据
 | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					        //获取所有网格员
 | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					        List<CustomerGridStaffDTO> allGridMembers = getAllGridMembers(formDTO); | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					        reloadStaffPatrolStatsData(formDTO, allGridMembers); | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					        String yesterdayStr = getYesterdayString(formDTO); | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					        StaffPatrolStatsFormDTO yesterdayParam = ConvertUtils.sourceToTarget(formDTO, StaffPatrolStatsFormDTO.class); | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					        yesterdayParam.setDateId(yesterdayStr); | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					        reloadStaffPatrolStatsData(yesterdayParam, allGridMembers); | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					
 | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					        //初始化参数里日期的数据
 | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					        //初始化参数里日期的数据  如果当前时间在1分钟内 则初始化
 | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					        String todayDateDimId = DimIdGenerator.getDateDimId(new Date()); | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					        if (todayDateDimId.equals(formDTO.getDateId())){ | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					            //如果当前时间-1分钟还等于今天 则进行初始化操作 否则执行数据纠正
 | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					            String dateDimId = DimIdGenerator.getDateDimId(new Date(System.currentTimeMillis() - 1 * 60 * 1000)); | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					            if (!dateDimId.equals(todayDateDimId)){ | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					                initStaffPatrolTodayData(formDTO, allGridMembers); | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					            }else{ | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					                reloadStaffPatrolStatsData(formDTO, allGridMembers); | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					            } | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					        } | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					
 | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					    } | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					
 | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					    private void reloadStaffPatrolStatsData(StaffPatrolStatsFormDTO formDTO, List<CustomerGridStaffDTO> allGridMembers) { | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					        log.info("reloadStaffPatrolStatsData param:{}",JSON.toJSONString(formDTO)); | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					        //获取昨日的巡查统计记录
 | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					        String yesterdayStr = getYesterdayString(formDTO); | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					        StaffPatrolStatsFormDTO yesterdayParam = ConvertUtils.sourceToTarget(formDTO, StaffPatrolStatsFormDTO.class); | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					        yesterdayParam.setDateId(yesterdayStr); | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					
 | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					        //遍历网格员重新初始化数据
 | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					        List<StatsStaffPatrolRecordDailyDTO> insertList = buildInitPatrolStatsData(yesterdayParam, allGridMembers); | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					        List<StatsStaffPatrolRecordDailyDTO> insertList = buildInitPatrolStatsData(formDTO, allGridMembers); | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					
 | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					        Map<String, StatsStaffPatrolRecordDailyDTO> yesterdayStatsMap = insertList.stream().collect(Collectors.toMap(o -> o.getGridId() + o.getStaffId(), o -> o, (o1, o2) -> o1)); | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					        //获取昨日的巡查记录
 | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					        List<StaffPatrolRecordResult> yesterdayPatrolList = userService.selectStaffPatrolListByDateId(formDTO.getCustomerId(), yesterdayStr); | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					        List<StaffPatrolRecordResult> yesterdayPatrolList = userService.selectStaffPatrolListByDateId(formDTO.getCustomerId(), formDTO.getDateId()); | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					
 | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					        //获取昨日的立项项目数
 | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					        List<ProjectDTO> yesterdayProjectList = projectService.selectProjectListByDateId(formDTO.getCustomerId(), yesterdayStr, ProjectConstant.PROJECT_ORIGIN_AGENCY); | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					        List<ProjectDTO> yesterdayProjectList = projectService.selectProjectListByDateId(formDTO.getCustomerId(), formDTO.getDateId(), ProjectConstant.PROJECT_ORIGIN_AGENCY); | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					
 | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					        //遍历网格员 设置其 巡查次数 巡查时常 上报项目数
 | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					        yesterdayPatrolList.forEach(patrolRecord -> { | 
				
			
			
		
	
	
		
			
				
					| 
						
							
								
							
						
						
							
								
							
						
						
					 | 
				
				 | 
				
					@ -158,7 +165,7 @@ public class BizDataStatsServiceImpl implements BizDataStatsService { | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					            }); | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					        }); | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					
 | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					        Integer effectRow = statsStaffPatrolService.delAndInsertBatch(yesterdayParam, insertList); | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					        Integer effectRow = statsStaffPatrolService.delAndInsertBatch(formDTO, insertList); | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					        log.debug("initStaffPatrolStats insert rows:{}", effectRow); | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					    } | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					
 | 
				
			
			
		
	
	
		
			
				
					| 
						
							
								
							
						
						
							
								
							
						
						
					 | 
				
				 | 
				
					@ -255,6 +262,10 @@ public class BizDataStatsServiceImpl implements BizDataStatsService { | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					    } | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					
 | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					    private void submitJob(BizDataFormDTO param) { | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					        if (StringUtils.isBlank(param.getDateId()) && (StringUtils.isBlank(param.getStartDate()) && StringUtils.isBlank(param.getEndDate()))) { | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					            //如果没有设置开始日期、结束日期,默认查询今天
 | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					            param.setDateId(DimIdGenerator.getDateDimId(new Date())); | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					        } | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					        boolean isRange = StringUtils.isBlank(param.getDateId()); | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					        List<String> daysBetween = null; | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					        if (isRange) { | 
				
			
			
		
	
	
		
			
				
					| 
						
						
						
							
								
							
						
					 | 
				
				 | 
				
					@ -265,11 +276,6 @@ public class BizDataStatsServiceImpl implements BizDataStatsService { | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					            StaffPatrolStatsFormDTO formDTO = ConvertUtils.sourceToTarget(param, StaffPatrolStatsFormDTO.class); | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					            if (!isRange) { | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					                try { | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					                    //执行参数改为今天
 | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					                    Date parse = DateUtils.parse(param.getDateId(), DateUtils.DATE_PATTERN_YYYYMMDD); | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					                    Date addDateId = DateUtils.addDateDays(parse, NumConstant.ONE); | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					                    String dateDimId = DimIdGenerator.getDateDimId(addDateId); | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					                    formDTO.setDateId(dateDimId); | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					                    //初始化form里的今天的数据 并纠正昨日的数据
 | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					                    this.executeStaffPatrolStats(formDTO); | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					                } catch (Exception e) { | 
				
			
			
		
	
	
		
			
				
					| 
						
							
								
							
						
						
						
					 | 
				
				 | 
				
					
  |