Commit 525b5555 authored by 赵啸非's avatar 赵啸非

修改排队统计更新与组合查询

parent a2502573
......@@ -72,202 +72,240 @@ public class PhQueueStatServiceImpl extends AbstractCRUDServiceImpl<PhQueueStatD
updateSiteBussinessPhCount(currentDate, entity, phQueueEntities);
//窗口
updateSiteWindowPhCount(currentDate, entity, phQueueEntities);
//平均等待时间
//组合条件更新
updateSiteConditionPhCount(entity, phQueueEntities);
return Rest.ok();
}
private void updateSitePhCount(PhQueueStatEntity entity, List<PhQueueEntity> phQueueEntities) {
PhQueueStatQuery phQueueStatQuery = new PhQueueStatQuery();
PhQueueStatEntity phQueueStatEntity = this.selectOne(phQueueStatQuery
.siteId(entity.getSiteId())
.year(entity.getYear())
.month(entity.getMonth())
.day(entity.getDay()));
Double intAvg = phQueueEntities.stream().mapToInt(e -> e.getWaitTime()).average().orElse(0D);
PhQueueStatQuery phQueueStatQuery = getPhQueueStatQuery(entity);
Double intAvg = phQueueEntities.parallelStream().mapToInt(e -> e.getWaitTime()).average().orElse(0D);
PhQueueStatEntity phQueueStatEntity = getPhQueueStatEntity(entity, phQueueEntities, intAvg, phQueueStatQuery);
if (ObjectUtils.isEmpty(phQueueStatEntity)) {
if (phQueueStatEntity.newEntity()) {
//统计当前站点新增所有评价数量
phQueueStatEntity = new PhQueueStatEntity();
phQueueStatEntity.initAttrValue();
phQueueStatEntity.setSiteId(entity.getSiteId());
phQueueStatEntity.setSiteCode(entity.getSiteCode());
phQueueStatEntity.setSiteName(entity.getSiteName());
phQueueStatEntity.setPhCount(phQueueEntities.size());
//计算平均等待时间
phQueueStatEntity.setWaitTime(intAvg.intValue());
phQueueStatEntity.setYear(entity.getYear());
phQueueStatEntity.setMonth(entity.getMonth());
phQueueStatEntity.setDay(entity.getDay());
phQueueStatEntity.setCreateTime(new Date());
phQueueStatEntity.setCreateUserId(1L);
this.save(phQueueStatEntity);
} else {
phQueueStatEntity.setPhCount(phQueueEntities.size());
phQueueStatEntity.setWaitTime(intAvg.intValue());
phQueueStatEntity.setYear(entity.getYear());
phQueueStatEntity.setMonth(entity.getMonth());
phQueueStatEntity.setDay(entity.getDay());
phQueueStatEntity.setUpdateTime(new Date());
phQueueStatEntity.setUpdateUserId(1L);
this.update(phQueueStatEntity);
}
}
private void updateSiteSectionNamePhCount(String currentDate, PhQueueStatEntity entity, List<PhQueueEntity> phQueueEntities) {
Map<String, List<PhQueueEntity>> collect = phQueueEntities.stream().collect(Collectors.groupingBy(x -> x.getSectionName()));
collect.entrySet().stream().forEach(item -> {
Map<String, List<PhQueueEntity>> collect = phQueueEntities.parallelStream().collect(Collectors.groupingBy(x -> x.getSectionName()));
List<PhQueueStatEntity> saveAndUpdatelist = collect.entrySet().parallelStream().map(item -> {
String sectionName = item.getKey();
if (ObjectUtils.isEmpty(sectionName)) return;
if (ObjectUtils.isEmpty(sectionName)) return null;
List<PhQueueEntity> value = item.getValue();
Double intAvg = value.stream().mapToInt(e -> e.getWaitTime()).average().orElse(0D);
log.info("更新站点排队统计数据,站点名称:{},日期:{},部门:{},排队数量:{}", entity.getSiteName(), currentDate,sectionName, phQueueEntities.size());
PhQueueStatEntity phQueueStatEntity = this.selectOne(new PhQueueStatQuery()
.siteId(entity.getSiteId())
.sectionName(sectionName)
.year(entity.getYear())
.month(entity.getMonth())
.day(entity.getDay()));
if (ObjectUtils.isEmpty(phQueueStatEntity)) {
//统计当前站点新增所有评价数量
phQueueStatEntity = new PhQueueStatEntity();
phQueueStatEntity.initAttrValue();
phQueueStatEntity.setSiteId(entity.getSiteId());
phQueueStatEntity.setSiteCode(entity.getSiteCode());
phQueueStatEntity.setSiteName(entity.getSiteName());
Double intAvg = value.parallelStream().mapToInt(e -> e.getWaitTime()).average().orElse(0D);
// log.info("更新站点排队统计数据,站点名称:{},日期:{},部门:{},排队数量:{}", entity.getSiteName(), currentDate,sectionName, phQueueEntities.size());
PhQueueStatQuery phQueueStatQuery = getPhQueueStatQuery(entity);
phQueueStatQuery.setSectionName(sectionName);
PhQueueStatEntity phQueueStatEntity = getPhQueueStatEntity(entity, value, intAvg, phQueueStatQuery);
phQueueStatEntity.setSectionName(sectionName);
phQueueStatEntity.setPhCount(value.size());
phQueueStatEntity.setWaitTime(intAvg.intValue());
phQueueStatEntity.setYear(entity.getYear());
phQueueStatEntity.setMonth(entity.getMonth());
phQueueStatEntity.setDay(entity.getDay());
phQueueStatEntity.setCreateTime(new Date());
phQueueStatEntity.setCreateUserId(1L);
this.save(phQueueStatEntity);
} else {
phQueueStatEntity.setPhCount(value.size());
phQueueStatEntity.setWaitTime(intAvg.intValue());
phQueueStatEntity.setYear(entity.getYear());
phQueueStatEntity.setMonth(entity.getMonth());
phQueueStatEntity.setDay(entity.getDay());
phQueueStatEntity.setUpdateTime(new Date());
phQueueStatEntity.setUpdateUserId(1L);
this.update(phQueueStatEntity);
}
});
}
return phQueueStatEntity;
}).filter(f -> f != null).collect(Collectors.toList());
saveUpdatePhqueueStatList(saveAndUpdatelist);
}
private void updateSiteHallPhCount(String currentDate, PhQueueStatEntity entity, List<PhQueueEntity> phQueueEntities) {
Map<String, List<PhQueueEntity>> collect = phQueueEntities.stream().collect(Collectors.groupingBy(x -> x.getHallName()));
collect.entrySet().stream().forEach(item -> {
Map<String, List<PhQueueEntity>> collect = phQueueEntities.parallelStream().collect(Collectors.groupingBy(x -> x.getHallName()));
List<PhQueueStatEntity> saveAndUpdatelist =collect.entrySet().parallelStream().map(item -> {
String hallName = item.getKey();
if (ObjectUtils.isEmpty(hallName)) return;
if (ObjectUtils.isEmpty(hallName)) return null;
List<PhQueueEntity> value = item.getValue();
Double intAvg = value.stream().mapToInt(e -> e.getWaitTime()).average().orElse(0D);
log.info("更新站点排队统计数据,站点名称:{},日期:{},大厅:{},排队数量:{}", entity.getSiteName(), currentDate, hallName, phQueueEntities.size());
PhQueueStatEntity phQueueStatEntity = this.selectOne(new PhQueueStatQuery()
.siteId(entity.getSiteId())
.hallName(hallName)
.year(entity.getYear())
.month(entity.getMonth())
.day(entity.getDay()));
if (ObjectUtils.isEmpty(phQueueStatEntity)) {
//统计当前站点新增所有评价数量
phQueueStatEntity = new PhQueueStatEntity();
phQueueStatEntity.initAttrValue();
phQueueStatEntity.setSiteId(entity.getSiteId());
phQueueStatEntity.setSiteCode(entity.getSiteCode());
phQueueStatEntity.setSiteName(entity.getSiteName());
Double intAvg = value.parallelStream().mapToInt(e -> e.getWaitTime()).average().orElse(0D);
//log.info("更新站点排队统计数据,站点名称:{},日期:{},大厅:{},排队数量:{}", entity.getSiteName(), currentDate, hallName, phQueueEntities.size());
PhQueueStatQuery phQueueStatQuery = getPhQueueStatQuery(entity);
phQueueStatQuery.setHallName(hallName);
PhQueueStatEntity phQueueStatEntity = getPhQueueStatEntity(entity, value, intAvg, phQueueStatQuery);
phQueueStatEntity.setHallName(hallName);
phQueueStatEntity.setPhCount(value.size());
phQueueStatEntity.setWaitTime(intAvg.intValue());
phQueueStatEntity.setYear(entity.getYear());
phQueueStatEntity.setMonth(entity.getMonth());
phQueueStatEntity.setDay(entity.getDay());
phQueueStatEntity.setCreateTime(new Date());
phQueueStatEntity.setCreateUserId(1L);
this.save(phQueueStatEntity);
} else {
phQueueStatEntity.setPhCount(value.size());
phQueueStatEntity.setWaitTime(intAvg.intValue());
phQueueStatEntity.setYear(entity.getYear());
phQueueStatEntity.setMonth(entity.getMonth());
phQueueStatEntity.setDay(entity.getDay());
phQueueStatEntity.setUpdateTime(new Date());
phQueueStatEntity.setUpdateUserId(1L);
this.update(phQueueStatEntity);
}
});
return phQueueStatEntity;
}).filter(f -> f != null).collect(Collectors.toList());
saveUpdatePhqueueStatList(saveAndUpdatelist);
}
private void updateSiteBussinessPhCount(String currentDate, PhQueueStatEntity entity, List<PhQueueEntity> phQueueEntities) {
Map<String, List<PhQueueEntity>> collect = phQueueEntities.stream().collect(Collectors.groupingBy(x -> x.getBusiness()));
collect.entrySet().stream().forEach(item -> {
Map<String, List<PhQueueEntity>> collect = phQueueEntities.parallelStream().collect(Collectors.groupingBy(x -> x.getBusiness()));
List<PhQueueStatEntity> saveAndUpdatelist =collect.entrySet().parallelStream().map(item -> {
String bussiness = item.getKey();
if (ObjectUtils.isEmpty(bussiness)) return;
if (ObjectUtils.isEmpty(bussiness)) return null;
List<PhQueueEntity> value = item.getValue();
Double intAvg = value.stream().mapToInt(e -> e.getWaitTime()).average().orElse(0D);
log.info("更新站点排队统计数据,站点名称:{},日期:{},业务:{},排队数量:{}", entity.getSiteName(), currentDate, bussiness, phQueueEntities.size());
PhQueueStatEntity phQueueStatEntity = this.selectOne(new PhQueueStatQuery()
.siteId(entity.getSiteId())
.business(bussiness)
.year(entity.getYear())
.month(entity.getMonth())
.day(entity.getDay()));
if (ObjectUtils.isEmpty(phQueueStatEntity)) {
//统计当前站点新增所有评价数量
phQueueStatEntity = new PhQueueStatEntity();
phQueueStatEntity.initAttrValue();
phQueueStatEntity.setSiteId(entity.getSiteId());
phQueueStatEntity.setSiteCode(entity.getSiteCode());
phQueueStatEntity.setSiteName(entity.getSiteName());
Double intAvg = value.parallelStream().mapToInt(e -> e.getWaitTime()).average().orElse(0D);
// log.info("更新站点排队统计数据,站点名称:{},日期:{},业务:{},排队数量:{}", entity.getSiteName(), currentDate, bussiness, phQueueEntities.size());
PhQueueStatQuery phQueueStatQuery = getPhQueueStatQuery(entity);
phQueueStatQuery.setBusiness(bussiness);
PhQueueStatEntity phQueueStatEntity = getPhQueueStatEntity(entity, value, intAvg, phQueueStatQuery);
phQueueStatEntity.setBusiness(bussiness);
phQueueStatEntity.setPhCount(value.size());
phQueueStatEntity.setWaitTime(intAvg.intValue());
phQueueStatEntity.setYear(entity.getYear());
phQueueStatEntity.setMonth(entity.getMonth());
phQueueStatEntity.setDay(entity.getDay());
phQueueStatEntity.setCreateTime(new Date());
phQueueStatEntity.setCreateUserId(1L);
this.save(phQueueStatEntity);
} else {
phQueueStatEntity.setPhCount(value.size());
phQueueStatEntity.setWaitTime(intAvg.intValue());
phQueueStatEntity.setYear(entity.getYear());
phQueueStatEntity.setMonth(entity.getMonth());
phQueueStatEntity.setDay(entity.getDay());
phQueueStatEntity.setUpdateTime(new Date());
phQueueStatEntity.setUpdateUserId(1L);
this.update(phQueueStatEntity);
}
});
return phQueueStatEntity;
}).filter(f -> f != null).collect(Collectors.toList());
saveUpdatePhqueueStatList(saveAndUpdatelist);
}
private void updateSiteWindowPhCount(String currentDate, PhQueueStatEntity entity, List<PhQueueEntity> phQueueEntities) {
Map<String, List<PhQueueEntity>> collect = phQueueEntities.stream().collect(Collectors.groupingBy(x -> x.getWindowFromnum()));
collect.entrySet().stream().forEach(item -> {
Map<String, List<PhQueueEntity>> collect = phQueueEntities.parallelStream().collect(Collectors.groupingBy(x -> x.getWindowFromnum()));
List<PhQueueStatEntity> saveAndUpdatelist =collect.entrySet().parallelStream().map(item -> {
String window = item.getKey();
if (ObjectUtils.isEmpty(window)) return;
if (ObjectUtils.isEmpty(window)) return null;
List<PhQueueEntity> value = item.getValue();
Double intAvg = value.stream().mapToInt(e -> e.getWaitTime()).average().orElse(0D);
Double intAvg = value.parallelStream().mapToInt(e -> e.getWaitTime()).average().orElse(0D);
// log.info("更新站点排队统计数据,站点名称:{},日期:{},窗口:{},排队数量:{}", entity.getSiteName(), currentDate,window, phQueueEntities.size());
PhQueueStatEntity phQueueStatEntity = this.selectOne(new PhQueueStatQuery()
.siteId(entity.getSiteId())
.windowFromnum(window)
PhQueueStatQuery phQueueStatQuery = getPhQueueStatQuery(entity);
phQueueStatQuery.setWindowFromnum(window);
PhQueueStatEntity phQueueStatEntity = getPhQueueStatEntity(entity, value, intAvg, phQueueStatQuery);
phQueueStatEntity.setWindowFromnum(window);
return phQueueStatEntity;
}).filter(f -> f != null).collect(Collectors.toList());
saveUpdatePhqueueStatList(saveAndUpdatelist);
}
@Override
public Result<PhQueueStatEntity> find(PhQueueStatEntity entity, PageInfo pageInfo, Context context) throws AppException {
Result<PhQueueStatEntity> result = new Result<>();
PhQueueStatQuery query = new PhQueueStatQuery();
BeanUtils.copyProperties(entity, query, BeanUtil.getNullPropertyNames(entity));
List<PhQueueStatEntity> billInfos = this.getBillInfos(query, pageInfo, context);
result.setList(billInfos);
result.setPageInfo(pageInfo);
return result;
}
@Override
public List<PhQueueStatEntity> getBillInfos(PhQueueStatQuery query, PageInfo pageInfo, Context context) {
if (!ObjectUtils.isEmpty(query.getGroupList())) {
//针对groupList分组 进行排序
if (query.getGroupList().contains("year") && query.getGroupList().contains("month") && query.getGroupList().contains("day")) {
query.setOrderColList(Arrays.asList(new OrderCol("year", OrderCol.DESCENDING), new OrderCol("month", OrderCol.DESCENDING), new OrderCol("day", OrderCol.DESCENDING)));
} else if (query.getGroupList().contains("year") && query.getGroupList().contains("month")) {
query.setOrderColList(Arrays.asList(new OrderCol("year", OrderCol.DESCENDING), new OrderCol("month", OrderCol.DESCENDING)));
} else if (query.getGroupList().contains("year")) {
query.setOrderColList(Arrays.asList(new OrderCol("year", OrderCol.DESCENDING)));
}
}
return this.getDao().getStatList(query, pageInfo);
}
private void updateSiteConditionPhCount(PhQueueStatEntity entity, List<PhQueueEntity> phQueueEntities) {
//业务+部门 busniess+sectionName
updateBusinessAndSectionName(entity, phQueueEntities);
//业务+窗口 busniess+WindowFromnum
updateBusinessAndWindowFromnum(entity, phQueueEntities);
//部门+窗口 sectionName+WindowFromnum
updateSectionNameAndWindowFromnum(entity, phQueueEntities);
//业务+部门+窗口 busniess+sectionName+WindowFromnum
updateBusinessAndSectionNameAndWindow(entity, phQueueEntities);
}
private void updateBusinessAndSectionName(PhQueueStatEntity entity, List<PhQueueEntity> phQueueEntities) {
Map<String, List<PhQueueEntity>> businessAndSectionCollect = phQueueEntities.parallelStream()
.collect(Collectors.groupingBy(x -> x.getBusiness() + "&" + x.getSectionName()));
List<PhQueueStatEntity> saveAndUpdatelist =businessAndSectionCollect.entrySet().parallelStream().map(item -> {
String vals = item.getKey();
String[] split = vals.split("&");
if (ObjectUtils.isEmpty(split[0])||ObjectUtils.isEmpty(split[1])) return null ;
Double intAvg = item.getValue().parallelStream().mapToInt(e -> e.getWaitTime()).average().orElse(0D);
// log.info("更新站点排队统计数据,站点名称:{},日期:{},窗口:{},排队数量:{}", entity.getSiteName(), currentDate,window, phQueueEntities.size());
PhQueueStatQuery phQueueStatQuery = getPhQueueStatQuery(entity);
phQueueStatQuery.setBusiness(split[0]);
phQueueStatQuery.setSectionName(split[1]);
PhQueueStatEntity phQueueStatEntity = getPhQueueStatEntity(entity, item.getValue(), intAvg, phQueueStatQuery);
phQueueStatEntity.setBusiness(split[0]);
phQueueStatEntity.setSectionName(split[1]);
return phQueueStatEntity;
}).filter(f -> f != null).collect(Collectors.toList());
saveUpdatePhqueueStatList(saveAndUpdatelist);
}
private void updateBusinessAndWindowFromnum(PhQueueStatEntity entity, List<PhQueueEntity> phQueueEntities) {
Map<String, List<PhQueueEntity>> businessAndSectionCollect = phQueueEntities.parallelStream()
.collect(Collectors.groupingBy(x -> x.getBusiness() + "&" + x.getWindowFromnum()));
List<PhQueueStatEntity> saveAndUpdatelist =businessAndSectionCollect.entrySet().parallelStream().map(item -> {
String vals = item.getKey();
String[] split = vals.split("&");
if (ObjectUtils.isEmpty(split[0])||ObjectUtils.isEmpty(split[1])) return null ;
Double intAvg = item.getValue().parallelStream().mapToInt(e -> e.getWaitTime()).average().orElse(0D);
// log.info("更新站点排队统计数据,站点名称:{},日期:{},窗口:{},排队数量:{}", entity.getSiteName(), currentDate,window, phQueueEntities.size());
PhQueueStatQuery phQueueStatQuery = getPhQueueStatQuery(entity);
phQueueStatQuery.setBusiness(split[0]);
phQueueStatQuery.setWindowFromnum(split[1]);
PhQueueStatEntity phQueueStatEntity = getPhQueueStatEntity(entity, item.getValue(), intAvg, phQueueStatQuery);
phQueueStatEntity.setBusiness(split[0]);
phQueueStatEntity.setWindowFromnum(split[1]);
return phQueueStatEntity;
}).filter(f -> f != null).collect(Collectors.toList());
saveUpdatePhqueueStatList(saveAndUpdatelist);
}
private void updateSectionNameAndWindowFromnum(PhQueueStatEntity entity, List<PhQueueEntity> phQueueEntities) {
Map<String, List<PhQueueEntity>> businessAndSectionCollect = phQueueEntities.parallelStream()
.collect(Collectors.groupingBy(x -> x.getSectionName() + "&" + x.getWindowFromnum()));
List<PhQueueStatEntity> saveAndUpdatelist =businessAndSectionCollect.entrySet().parallelStream().map(item -> {
String vals = item.getKey();
String[] split = vals.split("&");
if (ObjectUtils.isEmpty(split[0])||ObjectUtils.isEmpty(split[1])) return null ;
Double intAvg = item.getValue().parallelStream().mapToInt(e -> e.getWaitTime()).average().orElse(0D);
// log.info("更新站点排队统计数据,站点名称:{},日期:{},窗口:{},排队数量:{}", entity.getSiteName(), currentDate,window, phQueueEntities.size());
PhQueueStatQuery phQueueStatQuery = getPhQueueStatQuery(entity);
phQueueStatQuery.setSectionName(split[0]);
phQueueStatQuery.setWindowFromnum(split[1]);
PhQueueStatEntity phQueueStatEntity = getPhQueueStatEntity(entity, item.getValue(), intAvg, phQueueStatQuery);
phQueueStatEntity.setSectionName(split[0]);
phQueueStatEntity.setWindowFromnum(split[1]);
return phQueueStatEntity;
}).filter(f -> f != null).collect(Collectors.toList());
saveUpdatePhqueueStatList(saveAndUpdatelist);
}
private void updateBusinessAndSectionNameAndWindow(PhQueueStatEntity entity, List<PhQueueEntity> phQueueEntities) {
Map<String, List<PhQueueEntity>> businessAndSectionCollect = phQueueEntities.parallelStream()
.collect(Collectors.groupingBy(x -> x.getBusiness() + "&" + x.getSectionName()+ "&" + x.getWindowFromnum()));
List<PhQueueStatEntity> saveAndUpdatelist =businessAndSectionCollect.entrySet().parallelStream().map(item -> {
String vals = item.getKey();
String[] split = vals.split("&");
if (ObjectUtils.isEmpty(split[0])||ObjectUtils.isEmpty(split[1])||ObjectUtils.isEmpty(split[2])) return null ;
Double intAvg = item.getValue().parallelStream().mapToInt(e -> e.getWaitTime()).average().orElse(0D);
// log.info("更新站点排队统计数据,站点名称:{},日期:{},窗口:{},排队数量:{}", entity.getSiteName(), currentDate,window, phQueueEntities.size());
PhQueueStatQuery phQueueStatQuery = getPhQueueStatQuery(entity);
phQueueStatQuery.setBusiness(split[0]);
phQueueStatQuery.setSectionName(split[1]);
phQueueStatQuery.setWindowFromnum(split[2]);
PhQueueStatEntity phQueueStatEntity = getPhQueueStatEntity(entity, item.getValue(), intAvg, phQueueStatQuery);
phQueueStatEntity.setBusiness(split[0]);
phQueueStatEntity.setSectionName(split[1]);
phQueueStatEntity.setWindowFromnum(split[2]);
return phQueueStatEntity;
}).filter(f -> f != null).collect(Collectors.toList());
saveUpdatePhqueueStatList(saveAndUpdatelist);
}
private static PhQueueStatQuery getPhQueueStatQuery(PhQueueStatEntity entity) {
PhQueueStatQuery phQueueStatQuery = new PhQueueStatQuery().siteId(entity.getSiteId())
.year(entity.getYear())
.month(entity.getMonth())
.day(entity.getDay()));
.day(entity.getDay());
return phQueueStatQuery;
}
private PhQueueStatEntity getPhQueueStatEntity(PhQueueStatEntity entity, List<PhQueueEntity> value, Double intAvg, PhQueueStatQuery phQueueStatQuery) {
PhQueueStatEntity phQueueStatEntity = this.selectOne(phQueueStatQuery);
if (ObjectUtils.isEmpty(phQueueStatEntity)) {
//统计当前站点新增所有评价数量
phQueueStatEntity = new PhQueueStatEntity();
......@@ -275,7 +313,6 @@ public class PhQueueStatServiceImpl extends AbstractCRUDServiceImpl<PhQueueStatD
phQueueStatEntity.setSiteId(entity.getSiteId());
phQueueStatEntity.setSiteCode(entity.getSiteCode());
phQueueStatEntity.setSiteName(entity.getSiteName());
phQueueStatEntity.setWindowFromnum(window);
phQueueStatEntity.setPhCount(value.size());
phQueueStatEntity.setWaitTime(intAvg.intValue());
phQueueStatEntity.setYear(entity.getYear());
......@@ -283,7 +320,6 @@ public class PhQueueStatServiceImpl extends AbstractCRUDServiceImpl<PhQueueStatD
phQueueStatEntity.setDay(entity.getDay());
phQueueStatEntity.setCreateTime(new Date());
phQueueStatEntity.setCreateUserId(1L);
this.save(phQueueStatEntity);
} else {
phQueueStatEntity.setPhCount(value.size());
phQueueStatEntity.setWaitTime(intAvg.intValue());
......@@ -292,37 +328,29 @@ public class PhQueueStatServiceImpl extends AbstractCRUDServiceImpl<PhQueueStatD
phQueueStatEntity.setDay(entity.getDay());
phQueueStatEntity.setUpdateTime(new Date());
phQueueStatEntity.setUpdateUserId(1L);
this.update(phQueueStatEntity);
}
});
return phQueueStatEntity;
}
@Override
public Result<PhQueueStatEntity> find(PhQueueStatEntity entity, PageInfo pageInfo, Context context) throws AppException {
Result<PhQueueStatEntity> result = new Result<>();
PhQueueStatQuery query = new PhQueueStatQuery();
BeanUtils.copyProperties(entity, query, BeanUtil.getNullPropertyNames(entity));
List<PhQueueStatEntity> billInfos = this.getBillInfos(query, pageInfo, context);
result.setList(billInfos);
result.setPageInfo(pageInfo);
return result;
private void saveUpdatePhqueueStatList(List<PhQueueStatEntity> saveAndUpdatelist) {
if (!ObjectUtils.isEmpty(saveAndUpdatelist)) {
Map<Boolean, List<PhQueueStatEntity>> saveUpdateCollect = saveAndUpdatelist.parallelStream().collect(Collectors.partitioningBy(i -> i.newEntity()));
if (!ObjectUtils.isEmpty(saveUpdateCollect.get(true))) {
//新增列表
log.info("更新站点排队部门统计数据,数量:{}", saveUpdateCollect.get(true).size());
this.update(saveUpdateCollect.get(true));
}
@Override
public List<PhQueueStatEntity> getBillInfos(PhQueueStatQuery query, PageInfo pageInfo, Context context) {
if (!ObjectUtils.isEmpty(query.getGroupList())) {
//针对groupList分组 进行排序
if (query.getGroupList().contains("year") && query.getGroupList().contains("month") && query.getGroupList().contains("day")) {
query.setOrderColList(Arrays.asList(new OrderCol("year", OrderCol.DESCENDING), new OrderCol("month", OrderCol.DESCENDING), new OrderCol("day", OrderCol.DESCENDING)));
} else if (query.getGroupList().contains("year") && query.getGroupList().contains("month")) {
query.setOrderColList(Arrays.asList(new OrderCol("year", OrderCol.DESCENDING), new OrderCol("month", OrderCol.DESCENDING)));
} else if (query.getGroupList().contains("year")) {
query.setOrderColList(Arrays.asList(new OrderCol("year", OrderCol.DESCENDING)));
if (!ObjectUtils.isEmpty(saveUpdateCollect.get(false))) {
//更新列表
log.info("更新站点排队部门统计数据,数量:{}", saveUpdateCollect.get(true).size());
this.update(saveUpdateCollect.get(true));
}
}
return this.getDao().getStatList(query, pageInfo);
}
}
\ No newline at end of file
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment