From 659d3e60c6fe5e5bcd8c4cbb3dd8077e29f13a38 Mon Sep 17 00:00:00 2001
From: ke <893754509@qq.com>
Date: Mon, 13 May 2024 18:54:27 +0800
Subject: [PATCH] Merge remote-tracking branch 'origin/jtdev' into jtdev
---
skjcmanager/skjcmanager-service/skjcmanager-nky/src/main/java/cn/gistack/nky/feign/NkyClientImpl.java | 164 +++++++++++++++++++++++++++++++++++++++++++++++++++++-
1 files changed, 160 insertions(+), 4 deletions(-)
diff --git a/skjcmanager/skjcmanager-service/skjcmanager-nky/src/main/java/cn/gistack/nky/feign/NkyClientImpl.java b/skjcmanager/skjcmanager-service/skjcmanager-nky/src/main/java/cn/gistack/nky/feign/NkyClientImpl.java
index 8582a3a..888a06b 100644
--- a/skjcmanager/skjcmanager-service/skjcmanager-nky/src/main/java/cn/gistack/nky/feign/NkyClientImpl.java
+++ b/skjcmanager/skjcmanager-service/skjcmanager-nky/src/main/java/cn/gistack/nky/feign/NkyClientImpl.java
@@ -2,20 +2,32 @@
import cn.gistack.nky.entity.AlarmGet;
import cn.gistack.nky.fegin.INkyClient;
-import cn.gistack.nky.service.IAlarmGetService;
-import cn.gistack.nky.service.IArimaPredictService;
-import cn.gistack.nky.service.IHstPredictService;
-import cn.gistack.nky.service.INkyService;
+import cn.gistack.nky.resultpojo.BaseCd;
+import cn.gistack.nky.resultpojo.NkyBindDetailResult;
+import cn.gistack.nky.resultpojo.ResDamMonitorResult;
+import cn.gistack.nky.service.*;
import cn.gistack.nky.vo.AlarmGetVO;
+import cn.gistack.nky.vo.PageVO;
+import cn.gistack.sm.patrol.feign.PatrolTaskClient;
+import com.alibaba.fastjson.JSONObject;
+import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
+import com.baomidou.mybatisplus.core.metadata.IPage;
import lombok.AllArgsConstructor;
import lombok.extern.slf4j.Slf4j;
+import org.springblade.core.mp.support.Condition;
+import org.springblade.core.mp.support.Query;
import org.springblade.core.tenant.annotation.NonDS;
+import org.springblade.core.tool.utils.DateUtil;
+import org.springblade.core.tool.utils.StringUtil;
+import org.springframework.transaction.annotation.Transactional;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RestController;
import springfox.documentation.annotations.ApiIgnore;
+import java.util.Arrays;
import java.util.List;
+import java.util.stream.Collectors;
@NonDS
@ApiIgnore
@@ -28,6 +40,8 @@
private final IArimaPredictService arimaPredictService;
private final IHstPredictService hstPredictService;
private final IAlarmGetService alarmGetService;
+ private final PatrolTaskClient patrolTaskClient;
+ private final IZtApiService ztApiService;
@Override
@@ -71,4 +85,146 @@
public List<AlarmGetVO> getAlarmDetail(AlarmGetVO alarmGet) {
return alarmGetService.getAlarmDetail(alarmGet);
}
+
+ @Override
+ @PostMapping(GET_ALARM_DETAIL_PAGE)
+ public PageVO<AlarmGetVO> getAlarmDetailPage(Integer current, Integer size, AlarmGetVO alarmGet,
+ String ascs,
+ String descs) {
+ Query query = new Query();
+ query.setCurrent(current);
+ query.setSize(size);
+ query.setAscs(ascs);
+ query.setDescs(descs);
+ IPage<AlarmGetVO> alarmDetailPage = alarmGetService.getAlarmDetailPage(Condition.getPage(query), alarmGet);
+
+ PageVO<AlarmGetVO> pageVO = new PageVO();
+
+ pageVO.setData(alarmDetailPage.getRecords());
+ pageVO.setTotal(alarmDetailPage.getTotal());
+ pageVO.setCurrent(alarmDetailPage.getCurrent());
+ pageVO.setSize(alarmDetailPage.getSize());
+
+ return pageVO;
+ }
+
+ @Override
+ @PostMapping(UPDATE_ALARM_GET)
+ @Transactional(rollbackFor = Exception.class)
+ public Boolean updateAlarmGet(AlarmGetVO alarmGet) {
+ //修改处置状态
+ AlarmGetVO byId = alarmGetService.getAlarmVO(alarmGet);
+
+ String processDefinitionId = "c2d5326e-e27b-11ed-a04e-00ff0b362ee4";
+
+ //日常巡查
+ String taskType = "1641037874390999041";
+
+ //杨树堰水库大坝预警巡查
+ String title = StringUtil.format("{}大坝预警巡查", byId.getReservoirName());
+
+ //杨树堰水库在2023-11-29 17:41:19时监测到位移GN1测点,测点值为2.37,预警等级为三级
+
+ String resNm = byId.getReservoirName();
+ String tm = DateUtil.format(byId.getTime(), "MM月dd日HH时mm分");
+ String typeName = byId.getTypeName();
+ String cdNm = byId.getCdName();
+ String value = byId.getValue();
+ String level = String.valueOf(byId.getLevel());
+
+ String content = StringUtil.format("{}在{}时监测到{}{}测点值为{},预警等级为{}级",
+ resNm, tm, typeName, cdNm, value, level);
+ String resCd = byId.getDamId();
+
+ //创建巡查任务
+ String taskId = patrolTaskClient.createTask(processDefinitionId, taskType, title, content, resCd);
+ alarmGet.setTaskId(taskId);
+ return alarmGetService.updateById(alarmGet);
+ }
+
+ @Override
+ @PostMapping(UPDATE_ALARM_GET_STATUS)
+ public Boolean updateStatus(AlarmGet alarmGet) {
+ return alarmGetService.updateById(alarmGet);
+ }
+
+ @Override
+ @GetMapping(FINISH_TASK)
+ public Boolean finishTask(String taskId) {
+
+ AlarmGet alarmGet = alarmGetService.getOne(new QueryWrapper<AlarmGet>().eq("TASK_ID", taskId));
+
+ if (alarmGet != null) {
+ //设置预警为已处理
+ alarmGet.setStatus("1");
+ Boolean aBoolean = updateStatus(alarmGet);
+ return aBoolean;
+ }
+ return false;
+ }
+
+ @Override
+ @PostMapping(INIT_ALGORITHM)
+ public void initAlgorithm(List<String> resList) {
+ List<ResDamMonitorResult> resDamMonitorResultList = ztApiService.getResDamMonitor();
+ //获取水库之后,根据标识是否有监测站请求测点
+ resDamMonitorResultList.forEach(resDamMonitorResult -> {
+ String resGuid = resDamMonitorResult.getCode();
+ if (resDamMonitorResult.getIs_sy().equals("1")){
+ activeAlgorithm(resGuid,"sy","1");
+ }
+ if (resDamMonitorResult.getIs_sl().equals("1")){
+ activeAlgorithm(resGuid,"sl","2");
+ }
+ if (resDamMonitorResult.getIs_wy().equals("1")){
+ activeAlgorithm(resGuid,"wy","3,4,5");
+ }
+ });
+ }
+
+ private void activeAlgorithm(String resGuid,String type,String nkyType){
+ String taskCategory = "2107";
+ List<BaseCd> cdList = ztApiService.getBaseCd(resGuid,type);
+ List<String> nkyTypeList = Arrays.asList(nkyType.split(","));
+
+
+ cdList.forEach(baseCd -> {
+ String pointId = baseCd.getCd();
+
+ nkyTypeList.forEach(nkyTypeFlag->{
+
+ //请求测点之后,循环测点,判断算法绑定情况
+ List<NkyBindDetailResult> nkyBindDetailResultList = nkyService.getBindDetail(baseCd.getRes_cd(),baseCd.getCd(),nkyTypeFlag);
+ //过滤出 多元线性回归预测模型异常判定 algorithmCategory: 2107
+ List<NkyBindDetailResult> filterCollect = nkyBindDetailResultList.stream().filter(nkyBindDetailResult -> nkyBindDetailResult.getAlgorithmCategory().equals(taskCategory)).collect(Collectors.toList());
+
+ if (filterCollect.size() == 0){
+ //如果是空的,说明没有启用该算法;先启用该算法
+// JSONObject bindEnableParams = new JSONObject();
+//
+// bindEnableParams.put("status",1);
+// bindEnableParams.put("taskCategory",taskCategory);
+// bindEnableParams.put("damId",resGuid);
+// bindEnableParams.put("pointId",pointId);
+// bindEnableParams.put("type",nkyTypeFlag);
+// boolean bindEnableRes = nkyService.bindEnable(bindEnableParams);
+// //成功启用,设置值
+// if (bindEnableRes){
+//
+// JSONObject bindParamParams = new JSONObject();
+//
+// bindParamParams.put("damId",resGuid);
+// bindParamParams.put("pointId",pointId);
+// bindParamParams.put("type",nkyTypeFlag);
+// bindParamParams.put("algorithmCategory",taskCategory);
+// bindParamParams.put("reserve1","4,3.3,2.7,2");
+//
+// boolean bindParamRes = nkyService.bindParam(bindParamParams);
+// }
+
+ }
+ });
+ });
+ }
+
}
--
Gitblit v1.9.3