ke
2024-12-20 1b316e12ad2694a77f1ea45f3214fcfb90c45393
skjcmanager/skjcmanager-service/skjcmanager-nky/src/main/java/cn/gistack/nky/service/impl/OpenApiServiceImpl.java
@@ -118,6 +118,7 @@
      DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm");
      String oneHour = oneHourAgo.format(formatter) + ":00";
      String nowHour = now.format(formatter) + ":00";
      // 调用中台接口获取实时测点数据
      JSONArray ztData = getZtData("",
         ZtConfigConstant.url_prefix + DamEnum.ofType(type).getApiUrl() + "?start_tm=" + oneHour + "&end_tm=" + nowHour + "");
@@ -276,6 +277,7 @@
    * @return
    */
   public JSONArray getZtData(String params, String url) {
      log.info("实时测点请求中台接口:{}",url);
      //设置请求头
      HttpHeaders headers = new HttpHeaders();
      headers.add(ZtConfigConstant.header_key, ZtConfigConstant.header_value);
@@ -289,6 +291,7 @@
               formEntity,
               String.class);
         JSONObject jsonObject = JSON.parseObject(responseEntity.getBody());
         log.info("实时测点请求中台接口结果数据:{}",jsonObject);
         // 返回
         return JSONArray.parseArray(jsonObject.get("data").toString());
      } catch (Exception e) {
@@ -312,18 +315,28 @@
      for (int i = 0; i < dataJsonArray.size(); i++) {
         DamAlarmRecord damAlarmRecord = new DamAlarmRecord();
         JSONObject alarmRecordJSONObject = dataJsonArray.getJSONObject(i);
         damAlarmRecord.setPointId(alarmRecordJSONObject.getString("pointId"));
         // 设置测点信息,类型、测点编号
         setPointInfo(damAlarmRecord,alarmRecordJSONObject.getString("pointId"));
         // 设置其他信息
         damAlarmRecord.setResGuid(alarmRecordJSONObject.getString("RS_CODE"));
         damAlarmRecord.setCollecTime(alarmRecordJSONObject.getDate("collecTime"));
         damAlarmRecord.setPointValue(alarmRecordJSONObject.getString("ponitValue"));
         damAlarmRecord.setValue(alarmRecordJSONObject.getString("value"));
         JSONObject generalInfo = alarmRecordJSONObject.getJSONObject("generalInfo");
         damAlarmRecord.setPointWarnLevel(generalInfo.getInteger("pointWarnLevel"));
         damAlarmRecord.setPointWarnInfo(generalInfo.getString("pointWarnInfo"));
         damAlarmRecord.setCreateTime(new Date());
         // 保存
         // 获取回调类型:1:告警规则法 2: 预测法  3:待补充
         Integer callbackType = alarmRecordJSONObject.getInteger("callbackType");
         damAlarmRecord.setCallbackType(callbackType);
         if (callbackType==1){
            JSONObject generalInfo = alarmRecordJSONObject.getJSONObject("generalInfo");
            damAlarmRecord.setPointWarnLevel(generalInfo.getInteger("pointWarnLevel"));
            damAlarmRecord.setPointWarnInfo(generalInfo.getString("pointWarnInfo"));
         }
         if (callbackType==2){
            damAlarmRecord.setValue(alarmRecordJSONObject.getString("value"));
            damAlarmRecord.setTimeValue(alarmRecordJSONObject.getString("timeValue"));
         }
         // 保存详情,预测没有详情
         flag = damAlarmRecordService.save(damAlarmRecord);
         if (flag){
         if (callbackType==1 && flag){
            flag = saveDamAlarmRecordDetail(alarmRecordJSONObject.getJSONArray("detailInfo"),damAlarmRecord);
         }
      }
@@ -331,6 +344,32 @@
   }
   /**
    * 设置测点信息
    * @param pointId
    */
   private void setPointInfo(DamAlarmRecord damAlarmRecord,String pointId) {
      damAlarmRecord.setPointId(pointId);
      // 测点值解析赋值
      String[] point = pointId.split("_");
      // 渗压、渗流
      if (point.length==3) {
         // 设置测点id
         damAlarmRecord.setStationId(point[1]);
         String typeName = point[2];
         // 设置 大坝安全监测类型
         damAlarmRecord.setType(Integer.parseInt(DamEnum.ofName(typeName).getKey()));
      }
      // 位移
      if (point.length==4) {
         // 设置测点id
         damAlarmRecord.setStationId(point[1]);
         String typeName = point[2] + "_" + point[3];
         // 设置 大坝安全监测类型
         damAlarmRecord.setType(Integer.parseInt(DamEnum.ofName(typeName).getKey()));
      }
   }
   /**
    * 详情
    * @param detailInfo
    * @param damAlarmRecord