Browse Source

多客户时参数 调整时间参数

dev_shibei_match
jianjun 4 years ago
parent
commit
a305493f91
  1. 44
      epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/evaluationindex/extract/biz/impl/BizDataStatsServiceImpl.java
  2. 11
      epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/user/impl/StatsStaffPatrolServiceImpl.java

44
epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/evaluationindex/extract/biz/impl/BizDataStatsServiceImpl.java

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

11
epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/user/impl/StatsStaffPatrolServiceImpl.java

@ -11,7 +11,6 @@ import com.epmet.dto.user.result.StatsStaffPatrolRecordDailyDTO;
import com.epmet.entity.user.StatsStaffPatrolRecordDailyEntity;
import com.epmet.service.user.StatsStaffPatrolService;
import lombok.extern.slf4j.Slf4j;
import org.apache.commons.lang3.StringUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
@ -33,16 +32,6 @@ public class StatsStaffPatrolServiceImpl implements StatsStaffPatrolService {
@Override
public Integer delAndInsertBatch(StaffPatrolStatsFormDTO formDTO, List<StatsStaffPatrolRecordDailyDTO> insertList) {
LambdaQueryWrapper<StatsStaffPatrolRecordDailyEntity> queryWrapper = new LambdaQueryWrapper<>();
queryWrapper.eq(StatsStaffPatrolRecordDailyEntity::getCustomerId, formDTO.getCustomerId())
.eq(StatsStaffPatrolRecordDailyEntity::getDateId, formDTO.getDateId());
if (StringUtils.isNotBlank(formDTO.getGridId())) {
queryWrapper.eq(StatsStaffPatrolRecordDailyEntity::getGridId, formDTO.getGridId());
}
if (StringUtils.isNotBlank(formDTO.getStaffId())) {
queryWrapper.eq(StatsStaffPatrolRecordDailyEntity::getStaffId, formDTO.getStaffId());
}
int delete = statsStaffPatrolRecordDailyDao.delete(formDTO);
log.debug("delAndInsertBatch delete:{},param:{}", delete, JSON.toJSONString(formDTO));
return statsStaffPatrolRecordDailyDao.insertBatch(insertList);

Loading…
Cancel
Save