perf: 统计里补充towerName, rebootCount, workingStatus等信息

dev
huangfeng 4 weeks ago
parent e6d2efaa09
commit 446f7f7ee8

@ -348,12 +348,16 @@ public class TerminalExtController extends BaseController {
ServiceBody<TerminalPhotoSelectListModel> serviceBody = photoService.getPhotoList(requestIp, vo, termList);
if (serviceBody.getCode() == ServiceStatus.SUCCESS) {
TerminalPhotoSelectListModel model = serviceBody.getData();
this.buildPhotoStat(termList, model.getList(), vo);
List<Integer> idList = new ArrayList<>();
for (StatTerm st : termList) {
idList.add(st.getTermId());
}
if (idList.size() < 1) {
idList.add(-1);
}
this.buildPhotoStat(termList, idList, model.getList(), vo);
PageInfo<Weathers> weatherPage = weatherService.list(null, null, idList,
vo.getStarttime().getTime() / 1000, vo.getEndtime().getTime() / 1000, 1, 100000);
if (!CollectionUtils.isEmpty(weatherPage.getList())) {
@ -376,13 +380,29 @@ public class TerminalExtController extends BaseController {
}
}
private void buildPhotoStat(List<StatTerm> termList, List<TerminalPhotoSelectListModel.PhotoBean> list, TerminalPhotoSelectVo vo) throws Exception {
private void buildPhotoStat(List<StatTerm> termList, List<Integer> idList,
List<TerminalPhotoSelectListModel.PhotoBean> list, TerminalPhotoSelectVo vo) throws Exception {
for (StatTerm statTerm : termList) {
List<CameraSchedule> scheduleList = cameraScheduleService.list(statTerm.getTermId());
statTerm.initScheduleList(scheduleList, vo.getStarttime().getTime(), vo.getEndtime().getTime(), vo.getInterval());
long rebootCount = infoHistoryService.count(statTerm.getTermId(), vo.getStarttime().getTime() / 1000, vo.getEndtime().getTime() / 1000);
statTerm.setRebootCount(rebootCount);
TerminalBasicInfoHistory info = infoHistoryService.getLast(statTerm.getTermId());
statTerm.setLastInfo(info);
}
TerminalStatusExample example = new TerminalStatusExample();
TerminalStatusExample.Criteria criteria = example.createCriteria();
criteria.andTermIdIn(idList);
List<TerminalStatus> terminalStatuses = terminalStatusDao.selectByExample(example);
for (StatTerm item : termList) {
for (TerminalStatus terminalStatus : terminalStatuses) {
if (item.getTermId() == terminalStatus.getTermId().intValue()) {
item.setWorkingStatus(terminalStatus);
break;
}
}
}
if (list != null) {
for (TerminalPhotoSelectListModel.PhotoBean photo : list) {
StatTerm term = this.findStatTerm(termList, photo.getTermid(), photo.getCmdid());

@ -2,10 +2,7 @@ package com.shxy.xymanager_common.model;
import com.fasterxml.jackson.annotation.JsonInclude;
import com.shxy.xymanager_common.dto.ScheduleDetailsDto;
import com.shxy.xymanager_common.entity.CameraSchedule;
import com.shxy.xymanager_common.entity.LeadPulls;
import com.shxy.xymanager_common.entity.TerminalBasicInfoHistory;
import com.shxy.xymanager_common.entity.Weathers;
import com.shxy.xymanager_common.entity.*;
import com.shxy.xymanager_common.util.DateUtil;
import lombok.Data;
import org.springframework.util.CollectionUtils;
@ -23,6 +20,9 @@ public class StatTerm implements Serializable {
Object uploads;
String cmdid;
String devType;
String towerName;
Long rebootCount;
TerminalStatus workingStatus;
List<StatChannel> channels = new ArrayList<>();
List<ScheduleDetailsDto> weatherScheduleList = new ArrayList<>();
List<Date> weatherTimeList = new ArrayList<>();

@ -139,7 +139,7 @@ public class TerminalPhotoServiceImpl implements TerminalPhotoService {
}
}
criteria.andPhotoTimeBetween(BigInteger.valueOf(start).longValue(), BigInteger.valueOf(end).longValue());
if (vo.getPresetId() != null){
if (vo.getPresetId() != null) {
criteria.andPresetIdEqualTo(vo.getPresetId());
}
list = terminalPhotoDao.selectByExample(example);
@ -529,8 +529,8 @@ public class TerminalPhotoServiceImpl implements TerminalPhotoService {
long start = MyDateUtils.TimeMillSecond2Second(DateTime.of(starttime));
long end = MyDateUtils.TimeMillSecond2Second(DateTime.of(endtime));
List<Integer> termidlist = new ArrayList<>();
ArrayList<Integer> channelidlist = new ArrayList<>();
List<Integer> termidlist = new ArrayList<>();
ArrayList<Integer> channelidlist = new ArrayList<>();
// List<DyAndLineAndTowerAndTermDto> dtos = new ArrayList<>();
//
@ -610,58 +610,59 @@ public class TerminalPhotoServiceImpl implements TerminalPhotoService {
// }
// }
PageInfo<View_Dy_Line_Tower_Terminals> result = terminalExtService.getTerminalPage(dyid, lineid, towerid, termid,
null, search,
null, null, null, vo.getActivityId(),
1, 100000);
if (!CollectionUtils.isEmpty(result.getList())) {
for (View_Dy_Line_Tower_Terminals terminal : result.getList()) {
termidlist.add(terminal.getId());
StatTerm statTerm = new StatTerm();
statTerm.setTermId(terminal.getId());
statTerm.setCmdid(terminal.getCmdid());
statTerm.setDevType(terminal.getDevType());
termList.add(statTerm);
}
} else {
termidlist.add(-1);
PageInfo<View_Dy_Line_Tower_Terminals> result = terminalExtService.getTerminalPage(dyid, lineid, towerid, termid,
null, search,
null, null, null, vo.getActivityId(),
1, 100000);
if (!CollectionUtils.isEmpty(result.getList())) {
for (View_Dy_Line_Tower_Terminals terminal : result.getList()) {
termidlist.add(terminal.getId());
StatTerm statTerm = new StatTerm();
statTerm.setTermId(terminal.getId());
statTerm.setCmdid(terminal.getCmdid());
statTerm.setDevType(terminal.getDevType());
statTerm.setTowerName(terminal.getTowerName());
termList.add(statTerm);
}
} else {
termidlist.add(-1);
}
if (channelid == null || channelid.intValue() == -1) {
if (channelid == null || channelid.intValue() == -1) {
} else {
channelidlist.add(channelid);
}
PageUtils.SetPage(pageindex, pagesize);
List<TerminalPhoto> list = terminalPhotoDao.selectPhotoListByTermList(termidlist, channelidlist, vo.getPresetId(), BigInteger.valueOf(start), BigInteger.valueOf(end));
boolean empty = CollectionUtil.isEmpty(list);
if (empty) {
model.setList(new ArrayList<>());
} else {
Map<Integer, Terminals> terminalMap = newCacheService.getTerminalMap();
Map<Integer, Lines> lineMap = cacheService.getLineMap();
Map<Integer, TowerDto> towerMap = cacheService.getTowerMap();
Map<Integer, TerminalChannels> termchannelMap = cacheService.getTermChannelMap();
Map<String, TerminalChannelMapper> termchannelMapMap = cacheService.getTermChannelMapMap();
List<TerminalImgAlarmsDto> imgarlarmsList = new ArrayList<>();
List idlist = new ArrayList<>();
for (TerminalPhoto tp : list) {
if (tp.getOrginalId() != null) {
idlist.add(tp.getOrginalId());
}
}
if (idlist.size() > 0) {
List<TerminalImgAlarmParams> labellist = new ArrayList<>();
Map<Integer, TerminalImgAlarmParams> alarmParamMap = cacheService.getAlarmParamMap();
alarmParamMap.forEach((key, value) -> {
labellist.add(value);
});
imgarlarmsList = terminalImgAlarmsDao.selectAlarmsByTermidAndPhotoId(list, labellist);
} else {
channelidlist.add(channelid);
}
PageUtils.SetPage(pageindex, pagesize);
List<TerminalPhoto> list = terminalPhotoDao.selectPhotoListByTermList(termidlist, channelidlist, vo.getPresetId(), BigInteger.valueOf(start), BigInteger.valueOf(end));
boolean empty = CollectionUtil.isEmpty(list);
if (empty) {
model.setList(new ArrayList<>());
} else {
Map<Integer, Terminals> terminalMap = newCacheService.getTerminalMap();
Map<Integer, Lines> lineMap = cacheService.getLineMap();
Map<Integer, TowerDto> towerMap = cacheService.getTowerMap();
Map<Integer, TerminalChannels> termchannelMap = cacheService.getTermChannelMap();
Map<String, TerminalChannelMapper> termchannelMapMap = cacheService.getTermChannelMapMap();
List<TerminalImgAlarmsDto> imgarlarmsList = new ArrayList<>();
List idlist = new ArrayList<>();
for (TerminalPhoto tp : list) {
if (tp.getOrginalId() != null) {
idlist.add(tp.getOrginalId());
}
beans = TerminalUtils.fdsa(requestIp, list, terminalMap, lineMap, towerMap, termchannelMap, termchannelMapMap, imgarlarmsList);
model.setList(beans);
}
if (idlist.size() > 0) {
List<TerminalImgAlarmParams> labellist = new ArrayList<>();
Map<Integer, TerminalImgAlarmParams> alarmParamMap = cacheService.getAlarmParamMap();
alarmParamMap.forEach((key, value) -> {
labellist.add(value);
});
imgarlarmsList = terminalImgAlarmsDao.selectAlarmsByTermidAndPhotoId(list, labellist);
}
beans = TerminalUtils.fdsa(requestIp, list, terminalMap, lineMap, towerMap, termchannelMap, termchannelMapMap, imgarlarmsList);
model.setList(beans);
}
PageInfo pageData = PageUtils.getPageData(list);
int currentpage = pageData.getPageNum();
@ -890,7 +891,7 @@ public class TerminalPhotoServiceImpl implements TerminalPhotoService {
int pageindex = vo.getPageindex();
int pagesize = vo.getPagesize();
PageUtils.SetPage(pageindex, pagesize);
List<TerminalChannelMapper> list = terminalChannelMapperDao.selectAllByPhotoTime(CommonStatus.EFFECTIVE.value(), termpList , vo.getChannelid());
List<TerminalChannelMapper> list = terminalChannelMapperDao.selectAllByPhotoTime(CommonStatus.EFFECTIVE.value(), termpList, vo.getChannelid());
ArrayList<BigInteger> photolist = new ArrayList<>();
List<TerminalPhotosModel.PhotosBean> beans = new ArrayList<>();

Loading…
Cancel
Save