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-sm/src/main/java/cn/gistack/sm/hk/controller/HkController.java | 5
skjcmanager/skjcmanager-service-api/skjcmanager-sm-api/src/main/java/cn/gistack/sm/sjztmd/feign/ISjztMdClient.java | 19
skjcmanager/skjcmanager-service-api/skjcmanager-alerts-api/src/main/java/cn/gistack/alerts/alarmRule/vo/AlarmRecordVO.java | 3
skjcmanager/skjcmanager-service/skjcmanager-sm/src/main/resources/word/doc/overFloodTemplate.docx | 0
skjcmanager/skjcmanager-service/skjcmanager-sm/src/main/java/cn/gistack/sm/hk/mapper/HkEventMapper.java | 20
skjcmanager/skjcmanager-service/skjcmanager-nky/src/main/java/cn/gistack/nky/service/impl/RequestRecordServiceImpl.java | 11
skjcmanager/skjcmanager-service/skjcmanager-sm/src/main/java/cn/gistack/sm/dayReportFlood/mapper/DayReportFloodMapper.xml | 21
skjcmanager/skjcmanager-service/skjcmanager-sm/src/main/java/cn/gistack/sm/sjztmd/word/util/WordUtil.java | 3
skjcmanager/skjcmanager-service-api/skjcmanager-sm-api/src/main/java/cn/gistack/sm/dayReportFlood/entity/DayReportFlood.java | 40
skjcmanager/skjcmanager-service/skjcmanager-sm/src/main/java/cn/gistack/sm/sjztmd/controller/AttWmstBaseController.java | 43
skjcmanager/skjcmanager-service-api/skjcmanager-nky-api/src/main/java/cn/gistack/nky/resultpojo/NkyBindDetailResult.java | 21
skjcmanager/skjcmanager-service/skjcmanager-sm/src/main/java/cn/gistack/sm/sjztmd/word/controller/DownTemplateController.java | 9
skjcmanager/skjcmanager-service-api/skjcmanager-nky-api/src/main/java/cn/gistack/nky/resultpojo/DataResChildrenPo.java | 1
skjcmanager/skjcmanager-service/skjcmanager-sm/src/main/java/cn/gistack/sm/hk/controller/HkEventController.java | 90 +
skjcmanager/skjcmanager-service-api/skjcmanager-nky-api/src/main/java/cn/gistack/nky/resultpojo/ResDamMonitorResult.java | 24
skjcmanager/skjcmanager-auth/src/main/java/cn/gistack/auth/service/BladeUserDetailsServiceImpl.java | 36
skjcmanager/skjcmanager-service/skjcmanager-xxljob/src/main/java/cn/gistack/job/executor/jobhandler/AlarmDayXxlJob.java | 121 ++
skjcmanager/skjcmanager-service/skjcmanager-xxljob/src/main/java/cn/gistack/job/executor/jobhandler/UserXxlJob.java | 4
skjcmanager/skjcmanager-service/skjcmanager-sm/src/main/java/cn/gistack/sm/hk/vo/EventVO.java | 2
skjcmanager/skjcmanager-service/skjcmanager-sm/src/main/java/cn/gistack/sm/sjztmd/word/vo/OverWord.java | 2
skjcmanager/skjcmanager-service/skjcmanager-sm/src/main/java/cn/gistack/sm/hk/service/impl/HkEventServiceImpl.java | 29
skjcmanager/skjcmanager-service/skjcmanager-sm/src/main/java/cn/gistack/sm/sjztmd/mapper/AttResBaseMapper.xml | 5
skjcmanager/skjcmanager-service-api/skjcmanager-nky-api/src/main/java/cn/gistack/nky/fegin/INkyClientFallback.java | 5
skjcmanager/skjcmanager-ops/skjcmanager-resource/src/main/java/cn/gistack/resource/mapper/TextualResearchAttachMapper.xml | 1
skjcmanager/skjcmanager-service/skjcmanager-sm/src/main/java/cn/gistack/sm/sjztmd/util/MyDateUtils.java | 4
skjcmanager/skjcmanager-common/src/main/java/cn/gistack/common/constant/LauncherConstant.java | 4
skjcmanager/skjcmanager-service/skjcmanager-xxljob/src/main/java/cn/gistack/job/executor/jobhandler/SendSmsXxlJob.java | 11
skjcmanager/skjcmanager-service/skjcmanager-sm/src/main/java/cn/gistack/sm/dayReportFlood/service/impl/DayReportFloodServiceImpl.java | 17
skjcmanager/skjcmanager-service-api/skjcmanager-sm-api/src/main/java/cn/gistack/sm/sjztmd/feign/ISjztMdClientFallback.java | 23
skjcmanager/skjcmanager-service/skjcmanager-sm/src/main/java/cn/gistack/sm/sjztmd/vo/AttWmstBaseVO.java | 14
skjcmanager/skjcmanager-service/skjcmanager-sm/src/main/java/cn/gistack/sm/dayReportFlood/controller/DayReportFloodController.java | 77 +
skjcmanager/skjcmanager-service-api/skjcmanager-nky-api/src/main/java/cn/gistack/nky/resultpojo/ZtResultPo2.java | 22
skjcmanager/skjcmanager-auth/src/main/java/cn/gistack/auth/granter/AccountPhoneTokenGranter.java | 74 +
skjcmanager/skjcmanager-service/skjcmanager-sm/src/main/java/cn/gistack/sm/hk/constant/HkConstant.java | 22
skjcmanager/skjcmanager-service/skjcmanager-sm/src/main/java/cn/gistack/sm/sjztmd/mapper/AttWmstBaseMapper.xml | 33
skjcmanager/skjcmanager-service/skjcmanager-nky/src/main/java/cn/gistack/nky/service/IZtApiService.java | 8
skjcmanager/skjcmanager-service/skjcmanager-nky/src/main/java/cn/gistack/nky/service/impl/NkyServiceImpl.java | 92 +
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/feign/SjztMdClientImpl.java | 96 ++
skjcmanager/skjcmanager-service/skjcmanager-sm/src/main/java/cn/gistack/sm/sjztmd/mapper/AttWmstBaseMapper.java | 18
skjcmanager/skjcmanager-service/skjcmanager-nky/src/main/java/cn/gistack/nky/mapper/RequestRecordMapper.java | 15
skjcmanager/skjcmanager-service-api/skjcmanager-nky-api/src/main/java/cn/gistack/nky/resultpojo/ZtResult.java | 16
skjcmanager/skjcmanager-service/skjcmanager-sm/src/main/java/cn/gistack/sm/hk/constant/HkEventConstant.java | 70 +
skjcmanager/skjcmanager-service/skjcmanager-sm/src/main/java/cn/gistack/sm/hk/entity/HkEvent.java | 124 ++
skjcmanager/skjcmanager-service/skjcmanager-sm/src/main/java/cn/gistack/sm/hk/vo/HkEventVO.java | 59 +
skjcmanager/skjcmanager-ops-api/skjcmanager-resource-api/src/main/java/cn/gistack/resource/feign/IOssClientFallback.java | 30
skjcmanager/skjcmanager-service/skjcmanager-sm/src/main/java/cn/gistack/sm/hk/service/AsyncHkEventService.java | 82 +
skjcmanager/skjcmanager-service/skjcmanager-xxljob/pom.xml | 5
skjcmanager/skjcmanager-auth/src/main/java/cn/gistack/auth/granter/BladeTokenGranter.java | 3
skjcmanager/skjcmanager-service/skjcmanager-sm/src/main/java/cn/gistack/sm/hk/mapper/HkEventMapper.xml | 52 +
skjcmanager/skjcmanager-ops/skjcmanager-resource/src/main/java/cn/gistack/resource/feign/OssClient.java | 15
skjcmanager/skjcmanager-service-api/skjcmanager-sm-api/src/main/java/cn/gistack/sm/dayReportFlood/feign/IDayReportFloodClient.java | 20
skjcmanager/skjcmanager-service/skjcmanager-alerts/src/main/java/cn/gistack/alerts/notice/service/impl/NoticeStrategyImpl.java | 2
skjcmanager/skjcmanager-service/skjcmanager-sm/src/main/java/cn/gistack/sm/sjztmd/service/IAttWmstBaseService.java | 11
skjcmanager/skjcmanager-ops-api/skjcmanager-resource-api/src/main/java/cn/gistack/resource/vo/MyMultipartFile.java | 65 +
skjcmanager/skjcmanager-service/skjcmanager-sm/src/main/java/cn/gistack/sm/sms/feign/DataAbnormalWarnClient.java | 148 +++
skjcmanager/skjcmanager-ops/skjcmanager-resource/src/main/java/cn/gistack/resource/builder/oss/OssBuilder.java | 6
skjcmanager/skjcmanager-service/skjcmanager-sm/src/main/java/cn/gistack/sm/sjztmd/word/util/BriefReportUtil.java | 78 +
skjcmanager/skjcmanager-service-api/skjcmanager-nky-api/src/main/java/cn/gistack/nky/entity/RequestRecord.java | 40
skjcmanager/skjcmanager-service-api/skjcmanager-sm-api/src/main/java/cn/gistack/sm/sms/feign/DataAbnormalWarnClientFallback.java | 4
skjcmanager/skjcmanager-service/skjcmanager-xxljob/src/main/java/cn/gistack/job/executor/jobhandler/DayReportFloodJob.java | 85 +
skjcmanager/skjcmanager-service-api/skjcmanager-sm-api/src/main/java/cn/gistack/sm/sms/feign/IDataAbnormalWarnClient.java | 4
skjcmanager/skjcmanager-service/skjcmanager-nky/src/main/java/cn/gistack/nky/service/impl/AlarmGetServiceImpl.java | 2
skjcmanager/skjcmanager-service-api/skjcmanager-sm-api/src/main/java/cn/gistack/sm/dayReportFlood/feign/IDayReportFloodClientFallback.java | 24
skjcmanager/skjcmanager-service/skjcmanager-sm/src/main/java/cn/gistack/sm/sjztmd/entity/TbAttResPowerStation.java | 4
skjcmanager/skjcmanager-service/skjcmanager-nky/src/main/java/cn/gistack/nky/service/IRequestRecordService.java | 7
skjcmanager/skjcmanager-service-api/skjcmanager-nky-api/src/main/java/cn/gistack/nky/requestpojo/BDDataPo.java | 2
skjcmanager/skjcmanager-ops/skjcmanager-resource/src/main/resources/application.yml | 4
skjcmanager/skjcmanager-service/skjcmanager-xxljob/src/main/java/cn/gistack/job/executor/jobhandler/NkyXxlJob.java | 31
skjcmanager/skjcmanager-service/skjcmanager-sm/src/main/java/cn/gistack/sm/sjztmd/mapper/AttResManagePersonMapper.xml | 2
skjcmanager/skjcmanager-service/skjcmanager-alerts/src/main/java/cn/gistack/alerts/notice/service/impl/NoticeHandle.java | 101 ++
skjcmanager/skjcmanager-service/skjcmanager-nky/src/main/java/cn/gistack/nky/service/impl/ZtApiServiceImpl.java | 122 ++
skjcmanager/skjcmanager-service/skjcmanager-sm/src/main/java/cn/gistack/sm/sjztmd/mapper/TbProjectMapper.xml | 2
skjcmanager/skjcmanager-service-api/skjcmanager-sm-api/src/main/java/cn/gistack/sm/dayReportFlood/vo/DayReportFloodVO.java | 14
skjcmanager/skjcmanager-ops-api/skjcmanager-resource-api/src/main/java/cn/gistack/resource/feign/IOssClient.java | 15
skjcmanager/skjcmanager-service/skjcmanager-sm/src/main/java/cn/gistack/sm/dayReportFlood/feign/DayReportFloodClientImpl.java | 36
skjcmanager/skjcmanager-service/skjcmanager-sm/src/main/java/cn/gistack/sm/hk/service/HkEventService.java | 23
skjcmanager/skjcmanager-service/skjcmanager-alerts/src/main/java/cn/gistack/alerts/alarmRule/mapper/AlarmRecordMapper.xml | 25
skjcmanager/skjcmanager-service/skjcmanager-sm/src/main/java/cn/gistack/sm/dayReportFlood/mapper/DayReportFloodMapper.java | 13
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-api/skjcmanager-nky-api/src/main/java/cn/gistack/nky/resultpojo/BaseCd.java | 12
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/feign/NkyClientImpl.java | 93 +
skjcmanager/skjcmanager-service/skjcmanager-sm/src/main/java/cn/gistack/sm/dayReportFlood/service/IDayReportFloodService.java | 17
skjcmanager/skjcmanager-service/skjcmanager-sm/src/main/java/cn/gistack/sm/hk/util/GetCameraUtils.java | 24
86 files changed, 2,563 insertions(+), 104 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-auth/src/main/java/cn/gistack/auth/service/BladeUserDetailsServiceImpl.java b/skjcmanager/skjcmanager-auth/src/main/java/cn/gistack/auth/service/BladeUserDetailsServiceImpl.java
index 145f6b0..093e705 100644
--- a/skjcmanager/skjcmanager-auth/src/main/java/cn/gistack/auth/service/BladeUserDetailsServiceImpl.java
+++ b/skjcmanager/skjcmanager-auth/src/main/java/cn/gistack/auth/service/BladeUserDetailsServiceImpl.java
@@ -20,7 +20,7 @@
import cn.gistack.common.utils.Base64Utils;
import cn.gistack.pwd.dto.CBCResultDTO;
import cn.gistack.pwd.dto.ResultDTO;
-//import cn.gistack.pwd.fegin.IPwdClient;
+import cn.gistack.pwd.fegin.IPwdClient;
import cn.gistack.sm.collect.feign.ICollectClient;
import cn.gistack.sm.collect.feign.ICollectClientFallback;
import cn.gistack.sm.sjztmd.entity.AttResManagePerson;
@@ -78,7 +78,7 @@
private final ICollectClient collectClient;
-// private final IPwdClient pwdClient;
+ private final IPwdClient pwdClient;
@Override
@SneakyThrows
@@ -205,24 +205,24 @@
User loginUserInfo = userInfo.getUser();
- //获取解密后的Base64字符串
-// R<ResultDTO> encryptRes = pwdClient.getDecrypt(loginUserInfo.getSm4iv(), loginUserInfo.getKeyindexs(),loginUserInfo.getEncdata());
-//
-// if (encryptRes.getCode() != 200){
-// throw new UserDeniedAuthorizationException("获取密钥失败");
-// }
+// 获取解密后的Base64字符串
+ R<ResultDTO> encryptRes = pwdClient.getDecrypt(loginUserInfo.getSm4iv(), loginUserInfo.getKeyindexs(),loginUserInfo.getEncdata());
+
+ if (encryptRes.getCode() != 200){
+ throw new UserDeniedAuthorizationException("获取密钥失败");
+ }
//解码Base64
-// String JSONstr = Base64Utils.getBase64Decode(encryptRes.getData().getData());
-//
-// pwdClient.verify(loginUserInfo.getMaced(),loginUserInfo.getSm4iv(),loginUserInfo.getKeyindexs(),JSONstr,loginUserInfo.getId().toString(),"blade_user");
-//
-// UserSUPO userSUPO = JSONObject.parseObject(JSONstr, UserSUPO.class);
-//
-// //若登录用户的电话、角色、部门与原加密数据不符,登录失败
-// if (!(loginUserInfo.getPhone().equals(userSUPO.getPhone()) && loginUserInfo.getRoleId().equals(userSUPO.getRoleId()) && loginUserInfo.getDeptId().equals(userSUPO.getDeptId())) ){
-// throw new UserDeniedAuthorizationException("用户信息异常,请联系管理员");
-// }
+ String JSONstr = Base64Utils.getBase64Decode(encryptRes.getData().getData());
+
+ pwdClient.verify(loginUserInfo.getMaced(),loginUserInfo.getSm4iv(),loginUserInfo.getKeyindexs(),JSONstr,loginUserInfo.getId().toString(),"blade_user");
+
+ UserSUPO userSUPO = JSONObject.parseObject(JSONstr, UserSUPO.class);
+
+ //若登录用户的电话、角色、部门与原加密数据不符,登录失败
+ if (!(loginUserInfo.getPhone().equals(userSUPO.getPhone()) && loginUserInfo.getRoleId().equals(userSUPO.getRoleId()) && loginUserInfo.getDeptId().equals(userSUPO.getDeptId())) ){
+ throw new UserDeniedAuthorizationException("用户信息异常,请联系管理员");
+ }
return new BladeUserDetails(user.getId(),
user.getTenantId(), StringPool.EMPTY, user.getName(), user.getRealName(), user.getDeptId(), user.getPostId(), user.getRoleId(), Func.join(userInfo.getRoles()), Func.toStr(user.getAvatar(), TokenUtil.DEFAULT_AVATAR),
diff --git a/skjcmanager/skjcmanager-common/src/main/java/cn/gistack/common/constant/LauncherConstant.java b/skjcmanager/skjcmanager-common/src/main/java/cn/gistack/common/constant/LauncherConstant.java
index 154fbff..32e1499 100644
--- a/skjcmanager/skjcmanager-common/src/main/java/cn/gistack/common/constant/LauncherConstant.java
+++ b/skjcmanager/skjcmanager-common/src/main/java/cn/gistack/common/constant/LauncherConstant.java
@@ -40,7 +40,7 @@
/**
* nacos dev 地址
*/
- String NACOS_DEV_ADDR = "127.0.0.1:8848";
+ String NACOS_DEV_ADDR = "127.0.0.1:8849";
/**
* nacos prod 地址
@@ -50,7 +50,7 @@
String NACOS_USERNAME = "nacos";
- String NACOS_PASSWORD = "nacos";
+ String NACOS_PASSWORD = "1qaz!QAZ";
/**
* nacos test 地址
diff --git a/skjcmanager/skjcmanager-ops-api/skjcmanager-resource-api/src/main/java/cn/gistack/resource/feign/IOssClient.java b/skjcmanager/skjcmanager-ops-api/skjcmanager-resource-api/src/main/java/cn/gistack/resource/feign/IOssClient.java
index e80c191..27babd7 100644
--- a/skjcmanager/skjcmanager-ops-api/skjcmanager-resource-api/src/main/java/cn/gistack/resource/feign/IOssClient.java
+++ b/skjcmanager/skjcmanager-ops-api/skjcmanager-resource-api/src/main/java/cn/gistack/resource/feign/IOssClient.java
@@ -18,6 +18,16 @@
*
* @author kelu
*/
+import feign.Body;
+import feign.Headers;
+import org.springblade.core.launch.constant.AppConstant;
+import org.springframework.cloud.openfeign.FeignClient;
+import org.springframework.http.MediaType;
+import org.springframework.web.bind.annotation.*;
+import org.springframework.web.multipart.MultipartFile;
+
+import java.io.InputStream;
+
@FeignClient(
value = AppConstant.APPLICATION_RESOURCE_NAME,
fallback = IOssClientFallback.class
@@ -35,4 +45,9 @@
// ,@RequestParam("resGuid")String resGuid
// ) throws IOException;
+
+ String UPLOAD_FILE = API_PREFIX + "uploadFile";
+
+ @PostMapping(value = UPLOAD_FILE,consumes = MediaType.MULTIPART_FORM_DATA_VALUE)
+ String uploadFile(@RequestParam("fileName") String fileName, @RequestPart("file") MultipartFile file) throws Exception;
}
diff --git a/skjcmanager/skjcmanager-ops-api/skjcmanager-resource-api/src/main/java/cn/gistack/resource/feign/IOssClientFallback.java b/skjcmanager/skjcmanager-ops-api/skjcmanager-resource-api/src/main/java/cn/gistack/resource/feign/IOssClientFallback.java
index 207e0bd..c9abe08 100644
--- a/skjcmanager/skjcmanager-ops-api/skjcmanager-resource-api/src/main/java/cn/gistack/resource/feign/IOssClientFallback.java
+++ b/skjcmanager/skjcmanager-ops-api/skjcmanager-resource-api/src/main/java/cn/gistack/resource/feign/IOssClientFallback.java
@@ -7,6 +7,29 @@
import java.io.IOException;
import java.util.HashMap;
import java.util.List;
+/*
+ * Copyright (c) 2018-2028, Chill Zhuang All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions are met:
+ *
+ * Redistributions of source code must retain the above copyright notice,
+ * this list of conditions and the following disclaimer.
+ * Redistributions in binary form must reproduce the above copyright
+ * notice, this list of conditions and the following disclaimer in the
+ * documentation and/or other materials provided with the distribution.
+ * Neither the name of the dreamlu.net developer nor the names of its
+ * contributors may be used to endorse or promote products derived from
+ * this software without specific prior written permission.
+ * Author: Chill 庄骞 (smallchill@163.com)
+ */
+package cn.gistack.resource.feign;
+
+import org.springblade.core.tool.api.R;
+import org.springframework.stereotype.Component;
+import org.springframework.web.multipart.MultipartFile;
+
+import java.io.InputStream;
/**
* 流程远程调用失败处理类
@@ -21,9 +44,10 @@
}
-// public R uploadQietu(HashMap<String,String> qietuHashMap,String resGuid) {
-// return R.fail("远程调用失败");
-// }
+ @Override
+ public String uploadFile(String fileName, MultipartFile multipartFile) {
+ return null;
+ }
}
diff --git a/skjcmanager/skjcmanager-ops-api/skjcmanager-resource-api/src/main/java/cn/gistack/resource/vo/MyMultipartFile.java b/skjcmanager/skjcmanager-ops-api/skjcmanager-resource-api/src/main/java/cn/gistack/resource/vo/MyMultipartFile.java
new file mode 100644
index 0000000..f69abb0
--- /dev/null
+++ b/skjcmanager/skjcmanager-ops-api/skjcmanager-resource-api/src/main/java/cn/gistack/resource/vo/MyMultipartFile.java
@@ -0,0 +1,65 @@
+package cn.gistack.resource.vo;
+
+import org.springframework.web.multipart.MultipartFile;
+
+import java.io.*;
+
+public class MyMultipartFile implements MultipartFile {
+
+ private String contentType;
+
+ private String originalFilename;
+
+ private String name;
+
+ private byte[] bytes;
+
+ public MyMultipartFile(){}
+
+ public MyMultipartFile(String name, String originalFilename, String contentType, byte[] bytes){
+ this.bytes = bytes;
+ this.name = name;
+ this.originalFilename = originalFilename;
+ this.contentType = contentType;
+ }
+ @Override
+ public String getName() {
+ return this.name;
+ }
+
+ @Override
+ public String getOriginalFilename() {
+ return this.originalFilename;
+ }
+
+ @Override
+ public String getContentType() {
+ return this.contentType;
+ }
+
+ @Override
+ public boolean isEmpty() {
+ return this.bytes == null || this.bytes.length == 0;
+ }
+
+ @Override
+ public long getSize() {
+ return this.bytes.length;
+ }
+
+ @Override
+ public byte[] getBytes() throws IOException {
+ return this.bytes;
+ }
+
+ @Override
+ public InputStream getInputStream() throws IOException {
+ return new ByteArrayInputStream(this.bytes);
+ }
+
+ @Override
+ @SuppressWarnings("resource")
+ public void transferTo(File dest) throws IOException, IllegalStateException {
+ new FileOutputStream(dest).write(bytes);
+ }
+}
diff --git a/skjcmanager/skjcmanager-ops/skjcmanager-resource/src/main/java/cn/gistack/resource/builder/oss/OssBuilder.java b/skjcmanager/skjcmanager-ops/skjcmanager-resource/src/main/java/cn/gistack/resource/builder/oss/OssBuilder.java
index aca369e..bf6473a 100644
--- a/skjcmanager/skjcmanager-ops/skjcmanager-resource/src/main/java/cn/gistack/resource/builder/oss/OssBuilder.java
+++ b/skjcmanager/skjcmanager-ops/skjcmanager-resource/src/main/java/cn/gistack/resource/builder/oss/OssBuilder.java
@@ -16,6 +16,7 @@
*/
package cn.gistack.resource.builder.oss;
+import cn.gistack.common.constant.CommonConstant;
import cn.gistack.resource.rule.MyOssRule;
import cn.gistack.resource.rule.PanoramaOSSRule;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
@@ -101,6 +102,11 @@
*/
public OssTemplate template(String code) {
String tenantId = AuthUtil.getTenantId();
+
+ if (StringUtil.isBlank(tenantId)){
+ tenantId = "000000";
+ }
+
Oss oss = getOss(tenantId, code);
Oss ossCached = ossPool.get(tenantId);
OssTemplate template = templatePool.get(tenantId);
diff --git a/skjcmanager/skjcmanager-ops/skjcmanager-resource/src/main/java/cn/gistack/resource/feign/OssClient.java b/skjcmanager/skjcmanager-ops/skjcmanager-resource/src/main/java/cn/gistack/resource/feign/OssClient.java
index dc4c96d..5deb967 100644
--- a/skjcmanager/skjcmanager-ops/skjcmanager-resource/src/main/java/cn/gistack/resource/feign/OssClient.java
+++ b/skjcmanager/skjcmanager-ops/skjcmanager-resource/src/main/java/cn/gistack/resource/feign/OssClient.java
@@ -11,6 +11,7 @@
import org.springblade.core.tool.api.R;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RestController;
+import org.springframework.web.multipart.MultipartFile;
import java.io.File;
import java.io.FileInputStream;
@@ -79,4 +80,18 @@
return R.data(result);
}
+
+ @PostMapping(value = UPLOAD_FILE)
+ public String uploadFile(String fileName, MultipartFile file) throws Exception{
+
+// InputStream inputStream = new ByteArrayInputStream(bytes);
+
+ BladeFile bladeFile = ossBuilder.template().putFile(fileName, file.getInputStream());
+
+ String link = bladeFile.getLink();
+ if (link.indexOf("http://10.42.6.251:8082") != -1) {
+ link= link.replace("http://10.42.6.251:8082", "https://sk.hubeishuiyi.cn/gminio");
+ }
+ return link;
+ }
}
diff --git a/skjcmanager/skjcmanager-ops/skjcmanager-resource/src/main/java/cn/gistack/resource/mapper/TextualResearchAttachMapper.xml b/skjcmanager/skjcmanager-ops/skjcmanager-resource/src/main/java/cn/gistack/resource/mapper/TextualResearchAttachMapper.xml
index 4aba7c2..69a0a83 100644
--- a/skjcmanager/skjcmanager-ops/skjcmanager-resource/src/main/java/cn/gistack/resource/mapper/TextualResearchAttachMapper.xml
+++ b/skjcmanager/skjcmanager-ops/skjcmanager-resource/src/main/java/cn/gistack/resource/mapper/TextualResearchAttachMapper.xml
@@ -113,7 +113,6 @@
LEFT JOIN SJZT_MD."att_ad_base" city ON city."ad_code" = county."p_ad_code"
LEFT JOIN YWXT.SM_TEXTUAL_RESEARCH_ATTACH STRA ON STRA.RES_GUID = arb."guid" and stra.type = 1
where stra.type != 1 or stra.type is null
-
</select>
</mapper>
diff --git a/skjcmanager/skjcmanager-ops/skjcmanager-resource/src/main/resources/application.yml b/skjcmanager/skjcmanager-ops/skjcmanager-resource/src/main/resources/application.yml
index 1bf3617..c161bb1 100644
--- a/skjcmanager/skjcmanager-ops/skjcmanager-resource/src/main/resources/application.yml
+++ b/skjcmanager/skjcmanager-ops/skjcmanager-resource/src/main/resources/application.yml
@@ -6,8 +6,8 @@
oss:
enabled: true
name: minio
- tenant-mode: true
- endpoint: http://10.10.2.251:8082
+ tenant-mode: false
+ endpoint: http://10.42.6.251:8082
access-key: minioadmin
secret-key: Gistack@2023_hb
bucket-name: test
diff --git a/skjcmanager/skjcmanager-service-api/skjcmanager-alerts-api/src/main/java/cn/gistack/alerts/alarmRule/vo/AlarmRecordVO.java b/skjcmanager/skjcmanager-service-api/skjcmanager-alerts-api/src/main/java/cn/gistack/alerts/alarmRule/vo/AlarmRecordVO.java
index 3fc3fe3..b58231e 100644
--- a/skjcmanager/skjcmanager-service-api/skjcmanager-alerts-api/src/main/java/cn/gistack/alerts/alarmRule/vo/AlarmRecordVO.java
+++ b/skjcmanager/skjcmanager-service-api/skjcmanager-alerts-api/src/main/java/cn/gistack/alerts/alarmRule/vo/AlarmRecordVO.java
@@ -95,4 +95,7 @@
private String basGuids;
private String resGuids;
+
+ //测站名称
+ private String cdNm;
}
diff --git a/skjcmanager/skjcmanager-service-api/skjcmanager-nky-api/src/main/java/cn/gistack/nky/entity/RequestRecord.java b/skjcmanager/skjcmanager-service-api/skjcmanager-nky-api/src/main/java/cn/gistack/nky/entity/RequestRecord.java
new file mode 100644
index 0000000..19d38ff
--- /dev/null
+++ b/skjcmanager/skjcmanager-service-api/skjcmanager-nky-api/src/main/java/cn/gistack/nky/entity/RequestRecord.java
@@ -0,0 +1,40 @@
+package cn.gistack.nky.entity;
+
+import com.baomidou.mybatisplus.annotation.IdType;
+import com.baomidou.mybatisplus.annotation.TableId;
+import com.baomidou.mybatisplus.annotation.TableName;
+import com.fasterxml.jackson.annotation.JsonFormat;
+import lombok.Data;
+import org.springframework.format.annotation.DateTimeFormat;
+
+import java.util.Date;
+
+/**
+ * 南科院请求记录表
+ */
+@Data
+@TableName( value = "NKY_REQUEST_RECORD",autoResultMap = true)
+public class RequestRecord {
+
+ @TableId(value = "id", type = IdType.ASSIGN_ID)
+ private String id;
+
+ private String resGuid;
+
+ private String pointId;
+
+ private String requestUrl;
+
+ private String sendParams;
+
+ private String result;
+
+ @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
+ @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
+ private Date createTime;
+
+ private String type;
+
+ private String errorDesc;
+
+}
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/requestpojo/BDDataPo.java b/skjcmanager/skjcmanager-service-api/skjcmanager-nky-api/src/main/java/cn/gistack/nky/requestpojo/BDDataPo.java
index b31f2c6..f8b39d2 100644
--- a/skjcmanager/skjcmanager-service-api/skjcmanager-nky-api/src/main/java/cn/gistack/nky/requestpojo/BDDataPo.java
+++ b/skjcmanager/skjcmanager-service-api/skjcmanager-nky-api/src/main/java/cn/gistack/nky/requestpojo/BDDataPo.java
@@ -62,7 +62,7 @@
public BDDataPo(DataResChildrenPo po,String type){
this.damId = po.getRes_cd();
this.pointId = po.getCd();
- this.pointName = "测点"+po.getCd();
+ this.pointName = po.getCd_nm();
this.type = type;
if (type.equals( "1")){
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/DataResChildrenPo.java b/skjcmanager/skjcmanager-service-api/skjcmanager-nky-api/src/main/java/cn/gistack/nky/resultpojo/DataResChildrenPo.java
index eb2e1d3..427d77d 100644
--- a/skjcmanager/skjcmanager-service-api/skjcmanager-nky-api/src/main/java/cn/gistack/nky/resultpojo/DataResChildrenPo.java
+++ b/skjcmanager/skjcmanager-service-api/skjcmanager-nky-api/src/main/java/cn/gistack/nky/resultpojo/DataResChildrenPo.java
@@ -13,6 +13,7 @@
private String res_reg_code;
private String cd;// 测站编码
+ private String cd_nm;//测站名称
private String tm;
private String res_cd; // 水库编码
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-api/skjcmanager-sm-api/src/main/java/cn/gistack/sm/dayReportFlood/entity/DayReportFlood.java b/skjcmanager/skjcmanager-service-api/skjcmanager-sm-api/src/main/java/cn/gistack/sm/dayReportFlood/entity/DayReportFlood.java
new file mode 100644
index 0000000..1dcc5f1
--- /dev/null
+++ b/skjcmanager/skjcmanager-service-api/skjcmanager-sm-api/src/main/java/cn/gistack/sm/dayReportFlood/entity/DayReportFlood.java
@@ -0,0 +1,40 @@
+package cn.gistack.sm.dayReportFlood.entity;
+
+import com.baomidou.mybatisplus.annotation.TableField;
+import com.baomidou.mybatisplus.annotation.TableName;
+import com.baomidou.mybatisplus.extension.handlers.FastjsonTypeHandler;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+import org.springblade.core.mp.base.BaseEntity;
+
+/**
+ * @PROJECT_NAME: skjcmanager
+ * @DESCRIPTION: 每日报汛记录
+ * @USER: guoshilong
+ * @DATE: 2023/6/2 9:38
+ */
+@Data
+@TableName( value = "sm_day_report_flood")
+@EqualsAndHashCode(callSuper = true)
+public class DayReportFlood extends BaseEntity {
+ private static final long serialVersionUID = 1L;
+
+
+ /**
+ * 标题
+ */
+ private String title;
+
+ /**
+ * 内容
+ */
+ private String content;
+
+ //来源
+ private String source;
+
+ //附件地址
+ private String urls;
+
+}
diff --git a/skjcmanager/skjcmanager-service-api/skjcmanager-sm-api/src/main/java/cn/gistack/sm/dayReportFlood/feign/IDayReportFloodClient.java b/skjcmanager/skjcmanager-service-api/skjcmanager-sm-api/src/main/java/cn/gistack/sm/dayReportFlood/feign/IDayReportFloodClient.java
new file mode 100644
index 0000000..f0cf5ae
--- /dev/null
+++ b/skjcmanager/skjcmanager-service-api/skjcmanager-sm-api/src/main/java/cn/gistack/sm/dayReportFlood/feign/IDayReportFloodClient.java
@@ -0,0 +1,20 @@
+package cn.gistack.sm.dayReportFlood.feign;
+
+import cn.gistack.sm.dayReportFlood.entity.DayReportFlood;
+import cn.gistack.sm.message.feign.IMessageClientFallback;
+import org.springframework.cloud.openfeign.FeignClient;
+import org.springframework.web.bind.annotation.PostMapping;
+import org.springframework.web.bind.annotation.RequestBody;
+
+@FeignClient(
+ value = "blade-sm",
+ fallback = IDayReportFloodClientFallback.class
+)
+public interface IDayReportFloodClient {
+ String API_PREFIX = "/client";
+
+ String SAVE_DAY_REPORT_FLOOD = API_PREFIX + "saveDayReportFlood";
+
+ @PostMapping(SAVE_DAY_REPORT_FLOOD)
+ boolean save(@RequestBody DayReportFlood saveEntity);
+}
diff --git a/skjcmanager/skjcmanager-service-api/skjcmanager-sm-api/src/main/java/cn/gistack/sm/dayReportFlood/feign/IDayReportFloodClientFallback.java b/skjcmanager/skjcmanager-service-api/skjcmanager-sm-api/src/main/java/cn/gistack/sm/dayReportFlood/feign/IDayReportFloodClientFallback.java
new file mode 100644
index 0000000..ace444a
--- /dev/null
+++ b/skjcmanager/skjcmanager-service-api/skjcmanager-sm-api/src/main/java/cn/gistack/sm/dayReportFlood/feign/IDayReportFloodClientFallback.java
@@ -0,0 +1,24 @@
+package cn.gistack.sm.dayReportFlood.feign;
+
+
+import cn.gistack.sm.dayReportFlood.entity.DayReportFlood;
+import cn.gistack.sm.message.entity.MessageRecord;
+import cn.gistack.sm.message.feign.IMessageClient;
+import org.springframework.stereotype.Component;
+
+import java.util.List;
+
+/**
+ * Feign失败配置
+ * @author zhongrj
+ * @date 2023-07-07
+ */
+@Component
+public class IDayReportFloodClientFallback implements IDayReportFloodClient {
+
+
+ @Override
+ public boolean save(DayReportFlood saveEntity) {
+ return false;
+ }
+}
diff --git a/skjcmanager/skjcmanager-service-api/skjcmanager-sm-api/src/main/java/cn/gistack/sm/dayReportFlood/vo/DayReportFloodVO.java b/skjcmanager/skjcmanager-service-api/skjcmanager-sm-api/src/main/java/cn/gistack/sm/dayReportFlood/vo/DayReportFloodVO.java
new file mode 100644
index 0000000..8bae16e
--- /dev/null
+++ b/skjcmanager/skjcmanager-service-api/skjcmanager-sm-api/src/main/java/cn/gistack/sm/dayReportFlood/vo/DayReportFloodVO.java
@@ -0,0 +1,14 @@
+package cn.gistack.sm.dayReportFlood.vo;
+
+import cn.gistack.sm.dayReportFlood.entity.DayReportFlood;
+import lombok.Data;
+
+@Data
+public class DayReportFloodVO extends DayReportFlood {
+
+ private String startTime;
+
+ private String endTime;
+
+ private String createUserName;
+}
diff --git a/skjcmanager/skjcmanager-service-api/skjcmanager-sm-api/src/main/java/cn/gistack/sm/sjztmd/feign/ISjztMdClient.java b/skjcmanager/skjcmanager-service-api/skjcmanager-sm-api/src/main/java/cn/gistack/sm/sjztmd/feign/ISjztMdClient.java
new file mode 100644
index 0000000..256dc07
--- /dev/null
+++ b/skjcmanager/skjcmanager-service-api/skjcmanager-sm-api/src/main/java/cn/gistack/sm/sjztmd/feign/ISjztMdClient.java
@@ -0,0 +1,19 @@
+package cn.gistack.sm.sjztmd.feign;
+
+import org.springframework.cloud.openfeign.FeignClient;
+import org.springframework.core.io.InputStreamResource;
+import org.springframework.web.bind.annotation.GetMapping;
+import org.springframework.web.bind.annotation.RequestParam;
+
+@FeignClient(
+ value = "blade-sm",
+ fallback = ISjztMdClientFallback.class
+)
+public interface ISjztMdClient {
+ String API_PREFIX = "/client";
+
+ String GENERATE_DAY_REPORT_FLOOD = API_PREFIX + "generateDayReportFlood";
+
+ @GetMapping(GENERATE_DAY_REPORT_FLOOD)
+ String generateDayReportFlood(@RequestParam("isShow") String isShow) throws Exception;
+}
diff --git a/skjcmanager/skjcmanager-service-api/skjcmanager-sm-api/src/main/java/cn/gistack/sm/sjztmd/feign/ISjztMdClientFallback.java b/skjcmanager/skjcmanager-service-api/skjcmanager-sm-api/src/main/java/cn/gistack/sm/sjztmd/feign/ISjztMdClientFallback.java
new file mode 100644
index 0000000..e019830
--- /dev/null
+++ b/skjcmanager/skjcmanager-service-api/skjcmanager-sm-api/src/main/java/cn/gistack/sm/sjztmd/feign/ISjztMdClientFallback.java
@@ -0,0 +1,23 @@
+package cn.gistack.sm.sjztmd.feign;
+
+import org.springframework.core.io.InputStreamResource;
+import org.springframework.stereotype.Component;
+
+import java.util.List;
+
+/**
+ * @ClassName Feign失败配置
+ * @Description TODO
+ * @Author aix
+ * @Date 2023/4/23 19:40
+ * @Version 1.0
+ */
+@Component
+public class ISjztMdClientFallback implements ISjztMdClient{
+
+
+ @Override
+ public String generateDayReportFlood(String isShow) {
+ return null;
+ }
+}
diff --git a/skjcmanager/skjcmanager-service-api/skjcmanager-sm-api/src/main/java/cn/gistack/sm/sms/feign/DataAbnormalWarnClientFallback.java b/skjcmanager/skjcmanager-service-api/skjcmanager-sm-api/src/main/java/cn/gistack/sm/sms/feign/DataAbnormalWarnClientFallback.java
index 28b2dc0..5aaae8a 100644
--- a/skjcmanager/skjcmanager-service-api/skjcmanager-sm-api/src/main/java/cn/gistack/sm/sms/feign/DataAbnormalWarnClientFallback.java
+++ b/skjcmanager/skjcmanager-service-api/skjcmanager-sm-api/src/main/java/cn/gistack/sm/sms/feign/DataAbnormalWarnClientFallback.java
@@ -16,4 +16,8 @@
}
+ @Override
+ public void sendOperateCZ(String phones, String rate) {
+
+ }
}
diff --git a/skjcmanager/skjcmanager-service-api/skjcmanager-sm-api/src/main/java/cn/gistack/sm/sms/feign/IDataAbnormalWarnClient.java b/skjcmanager/skjcmanager-service-api/skjcmanager-sm-api/src/main/java/cn/gistack/sm/sms/feign/IDataAbnormalWarnClient.java
index 3a35309..d13dff4 100644
--- a/skjcmanager/skjcmanager-service-api/skjcmanager-sm-api/src/main/java/cn/gistack/sm/sms/feign/IDataAbnormalWarnClient.java
+++ b/skjcmanager/skjcmanager-service-api/skjcmanager-sm-api/src/main/java/cn/gistack/sm/sms/feign/IDataAbnormalWarnClient.java
@@ -18,6 +18,7 @@
String API_PREFIX = "/client";
String SEND_OPERATE = API_PREFIX + "/sendOperate";
+ String SEND_OPERATE_CZ = API_PREFIX + "/sendOperateCZ";
/**
* 当有异常数据时,发送预警短信
@@ -25,4 +26,7 @@
@GetMapping(SEND_OPERATE)
void sendOperate(@RequestParam("tableName")String tableName, @RequestParam("phones")String phones);
+ @GetMapping(SEND_OPERATE_CZ)
+ void sendOperateCZ(@RequestParam("phones")String phones, @RequestParam("rate")String rate);
+
}
diff --git a/skjcmanager/skjcmanager-service/skjcmanager-alerts/src/main/java/cn/gistack/alerts/alarmRule/mapper/AlarmRecordMapper.xml b/skjcmanager/skjcmanager-service/skjcmanager-alerts/src/main/java/cn/gistack/alerts/alarmRule/mapper/AlarmRecordMapper.xml
index aa3b63f..c52965f 100644
--- a/skjcmanager/skjcmanager-service/skjcmanager-alerts/src/main/java/cn/gistack/alerts/alarmRule/mapper/AlarmRecordMapper.xml
+++ b/skjcmanager/skjcmanager-service/skjcmanager-alerts/src/main/java/cn/gistack/alerts/alarmRule/mapper/AlarmRecordMapper.xml
@@ -5,6 +5,9 @@
<!--自定义分页列表查询-->
<select id="selectAlarmRecordPage" resultType="cn.gistack.alerts.alarmRule.vo.AlarmRecordVO">
select
+ <if test="alarmRecord.type == '渗压监测' or alarmRecord.type =='渗流监测' or alarmRecord.type == '变形监测' ">
+ acb."cd_nm" as cdNm,
+ </if>
sar.*,
sar1.type,sar1.alarm_rule_type as alarmRuleType,sar1.create_alarm_type as createAlarmType,sar1.rule_name as ruleName,a."label" as labels,
a."name" as reservoirName,a."res_reg_code" as resRegCode,a."eng_scal" as engScal,
@@ -28,6 +31,15 @@
LEFT JOIN SJZT_MD."att_bas_base" abb ON abb."code" = rrbl."bas_guid"
LEFT JOIN SJZT_MD."att_bas_base" pabb ON abb."p_code" = pabb."code"
+ <if test="alarmRecord.type == '渗压监测'">
+ LEFT JOIN SJZT_MD."att_cd_base" acb on acb."cd" = sar.alarm_survey_station_code and acb."cd_type" = 'sy' and sar.alarm_survey_station_code !='-1' and acb."res_cd" = sar.reservoir_number
+ </if>
+ <if test="alarmRecord.type == '渗流监测'">
+ LEFT JOIN SJZT_MD."att_cd_base" acb on acb."cd" = sar.alarm_survey_station_code and acb."cd_type" = 'sl' and sar.alarm_survey_station_code !='-1' and acb."res_cd" = sar.reservoir_number
+ </if>
+ <if test="alarmRecord.type == '变形监测'">
+ LEFT JOIN SJZT_MD."att_wy_cd_base" acb on acb."cd" = sar.alarm_survey_station_code and acb."cd_type" = 'wy' and sar.alarm_survey_station_code !='-1' and acb."res_cd" = sar.reservoir_number
+ </if>
where sar.is_deleted = 0
<if test="alarmRecord.reservoirName!=null and alarmRecord.reservoirName!=''">
and a."name" like concat('%',#{alarmRecord.reservoirName},'%')
@@ -88,6 +100,7 @@
#{item}
</foreach>
</if>
+ order by field(sar1.alarm_level,'红色预警','橙色预警','黄色预警','蓝色预警')
</select>
<select id="getVODetail" resultType="cn.gistack.alerts.alarmRule.vo.AlarmRecordVO">
@@ -338,6 +351,18 @@
<if test="alarmRecord.type != null and alarmRecord.type !=''">
and rule.type = #{alarmRecord.type}
</if>
+ <if test="alarmRecord.reservoirName!=null and alarmRecord.reservoirName!=''">
+ and arb."name" like concat('%',#{alarmRecord.reservoirName},'%')
+ </if>
+ <if test="alarmRecord.alarmRuleType!=null and alarmRecord.alarmRuleType!=''">
+ and rule.alarm_rule_type = #{alarmRecord.alarmRuleType}
+ </if>
+ <if test="alarmRecord.createAlarmType!=null and alarmRecord.createAlarmType!=''">
+ and rule.create_alarm_type = #{alarmRecord.createAlarmType}
+ </if>
+ <if test="alarmRecord.ruleName!=null and alarmRecord.ruleName!=''">
+ and rule.rule_name = #{alarmRecord.ruleName}
+ </if>
<if test="alarmRecord.adCode != null and alarmRecord.adCode !=''">
and arb."interior_ad_guid" like concat('%',#{alarmRecord.adCode},'%')
</if>
diff --git a/skjcmanager/skjcmanager-service/skjcmanager-alerts/src/main/java/cn/gistack/alerts/notice/service/impl/NoticeHandle.java b/skjcmanager/skjcmanager-service/skjcmanager-alerts/src/main/java/cn/gistack/alerts/notice/service/impl/NoticeHandle.java
index 7d10397..398788f 100644
--- a/skjcmanager/skjcmanager-service/skjcmanager-alerts/src/main/java/cn/gistack/alerts/notice/service/impl/NoticeHandle.java
+++ b/skjcmanager/skjcmanager-service/skjcmanager-alerts/src/main/java/cn/gistack/alerts/notice/service/impl/NoticeHandle.java
@@ -188,14 +188,27 @@
String county_nm = jsonObject.getString("county_nm");
String city_nm = jsonObject.getString("city_nm");
log.info("当前为第{}个水库,行政区划:{}-{}-{},水库编码:{},水库名称:{}", i + 1, city_nm, county_nm, town_nm, res_cd, res_nm);
+ // 取出测站编码
+// String stcd = jsonArray.getJSONObject(i).getString("stcd");
+// if (StringUtil.isBlank(stcd)) {
+// stcd = jsonArray.getJSONObject(i).getString("cd");
+// }
+// //如果stcd是空的就设置为-1
+// if (StringUtil.isBlank(stcd)){
+// stcd = "-1";
+// }
+
String tempStr = uuid + res_cd;
// 去重水库操作,如果有重复的水库则不操作
if (!set.contains(tempStr)) {
set.add(tempStr);
- // 取出测站编码
String stcd = jsonArray.getJSONObject(i).getString("stcd");
if (StringUtil.isBlank(stcd)) {
stcd = jsonArray.getJSONObject(i).getString("cd");
+ }
+ //如果stcd是空的就设置为-1
+ if (StringUtil.isBlank(stcd)){
+ stcd = "-1";
}
// 判断时间是否存在
String tm = jsonArray.getJSONObject(i).getString("tm");
@@ -222,12 +235,14 @@
}
// 获取告警人员信息
// getAlarmPersonList(jsonArray, columnsList, alarmRuleDetail,flag, personLists, lists, i, res_cd, day, hour, minute, stcd);
- getAlarmPersonListV2(jsonArray, columnsList, alarmRuleDetail, roles, flag, personLists, lists, i, res_cd, day, hour, minute, stcd);
+ JSONObject jsonData = jsonArray.getJSONObject(i);
+ //这里把jsonObject传过去
+ getAlarmPersonListV2(jsonArray, columnsList, alarmRuleDetail, roles, flag, personLists, lists, i, res_cd, day, hour, minute, stcd,jsonData);
}
}
- private void getAlarmPersonListV2(JSONArray jsonArray, List<String> columnsList, AlarmRuleDetail alarmRuleDetail, List<String> roles, Boolean flag, List<PersonVO> personLists, List<List<String>> lists, int i, String res_cd, String day, String hour, String minute, String stcd) {
+ private void getAlarmPersonListV2(JSONArray jsonArray, List<String> columnsList, AlarmRuleDetail alarmRuleDetail, List<String> roles, Boolean flag, List<PersonVO> personLists, List<List<String>> lists, int i, String res_cd, String day, String hour, String minute, String stcd,JSONObject jsonData) {
// 查询告警人员信息
// List<PersonVO> personVOList = getPersonListByResGuid(res_cd, alarmRuleDetail.getAlarmPerson());
List<PersonVO> personVOList = getPersonListByResGuidV2(res_cd, roles);
@@ -260,6 +275,7 @@
String format = "";
// 内容处理
format = addAlarmContent(jsonArray, i, split, format);
+// format = addAlarmContentV2(jsonData,split,format);
// 加入集合
list.add(format);
}
@@ -485,6 +501,85 @@
return format;
}
+
+
+ /**
+ * 告警内容拼接处理
+ *
+ * @param split key 值
+ * @param format 值结果
+ * @return
+ */
+ private String addAlarmContentV2(JSONObject jsonObject, String[] split, String format) {
+ for (String s : split) {
+ // 超汛限水位
+ if (s.equals("over_z")) {
+ String is_danger_res = "is_danger_res";
+ if (null != jsonObject.getString(is_danger_res) && jsonObject.getString(is_danger_res).equals("true")) {
+ format = format + "控制运用水位" + jsonObject.getString(s);
+ } else if (null != jsonObject.getString(is_danger_res) && jsonObject.getString(is_danger_res).equals("false")) {
+ format = format + "汛限水位" + jsonObject.getString(s);
+ } else {
+ format = format + jsonObject.getString(s);
+ }
+ } else if (s.equals("rz")) {
+ // 水位
+ String rz = "rz";
+ if (null == jsonObject.getString(rz)) {
+ format = format + "无数据";
+ } else {
+ format = format + jsonObject.getString(s) + "米";
+ }
+ } else if (s.equals("alarm_val")) {
+ // 小时雨量
+ String alarm_type = "alarm_type";
+ if (null != jsonObject.getString(alarm_type) && !jsonObject.getString(alarm_type).equals("")) {
+ format = format + jsonObject.getString(alarm_type) + "小时坝前点雨量" + jsonObject.getString(s);
+ } else {
+ format = format + jsonObject.getString(s);
+ }
+ } else if (s.equals("diff_dam")) {
+ String over_chec_fl_stag = "over_chec_fl_stag";
+ // 如果是超校核的需要判断超值
+ if (null != jsonObject.getString(over_chec_fl_stag) && !jsonObject.getString(over_chec_fl_stag).equals("")) {
+ // 校核,是否漫过坝顶(正数代表未漫过坝顶,负数则反之)
+ String diff_dam = jsonObject.getString(s);
+ double parseDouble = Double.parseDouble(diff_dam);
+ if (parseDouble > 0) {
+ format = format + "距离大坝坝顶仅" + jsonObject.getString(s);
+ } else {
+ format = format + "已漫过坝顶" + (-parseDouble);
+ }
+ } else {
+ format = format + jsonObject.getString(s);
+ }
+ } else if (s.equals("ms_flag")) {
+ // 水位
+ String ms_flag = "ms_flag";
+ if (null != jsonObject.getString(ms_flag) && jsonObject.getString(ms_flag).equals("sy")) {
+ format = format + "渗压";
+ } else if (null != jsonObject.getString(ms_flag) && jsonObject.getString(ms_flag).equals("sl")) {
+ format = format + "渗流";
+ } else if (null != jsonObject.getString(ms_flag) && jsonObject.getString(ms_flag).equals("by")) {
+ format = format + "白蚁";
+ } else if (null != jsonObject.getString(ms_flag) && jsonObject.getString(ms_flag).equals("bx")) {
+ format = format + "变形";
+ } else {
+ format = format + jsonObject.getString(s);
+ }
+ } else {
+ format = format + jsonObject.getString(s);
+ }
+ }
+ // 返回
+ return format;
+ }
+
+
+
+
+
+
/**
* 保存告警记录信息
*
diff --git a/skjcmanager/skjcmanager-service/skjcmanager-alerts/src/main/java/cn/gistack/alerts/notice/service/impl/NoticeStrategyImpl.java b/skjcmanager/skjcmanager-service/skjcmanager-alerts/src/main/java/cn/gistack/alerts/notice/service/impl/NoticeStrategyImpl.java
index 3e6e06a..1dad048 100644
--- a/skjcmanager/skjcmanager-service/skjcmanager-alerts/src/main/java/cn/gistack/alerts/notice/service/impl/NoticeStrategyImpl.java
+++ b/skjcmanager/skjcmanager-service/skjcmanager-alerts/src/main/java/cn/gistack/alerts/notice/service/impl/NoticeStrategyImpl.java
@@ -1614,7 +1614,7 @@
}
jsonObject.put("type", type);
- jsonObject.put("monitor",jsonObject.getString("diff_val"));
+ jsonObject.put("monitorData",jsonObject.getString("diff_val"));
array.add(jsonObject);
}
return array;
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/mapper/RequestRecordMapper.java b/skjcmanager/skjcmanager-service/skjcmanager-nky/src/main/java/cn/gistack/nky/mapper/RequestRecordMapper.java
new file mode 100644
index 0000000..c43607e
--- /dev/null
+++ b/skjcmanager/skjcmanager-service/skjcmanager-nky/src/main/java/cn/gistack/nky/mapper/RequestRecordMapper.java
@@ -0,0 +1,15 @@
+package cn.gistack.nky.mapper;
+
+import cn.gistack.nky.entity.HstPredict;
+import cn.gistack.nky.entity.RequestRecord;
+import cn.gistack.nky.vo.HstPredictVO;
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import org.apache.ibatis.annotations.Param;
+
+import java.util.List;
+
+public interface RequestRecordMapper extends BaseMapper<RequestRecord> {
+
+
+
+}
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/IRequestRecordService.java b/skjcmanager/skjcmanager-service/skjcmanager-nky/src/main/java/cn/gistack/nky/service/IRequestRecordService.java
new file mode 100644
index 0000000..8e5aad3
--- /dev/null
+++ b/skjcmanager/skjcmanager-service/skjcmanager-nky/src/main/java/cn/gistack/nky/service/IRequestRecordService.java
@@ -0,0 +1,7 @@
+package cn.gistack.nky.service;
+
+import cn.gistack.nky.entity.RequestRecord;
+import com.baomidou.mybatisplus.extension.service.IService;
+
+public interface IRequestRecordService extends IService<RequestRecord> {
+}
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/AlarmGetServiceImpl.java b/skjcmanager/skjcmanager-service/skjcmanager-nky/src/main/java/cn/gistack/nky/service/impl/AlarmGetServiceImpl.java
index e63d0a0..ea8fad4 100644
--- a/skjcmanager/skjcmanager-service/skjcmanager-nky/src/main/java/cn/gistack/nky/service/impl/AlarmGetServiceImpl.java
+++ b/skjcmanager/skjcmanager-service/skjcmanager-nky/src/main/java/cn/gistack/nky/service/impl/AlarmGetServiceImpl.java
@@ -30,7 +30,7 @@
List<DataResPo> cdList = getResCdList(type);
cdList.forEach(dataResPo -> {
- if (dataResPo.getChildren() != null){
+ if (dataResPo.getChildren() != null && dataResPo.getChildren().size()>0){
BatchDataPo batchDataPo = new BatchDataPo(dataResPo, type);
nkyService.batchData(batchDataPo);
}
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 9cd1baf..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
@@ -4,13 +4,17 @@
import cn.gistack.nky.entity.AlarmGet;
import cn.gistack.nky.entity.ArimaPredict;
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;
import com.alibaba.fastjson.JSONArray;
import com.alibaba.fastjson.JSONObject;
import lombok.AllArgsConstructor;
import lombok.extern.slf4j.Slf4j;
+import org.springblade.core.tool.utils.DateUtil;
import org.springframework.http.*;
import org.springframework.stereotype.Service;
import org.springframework.web.client.RestTemplate;
@@ -28,7 +32,7 @@
@AllArgsConstructor
@Slf4j
public class NkyServiceImpl implements INkyService {
-
+ private final IRequestRecordService requestRecordService;
private static final String API_PREFIX = "http://10.42.7.146:9503/";
private static final String LOCAL_API_PREFIX = "https://sk.hubeishuiyi.cn/warnIp/";
@@ -47,15 +51,47 @@
//判定异常
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) {
JSONObject jsonObject = requestNkyApi(ARIMA_PREDICT, JSON.toJSONString(po));
+ RequestRecord requestRecord = new RequestRecord();
+
+ try {
+ requestRecord.setRequestUrl(ARIMA_PREDICT);
+ requestRecord.setResGuid(po.getDamId());
+ requestRecord.setPointId(po.getPointId());
+ requestRecord.setSendParams(JSON.toJSONString(po));
+ requestRecord.setResult(JSON.toJSONString(jsonObject));
+ requestRecord.setCreateTime(DateUtil.now());
+ requestRecord.setType(po.getType());
+ }catch (Exception e){
+ requestRecord.setErrorDesc(e.toString());
+ }
+ requestRecordService.save(requestRecord);
return jsonObject.get("status").equals(200);
}
@Override
public Boolean hstPredict(HstPredictReqPo po) {
JSONObject jsonObject = requestNkyApi(HST_PREDICT, JSON.toJSONString(po));
+ RequestRecord requestRecord = new RequestRecord();
+
+ try {
+ requestRecord.setRequestUrl(HST_PREDICT);
+ requestRecord.setResGuid(po.getDamId());
+ requestRecord.setPointId(po.getPointId());
+ requestRecord.setSendParams(JSON.toJSONString(po));
+ requestRecord.setResult(JSON.toJSONString(jsonObject));
+ requestRecord.setCreateTime(DateUtil.now());
+ requestRecord.setType(po.getType());
+ }catch (Exception e){
+ requestRecord.setErrorDesc(e.toString());
+ }
+ requestRecordService.save(requestRecord);
return jsonObject.get("status").equals(200);
}
@@ -92,6 +128,21 @@
@Override
public Boolean batchData(BatchDataPo po) {
JSONObject jsonObject = requestNkyApi(ORIGIN_BATCHDATA, JSON.toJSONString(po));
+ RequestRecord requestRecord = new RequestRecord();
+ try {
+ requestRecord.setRequestUrl(ORIGIN_BATCHDATA);
+ if (po.getDatas().size()>0){
+ requestRecord.setResGuid(po.getDatas().get(0).getDamId());
+ requestRecord.setType(po.getDatas().get(0).getType());
+ }
+ requestRecord.setSendParams(JSON.toJSONString(po));
+ requestRecord.setResult(JSON.toJSONString(jsonObject));
+ requestRecord.setCreateTime(DateUtil.now());
+ }catch (Exception e){
+ e.printStackTrace();
+ requestRecord.setErrorDesc(e.toString());
+ }
+ requestRecordService.save(requestRecord);
return jsonObject.get("status").equals(200);
}
@@ -100,6 +151,43 @@
JSONObject jsonObject = requestNkyApi(ALARM_GET,JSON.toJSONString(alarmGetPo));
AlarmGet alarmGet = jsonObject.toJavaObject(AlarmGet.class);
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;
+ }
}
/**
@@ -137,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/RequestRecordServiceImpl.java b/skjcmanager/skjcmanager-service/skjcmanager-nky/src/main/java/cn/gistack/nky/service/impl/RequestRecordServiceImpl.java
new file mode 100644
index 0000000..c3ae9ad
--- /dev/null
+++ b/skjcmanager/skjcmanager-service/skjcmanager-nky/src/main/java/cn/gistack/nky/service/impl/RequestRecordServiceImpl.java
@@ -0,0 +1,11 @@
+package cn.gistack.nky.service.impl;
+
+import cn.gistack.nky.entity.RequestRecord;
+import cn.gistack.nky.mapper.RequestRecordMapper;
+import cn.gistack.nky.service.IRequestRecordService;
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import org.springframework.stereotype.Service;
+
+@Service
+public class RequestRecordServiceImpl extends ServiceImpl<RequestRecordMapper, RequestRecord> implements IRequestRecordService {
+}
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 7b866fe..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;
@@ -54,11 +52,29 @@
*/
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;
@Override
public List<DataResChildrenPo> getSy() {
+ getSyCount = getSyCount +1;
Map<String, Object> params = new LinkedHashMap<>();
- return getData(LASTEST_OSMOTIC_PRESSURE, "get", params);
+ try {
+ log.info("第{}次请求",getSyCount);
+ List<DataResChildrenPo> get = getData(LASTEST_OSMOTIC_PRESSURE, "get", params);
+ getSyCount = 0;
+ return get;
+ }catch (Exception e){
+ e.printStackTrace();
+ if (getSyCount<=5){
+ return this.getSy();
+ }else {
+ List<DataResChildrenPo> list = new ArrayList<>();
+ return list;
+ }
+ }
}
@Override
@@ -67,10 +83,25 @@
return getData(WY_API, "get", params);
}
+ int getResSyCount = 0;
@Override
public List<DataResPo> getResSy() {
+ getResSyCount = getResSyCount +1;
Map<String, Object> params = new LinkedHashMap<>();
- return getResData(LASTEST_OSMOTIC_PRESSURE, "get", params);
+ try {
+ log.info("第{}次请求",getResSyCount);
+ List<DataResPo> get = getResData(LASTEST_OSMOTIC_PRESSURE, "get", params);
+ getResSyCount = 0;
+ return get;
+ }catch (Exception e){
+ e.printStackTrace();
+ if (getResSyCount<=5){
+ return this.getResSy();
+ }else {
+ List<DataResPo> list = new ArrayList<>();
+ return list;
+ }
+ }
}
@Override
@@ -89,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) {
@@ -163,7 +234,7 @@
headers.set("apikey",API_KEY);
HttpEntity<String> httpEntity = new HttpEntity(null, headers);
-
+ log.info("中台请求地址:{}", url);
RestTemplate template = new RestTemplate();
ResponseEntity<ZtResultPo> ztResultPojoResponseEntity = template.exchange(url, method,httpEntity, ZtResultPo.class,params);
if (ztResultPojoResponseEntity.getStatusCodeValue() == 200) {
@@ -173,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/dayReportFlood/controller/DayReportFloodController.java b/skjcmanager/skjcmanager-service/skjcmanager-sm/src/main/java/cn/gistack/sm/dayReportFlood/controller/DayReportFloodController.java
new file mode 100644
index 0000000..586514d
--- /dev/null
+++ b/skjcmanager/skjcmanager-service/skjcmanager-sm/src/main/java/cn/gistack/sm/dayReportFlood/controller/DayReportFloodController.java
@@ -0,0 +1,77 @@
+package cn.gistack.sm.dayReportFlood.controller;
+
+import cn.gistack.sm.dayReportFlood.entity.DayReportFlood;
+import cn.gistack.sm.dayReportFlood.service.IDayReportFloodService;
+import cn.gistack.sm.dayReportFlood.vo.DayReportFloodVO;
+import com.baomidou.mybatisplus.core.metadata.IPage;
+import io.swagger.annotations.Api;
+import io.swagger.annotations.ApiParam;
+import lombok.AllArgsConstructor;
+import org.springblade.core.boot.ctrl.BladeController;
+import org.springblade.core.mp.support.Condition;
+import org.springblade.core.mp.support.Query;
+import org.springblade.core.tool.api.R;
+import org.springblade.core.tool.utils.Func;
+import org.springframework.web.bind.annotation.*;
+
+/**
+ * @PROJECT_NAME: skjcmanager
+ * @DESCRIPTION: 报汛记录
+ * @USER: guoshilong
+ * @DATE: 2023/6/2 9:38
+ * */
+@RestController
+@RequestMapping("dayReportFlood")
+@AllArgsConstructor
+@Api(value = "报汛记录", tags = "报汛记录")
+public class DayReportFloodController extends BladeController {
+
+ private final IDayReportFloodService dayReportFloodService;
+
+ @GetMapping("/page")
+ public R<IPage<DayReportFloodVO>> pageList(DayReportFloodVO dayReportFloodVO, Query query) {
+ IPage<DayReportFloodVO> page = dayReportFloodService.selectPage(Condition.getPage(query),dayReportFloodVO);
+ return R.data(page);
+ }
+
+ /**
+ * 详情
+ */
+ @GetMapping("/detail")
+ public R<DayReportFlood> detail(@RequestParam(name="id",required=true) String id) {
+ return R.data(dayReportFloodService.getById(id));
+ }
+
+ /**
+ * 新增
+ */
+ @PostMapping("/save")
+ public R save(@RequestBody DayReportFlood dayReportFlood) {
+ return R.data(dayReportFloodService.save(dayReportFlood));
+ }
+
+ /**
+ * 修改
+ */
+ @PostMapping("/update")
+ public R update(@RequestBody DayReportFlood dayReportFlood) {
+ return R.data(dayReportFloodService.updateById(dayReportFlood));
+ }
+
+ /**
+ * 新增或修改
+ */
+ @PostMapping("/submit")
+ public R submit(@RequestBody DayReportFlood dayReportFlood) {
+ return R.data(dayReportFloodService.saveOrUpdate(dayReportFlood));
+ }
+
+ /**
+ * 删除
+ */
+ @PostMapping("/remove")
+ public R remove(@ApiParam(value = "主键集合") @RequestParam String ids) {
+ return R.data(dayReportFloodService.removeBatchByIds(Func.toLongList(ids)));
+ }
+
+}
diff --git a/skjcmanager/skjcmanager-service/skjcmanager-sm/src/main/java/cn/gistack/sm/dayReportFlood/feign/DayReportFloodClientImpl.java b/skjcmanager/skjcmanager-service/skjcmanager-sm/src/main/java/cn/gistack/sm/dayReportFlood/feign/DayReportFloodClientImpl.java
new file mode 100644
index 0000000..d287c03
--- /dev/null
+++ b/skjcmanager/skjcmanager-service/skjcmanager-sm/src/main/java/cn/gistack/sm/dayReportFlood/feign/DayReportFloodClientImpl.java
@@ -0,0 +1,36 @@
+package cn.gistack.sm.dayReportFlood.feign;
+
+import cn.gistack.sm.dayReportFlood.entity.DayReportFlood;
+import cn.gistack.sm.dayReportFlood.service.IDayReportFloodService;
+import cn.gistack.sm.sjztmd.feign.ISjztMdClient;
+import cn.gistack.sm.sjztmd.util.MyDateUtils;
+import cn.gistack.sm.sjztmd.word.service.ISjztmdService;
+import cn.gistack.sm.sjztmd.word.util.WordUtil;
+import cn.gistack.sm.sjztmd.word.vo.DzkInfo;
+import cn.gistack.sm.sjztmd.word.vo.OverDetail;
+import cn.gistack.sm.sjztmd.word.vo.SzInfo;
+import cn.gistack.sm.sjztmd.word.vo.TotalInfo;
+import lombok.AllArgsConstructor;
+import org.springblade.core.tenant.annotation.NonDS;
+import org.springframework.core.io.InputStreamResource;
+import org.springframework.web.bind.annotation.GetMapping;
+import org.springframework.web.bind.annotation.RestController;
+import springfox.documentation.annotations.ApiIgnore;
+
+import java.io.ByteArrayInputStream;
+import java.util.HashMap;
+import java.util.List;
+
+@NonDS
+@ApiIgnore
+@RestController
+@AllArgsConstructor
+public class DayReportFloodClientImpl implements IDayReportFloodClient {
+
+ private final IDayReportFloodService dayReportFloodService;
+
+ @Override
+ public boolean save(DayReportFlood saveEntity) {
+ return dayReportFloodService.save(saveEntity);
+ }
+}
diff --git a/skjcmanager/skjcmanager-service/skjcmanager-sm/src/main/java/cn/gistack/sm/dayReportFlood/mapper/DayReportFloodMapper.java b/skjcmanager/skjcmanager-service/skjcmanager-sm/src/main/java/cn/gistack/sm/dayReportFlood/mapper/DayReportFloodMapper.java
new file mode 100644
index 0000000..bc52332
--- /dev/null
+++ b/skjcmanager/skjcmanager-service/skjcmanager-sm/src/main/java/cn/gistack/sm/dayReportFlood/mapper/DayReportFloodMapper.java
@@ -0,0 +1,13 @@
+package cn.gistack.sm.dayReportFlood.mapper;
+
+import cn.gistack.sm.dayReportFlood.entity.DayReportFlood;
+import cn.gistack.sm.dayReportFlood.vo.DayReportFloodVO;
+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 DayReportFloodMapper extends BaseMapper<DayReportFlood> {
+ List<DayReportFloodVO> selectMyPage(IPage<DayReportFloodVO> page, @Param("vo") DayReportFloodVO dayReportFloodVO);
+}
diff --git a/skjcmanager/skjcmanager-service/skjcmanager-sm/src/main/java/cn/gistack/sm/dayReportFlood/mapper/DayReportFloodMapper.xml b/skjcmanager/skjcmanager-service/skjcmanager-sm/src/main/java/cn/gistack/sm/dayReportFlood/mapper/DayReportFloodMapper.xml
new file mode 100644
index 0000000..cf2f421
--- /dev/null
+++ b/skjcmanager/skjcmanager-service/skjcmanager-sm/src/main/java/cn/gistack/sm/dayReportFlood/mapper/DayReportFloodMapper.xml
@@ -0,0 +1,21 @@
+<?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.dayReportFlood.mapper.DayReportFloodMapper">
+
+
+ <select id="selectMyPage" resultType="cn.gistack.sm.dayReportFlood.vo.DayReportFloodVO">
+ SELECT * FROM
+ SM_DAY_REPORT_FLOOD
+ WHERE IS_DELETED = 0
+ <if test="vo.title != null and vo.title !=''">
+ AND title LIKE CONCAT('%',#{vo.title},'%')
+ </if>
+ <if test="vo.startTime != null and vo.startTime != ''">
+ AND create_time >= #{vo.startTime}
+ </if>
+ <if test="vo.endTime != null and vo.endTime !='' ">
+ AND create_time <= #{vo.endTime}
+ </if>
+ order by create_time desc
+ </select>
+</mapper>
diff --git a/skjcmanager/skjcmanager-service/skjcmanager-sm/src/main/java/cn/gistack/sm/dayReportFlood/service/IDayReportFloodService.java b/skjcmanager/skjcmanager-service/skjcmanager-sm/src/main/java/cn/gistack/sm/dayReportFlood/service/IDayReportFloodService.java
new file mode 100644
index 0000000..66cd21a
--- /dev/null
+++ b/skjcmanager/skjcmanager-service/skjcmanager-sm/src/main/java/cn/gistack/sm/dayReportFlood/service/IDayReportFloodService.java
@@ -0,0 +1,17 @@
+package cn.gistack.sm.dayReportFlood.service;
+
+import cn.gistack.sm.dayReportFlood.entity.DayReportFlood;
+import cn.gistack.sm.dayReportFlood.vo.DayReportFloodVO;
+import com.baomidou.mybatisplus.core.metadata.IPage;
+import org.springblade.core.mp.base.BaseService;
+
+/**
+ * @PROJECT_NAME: skjcmanager
+ * @DESCRIPTION:
+ * @USER: guoshilong
+ * @DATE: 2023/6/2 9:38
+ */
+public interface IDayReportFloodService extends BaseService<DayReportFlood> {
+
+ IPage<DayReportFloodVO> selectPage(IPage<DayReportFloodVO> page, DayReportFloodVO dayReportFloodVO);
+}
diff --git a/skjcmanager/skjcmanager-service/skjcmanager-sm/src/main/java/cn/gistack/sm/dayReportFlood/service/impl/DayReportFloodServiceImpl.java b/skjcmanager/skjcmanager-service/skjcmanager-sm/src/main/java/cn/gistack/sm/dayReportFlood/service/impl/DayReportFloodServiceImpl.java
new file mode 100644
index 0000000..e4910c2
--- /dev/null
+++ b/skjcmanager/skjcmanager-service/skjcmanager-sm/src/main/java/cn/gistack/sm/dayReportFlood/service/impl/DayReportFloodServiceImpl.java
@@ -0,0 +1,17 @@
+package cn.gistack.sm.dayReportFlood.service.impl;
+
+import cn.gistack.sm.dayReportFlood.entity.DayReportFlood;
+import cn.gistack.sm.dayReportFlood.mapper.DayReportFloodMapper;
+import cn.gistack.sm.dayReportFlood.service.IDayReportFloodService;
+import cn.gistack.sm.dayReportFlood.vo.DayReportFloodVO;
+import com.baomidou.mybatisplus.core.metadata.IPage;
+import org.springblade.core.mp.base.BaseServiceImpl;
+import org.springframework.stereotype.Service;
+
+@Service
+public class DayReportFloodServiceImpl extends BaseServiceImpl<DayReportFloodMapper, DayReportFlood> implements IDayReportFloodService {
+ @Override
+ public IPage<DayReportFloodVO> selectPage(IPage<DayReportFloodVO> page, DayReportFloodVO dayReportFloodVO) {
+ return page.setRecords(baseMapper.selectMyPage(page,dayReportFloodVO));
+ }
+}
diff --git a/skjcmanager/skjcmanager-service/skjcmanager-sm/src/main/java/cn/gistack/sm/hk/constant/HkConstant.java b/skjcmanager/skjcmanager-service/skjcmanager-sm/src/main/java/cn/gistack/sm/hk/constant/HkConstant.java
index 83b2efe..b8baf08 100644
--- a/skjcmanager/skjcmanager-service/skjcmanager-sm/src/main/java/cn/gistack/sm/hk/constant/HkConstant.java
+++ b/skjcmanager/skjcmanager-service/skjcmanager-sm/src/main/java/cn/gistack/sm/hk/constant/HkConstant.java
@@ -10,12 +10,15 @@
/**
* post
*/
- public static final String HOST = "36.134.79.80:1443";
+// public static final String HOST = "36.134.79.80:1443";
+ public static final String HOST = "v.hubeishuiyi.cn:1443";
+
/**
* newPost
*/
- public static final String NEW_HOST = "223.76.234.232:1443";
+// public static final String NEW_HOST = "223.76.234.232:1443";
+ public static final String NEW_HOST = "v.hubeishuiyi.cn:1443";
/**
@@ -34,6 +37,21 @@
public static final String AppSecret = "1eyDaLIxOU4XBC8P7Jyr";
/**
+ * EventAppKey 算法
+ */
+ public static final String EventAppKey = "26514872";
+
+ /**
+ * EventAppSecret 算法
+ */
+ public static final String EventAppSecret = "7t767HTMOjWu1k2ui3Ho";
+
+ /**
+ * Event_NEW_HOST 算法
+ */
+ public static final String Event_NEW_HOST = "10.42.7.244:443";
+
+ /**
* 分页获取监控点资源 url
*/
public static final String cameras = "/api/resource/v1/cameras";
diff --git a/skjcmanager/skjcmanager-service/skjcmanager-sm/src/main/java/cn/gistack/sm/hk/constant/HkEventConstant.java b/skjcmanager/skjcmanager-service/skjcmanager-sm/src/main/java/cn/gistack/sm/hk/constant/HkEventConstant.java
new file mode 100644
index 0000000..0a69f26
--- /dev/null
+++ b/skjcmanager/skjcmanager-service/skjcmanager-sm/src/main/java/cn/gistack/sm/hk/constant/HkEventConstant.java
@@ -0,0 +1,70 @@
+package cn.gistack.sm.hk.constant;
+
+import java.util.ArrayList;
+import java.util.HashMap;
+import java.util.List;
+import java.util.Map;
+
+public class HkEventConstant {
+
+
+ /**
+ * 事情事件编号
+ * 视频丢失 131329
+ * 视频遮挡 131330
+ * 移动侦测 131331
+ * 越界侦测 131585
+ * 区域入侵 131588
+ * 徘徊侦测 131590
+ * 人员聚集 131593
+ */
+ public static List<String> videoList = new ArrayList<>()
+ {{
+ add("131329");
+ add("131330");
+ add("131331");
+ add("131585");
+ add("131588");
+ add("131590");
+ add("131593");
+ }};
+
+ /**
+ * 算法事件编号
+ * 旷野垃圾堆检测 72057594155375360
+ * 水面漂浮物检测 72057594155372032
+ * 钓鱼检测 72057594155375872
+ * 水体颜色识别 72057594155377920
+ * 水岸洗衣识别 72057594155387392
+ * 游泳检测 72057594155376384
+ * 水体泡沫识别 72057594155484938
+ * 违法建设变化检测 72057594155479818
+ */
+ public static List<String> artVideoList = new ArrayList<>()
+ {{
+ add("72057594155375360");
+ add("72057594155372032");
+ add("72057594155375872");
+ add("72057594155377920");
+ add("72057594155387392");
+ add("72057594155376384");
+ add("72057594155484938");
+ add("72057594155479818");
+ }};
+
+
+
+ /**
+ *
+ */
+ public static Map<String,String> videoMap = new HashMap()
+ {{
+ put("131329","");
+ put("131330","");
+ put("131331","");
+ put("131585","linedetection");
+ put("131588","fielddetection");
+ put("131590","loitering");
+ put("131593","group");
+ }};
+}
diff --git a/skjcmanager/skjcmanager-service/skjcmanager-sm/src/main/java/cn/gistack/sm/hk/controller/HkController.java b/skjcmanager/skjcmanager-service/skjcmanager-sm/src/main/java/cn/gistack/sm/hk/controller/HkController.java
index 8d4b5d0..cafa836 100644
--- a/skjcmanager/skjcmanager-service/skjcmanager-sm/src/main/java/cn/gistack/sm/hk/controller/HkController.java
+++ b/skjcmanager/skjcmanager-service/skjcmanager-sm/src/main/java/cn/gistack/sm/hk/controller/HkController.java
@@ -72,6 +72,7 @@
HkConstant.previewURLs,
hk.getCameraIndexCode(),
ProtocolConstant.WS,
+ null==hk.getTransmode()?1:hk.getTransmode(),
expand,
null==hk.getStreamType()?1:hk.getStreamType());
if (null!=result) {
@@ -101,6 +102,7 @@
HkConstant.previewURLs,
hk.getCameraIndexCode(),
hk.getProtocol(),
+ null==hk.getTransmode()?1:hk.getTransmode(),
expand,
null==hk.getStreamType()?1:hk.getStreamType());
if (null!=result) {
@@ -130,6 +132,7 @@
HkConstant.previewURLs,
hk.getCameraIndexCode(),
ProtocolConstant.HLS,
+ null==hk.getTransmode()?1:hk.getTransmode(),
expand,
null==hk.getStreamType()?1:hk.getStreamType());
if (null!=result) {
@@ -240,6 +243,7 @@
jsonBody.put("cameraIndexCode", hk.getCameraIndexCode());
jsonBody.put("protocol", hk.getProtocol());
jsonBody.put("recordLocation", "1");
+ jsonBody.put("transmode", null==hk.getTransmode()?1:hk.getTransmode());
jsonBody.put("beginTime", hk.getBeginTime());
jsonBody.put("endTime", hk.getEndTime());
String body = jsonBody.toJSONString();
@@ -266,6 +270,7 @@
jsonBody.put("cameraIndexCode", hk.getCameraIndexCode());
jsonBody.put("streamType",null==hk.getStreamType()?1:hk.getStreamType());
jsonBody.put("protocol", hk.getProtocol());
+ jsonBody.put("transmode", null==hk.getTransmode()?1:hk.getTransmode());
String body = jsonBody.toJSONString();
/**
diff --git a/skjcmanager/skjcmanager-service/skjcmanager-sm/src/main/java/cn/gistack/sm/hk/controller/HkEventController.java b/skjcmanager/skjcmanager-service/skjcmanager-sm/src/main/java/cn/gistack/sm/hk/controller/HkEventController.java
index 969ee48..3063c3b 100644
--- a/skjcmanager/skjcmanager-service/skjcmanager-sm/src/main/java/cn/gistack/sm/hk/controller/HkEventController.java
+++ b/skjcmanager/skjcmanager-service/skjcmanager-sm/src/main/java/cn/gistack/sm/hk/controller/HkEventController.java
@@ -1,24 +1,26 @@
package cn.gistack.sm.hk.controller;
+
import cn.gistack.sm.hk.constant.HkConstant;
-import cn.gistack.sm.hk.constant.ProtocolConstant;
-import cn.gistack.sm.hk.service.HkService;
+import cn.gistack.sm.hk.entity.HkEvent;
+import cn.gistack.sm.hk.service.AsyncHkEventService;
+import cn.gistack.sm.hk.service.HkEventService;
import cn.gistack.sm.hk.vo.EventVO;
-import cn.gistack.sm.hk.vo.HkVO;
+import cn.gistack.sm.hk.vo.HkEventVO;
import com.alibaba.fastjson.JSON;
import com.alibaba.fastjson.JSONObject;
import com.alibaba.fastjson.serializer.SerializerFeature;
+import com.baomidou.mybatisplus.core.metadata.IPage;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
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.*;
-
import java.text.SimpleDateFormat;
import java.util.Date;
-import java.util.Map;
import static cn.gistack.sm.hk.util.GetCameraUtils.*;
@@ -34,7 +36,71 @@
@AllArgsConstructor
public class HkEventController {
- private final HkService hkService;
+ private final HkEventService hkEventService;
+ private final AsyncHkEventService asyncHkEventService;
+
+ /**
+ * 分页列表查询
+ *
+ * @param hkEvent
+ * @return
+ */
+ @ApiOperation(value="告警记录-分页列表查询", notes="告警记录-分页列表查询")
+ @GetMapping(value = "/list")
+ public R queryPageList(HkEvent hkEvent, Query query) {
+ IPage<HkEvent> pageList = hkEventService.page(Condition.getPage(query), Condition.getQueryWrapper(hkEvent));
+ return R.data(pageList);
+ }
+
+ /**
+ * 自定义分页列表查询
+ * @param query
+ * @param hkEvent
+ * @return
+ */
+ @ApiOperation(value="告警记录-自定义分页列表查询", notes="告警记录-自定义分页列表查询")
+ @GetMapping(value = "/page")
+ public R selectAlarmPage(HkEventVO hkEvent, Query query) {
+ return R.data(hkEventService.selectHkEventPage(Condition.getPage(query),hkEvent));
+ }
+
+ /**
+ * 添加
+ *
+ * @param hkEvent
+ * @return
+ */
+ @ApiOperation(value="告警记录-添加", notes="告警记录-添加")
+ @PostMapping(value = "/add")
+ public R add(@RequestBody HkEvent hkEvent) {
+ return R.data(hkEventService.save(hkEvent));
+ }
+
+ /**
+ * 编辑
+ *
+ * @param hkEvent
+ * @return
+ */
+ @ApiOperation(value="告警记录-编辑", notes="告警记录-编辑")
+ @RequestMapping(value = "/edit", method = {RequestMethod.PUT,RequestMethod.POST})
+ public R edit(@RequestBody HkEvent hkEvent) {
+ return R.data(hkEventService.updateById(hkEvent));
+ }
+
+ /**
+ * 通过id查询
+ *
+ * @param id
+ * @return
+ */
+ @ApiOperation(value="告警记录-通过id查询", notes="告警记录-通过id查询")
+ @GetMapping(value = "/queryById")
+ public R queryById(@RequestParam(name="id",required=true) String id) {
+ HkEvent hkEvent = hkEventService.getById(id);
+ return R.data(hkEvent);
+ }
+
/**
* 海康视频事件订阅
@@ -43,7 +109,9 @@
*/
@GetMapping(value = "/eventSubscriptionByEventTypes")
public R eventSubscriptionByEventTypes(EventVO eventVO) {
+ eventVO.setType(null==eventVO.getType()?1:eventVO.getType());
String result = addEventSubscriptionByEventTypes(eventVO, HkConstant.eventSubscriptionByEventTypesURLs);
+// log.info("事件订阅返回信息:" + result);
JSONObject jsonObject1 = JSONObject.parseObject(result);
// 查询海康设备列表并返回
return R.data(jsonObject1);
@@ -56,6 +124,7 @@
*/
@GetMapping(value = "/eventUnSubscriptionByEventTypes")
public R eventUnSubscriptionByEventTypes(EventVO eventVO) {
+ eventVO.setType(null==eventVO.getType()?1:eventVO.getType());
String result = removeEventSubscriptionByEventTypes(eventVO, HkConstant.eventUnSubscriptionByEventTypesURLs);
JSONObject jsonObject1 = JSONObject.parseObject(result);
// 查询海康设备列表并返回
@@ -69,6 +138,7 @@
*/
@GetMapping(value = "/eventSubscriptionView")
public R eventSubscriptionView(EventVO eventVO) {
+ eventVO.setType(null==eventVO.getType()?1:eventVO.getType());
String result = getEventSubscriptionView(eventVO, HkConstant.eventSubscriptionViewURLs);
JSONObject jsonObject1 = JSONObject.parseObject(result);
// 查询海康设备列表并返回
@@ -82,14 +152,14 @@
*/
@PostMapping(value = "/eventRcv")
public String eventRcv(@RequestBody String data) {
- Date date = new Date();
- SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
//格式化输出json
JSONObject jsonObject = JSON.parseObject(data);
String prettyData = JSON.toJSONString(jsonObject, SerializerFeature.PrettyFormat,
SerializerFeature.WriteMapNullValue);
- System.out.println(simpleDateFormat.format(date) + "收到数据:" + System.lineSeparator() + prettyData);
-
+// log.info("收到事件:" + jsonObject);
+ // 异步保存数据
+ asyncHkEventService.saveHkEventInfo(prettyData);
+ // 立即返回
JSONObject jsonBody = new JSONObject();
jsonBody.put("code", "200");
jsonBody.put("msg", "ok");
diff --git a/skjcmanager/skjcmanager-service/skjcmanager-sm/src/main/java/cn/gistack/sm/hk/entity/HkEvent.java b/skjcmanager/skjcmanager-service/skjcmanager-sm/src/main/java/cn/gistack/sm/hk/entity/HkEvent.java
new file mode 100644
index 0000000..bf6872c
--- /dev/null
+++ b/skjcmanager/skjcmanager-service/skjcmanager-sm/src/main/java/cn/gistack/sm/hk/entity/HkEvent.java
@@ -0,0 +1,124 @@
+package cn.gistack.sm.hk.entity;
+
+import com.baomidou.mybatisplus.annotation.*;
+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.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+import org.springframework.format.annotation.DateTimeFormat;
+import java.io.Serializable;
+import java.util.Date;
+
+/**
+ * 海康视频事件
+ *
+ * @author zhongrj
+ * @date 2024-04-24
+ */
+@Data
+@TableName(value = "sm_hk_event")
+@ApiModel(value = "sm_hk_event对象", description = "考核方案")
+public class HkEvent implements Serializable {
+
+ /**
+ * 主键id
+ */
+ @JsonSerialize(using = ToStringSerializer.class)
+ @TableId(value = "id", type = IdType.ASSIGN_ID)
+ private Long id;
+
+ /**
+ * 事件唯一标识
+ */
+ @ApiModelProperty(value = "事件唯一标识")
+ private String eventId;
+
+ /**
+ * 事件源编号,物理设备是资源编号
+ */
+ @ApiModelProperty(value = "事件源编号,物理设备是资源编号")
+ private String srcIndex;
+
+ /**
+ * 事件源类型
+ */
+ @ApiModelProperty(value = "事件源类型")
+ private String srcType;
+ /**
+ * 事件源名称
+ */
+ @ApiModelProperty(value = "事件源名称")
+ private String srcName;
+
+ /**
+ * 事件类型
+ */
+ @ApiModelProperty(value = "事件类型")
+ private Long eventType;
+ /**
+ * 事件状态
+ * 0-瞬时
+ * 1-开始
+ * 2-停止
+ * 4-事件联动结果更新
+ * 5-事件图片异步上传
+ */
+ @ApiModelProperty(value = "事件状态")
+ private Integer status;
+
+ /**
+ * 事件等级:
+ * 0-未配置
+ * 1-低
+ * 2-中
+ * 3-高
+ * 注意,此处事件等级是指在事件联动中配置的等级,需要配置了事件联动,才返回这个字段
+ */
+ @ApiModelProperty(value = "事件等级")
+ private Integer eventLvl;
+
+ /**
+ * 脉冲超时时间
+ */
+ @ApiModelProperty(value = "脉冲超时时间")
+ private Long timeout;
+
+ /**
+ * 事件发生时间(设备时间)
+ */
+ @JsonFormat(timezone = "GMT+8", pattern = "yyyy-MM-dd HH:mm:ss")
+ @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
+ @ApiModelProperty(value = "事件发生时间(设备时间)")
+ private Date happenTime;
+
+ /**
+ * 事件发生的事件源父设备编码
+ */
+ @ApiModelProperty(value = "事件发生的事件源父设备编码")
+ private String srcParentIndex;
+
+ /**
+ * 事件从接收者(程序处理后)发出的时间
+ */
+ @JsonFormat(timezone = "GMT+8", pattern = "yyyy-MM-dd HH:mm:ss")
+ @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
+ @ApiModelProperty(value = "事件从接收者(程序处理后)发出的时间")
+ private Date sendTime;
+
+ /**
+ * 创建时间
+ */
+ @JsonFormat(timezone = "GMT+8", pattern = "yyyy-MM-dd HH:mm:ss")
+ @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
+ @ApiModelProperty(value = "创建时间")
+ @TableField(value = "create_time",fill = FieldFill.INSERT)
+ private Date createTime;
+
+ /**
+ * 图片url
+ */
+ @ApiModelProperty(value = "图片url")
+ private String imageUrl;
+}
diff --git a/skjcmanager/skjcmanager-service/skjcmanager-sm/src/main/java/cn/gistack/sm/hk/mapper/HkEventMapper.java b/skjcmanager/skjcmanager-service/skjcmanager-sm/src/main/java/cn/gistack/sm/hk/mapper/HkEventMapper.java
new file mode 100644
index 0000000..26ef039
--- /dev/null
+++ b/skjcmanager/skjcmanager-service/skjcmanager-sm/src/main/java/cn/gistack/sm/hk/mapper/HkEventMapper.java
@@ -0,0 +1,20 @@
+package cn.gistack.sm.hk.mapper;
+
+import cn.gistack.sm.hk.entity.HkEvent;
+import cn.gistack.sm.hk.vo.HkEventVO;
+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 HkEventMapper extends BaseMapper<HkEvent> {
+
+ /**
+ * 自定义分页列表查询
+ * @param page
+ * @param hkEvent
+ * @return
+ */
+ List<HkEventVO> selectHkEventPage(@Param("page") IPage<HkEventVO> page,@Param("hkEvent") HkEventVO hkEvent);
+}
diff --git a/skjcmanager/skjcmanager-service/skjcmanager-sm/src/main/java/cn/gistack/sm/hk/mapper/HkEventMapper.xml b/skjcmanager/skjcmanager-service/skjcmanager-sm/src/main/java/cn/gistack/sm/hk/mapper/HkEventMapper.xml
new file mode 100644
index 0000000..2bdb70d
--- /dev/null
+++ b/skjcmanager/skjcmanager-service/skjcmanager-sm/src/main/java/cn/gistack/sm/hk/mapper/HkEventMapper.xml
@@ -0,0 +1,52 @@
+<?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.hk.mapper.HkEventMapper">
+
+ <!--自定义分页列表查询-->
+ <select id="selectHkEventPage" resultType="cn.gistack.sm.hk.vo.HkEventVO">
+ select
+ she.*,
+ awb."res_guid" as resGuid,
+ a."name" as resName,
+ case when b."ad_grad" = 4 THEN b."ad_name"
+ ELSE NULL END AS townName,
+ case when b."ad_grad" = 3 THEN b."ad_name"
+ when c."ad_grad" = 3 THEN C."ad_name"
+ END AS countyName,
+ case when b."ad_grad" = 2 THEN b."ad_name"
+ when c."ad_grad" = 2 THEN c."ad_name"
+ ELSE d."ad_name" END AS cityName,
+ bdb.dict_value as eventTypeName
+ from YWXT.sm_hk_event she
+ left join YWXT.blade_dict_biz bdb on bdb.dict_key = she.event_type and bdb.is_deleted = 0 and code = 'EVENT_TYPE'
+ left join SJZT_MD."att_wmst_base" awb on awb."video_guid" = she.src_index
+ left join SJZT_MD."att_res_base" a on a."guid" = awb."res_guid"
+ left join SJZT_MD."att_ad_base" b on b."guid" = a."interior_ad_guid"
+ LEFT JOIN SJZT_MD."att_ad_base" c ON b."p_ad_code" = c."guid"
+ LEFT JOIN SJZT_MD."att_ad_base" d ON c."p_ad_code" = d."guid"
+ where 1 =1
+ <if test="hkEvent.srcName!=null and hkEvent.srcName!=''">
+ and she.src_name like concat('%',#{hkEvent.srcName},'%')
+ </if>
+ <if test="hkEvent.eventTypeName!=null and hkEvent.eventTypeName!=''">
+ and bdb.dict_value like concat('%',#{hkEvent.eventTypeName},'%')
+ </if>
+ <if test="hkEvent.status!=null">
+ and she.status = #{hkEvent.status}
+ </if>
+ <if test="hkEvent.eventType!=null">
+ and she.event_type = #{hkEvent.eventType}
+ </if>
+ <if test="hkEvent.startTime !=null and hkEvent.startTime !=''">
+ AND DATE_FORMAT(she.send_time,'%Y-%m-%d') >= #{hkEvent.startTime}
+ </if>
+ <if test="hkEvent.endTime !=null and hkEvent.endTime !=''">
+ AND DATE_FORMAT(she.send_time,'%Y-%m-%d') <= #{hkEvent.endTime}
+ </if>
+ <if test="hkEvent.adCode != null and hkEvent.adCode !='' and hkEvent.adCode !='420000000000'">
+ AND (b."ad_code" = #{hkEvent.adCode} or c."ad_code" =#{hkEvent.adCode} or d."ad_code" = #{hkEvent.adCode})
+ </if>
+ order by she.id desc
+ </select>
+
+</mapper>
diff --git a/skjcmanager/skjcmanager-service/skjcmanager-sm/src/main/java/cn/gistack/sm/hk/service/AsyncHkEventService.java b/skjcmanager/skjcmanager-service/skjcmanager-sm/src/main/java/cn/gistack/sm/hk/service/AsyncHkEventService.java
new file mode 100644
index 0000000..aca63c4
--- /dev/null
+++ b/skjcmanager/skjcmanager-service/skjcmanager-sm/src/main/java/cn/gistack/sm/hk/service/AsyncHkEventService.java
@@ -0,0 +1,82 @@
+package cn.gistack.sm.hk.service;
+
+import cn.gistack.sm.hk.constant.HkEventConstant;
+import cn.gistack.sm.hk.entity.HkEvent;
+import com.alibaba.fastjson.JSONArray;
+import com.alibaba.fastjson.JSONObject;
+import lombok.extern.slf4j.Slf4j;
+import org.apache.logging.log4j.util.Strings;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.scheduling.annotation.Async;
+import org.springframework.stereotype.Component;
+
+import java.util.Date;
+
+@Component
+@Slf4j
+public class AsyncHkEventService {
+
+ @Autowired
+ private HkEventService hkEventService;
+
+ /**
+ * 异步加载海康视频事件
+ * @param jsonData
+ */
+ @Async
+ public void saveHkEventInfo(String jsonData){
+ JSONObject jsonObject = JSONObject.parseObject(jsonData);
+ String params = jsonObject.get("params").toString();
+ JSONObject parseObject = JSONObject.parseObject(params);
+ JSONArray eventsArray = parseObject.getJSONArray("events");
+ Date sendTime = parseObject.getDate("sendTime");
+ for (int i = 0; i < eventsArray.size(); i++) {
+ HkEvent hkEvent = new HkEvent();
+ hkEvent.setEventId(eventsArray.getJSONObject(i).getString("eventId"));
+ hkEvent.setEventType(eventsArray.getJSONObject(i).getLong("eventType"));
+ hkEvent.setSrcIndex(eventsArray.getJSONObject(i).getString("srcIndex"));
+ hkEvent.setSrcName(eventsArray.getJSONObject(i).getString("srcName"));
+ hkEvent.setSrcType(eventsArray.getJSONObject(i).getString("srcType"));
+ hkEvent.setSrcParentIndex(eventsArray.getJSONObject(i).getString("srcParentIndex"));
+ hkEvent.setTimeout(eventsArray.getJSONObject(i).getLong("timeout"));
+ hkEvent.setHappenTime(eventsArray.getJSONObject(i).getDate("happenTime"));
+ hkEvent.setStatus(eventsArray.getJSONObject(i).getInteger("status"));
+ hkEvent.setEventLvl(eventsArray.getJSONObject(i).getInteger("eventLvl"));
+ hkEvent.setCreateTime(new Date());
+ hkEvent.setSendTime(sendTime);
+ hkEvent.setImageUrl(setImageUrl(eventsArray,i));
+ // 保存
+ hkEventService.save(hkEvent);
+ }
+ }
+
+ /**
+ * 设置图片路径
+ * @param eventsArray
+ * @param i
+ * @return
+ */
+ private String setImageUrl(JSONArray eventsArray, int i) {
+ String eventType = eventsArray.getJSONObject(i).getLong("eventType").toString();
+ // 如果是非算法事件处理
+ if (HkEventConstant.videoList.contains(eventType)){
+ String columns = HkEventConstant.videoMap.get(eventType);
+ if (!Strings.isBlank(columns)){
+ String data = eventsArray.getJSONObject(i).getString("data");
+ JSONObject parseObject = JSONObject.parseObject(data);
+ JSONArray columnsJSONArray = parseObject.getJSONArray(columns);
+ if (null!= columnsJSONArray && columnsJSONArray.size()>0) {
+// log.info("img:" + columnsJSONArray.getJSONObject(0).getString("imageUrl"));
+ return columnsJSONArray.getJSONObject(0).getString("imageUrl");
+ }
+ }
+ return null;
+ }
+ // 算法事件处理
+ if (HkEventConstant.artVideoList.contains(eventType)){
+// log.info("img:" + eventsArray.getJSONObject(i).getString("refrencePicUrl"));
+ return eventsArray.getJSONObject(i).getString("refrencePicUrl");
+ }
+ return null;
+ }
+}
diff --git a/skjcmanager/skjcmanager-service/skjcmanager-sm/src/main/java/cn/gistack/sm/hk/service/HkEventService.java b/skjcmanager/skjcmanager-service/skjcmanager-sm/src/main/java/cn/gistack/sm/hk/service/HkEventService.java
new file mode 100644
index 0000000..809b69f
--- /dev/null
+++ b/skjcmanager/skjcmanager-service/skjcmanager-sm/src/main/java/cn/gistack/sm/hk/service/HkEventService.java
@@ -0,0 +1,23 @@
+package cn.gistack.sm.hk.service;
+
+
+import cn.gistack.sm.hk.entity.HkEvent;
+import cn.gistack.sm.hk.vo.HkEventVO;
+import com.baomidou.mybatisplus.core.metadata.IPage;
+import com.baomidou.mybatisplus.extension.service.IService;
+
+/**
+ * 海康事件服务接口层
+ * @author zhongrj
+ * @date 2024-04-24
+ */
+public interface HkEventService extends IService<HkEvent> {
+
+ /**
+ * 自定义分页列表查询
+ * @param page
+ * @param hkEvent
+ * @return
+ */
+ IPage<HkEventVO> selectHkEventPage(IPage<HkEventVO> page, HkEventVO hkEvent);
+}
diff --git a/skjcmanager/skjcmanager-service/skjcmanager-sm/src/main/java/cn/gistack/sm/hk/service/impl/HkEventServiceImpl.java b/skjcmanager/skjcmanager-service/skjcmanager-sm/src/main/java/cn/gistack/sm/hk/service/impl/HkEventServiceImpl.java
new file mode 100644
index 0000000..ada980b
--- /dev/null
+++ b/skjcmanager/skjcmanager-service/skjcmanager-sm/src/main/java/cn/gistack/sm/hk/service/impl/HkEventServiceImpl.java
@@ -0,0 +1,29 @@
+package cn.gistack.sm.hk.service.impl;
+
+import cn.gistack.sm.hk.entity.HkEvent;
+import cn.gistack.sm.hk.mapper.HkEventMapper;
+import cn.gistack.sm.hk.service.HkEventService;
+import cn.gistack.sm.hk.vo.HkEventVO;
+import com.baomidou.mybatisplus.core.metadata.IPage;
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import org.springframework.stereotype.Service;
+
+/**
+ * 海康事件服务接口实现层
+ * @author zhongrj
+ * @date 2024-04-24
+ */
+@Service
+public class HkEventServiceImpl extends ServiceImpl<HkEventMapper, HkEvent> implements HkEventService {
+
+ /**
+ * 自定义分页列表查询
+ * @param page
+ * @param hkEvent
+ * @return
+ */
+ @Override
+ public IPage<HkEventVO> selectHkEventPage(IPage<HkEventVO> page, HkEventVO hkEvent) {
+ return page.setRecords(baseMapper.selectHkEventPage(page,hkEvent));
+ }
+}
diff --git a/skjcmanager/skjcmanager-service/skjcmanager-sm/src/main/java/cn/gistack/sm/hk/util/GetCameraUtils.java b/skjcmanager/skjcmanager-service/skjcmanager-sm/src/main/java/cn/gistack/sm/hk/util/GetCameraUtils.java
index f0208dd..d2d286a 100644
--- a/skjcmanager/skjcmanager-service/skjcmanager-sm/src/main/java/cn/gistack/sm/hk/util/GetCameraUtils.java
+++ b/skjcmanager/skjcmanager-service/skjcmanager-sm/src/main/java/cn/gistack/sm/hk/util/GetCameraUtils.java
@@ -41,6 +41,15 @@
// 秘钥appSecret
ArtemisConfig.appSecret = HkConstant.AppSecret;
+ if (type==3) {
+ // 秘钥appKey
+ ArtemisConfig.appKey = HkConstant.EventAppKey;
+ // 秘钥appSecret
+ ArtemisConfig.appSecret = HkConstant.EventAppSecret;
+ // host
+ ArtemisConfig.host = HkConstant.Event_NEW_HOST;
+ }
+
/**
* STEP3:设置接口的URI地址
@@ -75,10 +84,17 @@
* @param url 视频预览url
* @param cameraIndexCode 监控点唯一标识
* @param protocol
+ * @param transmode
* @param expand
* @return
*/
- public static String GetCameraPreviewURL(Integer type,String url, String cameraIndexCode, String protocol,String expand,Integer streamType) {
+ public static String GetCameraPreviewURL(Integer type,
+ String url,
+ String cameraIndexCode,
+ String protocol,
+ Integer transmode,
+ String expand,
+ Integer streamType) {
/**
* 组装请求参数
*/
@@ -86,7 +102,7 @@
jsonBody.put("cameraIndexCode", cameraIndexCode);
jsonBody.put("streamType",streamType);
jsonBody.put("protocol", protocol);
- jsonBody.put("transmode", 1);
+ jsonBody.put("transmode", transmode);
if (null!= expand && !expand.equals("")) {
jsonBody.put("expand", expand);
}
@@ -295,7 +311,7 @@
* 组装请求参数
*/
JSONObject jsonBody = new JSONObject();
- jsonBody.put("eventTypes", Arrays.stream(eventVO.getEventTypes().split(",")).mapToInt(Integer::parseInt).toArray());
+ jsonBody.put("eventTypes", Arrays.stream(eventVO.getEventTypes().split(",")).mapToLong(Long::parseLong).toArray());
jsonBody.put("eventDest", eventVO.getEventDest());
if (null!=eventVO.getSubType()){
jsonBody.put("subType", eventVO.getSubType());
@@ -319,7 +335,7 @@
* @return
*/
public static String removeEventSubscriptionByEventTypes(EventVO eventVO, String url) {
- int[] eventTypes = Arrays.stream(eventVO.getEventTypes().split(",")).mapToInt(Integer::parseInt).toArray();
+ long[] eventTypes = Arrays.stream(eventVO.getEventTypes().split(",")).mapToLong(Long::parseLong).toArray();
/**
* 组装请求参数
*/
diff --git a/skjcmanager/skjcmanager-service/skjcmanager-sm/src/main/java/cn/gistack/sm/hk/vo/EventVO.java b/skjcmanager/skjcmanager-service/skjcmanager-sm/src/main/java/cn/gistack/sm/hk/vo/EventVO.java
index 1170b61..bd445fd 100644
--- a/skjcmanager/skjcmanager-service/skjcmanager-sm/src/main/java/cn/gistack/sm/hk/vo/EventVO.java
+++ b/skjcmanager/skjcmanager-service/skjcmanager-sm/src/main/java/cn/gistack/sm/hk/vo/EventVO.java
@@ -13,7 +13,7 @@
private Integer type;
/**
- * 事件类型 区域入侵:131588,徘徊侦测:131590 视频丢失:131329 折线警戒面:131611
+ * 事件类型 视频丢失:131329,视频遮挡:131330,移动侦测:131331,越界侦测:131585,区域入侵:131588,徘徊侦测:131590,人员聚集:131593
*/
private String eventTypes;
diff --git a/skjcmanager/skjcmanager-service/skjcmanager-sm/src/main/java/cn/gistack/sm/hk/vo/HkEventVO.java b/skjcmanager/skjcmanager-service/skjcmanager-sm/src/main/java/cn/gistack/sm/hk/vo/HkEventVO.java
new file mode 100644
index 0000000..f938767
--- /dev/null
+++ b/skjcmanager/skjcmanager-service/skjcmanager-sm/src/main/java/cn/gistack/sm/hk/vo/HkEventVO.java
@@ -0,0 +1,59 @@
+package cn.gistack.sm.hk.vo;
+
+import cn.gistack.sm.hk.entity.HkEvent;
+import lombok.Data;
+
+import java.io.Serializable;
+
+@Data
+public class HkEventVO extends HkEvent implements Serializable {
+
+ /**
+ * 事件类型名称
+ */
+ private String eventTypeName;
+
+ /**
+ * 开始时间
+ */
+ private String startTime;
+
+ /**
+ * 结束时间
+ */
+ private String endTime;
+ /**
+ * 水库编号
+ */
+ private String resGuid;
+
+ /**
+ * 水库名称
+ */
+ private String resName;
+
+ /**
+ * 是否导出
+ */
+ private Integer isExport;
+
+ /**
+ * 市州名称
+ */
+ private String cityName;
+
+ /**
+ * 区县
+ */
+ private String countyName;
+
+ /**
+ * 乡镇
+ */
+ private String townName;
+
+ /**
+ * 区域编号
+ */
+ private String adCode;
+}
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..4a53ab7
--- /dev/null
+++ b/skjcmanager/skjcmanager-service/skjcmanager-sm/src/main/java/cn/gistack/sm/sjztmd/controller/AttWmstBaseController.java
@@ -0,0 +1,43 @@
+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.springblade.core.tool.utils.StringUtil;
+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){
+ if (StringUtil.isBlank(attWmstBase.getGuid())) {
+ R.fail("参数不能为空!");
+ }
+ 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..c3328ba
--- /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 Integer online;
+
+ /**
+ * 在线状态(1海康老平台,2海康楚天云平台)
+ */
+ @ApiModelProperty(value = "来源")
+ @TableField("\"sys_resource\"")
+ private Integer 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/entity/TbAttResPowerStation.java b/skjcmanager/skjcmanager-service/skjcmanager-sm/src/main/java/cn/gistack/sm/sjztmd/entity/TbAttResPowerStation.java
index 33c7abb..323d901 100644
--- a/skjcmanager/skjcmanager-service/skjcmanager-sm/src/main/java/cn/gistack/sm/sjztmd/entity/TbAttResPowerStation.java
+++ b/skjcmanager/skjcmanager-service/skjcmanager-sm/src/main/java/cn/gistack/sm/sjztmd/entity/TbAttResPowerStation.java
@@ -65,14 +65,14 @@
*/
@ApiModelProperty(value = "装机容量")
@TableField(value = "\"installed_capacity\"",fill = FieldFill.UPDATE)
- private Integer installedCapacity;
+ private double installedCapacity;
/**
* 平均年利用小时
*/
@ApiModelProperty(value = "平均年利用小时")
@TableField(value = "\"year_avg_hour\"",fill = FieldFill.UPDATE)
- private Integer yearAvgHour;
+ private double yearAvgHour;
/**
* 填报状态(0:填写中,1:审核中,2:审核通过)
diff --git a/skjcmanager/skjcmanager-service/skjcmanager-sm/src/main/java/cn/gistack/sm/sjztmd/feign/SjztMdClientImpl.java b/skjcmanager/skjcmanager-service/skjcmanager-sm/src/main/java/cn/gistack/sm/sjztmd/feign/SjztMdClientImpl.java
new file mode 100644
index 0000000..b11bd6c
--- /dev/null
+++ b/skjcmanager/skjcmanager-service/skjcmanager-sm/src/main/java/cn/gistack/sm/sjztmd/feign/SjztMdClientImpl.java
@@ -0,0 +1,96 @@
+package cn.gistack.sm.sjztmd.feign;
+
+import cn.gistack.resource.feign.IOssClient;
+import cn.gistack.resource.vo.MyMultipartFile;
+import cn.gistack.sm.sjztmd.entity.AttResBase;
+import cn.gistack.sm.sjztmd.feign.IAttResBaseClient;
+import cn.gistack.sm.sjztmd.feign.ISjztMdClient;
+import cn.gistack.sm.sjztmd.service.IAttResBaseService;
+import cn.gistack.sm.sjztmd.util.MyDateUtils;
+import cn.gistack.sm.sjztmd.word.service.ISjztmdService;
+import cn.gistack.sm.sjztmd.word.util.WordUtil;
+import cn.gistack.sm.sjztmd.word.vo.DzkInfo;
+import cn.gistack.sm.sjztmd.word.vo.OverDetail;
+import cn.gistack.sm.sjztmd.word.vo.SzInfo;
+import cn.gistack.sm.sjztmd.word.vo.TotalInfo;
+import lombok.AllArgsConstructor;
+import org.springblade.core.tenant.annotation.NonDS;
+import org.springframework.core.io.InputStreamResource;
+import org.springframework.http.MediaType;
+import org.springframework.web.bind.annotation.GetMapping;
+import org.springframework.web.bind.annotation.RestController;
+import org.springframework.web.multipart.MultipartFile;
+import springfox.documentation.annotations.ApiIgnore;
+
+import java.io.ByteArrayInputStream;
+import java.io.FileOutputStream;
+import java.io.IOException;
+import java.net.URLEncoder;
+import java.text.SimpleDateFormat;
+import java.util.Date;
+import java.util.HashMap;
+import java.util.List;
+import java.util.stream.Collectors;
+
+@NonDS
+@ApiIgnore
+@RestController
+@AllArgsConstructor
+public class SjztMdClientImpl implements ISjztMdClient {
+
+ private final ISjztmdService sjztmdService;
+ private final IOssClient ossClient;
+
+ @Override
+ @GetMapping(GENERATE_DAY_REPORT_FLOOD)
+ public String generateDayReportFlood(String isShow) throws Exception{
+
+
+
+ //获取总览、大中库、明细数据
+ List<TotalInfo> totalList = sjztmdService.getTotalInfo(isShow);
+ List<DzkInfo> dzkList = sjztmdService.getDzkInfo(isShow);
+ List<OverDetail> overDetailList = sjztmdService.getOverDetailInfo(isShow);
+ List<SzInfo> szInfoList = sjztmdService.getSzInfo(isShow);
+
+ HashMap<String,String> over10Params = new HashMap<>();
+ //small_start_stag=0&small_end_stag=2&mid_start_stag=0&mid_end_stag=2&big_start_stag=0&big_end_stag=2
+ over10Params.put("small_start_stag", "0.1");
+ over10Params.put("mid_start_stag", "0.1");
+ over10Params.put("big_start_stag", "0.1");
+
+ HashMap<String,String> normalParams = new HashMap<>();
+ //small_start_stag=0&small_end_stag=2&mid_start_stag=0&mid_end_stag=2&big_start_stag=0&big_end_stag=2
+ normalParams.put("small_start_stag", "0");
+ normalParams.put("mid_start_stag", "0");
+ normalParams.put("big_start_stag", "0");
+
+ List<TotalInfo> totalOverList = sjztmdService.getTotalOverInfo(isShow,normalParams);
+ List<TotalInfo> totalOver10List = sjztmdService.getTotalOverInfo(isShow,over10Params);
+ byte[] data = null;
+ if (MyDateUtils.isTodayInFloodSeason()){
+ data = WordUtil.GetOverInfo(totalList,dzkList,overDetailList,szInfoList);
+ }else {
+ data= WordUtil.GetNotInSeasonOverInfo(totalList,dzkList,overDetailList,szInfoList,totalOverList,totalOver10List);
+
+ }
+ // 创建响应实体并设置响应头,将输出流作为响应体返回给客户端
+// InputStreamResource resource = new InputStreamResource(new ByteArrayInputStream(data));
+ String time = new SimpleDateFormat("yyyy-MM-dd").format(new Date());
+ String fileName = time + "全省水库防汛情况.docx";
+ MultipartFile file = new MyMultipartFile("file",fileName, "text/plain", data);
+ String path = ossClient.uploadFile(fileName, file);
+ return path;
+ }
+
+ private void createFile(String filePath,byte[] bytes){
+ // 将byte[]写入文件
+ try (FileOutputStream fos = new FileOutputStream(filePath)) {
+ fos.write(bytes);
+ System.out.println("文件已成功生成!");
+ } catch (IOException e) {
+ e.printStackTrace();
+ System.out.println("生成文件时发生错误。");
+ }
+ }
+}
diff --git a/skjcmanager/skjcmanager-service/skjcmanager-sm/src/main/java/cn/gistack/sm/sjztmd/mapper/AttResBaseMapper.xml b/skjcmanager/skjcmanager-service/skjcmanager-sm/src/main/java/cn/gistack/sm/sjztmd/mapper/AttResBaseMapper.xml
index 32896ae..ec5b391 100644
--- a/skjcmanager/skjcmanager-service/skjcmanager-sm/src/main/java/cn/gistack/sm/sjztmd/mapper/AttResBaseMapper.xml
+++ b/skjcmanager/skjcmanager-service/skjcmanager-sm/src/main/java/cn/gistack/sm/sjztmd/mapper/AttResBaseMapper.xml
@@ -179,9 +179,7 @@
<select id="getAttResBaseUserPage" resultType="cn.gistack.sm.sjztmd.dto.AttResBaseUserDTO">
select
arb."guid", arb."name", arb."res_loc" as place, arb."res_reg_code" as resRegCode, arb."eng_scal" as engScal,arb."center_long" as lon,arb."center_lat" as lat,
- REGEXP_SUBSTR (arb."res_loc",'[^-]+',1,2) as cityName,
- REGEXP_SUBSTR (arb."res_loc",'[^-]+',1,3) as countyName,
- REGEXP_SUBSTR (arb."res_loc",'[^-]+',1,4) as townName,
+ dri."city_nm" cityName,dri."county_nm" countyName,dri."town_nm" townName,
aab."ad_name" as adName,
trmp1."user_unit" areaUnitName,trmp1."user_name" areaUsername,trmp1."user_phone" areaPhone,trmp1."position"
areaPosition,trmp1."guid" areaUserGuid,
@@ -198,6 +196,7 @@
trmp5."user_unit" patrolUnitName,trmp5."user_name" patrolUsername,trmp5."user_phone"
patrolPhone,trmp5."position" patrolPosition,trmp5."guid" patrolUserGuid
from SJZT_MD."att_res_base" arb
+ left join "SJZT_DW"."dim_res_info_a" dri on arb."guid" = dri."guid"
left join "SJZT_MD"."att_ad_base" aab on aab."guid" = arb."interior_ad_guid"
left join "SJZT_MD"."att_ad_base" aa on aab."p_ad_code" = aa."ad_code"
left join "SJZT_MD"."att_ad_base" ab on aa."p_ad_code" = ab."ad_code"
diff --git a/skjcmanager/skjcmanager-service/skjcmanager-sm/src/main/java/cn/gistack/sm/sjztmd/mapper/AttResManagePersonMapper.xml b/skjcmanager/skjcmanager-service/skjcmanager-sm/src/main/java/cn/gistack/sm/sjztmd/mapper/AttResManagePersonMapper.xml
index f660ee6..dc8b2c3 100644
--- a/skjcmanager/skjcmanager-service/skjcmanager-sm/src/main/java/cn/gistack/sm/sjztmd/mapper/AttResManagePersonMapper.xml
+++ b/skjcmanager/skjcmanager-service/skjcmanager-sm/src/main/java/cn/gistack/sm/sjztmd/mapper/AttResManagePersonMapper.xml
@@ -102,7 +102,7 @@
from "SJZT_MD"."att_res_manage_person" tmp
where tmp."user_phone" = a."user_phone")) as role_id
from (select *
- from (select distinct a."user_name", a."user_phone", concat(b."ad_guid", '000000') as "ad_code"
+ from (select distinct a."user_name", a."user_phone", b."interior_ad_guid" as "ad_code"
from "SJZT_MD"."att_res_manage_person" a
left join "SJZT_MD"."att_res_base" b on a."res_guid" = b."guid"
where "user_phone" is not null
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..7f5a515
--- /dev/null
+++ b/skjcmanager/skjcmanager-service/skjcmanager-sm/src/main/java/cn/gistack/sm/sjztmd/mapper/AttWmstBaseMapper.xml
@@ -0,0 +1,33 @@
+<?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 "online" = #{attWmstBase.online},"res_guid" = #{attWmstBase.resGuid}
+ where "guid" = #{attWmstBase.guid}
+ </update>
+ <select id="getPage" resultType="cn.gistack.sm.sjztmd.vo.AttWmstBaseVO">
+ select awb.*,arb."name" as resName,ad."ad_name" as towns_name,ad2."ad_name" as county_name,ad3."ad_name" as city_name from sjzt_md."att_wmst_base" awb
+ left join sjzt_md."att_res_base" arb on arb."guid" = awb."res_guid"
+ left join sjzt_md."att_ad_base" ad on ad."ad_code" = arb."interior_ad_guid"
+ left join sjzt_md."att_ad_base" ad2 on ad2."ad_code" = ad."p_ad_code"
+ left join sjzt_md."att_ad_base" ad3 on ad3."ad_code" = ad2."p_ad_code"
+ <where>
+ <if test="attWmstBaseVO.adCode != null and attWmstBaseVO.adCode !=''">
+ and concat(ad."ad_code",ad2."ad_code",ad3."ad_code") like concat('%',#{attWmstBaseVO.adCode},'%')
+ </if>
+ <if test="attWmstBaseVO.online != null and attWmstBaseVO.online !=''">
+ and awb."online" = #{attWmstBaseVO.online}
+ </if>
+ <if test="attWmstBaseVO.sysResource != null and attWmstBaseVO.sysResource !=''">
+ and awb."sys_resource" = #{attWmstBaseVO.sysResource}
+ </if>
+ <if test="attWmstBaseVO.resName != null and attWmstBaseVO.resName !=''">
+ and arb."name" like concat('%',#{attWmstBaseVO.resName},'%')
+ </if>
+ </where>
+
+ </select>
+</mapper>
diff --git a/skjcmanager/skjcmanager-service/skjcmanager-sm/src/main/java/cn/gistack/sm/sjztmd/mapper/TbProjectMapper.xml b/skjcmanager/skjcmanager-service/skjcmanager-sm/src/main/java/cn/gistack/sm/sjztmd/mapper/TbProjectMapper.xml
index 2e66200..164b3ff 100644
--- a/skjcmanager/skjcmanager-service/skjcmanager-sm/src/main/java/cn/gistack/sm/sjztmd/mapper/TbProjectMapper.xml
+++ b/skjcmanager/skjcmanager-service/skjcmanager-sm/src/main/java/cn/gistack/sm/sjztmd/mapper/TbProjectMapper.xml
@@ -67,7 +67,7 @@
<if test="vo.endTime!=null and vo.endTime!=''">
and tb."check_date" <= #{vo.endTime}
</if>
-
+ order by city_code,county_code asc
</select>
<resultMap id="dto" type="cn.gistack.sm.sjztmd.dto.TbProjectDTO">
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/util/MyDateUtils.java b/skjcmanager/skjcmanager-service/skjcmanager-sm/src/main/java/cn/gistack/sm/sjztmd/util/MyDateUtils.java
index 2907625..801fa47 100644
--- a/skjcmanager/skjcmanager-service/skjcmanager-sm/src/main/java/cn/gistack/sm/sjztmd/util/MyDateUtils.java
+++ b/skjcmanager/skjcmanager-service/skjcmanager-sm/src/main/java/cn/gistack/sm/sjztmd/util/MyDateUtils.java
@@ -24,8 +24,8 @@
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
try {
- Date startDate = sdf.parse(StringUtil.format("{}-05-01",nowYear));
- Date endDate = sdf.parse(StringUtil.format("{}-11-01",nowYear));
+ Date startDate = sdf.parse(StringUtil.format("{}-04-15",nowYear));
+ Date endDate = sdf.parse(StringUtil.format("{}-10-15",nowYear));
inSeason = today.after(startDate)&&today.before(endDate);
return inSeason;
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..dbcfdef
--- /dev/null
+++ b/skjcmanager/skjcmanager-service/skjcmanager-sm/src/main/java/cn/gistack/sm/sjztmd/vo/AttWmstBaseVO.java
@@ -0,0 +1,14 @@
+package cn.gistack.sm.sjztmd.vo;
+
+import cn.gistack.sm.sjztmd.entity.AttWmstBase;
+import lombok.Data;
+
+@Data
+public class AttWmstBaseVO extends AttWmstBase {
+ private String resName;
+
+ private String adCode;
+ private String townsName;
+ private String countyName;
+ private String cityName;
+}
diff --git a/skjcmanager/skjcmanager-service/skjcmanager-sm/src/main/java/cn/gistack/sm/sjztmd/word/controller/DownTemplateController.java b/skjcmanager/skjcmanager-service/skjcmanager-sm/src/main/java/cn/gistack/sm/sjztmd/word/controller/DownTemplateController.java
index e848c52..190fc43 100644
--- a/skjcmanager/skjcmanager-service/skjcmanager-sm/src/main/java/cn/gistack/sm/sjztmd/word/controller/DownTemplateController.java
+++ b/skjcmanager/skjcmanager-service/skjcmanager-sm/src/main/java/cn/gistack/sm/sjztmd/word/controller/DownTemplateController.java
@@ -4,6 +4,7 @@
import cn.gistack.sm.sjztmd.util.MyDateUtils;
import cn.gistack.sm.sjztmd.word.service.ISjztmdService;
+import cn.gistack.sm.sjztmd.word.util.BriefReportUtil;
import cn.gistack.sm.sjztmd.word.util.ExcelUtil;
import cn.gistack.sm.sjztmd.word.util.WordUtil;
import cn.gistack.sm.sjztmd.word.vo.*;
@@ -11,6 +12,7 @@
import io.swagger.annotations.Api;
import lombok.AllArgsConstructor;
import lombok.extern.slf4j.Slf4j;
+import org.springblade.core.tool.api.R;
import org.springframework.core.io.InputStreamResource;
import org.springframework.http.MediaType;
import org.springframework.http.ResponseEntity;
@@ -43,6 +45,13 @@
private final ISjztmdService sjztmdService;
+ @GetMapping(value = "/getBriefReport")
+ public R getBriefReport() {
+ //获取总览、大中库、明细数据
+ List<TotalInfo> totalList = sjztmdService.getTotalInfo("");
+ return R.data(BriefReportUtil.formatTotalInfo(totalList));
+ }
+
@GetMapping("/download/{resGuid}")
public ResponseEntity genera(HttpServletResponse response, @PathVariable String resGuid) throws Exception {
HashMap<String,Object> obj = sjztmdService.getTbWordVO(resGuid);
diff --git a/skjcmanager/skjcmanager-service/skjcmanager-sm/src/main/java/cn/gistack/sm/sjztmd/word/util/BriefReportUtil.java b/skjcmanager/skjcmanager-service/skjcmanager-sm/src/main/java/cn/gistack/sm/sjztmd/word/util/BriefReportUtil.java
new file mode 100644
index 0000000..8d08f52
--- /dev/null
+++ b/skjcmanager/skjcmanager-service/skjcmanager-sm/src/main/java/cn/gistack/sm/sjztmd/word/util/BriefReportUtil.java
@@ -0,0 +1,78 @@
+package cn.gistack.sm.sjztmd.word.util;
+
+import cn.gistack.sm.sjztmd.word.vo.TotalInfo;
+import org.springblade.core.tool.utils.StringUtil;
+
+import java.text.SimpleDateFormat;
+import java.util.ArrayList;
+import java.util.Date;
+import java.util.List;
+
+/**
+ * @PROJECT_NAME: skjcmanager
+ * @DESCRIPTION: 报讯简报
+ * @USER: aix
+ * @DATE: 2024/5/10 10:54
+ */
+public class BriefReportUtil {
+
+ public static String formatTotalInfo(List<TotalInfo> totalList) {
+ int total = 0;
+ int big = 0;
+ int mid = 0;
+ int small = 0;
+ int dangerCountTotal = 0;
+ int overDangerCountTotal = 0;
+ List<String> smallList = new ArrayList<>();
+
+
+ for (int i = 0; i < totalList.size(); i++) {
+ TotalInfo totalInfo = totalList.get(i);
+ total += totalInfo.getCount_all();
+ big += totalInfo.getBig_all();
+ mid += totalInfo.getMid_all();
+ small += totalInfo.getSmall_all();
+ dangerCountTotal += totalInfo.getDanger_count_all();
+ overDangerCountTotal += totalInfo.getOver_danger_count_all();
+
+ if (totalInfo.getSmall_all() == 0) {
+ continue;
+ }
+
+ String smallRegionCout = StringUtil.format("{}{}座", totalInfo.getP_ad_name(), totalInfo.getSmall_all());
+ smallList.add(smallRegionCout);
+ }
+
+ String tm = new SimpleDateFormat("MM月dd日H时").format(new Date());
+ String hour = new SimpleDateFormat("H时").format(new Date());
+
+ if (total <= 0) {
+ return "暂无简报";
+ }
+
+ String resultStr = "今日{},全省共有{}座水库超汛限水位,其中{},均在平稳消落。全省水库持续安全运行。";
+ String dxskStr = "大型水库{}座";
+ String zxskStr = "中型水库{}座";
+ String xxskStr = "小型水库{}座";
+
+ String qzStr = "";
+
+ if (big > 0) {
+ dxskStr = StringUtil.format(dxskStr, big);
+ qzStr += StringUtil.isBlank(qzStr) ? dxskStr : "、" + dxskStr;
+ }
+ if (mid > 0) {
+ zxskStr = StringUtil.format(zxskStr, mid);
+ qzStr += StringUtil.isBlank(qzStr) ? zxskStr : "、" + zxskStr;
+ }
+ if (small > 0) {
+ xxskStr = StringUtil.format(xxskStr, small);
+ qzStr += StringUtil.isBlank(qzStr) ? xxskStr : "、" + xxskStr;
+ }
+
+ resultStr = StringUtil.format(resultStr, hour, total, qzStr);
+
+ return resultStr;
+ }
+
+}
diff --git a/skjcmanager/skjcmanager-service/skjcmanager-sm/src/main/java/cn/gistack/sm/sjztmd/word/util/WordUtil.java b/skjcmanager/skjcmanager-service/skjcmanager-sm/src/main/java/cn/gistack/sm/sjztmd/word/util/WordUtil.java
index c209699..04ab44a 100644
--- a/skjcmanager/skjcmanager-service/skjcmanager-sm/src/main/java/cn/gistack/sm/sjztmd/word/util/WordUtil.java
+++ b/skjcmanager/skjcmanager-service/skjcmanager-sm/src/main/java/cn/gistack/sm/sjztmd/word/util/WordUtil.java
@@ -4,6 +4,7 @@
import cn.gistack.sm.sjztmd.word.vo.*;
import com.deepoove.poi.XWPFTemplate;
import com.deepoove.poi.data.NumbericRenderData;
+import org.springblade.core.tool.utils.StringUtil;
import java.io.*;
import java.util.ArrayList;
@@ -124,6 +125,8 @@
params.put("时间", overWord.getTm());
params.put("全省水库超汛限", overWord.getTotalInfo());
params.put("小型水库详情", overWord.getOverSmallInfo());
+ String dxStr = StringUtil.isNotBlank(overWord.getOverBigInfo()) ? "超汛限的水库的大型水库有:" : "";
+ params.put("超汛限的水库的大型水库有", dxStr);
params.put("大型水库详情", overWord.getOverBigInfo());
params.put("中型水库详情", overWord.getOverMidInfo());
params.put("省直水库详情", overWord.getProvinceInfo());
diff --git a/skjcmanager/skjcmanager-service/skjcmanager-sm/src/main/java/cn/gistack/sm/sjztmd/word/vo/OverWord.java b/skjcmanager/skjcmanager-service/skjcmanager-sm/src/main/java/cn/gistack/sm/sjztmd/word/vo/OverWord.java
index 4224db9..a22c8cc 100644
--- a/skjcmanager/skjcmanager-service/skjcmanager-sm/src/main/java/cn/gistack/sm/sjztmd/word/vo/OverWord.java
+++ b/skjcmanager/skjcmanager-service/skjcmanager-sm/src/main/java/cn/gistack/sm/sjztmd/word/vo/OverWord.java
@@ -208,7 +208,7 @@
Double diffRz = Math.abs(szInfo.getDiff_rz());
String resNm = szInfo.getStcd();
String upOrDown = "";
- if (diffRz>=0){
+ if (szInfo.getDiff_rz()>=0){
upOrDown = "上涨";
}else {
upOrDown = "下降";
diff --git a/skjcmanager/skjcmanager-service/skjcmanager-sm/src/main/java/cn/gistack/sm/sms/feign/DataAbnormalWarnClient.java b/skjcmanager/skjcmanager-service/skjcmanager-sm/src/main/java/cn/gistack/sm/sms/feign/DataAbnormalWarnClient.java
index 88e2b72..7b7bf13 100644
--- a/skjcmanager/skjcmanager-service/skjcmanager-sm/src/main/java/cn/gistack/sm/sms/feign/DataAbnormalWarnClient.java
+++ b/skjcmanager/skjcmanager-service/skjcmanager-sm/src/main/java/cn/gistack/sm/sms/feign/DataAbnormalWarnClient.java
@@ -1,16 +1,33 @@
package cn.gistack.sm.sms.feign;
import cn.com.flaginfo.sdk.cmc.api.sms.send.SMSSendRequest;
+import cn.gistack.common.utils.SpringContextUtil;
import cn.gistack.sm.sjztmd.entity.AttStBase;
import cn.gistack.sm.sjztmd.service.*;
+import cn.gistack.sm.sjztods.constant.ZtApiUrlConstant;
+import cn.gistack.sm.sjztods.constant.ZtConfigConstant;
import cn.gistack.sm.sms.util.SmsUtils;
+import com.alibaba.fastjson.JSON;
+import com.alibaba.fastjson.JSONArray;
+import com.alibaba.fastjson.JSONObject;
+import com.alibaba.fastjson.parser.Feature;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import lombok.AllArgsConstructor;
import lombok.extern.slf4j.Slf4j;
import org.springblade.core.tenant.annotation.NonDS;
import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.http.HttpEntity;
+import org.springframework.http.HttpHeaders;
+import org.springframework.http.HttpMethod;
+import org.springframework.http.ResponseEntity;
+import org.springframework.util.MultiValueMap;
import org.springframework.web.bind.annotation.RestController;
+import org.springframework.web.client.RestTemplate;
import springfox.documentation.annotations.ApiIgnore;
+
+import java.time.LocalDateTime;
+import java.time.format.DateTimeFormatter;
+import java.time.temporal.ChronoUnit;
/**
* @PROJECT_NAME: skjcmanager
@@ -38,6 +55,9 @@
@Autowired
private IAttResFlseLimService attResFlseLimService;
+
+ @Autowired
+ private RestTemplate restTemplate;
@Override
public void sendOperate(String tableName, String phones) {
@@ -68,6 +88,123 @@
}
+ @Override
+ public void sendOperateCZ(String phones, String rate) {
+
+ String url = "/services/1234567890ABCDEFGHIJKLMN/source_data_ssync_staus";
+
+ // 获取当前时间
+ LocalDateTime now = LocalDateTime.now();
+
+ // 减去一个小时
+ LocalDateTime oneHourAgo = now.minusHours(1);
+
+ // 调整为整点时间
+ LocalDateTime oneHourAgoRoundedDown = oneHourAgo.truncatedTo(ChronoUnit.HOURS);
+
+ // 获取整点时间的结束时间(该小时的最后一分钟)
+ LocalDateTime oneHourAgoRoundedDownEnd = oneHourAgoRoundedDown.plusHours(1).minusSeconds(1);
+
+ DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss");
+ String startTime = formatter.format(oneHourAgoRoundedDown);
+ String endTime = formatter.format(oneHourAgoRoundedDownEnd);
+
+ String param = "?start_dt=" + startTime + "&end_dt=" + endTime + "&over_rate=" + rate;
+// String param = "?start_dt=2024-04-30 10:00:00&end_dt=2024-04-30 10:59:59&over_rate=20";
+
+ JSONObject jsonObject = getZtData(param, url);
+ int code = jsonObject.getInteger("code");
+ if (code == 200) {
+ JSONArray jsonArray = jsonObject.getJSONObject("data").getJSONArray("data");
+ String str = "";
+
+ for (int i = 0; i < jsonArray.size(); i++) {
+ JSONObject data = jsonArray.getJSONObject(i);
+ String flag = data.getString("flag");
+ String title = data.getString("title");
+ String tm = data.getString("tm");
+ String rateB = data.getString("rate");
+
+ if ("".equals(str)) {
+ str += tm + flag + title + "数据比昨日少" + rateB;
+ } else {
+ str += ";" + tm + flag + title + "数据比昨日少" + rateB;
+ }
+ }
+
+ if (!str.equals("")) {
+ sendMsgByCZ(phones, str);
+ }
+// else {
+// jsonObject = getZtData(param, url);
+// code = jsonObject.getInteger("code");
+//
+// if (code == 200) {
+// jsonArray = jsonObject.getJSONObject("data").getJSONArray("data");
+// str = "";
+//
+// for (int i = 0; i < jsonArray.size(); i++) {
+// JSONObject data = jsonArray.getJSONObject(i);
+// String flag = data.getString("flag");
+// String title = data.getString("title");
+// String tm = data.getString("tm");
+// String rate = data.getString("rate");
+//
+// str += tm + flag + title + "当前比例为:" + rate + ";";
+// }
+//
+// if (!str.equals("")) {
+// sendMsgByCZ(phones, str);
+// }
+// }
+// }
+
+
+ }
+ }
+
+
+ /**
+ * 调用中台接口查询数据
+ *
+ * @param params
+ * @param url
+ * @return
+ */
+ public JSONObject getZtData(String params, String url) {
+ // 获取环境
+ String activeProfile = SpringContextUtil.getActiveProfile();
+ if (activeProfile.equals("dev")){
+ url = ZtApiUrlConstant.url_prefix_dev + url;
+ }
+ if (activeProfile.equals("prod")){
+ url = ZtApiUrlConstant.url_prefix_prod + url;
+ }
+ if (activeProfile.equals("test")){
+ url = ZtApiUrlConstant.url_prefix_test + url;
+ }
+ //设置请求头
+ HttpHeaders headers = new HttpHeaders();
+ headers.add(ZtConfigConstant.header_key, ZtConfigConstant.header_value);
+ //封装请求头
+ HttpEntity<MultiValueMap<String, Object>> formEntity = new HttpEntity<MultiValueMap<String, Object>>(headers);
+ try {
+ //有请求头,有参数请求
+ ResponseEntity<String> responseEntity =
+ restTemplate.exchange(url + params,
+ HttpMethod.GET,
+ formEntity,
+ String.class);
+ // Feature.IgnoreNotMatch 保留null值的属性
+ JSONObject jsonObject = JSON.parseObject(responseEntity.getBody(), Feature.IgnoreNotMatch);
+ // 返回
+ return jsonObject;
+ } catch (Exception e) {
+ e.printStackTrace();
+ }
+ return null;
+ }
+
private void sendMsg(String tableName, String phones) {
SMSSendRequest request = new SMSSendRequest();
String [] phoness = phones.split(",");
@@ -79,4 +216,15 @@
}
}
+ private void sendMsgByCZ(String phones, String str) {
+ SMSSendRequest request = new SMSSendRequest();
+ String [] phoness = phones.split(",");
+ for (String n: phoness) {
+ request.setUserNumber(n);
+ request.setTemplateId("2431012277510");
+ request.setMessageContent("紧急通知:数据表异常,请立即检查数据源并填充缺失的数据!"+str);
+ SmsUtils.sendMsg(request);
+ }
+ }
+
}
diff --git a/skjcmanager/skjcmanager-service/skjcmanager-sm/src/main/resources/word/doc/overFloodTemplate.docx b/skjcmanager/skjcmanager-service/skjcmanager-sm/src/main/resources/word/doc/overFloodTemplate.docx
index efe3ffe..4df7fb7 100644
--- a/skjcmanager/skjcmanager-service/skjcmanager-sm/src/main/resources/word/doc/overFloodTemplate.docx
+++ b/skjcmanager/skjcmanager-service/skjcmanager-sm/src/main/resources/word/doc/overFloodTemplate.docx
Binary files differ
diff --git a/skjcmanager/skjcmanager-service/skjcmanager-xxljob/pom.xml b/skjcmanager/skjcmanager-service/skjcmanager-xxljob/pom.xml
index eb64a2f..39d2311 100644
--- a/skjcmanager/skjcmanager-service/skjcmanager-xxljob/pom.xml
+++ b/skjcmanager/skjcmanager-service/skjcmanager-xxljob/pom.xml
@@ -63,6 +63,11 @@
<artifactId>skjcmanager-user-api</artifactId>
<version>3.0.1.RELEASE</version>
</dependency>
+ <dependency>
+ <groupId>cn.gistack</groupId>
+ <artifactId>skjcmanager-resource-api</artifactId>
+ <version>3.0.1.RELEASE</version>
+ </dependency>
</dependencies>
<build>
diff --git a/skjcmanager/skjcmanager-service/skjcmanager-xxljob/src/main/java/cn/gistack/job/executor/jobhandler/AlarmDayXxlJob.java b/skjcmanager/skjcmanager-service/skjcmanager-xxljob/src/main/java/cn/gistack/job/executor/jobhandler/AlarmDayXxlJob.java
index ef8f4ea..0a9ef42 100644
--- a/skjcmanager/skjcmanager-service/skjcmanager-xxljob/src/main/java/cn/gistack/job/executor/jobhandler/AlarmDayXxlJob.java
+++ b/skjcmanager/skjcmanager-service/skjcmanager-xxljob/src/main/java/cn/gistack/job/executor/jobhandler/AlarmDayXxlJob.java
@@ -7,6 +7,9 @@
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Component;
+import java.util.concurrent.ExecutorService;
+import java.util.concurrent.Executors;
+
/**
* 告警定时任务执行器
* @author zhongrj
@@ -29,7 +32,12 @@
public ReturnT<String> damSafetySyHandle(String param){
XxlJobLogger.log("开始执行任务...");
// 创建外呼任务
- noticeClient.createAlarmNoticeTaskJobHandler("测压管水位大于校核洪水位","day","damSafetySyHandle");
+ ExecutorService executorService = Executors.newSingleThreadExecutor();
+ executorService.submit(() -> {
+ // 这里是你的异步任务逻辑
+ noticeClient.createAlarmNoticeTaskJobHandler("测压管水位大于校核洪水位","day","damSafetySyHandle");
+ });
+
XxlJobLogger.log("结束自动创建任务...");
// 返回
return ReturnT.SUCCESS;
@@ -45,7 +53,11 @@
public ReturnT<String> damSafetySyNoneHandle(String param){
XxlJobLogger.log("开始执行任务...");
// 创建外呼任务
- noticeClient.createAlarmNoticeTaskJobHandler("渗压监测数据缺失","day","damSafetySyNoneHandle");
+ ExecutorService executorService = Executors.newSingleThreadExecutor();
+ executorService.submit(() -> {
+ // 这里是你的异步任务逻辑
+ noticeClient.createAlarmNoticeTaskJobHandler("渗压监测数据缺失","day","damSafetySyNoneHandle");
+ });
XxlJobLogger.log("结束自动创建任务...");
// 返回
return ReturnT.SUCCESS;
@@ -61,7 +73,12 @@
public ReturnT<String> damSafetySlNoneHandle(String param){
XxlJobLogger.log("开始执行任务...");
// 创建外呼任务
- noticeClient.createAlarmNoticeTaskJobHandler("渗流监测数据缺失","day","damSafetySlNoneHandle");
+ ExecutorService executorService = Executors.newSingleThreadExecutor();
+ executorService.submit(() -> {
+ // 这里是你的异步任务逻辑
+ noticeClient.createAlarmNoticeTaskJobHandler("渗流监测数据缺失","day","damSafetySlNoneHandle");
+ });
+
XxlJobLogger.log("结束自动创建任务...");
// 返回
return ReturnT.SUCCESS;
@@ -77,7 +94,12 @@
public ReturnT<String> damSafetyWyNoneHandle(String param){
XxlJobLogger.log("开始执行任务...");
// 创建外呼任务
- noticeClient.createAlarmNoticeTaskJobHandler("变形监测数据缺失","day","damSafetyWyNoneHandle");
+ ExecutorService executorService = Executors.newSingleThreadExecutor();
+ executorService.submit(() -> {
+ // 这里是你的异步任务逻辑
+ noticeClient.createAlarmNoticeTaskJobHandler("变形监测数据缺失","day","damSafetyWyNoneHandle");
+ });
+
XxlJobLogger.log("结束自动创建任务...");
// 返回
return ReturnT.SUCCESS;
@@ -94,7 +116,12 @@
public ReturnT<String> damSafetySyDataMissingHandle(String param){
XxlJobLogger.log("开始执行任务...");
// 创建外呼任务
- noticeClient.createAlarmNoticeTaskJobHandler("渗压资料缺失","day","damSafetySyDataMissingHandle");
+ ExecutorService executorService = Executors.newSingleThreadExecutor();
+ executorService.submit(() -> {
+ // 这里是你的异步任务逻辑
+ noticeClient.createAlarmNoticeTaskJobHandler("渗压资料缺失","day","damSafetySyDataMissingHandle");
+ });
+
XxlJobLogger.log("结束自动创建任务...");
// 返回
return ReturnT.SUCCESS;
@@ -110,7 +137,12 @@
public ReturnT<String> damSafetyBxDataMissingHandle(String param){
XxlJobLogger.log("开始执行任务...");
// 创建外呼任务
- noticeClient.createAlarmNoticeTaskJobHandler("变形资料缺失","day","damSafetyBxDataMissingHandle");
+ ExecutorService executorService = Executors.newSingleThreadExecutor();
+ executorService.submit(() -> {
+ // 这里是你的异步任务逻辑
+ noticeClient.createAlarmNoticeTaskJobHandler("变形资料缺失","day","damSafetyBxDataMissingHandle");
+ });
+
XxlJobLogger.log("结束自动创建任务...");
// 返回
return ReturnT.SUCCESS;
@@ -127,7 +159,12 @@
public ReturnT<String> damSafetySyLessThenPipeHandle(String param){
XxlJobLogger.log("开始执行任务...");
// 创建外呼任务
- noticeClient.createAlarmNoticeTaskJobHandler("水位低于管底高程","day","damSafetySyLessThenPipeHandle");
+ ExecutorService executorService = Executors.newSingleThreadExecutor();
+ executorService.submit(() -> {
+ // 这里是你的异步任务逻辑
+ noticeClient.createAlarmNoticeTaskJobHandler("水位低于管底高程","day","damSafetySyLessThenPipeHandle");
+ });
+
XxlJobLogger.log("结束自动创建任务...");
// 返回
return ReturnT.SUCCESS;
@@ -143,7 +180,12 @@
public ReturnT<String> damSafetySyHigherThenNozzleHandle(String param){
XxlJobLogger.log("开始执行任务...");
// 创建外呼任务
- noticeClient.createAlarmNoticeTaskJobHandler("水位大于管口高程","day","damSafetySyHigherThenNozzleHandle");
+ ExecutorService executorService = Executors.newSingleThreadExecutor();
+ executorService.submit(() -> {
+ // 这里是你的异步任务逻辑
+ noticeClient.createAlarmNoticeTaskJobHandler("水位大于管口高程","day","damSafetySyHigherThenNozzleHandle");
+ });
+
XxlJobLogger.log("结束自动创建任务...");
// 返回
return ReturnT.SUCCESS;
@@ -159,7 +201,12 @@
public ReturnT<String> damSafetySyHigherThenBdElevationHandle(String param){
XxlJobLogger.log("开始执行任务...");
// 创建外呼任务
- noticeClient.createAlarmNoticeTaskJobHandler("水位大于坝顶高程","day","damSafetySyHigherThenBdElevationHandle");
+ ExecutorService executorService = Executors.newSingleThreadExecutor();
+ executorService.submit(() -> {
+ // 这里是你的异步任务逻辑
+ noticeClient.createAlarmNoticeTaskJobHandler("水位大于坝顶高程","day","damSafetySyHigherThenBdElevationHandle");
+ });
+
XxlJobLogger.log("结束自动创建任务...");
// 返回
return ReturnT.SUCCESS;
@@ -175,7 +222,12 @@
public ReturnT<String> damSafetySyHigherThenWaterLevelHandle(String param){
XxlJobLogger.log("开始执行任务...");
// 创建外呼任务
- noticeClient.createAlarmNoticeTaskJobHandler("水位大于库水位","day","damSafetySyHigherThenWaterLevelHandle");
+ ExecutorService executorService = Executors.newSingleThreadExecutor();
+ executorService.submit(() -> {
+ // 这里是你的异步任务逻辑
+ noticeClient.createAlarmNoticeTaskJobHandler("水位大于库水位","day","damSafetySyHigherThenWaterLevelHandle");
+ });
+
XxlJobLogger.log("结束自动创建任务...");
// 返回
return ReturnT.SUCCESS;
@@ -192,7 +244,12 @@
public ReturnT<String> damSafetySyYellowChangeHandle(String param){
XxlJobLogger.log("开始执行任务...");
// 创建外呼任务
- noticeClient.createAlarmNoticeTaskJobHandler("水位变幅黄色告警","day","damSafetySyYellowChangeHandle");
+ ExecutorService executorService = Executors.newSingleThreadExecutor();
+ executorService.submit(() -> {
+ // 这里是你的异步任务逻辑
+ noticeClient.createAlarmNoticeTaskJobHandler("水位变幅黄色告警","day","damSafetySyYellowChangeHandle");
+ });
+
XxlJobLogger.log("结束自动创建任务...");
// 返回
return ReturnT.SUCCESS;
@@ -208,7 +265,12 @@
public ReturnT<String> damSafetySyOrangeChangeHandle(String param){
XxlJobLogger.log("开始执行任务...");
// 创建外呼任务
- noticeClient.createAlarmNoticeTaskJobHandler("水位变幅橙色告警","day","damSafetySyOrangeChangeHandle");
+ ExecutorService executorService = Executors.newSingleThreadExecutor();
+ executorService.submit(() -> {
+ // 这里是你的异步任务逻辑
+ noticeClient.createAlarmNoticeTaskJobHandler("水位变幅橙色告警","day","damSafetySyOrangeChangeHandle");
+ });
+
XxlJobLogger.log("结束自动创建任务...");
// 返回
return ReturnT.SUCCESS;
@@ -224,7 +286,12 @@
public ReturnT<String> damSafetyWyOver2Less5Handle(String param){
XxlJobLogger.log("开始执行任务...");
// 创建外呼任务
- noticeClient.createAlarmNoticeTaskJobHandler("变形值大于2cm小于5cm","day","damSafetyWyOver2Less5Handle");
+ ExecutorService executorService = Executors.newSingleThreadExecutor();
+ executorService.submit(() -> {
+ // 这里是你的异步任务逻辑
+ noticeClient.createAlarmNoticeTaskJobHandler("变形值大于2cm小于5cm","day","damSafetyWyOver2Less5Handle");
+ });
+
XxlJobLogger.log("结束自动创建任务...");
// 返回
return ReturnT.SUCCESS;
@@ -241,7 +308,12 @@
public ReturnT<String> damSafetyWyOver5Less10Handle(String param){
XxlJobLogger.log("开始执行任务...");
// 创建外呼任务
- noticeClient.createAlarmNoticeTaskJobHandler("变形值大于5cm小于10cm","day","damSafetyWyOver5Less10Handle");
+ ExecutorService executorService = Executors.newSingleThreadExecutor();
+ executorService.submit(() -> {
+ // 这里是你的异步任务逻辑
+ noticeClient.createAlarmNoticeTaskJobHandler("变形值大于5cm小于10cm","day","damSafetyWyOver5Less10Handle");
+ });
+
XxlJobLogger.log("结束自动创建任务...");
// 返回
return ReturnT.SUCCESS;
@@ -257,7 +329,12 @@
public ReturnT<String> damSafetySlOver5Less8Handle(String param){
XxlJobLogger.log("开始执行任务...");
// 创建外呼任务
- noticeClient.createAlarmNoticeTaskJobHandler("渗流量一日大于5L小于8L连续3日增加","day","damSafetySlOver5Less8Handle");
+ ExecutorService executorService = Executors.newSingleThreadExecutor();
+ executorService.submit(() -> {
+ // 这里是你的异步任务逻辑
+ noticeClient.createAlarmNoticeTaskJobHandler("渗流量一日大于5L小于8L连续3日增加","day","damSafetySlOver5Less8Handle");
+ });
+
XxlJobLogger.log("结束自动创建任务...");
// 返回
return ReturnT.SUCCESS;
@@ -273,7 +350,12 @@
public ReturnT<String> damSafetySlOver8Less10Handle(String param){
XxlJobLogger.log("开始执行任务...");
// 创建外呼任务
- noticeClient.createAlarmNoticeTaskJobHandler("渗流量一日大于8L小于10L连续3日增加","day","damSafetySlOver8Less10Handle");
+ ExecutorService executorService = Executors.newSingleThreadExecutor();
+ executorService.submit(() -> {
+ // 这里是你的异步任务逻辑
+ noticeClient.createAlarmNoticeTaskJobHandler("渗流量一日大于8L小于10L连续3日增加","day","damSafetySlOver8Less10Handle");
+ });
+
XxlJobLogger.log("结束自动创建任务...");
// 返回
return ReturnT.SUCCESS;
@@ -289,7 +371,12 @@
public ReturnT<String> videoOfflineHandle(String param){
XxlJobLogger.log("开始执行任务...");
// 创建外呼任务
- noticeClient.createAlarmNoticeTaskJobHandler("视频信息接收不到","day","videoOfflineHandle");
+ ExecutorService executorService = Executors.newSingleThreadExecutor();
+ executorService.submit(() -> {
+ // 这里是你的异步任务逻辑
+ noticeClient.createAlarmNoticeTaskJobHandler("视频信息接收不到","day","videoOfflineHandle");
+ });
+
XxlJobLogger.log("结束自动创建任务...");
// 返回
return ReturnT.SUCCESS;
diff --git a/skjcmanager/skjcmanager-service/skjcmanager-xxljob/src/main/java/cn/gistack/job/executor/jobhandler/DayReportFloodJob.java b/skjcmanager/skjcmanager-service/skjcmanager-xxljob/src/main/java/cn/gistack/job/executor/jobhandler/DayReportFloodJob.java
new file mode 100644
index 0000000..5e5bc75
--- /dev/null
+++ b/skjcmanager/skjcmanager-service/skjcmanager-xxljob/src/main/java/cn/gistack/job/executor/jobhandler/DayReportFloodJob.java
@@ -0,0 +1,85 @@
+package cn.gistack.job.executor.jobhandler;
+
+import cn.gistack.resource.feign.IOssClient;
+import cn.gistack.sm.dayReportFlood.entity.DayReportFlood;
+import cn.gistack.sm.dayReportFlood.feign.IDayReportFloodClient;
+import cn.gistack.sm.sjztmd.feign.ISjztMdClient;
+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 org.springblade.core.tool.utils.DateUtil;
+import org.springblade.core.tool.utils.StringUtil;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.core.io.InputStreamResource;
+import org.springframework.stereotype.Component;
+
+import java.io.InputStream;
+import java.net.URLEncoder;
+import java.text.SimpleDateFormat;
+import java.util.Date;
+
+/**
+ * 每日报汛定时器
+ */
+@Component
+public class DayReportFloodJob {
+ @Autowired
+ private ISjztMdClient sjztMdClient;
+
+ @Autowired
+ private IOssClient ossClient;
+
+ @Autowired
+ private IDayReportFloodClient dayReportFloodClient;
+
+ /**
+ * 南科院Arima请求预测
+ *
+ * @param param
+ * @return
+ * @throws Exception
+ */
+ @XxlJob("generateDayReportFloodHandle")
+ public ReturnT<String> predictNkyDataJobHandler(String param) {
+ XxlJobLogger.log("任务开始");
+ XxlJobLogger.log("定时器执行时间:" + new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(DateUtil.now()));
+ XxlJobLogger.log("参数:" + param);
+ JSONObject jsonParam = JSON.parseObject(param);
+ String isShow = "";
+ if (jsonParam != null) {
+ isShow = jsonParam.getString("isShow");
+ } else {
+ isShow = "";
+ }
+
+
+ try {
+ //获取流
+ String filePath= sjztMdClient.generateDayReportFlood(isShow);
+ String time = new SimpleDateFormat("yyyy-MM-dd").format(new Date());
+
+ XxlJobLogger.log("地址:" + filePath);
+ //保存进库中
+ DayReportFlood saveEntity = new DayReportFlood();
+ saveEntity.setTitle(time + "全省水库防汛情况");
+ saveEntity.setContent(time + "全省水库防汛情况");
+ saveEntity.setSource("系统生成");
+ saveEntity.setUrls(filePath);
+
+ boolean save = dayReportFloodClient.save(saveEntity);
+ if (save) {
+ XxlJobLogger.log("保存成功");
+ } else {
+ XxlJobLogger.log("保存失败");
+ }
+
+ } catch (Exception e) {
+ e.printStackTrace();
+ }
+ XxlJobLogger.log("定时器执行结束时间:" + new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(DateUtil.now()));
+ XxlJobLogger.log("结束任务...");
+ return ReturnT.SUCCESS;
+ }
+}
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;
+ }
+
+
+
}
diff --git a/skjcmanager/skjcmanager-service/skjcmanager-xxljob/src/main/java/cn/gistack/job/executor/jobhandler/SendSmsXxlJob.java b/skjcmanager/skjcmanager-service/skjcmanager-xxljob/src/main/java/cn/gistack/job/executor/jobhandler/SendSmsXxlJob.java
index 0e955fc..a5806ba 100644
--- a/skjcmanager/skjcmanager-service/skjcmanager-xxljob/src/main/java/cn/gistack/job/executor/jobhandler/SendSmsXxlJob.java
+++ b/skjcmanager/skjcmanager-service/skjcmanager-xxljob/src/main/java/cn/gistack/job/executor/jobhandler/SendSmsXxlJob.java
@@ -64,4 +64,15 @@
return ReturnT.SUCCESS;
}
+ @XxlJob("sendOperateCZ")
+ public ReturnT<String> sendOperateCZ(String param) {
+ XxlJobLogger.log("开始执行任务...");
+ JSONObject jsonParam = JSON.parseObject(param);
+ String phones = jsonParam.getString("phones");
+ String rate = jsonParam.getString("rate");
+ dataAbnormalWarnClient.sendOperateCZ(phones, rate);
+ XxlJobLogger.log("结束执行任务...");
+ return ReturnT.SUCCESS;
+ }
+
}
diff --git a/skjcmanager/skjcmanager-service/skjcmanager-xxljob/src/main/java/cn/gistack/job/executor/jobhandler/UserXxlJob.java b/skjcmanager/skjcmanager-service/skjcmanager-xxljob/src/main/java/cn/gistack/job/executor/jobhandler/UserXxlJob.java
index f280f0f..7589e14 100644
--- a/skjcmanager/skjcmanager-service/skjcmanager-xxljob/src/main/java/cn/gistack/job/executor/jobhandler/UserXxlJob.java
+++ b/skjcmanager/skjcmanager-service/skjcmanager-xxljob/src/main/java/cn/gistack/job/executor/jobhandler/UserXxlJob.java
@@ -32,8 +32,8 @@
XxlJobLogger.log("开始用户同步任务...");
int retAddInt = attResManagePersonClient.syncharonization_add_user();
XxlJobLogger.log("新增用户:<span style='color:red'>" + retAddInt + "</span>");
- int retupInt = attResManagePersonClient.syncharonization_update_user();
- XxlJobLogger.log("修改用户:<span style='color:red'>" + retupInt + "</span>");
+// int retupInt = attResManagePersonClient.syncharonization_update_user();
+// XxlJobLogger.log("修改用户:<span style='color:red'>" + retupInt + "</span>");
XxlJobLogger.log("结束用户同步任务...");
return ReturnT.SUCCESS;
}
--
Gitblit v1.9.3