package com.yssh.service; import java.util.ArrayList; import java.util.Date; import java.util.HashMap; import java.util.List; import java.util.Map; import com.yssh.utils.DateUtils; import com.yssh.utils.StringUtils; import org.springframework.stereotype.Service; import com.yssh.mapper.DictRecordMapper; import com.yssh.mapper.SuYuanMapper; import com.yssh.mapper.ThuAccuracyMapper; import com.yssh.entity.DictRecord; import com.yssh.entity.MonitorPointPosition; import com.yssh.entity.SuYuanMonitorData; import com.yssh.entity.ThuAccuracy; import com.yssh.entity.ForecastAnalyseVo; import javax.annotation.Resource; @Service public class ForecastAnalyseService { @Resource private CommonService commonService; @Resource private SuYuanMapper suYuanMapper; @Resource private DictRecordMapper dictRecordMapper; @Resource private ThuAccuracyMapper thuAccuracyMapper; public List getForecastAnalyse(String name, Date beginTime, Date endTime) { List result = new ArrayList(); MonitorPointPosition checkPoint = commonService.select3dCheckPointByName(name); if (StringUtils.isNull(checkPoint)) { return null; } List dictRecordList = dictRecordMapper.selectByTimeDictRecordList(Long.parseLong(DateUtils.parseDateToStr(DateUtils.YYYYMMDDHH, beginTime)), Long.parseLong(DateUtils.parseDateToStr(DateUtils.YYYYMMDDHH, endTime))); List tableNames = new ArrayList(); dictRecordList.forEach(r -> { tableNames.add(r.getTableName()); }); if (StringUtils.isNotEmpty(tableNames)) { List monitorDatas = suYuanMapper.getMonitorData(tableNames, checkPoint.getId()); monitorDatas.forEach(m -> { result.add(new ForecastAnalyseVo(0.0, m.getValue(), new Long(m.getTime()))); }); Map param = new HashMap(); param.put("name", name); param.put("beginTime", beginTime); param.put("endTime", endTime); List data = thuAccuracyMapper.getForecastData(param); data.forEach(s -> { result.forEach(r -> { if (Long.valueOf(s.getTime()).longValue() == r.getTime().longValue()) { r.setForecastValue(Double.valueOf(s.getValue())); } }); }); } return result; } }