| 
						
						
							
								
							
						
						
					 | 
				
				 | 
				
					@ -11,7 +11,6 @@ import com.epmet.dto.user.result.CustomerGridStaffDTO; | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					import com.epmet.dto.user.result.CustomerStaffDTO; | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					import com.epmet.dto.user.result.StaffPatrolRecordResult; | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					import com.epmet.dto.user.result.StatsStaffPatrolRecordDailyDTO; | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					import com.epmet.entity.user.StatsStaffPatrolRecordDailyEntity; | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					import com.epmet.service.evaluationindex.extract.biz.BizDataStatsService; | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					import com.epmet.service.org.CustomerStaffService; | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					import com.epmet.service.project.ProjectService; | 
				
			
			
		
	
	
		
			
				
					| 
						
						
						
							
								
							
						
					 | 
				
				 | 
				
					@ -20,6 +19,7 @@ import com.epmet.service.user.UserService; | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					import com.epmet.util.DimIdGenerator; | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					import lombok.extern.slf4j.Slf4j; | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					import org.apache.commons.collections4.CollectionUtils; | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					import org.jetbrains.annotations.NotNull; | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					import org.jetbrains.annotations.Nullable; | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					import org.springframework.beans.factory.annotation.Autowired; | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					import org.springframework.stereotype.Service; | 
				
			
			
		
	
	
		
			
				
					| 
						
							
								
							
						
						
							
								
							
						
						
					 | 
				
				 | 
				
					@ -64,12 +64,16 @@ public class BizDataStatsServiceImpl implements BizDataStatsService { | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					    private void reloadStaffPatrolStatsData(StaffPatrolStatsFormDTO formDTO, List<CustomerGridStaffDTO> allGridMembers) { | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					        //获取昨日的巡查统计记录
 | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					        String yesterdayStr = getYesterdayString(formDTO); | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					        List<StatsStaffPatrolRecordDailyDTO> yesterdayStatsList = statsStaffPatrolService.selectData(formDTO.getCustomerId(), yesterdayStr); | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					        StaffPatrolStatsFormDTO yesterdayParam = ConvertUtils.sourceToTarget(formDTO, StaffPatrolStatsFormDTO.class); | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					        yesterdayParam.setDateId(yesterdayStr); | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					        //遍历网格员重新初始化数据
 | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					        List<StatsStaffPatrolRecordDailyDTO> insertList = buildInitPatrolStatsData(yesterdayParam, allGridMembers); | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					       /* List<StatsStaffPatrolRecordDailyDTO> yesterdayStatsList = statsStaffPatrolService.selectData(formDTO.getCustomerId(), yesterdayStr); | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					        if (CollectionUtils.isEmpty(yesterdayStatsList)) { | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					            log.warn("reloadStaffPatrolStatsData have any yesterdayStats data,dateId:{}", yesterdayStr); | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					            return; | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					        } | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					        Map<String, StatsStaffPatrolRecordDailyDTO> yesterdayStatsMap = yesterdayStatsList.stream().collect(Collectors.toMap(o -> o.getGridId() + o.getStaffId(), o -> o, (o1, o2) -> o1)); | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					        }*/ | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					        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); | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					
 | 
				
			
			
		
	
	
		
			
				
					| 
						
						
						
							
								
							
						
					 | 
				
				 | 
				
					@ -77,8 +81,6 @@ public class BizDataStatsServiceImpl implements BizDataStatsService { | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					        List<ProjectDTO> yesterdayProjectList = projectService.selectProjectListByDateId(formDTO.getCustomerId(), yesterdayStr, ProjectConstant.PROJECT_ORIGIN_AGENCY); | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					
 | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					        //遍历网格员 设置其 巡查次数 巡查时常 上报项目数
 | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					        Map<String, CustomerGridStaffDTO> gridMemberMap = allGridMembers.stream().collect(Collectors.toMap(o -> o.getGridId() + o.getUserId(), o -> o, (o1, o2) -> o1)); | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					        List<StatsStaffPatrolRecordDailyEntity> updateList = new ArrayList<>(); | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					        yesterdayPatrolList.forEach(patrolRecord -> { | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					            String key = patrolRecord.getGrid().concat(patrolRecord.getStaffId()); | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					            StatsStaffPatrolRecordDailyDTO patrolRecordDailyDTO = yesterdayStatsMap.get(key); | 
				
			
			
		
	
	
		
			
				
					| 
						
						
						
							
								
							
						
					 | 
				
				 | 
				
					@ -101,25 +103,24 @@ public class BizDataStatsServiceImpl implements BizDataStatsService { | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					        }); | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					        //填充项目数
 | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					        yesterdayProjectList.forEach(projectDTO -> { | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					            String key = projectDTO.getCreatedBy(); | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					
 | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					            yesterdayPatrolList.forEach(patrol -> { | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					                //项目立项时间 在巡查期间时 总数加1
 | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					                long projectCreateTime = projectDTO.getCreatedTime().getTime(); | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					                if (patrol.getPatrolStartTime().getTime() >= projectCreateTime && patrol.getPatrolStartTime().getTime() >= projectCreateTime) { | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					                if (projectCreateTime>= patrol.getPatrolStartTime().getTime()   && projectCreateTime <= patrol.getPatrolEndTime().getTime()) { | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					                    String unqPatrolKey = getUnqPatrolKey(patrol.getGrid(), patrol.getStaffId()); | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					                    StatsStaffPatrolRecordDailyDTO recordDailyDTO = yesterdayStatsMap.get(unqPatrolKey); | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					                    if (recordDailyDTO == null) { | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					                        log.error("have project data but have any patrolRecordDaily,gridId:{},staffId:{}", patrol.getGrid(), patrol.getStaffId()); | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					                        return; | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					                    } | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					
 | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					                    recordDailyDTO.setReportProjectCount(recordDailyDTO.getReportProjectCount() + 1); | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					                } | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					            }); | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					        }); | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					        StaffPatrolStatsFormDTO yesterdayParam = ConvertUtils.sourceToTarget(formDTO, StaffPatrolStatsFormDTO.class); | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					        yesterdayParam.setDateId(yesterdayStr); | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					        Integer effectRow = statsStaffPatrolService.delAndInsertBatch(yesterdayParam, yesterdayStatsList); | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					
 | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					        Integer effectRow = statsStaffPatrolService.delAndInsertBatch(yesterdayParam, insertList); | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					        log.debug("initStaffPatrolStats insert rows:{}", effectRow); | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					    } | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					
 | 
				
			
			
		
	
	
		
			
				
					| 
						
							
								
							
						
						
							
								
							
						
						
					 | 
				
				 | 
				
					@ -147,6 +148,13 @@ public class BizDataStatsServiceImpl implements BizDataStatsService { | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					    private void initStaffPatrolTodayData(StaffPatrolStatsFormDTO formDTO, List<CustomerGridStaffDTO> allGridMembers) { | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					
 | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					
 | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					        List<StatsStaffPatrolRecordDailyDTO> insertList = buildInitPatrolStatsData(formDTO, allGridMembers); | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					        Integer effectRow = statsStaffPatrolService.delAndInsertBatch(formDTO, insertList); | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					        log.debug("initStaffPatrolStats insert rows:{}", effectRow); | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					    } | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					
 | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					    @NotNull | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					    private List<StatsStaffPatrolRecordDailyDTO> buildInitPatrolStatsData(StaffPatrolStatsFormDTO formDTO, List<CustomerGridStaffDTO> allGridMembers) { | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					        List<StatsStaffPatrolRecordDailyDTO> lastStaffPatrolList = userService.selectLastStaffPatrolList(formDTO); | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					        Map<String, StatsStaffPatrolRecordDailyDTO> lastPatrolMap = lastStaffPatrolList.stream().collect(Collectors.toMap(o -> o.getGridId() + o.getStaffId(), o -> o, (o1, o2) -> o1)); | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					        //构建数据 插入
 | 
				
			
			
		
	
	
		
			
				
					| 
						
							
								
							
						
						
							
								
							
						
						
					 | 
				
				 | 
				
					@ -181,8 +189,7 @@ public class BizDataStatsServiceImpl implements BizDataStatsService { | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					            insertList.add(record); | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					
 | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					        }); | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					        Integer effectRow = statsStaffPatrolService.delAndInsertBatch(formDTO, insertList); | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					        log.debug("initStaffPatrolStats insert rows:{}", effectRow); | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					        return insertList; | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					    } | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					
 | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					    private List<CustomerGridStaffDTO> getAllGridMembers(StaffPatrolStatsFormDTO formDTO) { | 
				
			
			
		
	
	
		
			
				
					| 
						
							
								
							
						
						
						
					 | 
				
				 | 
				
					
  |