|
|
@ -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,13 +81,11 @@ 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); |
|
|
|
if (patrolRecordDailyDTO != null) { |
|
|
|
long total = (patrolRecord.getActrualEndTime().getTime() - patrolRecord.getPatrolStartTime().getTime()) / 1000; |
|
|
|
long total = (patrolRecord.getPatrolEndTime().getTime() - patrolRecord.getPatrolStartTime().getTime()) / 1000; |
|
|
|
if (patrolRecordDailyDTO.getTotalTime() == null) { |
|
|
|
patrolRecordDailyDTO.setTotalTime(NumConstant.ZERO); |
|
|
|
} |
|
|
@ -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) { |
|
|
|