From 90cc59400715f3ece6384eddf01cefd8eff449ea Mon Sep 17 00:00:00 2001
From: guoshilong <123456>
Date: Sun, 28 Apr 2024 14:53:27 +0800
Subject: [PATCH] 视频站点设置,南科院初始化
---
skjcmanager/skjcmanager-service/skjcmanager-nky/src/main/java/cn/gistack/nky/service/INkyService.java | 10
skjcmanager/skjcmanager-service/skjcmanager-sm/src/main/java/cn/gistack/sm/sjztmd/mapper/AttWmstBaseMapper.java | 18 +
skjcmanager/skjcmanager-service-api/skjcmanager-nky-api/src/main/java/cn/gistack/nky/fegin/INkyClientFallback.java | 5
skjcmanager/skjcmanager-service-api/skjcmanager-nky-api/src/main/java/cn/gistack/nky/resultpojo/ZtResult.java | 16 +
skjcmanager/skjcmanager-service/skjcmanager-xxljob/src/main/java/cn/gistack/job/executor/jobhandler/NkyXxlJob.java | 31 ++
skjcmanager/skjcmanager-auth/src/main/java/cn/gistack/auth/granter/BladeTokenGranter.java | 3
skjcmanager/skjcmanager-service/skjcmanager-nky/src/main/java/cn/gistack/nky/service/impl/ZtApiServiceImpl.java | 86 +++++++
skjcmanager/skjcmanager-service/skjcmanager-sm/src/main/java/cn/gistack/sm/sjztmd/service/IAttWmstBaseService.java | 11 +
skjcmanager/skjcmanager-service/skjcmanager-sm/src/main/java/cn/gistack/sm/sjztmd/vo/AttWmstBaseVO.java | 8
skjcmanager/skjcmanager-service-api/skjcmanager-nky-api/src/main/java/cn/gistack/nky/resultpojo/ZtResultPo2.java | 22 ++
skjcmanager/skjcmanager-service/skjcmanager-sm/src/main/java/cn/gistack/sm/sjztmd/controller/AttWmstBaseController.java | 39 +++
skjcmanager/skjcmanager-service-api/skjcmanager-nky-api/src/main/java/cn/gistack/nky/resultpojo/NkyBindDetailResult.java | 21 +
skjcmanager/skjcmanager-auth/src/main/java/cn/gistack/auth/granter/AccountPhoneTokenGranter.java | 74 ++++++
skjcmanager/skjcmanager-service-api/skjcmanager-nky-api/src/main/java/cn/gistack/nky/fegin/INkyClient.java | 5
skjcmanager/skjcmanager-service/skjcmanager-sm/src/main/java/cn/gistack/sm/sjztmd/entity/AttWmstBase.java | 93 ++++++++
skjcmanager/skjcmanager-service/skjcmanager-sm/src/main/java/cn/gistack/sm/sjztmd/mapper/AttWmstBaseMapper.xml | 11 +
skjcmanager/skjcmanager-service-api/skjcmanager-nky-api/src/main/java/cn/gistack/nky/resultpojo/ResDamMonitorResult.java | 24 ++
skjcmanager/skjcmanager-service-api/skjcmanager-nky-api/src/main/java/cn/gistack/nky/resultpojo/BaseCd.java | 12 +
skjcmanager/skjcmanager-service/skjcmanager-nky/src/main/java/cn/gistack/nky/service/IZtApiService.java | 8
skjcmanager/skjcmanager-service/skjcmanager-sm/src/main/java/cn/gistack/sm/sjztmd/service/impl/AttWmstBaseServiceImpl.java | 22 ++
skjcmanager/skjcmanager-service/skjcmanager-nky/src/main/java/cn/gistack/nky/service/impl/NkyServiceImpl.java | 44 +++
skjcmanager/skjcmanager-service/skjcmanager-nky/src/main/java/cn/gistack/nky/feign/NkyClientImpl.java | 93 +++++++-
22 files changed, 634 insertions(+), 22 deletions(-)
diff --git a/skjcmanager/skjcmanager-auth/src/main/java/cn/gistack/auth/granter/AccountPhoneTokenGranter.java b/skjcmanager/skjcmanager-auth/src/main/java/cn/gistack/auth/granter/AccountPhoneTokenGranter.java
new file mode 100644
index 0000000..4571346
--- /dev/null
+++ b/skjcmanager/skjcmanager-auth/src/main/java/cn/gistack/auth/granter/AccountPhoneTokenGranter.java
@@ -0,0 +1,74 @@
+package cn.gistack.auth.granter;
+
+import cn.gistack.auth.utils.TokenUtil;
+import cn.gistack.common.cache.CacheNames;
+import org.springblade.core.redis.cache.BladeRedis;
+import org.springblade.core.tool.utils.StringUtil;
+import org.springframework.security.authentication.*;
+import org.springframework.security.core.Authentication;
+import org.springframework.security.oauth2.common.exceptions.InvalidGrantException;
+import org.springframework.security.oauth2.common.exceptions.UserDeniedAuthorizationException;
+import org.springframework.security.oauth2.provider.*;
+import org.springframework.security.oauth2.provider.token.AbstractTokenGranter;
+import org.springframework.security.oauth2.provider.token.AuthorizationServerTokenServices;
+
+import java.util.LinkedHashMap;
+import java.util.Map;
+
+/**
+ * 验证码TokenGranter
+ *
+ * @author Chill
+ */
+public class AccountPhoneTokenGranter extends AbstractTokenGranter {
+
+ private static final String GRANT_TYPE = "accountPhone";
+
+ private final AuthenticationManager authenticationManager;
+
+ private BladeRedis bladeRedis;
+
+ public AccountPhoneTokenGranter(AuthenticationManager authenticationManager,
+ AuthorizationServerTokenServices tokenServices, ClientDetailsService clientDetailsService, OAuth2RequestFactory requestFactory, BladeRedis bladeRedis) {
+ this(authenticationManager, tokenServices, clientDetailsService, requestFactory, GRANT_TYPE);
+ this.bladeRedis = bladeRedis;
+ }
+
+ protected AccountPhoneTokenGranter(AuthenticationManager authenticationManager, AuthorizationServerTokenServices tokenServices,
+ ClientDetailsService clientDetailsService, OAuth2RequestFactory requestFactory, String grantType) {
+ super(tokenServices, clientDetailsService, requestFactory, grantType);
+ this.authenticationManager = authenticationManager;
+ }
+
+ @Override
+ protected OAuth2Authentication getOAuth2Authentication(ClientDetails client, TokenRequest tokenRequest) {
+ Map<String, String> parameters = new LinkedHashMap<String, String>(tokenRequest.getRequestParameters());
+ String phone = parameters.get("username");
+ String password = parameters.get("password");
+ String code = parameters.get("code");
+ // 获取验证码
+ String redisCode = bladeRedis.get(CacheNames.PHONE_KEY + phone);
+ // 判断验证码
+ if (code == null || !StringUtil.equalsIgnoreCase(redisCode, code)) {
+ throw new UserDeniedAuthorizationException(TokenUtil.CAPTCHA_NOT_CORRECT);
+ }
+ // 通过手机号查询用户
+ Authentication userAuth = new UsernamePasswordAuthenticationToken(phone, "CUSTOM_LOGIN_SMS");
+ ((AbstractAuthenticationToken) userAuth).setDetails(parameters);
+ try {
+ userAuth = authenticationManager.authenticate(userAuth);
+ }
+ catch (AccountStatusException | BadCredentialsException ase) {
+ //covers expired, locked, disabled cases (mentioned in section 5.2, draft 31)
+ throw new InvalidGrantException(ase.getMessage());
+ }
+ // If the username/password are wrong the spec says we should send 400/invalid grant
+
+ if (userAuth == null || !userAuth.isAuthenticated()) {
+ throw new InvalidGrantException("Could not authenticate user: " + phone);
+ }
+
+ OAuth2Request storedOAuth2Request = getRequestFactory().createOAuth2Request(client, tokenRequest);
+ return new OAuth2Authentication(storedOAuth2Request, userAuth);
+ }
+}
diff --git a/skjcmanager/skjcmanager-auth/src/main/java/cn/gistack/auth/granter/BladeTokenGranter.java b/skjcmanager/skjcmanager-auth/src/main/java/cn/gistack/auth/granter/BladeTokenGranter.java
index a56bce6..6680894 100644
--- a/skjcmanager/skjcmanager-auth/src/main/java/cn/gistack/auth/granter/BladeTokenGranter.java
+++ b/skjcmanager/skjcmanager-auth/src/main/java/cn/gistack/auth/granter/BladeTokenGranter.java
@@ -51,7 +51,8 @@
granters.add(new SocialTokenGranter(endpoints.getTokenServices(), endpoints.getClientDetailsService(), endpoints.getOAuth2RequestFactory(), userClient, socialProperties));
//单点登录授权模式
granters.add(new OAuthTokenGranter(authenticationManager, endpoints.getTokenServices(), endpoints.getClientDetailsService(), endpoints.getOAuth2RequestFactory(), bladeRedis));
-
+ //账户验证码模式
+ granters.add(new AccountPhoneTokenGranter(authenticationManager, endpoints.getTokenServices(), endpoints.getClientDetailsService(), endpoints.getOAuth2RequestFactory(), bladeRedis ));
// 组合tokenGranter集合
return new CompositeTokenGranter(granters);
}
diff --git a/skjcmanager/skjcmanager-service-api/skjcmanager-nky-api/src/main/java/cn/gistack/nky/fegin/INkyClient.java b/skjcmanager/skjcmanager-service-api/skjcmanager-nky-api/src/main/java/cn/gistack/nky/fegin/INkyClient.java
index 216ef02..7c66f27 100644
--- a/skjcmanager/skjcmanager-service-api/skjcmanager-nky-api/src/main/java/cn/gistack/nky/fegin/INkyClient.java
+++ b/skjcmanager/skjcmanager-service-api/skjcmanager-nky-api/src/main/java/cn/gistack/nky/fegin/INkyClient.java
@@ -44,6 +44,8 @@
String FINISH_TASK = API_PREFIX + "finishTask";
+ String INIT_ALGORITHM = API_PREFIX + "initAlgorithm";
+
/**
* 获取arima预测结果
* @param type
@@ -101,4 +103,7 @@
@GetMapping(FINISH_TASK)
Boolean finishTask(@RequestParam("taskId") String taskId);
+
+ @PostMapping(INIT_ALGORITHM)
+ void initAlgorithm(@RequestBody List<String> resList);
}
diff --git a/skjcmanager/skjcmanager-service-api/skjcmanager-nky-api/src/main/java/cn/gistack/nky/fegin/INkyClientFallback.java b/skjcmanager/skjcmanager-service-api/skjcmanager-nky-api/src/main/java/cn/gistack/nky/fegin/INkyClientFallback.java
index 54b8233..2c30a51 100644
--- a/skjcmanager/skjcmanager-service-api/skjcmanager-nky-api/src/main/java/cn/gistack/nky/fegin/INkyClientFallback.java
+++ b/skjcmanager/skjcmanager-service-api/skjcmanager-nky-api/src/main/java/cn/gistack/nky/fegin/INkyClientFallback.java
@@ -69,5 +69,10 @@
return null;
}
+ @Override
+ public void initAlgorithm(List<String> resList) {
+
+ }
+
}
diff --git a/skjcmanager/skjcmanager-service-api/skjcmanager-nky-api/src/main/java/cn/gistack/nky/resultpojo/BaseCd.java b/skjcmanager/skjcmanager-service-api/skjcmanager-nky-api/src/main/java/cn/gistack/nky/resultpojo/BaseCd.java
new file mode 100644
index 0000000..c100395
--- /dev/null
+++ b/skjcmanager/skjcmanager-service-api/skjcmanager-nky-api/src/main/java/cn/gistack/nky/resultpojo/BaseCd.java
@@ -0,0 +1,12 @@
+package cn.gistack.nky.resultpojo;
+
+import lombok.Data;
+
+@Data
+public class BaseCd {
+ private String cd;
+ private String cd_nm;
+ private String ch;
+ private String res_cd;
+ private String cd_type;
+}
diff --git a/skjcmanager/skjcmanager-service-api/skjcmanager-nky-api/src/main/java/cn/gistack/nky/resultpojo/NkyBindDetailResult.java b/skjcmanager/skjcmanager-service-api/skjcmanager-nky-api/src/main/java/cn/gistack/nky/resultpojo/NkyBindDetailResult.java
new file mode 100644
index 0000000..113ede6
--- /dev/null
+++ b/skjcmanager/skjcmanager-service-api/skjcmanager-nky-api/src/main/java/cn/gistack/nky/resultpojo/NkyBindDetailResult.java
@@ -0,0 +1,21 @@
+package cn.gistack.nky.resultpojo;
+
+import lombok.Data;
+
+@Data
+public class NkyBindDetailResult {
+ private String damId;
+ private String pointId;
+ private String type;
+ private String algorithmCategory;
+ private String status;
+ private String forward;
+ private String reverse;
+ private String alarmType;
+ private String reserve1;
+ private String monitoringFrequency;
+ private String canchaNumber;
+ private String firstWater;
+
+
+}
diff --git a/skjcmanager/skjcmanager-service-api/skjcmanager-nky-api/src/main/java/cn/gistack/nky/resultpojo/ResDamMonitorResult.java b/skjcmanager/skjcmanager-service-api/skjcmanager-nky-api/src/main/java/cn/gistack/nky/resultpojo/ResDamMonitorResult.java
new file mode 100644
index 0000000..923b199
--- /dev/null
+++ b/skjcmanager/skjcmanager-service-api/skjcmanager-nky-api/src/main/java/cn/gistack/nky/resultpojo/ResDamMonitorResult.java
@@ -0,0 +1,24 @@
+package cn.gistack.nky.resultpojo;
+
+import lombok.Data;
+
+@Data
+public class ResDamMonitorResult {
+
+ private String code;
+ private String name;
+
+ private String town_ad_code;
+ private String town_ad_name;
+ private String county_ad_code;
+ private String county_ad_name;
+ private String city_ad_code;
+ private String city_ad_name;
+ private String province_ad_code;
+ private String province_ad_name;
+ private String is_sy;
+ private String is_sl;
+ private String is_wy;
+
+
+}
diff --git a/skjcmanager/skjcmanager-service-api/skjcmanager-nky-api/src/main/java/cn/gistack/nky/resultpojo/ZtResult.java b/skjcmanager/skjcmanager-service-api/skjcmanager-nky-api/src/main/java/cn/gistack/nky/resultpojo/ZtResult.java
new file mode 100644
index 0000000..cb37731
--- /dev/null
+++ b/skjcmanager/skjcmanager-service-api/skjcmanager-nky-api/src/main/java/cn/gistack/nky/resultpojo/ZtResult.java
@@ -0,0 +1,16 @@
+package cn.gistack.nky.resultpojo;
+
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import lombok.Data;
+
+import java.util.List;
+
+@Data
+public class ZtResult {
+
+ private int pageNo;
+ private int pageSize;
+ private int totalCount;
+ private List<ResDamMonitorResult> resultList;
+
+}
diff --git a/skjcmanager/skjcmanager-service-api/skjcmanager-nky-api/src/main/java/cn/gistack/nky/resultpojo/ZtResultPo2.java b/skjcmanager/skjcmanager-service-api/skjcmanager-nky-api/src/main/java/cn/gistack/nky/resultpojo/ZtResultPo2.java
new file mode 100644
index 0000000..8d23fb4
--- /dev/null
+++ b/skjcmanager/skjcmanager-service-api/skjcmanager-nky-api/src/main/java/cn/gistack/nky/resultpojo/ZtResultPo2.java
@@ -0,0 +1,22 @@
+package cn.gistack.nky.resultpojo;
+
+import lombok.Data;
+
+import java.util.List;
+
+/**
+ * @PROJECT_NAME: skjcmanager
+ * @DESCRIPTION: 中台返回resultpojo
+ * @USER: aix
+ * @DATE: 2023/7/28 17:21
+ */
+@Data
+public class ZtResultPo2 {
+
+ private List<BaseCd> data;
+
+ private Integer code;
+
+ private String msg;
+
+}
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 92bec2c..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,13 +2,14 @@
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;
@@ -24,7 +25,9 @@
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
@@ -38,6 +41,7 @@
private final IHstPredictService hstPredictService;
private final IAlarmGetService alarmGetService;
private final PatrolTaskClient patrolTaskClient;
+ private final IZtApiService ztApiService;
@Override
@@ -117,23 +121,23 @@
String taskType = "1641037874390999041";
//杨树堰水库大坝预警巡查
- String title = StringUtil.format("{}大坝预警巡查",byId.getReservoirName());
+ 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 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 level = String.valueOf(byId.getLevel());
- String content=StringUtil.format("{}在{}时监测到{}{}测点值为{},预警等级为{}级",
- resNm,tm,typeName,cdNm,value,level);
+ String content = StringUtil.format("{}在{}时监测到{}{}测点值为{},预警等级为{}级",
+ resNm, tm, typeName, cdNm, value, level);
String resCd = byId.getDamId();
//创建巡查任务
- String taskId = patrolTaskClient.createTask(processDefinitionId,taskType,title,content,resCd);
+ String taskId = patrolTaskClient.createTask(processDefinitionId, taskType, title, content, resCd);
alarmGet.setTaskId(taskId);
return alarmGetService.updateById(alarmGet);
}
@@ -150,12 +154,77 @@
AlarmGet alarmGet = alarmGetService.getOne(new QueryWrapper<AlarmGet>().eq("TASK_ID", taskId));
- if (alarmGet != null){
+ if (alarmGet != null) {
//设置预警为已处理
alarmGet.setStatus("1");
Boolean aBoolean = updateStatus(alarmGet);
- return aBoolean;
+ 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);
+// }
+
+ }
+ });
+ });
+ }
+
}
diff --git a/skjcmanager/skjcmanager-service/skjcmanager-nky/src/main/java/cn/gistack/nky/service/INkyService.java b/skjcmanager/skjcmanager-service/skjcmanager-nky/src/main/java/cn/gistack/nky/service/INkyService.java
index 09ae2ad..e9bf05e 100644
--- a/skjcmanager/skjcmanager-service/skjcmanager-nky/src/main/java/cn/gistack/nky/service/INkyService.java
+++ b/skjcmanager/skjcmanager-service/skjcmanager-nky/src/main/java/cn/gistack/nky/service/INkyService.java
@@ -4,6 +4,10 @@
import cn.gistack.nky.entity.ArimaPredict;
import cn.gistack.nky.entity.HstPredict;
import cn.gistack.nky.requestpojo.*;
+import cn.gistack.nky.resultpojo.NkyBindDetailResult;
+import com.alibaba.fastjson.JSONObject;
+
+import java.util.List;
/**
* @PROJECT_NAME: skjcmanager
@@ -50,4 +54,10 @@
* @param alarmGetPo
*/
AlarmGet alarmGetData(AlarmGetPo alarmGetPo);
+
+ List<NkyBindDetailResult> getBindDetail(String resCd, String cd, String s);
+
+ boolean bindEnable(JSONObject params);
+
+ boolean bindParam(JSONObject bindParamParams);
}
diff --git a/skjcmanager/skjcmanager-service/skjcmanager-nky/src/main/java/cn/gistack/nky/service/IZtApiService.java b/skjcmanager/skjcmanager-service/skjcmanager-nky/src/main/java/cn/gistack/nky/service/IZtApiService.java
index a0e57c2..5eed9f2 100644
--- a/skjcmanager/skjcmanager-service/skjcmanager-nky/src/main/java/cn/gistack/nky/service/IZtApiService.java
+++ b/skjcmanager/skjcmanager-service/skjcmanager-nky/src/main/java/cn/gistack/nky/service/IZtApiService.java
@@ -1,9 +1,7 @@
package cn.gistack.nky.service;
-import cn.gistack.nky.resultpojo.DataBigResultPojo;
-import cn.gistack.nky.resultpojo.DataResChildrenPo;
-import cn.gistack.nky.resultpojo.DataResPo;
+import cn.gistack.nky.resultpojo.*;
import com.alibaba.fastjson.JSONObject;
import java.util.List;
@@ -47,4 +45,8 @@
List<DataResPo> getResSl();
List<DataResChildrenPo> getSl();
+
+ List<ResDamMonitorResult> getResDamMonitor();
+
+ List<BaseCd> getBaseCd(String code, String sy);
}
diff --git a/skjcmanager/skjcmanager-service/skjcmanager-nky/src/main/java/cn/gistack/nky/service/impl/NkyServiceImpl.java b/skjcmanager/skjcmanager-service/skjcmanager-nky/src/main/java/cn/gistack/nky/service/impl/NkyServiceImpl.java
index e45dfac..b1b9aa2 100644
--- a/skjcmanager/skjcmanager-service/skjcmanager-nky/src/main/java/cn/gistack/nky/service/impl/NkyServiceImpl.java
+++ b/skjcmanager/skjcmanager-service/skjcmanager-nky/src/main/java/cn/gistack/nky/service/impl/NkyServiceImpl.java
@@ -6,6 +6,7 @@
import cn.gistack.nky.entity.HstPredict;
import cn.gistack.nky.entity.RequestRecord;
import cn.gistack.nky.requestpojo.*;
+import cn.gistack.nky.resultpojo.NkyBindDetailResult;
import cn.gistack.nky.service.INkyService;
import cn.gistack.nky.service.IRequestRecordService;
import com.alibaba.fastjson.JSON;
@@ -49,6 +50,10 @@
//判定异常
private static final String ALARM_GET = "alarm/get";
+
+ private static final String BIND_DETAIL = "bind/detail";
+ private static final String BIND_ENABLE = "bind/enable";
+ private static final String BIND_PARAM = "bind/param";
@Override
public Boolean arimaPredict(ArimaPredictReqPo po) {
@@ -148,6 +153,43 @@
return alarmGet;
}
+ @Override
+ public List<NkyBindDetailResult> getBindDetail(String resCd, String cd, String type) {
+
+ JSONObject params = new JSONObject();
+ params.put("damId",resCd);
+ params.put("pointId",cd);
+ params.put("type",type);
+
+ JSONObject result = requestNkyApi(BIND_DETAIL, JSON.toJSONString(params));
+
+ JSONArray dataList = result.getJSONArray("data");
+ List<NkyBindDetailResult> nkyBindDetailResultList = dataList.toJavaList(NkyBindDetailResult.class);
+ return nkyBindDetailResultList;
+ }
+
+ @Override
+ public boolean bindEnable(JSONObject params) {
+ JSONObject jsonObject = requestNkyApi(BIND_ENABLE, JSON.toJSONString(params));
+
+ if (jsonObject.get("status").equals("200")) {
+ return true;
+ }else {
+ return false;
+ }
+ }
+
+ @Override
+ public boolean bindParam(JSONObject bindParamParams) {
+ JSONObject jsonObject = requestNkyApi(BIND_PARAM, JSON.toJSONString(bindParamParams));
+
+ if (jsonObject.get("status").equals("200")) {
+ return true;
+ }else {
+ return false;
+ }
+ }
+
/**
* 请求南科院接口
* @param url
@@ -183,7 +225,5 @@
JSONObject jsonObject = JSONObject.parseObject(resultStr);
return jsonObject;
}
-
-
}
diff --git a/skjcmanager/skjcmanager-service/skjcmanager-nky/src/main/java/cn/gistack/nky/service/impl/ZtApiServiceImpl.java b/skjcmanager/skjcmanager-service/skjcmanager-nky/src/main/java/cn/gistack/nky/service/impl/ZtApiServiceImpl.java
index d2aa000..e6491f5 100644
--- a/skjcmanager/skjcmanager-service/skjcmanager-nky/src/main/java/cn/gistack/nky/service/impl/ZtApiServiceImpl.java
+++ b/skjcmanager/skjcmanager-service/skjcmanager-nky/src/main/java/cn/gistack/nky/service/impl/ZtApiServiceImpl.java
@@ -1,14 +1,12 @@
package cn.gistack.nky.service.impl;
import cn.gistack.common.utils.SpringContextUtil;
-import cn.gistack.nky.resultpojo.DataBigResultPojo;
-import cn.gistack.nky.resultpojo.DataResChildrenPo;
-import cn.gistack.nky.resultpojo.DataResPo;
-import cn.gistack.nky.resultpojo.ZtResultPo;
+import cn.gistack.nky.resultpojo.*;
import cn.gistack.nky.service.IZtApiService;
import com.alibaba.fastjson.JSONObject;
import lombok.extern.slf4j.Slf4j;
import org.springblade.core.tool.utils.ObjectUtil;
+import org.springblade.core.tool.utils.StringUtil;
import org.springframework.http.HttpEntity;
import org.springframework.http.HttpHeaders;
import org.springframework.http.HttpMethod;
@@ -53,6 +51,9 @@
* 渗流监测
*/
private static final String SL_API ="/services/1234567890ABCDEFGHIJKLMN/monitor/sl/api?res_nm=&cd=&city_cd=&county_cd=&pageNo=1&pageSize=9999";
+
+ private static final String RES_DAM_MONITOR ="/services/1234567890ABCDEFGHIJKLMN/res_dam_monitor/api?province_cd=420000000000&res_nm=";
+ private static final String BASE_CD ="/services/1234567890ABCDEFGHIJKLMN/base/cd/api";
int getSyCount = 0;
@@ -119,6 +120,46 @@
public List<DataResChildrenPo> getSl() {
Map<String, Object> params = new LinkedHashMap<>();
return getData(SL_API, "get", params);
+ }
+
+ @Override
+ public List<ResDamMonitorResult> getResDamMonitor() {
+ Map<String, Object> params = new LinkedHashMap<>();
+ return getResDamMonitorResult(RES_DAM_MONITOR, "get", params);
+ }
+
+ @Override
+ public List<BaseCd> getBaseCd(String resGuid, String type) {
+ Map<String, Object> params = new LinkedHashMap<>();
+ String url = BASE_CD + StringUtil.format("?res_cd={}&type={}",resGuid,type);
+ // 获取环境
+ String activeProfile = SpringContextUtil.getActiveProfile();
+ if (activeProfile.equals("dev")) {
+ url = LOCAL+ url ;
+ }
+ if (activeProfile.equals("prod")) {
+ url = ONLINE+ url ;
+ }
+ if (activeProfile.equals("test")) {
+ url = ONLINE + url;
+ }
+
+ HttpMethod method;
+ method = HttpMethod.GET;
+ // 声明一个header变量
+ HttpHeaders headers = new HttpHeaders();
+ // 设置apikey
+ headers.set("apikey",API_KEY);
+
+ HttpEntity<String> httpEntity = new HttpEntity(null, headers);
+ log.info("中台请求地址:{}", url);
+ RestTemplate template = new RestTemplate();
+ ResponseEntity<ZtResultPo2> ztResultPojoResponseEntity = template.exchange(url, method,httpEntity, ZtResultPo2.class,params);
+ List<BaseCd> returnResult = new ArrayList<>();
+ if (ztResultPojoResponseEntity.getStatusCodeValue() == 200) {
+ returnResult = ztResultPojoResponseEntity.getBody().getData();
+ }
+ return returnResult;
}
private List<DataResChildrenPo> getData(String url, String type, Map<String, Object> params) {
@@ -203,4 +244,41 @@
return null;
}
+ private List<ResDamMonitorResult> getResDamMonitorResult(String url, String type, Map<String, Object> params){
+
+ // 获取环境
+ String activeProfile = SpringContextUtil.getActiveProfile();
+ if (activeProfile.equals("dev")) {
+ url = LOCAL+ url ;
+ }
+ if (activeProfile.equals("prod")) {
+ url = ONLINE+ url ;
+ }
+ if (activeProfile.equals("test")) {
+ url = ONLINE + url;
+ }
+
+
+ HttpMethod method;
+ if (type.toLowerCase().equals("get".toLowerCase())) {
+ method = HttpMethod.GET;
+ } else {
+ method = HttpMethod.POST;
+ }
+ // 声明一个header变量
+ HttpHeaders headers = new HttpHeaders();
+ // 设置apikey
+ headers.set("apikey",API_KEY);
+
+ HttpEntity<String> httpEntity = new HttpEntity(null, headers);
+ log.info("中台请求地址:{}", url);
+ RestTemplate template = new RestTemplate();
+ ResponseEntity<ZtResult> ztResultPojoResponseEntity = template.exchange(url, method,httpEntity, ZtResult.class,params);
+ if (ztResultPojoResponseEntity.getStatusCodeValue() == 200) {
+ List<ResDamMonitorResult> resDamMonitorResultList = ztResultPojoResponseEntity.getBody().getResultList();
+ return resDamMonitorResultList;
+ }
+ return null;
+ }
+
}
diff --git a/skjcmanager/skjcmanager-service/skjcmanager-sm/src/main/java/cn/gistack/sm/sjztmd/controller/AttWmstBaseController.java b/skjcmanager/skjcmanager-service/skjcmanager-sm/src/main/java/cn/gistack/sm/sjztmd/controller/AttWmstBaseController.java
new file mode 100644
index 0000000..9acf341
--- /dev/null
+++ b/skjcmanager/skjcmanager-service/skjcmanager-sm/src/main/java/cn/gistack/sm/sjztmd/controller/AttWmstBaseController.java
@@ -0,0 +1,39 @@
+package cn.gistack.sm.sjztmd.controller;
+
+import cn.gistack.sm.sjztmd.entity.AttWmstBase;
+import cn.gistack.sm.sjztmd.service.IAttWmstBaseService;
+import cn.gistack.sm.sjztmd.vo.AttWmstBaseVO;
+import com.baomidou.mybatisplus.core.metadata.IPage;
+import io.swagger.annotations.Api;
+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.tool.api.R;
+import org.springframework.web.bind.annotation.GetMapping;
+import org.springframework.web.bind.annotation.PostMapping;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RestController;
+
+
+@Slf4j
+@Api(tags = "视频")
+@RestController
+@RequestMapping("/sjztmd/attWmstBase")
+@AllArgsConstructor
+public class AttWmstBaseController {
+ private final IAttWmstBaseService attWmstBaseService;
+
+ @GetMapping("/getPage")
+ public R getPage(Query query , AttWmstBaseVO attWmstBaseVO){
+ IPage<AttWmstBaseVO> page = attWmstBaseService.getPage(Condition.getPage(query),attWmstBaseVO);
+ return R.data(page);
+ }
+
+ @PostMapping("/update")
+ public R update(AttWmstBase attWmstBase){
+ boolean res = attWmstBaseService.customizeUpdate(attWmstBase);
+ return R.data(res);
+ }
+
+}
diff --git a/skjcmanager/skjcmanager-service/skjcmanager-sm/src/main/java/cn/gistack/sm/sjztmd/entity/AttWmstBase.java b/skjcmanager/skjcmanager-service/skjcmanager-sm/src/main/java/cn/gistack/sm/sjztmd/entity/AttWmstBase.java
new file mode 100644
index 0000000..c530271
--- /dev/null
+++ b/skjcmanager/skjcmanager-service/skjcmanager-sm/src/main/java/cn/gistack/sm/sjztmd/entity/AttWmstBase.java
@@ -0,0 +1,93 @@
+package cn.gistack.sm.sjztmd.entity;
+
+import com.baomidou.mybatisplus.annotation.TableField;
+import com.baomidou.mybatisplus.annotation.TableId;
+import com.baomidou.mybatisplus.annotation.TableName;
+import com.fasterxml.jackson.annotation.JsonFormat;
+import com.fasterxml.jackson.databind.annotation.JsonSerialize;
+import com.fasterxml.jackson.databind.ser.std.ToStringSerializer;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+import org.springframework.format.annotation.DateTimeFormat;
+
+/**
+ * 视频(中台表)
+ */
+@Data
+@TableName("\"att_wmst_base\"")
+public class AttWmstBase {
+
+
+ private static final long serialVersionUID = 1L;
+
+ /**
+ * 主键
+ */
+ @JsonSerialize(using = ToStringSerializer.class)
+ @ApiModelProperty(value = "主键")
+ @TableField("\"guid\"")
+ @TableId("\"guid\"")
+ private String guid;
+
+ /**
+ * 水库id
+ */
+ @ApiModelProperty(value = "水库id")
+ @TableField("\"res_guid\"")
+ private String resGuid;
+
+ /**
+ * 视频id
+ */
+ @ApiModelProperty(value = "视频id")
+ @TableField("\"video_guid\"")
+ private String videoGuid;
+
+ /**
+ * 视频点名称
+ */
+ @ApiModelProperty(value = "视频点名称")
+ @TableField("\"video_name\"")
+ private String videoName;
+
+ /**
+ * 在线状态(0离线,1在线)
+ */
+ @ApiModelProperty(value = "在线状态(0离线,1在线)")
+ @TableField("\"online\"")
+ private String online;
+
+ /**
+ * 在线状态(1海康老平台,2海康楚天云平台)
+ */
+ @ApiModelProperty(value = "来源")
+ @TableField("\"sys_resource\"")
+ private String sysResource;
+
+ /**
+ * 建站时间
+ */
+ @ApiModelProperty(value = "建站时间")
+ @TableField("\"comp_time\"")
+ private String compTime;
+
+
+ /**
+ * 厂商
+ */
+ @ApiModelProperty(value = "厂商")
+ @TableField("\"factory\"")
+ private String factory;
+
+
+ /**
+ * 采集时间
+ */
+ @ApiModelProperty(value = "采集时间")
+ @TableField("\"collect_time\"")
+ @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
+ @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
+ private String collectTime;
+
+
+}
diff --git a/skjcmanager/skjcmanager-service/skjcmanager-sm/src/main/java/cn/gistack/sm/sjztmd/mapper/AttWmstBaseMapper.java b/skjcmanager/skjcmanager-service/skjcmanager-sm/src/main/java/cn/gistack/sm/sjztmd/mapper/AttWmstBaseMapper.java
new file mode 100644
index 0000000..ba1d23c
--- /dev/null
+++ b/skjcmanager/skjcmanager-service/skjcmanager-sm/src/main/java/cn/gistack/sm/sjztmd/mapper/AttWmstBaseMapper.java
@@ -0,0 +1,18 @@
+package cn.gistack.sm.sjztmd.mapper;
+
+import cn.gistack.sm.sjztmd.entity.AttWmstBase;
+import cn.gistack.sm.sjztmd.entity.YwTermitesTask;
+import cn.gistack.sm.sjztmd.vo.AttWmstBaseVO;
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.baomidou.mybatisplus.core.metadata.IPage;
+import org.apache.ibatis.annotations.Param;
+
+import java.util.List;
+
+
+public interface AttWmstBaseMapper extends BaseMapper<AttWmstBase> {
+
+ List<AttWmstBaseVO> getPage(IPage<AttWmstBaseVO> page, AttWmstBaseVO attWmstBaseVO);
+
+ boolean customizeUpdate(@Param("attWmstBase") AttWmstBase attWmstBase);
+}
diff --git a/skjcmanager/skjcmanager-service/skjcmanager-sm/src/main/java/cn/gistack/sm/sjztmd/mapper/AttWmstBaseMapper.xml b/skjcmanager/skjcmanager-service/skjcmanager-sm/src/main/java/cn/gistack/sm/sjztmd/mapper/AttWmstBaseMapper.xml
new file mode 100644
index 0000000..32a8d5c
--- /dev/null
+++ b/skjcmanager/skjcmanager-service/skjcmanager-sm/src/main/java/cn/gistack/sm/sjztmd/mapper/AttWmstBaseMapper.xml
@@ -0,0 +1,11 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
+<mapper namespace="cn.gistack.sm.sjztmd.mapper.AttWmstBaseMapper">
+
+
+ <update id="customizeUpdate">
+ UPDATE SJZT_MD."att_wmst_base"
+ SET "res_guid" = #{attWmstBase.resGuid}
+ where "guid" = #{attWmstBase.guid}
+ </update>
+</mapper>
diff --git a/skjcmanager/skjcmanager-service/skjcmanager-sm/src/main/java/cn/gistack/sm/sjztmd/service/IAttWmstBaseService.java b/skjcmanager/skjcmanager-service/skjcmanager-sm/src/main/java/cn/gistack/sm/sjztmd/service/IAttWmstBaseService.java
new file mode 100644
index 0000000..7e84a8f
--- /dev/null
+++ b/skjcmanager/skjcmanager-service/skjcmanager-sm/src/main/java/cn/gistack/sm/sjztmd/service/IAttWmstBaseService.java
@@ -0,0 +1,11 @@
+package cn.gistack.sm.sjztmd.service;
+
+import cn.gistack.sm.sjztmd.entity.AttWmstBase;
+import cn.gistack.sm.sjztmd.vo.AttWmstBaseVO;
+import com.baomidou.mybatisplus.core.metadata.IPage;
+
+public interface IAttWmstBaseService {
+ IPage<AttWmstBaseVO> getPage(IPage<AttWmstBaseVO> page, AttWmstBaseVO videoClassVO);
+
+ boolean customizeUpdate(AttWmstBase attWmstBase);
+}
diff --git a/skjcmanager/skjcmanager-service/skjcmanager-sm/src/main/java/cn/gistack/sm/sjztmd/service/impl/AttWmstBaseServiceImpl.java b/skjcmanager/skjcmanager-service/skjcmanager-sm/src/main/java/cn/gistack/sm/sjztmd/service/impl/AttWmstBaseServiceImpl.java
new file mode 100644
index 0000000..1612e47
--- /dev/null
+++ b/skjcmanager/skjcmanager-service/skjcmanager-sm/src/main/java/cn/gistack/sm/sjztmd/service/impl/AttWmstBaseServiceImpl.java
@@ -0,0 +1,22 @@
+package cn.gistack.sm.sjztmd.service.impl;
+
+import cn.gistack.sm.sjztmd.entity.AttWmstBase;
+import cn.gistack.sm.sjztmd.mapper.AttWmstBaseMapper;
+import cn.gistack.sm.sjztmd.service.IAttWmstBaseService;
+import cn.gistack.sm.sjztmd.vo.AttWmstBaseVO;
+import com.baomidou.mybatisplus.core.metadata.IPage;
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import org.springframework.stereotype.Service;
+
+@Service
+public class AttWmstBaseServiceImpl extends ServiceImpl<AttWmstBaseMapper,AttWmstBase> implements IAttWmstBaseService {
+ @Override
+ public IPage<AttWmstBaseVO> getPage(IPage<AttWmstBaseVO> page, AttWmstBaseVO attWmstBaseVO) {
+ return page.setRecords(baseMapper.getPage(page,attWmstBaseVO));
+ }
+
+ @Override
+ public boolean customizeUpdate(AttWmstBase attWmstBase) {
+ return baseMapper.customizeUpdate(attWmstBase);
+ }
+}
diff --git a/skjcmanager/skjcmanager-service/skjcmanager-sm/src/main/java/cn/gistack/sm/sjztmd/vo/AttWmstBaseVO.java b/skjcmanager/skjcmanager-service/skjcmanager-sm/src/main/java/cn/gistack/sm/sjztmd/vo/AttWmstBaseVO.java
new file mode 100644
index 0000000..ee8012f
--- /dev/null
+++ b/skjcmanager/skjcmanager-service/skjcmanager-sm/src/main/java/cn/gistack/sm/sjztmd/vo/AttWmstBaseVO.java
@@ -0,0 +1,8 @@
+package cn.gistack.sm.sjztmd.vo;
+
+import cn.gistack.sm.sjztmd.entity.AttWmstBase;
+import lombok.Data;
+
+@Data
+public class AttWmstBaseVO extends AttWmstBase {
+}
diff --git a/skjcmanager/skjcmanager-service/skjcmanager-xxljob/src/main/java/cn/gistack/job/executor/jobhandler/NkyXxlJob.java b/skjcmanager/skjcmanager-service/skjcmanager-xxljob/src/main/java/cn/gistack/job/executor/jobhandler/NkyXxlJob.java
index 8a96fb2..9ae441a 100644
--- a/skjcmanager/skjcmanager-service/skjcmanager-xxljob/src/main/java/cn/gistack/job/executor/jobhandler/NkyXxlJob.java
+++ b/skjcmanager/skjcmanager-service/skjcmanager-xxljob/src/main/java/cn/gistack/job/executor/jobhandler/NkyXxlJob.java
@@ -2,12 +2,19 @@
import cn.gistack.job.executor.thread.MyThread;
import cn.gistack.nky.fegin.INkyClient;
+import com.alibaba.fastjson.JSON;
+import com.alibaba.fastjson.JSONObject;
import com.xxl.job.core.biz.model.ReturnT;
import com.xxl.job.core.handler.annotation.XxlJob;
import com.xxl.job.core.log.XxlJobLogger;
import lombok.AllArgsConstructor;
import org.springblade.core.tool.utils.DateUtil;
import org.springframework.stereotype.Component;
+
+import java.text.SimpleDateFormat;
+import java.util.ArrayList;
+import java.util.Arrays;
+import java.util.List;
/**
* 南科院预测数据定时器
@@ -212,4 +219,28 @@
return ReturnT.SUCCESS;
}
+
+
+
+ @XxlJob("initAlgorithmHandler")
+ public ReturnT<String> initAlgorithmHandler(String param) {
+ XxlJobLogger.log("定时器执行时间:" + new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(DateUtil.now()));
+
+ JSONObject jsonParam = JSON.parseObject(param);
+ List<String> resList = new ArrayList<>();
+ if (jsonParam != null){
+ String resGuids = jsonParam.getString("resGuids");
+ resList = Arrays.asList(resGuids.split(","));
+ }
+
+ nkyClient.initAlgorithm(resList);
+
+
+ XxlJobLogger.log("定时器执行结束时间:" + new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(DateUtil.now()));
+
+ return ReturnT.SUCCESS;
+ }
+
+
+
}
--
Gitblit v1.9.3