|
|
@ -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); |
|
|
|
|
|
|
|
//初始化参数里日期的数据
|
|
|
|
initStaffPatrolTodayData(formDTO, 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) { |
|
|
|