guoshilong
2023-08-11 3c096d3cfd56a23e6794f30ccd150bfe19aa4ae8
skjcmanager/skjcmanager-service/skjcmanager-nky/src/main/java/cn/gistack/nky/service/impl/ArimaPredictServiceImpl.java
@@ -8,8 +8,8 @@
import cn.gistack.nky.service.IArimaPredictService;
import cn.gistack.nky.service.INkyService;
import cn.gistack.nky.service.IZtApiService;
import com.alibaba.fastjson.JSON;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.mysql.cj.util.StringUtils;
import lombok.AllArgsConstructor;
import org.springblade.core.mp.support.Condition;
import org.springblade.core.tool.utils.ObjectUtil;
@@ -42,11 +42,40 @@
   @Override
   public void predictData(String type) {
      List<DataResChildrenPo> cdList = getCdList(type);
      cdList.forEach(dataResChildrenPo -> {
         ArimaPredictReqPo arimaPredictReqPo = new ArimaPredictReqPo(dataResChildrenPo, type);
         //循环预测请求
         nkyService.arimaPredict(arimaPredictReqPo);
      if (type.equals("1")){
         //渗压
            cdList.forEach(dataResChildrenPo -> {
               ArimaPredictReqPo arimaPredictReqPo = new ArimaPredictReqPo(dataResChildrenPo, type);
               //循环预测请求
               nkyService.arimaPredict(arimaPredictReqPo);
            });
      }else if (type.equals("2")){
         //渗流
      }else if (type.equals("3") || type.equals("4") || type.equals("5")){
         cdList.forEach(dataResChildrenPo -> {
            //循环预测请求
            ArimaPredictReqPo arimaPredictReqPoX = new ArimaPredictReqPo(dataResChildrenPo, "3");
            nkyService.arimaPredict(arimaPredictReqPoX);
            ArimaPredictReqPo arimaPredictReqPoY = new ArimaPredictReqPo(dataResChildrenPo, "4");
            nkyService.arimaPredict(arimaPredictReqPoY);
            ArimaPredictReqPo arimaPredictReqPoZ = new ArimaPredictReqPo(dataResChildrenPo, "5");
            nkyService.arimaPredict(arimaPredictReqPoZ);
         });
      }
   }
   @Override
   public List<ArimaPredict> getFutureData(String resCd,String type) {
      List<ArimaPredict> futureData = baseMapper.getFutureData(resCd, type);
      futureData.forEach(arimaPredict -> {
         arimaPredict.setPredicts(JSON.parse(arimaPredict.getPredicts().toString()));
      });
      return futureData;
   }
   @Override
@@ -56,17 +85,12 @@
         return false;
      }
      //遍历表中当前水库,当前测点,当前类型的数据,检查是否有重复数据
      ArimaPredict params = new ArimaPredict();
      params.setDamId(entity.getDamId());
      params.setPointId(entity.getPointId());
      params.setType(entity.getType());
      params.setCreateTime(entity.getCreateTime());
      List<ArimaPredict> list = list(Condition.getQueryWrapper(params));
      List<ArimaPredict> list = baseMapper.selectTodayData(entity);
      if (list.size()>0){
         return false;
         //删除该数据,添加最新数据
         baseMapper.deleteById(list.get(0));
         return super.save(entity);
      }else {
         return super.save(entity);
      }