package cn.gistack.nky.service.impl; import cn.gistack.nky.entity.HstPredict; import cn.gistack.nky.mapper.HstPredictMapper; import cn.gistack.nky.requestpojo.HstPredictReqPo; import cn.gistack.nky.requestpojo.QueryReqPo; import cn.gistack.nky.resultpojo.DataResChildrenPo; import cn.gistack.nky.service.IHstPredictService; import cn.gistack.nky.service.INkyService; import cn.gistack.nky.service.IZtApiService; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import lombok.AllArgsConstructor; import org.springblade.core.mp.support.Condition; import org.springblade.core.tool.utils.ObjectUtil; import org.springframework.stereotype.Service; import java.util.ArrayList; import java.util.List; @AllArgsConstructor @Service public class HstPredictServiceImpl extends ServiceImpl implements IHstPredictService { private final INkyService nkyService; private final IZtApiService ztApiService; @Override public void getData(String type) { List cdList = getCdList(type); cdList.forEach(dataResChildrenPo -> { //循环请求预测结果 QueryReqPo queryReqPo = new QueryReqPo(dataResChildrenPo,type); //请求预测结果 HstPredict hstPredict = nkyService.hstQuery(queryReqPo); if (hstPredict != null){ //存储预测结果至数据库 save(hstPredict); } }); } @Override public void predictData(String type) { List cdList = getCdList(type); cdList.forEach(dataResChildrenPo -> { HstPredictReqPo arimaPredictReqPo = new HstPredictReqPo(dataResChildrenPo, type); //循环预测请求 nkyService.hstPredict(arimaPredictReqPo); }); } @Override public boolean save(HstPredict entity) { if (ObjectUtil.isEmpty(entity.getCreateTime())){ return false; } HstPredict params = new HstPredict(); params.setDamId(entity.getDamId()); params.setPointId(entity.getPointId()); params.setType(entity.getType()); params.setCreateTime(entity.getCreateTime()); List list = list(Condition.getQueryWrapper(params)); if (list.size()>0){ return false; }else { return super.save(entity); } } public List getCdList(String type){ List cdList = new ArrayList<>(); if (type.equals("1")){ //获取渗压测点 cdList = ztApiService.getSy(); }else if (type.equals("2")){ //获取渗流测点 return null; }else if (type.equals("3") || type.equals("4") || type.equals("5")){ //获取位移测点 cdList = ztApiService.getWy(); }else { return null; } return cdList; } }