|  |  | @ -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) { | 
			
		
	
	
		
			
				
					|  |  | 
 |