From 1dd5d8f8a616f5cf3caa7828d46989c7d3dcafc4 Mon Sep 17 00:00:00 2001
From: xieb <vip_xiaobin810@163.com>
Date: Thu, 19 Oct 2023 15:01:43 +0800
Subject: [PATCH] Merge remote-tracking branch 'origin/jtdev' into jtdev
---
skjcmanager/skjcmanager-service-api/skjcmanager-nky-api/src/main/java/cn/gistack/nky/vo/AlarmGetVO.java | 2
skjcmanager/skjcmanager-service/skjcmanager-sm/src/main/java/cn/gistack/sm/point/vo/PointVO.java | 8
skjcmanager/skjcmanager-service/skjcmanager-sm/src/main/java/cn/gistack/sm/waterKnowledge/controller/WaterKnowledgeController.java | 117 +
skjcmanager/skjcmanager-service-api/skjcmanager-sm-api/src/main/java/cn/gistack/sm/patrol/feign/PatrolTaskClientFallback.java | 5
skjcmanager/skjcmanager-service/skjcmanager-alerts/src/main/java/cn/gistack/alerts/notice/strategy/NoticeStrategyContext.java | 1
skjcmanager/skjcmanager-service/skjcmanager-alerts/src/main/java/cn/gistack/alerts/alarmRule/controller/AlarmRecordController.java | 26
skjcmanager/skjcmanager-ops-api/skjcmanager-resource-api/src/main/java/cn/gistack/resource/entity/TextualResearchAttach.java | 65
skjcmanager/skjcmanager-service/skjcmanager-alerts/src/main/java/cn/gistack/alerts/notice/service/impl/AsyncNoticeHandle.java | 43
skjcmanager/skjcmanager-service/skjcmanager-sm/src/main/java/cn/gistack/sm/waterKnowledge/mapper/WaterKnowledgeMapper.java | 26
skjcmanager/skjcmanager-service/skjcmanager-sm/src/main/java/cn/gistack/sm/waterKnowledge/entity/WaterKnowledge.java | 84 +
skjcmanager/skjcmanager-common/src/main/java/cn/gistack/common/utils/Base64Utils.java | 30
skjcmanager/skjcmanager-ops/skjcmanager-resource/src/main/java/cn/gistack/resource/controller/TextualResearchAttachController.java | 115 +
skjcmanager/skjcmanager-service/skjcmanager-sm/src/main/java/cn/gistack/sm/sjztmd/service/impl/AttAdBaseServiceImpl.java | 4
skjcmanager/skjcmanager-service/skjcmanager-alerts/src/main/java/cn/gistack/alerts/alarmRule/service/impl/AlarmRecordServiceImpl.java | 82 +
skjcmanager/skjcmanager-service/skjcmanager-sm/src/main/java/cn/gistack/sm/intelligentCall/mapper/CallTaskMapper.java | 1
skjcmanager/skjcmanager-service/skjcmanager-sm/src/main/java/cn/gistack/sm/sjztods/mapper/ZdxSkZhMapper.xml | 6
skjcmanager/skjcmanager-service/skjcmanager-sm/src/main/java/cn/gistack/sm/sjztmd/service/IAttAdBaseService.java | 2
skjcmanager/skjcmanager-service-api/skjcmanager-alerts-api/src/main/java/cn/gistack/alerts/alarmRule/vo/StatisticAlarmRecord.java | 24
skjcmanager/skjcmanager-service/skjcmanager-alerts/src/main/java/cn/gistack/alerts/alarmRule/mapper/AlarmRuleMapper.xml | 19
skjcmanager/skjcmanager-service/skjcmanager-sm/src/main/java/cn/gistack/sm/sjztods/service/ISkxsQkTjService.java | 52
skjcmanager/skjcmanager-service-api/skjcmanager-user-api/src/main/java/cn/gistack/system/user/feign/IUserClient.java | 8
skjcmanager/skjcmanager-service/skjcmanager-system/src/main/java/cn/gistack/system/mapper/MenuMapper.xml | 4
skjcmanager/skjcmanager-service/skjcmanager-alerts/src/main/java/cn/gistack/alerts/sms/controller/SmsController.java | 41
skjcmanager/skjcmanager-service/skjcmanager-sm/src/main/java/cn/gistack/sm/point/mapper/PointMapper.xml | 28
skjcmanager/skjcmanager-service/skjcmanager-sm/src/main/java/cn/gistack/sm/sjztmd/mapper/AttResBaseMapper.xml | 3
skjcmanager/skjcmanager-service/skjcmanager-sm/src/main/java/cn/gistack/sm/message/mapper/MessageRecordMapper.xml | 6
skjcmanager/skjcmanager-ops/skjcmanager-resource/src/main/java/cn/gistack/resource/mapper/TextualResearchAttachMapper.xml | 17
skjcmanager/skjcmanager-service-api/skjcmanager-sm-api/src/main/java/cn/gistack/sm/intelligentCall/excel/CallExcel.java | 21
skjcmanager/skjcmanager-common/src/main/java/cn/gistack/common/constant/LauncherConstant.java | 5
skjcmanager/skjcmanager-service/skjcmanager-sm/src/main/java/cn/gistack/sm/intelligentCall/controller/CallController.java | 39
skjcmanager/skjcmanager-service/skjcmanager-sm/src/main/java/cn/gistack/sm/sjztods/service/IZdxSkZhService.java | 19
skjcmanager/skjcmanager-service/skjcmanager-sm/src/main/resources/application-test.yml | 47
skjcmanager/skjcmanager-ops-api/skjcmanager-resource-api/src/main/java/cn/gistack/resource/vo/TextualResearchAttachVO.java | 13
skjcmanager/skjcmanager-service/skjcmanager-sm/src/main/java/cn/gistack/sm/hk/constant/HkConstant.java | 5
skjcmanager/skjcmanager-service/skjcmanager-sm/src/main/java/cn/gistack/sm/point/service/PointService.java | 30
skjcmanager/skjcmanager-service/skjcmanager-sm/src/main/java/cn/gistack/sm/waterKnowledge/mapper/WaterKnowledgeMapper.xml | 14
skjcmanager/skjcmanager-service-api/skjcmanager-sm-api/src/main/java/cn/gistack/sm/intelligentCall/vo/CallTaskStatistic.java | 15
skjcmanager/skjcmanager-service/skjcmanager-alerts/src/main/java/cn/gistack/alerts/push/vo/PushVO.java | 1
skjcmanager/skjcmanager-service/skjcmanager-sm/src/main/java/cn/gistack/sm/waterKnowledge/vo/WaterKnowledgeVO.java | 8
skjcmanager/skjcmanager-service/skjcmanager-xxljob/src/main/resources/application-test.yml | 42
skjcmanager/skjcmanager-service/skjcmanager-sm/src/main/java/cn/gistack/sm/sjztods/service/impl/ZdxSkZhServiceImpl.java | 30
skjcmanager/skjcmanager-service/skjcmanager-xxljob/src/main/java/cn/gistack/job/executor/jobhandler/PatrolXxlJob.java | 22
skjcmanager/skjcmanager-service/skjcmanager-sm/src/main/java/cn/gistack/sm/point/mapper/PointMapper.java | 32
skjcmanager/skjcmanager-service/skjcmanager-sm/src/main/java/cn/gistack/sm/intelligentCall/mapper/CallTaskMapper.xml | 174 +-
skjcmanager/skjcmanager-service/skjcmanager-sm/src/main/java/cn/gistack/sm/materials/vo/MaterialsManageVO.java | 10
skjcmanager/skjcmanager-service/skjcmanager-alerts/src/main/java/cn/gistack/alerts/sms/service/SmsService.java | 11
skjcmanager/skjcmanager-service-api/skjcmanager-sm-api/pom.xml | 5
skjcmanager/skjcmanager-service/skjcmanager-user/pom.xml | 5
skjcmanager/skjcmanager-service/skjcmanager-alerts/src/main/java/cn/gistack/alerts/push/service/impl/PushServiceImpl.java | 81
skjcmanager/skjcmanager-service/skjcmanager-alerts/src/main/java/cn/gistack/alerts/alarmRule/mapper/AlarmRuleMapper.java | 15
skjcmanager/skjcmanager-service/skjcmanager-sm/src/main/java/cn/gistack/sm/point/service/impl/PointServiceImpl.java | 55
skjcmanager/skjcmanager-service/skjcmanager-xxljob/pom.xml | 5
skjcmanager/skjcmanager-service/skjcmanager-sm/src/main/java/cn/gistack/sm/materials/mapper/MaterialsManageMapper.xml | 21
skjcmanager/skjcmanager-service/skjcmanager-alerts/src/main/java/cn/gistack/alerts/notice/service/impl/NoticeStrategyImpl.java | 39
skjcmanager/skjcmanager-service/skjcmanager-sm/src/main/java/cn/gistack/sm/hk/vo/VideoVO.java | 24
skjcmanager/skjcmanager-service/skjcmanager-sm/src/main/java/cn/gistack/sm/hk/vo/HkVO.java | 10
skjcmanager/skjcmanager-service/skjcmanager-system/src/main/java/cn/gistack/system/service/impl/MenuServiceImpl.java | 1
skjcmanager/skjcmanager-ops/skjcmanager-resource/src/main/java/cn/gistack/resource/service/impl/TextualResearchAttachServiceImpl.java | 35
skjcmanager/skjcmanager-service-api/skjcmanager-alerts-api/src/main/java/cn/gistack/alerts/sms/entity/SmsTemplate.java | 2
skjcmanager/skjcmanager-service/skjcmanager-sm/src/main/java/cn/gistack/sm/sjztmd/entity/TbAttResWaterDelivery.java | 14
skjcmanager/skjcmanager-service/skjcmanager-sm/src/main/java/cn/gistack/sm/sjztods/mapper/SkxsQkTjMapper.java | 44
skjcmanager/skjcmanager-service/skjcmanager-alerts/src/main/java/cn/gistack/alerts/alarmRule/service/AlarmRuleService.java | 14
skjcmanager/skjcmanager-auth/pom.xml | 5
skjcmanager/skjcmanager-service/skjcmanager-alerts/src/main/java/cn/gistack/alerts/notice/constant/ZtApiDataColumnConstant.java | 13
skjcmanager/skjcmanager-service-api/skjcmanager-sm-api/src/main/java/cn/gistack/sm/intelligentCall/vo/CallTaskResultVO.java | 5
skjcmanager/skjcmanager-service/skjcmanager-alerts/src/main/java/cn/gistack/alerts/sms/mapper/SmsTemplateMapper.xml | 3
skjcmanager/skjcmanager-service/skjcmanager-sm/src/main/java/cn/gistack/sm/sjztmd/entity/TbFileStorageLocation.java | 49
skjcmanager/skjcmanager-service/skjcmanager-nky/src/main/java/cn/gistack/nky/mapper/AlarmGetMapper.xml | 20
skjcmanager/skjcmanager-service/skjcmanager-sm/src/main/java/cn/gistack/sm/intelligentCall/service/CallService.java | 9
skjcmanager/skjcmanager-service/skjcmanager-pwd/src/main/resources/application-test.yml | 36
skjcmanager/skjcmanager-service/skjcmanager-alerts/src/main/java/cn/gistack/alerts/sms/service/impl/SmsServiceImpl.java | 193 ++
skjcmanager/skjcmanager-service/skjcmanager-nky/src/main/resources/application-test.yml | 39
skjcmanager/skjcmanager-service/skjcmanager-sm/src/main/java/cn/gistack/sm/hk/controller/HkController.java | 31
skjcmanager/skjcmanager-service/skjcmanager-sm/src/main/java/cn/gistack/sm/sjztmd/mapper/AttAdBaseMapper.java | 5
skjcmanager/skjcmanager-service/skjcmanager-sm/src/main/java/cn/gistack/sm/sjztods/vo/SkxsQkTjVO.java | 43
skjcmanager/skjcmanager-service/skjcmanager-user/src/main/java/cn/gistack/system/user/feign/UserClient.java | 16
skjcmanager/skjcmanager-service/skjcmanager-sm/src/main/java/cn/gistack/sm/sjztmd/service/impl/AttResManagePersonServiceImpl.java | 18
skjcmanager/skjcmanager-service-api/skjcmanager-alerts-api/src/main/java/cn/gistack/alerts/alarmRule/vo/AlarmRecordVO.java | 40
skjcmanager/skjcmanager-service/skjcmanager-alerts/src/main/java/cn/gistack/alerts/sms/service/impl/SmsResultServiceImpl.java | 4
skjcmanager/skjcmanager-service/skjcmanager-alerts/src/main/java/cn/gistack/alerts/notice/constant/ZtApiUrlConstant.java | 10
skjcmanager/skjcmanager-service/skjcmanager-alerts/src/main/java/cn/gistack/alerts/sms/mapper/SmsResultMapper.xml | 12
skjcmanager/skjcmanager-service/skjcmanager-sm/src/main/java/cn/gistack/sm/jcsb/mapper/DangerReportMapper.xml | 2
skjcmanager/skjcmanager-service-api/skjcmanager-user-api/src/main/java/cn/gistack/system/user/entity/User.java | 5
skjcmanager/skjcmanager-service/skjcmanager-alerts/src/main/java/cn/gistack/alerts/alarmRule/mapper/AlarmRecordMapper.java | 32
skjcmanager/skjcmanager-service/skjcmanager-sm/src/main/java/cn/gistack/sm/sjztods/mapper/SkxsQkTjMapper.xml | 82 +
skjcmanager/skjcmanager-service/skjcmanager-sm/src/main/java/cn/gistack/sm/waterKnowledge/service/WaterKnowledgeService.java | 23
skjcmanager/skjcmanager-ops/skjcmanager-resource/src/main/java/cn/gistack/resource/endpoint/OssEndpoint.java | 41
skjcmanager/skjcmanager-ops/skjcmanager-resource/src/main/java/cn/gistack/resource/mapper/TextualResearchAttachMapper.java | 27
skjcmanager/skjcmanager-service/skjcmanager-sm/src/main/java/cn/gistack/sm/point/entity/Point.java | 77
skjcmanager/skjcmanager-service/skjcmanager-sm/src/main/java/cn/gistack/sm/sjztmd/service/IAttResManagePersonService.java | 16
skjcmanager/skjcmanager-service/skjcmanager-sm/src/main/java/cn/gistack/sm/sjztods/excel/SkxsQkTjExcel.java | 188 ++
skjcmanager/skjcmanager-auth/src/main/java/cn/gistack/auth/service/BladeUserDetailsServiceImpl.java | 28
skjcmanager/skjcmanager-service/skjcmanager-xxljob/src/main/java/cn/gistack/job/executor/jobhandler/UserXxlJob.java | 18
skjcmanager/skjcmanager-service/skjcmanager-sm/src/main/java/cn/gistack/sm/damSecurity/mapper/DamSecurityMapper.xml | 2
skjcmanager/skjcmanager-service/skjcmanager-sm/src/main/java/cn/gistack/sm/sjztmd/entity/TbAttResRsbNorspi.java | 7
skjcmanager/skjcmanager-service/skjcmanager-sm/src/main/java/cn/gistack/sm/sjztmd/entity/TbAttResRsbSpillway.java | 7
skjcmanager/skjcmanager-service/skjcmanager-sm/src/main/java/cn/gistack/sm/sjztods/controller/SkxsQkTjController.java | 99 +
skjcmanager/skjcmanager-service-api/skjcmanager-sm-api/src/main/java/cn/gistack/sm/patrol/feign/PatrolTaskClient.java | 16
skjcmanager/skjcmanager-service/skjcmanager-sm/src/main/java/cn/gistack/sm/jcsb/service/impl/DangerReportServiceImpl.java | 1
skjcmanager/skjcmanager-service/skjcmanager-user/src/main/java/cn/gistack/system/user/service/impl/UserServiceImpl.java | 53
skjcmanager/skjcmanager-service/skjcmanager-sm/src/main/java/cn/gistack/sm/waterKnowledge/service/impl/WaterKnowledgeServiceImpl.java | 30
skjcmanager/skjcmanager-service-api/skjcmanager-alerts-api/src/main/java/cn/gistack/alerts/sms/vo/SmsResultVO.java | 5
skjcmanager/skjcmanager-service/skjcmanager-alerts/src/main/resources/application-test.yml | 54
skjcmanager/skjcmanager-service/skjcmanager-sm/src/main/java/cn/gistack/sm/point/controller/PointController.java | 129 +
skjcmanager/skjcmanager-service/skjcmanager-sm/src/main/java/cn/gistack/sm/sjztods/entity/XsfsQktj.java | 241 ++
skjcmanager/skjcmanager-service/skjcmanager-sm/src/main/java/cn/gistack/sm/sjztods/excel/SkxsQkTjImport.java | 24
skjcmanager/skjcmanager-service/skjcmanager-sm/src/main/java/cn/gistack/sm/damSecurity/vo/DamStationStatistics.java | 6
skjcmanager/skjcmanager-service/skjcmanager-alerts/src/main/java/cn/gistack/alerts/sms/excel/SendSmsExcel.java | 22
skjcmanager/skjcmanager-service-api/skjcmanager-user-api/src/main/java/cn/gistack/system/user/supo/UserSUPO.java | 22
skjcmanager/skjcmanager-service/skjcmanager-sm/src/main/java/cn/gistack/sm/materials/vo/RescueTeamManageVO.java | 10
skjcmanager/skjcmanager-auth/src/main/resources/application-test.yml | 14
skjcmanager/skjcmanager-service/skjcmanager-sm/src/main/java/cn/gistack/sm/sjztmd/dto/AttResBaseUserDTO.java | 19
skjcmanager/skjcmanager-service/skjcmanager-sm/src/main/java/cn/gistack/sm/sjztmd/mapper/AttResManagePersonMapper.java | 15
skjcmanager/skjcmanager-service/skjcmanager-sm/src/main/java/cn/gistack/sm/sjztods/service/impl/SkxsQkTjServiceImpl.java | 129 +
skjcmanager/skjcmanager-service-api/skjcmanager-sm-api/src/main/java/cn/gistack/sm/intelligentCall/listener/ExcelListener.java | 55
skjcmanager/skjcmanager-service/skjcmanager-sm/src/main/java/cn/gistack/sm/intelligentCall/service/impl/CallServiceImpl.java | 48
skjcmanager/skjcmanager-service/skjcmanager-alerts/src/main/java/cn/gistack/alerts/alarmRule/service/impl/AlarmRuleServiceImpl.java | 20
skjcmanager/skjcmanager-service/skjcmanager-xxljob/src/main/java/cn/gistack/job/executor/jobhandler/AlarmXxlJob.java | 16
skjcmanager/skjcmanager-service/skjcmanager-sm/src/main/java/cn/gistack/sm/sjztods/entity/ZdxSkZh.java | 207 ++
skjcmanager/skjcmanager-service/skjcmanager-alerts/src/main/java/cn/gistack/alerts/alarmRule/service/AlarmRecordService.java | 14
skjcmanager/skjcmanager-service/skjcmanager-alerts/src/main/java/cn/gistack/alerts/alarmRule/controller/AlarmRuleController.java | 22
skjcmanager/skjcmanager-service/skjcmanager-sm/src/main/java/cn/gistack/sm/sjztods/mapper/ZdxSkZhMapper.java | 16
skjcmanager/skjcmanager-ops/skjcmanager-resource/src/main/java/cn/gistack/resource/service/TextualResearchAttachService.java | 23
skjcmanager/skjcmanager-service/skjcmanager-sm/src/main/java/cn/gistack/sm/sjztmd/mapper/AttResManagePersonMapper.xml | 51
skjcmanager/skjcmanager-service/skjcmanager-alerts/src/main/java/cn/gistack/alerts/notice/service/impl/NoticeHandle.java | 21
skjcmanager/skjcmanager-service/skjcmanager-sm/src/main/java/cn/gistack/sm/sjztods/entity/SkxsQkTj.java | 228 ++
skjcmanager/skjcmanager-service/skjcmanager-sm/src/main/java/cn/gistack/sm/sjztmd/feign/AttResManagePersonClient.java | 2
skjcmanager/skjcmanager-service/skjcmanager-sm/src/main/java/cn/gistack/sm/sjztods/controller/ZdxSkZhController.java | 44
skjcmanager/skjcmanager-service/skjcmanager-alerts/src/main/java/cn/gistack/alerts/push/controller/PushController.java | 13
skjcmanager/skjcmanager-service/skjcmanager-alerts/src/main/java/cn/gistack/alerts/alarmRule/mapper/AlarmRecordMapper.xml | 125 +
skjcmanager/skjcmanager-service/skjcmanager-alerts/src/main/java/cn/gistack/alerts/push/service/IPushService.java | 2
skjcmanager/skjcmanager-service/skjcmanager-sm/src/main/java/cn/gistack/sm/sjztmd/entity/TbAttResInformationProject.java | 7
skjcmanager/skjcmanager-service/skjcmanager-sm/src/main/java/cn/gistack/sm/materials/mapper/RescueTeamManageMapper.xml | 19
skjcmanager/skjcmanager-service/skjcmanager-sm/src/main/java/cn/gistack/sm/patrol/feign/PatrolTaskImplClient.java | 135 +
skjcmanager/skjcmanager-service/skjcmanager-sm/src/main/resources/application-prod.yml | 17
135 files changed, 4,593 insertions(+), 214 deletions(-)
diff --git a/skjcmanager/skjcmanager-auth/pom.xml b/skjcmanager/skjcmanager-auth/pom.xml
index de53371..357034d 100644
--- a/skjcmanager/skjcmanager-auth/pom.xml
+++ b/skjcmanager/skjcmanager-auth/pom.xml
@@ -69,6 +69,11 @@
<artifactId>skjcmanager-sm-api</artifactId>
<version>3.0.1.RELEASE</version>
</dependency>
+ <dependency>
+ <groupId>cn.gistack</groupId>
+ <artifactId>skjcmanager-pwd-api</artifactId>
+ <version>3.0.1.RELEASE</version>
+ </dependency>
<!--安全模块-->
<dependency>
<groupId>org.springframework.boot</groupId>
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 5e5fbe9..c8927ea 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
@@ -17,11 +17,17 @@
package cn.gistack.auth.service;
import cn.gistack.auth.constant.AuthConstant;
+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.sm.collect.feign.ICollectClient;
import cn.gistack.sm.collect.feign.ICollectClientFallback;
import cn.gistack.sm.sjztmd.entity.AttResManagePerson;
import cn.gistack.sm.sjztmd.feign.IAttResManagePersonClient;
import cn.gistack.system.entity.Dept;
+import cn.gistack.system.user.supo.UserSUPO;
+import com.alibaba.fastjson.JSONObject;
import com.alibaba.nacos.common.utils.StringUtils;
import io.jsonwebtoken.Claims;
import lombok.AllArgsConstructor;
@@ -47,6 +53,7 @@
import org.springframework.stereotype.Service;
import javax.servlet.http.HttpServletRequest;
import java.time.Duration;
+import java.util.Base64;
import java.util.List;
/**
@@ -70,6 +77,8 @@
private final JwtProperties jwtProperties;
private final ICollectClient collectClient;
+
+ private final IPwdClient pwdClient;
@Override
@SneakyThrows
@@ -178,6 +187,25 @@
String collectResIds = collectClient.getMyCollect(user.getId().toString());
userInfo.getDetail().set("collect",collectResIds);
+ User loginUserInfo = userInfo.getUser();
+
+ //获取解密后的Base64字符串
+ R<ResultDTO> encryptRes = pwdClient.getDecrypt(loginUserInfo.getSm4iv(), loginUserInfo.getKeyindexs(),loginUserInfo.getEncdata());
+
+ if (encryptRes.getCode() != 200){
+ throw new UserDeniedAuthorizationException("获取密钥失败");
+ }
+
+ //解码Base64
+ String base64Decode = Base64Utils.getBase64Decode(encryptRes.getData().getData());
+
+ UserSUPO userSUPO = JSONObject.parseObject(base64Decode, 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),
username, AuthConstant.ENCRYPT + user.getPassword(), userInfo.getDetail(), true, true, true, true,
diff --git a/skjcmanager/skjcmanager-auth/src/main/resources/application-test.yml b/skjcmanager/skjcmanager-auth/src/main/resources/application-test.yml
index 6f51f71..ced9ce5 100644
--- a/skjcmanager/skjcmanager-auth/src/main/resources/application-test.yml
+++ b/skjcmanager/skjcmanager-auth/src/main/resources/application-test.yml
@@ -13,3 +13,17 @@
social:
enabled: true
domain: http://127.0.0.1:1888
+
+#oauth2统一单点登录
+oauth:
+ config:
+ client-id: hbxskkey
+ client-secret: hbxsksecret
+ app-key: uaq775d4a7ufmefyf7sm16vs
+ app-secret: qjq1qizyo1baoyvzdlbu226hkhrs4vl2
+ server-url-prefix: http://10.42.6.99:30000/api/IAM
+ token-url: ${oauth.config.server-url-prefix}/cas/oauth2.0/accessToken
+ profile-url: ${oauth.config.server-url-prefix}/api-auth/inspur/cas/oauth2.0/profile
+ redirect-uri: http://10.10.3.99:32182/api/blade-auth/oauth/tokenLoginUI
+ redirect-web-uri: http://10.10.3.99:32182/#/tokenlogin
+ redirect-exit-uri: http://10.10.3.99:32182/#/index
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 f7dbc3e..7d1ed70 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
@@ -45,7 +45,8 @@
/**
* nacos prod 地址
*/
- String NACOS_PROD_ADDR = "127.0.0.1:8888";
+// String NACOS_PROD_ADDR = "nacos01.zhsk.svc.cluster.local:8848";
+ String NACOS_PROD_ADDR = "nacos.zhsk:8848";
String NACOS_USERNAME = "nacos";
@@ -54,7 +55,7 @@
/**
* nacos test 地址
*/
- String NACOS_TEST_ADDR = "172.30.0.48:8848";
+ String NACOS_TEST_ADDR = "127.0.0.1:8888";
/**
* sentinel dev 地址
diff --git a/skjcmanager/skjcmanager-common/src/main/java/cn/gistack/common/utils/Base64Utils.java b/skjcmanager/skjcmanager-common/src/main/java/cn/gistack/common/utils/Base64Utils.java
new file mode 100644
index 0000000..28977bd
--- /dev/null
+++ b/skjcmanager/skjcmanager-common/src/main/java/cn/gistack/common/utils/Base64Utils.java
@@ -0,0 +1,30 @@
+package cn.gistack.common.utils;
+
+import java.io.UnsupportedEncodingException;
+import java.nio.charset.StandardCharsets;
+import java.util.Base64;
+
+public class Base64Utils {
+
+ // 加密
+ public static String getBase64Encode(String str) {
+ // String-->byte[]
+ byte [] data = str.getBytes(StandardCharsets.UTF_8);
+ // 编码(base64字符串)
+ String base64Str = Base64.getEncoder().encodeToString(data);
+ return base64Str;
+ }
+
+ /**
+ * 对Base64字符串进行解码
+ * @param base64Str
+ * @return
+ */
+ public static String getBase64Decode(String base64Str) {
+// 解码
+ byte [] base64Data = Base64.getDecoder().decode(base64Str);
+ // byte[]-->String(解码后的字符串)
+ String str = new String(base64Data, StandardCharsets.UTF_8);
+ return str;
+ }
+}
diff --git a/skjcmanager/skjcmanager-ops-api/skjcmanager-resource-api/src/main/java/cn/gistack/resource/entity/TextualResearchAttach.java b/skjcmanager/skjcmanager-ops-api/skjcmanager-resource-api/src/main/java/cn/gistack/resource/entity/TextualResearchAttach.java
new file mode 100644
index 0000000..bf0cece
--- /dev/null
+++ b/skjcmanager/skjcmanager-ops-api/skjcmanager-resource-api/src/main/java/cn/gistack/resource/entity/TextualResearchAttach.java
@@ -0,0 +1,65 @@
+package cn.gistack.resource.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 io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+import lombok.experimental.Accessors;
+import org.springframework.format.annotation.DateTimeFormat;
+
+import java.util.Date;
+
+/**
+ * 考证附件表
+ *
+ * @author zhongrj
+ * @date 2023-09-13
+ */
+@Data
+@TableName(value = "sm_textual_research_attach")
+@EqualsAndHashCode(callSuper = false)
+@Accessors(chain = true)
+public class TextualResearchAttach {
+
+ /**
+ * id
+ */
+ @ApiModelProperty(value = "id")
+ @TableId(value = "id",type = IdType.ASSIGN_ID)
+ private Long id;
+
+ /**
+ * 名称
+ */
+ @ApiModelProperty(value = "名称")
+ private String name;
+
+ /**
+ * 文件类型
+ */
+ @ApiModelProperty(value = "文件类型")
+ private Integer type;
+
+ /**
+ * 路径
+ */
+ @ApiModelProperty(value = "路径")
+ private String path;
+
+ /**
+ * 水库编号
+ */
+ @ApiModelProperty(value = "水库编号")
+ private String resGuid;
+
+ /**
+ * 创建时间
+ */
+ @JsonFormat(timezone = "GMT+8", pattern = "yyyy-MM-dd HH:mm:ss")
+ @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
+ @ApiModelProperty(value = "创建时间")
+ private Date createTime;
+}
diff --git a/skjcmanager/skjcmanager-ops-api/skjcmanager-resource-api/src/main/java/cn/gistack/resource/vo/TextualResearchAttachVO.java b/skjcmanager/skjcmanager-ops-api/skjcmanager-resource-api/src/main/java/cn/gistack/resource/vo/TextualResearchAttachVO.java
new file mode 100644
index 0000000..7fd0533
--- /dev/null
+++ b/skjcmanager/skjcmanager-ops-api/skjcmanager-resource-api/src/main/java/cn/gistack/resource/vo/TextualResearchAttachVO.java
@@ -0,0 +1,13 @@
+package cn.gistack.resource.vo;
+
+import cn.gistack.resource.entity.TextualResearchAttach;
+import lombok.Data;
+
+@Data
+public class TextualResearchAttachVO extends TextualResearchAttach {
+
+ /**
+ * 是否分页 传值就不分页
+ */
+ private Integer isPage;
+}
diff --git a/skjcmanager/skjcmanager-ops/skjcmanager-resource/src/main/java/cn/gistack/resource/controller/TextualResearchAttachController.java b/skjcmanager/skjcmanager-ops/skjcmanager-resource/src/main/java/cn/gistack/resource/controller/TextualResearchAttachController.java
new file mode 100644
index 0000000..4964977
--- /dev/null
+++ b/skjcmanager/skjcmanager-ops/skjcmanager-resource/src/main/java/cn/gistack/resource/controller/TextualResearchAttachController.java
@@ -0,0 +1,115 @@
+package cn.gistack.resource.controller;
+
+
+import cn.gistack.resource.entity.TextualResearchAttach;
+import cn.gistack.resource.service.TextualResearchAttachService;
+import cn.gistack.resource.vo.TextualResearchAttachVO;
+import com.baomidou.mybatisplus.core.metadata.IPage;
+import io.swagger.annotations.ApiOperation;
+import lombok.AllArgsConstructor;
+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.util.Arrays;
+
+/**
+ * 考证附件控制层
+ * @author zhongrj
+ * @date 2023-05-29
+ */
+@RestController
+@AllArgsConstructor
+@RequestMapping("/textualResearchAttach/textualResearchAttach")
+public class TextualResearchAttachController {
+
+ private final TextualResearchAttachService textualResearchAttachService;
+
+ /**
+ * 分页列表查询
+ *
+ * @param textualResearchAttach
+ * @return
+ */
+ @ApiOperation(value="考证附件-分页列表查询", notes="考证附件-分页列表查询")
+ @GetMapping(value = "/list")
+ public R queryPageList(TextualResearchAttach textualResearchAttach, Query query) {
+ IPage<TextualResearchAttach> pageList = textualResearchAttachService.page(Condition.getPage(query), Condition.getQueryWrapper(textualResearchAttach));
+ return R.data(pageList);
+ }
+
+ /**
+ * 自定义分页列表查询
+ * @param query
+ * @param textualResearchAttach
+ * @return
+ */
+ @ApiOperation(value="考证附件-自定义分页列表查询", notes="考证附件-自定义分页列表查询")
+ @GetMapping(value = "/page")
+ public R page(TextualResearchAttachVO textualResearchAttach, Query query) {
+ return R.data( textualResearchAttachService.selectTextualResearchAttachPage(Condition.getPage(query),textualResearchAttach));
+ }
+
+ /**
+ * 添加
+ *
+ * @param textualResearchAttach
+ * @return
+ */
+ @ApiOperation(value="考证附件-添加", notes="考证附件-添加")
+ @PostMapping(value = "/add")
+ public R add(@RequestBody TextualResearchAttach textualResearchAttach) {
+ return R.data(textualResearchAttachService.save(textualResearchAttach));
+ }
+
+ /**
+ * 编辑
+ *
+ * @param textualResearchAttach
+ * @return
+ */
+ @ApiOperation(value="考证附件-编辑", notes="考证附件-编辑")
+ @RequestMapping(value = "/edit", method = {RequestMethod.PUT,RequestMethod.POST})
+ public R edit(@RequestBody TextualResearchAttach textualResearchAttach) {
+ return R.data(textualResearchAttachService.updateById(textualResearchAttach));
+ }
+
+ /**
+ * 通过id删除
+ *
+ * @param id
+ * @return
+ */
+ @ApiOperation(value="考证附件-通过id删除", notes="考证附件-通过id删除")
+ @PostMapping(value = "/delete")
+ public R delete(@RequestParam(name="id",required=true) String id) {
+ return R.data(textualResearchAttachService.removeById(id));
+ }
+
+ /**
+ * 批量删除
+ *
+ * @param ids
+ * @return
+ */
+ @ApiOperation(value="考证附件-批量删除", notes="考证附件-批量删除")
+ @PostMapping(value = "/deleteBatch")
+ public R deleteBatch(@RequestParam(name="ids",required=true) String ids) {
+ return R.data(this.textualResearchAttachService.removeByIds(Arrays.asList(ids.split(","))));
+ }
+
+ /**
+ * 通过id查询
+ *
+ * @param id
+ * @return
+ */
+ @ApiOperation(value="考证附件-通过id查询", notes="考证附件-通过id查询")
+ @GetMapping(value = "/queryById")
+ public R queryById(@RequestParam(name="id",required=true) String id) {
+ TextualResearchAttach textualResearchAttach = textualResearchAttachService.getById(id);
+ return R.data(textualResearchAttach);
+ }
+
+}
diff --git a/skjcmanager/skjcmanager-ops/skjcmanager-resource/src/main/java/cn/gistack/resource/endpoint/OssEndpoint.java b/skjcmanager/skjcmanager-ops/skjcmanager-resource/src/main/java/cn/gistack/resource/endpoint/OssEndpoint.java
index 72efc27..c83c2a4 100644
--- a/skjcmanager/skjcmanager-ops/skjcmanager-resource/src/main/java/cn/gistack/resource/endpoint/OssEndpoint.java
+++ b/skjcmanager/skjcmanager-ops/skjcmanager-resource/src/main/java/cn/gistack/resource/endpoint/OssEndpoint.java
@@ -17,7 +17,9 @@
package cn.gistack.resource.endpoint;
import cn.gistack.resource.builder.oss.OssBuilder;
+import cn.gistack.resource.entity.TextualResearchAttach;
import cn.gistack.resource.service.IAttachService;
+import cn.gistack.resource.service.TextualResearchAttachService;
import io.swagger.annotations.Api;
import lombok.AllArgsConstructor;
import lombok.SneakyThrows;
@@ -33,10 +35,7 @@
import org.springframework.web.bind.annotation.*;
import org.springframework.web.multipart.MultipartFile;
-import java.util.ArrayList;
-import java.util.HashMap;
-import java.util.List;
-import java.util.Map;
+import java.util.*;
/**
* 对象存储端点
@@ -59,6 +58,11 @@
* 附件表服务
*/
private final IAttachService attachService;
+
+ /**
+ * 附件表服务
+ */
+ private final TextualResearchAttachService textualResearchAttachService;
/**
* 创建存储桶
@@ -186,6 +190,35 @@
}
/**
+ * 考证附件上传并保存
+ * @param file 文件
+ * @param resGuid 水库编号
+ * @return
+ */
+ @SneakyThrows
+ @PostMapping("/put-file-by-textualResearchAttach")
+ public R putFileByPrefixTextualResearchAttach(@RequestParam MultipartFile file,String resGuid,Integer type) {
+ BladeFile bladeFile = ossBuilder.templateByPrefixPath("textualResearchAttach").putFile(file.getOriginalFilename(), file.getInputStream());
+ buildTextualResearchAttach(resGuid,bladeFile,type);
+ return R.data(bladeFile);
+ }
+
+ /**
+ * 保存考证附件上传数据
+ * @param bladeFile
+ */
+ private void buildTextualResearchAttach(String resGuid,BladeFile bladeFile,Integer type) {
+ TextualResearchAttach attach = new TextualResearchAttach();
+ attach.setResGuid(resGuid);
+ attach.setType(type);
+ attach.setPath(bladeFile.getName());
+ attach.setName(bladeFile.getOriginalName());
+ attach.setCreateTime(new Date());
+ // 保存
+ textualResearchAttachService.save(attach);
+ }
+
+ /**
* 上传文件
*
* @param fileName 存储桶对象名称
diff --git a/skjcmanager/skjcmanager-ops/skjcmanager-resource/src/main/java/cn/gistack/resource/mapper/TextualResearchAttachMapper.java b/skjcmanager/skjcmanager-ops/skjcmanager-resource/src/main/java/cn/gistack/resource/mapper/TextualResearchAttachMapper.java
new file mode 100644
index 0000000..562d385
--- /dev/null
+++ b/skjcmanager/skjcmanager-ops/skjcmanager-resource/src/main/java/cn/gistack/resource/mapper/TextualResearchAttachMapper.java
@@ -0,0 +1,27 @@
+package cn.gistack.resource.mapper;
+
+
+import cn.gistack.resource.entity.TextualResearchAttach;
+import cn.gistack.resource.vo.TextualResearchAttachVO;
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.baomidou.mybatisplus.core.metadata.IPage;
+import org.apache.ibatis.annotations.Param;
+
+import java.util.List;
+
+/**
+ * 考证附件详情mapper映射层
+ * @author zhongrj
+ * @date 2023-09-13
+ */
+public interface TextualResearchAttachMapper extends BaseMapper<TextualResearchAttach> {
+
+ /**
+ * 自定义分页列表查询
+ * @param page
+ * @param textualResearchAttach
+ * @return
+ */
+ List<TextualResearchAttachVO> selectTextualResearchAttachPage(IPage<TextualResearchAttachVO> page,
+ @Param("textualResearchAttach") TextualResearchAttachVO textualResearchAttach);
+}
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
new file mode 100644
index 0000000..b97f6ce
--- /dev/null
+++ b/skjcmanager/skjcmanager-ops/skjcmanager-resource/src/main/java/cn/gistack/resource/mapper/TextualResearchAttachMapper.xml
@@ -0,0 +1,17 @@
+<?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.resource.mapper.TextualResearchAttachMapper">
+
+ <!--自定义分页列表查询-->
+ <select id="selectTextualResearchAttachPage" resultType="cn.gistack.resource.vo.TextualResearchAttachVO">
+ select * from sm_textual_research_attach
+ where 1=1
+ <if test="textualResearchAttach.resGuid!=null and textualResearchAttach.resGuid!=''">
+ and res_guid = #{textualResearchAttach.resGuid}
+ </if>
+ <if test="textualResearchAttach.type!=null">
+ and type = #{textualResearchAttach.type}
+ </if>
+ </select>
+
+</mapper>
diff --git a/skjcmanager/skjcmanager-ops/skjcmanager-resource/src/main/java/cn/gistack/resource/service/TextualResearchAttachService.java b/skjcmanager/skjcmanager-ops/skjcmanager-resource/src/main/java/cn/gistack/resource/service/TextualResearchAttachService.java
new file mode 100644
index 0000000..53ab588
--- /dev/null
+++ b/skjcmanager/skjcmanager-ops/skjcmanager-resource/src/main/java/cn/gistack/resource/service/TextualResearchAttachService.java
@@ -0,0 +1,23 @@
+package cn.gistack.resource.service;
+
+
+import cn.gistack.resource.entity.TextualResearchAttach;
+import cn.gistack.resource.vo.TextualResearchAttachVO;
+import com.baomidou.mybatisplus.core.metadata.IPage;
+import com.baomidou.mybatisplus.extension.service.IService;
+
+/**
+ * 考证附件服务层
+ * @author zhongrj
+ * @date 2023-09-12
+ */
+public interface TextualResearchAttachService extends IService<TextualResearchAttach> {
+
+ /**
+ * 自定义分页列表查询
+ * @param page
+ * @param textualResearchAttach
+ * @return
+ */
+ Object selectTextualResearchAttachPage(IPage<TextualResearchAttachVO> page, TextualResearchAttachVO textualResearchAttach);
+}
diff --git a/skjcmanager/skjcmanager-ops/skjcmanager-resource/src/main/java/cn/gistack/resource/service/impl/TextualResearchAttachServiceImpl.java b/skjcmanager/skjcmanager-ops/skjcmanager-resource/src/main/java/cn/gistack/resource/service/impl/TextualResearchAttachServiceImpl.java
new file mode 100644
index 0000000..dc49527
--- /dev/null
+++ b/skjcmanager/skjcmanager-ops/skjcmanager-resource/src/main/java/cn/gistack/resource/service/impl/TextualResearchAttachServiceImpl.java
@@ -0,0 +1,35 @@
+package cn.gistack.resource.service.impl;
+
+
+
+import cn.gistack.resource.entity.TextualResearchAttach;
+import cn.gistack.resource.mapper.TextualResearchAttachMapper;
+import cn.gistack.resource.service.TextualResearchAttachService;
+import cn.gistack.resource.vo.TextualResearchAttachVO;
+import com.baomidou.mybatisplus.core.metadata.IPage;
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import org.springframework.stereotype.Service;
+
+/**
+ * 考证附件服务实现层
+ * @author zhongrj
+ * @date 2023-09-13
+ */
+@Service
+public class TextualResearchAttachServiceImpl extends ServiceImpl<TextualResearchAttachMapper, TextualResearchAttach> implements TextualResearchAttachService {
+
+ /**
+ * 自定义分页列表查询
+ * @param page
+ * @param textualResearchAttach
+ * @return
+ */
+ @Override
+ public Object selectTextualResearchAttachPage(IPage<TextualResearchAttachVO> page, TextualResearchAttachVO textualResearchAttach) {
+ if (null!=textualResearchAttach.getIsPage()){
+ // 不分页
+ return baseMapper.selectTextualResearchAttachPage(null,textualResearchAttach);
+ }
+ return page.setRecords(baseMapper.selectTextualResearchAttachPage(page,textualResearchAttach));
+ }
+}
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 abe2054..afae39a 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
@@ -37,7 +37,47 @@
private String createAlarmType;
/**
+ * 校验规则名称
+ */
+ private String ruleName;
+
+ /**
* 是否导出
*/
private Integer isExport;
+
+ /**
+ * 开始时间
+ */
+ private String startTime;
+
+ /**
+ * 结束时间
+ */
+ private String endTime;
+
+ /**
+ * 水库规模
+ */
+ private String engScal;
+
+ /**
+ * 水库注册码
+ */
+ private String resRegCode;
+
+ /**
+ * 市州名称
+ */
+ private String cityName;
+
+ /**
+ * 区县
+ */
+ private String countyName;
+
+ /**
+ * 乡镇
+ */
+ private String townName;
}
diff --git a/skjcmanager/skjcmanager-service-api/skjcmanager-alerts-api/src/main/java/cn/gistack/alerts/alarmRule/vo/StatisticAlarmRecord.java b/skjcmanager/skjcmanager-service-api/skjcmanager-alerts-api/src/main/java/cn/gistack/alerts/alarmRule/vo/StatisticAlarmRecord.java
new file mode 100644
index 0000000..7d31059
--- /dev/null
+++ b/skjcmanager/skjcmanager-service-api/skjcmanager-alerts-api/src/main/java/cn/gistack/alerts/alarmRule/vo/StatisticAlarmRecord.java
@@ -0,0 +1,24 @@
+package cn.gistack.alerts.alarmRule.vo;
+
+import lombok.Data;
+
+import java.io.Serializable;
+
+@Data
+public class StatisticAlarmRecord implements Serializable {
+
+ /**
+ * 区域名称
+ */
+ private String adName;
+
+ /**
+ * 规则名称
+ */
+ private String ruleName;
+
+ /**
+ * 数量
+ */
+ private Integer num;
+}
diff --git a/skjcmanager/skjcmanager-service-api/skjcmanager-alerts-api/src/main/java/cn/gistack/alerts/sms/entity/SmsTemplate.java b/skjcmanager/skjcmanager-service-api/skjcmanager-alerts-api/src/main/java/cn/gistack/alerts/sms/entity/SmsTemplate.java
index cb91eec..adc6661 100644
--- a/skjcmanager/skjcmanager-service-api/skjcmanager-alerts-api/src/main/java/cn/gistack/alerts/sms/entity/SmsTemplate.java
+++ b/skjcmanager/skjcmanager-service-api/skjcmanager-alerts-api/src/main/java/cn/gistack/alerts/sms/entity/SmsTemplate.java
@@ -69,7 +69,7 @@
private String remark;
/**
- * 短信类型
+ * 短信类型(登录,告警,,,)
*/
@ApiModelProperty(value = "短信类型")
private Integer smsType;
diff --git a/skjcmanager/skjcmanager-service-api/skjcmanager-alerts-api/src/main/java/cn/gistack/alerts/sms/vo/SmsResultVO.java b/skjcmanager/skjcmanager-service-api/skjcmanager-alerts-api/src/main/java/cn/gistack/alerts/sms/vo/SmsResultVO.java
index 3243672..f5242e8 100644
--- a/skjcmanager/skjcmanager-service-api/skjcmanager-alerts-api/src/main/java/cn/gistack/alerts/sms/vo/SmsResultVO.java
+++ b/skjcmanager/skjcmanager-service-api/skjcmanager-alerts-api/src/main/java/cn/gistack/alerts/sms/vo/SmsResultVO.java
@@ -35,4 +35,9 @@
*/
private String smsType;
+ /**
+ * 告警规则名称
+ */
+ private String ruleName;
+
}
diff --git a/skjcmanager/skjcmanager-service-api/skjcmanager-nky-api/src/main/java/cn/gistack/nky/vo/AlarmGetVO.java b/skjcmanager/skjcmanager-service-api/skjcmanager-nky-api/src/main/java/cn/gistack/nky/vo/AlarmGetVO.java
index 24586bc..afa4877 100644
--- a/skjcmanager/skjcmanager-service-api/skjcmanager-nky-api/src/main/java/cn/gistack/nky/vo/AlarmGetVO.java
+++ b/skjcmanager/skjcmanager-service-api/skjcmanager-nky-api/src/main/java/cn/gistack/nky/vo/AlarmGetVO.java
@@ -9,4 +9,6 @@
private String startTime;
private String endTime;
+ private String typeName;
+
}
diff --git a/skjcmanager/skjcmanager-service-api/skjcmanager-sm-api/pom.xml b/skjcmanager/skjcmanager-service-api/skjcmanager-sm-api/pom.xml
index 8afeef7..f683439 100644
--- a/skjcmanager/skjcmanager-service-api/skjcmanager-sm-api/pom.xml
+++ b/skjcmanager/skjcmanager-service-api/skjcmanager-sm-api/pom.xml
@@ -19,6 +19,11 @@
<groupId>org.springblade</groupId>
<artifactId>blade-starter-cache</artifactId>
</dependency>
+ <!--excel-->
+ <dependency>
+ <groupId>org.springblade</groupId>
+ <artifactId>blade-starter-excel</artifactId>
+ </dependency>
</dependencies>
</project>
diff --git a/skjcmanager/skjcmanager-service-api/skjcmanager-sm-api/src/main/java/cn/gistack/sm/intelligentCall/excel/CallExcel.java b/skjcmanager/skjcmanager-service-api/skjcmanager-sm-api/src/main/java/cn/gistack/sm/intelligentCall/excel/CallExcel.java
new file mode 100644
index 0000000..f992c0e
--- /dev/null
+++ b/skjcmanager/skjcmanager-service-api/skjcmanager-sm-api/src/main/java/cn/gistack/sm/intelligentCall/excel/CallExcel.java
@@ -0,0 +1,21 @@
+package cn.gistack.sm.intelligentCall.excel;
+
+import com.alibaba.excel.annotation.ExcelProperty;
+import com.alibaba.excel.annotation.write.style.ColumnWidth;
+import com.alibaba.excel.annotation.write.style.ContentRowHeight;
+import com.alibaba.excel.annotation.write.style.HeadRowHeight;
+import lombok.Data;
+
+import java.io.Serializable;
+@Data
+@ColumnWidth(25)
+@HeadRowHeight(20)
+@ContentRowHeight(18)
+public class CallExcel implements Serializable {
+
+ private static final long serialVersionUID = 1L;
+
+ @ColumnWidth(15)
+ @ExcelProperty("水库代码")
+ private String waterCode;
+}
diff --git a/skjcmanager/skjcmanager-service-api/skjcmanager-sm-api/src/main/java/cn/gistack/sm/intelligentCall/listener/ExcelListener.java b/skjcmanager/skjcmanager-service-api/skjcmanager-sm-api/src/main/java/cn/gistack/sm/intelligentCall/listener/ExcelListener.java
new file mode 100644
index 0000000..4720451
--- /dev/null
+++ b/skjcmanager/skjcmanager-service-api/skjcmanager-sm-api/src/main/java/cn/gistack/sm/intelligentCall/listener/ExcelListener.java
@@ -0,0 +1,55 @@
+package cn.gistack.sm.intelligentCall.listener;
+
+import com.alibaba.excel.context.AnalysisContext;
+import com.alibaba.excel.event.AnalysisEventListener;
+
+import java.util.ArrayList;
+import java.util.List;
+
+/**
+ * 自定义excel 解析监听器
+ * @param <T>
+ */
+public final class ExcelListener<T> extends AnalysisEventListener<T> {
+
+ /**
+ * 自定义用于暂时存储data
+ * 可以通过实例获取该值
+ */
+ private List<T> datas = new ArrayList<>();
+
+ /**
+ * 每解析一行都会回调invoke()方法
+ * @param object 读取后的数据对象
+ * @param context 内容
+ */
+ @Override
+ @SuppressWarnings("unchecked")
+ public void invoke(Object object, AnalysisContext context) {
+ T map = (T) object;
+ //数据存储到list,供批量处理,或后续自己业务逻辑处理。
+ datas.add(map);
+ }
+
+ @Override
+ public void doAfterAllAnalysed(AnalysisContext context) {
+ //解析结束销毁不用的资源
+ //注意不要调用datas.clear(),否则getDatas为null
+ }
+
+ /**
+ * 返回数据
+ * @return 返回读取的数据集合
+ **/
+ public List<T> getDatas() {
+ return datas;
+ }
+
+ /**
+ * 设置读取的数据集合
+ * @param datas 设置读取的数据集合
+ **/
+ public void setDatas(List<T> datas) {
+ this.datas = datas;
+ }
+}
diff --git a/skjcmanager/skjcmanager-service-api/skjcmanager-sm-api/src/main/java/cn/gistack/sm/intelligentCall/vo/CallTaskResultVO.java b/skjcmanager/skjcmanager-service-api/skjcmanager-sm-api/src/main/java/cn/gistack/sm/intelligentCall/vo/CallTaskResultVO.java
index f5977d0..ec45272 100644
--- a/skjcmanager/skjcmanager-service-api/skjcmanager-sm-api/src/main/java/cn/gistack/sm/intelligentCall/vo/CallTaskResultVO.java
+++ b/skjcmanager/skjcmanager-service-api/skjcmanager-sm-api/src/main/java/cn/gistack/sm/intelligentCall/vo/CallTaskResultVO.java
@@ -75,6 +75,11 @@
* 所在区县
*/
private String countyName;
+
+ /**
+ * 所在乡镇
+ */
+ private String townName;
/**
* 是否巡查责任人 0:未知或空 1:不是巡查责任人 2:是巡查责任人
*/
diff --git a/skjcmanager/skjcmanager-service-api/skjcmanager-sm-api/src/main/java/cn/gistack/sm/intelligentCall/vo/CallTaskStatistic.java b/skjcmanager/skjcmanager-service-api/skjcmanager-sm-api/src/main/java/cn/gistack/sm/intelligentCall/vo/CallTaskStatistic.java
index bd638ef..4a36894 100644
--- a/skjcmanager/skjcmanager-service-api/skjcmanager-sm-api/src/main/java/cn/gistack/sm/intelligentCall/vo/CallTaskStatistic.java
+++ b/skjcmanager/skjcmanager-service-api/skjcmanager-sm-api/src/main/java/cn/gistack/sm/intelligentCall/vo/CallTaskStatistic.java
@@ -175,6 +175,21 @@
private String countyName;
/**
+ * 乡镇名称
+ */
+ private String townName;
+
+ /**
+ * 水库规模
+ */
+ private String engScal;
+
+ /**
+ * 水库注册码
+ */
+ private String resRegCode;
+
+ /**
* 是否短信反馈
*/
private String isSmsFill;
diff --git a/skjcmanager/skjcmanager-service-api/skjcmanager-sm-api/src/main/java/cn/gistack/sm/patrol/feign/PatrolTaskClient.java b/skjcmanager/skjcmanager-service-api/skjcmanager-sm-api/src/main/java/cn/gistack/sm/patrol/feign/PatrolTaskClient.java
index 7b2ca07..70313a6 100644
--- a/skjcmanager/skjcmanager-service-api/skjcmanager-sm-api/src/main/java/cn/gistack/sm/patrol/feign/PatrolTaskClient.java
+++ b/skjcmanager/skjcmanager-service-api/skjcmanager-sm-api/src/main/java/cn/gistack/sm/patrol/feign/PatrolTaskClient.java
@@ -20,6 +20,8 @@
String API_PREFIX = "/client";
String CREATE_TASK_JOB_HANDLER = API_PREFIX + "/createTaskJobHandler";
+ String CREATE_TASK_JOB_BY_CONDITION_HANDLER = API_PREFIX+"/createTaskJobByConditionHandler";
+
/**
* 给巡查责任人定时创建任务执行器
* @param processDefinitionId
@@ -33,4 +35,18 @@
@RequestParam("taskType") String taskType,
@RequestParam("title") String title,
@RequestParam("content") String content);
+
+ /**
+ * 给巡查责任人定时创建任务执行器
+ * @param processDefinitionId
+ * @param taskType
+ * @param title
+ * @param content
+ * @return
+ */
+ @GetMapping(CREATE_TASK_JOB_BY_CONDITION_HANDLER)
+ List<Integer> createTaskJobByConditionHandler(@RequestParam("processDefinitionId") String processDefinitionId,
+ @RequestParam("taskType") String taskType,
+ @RequestParam("title") String title,
+ @RequestParam("content") String content);
}
diff --git a/skjcmanager/skjcmanager-service-api/skjcmanager-sm-api/src/main/java/cn/gistack/sm/patrol/feign/PatrolTaskClientFallback.java b/skjcmanager/skjcmanager-service-api/skjcmanager-sm-api/src/main/java/cn/gistack/sm/patrol/feign/PatrolTaskClientFallback.java
index 7f79808..e52b548 100644
--- a/skjcmanager/skjcmanager-service-api/skjcmanager-sm-api/src/main/java/cn/gistack/sm/patrol/feign/PatrolTaskClientFallback.java
+++ b/skjcmanager/skjcmanager-service-api/skjcmanager-sm-api/src/main/java/cn/gistack/sm/patrol/feign/PatrolTaskClientFallback.java
@@ -16,4 +16,9 @@
public List<Integer> createTaskJobHandler(String processDefinitionId, String taskType, String title, String content) {
return null;
}
+
+ @Override
+ public List<Integer> createTaskJobByConditionHandler(String processDefinitionId, String taskType, String title, String content) {
+ return null;
+ }
}
diff --git a/skjcmanager/skjcmanager-service-api/skjcmanager-user-api/src/main/java/cn/gistack/system/user/entity/User.java b/skjcmanager/skjcmanager-service-api/skjcmanager-user-api/src/main/java/cn/gistack/system/user/entity/User.java
index b5aaaf2..1cdffb6 100644
--- a/skjcmanager/skjcmanager-service-api/skjcmanager-user-api/src/main/java/cn/gistack/system/user/entity/User.java
+++ b/skjcmanager/skjcmanager-service-api/skjcmanager-user-api/src/main/java/cn/gistack/system/user/entity/User.java
@@ -92,5 +92,10 @@
*/
private String postId;
+ /**以下4个为加密字段**/
+ private String sm4iv;
+ private String keyindexs;
+ private String maced;
+ private String encdata;
}
diff --git a/skjcmanager/skjcmanager-service-api/skjcmanager-user-api/src/main/java/cn/gistack/system/user/feign/IUserClient.java b/skjcmanager/skjcmanager-service-api/skjcmanager-user-api/src/main/java/cn/gistack/system/user/feign/IUserClient.java
index 67031e1..8f90767 100644
--- a/skjcmanager/skjcmanager-service-api/skjcmanager-user-api/src/main/java/cn/gistack/system/user/feign/IUserClient.java
+++ b/skjcmanager/skjcmanager-service-api/skjcmanager-user-api/src/main/java/cn/gistack/system/user/feign/IUserClient.java
@@ -55,6 +55,8 @@
String UPDATE_USER = API_PREFIX + "/upate-user";
String REMOVE_USER = API_PREFIX + "/remove-user";
String GET_ALL_USER_LIST = API_PREFIX+ "/get-all-user-list";
+
+ String ENCRYPT_USER = API_PREFIX + "/encrypt-user";
/**
* 获取用户信息
*
@@ -149,4 +151,10 @@
@GetMapping(GET_ALL_USER_LIST)
R<List<User>> getAllUserList();
+ /**
+ * 更新用户信息并加密
+ * @return
+ */
+ @GetMapping(ENCRYPT_USER)
+ String encryptUser();
}
diff --git a/skjcmanager/skjcmanager-service-api/skjcmanager-user-api/src/main/java/cn/gistack/system/user/supo/UserSUPO.java b/skjcmanager/skjcmanager-service-api/skjcmanager-user-api/src/main/java/cn/gistack/system/user/supo/UserSUPO.java
new file mode 100644
index 0000000..0a59328
--- /dev/null
+++ b/skjcmanager/skjcmanager-service-api/skjcmanager-user-api/src/main/java/cn/gistack/system/user/supo/UserSUPO.java
@@ -0,0 +1,22 @@
+package cn.gistack.system.user.supo;
+
+import lombok.Data;
+
+/**
+ * 用户加密类
+ */
+@Data
+public class UserSUPO {
+ /**
+ * 手机号
+ */
+ private String phone;
+ /**
+ * 角色id
+ */
+ private String roleId;
+ /**
+ * 部门id
+ */
+ private String deptId;
+}
diff --git a/skjcmanager/skjcmanager-service/skjcmanager-alerts/src/main/java/cn/gistack/alerts/alarmRule/controller/AlarmRecordController.java b/skjcmanager/skjcmanager-service/skjcmanager-alerts/src/main/java/cn/gistack/alerts/alarmRule/controller/AlarmRecordController.java
index b4475c0..73e1f3d 100644
--- a/skjcmanager/skjcmanager-service/skjcmanager-alerts/src/main/java/cn/gistack/alerts/alarmRule/controller/AlarmRecordController.java
+++ b/skjcmanager/skjcmanager-service/skjcmanager-alerts/src/main/java/cn/gistack/alerts/alarmRule/controller/AlarmRecordController.java
@@ -47,8 +47,8 @@
*/
@ApiOperation(value="告警记录-自定义分页列表查询", notes="告警记录-自定义分页列表查询")
@GetMapping(value = "/page")
- public R page(AlarmRecordVO alarmRecord, Query query) {
- return R.data( alarmRecordService.selectAlarmRecordPage(Condition.getPage(query),alarmRecord));
+ public R selectAlarmPage(AlarmRecordVO alarmRecord, Query query) {
+ return R.data(alarmRecordService.selectAlarmRecordPage(Condition.getPage(query),alarmRecord));
}
/**
@@ -111,4 +111,26 @@
return R.data(alarmRecord);
}
+ /**
+ * 按行政区统计告警-按三大类
+ * @param alarmRecord
+ * @return
+ */
+ @ApiOperation(value="告警记录-告警统计-按三大类", notes="告警记录-告警统计-按三大类")
+ @GetMapping(value = "/statisticAlarmRecordByType")
+ public R statisticAlarmRecordByType(AlarmRecordVO alarmRecord) {
+ return R.data(alarmRecordService.statisticAlarmRecordByType(alarmRecord));
+ }
+
+ /**
+ * 按行政区统计告警
+ * @param alarmRecord
+ * @return
+ */
+ @ApiOperation(value="告警记录-告警统计", notes="告警记录-告警统计")
+ @GetMapping(value = "/statisticAlarmRecord")
+ public R statisticAlarmRecord(AlarmRecordVO alarmRecord) {
+ return R.data(alarmRecordService.statisticAlarmRecord(alarmRecord));
+ }
+
}
diff --git a/skjcmanager/skjcmanager-service/skjcmanager-alerts/src/main/java/cn/gistack/alerts/alarmRule/controller/AlarmRuleController.java b/skjcmanager/skjcmanager-service/skjcmanager-alerts/src/main/java/cn/gistack/alerts/alarmRule/controller/AlarmRuleController.java
index 5d9a321..19ba210 100644
--- a/skjcmanager/skjcmanager-service/skjcmanager-alerts/src/main/java/cn/gistack/alerts/alarmRule/controller/AlarmRuleController.java
+++ b/skjcmanager/skjcmanager-service/skjcmanager-alerts/src/main/java/cn/gistack/alerts/alarmRule/controller/AlarmRuleController.java
@@ -173,4 +173,26 @@
return R.data(alarmRuleService.getDetail(id));
}
+ /**
+ * 通过告警规则类型查询生成告警规则类型
+ * @param alarmRuleType
+ * @return
+ */
+ @ApiOperation(value="通过告警规则类型查询生成告警规则类型", notes="通过告警规则类型查询生成告警规则类型")
+ @GetMapping(value = "/getCreateRuleType")
+ public R getCreateRuleType(String alarmRuleType) {
+ return R.data(alarmRuleService.getCreateRuleType(alarmRuleType));
+ }
+
+ /**
+ * 通过成告警规则类型查询告警规则名称
+ * @param createAlarmType
+ * @return
+ */
+ @ApiOperation(value="通过成告警规则类型查询告警规则名称", notes="通过成告警规则类型查询告警规则名称")
+ @GetMapping(value = "/getAlarmRuleName")
+ public R getAlarmRuleName(String createAlarmType) {
+ return R.data(alarmRuleService.getAlarmRuleName(createAlarmType));
+ }
+
}
diff --git a/skjcmanager/skjcmanager-service/skjcmanager-alerts/src/main/java/cn/gistack/alerts/alarmRule/mapper/AlarmRecordMapper.java b/skjcmanager/skjcmanager-service/skjcmanager-alerts/src/main/java/cn/gistack/alerts/alarmRule/mapper/AlarmRecordMapper.java
index eaaffe6..d8f5b33 100644
--- a/skjcmanager/skjcmanager-service/skjcmanager-alerts/src/main/java/cn/gistack/alerts/alarmRule/mapper/AlarmRecordMapper.java
+++ b/skjcmanager/skjcmanager-service/skjcmanager-alerts/src/main/java/cn/gistack/alerts/alarmRule/mapper/AlarmRecordMapper.java
@@ -1,7 +1,10 @@
package cn.gistack.alerts.alarmRule.mapper;
import cn.gistack.alerts.alarmRule.entity.AlarmRecord;
+import cn.gistack.alerts.alarmRule.entity.AlarmRule;
import cn.gistack.alerts.alarmRule.vo.AlarmRecordVO;
+import cn.gistack.alerts.alarmRule.vo.StatisticAlarmRecord;
+import com.baomidou.mybatisplus.annotation.InterceptorIgnore;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import org.apache.ibatis.annotations.Param;
@@ -22,4 +25,33 @@
* @return
*/
List<AlarmRecordVO> selectAlarmRecordPage(IPage<AlarmRecordVO> page,@Param("alarmRecord") AlarmRecordVO alarmRecord);
+
+ /**
+ * 查询告警统计数据-按三大类
+ * @param alarmRecord
+ * @return
+ */
+ @InterceptorIgnore(tenantLine = "true")
+ List<StatisticAlarmRecord> statisticAlarmRecordByType(@Param("alarmRecord") AlarmRecordVO alarmRecord);
+
+ /**
+ * 查询告警统计数据
+ * @param alarmRecord
+ * @return
+ */
+ List<StatisticAlarmRecord> statisticAlarmRecord(@Param("alarmRecord") AlarmRecordVO alarmRecord);
+
+ /**
+ * 按行政区code 查询下级行政区
+ * @param adCode
+ * @return
+ */
+ List<String> getAdNameList(@Param("adCode") String adCode);
+
+ /**
+ * 查询符合条件的告警类型
+ * @param alarmRecord
+ * @return
+ */
+ List<AlarmRule> listAlarmRule(@Param("alarmRecord") AlarmRecordVO alarmRecord);
}
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 ecc4d8f..4b03116 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
@@ -6,15 +6,25 @@
<select id="selectAlarmRecordPage" resultType="cn.gistack.alerts.alarmRule.vo.AlarmRecordVO">
select
sar.*,
- sar1.type,sar1.alarm_rule_type as alarmRuleType,sar1.create_alarm_type as createAlarmType,
- arb."name" as reservoirName,aab."ad_name" as areaName
+ sar1.type,sar1.alarm_rule_type as alarmRuleType,sar1.create_alarm_type as createAlarmType,sar1.rule_name as ruleName,
+ a."name" as reservoirName,a."res_reg_code" as resRegCode,a."eng_scal" as engScal,
+ 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
from YWXT.sm_alarm_record sar
left join YWXT.sm_alarm_rule sar1 on sar.alarm_rule_id = sar1.id and sar1.is_deleted = 0
- left join SJZT_MD."att_res_base" arb on arb."guid" = sar.reservoir_number
- left join SJZT_MD."att_ad_base" aab on aab."guid" = arb."interior_ad_guid"
+ left join SJZT_MD."att_res_base" a on a."guid" = sar.reservoir_number
+ 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 sar.is_deleted = 0
<if test="alarmRecord.reservoirName!=null and alarmRecord.reservoirName!=''">
- and arb."name" like concat('%',#{alarmRecord.reservoirName},'%')
+ and a."name" like concat('%',#{alarmRecord.reservoirName},'%')
</if>
<if test="alarmRecord.type!=null and alarmRecord.type!=''">
and sar1.type = #{alarmRecord.type}
@@ -25,7 +35,112 @@
<if test="alarmRecord.createAlarmType!=null and alarmRecord.createAlarmType!=''">
and sar1.create_alarm_type = #{alarmRecord.createAlarmType}
</if>
+ <if test="alarmRecord.ruleName!=null and alarmRecord.ruleName!=''">
+ and sar1.rule_name = #{alarmRecord.ruleName}
+ </if>
+ <if test="alarmRecord.startTime!=null and alarmRecord.startTime!=''">
+ and date_format(sar.create_time,'%Y-%m-%d') >= #{alarmRecord.startTime}
+ </if>
+ <if test="alarmRecord.endTime!=null and alarmRecord.endTime!=''">
+ and date_format(sar.create_time,'%Y-%m-%d') <= #{alarmRecord.endTime}
+ </if>
order by sar.id desc
</select>
+ <!--按行政区code 查询下级行政区-->
+ <select id="getAdNameList" resultType="java.lang.String">
+ select "ad_name" from SJZT_MD."att_ad_base" where "p_ad_code" = #{adCode} order by "guid"
+ </select>
+
+ <!--查询告警统计数据-->
+ <select id="statisticAlarmRecord" resultType="cn.gistack.alerts.alarmRule.vo.StatisticAlarmRecord">
+ select cityName as adName,rule_name as ruleName,count(*) num from (
+ select
+ sar.id,sar.alarm_rule_id,sar.create_time,sar.reservoir_number,
+ arb."name",
+ e.rule_name,
+ 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" = 3 THEN b."ad_code"
+ when c."ad_grad" = 3 THEN c."ad_code" END AS countyCode,
+ case when b."ad_grad" = 2 THEN b."ad_code"
+ when c."ad_grad" = 2 THEN c."ad_code"
+ ELSE d."ad_code" END AS cityCode,
+ 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
+ from YWXT.sm_alarm_record sar
+ left join SJZT_MD."att_res_base" arb on arb."guid" = sar.reservoir_number
+ left join SJZT_MD."att_ad_base" b ON arb."interior_ad_guid" = b."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"
+ left join YWXT.sm_alarm_rule e on e.id = sar.alarm_rule_id
+ where sar.is_deleted = 0
+ <if test="alarmRecord.reservoirName!=null and alarmRecord.reservoirName!=''">
+ and arb."name" like concat('%',#{alarmRecord.reservoirName},'%')
+ </if>
+ <if test="alarmRecord.type!=null and alarmRecord.type!=''">
+ and e.type = #{alarmRecord.type}
+ </if>
+ <if test="alarmRecord.alarmRuleType!=null and alarmRecord.alarmRuleType!=''">
+ and e.alarm_rule_type = #{alarmRecord.alarmRuleType}
+ </if>
+ <if test="alarmRecord.createAlarmType!=null and alarmRecord.createAlarmType!=''">
+ and e.create_alarm_type = #{alarmRecord.createAlarmType}
+ </if>
+ <if test="alarmRecord.ruleName!=null and alarmRecord.ruleName!=''">
+ and e.rule_name = #{alarmRecord.ruleName}
+ </if>
+ <if test="alarmRecord.startTime!=null and alarmRecord.startTime!=''">
+ and date_format(sar.create_time,'%Y-%m-%d') >= #{alarmRecord.startTime}
+ </if>
+ <if test="alarmRecord.endTime!=null and alarmRecord.endTime!=''">
+ and date_format(sar.create_time,'%Y-%m-%d') <= #{alarmRecord.endTime}
+ </if>
+ ) f
+ group by cityName,rule_name
+ </select>
+
+ <!--查询告警统计数据-按三大类-->
+ <select id="statisticAlarmRecordByType" resultType="cn.gistack.alerts.alarmRule.vo.StatisticAlarmRecord">
+ select
+ a.dict_value as ruleName,
+ case when ifnull(b.type,0)='0' then 0 else b.num end as num
+ from
+ (
+ select dict_value from YWXT.blade_dict_biz where code = 'ALARM_TYPE' and dict_key!= '-1' and is_deleted = 0
+ ) a left join
+ (
+ select type,count(*) num
+ from YWXT.sm_alarm_record sar
+ left join YWXT.sm_alarm_rule e on e.id = sar.alarm_rule_id
+ where sar.is_deleted = 0
+ <if test="alarmRecord.startTime!=null and alarmRecord.startTime!=''">
+ and date_format(sar.create_time,'%Y-%m-%d') >= #{alarmRecord.startTime}
+ </if>
+ <if test="alarmRecord.endTime!=null and alarmRecord.endTime!=''">
+ and date_format(sar.create_time,'%Y-%m-%d') <= #{alarmRecord.endTime}
+ </if>
+ group by type
+ ) b on a.dict_value = b.type
+ </select>
+
+ <!--查询符合条件的告警类型-->
+ <select id="listAlarmRule" resultType="cn.gistack.alerts.alarmRule.entity.AlarmRule">
+ select * from YWXT.sm_alarm_rule where is_deleted = 0
+ <if test="alarmRecord.type!=null and alarmRecord.type!=''">
+ and type = #{alarmRecord.type}
+ </if>
+ <if test="alarmRecord.alarmRuleType!=null and alarmRecord.alarmRuleType!=''">
+ and alarm_rule_type = #{alarmRecord.alarmRuleType}
+ </if>
+ <if test="alarmRecord.createAlarmType!=null and alarmRecord.createAlarmType!=''">
+ and create_alarm_type = #{alarmRecord.createAlarmType}
+ </if>
+ <if test="alarmRecord.ruleName!=null and alarmRecord.ruleName!=''">
+ and rule_name = #{alarmRecord.ruleName}
+ </if>
+ </select>
+
</mapper>
diff --git a/skjcmanager/skjcmanager-service/skjcmanager-alerts/src/main/java/cn/gistack/alerts/alarmRule/mapper/AlarmRuleMapper.java b/skjcmanager/skjcmanager-service/skjcmanager-alerts/src/main/java/cn/gistack/alerts/alarmRule/mapper/AlarmRuleMapper.java
index 9ea76b2..fea75cc 100644
--- a/skjcmanager/skjcmanager-service/skjcmanager-alerts/src/main/java/cn/gistack/alerts/alarmRule/mapper/AlarmRuleMapper.java
+++ b/skjcmanager/skjcmanager-service/skjcmanager-alerts/src/main/java/cn/gistack/alerts/alarmRule/mapper/AlarmRuleMapper.java
@@ -3,6 +3,7 @@
import cn.gistack.alerts.alarmRule.entity.AlarmRule;
import cn.gistack.alerts.alarmRule.vo.AlarmRuleDetailVO;
import cn.gistack.alerts.alarmRule.vo.AlarmRuleVO;
+import cn.gistack.system.entity.DictBiz;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import org.apache.ibatis.annotations.Param;
@@ -44,4 +45,18 @@
* @return
*/
List<String> getAlarmRuleDetailListByAlarmRuleId(@Param("id") String alarmRuleId);
+
+ /**
+ * 通过告警规则类型查询生成告警规则类型
+ * @param alarmRuleType
+ * @return
+ */
+ List<DictBiz> getCreateRuleType(@Param("alarmRuleType") String alarmRuleType);
+
+ /**
+ * 通过成告警规则类型查询告警规则名称
+ * @param createAlarmType
+ * @return
+ */
+ List<DictBiz> getAlarmRuleName(@Param("createAlarmType") String createAlarmType);
}
diff --git a/skjcmanager/skjcmanager-service/skjcmanager-alerts/src/main/java/cn/gistack/alerts/alarmRule/mapper/AlarmRuleMapper.xml b/skjcmanager/skjcmanager-service/skjcmanager-alerts/src/main/java/cn/gistack/alerts/alarmRule/mapper/AlarmRuleMapper.xml
index 1677692..7fed765 100644
--- a/skjcmanager/skjcmanager-service/skjcmanager-alerts/src/main/java/cn/gistack/alerts/alarmRule/mapper/AlarmRuleMapper.xml
+++ b/skjcmanager/skjcmanager-service/skjcmanager-alerts/src/main/java/cn/gistack/alerts/alarmRule/mapper/AlarmRuleMapper.xml
@@ -19,6 +19,9 @@
<if test="alarmRule.ruleName!=null and alarmRule.ruleName!=''">
and sar.rule_name like concat(concat('%',#{alarmRule.ruleName}),'%')
</if>
+ <if test="alarmRule.target!=null and alarmRule.target!=''">
+ and sar.target = #{alarmRule.target}
+ </if>
</select>
<!--通过id查询-->
@@ -40,4 +43,20 @@
where sard.alarm_rule_id = #{id}
</select>
+ <!--通过告警规则类型查询生成告警规则类型-->
+ <select id="getCreateRuleType" resultType="cn.gistack.system.entity.DictBiz">
+ select create_alarm_type as dictValue,create_alarm_type as dictKey from sm_alarm_rule
+ where is_deleted =0
+ and alarm_rule_type = #{alarmRuleType}
+ group by create_alarm_type
+ </select>
+
+ <!--通过成告警规则类型查询告警规则名称-->
+ <select id="getAlarmRuleName" resultType="cn.gistack.system.entity.DictBiz">
+ select rule_name as dictValue,rule_name as dictKey from sm_alarm_rule
+ where is_deleted =0
+ and create_alarm_type = #{createAlarmType}
+ group by rule_name
+ </select>
+
</mapper>
diff --git a/skjcmanager/skjcmanager-service/skjcmanager-alerts/src/main/java/cn/gistack/alerts/alarmRule/service/AlarmRecordService.java b/skjcmanager/skjcmanager-service/skjcmanager-alerts/src/main/java/cn/gistack/alerts/alarmRule/service/AlarmRecordService.java
index 56dd556..a3ab5a7 100644
--- a/skjcmanager/skjcmanager-service/skjcmanager-alerts/src/main/java/cn/gistack/alerts/alarmRule/service/AlarmRecordService.java
+++ b/skjcmanager/skjcmanager-service/skjcmanager-alerts/src/main/java/cn/gistack/alerts/alarmRule/service/AlarmRecordService.java
@@ -19,4 +19,18 @@
* @return
*/
Object selectAlarmRecordPage(IPage<AlarmRecordVO> page, AlarmRecordVO alarmRecord);
+
+ /**
+ * 按行政区统计告警-按三大类
+ * @param alarmRecord
+ * @return
+ */
+ Object statisticAlarmRecordByType(AlarmRecordVO alarmRecord);
+
+ /**
+ * 按行政区统计告警
+ * @param alarmRecord
+ * @return
+ */
+ Object statisticAlarmRecord(AlarmRecordVO alarmRecord);
}
diff --git a/skjcmanager/skjcmanager-service/skjcmanager-alerts/src/main/java/cn/gistack/alerts/alarmRule/service/AlarmRuleService.java b/skjcmanager/skjcmanager-service/skjcmanager-alerts/src/main/java/cn/gistack/alerts/alarmRule/service/AlarmRuleService.java
index fe749c3..3fe70f1 100644
--- a/skjcmanager/skjcmanager-service/skjcmanager-alerts/src/main/java/cn/gistack/alerts/alarmRule/service/AlarmRuleService.java
+++ b/skjcmanager/skjcmanager-service/skjcmanager-alerts/src/main/java/cn/gistack/alerts/alarmRule/service/AlarmRuleService.java
@@ -35,4 +35,18 @@
* @return
*/
List<String> getAlarmRuleDetailList(String alarmRuleId);
+
+ /**
+ * 通过告警规则类型查询生成告警规则类型
+ * @param alarmRuleType
+ * @return
+ */
+ Object getCreateRuleType(String alarmRuleType);
+
+ /**
+ * 通过成告警规则类型查询告警规则名称
+ * @param createAlarmType
+ * @return
+ */
+ Object getAlarmRuleName(String createAlarmType);
}
diff --git a/skjcmanager/skjcmanager-service/skjcmanager-alerts/src/main/java/cn/gistack/alerts/alarmRule/service/impl/AlarmRecordServiceImpl.java b/skjcmanager/skjcmanager-service/skjcmanager-alerts/src/main/java/cn/gistack/alerts/alarmRule/service/impl/AlarmRecordServiceImpl.java
index b5ab126..fc98fa7 100644
--- a/skjcmanager/skjcmanager-service/skjcmanager-alerts/src/main/java/cn/gistack/alerts/alarmRule/service/impl/AlarmRecordServiceImpl.java
+++ b/skjcmanager/skjcmanager-service/skjcmanager-alerts/src/main/java/cn/gistack/alerts/alarmRule/service/impl/AlarmRecordServiceImpl.java
@@ -1,12 +1,26 @@
package cn.gistack.alerts.alarmRule.service.impl;
import cn.gistack.alerts.alarmRule.entity.AlarmRecord;
+import cn.gistack.alerts.alarmRule.entity.AlarmRule;
import cn.gistack.alerts.alarmRule.mapper.AlarmRecordMapper;
import cn.gistack.alerts.alarmRule.service.AlarmRecordService;
+import cn.gistack.alerts.alarmRule.service.AlarmRuleService;
import cn.gistack.alerts.alarmRule.vo.AlarmRecordVO;
+import cn.gistack.alerts.alarmRule.vo.StatisticAlarmRecord;
+import cn.gistack.alerts.sms.vo.Temp;
+import cn.gistack.sm.intelligentCall.entity.Scene;
+import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import org.springblade.core.mp.base.BaseServiceImpl;
+import org.springblade.core.secure.utils.AuthUtil;
+import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
+
+import java.util.ArrayList;
+import java.util.HashMap;
+import java.util.List;
+import java.util.Map;
+import java.util.stream.Collectors;
/**
* 告警记录服务实现层
@@ -15,6 +29,9 @@
*/
@Service
public class AlarmRecordServiceImpl extends BaseServiceImpl<AlarmRecordMapper, AlarmRecord> implements AlarmRecordService {
+
+ @Autowired
+ private AlarmRuleService alarmRuleService;
/**
* 自定义分页列表查询
@@ -29,4 +46,69 @@
}
return page.setRecords(baseMapper.selectAlarmRecordPage(page,alarmRecord));
}
+
+ /**
+ * 按行政区统计告警-按三大类
+ * @param alarmRecord
+ * @return
+ */
+ @Override
+ public Object statisticAlarmRecordByType(AlarmRecordVO alarmRecord) {
+ // 获取当前用户的行政区划
+ String adCode = "420000000000";
+ // 查询统计数据
+ List<StatisticAlarmRecord> list = baseMapper.statisticAlarmRecordByType(alarmRecord);
+ // 返回数据
+ return list;
+ }
+
+ /**
+ * 按行政区统计告警
+ * @param alarmRecord
+ * @return
+ */
+ @Override
+ public Object statisticAlarmRecord(AlarmRecordVO alarmRecord) {
+ // 获取当前用户的行政区划
+ String adCode = "420000000000";
+ // 查询所有的市级行政区
+ List<String> adNameList = baseMapper.getAdNameList(adCode);
+ // 查询符合条件的告警类型
+ List<AlarmRule> alarmRuleList = baseMapper.listAlarmRule(alarmRecord);
+ // 查询统计数据
+ List<StatisticAlarmRecord> list = baseMapper.statisticAlarmRecord(alarmRecord);
+ // 按行政区分组
+ Map<String, List<StatisticAlarmRecord>> listMap = list.stream().filter(item->null!=item.getAdName()).collect(Collectors.groupingBy(StatisticAlarmRecord::getAdName));
+ // 补全行政区
+ for (String adName : adNameList) {
+ if (!listMap.containsKey(adName)){
+ List<StatisticAlarmRecord> arrayList = new ArrayList<>();
+ listMap.put(adName,arrayList);
+ }
+ }
+ List<String> ruleNameList = alarmRuleList.stream().map(alarmRule -> alarmRule.getRuleName()).collect(Collectors.toList());
+ // 补全告警类型
+ listMap.forEach((adName,statisticAlarmRecords)->{
+ // 取出已有的告警类型
+ List<String> newRuleNameList = statisticAlarmRecords.stream().map(alarmRule -> alarmRule.getRuleName()).collect(Collectors.toList());
+ // 取差集
+ List<String> resultAlarmRuleList = ruleNameList.stream().filter(item -> !newRuleNameList.contains(item)).collect(Collectors.toList());
+ for (String ruleName : resultAlarmRuleList) {
+ StatisticAlarmRecord newStatisticAlarmRecord = new StatisticAlarmRecord();
+ newStatisticAlarmRecord.setRuleName(ruleName);
+ newStatisticAlarmRecord.setNum(0);
+ newStatisticAlarmRecord.setAdName(adName);
+ statisticAlarmRecords.add(newStatisticAlarmRecord);
+ }
+ });
+ List<Object> objects = new ArrayList<>();
+ // 重新录入排序
+ for (String adName : adNameList) {
+ if (listMap.containsKey(adName)){
+ objects.add(listMap.get(adName));
+ }
+ }
+ // 返回数据
+ return objects;
+ }
}
diff --git a/skjcmanager/skjcmanager-service/skjcmanager-alerts/src/main/java/cn/gistack/alerts/alarmRule/service/impl/AlarmRuleServiceImpl.java b/skjcmanager/skjcmanager-service/skjcmanager-alerts/src/main/java/cn/gistack/alerts/alarmRule/service/impl/AlarmRuleServiceImpl.java
index f3e419f..c4c2eb9 100644
--- a/skjcmanager/skjcmanager-service/skjcmanager-alerts/src/main/java/cn/gistack/alerts/alarmRule/service/impl/AlarmRuleServiceImpl.java
+++ b/skjcmanager/skjcmanager-service/skjcmanager-alerts/src/main/java/cn/gistack/alerts/alarmRule/service/impl/AlarmRuleServiceImpl.java
@@ -62,4 +62,24 @@
public List<String> getAlarmRuleDetailList(String alarmRuleId) {
return baseMapper.getAlarmRuleDetailListByAlarmRuleId(alarmRuleId);
}
+
+ /**
+ * 通过告警规则类型查询生成告警规则类型
+ * @param alarmRuleType
+ * @return
+ */
+ @Override
+ public Object getCreateRuleType(String alarmRuleType) {
+ return baseMapper.getCreateRuleType(alarmRuleType);
+ }
+
+ /**
+ * 通过成告警规则类型查询告警规则名称
+ * @param createAlarmType
+ * @return
+ */
+ @Override
+ public Object getAlarmRuleName(String createAlarmType) {
+ return baseMapper.getAlarmRuleName(createAlarmType);
+ }
}
diff --git a/skjcmanager/skjcmanager-service/skjcmanager-alerts/src/main/java/cn/gistack/alerts/notice/constant/ZtApiDataColumnConstant.java b/skjcmanager/skjcmanager-service/skjcmanager-alerts/src/main/java/cn/gistack/alerts/notice/constant/ZtApiDataColumnConstant.java
index 304e579..177584f 100644
--- a/skjcmanager/skjcmanager-service/skjcmanager-alerts/src/main/java/cn/gistack/alerts/notice/constant/ZtApiDataColumnConstant.java
+++ b/skjcmanager/skjcmanager-service/skjcmanager-alerts/src/main/java/cn/gistack/alerts/notice/constant/ZtApiDataColumnConstant.java
@@ -16,7 +16,7 @@
*/
public static List<String> waterInfoNotList = new ArrayList<String>()
{{
- add("county_nm,town_nm");
+// add("county_nm,town_nm");
add("res_nm");
}};
@@ -25,7 +25,7 @@
*/
public static List<String> waterDataExcList = new ArrayList<String>()
{{
- add("county_nm,town_nm");
+// add("county_nm,town_nm");
add("res_nm");
// add("rz");
}};
@@ -223,4 +223,13 @@
add("rz");
}};
+ /**
+ * 19.坝安全监测告警
+ */
+ public static List<String> damSafetyList = new ArrayList<String>()
+ {{
+// add("county_nm,town_nm");
+ add("res_nm");
+ add("ms_flag");
+ }};
}
diff --git a/skjcmanager/skjcmanager-service/skjcmanager-alerts/src/main/java/cn/gistack/alerts/notice/constant/ZtApiUrlConstant.java b/skjcmanager/skjcmanager-service/skjcmanager-alerts/src/main/java/cn/gistack/alerts/notice/constant/ZtApiUrlConstant.java
index d003a28..95ebbad 100644
--- a/skjcmanager/skjcmanager-service/skjcmanager-alerts/src/main/java/cn/gistack/alerts/notice/constant/ZtApiUrlConstant.java
+++ b/skjcmanager/skjcmanager-service/skjcmanager-alerts/src/main/java/cn/gistack/alerts/notice/constant/ZtApiUrlConstant.java
@@ -18,6 +18,11 @@
public static final String url_prefix_prod = "http://10.42.6.192";
/**
+ * 请求头url 前缀(prod)
+ */
+ public static final String url_prefix_test = "http://10.42.6.192";
+
+ /**
* 水位数据缺失
*/
public static final String res_z_null_api = "/services/1234567890ABCDEFGHIJKLMN/res/z_null";
@@ -97,4 +102,9 @@
*/
public static final String alarm_rain_6_over_api = "/services/1234567890ABCDEFGHIJKLMN/alarm/rain/6/over/api";
+ /**
+ * 19. 大坝安全监测告警
+ */
+ public static final String alarm_db_api = "/services/1234567890ABCDEFGHIJKLMN/alarm/db/api";
+
}
diff --git a/skjcmanager/skjcmanager-service/skjcmanager-alerts/src/main/java/cn/gistack/alerts/notice/service/impl/AsyncNoticeHandle.java b/skjcmanager/skjcmanager-service/skjcmanager-alerts/src/main/java/cn/gistack/alerts/notice/service/impl/AsyncNoticeHandle.java
index 57ac1fd..d19c267 100644
--- a/skjcmanager/skjcmanager-service/skjcmanager-alerts/src/main/java/cn/gistack/alerts/notice/service/impl/AsyncNoticeHandle.java
+++ b/skjcmanager/skjcmanager-service/skjcmanager-alerts/src/main/java/cn/gistack/alerts/notice/service/impl/AsyncNoticeHandle.java
@@ -886,7 +886,6 @@
Boolean isSendStation,
String uuid) {
Map<String, Object> map = new HashMap<>();
-// String uuid = alarmRuleDetail.getTemplateId() + UUID.randomUUID().toString();
// 只发短信,将发短信信息组装好
SmsRequestTemplate smsRequestTemplate
= noticeHandle.getSendSmsTemplate(ztData,alarmRule,alarmRuleDetail,columnList ,flag,adCode,uuid,isSendStation);
@@ -932,7 +931,6 @@
Boolean isSendStation,
String uuid) {
Map<String, Object> map = new HashMap<>();
-// String uuid = alarmRuleDetail.getTemplateId() + UUID.randomUUID().toString();
// 只发短信,将发短信信息组装好
SmsRequestTemplate smsRequestTemplate
= noticeHandle.getSendSmsTemplate(ztData,alarmRule,alarmRuleDetail,columnList ,flag,adCode,uuid,isSendStation);
@@ -954,5 +952,44 @@
return map;
}
-
+ /**
+ * 策略19: 大坝安全监测告警-短信
+ *
+ * @param alarmRule 告警规则信息
+ * @param alarmRuleDetail 告警规则详情信息
+ * @param ztData 告警数据
+ * @param columnList 告警模板动态内容key
+ * @param flag 是否包含日期
+ * @param adCode 行政区code用户过滤数据
+ * @param isSendStation 是否发送站内信
+ * @return
+ */
+ @Async
+ public Map<String, Object> damSafetyHandle(AlarmRule alarmRule,
+ AlarmRuleDetail alarmRuleDetail,
+ JSONArray ztData,
+ List<String> columnList,
+ Boolean flag,
+ String adCode,
+ Boolean isSendStation,
+ String uuid) {
+ Map<String, Object> map = new HashMap<>();
+ // 只发短信,将发短信信息组装好
+ SmsRequestTemplate smsRequestTemplate
+ = noticeHandle.getSendSmsTemplate(ztData,alarmRule,alarmRuleDetail,columnList ,flag,adCode,uuid,isSendStation);
+ // 拼接后面内容
+ if (smsRequestTemplate.getPersonVOList().size() > 0) {
+ for (List<String> list : smsRequestTemplate.getTemplateContent()) {
+ // 保存告警记录信息
+ AlarmRecord alarmRecord = noticeHandle.saveAlarmRecord(list, alarmRule, uuid);
+ if (null != alarmRecord) {
+ list.add(alarmRecord.getId().toString());
+ }
+ }
+ map = smsService.sendSignMsg(smsRequestTemplate);
+ // 调用短信服务
+ return map;
+ }
+ return map;
+ }
}
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 fb854ab..15b156f 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
@@ -282,9 +282,9 @@
// 超汛限水位
if (s.equals("over_z")) {
String is_danger_res = "is_danger_res";
- if (jsonArray.getJSONObject(i).getString(is_danger_res).equals("true")) {
+ if (null!= jsonArray.getJSONObject(i).getString(is_danger_res) && jsonArray.getJSONObject(i).getString(is_danger_res).equals("true")) {
format = format + "控制运用水位" + jsonArray.getJSONObject(i).getString(s);
- } else if (jsonArray.getJSONObject(i).getString(is_danger_res).equals("false")) {
+ } else if (null!= jsonArray.getJSONObject(i).getString(is_danger_res) && jsonArray.getJSONObject(i).getString(is_danger_res).equals("false")) {
format = format + "汛限水位" + jsonArray.getJSONObject(i).getString(s);
} else {
format = format + jsonArray.getJSONObject(i).getString(s);
@@ -318,6 +318,20 @@
format = format + "已漫过坝顶" + (-parseDouble);
}
}else {
+ format = format + jsonArray.getJSONObject(i).getString(s);
+ }
+ } else if (s.equals("ms_flag")) {
+ // 水位
+ String ms_flag = "ms_flag";
+ if (null!= jsonArray.getJSONObject(i).getString(ms_flag) && jsonArray.getJSONObject(i).getString(ms_flag).equals("sy")) {
+ format = format + "渗压";
+ } else if (null!= jsonArray.getJSONObject(i).getString(ms_flag) && jsonArray.getJSONObject(i).getString(ms_flag).equals("sl")) {
+ format = format + "渗流" ;
+ } else if (null!= jsonArray.getJSONObject(i).getString(ms_flag) && jsonArray.getJSONObject(i).getString(ms_flag).equals("by")) {
+ format = format + "白蚁" ;
+ } else if (null!= jsonArray.getJSONObject(i).getString(ms_flag) && jsonArray.getJSONObject(i).getString(ms_flag).equals("bx")) {
+ format = format + "变形" ;
+ } else {
format = format + jsonArray.getJSONObject(i).getString(s);
}
} else {
@@ -514,6 +528,9 @@
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);
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 c12fe9c..4e7a2fc 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
@@ -311,9 +311,9 @@
// if (alarmRuleDetail.getAlarmMode().equals("电话")) {
// asyncNoticeHandle.outCallHandleCall(alarmRule, alarmRuleDetail, ztData,ZtApiDataColumnConstant.waterComeDesignList2,true, adCode, false,uuid);
// }
-// if (alarmRuleDetail.getAlarmMode().equals("站内信")) {
-// asyncNoticeHandle.waterComeDesignHandleStation(alarmRule, alarmRuleDetail, ztData,ZtApiDataColumnConstant.waterComeDesignList3,true, adCode, true,uuid);
-// }
+ if (alarmRuleDetail.getAlarmMode().equals("站内信")) {
+ asyncNoticeHandle.waterComeDesignHandleStation(alarmRule, alarmRuleDetail, ztData,ZtApiDataColumnConstant.waterComeDesignList3,true, adCode, true,uuid);
+ }
}
}
}
@@ -571,4 +571,37 @@
return "6小时降雨告警";
}
+
+ /**
+ * 策略19: 大坝安全监测告警
+ *
+ * @param arg1
+ * @param arg2
+ * @return
+ */
+ public String damSafetyHandle(String arg1, String arg2) {
+ //String adCode = "420607000000";
+ String uuid = UUID.randomUUID().toString();
+ String adCode = null;
+ // 查询当前策略对应的告警规则信息
+ AlarmRule alarmRule = alarmRuleService.getOne(new QueryWrapper<AlarmRule>().eq("rule_name", arg1));
+ // 调用中台服务接口查询数据
+ JSONArray ztData = noticeHandle.getZtData("", ZtApiUrlConstant.alarm_db_api);
+ // 获取告警规则详情,判断告警类型(短信,电话,站内信)
+ if (null!=alarmRule) {
+ // 查询告警详情信息
+ List<AlarmRuleDetail> alarmRuleDetailList = alarmRuleDetailService.list(new QueryWrapper<AlarmRuleDetail>().eq("alarm_rule_id", alarmRule.getId()));
+ if (alarmRuleDetailList.size()>0){
+ // 遍历
+ for (AlarmRuleDetail alarmRuleDetail : alarmRuleDetailList) {
+ if (alarmRuleDetail.getAlarmMode().equals("短信")) {
+ asyncNoticeHandle.damSafetyHandle(alarmRule, alarmRuleDetail, ztData,ZtApiDataColumnConstant.damSafetyList,true, adCode, false,uuid);
+ }
+ }
+ }
+ }
+ // 返回
+ return "大坝安全监测告警";
+ }
+
}
diff --git a/skjcmanager/skjcmanager-service/skjcmanager-alerts/src/main/java/cn/gistack/alerts/notice/strategy/NoticeStrategyContext.java b/skjcmanager/skjcmanager-service/skjcmanager-alerts/src/main/java/cn/gistack/alerts/notice/strategy/NoticeStrategyContext.java
index 0de77bb..666bdc8 100644
--- a/skjcmanager/skjcmanager-service/skjcmanager-alerts/src/main/java/cn/gistack/alerts/notice/strategy/NoticeStrategyContext.java
+++ b/skjcmanager/skjcmanager-service/skjcmanager-alerts/src/main/java/cn/gistack/alerts/notice/strategy/NoticeStrategyContext.java
@@ -54,6 +54,7 @@
strategyMap.put("alreadyRainstormHandle", (arg1, arg2) -> noticeStrategyImpl.alreadyRainstormHandle(arg1, arg2));
strategyMap.put("twoHourRainHandle", (arg1, arg2) -> noticeStrategyImpl.twoHourRainHandle(arg1, arg2));
strategyMap.put("sixHourRainHandle", (arg1, arg2) -> noticeStrategyImpl.sixHourRainHandle(arg1, arg2));
+ strategyMap.put("damSafetyHandle", (arg1, arg2) -> noticeStrategyImpl.damSafetyHandle(arg1, arg2));
}
/**
diff --git a/skjcmanager/skjcmanager-service/skjcmanager-alerts/src/main/java/cn/gistack/alerts/push/controller/PushController.java b/skjcmanager/skjcmanager-service/skjcmanager-alerts/src/main/java/cn/gistack/alerts/push/controller/PushController.java
index 3110d78..66e4b85 100644
--- a/skjcmanager/skjcmanager-service/skjcmanager-alerts/src/main/java/cn/gistack/alerts/push/controller/PushController.java
+++ b/skjcmanager/skjcmanager-service/skjcmanager-alerts/src/main/java/cn/gistack/alerts/push/controller/PushController.java
@@ -37,6 +37,19 @@
}
/**
+ * 通过用户id推送消息,用于2.0测试(多人)
+ * @param pushVO
+ * @return
+ */
+ @PostMapping("/pushMessageByUserList")
+ public R pushMessageByUserList(PushVO pushVO){
+ return R.data(pushService.pushMessageByUserList(pushVO));
+ }
+
+
+
+
+ /**
* 清空redis中的缓存
* @param userId
* @return
diff --git a/skjcmanager/skjcmanager-service/skjcmanager-alerts/src/main/java/cn/gistack/alerts/push/service/IPushService.java b/skjcmanager/skjcmanager-service/skjcmanager-alerts/src/main/java/cn/gistack/alerts/push/service/IPushService.java
index 7692fc3..69b7f2e 100644
--- a/skjcmanager/skjcmanager-service/skjcmanager-alerts/src/main/java/cn/gistack/alerts/push/service/IPushService.java
+++ b/skjcmanager/skjcmanager-service/skjcmanager-alerts/src/main/java/cn/gistack/alerts/push/service/IPushService.java
@@ -56,4 +56,6 @@
* @return
*/
Boolean geTuiPushMessage(PushVO pushVO);
+
+ Boolean pushMessageByUserList(PushVO pushVO);
}
diff --git a/skjcmanager/skjcmanager-service/skjcmanager-alerts/src/main/java/cn/gistack/alerts/push/service/impl/PushServiceImpl.java b/skjcmanager/skjcmanager-service/skjcmanager-alerts/src/main/java/cn/gistack/alerts/push/service/impl/PushServiceImpl.java
index 3389cd7..8d98f1f 100644
--- a/skjcmanager/skjcmanager-service/skjcmanager-alerts/src/main/java/cn/gistack/alerts/push/service/impl/PushServiceImpl.java
+++ b/skjcmanager/skjcmanager-service/skjcmanager-alerts/src/main/java/cn/gistack/alerts/push/service/impl/PushServiceImpl.java
@@ -15,6 +15,7 @@
import org.springframework.web.client.RestTemplate;
import java.util.*;
+import java.util.concurrent.atomic.AtomicReference;
@Service
@AllArgsConstructor
@@ -35,37 +36,34 @@
@Override
public Boolean pushMessageList(List<MessageRecord> messageRecordList) {
// 加入测试人员
- addSendMsgTest(messageRecordList);
+// addSendMsgTest(messageRecordList);
List<String> cIdList = new ArrayList<>();
+ AtomicReference<Boolean> push = new AtomicReference<>(false);
//相同的消息推送给多用户
messageRecordList.forEach(messageRecord -> {
//获取用户cId
String clientId = getClientIdByUserId(messageRecord.getRecipient());
- cIdList.add(clientId);
+ if (null!=clientId && !clientId.equals("")) {
+ cIdList.add(clientId);
+ PushVO pushVO = new PushVO();
+ pushVO.setCIds(cIdList);
+ pushVO.setTitle(messageRecord.getTheme());
+ pushVO.setContent(messageRecord.getContent());
+
+ HashMap<String, Object> payload = new HashMap<>();
+ payload.put("title",messageRecord.getTheme());
+ payload.put("content", messageRecord.getContent());
+ payload.put("payload", "test");
+ pushVO.setPayload(payload);
+ push.set(pushMessage(pushVO));
+ }
});
-
- //uni-push 一次推送最多500名用户,所以分批推送
- List<List<String>> groupList = groupListByQuantity(cIdList, 400);
- groupList.forEach(item->{
- PushVO pushVO = new PushVO();
-
- pushVO.setCIds(cIdList);
- pushVO.setTitle(messageRecordList.get(0).getTheme());
- pushVO.setContent(messageRecordList.get(0).getContent());
-
- HashMap<String,Object> payload = new HashMap<>();
- payload.put("title",messageRecordList.get(0).getTheme());
- payload.put("content",messageRecordList.get(0).getContent());
- payload.put("payload","test");
- pushVO.setPayload(payload);
- pushMessage(pushVO);
-
- });
- return true;
+ return push.get();
}
/**
* 新增测试信息
+ *
* @param messageRecordList
*/
private void addSendMsgTest(List<MessageRecord> messageRecordList) {
@@ -120,10 +118,10 @@
cIdList.add(clientIdByUserId);
pushVO.setCIds(cIdList);
- HashMap<String,Object> payload = new HashMap<>();
- payload.put("title",pushVO.getTitle());
- payload.put("content",pushVO.getContent());
- payload.put("payload","test");
+ HashMap<String, Object> payload = new HashMap<>();
+ payload.put("title", pushVO.getTitle());
+ payload.put("content", pushVO.getContent());
+ payload.put("payload", "test");
pushVO.setPayload(payload);
@@ -136,6 +134,32 @@
cIdList.add(getClientIdByUserId(pushVO.getUserId()));
// return geTuiUtils.pushMsg(cIdList, pushVO.getTitle(), pushVO.getContent());
return geTuiUtils.myPushMessage(cIdList, pushVO.getTitle(), pushVO.getContent());
+ }
+
+ @Override
+ public Boolean pushMessageByUserList(PushVO pushVO) {
+
+ if (Func.isEmpty(pushVO.getUserId())) {
+ throw new ServiceException("请填写用户id!");
+ }
+
+ //获取userIdList
+ List<String> userIdList = Arrays.asList(pushVO.getUserId().split(","));
+ List<MessageRecord> messageRecordList = new ArrayList<>();
+
+ userIdList.forEach(userId->{
+ MessageRecord messageRecord = new MessageRecord();
+
+ messageRecord.setContent(pushVO.getContent());
+ messageRecord.setTheme(pushVO.getTitle());
+ messageRecord.setRecipient(userId);
+
+ messageRecordList.add(messageRecord);
+ });
+
+ Boolean aBoolean = pushMessageList(messageRecordList);
+
+ return aBoolean;
}
/**
@@ -169,7 +193,7 @@
params.put("requestId", UUID.randomUUID());
- params.put("payload",pushVO.getPayload());
+ params.put("payload", pushVO.getPayload());
UniCloudReturnRes uniCloudReturnRes = template.postForObject(UNI_CLOUD_PUSH_URL, params, UniCloudReturnRes.class);
return uniCloudReturnRes.getErrCode().equals("0") ? true : false;
@@ -177,12 +201,13 @@
/**
* 对集合按指定数量进行分组
- * @param list 分组的集合
+ *
+ * @param list 分组的集合
* @param quantity 数量
* @param <T>
* @return
*/
- public <T> List<List<T>> groupListByQuantity(List list, int quantity) {
+ public <T> List<List<T>> groupListByQuantity(List list, int quantity) {
if (list == null || list.size() == 0) {
return list;
}
diff --git a/skjcmanager/skjcmanager-service/skjcmanager-alerts/src/main/java/cn/gistack/alerts/push/vo/PushVO.java b/skjcmanager/skjcmanager-service/skjcmanager-alerts/src/main/java/cn/gistack/alerts/push/vo/PushVO.java
index ba30ad2..48ca6f4 100644
--- a/skjcmanager/skjcmanager-service/skjcmanager-alerts/src/main/java/cn/gistack/alerts/push/vo/PushVO.java
+++ b/skjcmanager/skjcmanager-service/skjcmanager-alerts/src/main/java/cn/gistack/alerts/push/vo/PushVO.java
@@ -17,4 +17,5 @@
private String userId;
private HashMap<String,Object> payload;
+
}
diff --git a/skjcmanager/skjcmanager-service/skjcmanager-alerts/src/main/java/cn/gistack/alerts/sms/controller/SmsController.java b/skjcmanager/skjcmanager-service/skjcmanager-alerts/src/main/java/cn/gistack/alerts/sms/controller/SmsController.java
index d05baee..3aa840d 100644
--- a/skjcmanager/skjcmanager-service/skjcmanager-alerts/src/main/java/cn/gistack/alerts/sms/controller/SmsController.java
+++ b/skjcmanager/skjcmanager-service/skjcmanager-alerts/src/main/java/cn/gistack/alerts/sms/controller/SmsController.java
@@ -8,21 +8,28 @@
import cn.gistack.alerts.sms.entity.SmsRequest;
import cn.gistack.alerts.sms.entity.SmsResult;
import cn.gistack.alerts.sms.excel.SendRainSmsExcel;
+import cn.gistack.alerts.sms.excel.SendSmsExcel;
import cn.gistack.alerts.sms.listener.ExcelListener;
import cn.gistack.alerts.sms.service.SmsService;
import cn.gistack.alerts.sms.util.SmsUtils;
import cn.gistack.alerts.sms.vo.SmsRequestTemplate;
import cn.gistack.alerts.sms.vo.SmsResponseVO;
+import cn.gistack.sm.intelligentCall.excel.CallExcel;
import cn.gistack.system.user.entity.User;
import cn.gistack.system.user.feign.IUserClient;
import com.alibaba.excel.EasyExcel;
+import io.swagger.annotations.ApiOperation;
import lombok.AllArgsConstructor;
import lombok.extern.slf4j.Slf4j;
+import org.springblade.core.excel.util.ExcelUtil;
import org.springblade.core.redis.cache.BladeRedis;
import org.springblade.core.tool.api.R;
import org.springframework.web.bind.annotation.*;
import org.springframework.web.multipart.MultipartFile;
+
+import javax.servlet.http.HttpServletResponse;
import java.io.IOException;
+import java.util.ArrayList;
import java.util.Arrays;
import java.util.List;
import java.util.Map;
@@ -222,4 +229,38 @@
// 导入并返回
return R.data(smsService.batchSendSms(map));
}
+
+
+ /**
+ * 导入表格发送预警短信
+ * @param file excel文件
+ * @param templateId 模板id
+ * @param param 通用参数
+ * @param content 发送内容
+ * @return
+ */
+ @PostMapping("/import-send-sms")
+ public R importSendSms(MultipartFile file,String templateId,String param,String content){
+ ExcelListener<SendSmsExcel> listener = new ExcelListener<>();
+ //headRowNumber(1)从第2行开始读取,使用getDatas()方法取出数据
+ try {
+ EasyExcel.read(file.getInputStream(), SendSmsExcel.class, listener).headRowNumber(1).sheet(0).doRead();
+ } catch (IOException e) {
+ e.printStackTrace();
+ }
+ List<SendSmsExcel> list = listener.getDatas();
+ // 导入并返回
+ return R.data(smsService.importSendSms(list,templateId,param,content));
+ }
+
+
+ /**
+ * 导出模板
+ */
+ @GetMapping("/export-template")
+ @ApiOperation(value = "导出模板")
+ public void exportTemplate(HttpServletResponse response) {
+ List<SendSmsExcel> list = new ArrayList<>();
+ ExcelUtil.export(response, "短信发送数据模板", "短信发送数据表", list, SendSmsExcel.class);
+ }
}
diff --git a/skjcmanager/skjcmanager-service/skjcmanager-alerts/src/main/java/cn/gistack/alerts/sms/excel/SendSmsExcel.java b/skjcmanager/skjcmanager-service/skjcmanager-alerts/src/main/java/cn/gistack/alerts/sms/excel/SendSmsExcel.java
new file mode 100644
index 0000000..c17c070
--- /dev/null
+++ b/skjcmanager/skjcmanager-service/skjcmanager-alerts/src/main/java/cn/gistack/alerts/sms/excel/SendSmsExcel.java
@@ -0,0 +1,22 @@
+package cn.gistack.alerts.sms.excel;
+
+import com.alibaba.excel.annotation.ExcelProperty;
+import com.alibaba.excel.annotation.write.style.ColumnWidth;
+import com.alibaba.excel.annotation.write.style.ContentRowHeight;
+import com.alibaba.excel.annotation.write.style.HeadRowHeight;
+import lombok.Data;
+
+import java.io.Serializable;
+
+@Data
+@ColumnWidth(25)
+@HeadRowHeight(20)
+@ContentRowHeight(18)
+public class SendSmsExcel implements Serializable {
+
+ private static final long serialVersionUID = 1L;
+
+ @ColumnWidth(15)
+ @ExcelProperty("手机号码")
+ private String phone;
+}
diff --git a/skjcmanager/skjcmanager-service/skjcmanager-alerts/src/main/java/cn/gistack/alerts/sms/mapper/SmsResultMapper.xml b/skjcmanager/skjcmanager-service/skjcmanager-alerts/src/main/java/cn/gistack/alerts/sms/mapper/SmsResultMapper.xml
index 4712327..99f3676 100644
--- a/skjcmanager/skjcmanager-service/skjcmanager-alerts/src/main/java/cn/gistack/alerts/sms/mapper/SmsResultMapper.xml
+++ b/skjcmanager/skjcmanager-service/skjcmanager-alerts/src/main/java/cn/gistack/alerts/sms/mapper/SmsResultMapper.xml
@@ -4,13 +4,23 @@
<!--自定义分页列表查询-->
<select id="selectSmsResultPage" resultType="cn.gistack.alerts.sms.vo.SmsResultVO">
- select ssr.*,sst.content templateContent,sst.sms_type as smsType
+ select ssr.*,
+ sar.rule_name as ruleName,
+ sst.content templateContent,sst.sms_type as smsType
from sm_sms_result ssr
left join sm_sms_template sst on sst.template_id = ssr.template_id and sst.is_deleted = 0
+ left join YWXT.sm_alarm_rule_detail sard on sard.template_id = sst.id
+ left join YWXT.sm_alarm_rule sar on sar.id = sard.alarm_rule_id
where 1=1 and ssr.is_deleted = 0
<if test="smsResult.templateId!=null and smsResult.templateId!=''">
and ssr.template_id = #{smsResult.templateId}
</if>
+ <if test="smsResult.resCode==0">
+ and ssr.res_code =0
+ </if>
+ <if test="smsResult.resCode==1">
+ and ssr.res_code !=0
+ </if>
<if test="smsResult.templateContent!=null and smsResult.templateContent!=''">
and sst.content like concat('%',#{smsResult.templateContent},'%')
</if>
diff --git a/skjcmanager/skjcmanager-service/skjcmanager-alerts/src/main/java/cn/gistack/alerts/sms/mapper/SmsTemplateMapper.xml b/skjcmanager/skjcmanager-service/skjcmanager-alerts/src/main/java/cn/gistack/alerts/sms/mapper/SmsTemplateMapper.xml
index fab581f..004b6a6 100644
--- a/skjcmanager/skjcmanager-service/skjcmanager-alerts/src/main/java/cn/gistack/alerts/sms/mapper/SmsTemplateMapper.xml
+++ b/skjcmanager/skjcmanager-service/skjcmanager-alerts/src/main/java/cn/gistack/alerts/sms/mapper/SmsTemplateMapper.xml
@@ -17,6 +17,9 @@
<if test="smsTemplate.type!=null and smsTemplate.type!=''">
and type = #{smsTemplate.type}
</if>
+ <if test="smsTemplate.smsType!=null">
+ and sms_type = #{smsTemplate.smsType}
+ </if>
<if test="smsTemplate.noticeMode!=null and smsTemplate.noticeMode!=''">
and notice_mode = #{smsTemplate.noticeMode}
</if>
diff --git a/skjcmanager/skjcmanager-service/skjcmanager-alerts/src/main/java/cn/gistack/alerts/sms/service/SmsService.java b/skjcmanager/skjcmanager-service/skjcmanager-alerts/src/main/java/cn/gistack/alerts/sms/service/SmsService.java
index a21a3e2..9e02166 100644
--- a/skjcmanager/skjcmanager-service/skjcmanager-alerts/src/main/java/cn/gistack/alerts/sms/service/SmsService.java
+++ b/skjcmanager/skjcmanager-service/skjcmanager-alerts/src/main/java/cn/gistack/alerts/sms/service/SmsService.java
@@ -7,6 +7,7 @@
import cn.gistack.alerts.sms.entity.SmsRequest;
import cn.gistack.alerts.sms.entity.SmsResult;
import cn.gistack.alerts.sms.excel.SendRainSmsExcel;
+import cn.gistack.alerts.sms.excel.SendSmsExcel;
import cn.gistack.alerts.sms.vo.SmsRequestTemplate;
import cn.gistack.alerts.sms.vo.SmsResponseVO;
@@ -105,4 +106,14 @@
* @return
*/
Object batchSendSms(Map<String, Object> map);
+
+ /**
+ * 导入表格发送预警短信
+ * @param list 集合数据
+ * @param templateId 模板id
+ * @param param 通用参数
+ * @param content 发送内容
+ * @return
+ */
+ Object importSendSms(List<SendSmsExcel> list,String templateId,String param, String content);
}
diff --git a/skjcmanager/skjcmanager-service/skjcmanager-alerts/src/main/java/cn/gistack/alerts/sms/service/impl/SmsResultServiceImpl.java b/skjcmanager/skjcmanager-service/skjcmanager-alerts/src/main/java/cn/gistack/alerts/sms/service/impl/SmsResultServiceImpl.java
index 3246f07..3e0e68b 100644
--- a/skjcmanager/skjcmanager-service/skjcmanager-alerts/src/main/java/cn/gistack/alerts/sms/service/impl/SmsResultServiceImpl.java
+++ b/skjcmanager/skjcmanager-service/skjcmanager-alerts/src/main/java/cn/gistack/alerts/sms/service/impl/SmsResultServiceImpl.java
@@ -43,7 +43,9 @@
}
if (null!=smsResult.getIsExport()){
// 导出,不分页
- return baseMapper.selectSmsResultPage(null,smsResult,list);
+ List<SmsResultVO> resultVOList = baseMapper.selectSmsResultPage(null, smsResult, list);
+ // 设置统计值
+ return resultVOList;
}
// 查询返回
return page.setRecords(baseMapper.selectSmsResultPage(page,smsResult,list));
diff --git a/skjcmanager/skjcmanager-service/skjcmanager-alerts/src/main/java/cn/gistack/alerts/sms/service/impl/SmsServiceImpl.java b/skjcmanager/skjcmanager-service/skjcmanager-alerts/src/main/java/cn/gistack/alerts/sms/service/impl/SmsServiceImpl.java
index deacf38..d342442 100644
--- a/skjcmanager/skjcmanager-service/skjcmanager-alerts/src/main/java/cn/gistack/alerts/sms/service/impl/SmsServiceImpl.java
+++ b/skjcmanager/skjcmanager-service/skjcmanager-alerts/src/main/java/cn/gistack/alerts/sms/service/impl/SmsServiceImpl.java
@@ -18,6 +18,7 @@
import cn.gistack.alerts.sms.entity.SmsResult;
import cn.gistack.alerts.sms.entity.SmsTemplate;
import cn.gistack.alerts.sms.excel.SendRainSmsExcel;
+import cn.gistack.alerts.sms.excel.SendSmsExcel;
import cn.gistack.alerts.sms.service.ISmsRecordService;
import cn.gistack.alerts.sms.service.ISmsResultService;
import cn.gistack.alerts.sms.service.ISmsTemplateService;
@@ -27,12 +28,14 @@
import cn.gistack.alerts.sms.vo.SmsResponseVO;
import cn.gistack.alerts.sms.vo.Temp;
import cn.gistack.sm.intelligentCall.entity.CallNotFillRecord;
+import cn.gistack.sm.intelligentCall.excel.CallExcel;
import cn.gistack.sm.intelligentCall.feign.OutCallClient;
import cn.gistack.sm.message.entity.MessageRecord;
import cn.gistack.sm.sjztmd.feign.IAttResManagePersonClient;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.core.toolkit.IdWorker;
import com.google.common.collect.Lists;
+import com.google.common.collect.Sets;
import org.jetbrains.annotations.NotNull;
import org.springblade.core.redis.cache.BladeRedis;
import org.springblade.core.secure.utils.AuthUtil;
@@ -848,6 +851,112 @@
});
}
+// /**
+// * 发送合并水库名短信
+// * @param smsRequestTemplate
+// */
+// @Override
+// public void sendMergeSignMsg(SmsRequestTemplate smsRequestTemplate) {
+// // 取出数据
+// SMSSendRequest request = new SMSSendRequest();
+// SmsTemplate smsTemplate = smsRequestTemplate.getSmsTemplate();
+// request.setTemplateId(smsTemplate.getTemplateId());
+// List<List<String>> templateContent = smsRequestTemplate.getTemplateContent();
+// List<Temp> tempList = new ArrayList<>();
+// // 合并数据
+// for (List<String> list : templateContent) {
+// Temp temp = new Temp();
+// temp.setPhone(list.get(1));
+// temp.setReservoirCode(list.get(0));
+// temp.setReservoirName(list.get(3));
+// temp.setAlarmRecordId(list.get(list.size()-1));
+// // 放入临时集合
+// tempList.add(temp);
+// }
+// // 按手机号分组
+// Map<String, List<Temp>> listMap = tempList.stream().collect(Collectors.groupingBy(Temp::getPhone));
+// // 短信发送行数据
+// List<String> rowList = new ArrayList<>();
+// // 告警记录详情数据
+// List<AlarmRecordDetailVO> alarmRecordDetailList = new ArrayList<>();
+// // 遍历 map 发送短信,组装数据
+// listMap.forEach((s, temps) -> {
+// StringBuilder builder = new StringBuilder();
+// StringBuilder smsRecordBuilder = new StringBuilder();
+// builder.append(s).append(",");
+// // 如果一人对应水库数量超过30个,则分批发送
+// List<List<Temp>> lists = Lists.partition(new ArrayList<>(temps), 30);
+// for (List<Temp> list : lists) {
+// // 遍历
+// for (Temp temp : list) {
+// builder.append(temp.getReservoirName()).append(",");
+// smsRecordBuilder.append(temp.getReservoirName()).append(",");
+// AlarmRecordDetailVO alarmRecordDetail = new AlarmRecordDetailVO();
+// alarmRecordDetail.setReservoirNumber(temp.getReservoirCode());
+// alarmRecordDetail.setAlarmRecordId(Long.parseLong(temp.getAlarmRecordId()));
+// alarmRecordDetail.setAlarmMode("短信");
+// alarmRecordDetail.setPhone(temp.getPhone());
+// alarmRecordDetail.setReservoirName(temp.getReservoirName());
+// // 加入集合
+// alarmRecordDetailList.add(alarmRecordDetail);
+// }
+// String row = builder.substring(0, builder.length() - 1);
+// rowList.add(row);
+// }
+// });
+// // 批量发送短信
+// mergeBatchSendSms(smsRequestTemplate,request,smsTemplate,rowList,alarmRecordDetailList);
+// }
+
+ /**
+ * 批量发送合并水库的短信
+ */
+ public void mergeBatchSendSms(SmsRequestTemplate smsRequestTemplate,
+ SMSSendRequest request,
+ SmsTemplate smsTemplate,
+ List<String> rowList,
+ List<AlarmRecordDetailVO> alarmRecordDetailList) {
+ // 组装数据
+ String[] titleArr = smsRequestTemplate.getTitle().split(",");
+ String[][] dyns = new String[rowList.size() + 1][titleArr.length];
+ dyns[0] = titleArr;
+ int rowNum = 1;
+ for (String row : rowList) {
+ String[] cols = row.split(",");
+ dyns[rowNum++] = cols;
+ }
+ //请求参数
+ ComResult<DynSMSSendDataResult> resultComResult = sendDynSMSSendDataResultComResult(smsTemplate.getTemplateId(), dyns);
+ // 先保存结果记录
+ SmsResult smsResult = saveSendResult(resultComResult.getCode().toString(),resultComResult.getMsg(),request, rowList.size());
+ List<AlarmRecordDetail> alarmRecordDetailArrayList = new ArrayList<>();
+ // 遍历
+ for (AlarmRecordDetailVO alarmRecordDetailVO : alarmRecordDetailList) {
+ // 设置手机号
+ request.setUserNumber(alarmRecordDetailVO.getPhone());
+ // 内容处理
+ String str = smsTemplate.getContent().replaceAll("\\{.+?\\}", "%s");
+ // 格式转换
+ String formatContent = String.format(str, alarmRecordDetailVO.getReservoirName().split(","));
+ // 设置内容
+ request.setMessageContent(formatContent);
+ // 保存短信发送记录
+ SmsRecord smsRecord = saveSendRecord(request, resultComResult.getCode().toString(), resultComResult.getMsg(), smsResult.getId());
+ AlarmRecordDetail alarmRecordDetail1 = new AlarmRecordDetail();
+ // 短信内容拼接(完成发送的结果信息)
+ alarmRecordDetail1.setAlarmContent(formatContent);
+ alarmRecordDetail1.setSendRecordId(smsRecord.getId());
+ alarmRecordDetail1.setCreateTime(new Date());
+ alarmRecordDetail1.setReservoirNumber(alarmRecordDetailVO.getReservoirNumber());
+ alarmRecordDetail1.setAlarmRecordId(alarmRecordDetailVO.getAlarmRecordId());
+ alarmRecordDetail1.setAlarmMode(alarmRecordDetailVO.getAlarmMode());
+ alarmRecordDetail1.setPhone(alarmRecordDetailVO.getPhone());
+ alarmRecordDetailArrayList.add(alarmRecordDetail1);
+ }
+ // 保存告警记录详情信息
+ boolean save = alarmRecordDetailService.saveBatch(alarmRecordDetailArrayList);
+ }
+
/**
* 批量发送短信(集合数据)
* @param map (保护参数 1:短信模板id 2:数据集合 list<Map<String,Object>>)
@@ -874,4 +983,88 @@
// 返回
return batchSendSmsMap;
}
+
+ /**
+ * 导入表格发送预警短信
+ * @param list 集合数据
+ * @param templateId 模板id
+ * @param param 通用参数
+ * @param content 发送内容
+ * @return
+ */
+ @Override
+ public Object importSendSms(List<SendSmsExcel> list,String templateId,String param, String content) {
+ // 查询短信模板
+ SmsTemplate smsTemplate = smsTemplateService.getOne(new QueryWrapper<SmsTemplate>().eq("template_id", templateId));
+ // 判断模板是否为具名变量模板(目前已筛选出都是具名变量模板)
+ // 判断模板中是否包含参数,如果无参数,对比是否传参数
+ boolean validate = validatorParam(smsTemplate,param);
+ if (!validate){
+ return R.data(400,"参数个数不对应,请检查后修改导入!",null);
+ }
+ // 转换
+ List<String> stringList = list.stream().map(SendSmsExcel::getPhone).collect(Collectors.toList());
+ // 获取水库个数
+ List<String> errPhones = new ArrayList<>();
+ // 去重
+ Set<String> hashSet = new HashSet<>(stringList);
+ // 拼接短信标题数组
+ String [] titleArr = getSmsTitleArr(smsTemplate);
+ // 批量发送不能超过1000 个号码,需分组发送
+ List<String> arrayList = new ArrayList<>(hashSet);
+ List<List<String>> partition = Lists.partition(arrayList, 1000);
+ int i = 0;
+ String errMsg = "";
+ for (List<String> phoneList : partition) {
+ HashSet<String> sets = new HashSet<>(phoneList);
+ // 批量发送短信
+ Map<String, Object> batchSendSmsMap = batchSendSms(sets, titleArr, param, smsTemplate,errPhones);
+ // 取出发送结果
+ ComResult<DynSMSSendDataResult> resultComResult = (ComResult<DynSMSSendDataResult>) batchSendSmsMap.get("resultComResult");
+ //
+ if(!resultComResult.getCode().equals(0)){
+ i++;
+ errMsg = resultComResult.getMsg();
+ break;
+ }
+ }
+ if (i>0){
+ // 返回resultComResult
+ return R.data(400,"发送失败!" + errMsg,null);
+ }
+ // 返回resultComResult
+ return R.data(200,"发送成功!",null);
+ }
+
+ /**
+ * 校验参数
+ * @param smsTemplate
+ * @param param
+ */
+ private boolean validatorParam(SmsTemplate smsTemplate, String param) {
+ int length = 0;
+ if (null!= param && !param.equals("")) {
+ length = Arrays.asList(param.split(",")).size();
+ }
+ // 解析模板
+ String str = smsTemplate.getContent().replaceAll("\\{.+?\\}", "%s");
+ int countChar = countChar(str, '%');
+ if (length==countChar){
+ return true;
+ }else {
+ return false;
+ }
+ }
+
+ /**
+ * 计算某个字符在字符串中的个数
+ * @param str 字符串
+ * @param target 字符
+ * @return
+ */
+ public int countChar(String str, char target) {
+ String targetStr = String.valueOf(target);
+ String replacedStr = str.replaceAll(targetStr, "");
+ return str.length() - replacedStr.length();
+ }
}
diff --git a/skjcmanager/skjcmanager-service/skjcmanager-alerts/src/main/resources/application-test.yml b/skjcmanager/skjcmanager-service/skjcmanager-alerts/src/main/resources/application-test.yml
new file mode 100644
index 0000000..b9898de
--- /dev/null
+++ b/skjcmanager/skjcmanager-service/skjcmanager-alerts/src/main/resources/application-test.yml
@@ -0,0 +1,54 @@
+#服务器端口
+server:
+ port: 8111
+
+#数据源配置
+#spring:
+# datasource:
+# url: ${blade.datasource.test.url}
+# username: ${blade.datasource.test.username}
+# password: ${blade.datasource.test.password}
+
+#多数据源配置
+spring:
+ #排除DruidDataSourceAutoConfigure
+ autoconfigure:
+ exclude: com.alibaba.druid.spring.boot.autoconfigure.DruidDataSourceAutoConfigure
+ datasource:
+ dynamic:
+ #设置默认的数据源或者数据源组,默认值即为master
+ primary: master
+ datasource:
+ master:
+ url: ${blade.datasource.test.url}
+ username: ${blade.datasource.test.username}
+ password: ${blade.datasource.test.password}
+ zt:
+ url: ${blade.datasource.test.zt.url}
+ username: ${blade.datasource.test.zt.username}
+ password: ${blade.datasource.test.zt.password}
+ # 智能外呼数据库
+ ztznwh:
+ url: ${blade.datasource.test.ztznwh.url}
+ username: ${blade.datasource.test.ztznwh.username}
+ password: ${blade.datasource.test.ztznwh.password}
+ ## 定时器数据源
+ xxljob:
+ url: ${blade.datasource.test.xxljob.url}
+ username: ${blade.datasource.test.xxljob.username}
+ password: ${blade.datasource.test.xxljob.password}
+ ## 智能外呼数据源(mysql)
+ znwh:
+ driver-class-name: ${blade.datasource.test.znwh.driver-class-name}
+ url: ${blade.datasource.test.znwh.url}
+ username: ${blade.datasource.test.znwh.username}
+ password: ${blade.datasource.test.znwh.password}
+ main:
+ allow-circular-references: true
+getui:
+ appId: "zyUET0RTBHAzLyMhV7dY32"
+ appKey: "wuY8226sbu66P6tF9T0Fj5"
+ appSecret: "IN3UEIeUccAiYgcBTLcK3A"
+ masterSecret: "vlhKpASV66AJEfWnCgFsB2"
+ # Url前缀
+ baseUrl: "https://restapi.getui.com/v2/"
diff --git a/skjcmanager/skjcmanager-service/skjcmanager-nky/src/main/java/cn/gistack/nky/mapper/AlarmGetMapper.xml b/skjcmanager/skjcmanager-service/skjcmanager-nky/src/main/java/cn/gistack/nky/mapper/AlarmGetMapper.xml
index 56e92a5..598011f 100644
--- a/skjcmanager/skjcmanager-service/skjcmanager-nky/src/main/java/cn/gistack/nky/mapper/AlarmGetMapper.xml
+++ b/skjcmanager/skjcmanager-service/skjcmanager-nky/src/main/java/cn/gistack/nky/mapper/AlarmGetMapper.xml
@@ -43,7 +43,17 @@
AND dam_id = #{vo.damId}
</select>
<select id="getAlarmDetailPage" resultType="cn.gistack.nky.vo.AlarmGetVO">
- SELECT * FROM NKY_ALARM_GET
+ SELECT
+ ID,DAM_ID,POINT_ID,TYPE,
+ (
+ CASE
+ WHEN TYPE=1 THEN '渗压'
+ WHEN TYPE=2 THEN '渗流'
+ WHEN (TYPE=3 OR TYPE=4 OR TYPE=5) THEN '位移'
+ END) AS typeName,
+ "TIME","VALUE","DESC",CREATE_TIME,TASK_CATEGORY,"LEVEL",BAOJINGZHI,ORIGIN_ID,FORWARD,"REVERSE",RATIO,STATUS
+
+ FROM YWXT.NKY_ALARM_GET
WHERE 1=1
<if test="vo.startTime != null and vo.startTime != ''">
AND DATE_FORMAT(time,'%Y-%m-%d') >= #{vo.startTime}
@@ -57,9 +67,15 @@
<if test="vo.status != null and vo.status !='' ">
AND status = #{vo.status}
</if>
- <if test="vo.type != null and vo.type !='' ">
+ <if test="vo.type != null and vo.type !='' and vo.type == 1 ">
AND type = #{vo.type}
</if>
+ <if test="vo.type != null and vo.type !='' and vo.type == 2">
+ AND type = #{vo.type}
+ </if>
+ <if test="vo.type != null and vo.type !='' and vo.type == 3">
+ AND (type = '3' or type = '4' or type = '5')
+ </if>
<if test="vo.pointId != null and vo.pointId !='' ">
AND POINT_id = #{vo.pointId}
</if>
diff --git a/skjcmanager/skjcmanager-service/skjcmanager-nky/src/main/resources/application-test.yml b/skjcmanager/skjcmanager-service/skjcmanager-nky/src/main/resources/application-test.yml
new file mode 100644
index 0000000..5e1e77e
--- /dev/null
+++ b/skjcmanager/skjcmanager-service/skjcmanager-nky/src/main/resources/application-test.yml
@@ -0,0 +1,39 @@
+#服务器端口
+server:
+ port: 8115
+
+#数据源配置
+#spring:
+# datasource:
+# url: ${blade.datasource.test.url}
+# username: ${blade.datasource.test.username}
+# password: ${blade.datasource.test.password}
+
+#多数据源配置
+spring:
+ rabbitmq:
+ host: 10.42.7.146
+ port: 5672
+ username: algo
+ password: P6#yzdd7
+ virtual-host: /
+ #排除DruidDataSourceAutoConfigure
+ autoconfigure:
+ exclude: com.alibaba.druid.spring.boot.autoconfigure.DruidDataSourceAutoConfigure
+ datasource:
+ dynamic:
+ #设置默认的数据源或者数据源组,默认值即为master
+ primary: master
+ datasource:
+ master:
+ url: ${blade.datasource.test.url}
+ username: ${blade.datasource.test.username}
+ password: ${blade.datasource.test.password}
+ zt:
+ url: ${blade.datasource.test.zt.url}
+ username: ${blade.datasource.test.zt.username}
+ password: ${blade.datasource.test.zt.password}
+
+ main:
+ allow-circular-references: true
+
diff --git a/skjcmanager/skjcmanager-service/skjcmanager-pwd/src/main/resources/application-test.yml b/skjcmanager/skjcmanager-service/skjcmanager-pwd/src/main/resources/application-test.yml
new file mode 100644
index 0000000..b598c23
--- /dev/null
+++ b/skjcmanager/skjcmanager-service/skjcmanager-pwd/src/main/resources/application-test.yml
@@ -0,0 +1,36 @@
+#服务器端口
+server:
+ port: 8120
+
+#数据源配置
+#spring:
+# datasource:
+# url: ${blade.datasource.test.url}
+# username: ${blade.datasource.test.username}
+# password: ${blade.datasource.test.password}
+
+#多数据源配置
+spring:
+ #排除DruidDataSourceAutoConfigure
+ autoconfigure:
+ exclude: com.alibaba.druid.spring.boot.autoconfigure.DruidDataSourceAutoConfigure
+ datasource:
+ dynamic:
+ #设置默认的数据源或者数据源组,默认值即为master
+ primary: master
+ datasource:
+ master:
+ url: ${blade.datasource.test.url}
+ username: ${blade.datasource.test.username}
+ password: ${blade.datasource.test.password}
+ zt:
+ url: ${blade.datasource.test.zt.url}
+ username: ${blade.datasource.test.zt.username}
+ password: ${blade.datasource.test.zt.password}
+
+ main:
+ allow-circular-references: true
+
+yunPwd:
+ config:
+ url-prefix: http://10.10.1.1
diff --git a/skjcmanager/skjcmanager-service/skjcmanager-sm/src/main/java/cn/gistack/sm/damSecurity/mapper/DamSecurityMapper.xml b/skjcmanager/skjcmanager-service/skjcmanager-sm/src/main/java/cn/gistack/sm/damSecurity/mapper/DamSecurityMapper.xml
index 3908b22..8fc6ac1 100644
--- a/skjcmanager/skjcmanager-service/skjcmanager-sm/src/main/java/cn/gistack/sm/damSecurity/mapper/DamSecurityMapper.xml
+++ b/skjcmanager/skjcmanager-service/skjcmanager-sm/src/main/java/cn/gistack/sm/damSecurity/mapper/DamSecurityMapper.xml
@@ -204,6 +204,7 @@
info."guid" AS resCd,
info."name" AS resName,
info."eng_scal" AS engScal,
+ info."res_reg_code" AS resRegCode,
info."town_ad_code" AS townCode,
info."town_ad_name" AS townName,
info."county_ad_code" AS countyCode,
@@ -221,6 +222,7 @@
a."guid",
a."name",
a."eng_scal",
+ a."res_reg_code",
case when b."ad_grad" = 4 THEN b."ad_code" ELSE NULL END AS "town_ad_code",
case when b."ad_grad" = 4 THEN b."ad_name" ELSE NULL END AS "town_ad_name",
case when b."ad_grad" = 4 THEN b."order_id" ELSE NULL END AS "town_order_id",
diff --git a/skjcmanager/skjcmanager-service/skjcmanager-sm/src/main/java/cn/gistack/sm/damSecurity/vo/DamStationStatistics.java b/skjcmanager/skjcmanager-service/skjcmanager-sm/src/main/java/cn/gistack/sm/damSecurity/vo/DamStationStatistics.java
index 9dec8d8..4e5808d 100644
--- a/skjcmanager/skjcmanager-service/skjcmanager-sm/src/main/java/cn/gistack/sm/damSecurity/vo/DamStationStatistics.java
+++ b/skjcmanager/skjcmanager-service/skjcmanager-sm/src/main/java/cn/gistack/sm/damSecurity/vo/DamStationStatistics.java
@@ -13,12 +13,18 @@
*/
private String resCd;
+
/**
* 水库名称
*/
private String resName;
/**
+ * 水库注册码
+ */
+ private String resRegCode;
+
+ /**
* 地市
*/
private String cityName;
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 28d39b0..5b34db2 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
@@ -135,6 +135,11 @@
*/
public static final String eventSubscriptionViewURLs = "/api/eventService/v1/eventSubscriptionView";
+ /**
+ * 区域的批量添加
+ */
+ public static final String batchAddURLs = "/api/resource/v1/region/batch/add";
+
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 eb5aee8..d4619e9 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
@@ -4,6 +4,8 @@
import cn.gistack.sm.hk.constant.ProtocolConstant;
import cn.gistack.sm.hk.service.HkService;
import cn.gistack.sm.hk.vo.HkVO;
+import cn.gistack.sm.hk.vo.VideoVO;
+import com.alibaba.fastjson.JSON;
import com.alibaba.fastjson.JSONObject;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
@@ -13,6 +15,8 @@
import org.springblade.core.tool.api.R;
import org.springframework.web.bind.annotation.*;
+import java.util.ArrayList;
+import java.util.List;
import java.util.Map;
import static cn.gistack.sm.hk.util.GetCameraUtils.*;
@@ -310,4 +314,31 @@
return R.data(common(null==hk.getType()?1:hk.getType(),HkConstant.presetsDeletionURLs, body));
}
+ /**
+ * 同步水库设备信息
+ * @param hk 水库设备
+ * @return
+ */
+ @ApiOperation(value = "海康设备-同步水库设备信息", notes = "海康设备-同步水库设备信息")
+ @PostMapping(value = "/syncVideo")
+ public R syncVideo(@RequestBody HkVO hk) {
+ /**
+ * 组装请求参数
+ */
+ List<VideoVO> list = new ArrayList<>();
+ VideoVO video = new VideoVO();
+ video.setRegionName(hk.getRegionName());
+ video.setRegionIndexCode(hk.getRegionIndexCode());
+ video.setParentIndexCode("root000000");
+ video.setRegionType(10);
+ list.add(video);
+ String body = JSON.toJSONString(list);
+
+ /**
+ * 调用接口并返回数据
+ * post请求application/json类型参数;
+ */
+ return R.data(JSONObject.parseObject(common(null==hk.getType()?2:hk.getType(),HkConstant.batchAddURLs, body)));
+ }
+
}
diff --git a/skjcmanager/skjcmanager-service/skjcmanager-sm/src/main/java/cn/gistack/sm/hk/vo/HkVO.java b/skjcmanager/skjcmanager-service/skjcmanager-sm/src/main/java/cn/gistack/sm/hk/vo/HkVO.java
index 286c874..d53edf6 100644
--- a/skjcmanager/skjcmanager-service/skjcmanager-sm/src/main/java/cn/gistack/sm/hk/vo/HkVO.java
+++ b/skjcmanager/skjcmanager-service/skjcmanager-sm/src/main/java/cn/gistack/sm/hk/vo/HkVO.java
@@ -139,4 +139,14 @@
* 扩展
*/
private String expand;
+
+ /**
+ * 水库/区域名称
+ */
+ private String regionName;
+
+ /**
+ * 水库/区域编号
+ */
+ private String regionIndexCode;
}
diff --git a/skjcmanager/skjcmanager-service/skjcmanager-sm/src/main/java/cn/gistack/sm/hk/vo/VideoVO.java b/skjcmanager/skjcmanager-service/skjcmanager-sm/src/main/java/cn/gistack/sm/hk/vo/VideoVO.java
new file mode 100644
index 0000000..e59508f
--- /dev/null
+++ b/skjcmanager/skjcmanager-service/skjcmanager-sm/src/main/java/cn/gistack/sm/hk/vo/VideoVO.java
@@ -0,0 +1,24 @@
+package cn.gistack.sm.hk.vo;
+
+import lombok.Data;
+
+import java.io.Serializable;
+
+@Data
+public class VideoVO implements Serializable {
+
+ private String parentIndexCode;
+
+ /**
+ * 水库名称
+ */
+ private String regionName;
+
+ /**
+ * 水库编号
+ */
+ private String regionIndexCode;
+
+ private Integer regionType;
+
+}
diff --git a/skjcmanager/skjcmanager-service/skjcmanager-sm/src/main/java/cn/gistack/sm/intelligentCall/controller/CallController.java b/skjcmanager/skjcmanager-service/skjcmanager-sm/src/main/java/cn/gistack/sm/intelligentCall/controller/CallController.java
index dd80561..055cbe3 100644
--- a/skjcmanager/skjcmanager-service/skjcmanager-sm/src/main/java/cn/gistack/sm/intelligentCall/controller/CallController.java
+++ b/skjcmanager/skjcmanager-service/skjcmanager-sm/src/main/java/cn/gistack/sm/intelligentCall/controller/CallController.java
@@ -2,18 +2,26 @@
import cn.gistack.sm.intelligentCall.entity.CallTaskResult;
import cn.gistack.sm.intelligentCall.entity.Scene;
+import cn.gistack.sm.intelligentCall.excel.CallExcel;
+import cn.gistack.sm.intelligentCall.listener.ExcelListener;
import cn.gistack.sm.intelligentCall.service.CallService;
import cn.gistack.sm.intelligentCall.service.ICallSmsNoticeTaskService;
import cn.gistack.sm.intelligentCall.vo.CallTaskResultVO;
import cn.gistack.sm.intelligentCall.vo.CallTaskStatistic;
+import com.alibaba.excel.EasyExcel;
import io.swagger.annotations.Api;
+import io.swagger.annotations.ApiOperation;
import lombok.AllArgsConstructor;
import lombok.extern.slf4j.Slf4j;
+import org.springblade.core.excel.util.ExcelUtil;
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 org.springframework.web.multipart.MultipartFile;
+import javax.servlet.http.HttpServletResponse;
+import java.io.IOException;
import java.util.*;
/**
@@ -177,4 +185,35 @@
// 返回
return R.data(callService.getCallResultListTemp(Condition.getPage(query),callTaskResult));
}
+
+
+ /**
+ * 导入表格发送智能外呼
+ * @param file excel文件
+ * @param time 呼叫时间(空的话默认选择当前时间)
+ * @return
+ */
+ @PostMapping("/import-call")
+ public R importCall(MultipartFile file,String time){
+ ExcelListener<CallExcel> listener = new ExcelListener<>();
+ //headRowNumber(1)从第2行开始读取,使用getDatas()方法取出数据
+ try {
+ EasyExcel.read(file.getInputStream(), CallExcel.class, listener).headRowNumber(1).sheet(0).doRead();
+ } catch (IOException e) {
+ e.printStackTrace();
+ }
+ List<CallExcel> list = listener.getDatas();
+ // 导入并返回
+ return R.data(callService.importCall(list,time));
+ }
+
+ /**
+ * 导出模板
+ */
+ @GetMapping("/export-template")
+ @ApiOperation(value = "导出模板")
+ public void exportTemplate(HttpServletResponse response) {
+ List<CallExcel> list = new ArrayList<>();
+ ExcelUtil.export(response, "智能外呼数据模板", "智能外呼数据表", list, CallExcel.class);
+ }
}
diff --git a/skjcmanager/skjcmanager-service/skjcmanager-sm/src/main/java/cn/gistack/sm/intelligentCall/mapper/CallTaskMapper.java b/skjcmanager/skjcmanager-service/skjcmanager-sm/src/main/java/cn/gistack/sm/intelligentCall/mapper/CallTaskMapper.java
index a3b1e34..d878c84 100644
--- a/skjcmanager/skjcmanager-service/skjcmanager-sm/src/main/java/cn/gistack/sm/intelligentCall/mapper/CallTaskMapper.java
+++ b/skjcmanager/skjcmanager-service/skjcmanager-sm/src/main/java/cn/gistack/sm/intelligentCall/mapper/CallTaskMapper.java
@@ -176,7 +176,6 @@
*/
@InterceptorIgnore(tenantLine = "true")
List<CallTaskStatistic> getCallResultList(@Param("page") IPage<CallTaskStatistic> page,
- @Param("list") List<String> list,
@Param("callTaskStatistic") CallTaskStatistic callTaskStatistic);
/**
diff --git a/skjcmanager/skjcmanager-service/skjcmanager-sm/src/main/java/cn/gistack/sm/intelligentCall/mapper/CallTaskMapper.xml b/skjcmanager/skjcmanager-service/skjcmanager-sm/src/main/java/cn/gistack/sm/intelligentCall/mapper/CallTaskMapper.xml
index 10ac89a..0ee42df 100644
--- a/skjcmanager/skjcmanager-service/skjcmanager-sm/src/main/java/cn/gistack/sm/intelligentCall/mapper/CallTaskMapper.xml
+++ b/skjcmanager/skjcmanager-service/skjcmanager-sm/src/main/java/cn/gistack/sm/intelligentCall/mapper/CallTaskMapper.xml
@@ -202,7 +202,7 @@
<!--查询智能外呼统计数据-按日期-行政区统计-->
<select id="getOutgoingStatisticList" resultType="cn.gistack.sm.intelligentCall.vo.CallTaskStatistic">
select
- aab."guid",aab."ad_name",
+ aab."guid",aab."ad_name",aab."ad_grad" as grad,
ifnull(totalCount,0) as calleeNumberCount,
ifnull(connectCount,0) as connectionCount,
ifnull(threeNotConnectCount,0) as threeNoConnectCount,
@@ -549,7 +549,7 @@
<!--查询当前天除去日常呼叫外的统计数据-->
<select id="getNoDayOutgoingStatisticList" resultType="cn.gistack.sm.intelligentCall.vo.CallTaskStatistic">
select
- aab."guid",aab."ad_name",
+ aab."guid",aab."ad_name",aab."ad_grad" as grad,
ifnull(totalCount,0) as calleeNumberCount,
ifnull(connectCount,0) as connectionCount,
ifnull(threeNotConnectCount,0) as threeNoConnectCount,
@@ -634,91 +634,94 @@
<!--按日期行政区呼叫结果详情列表信息-->
<select id="getCallResultList" resultType="cn.gistack.sm.intelligentCall.vo.CallTaskStatistic">
- select
- e."gmt_create" as createTime,e."call_id",e.waterCode,e.callResult,e."callee_number",
- aab."guid",aab."ad_name" as adName,
- bu.real_name as realName,
- if(ifnull(scnfr.call_id,0)='0','','已反馈') isSmsFill,
- case when aab."ad_grad"= 3 then aab."p_ad_name"
- when e."ad_grad"= 2 then e."ad_name"
- when e."ad_grad"= 3 then e."p_ad_name"
- end as cityName,
- case when e."ad_grad"= 4 then e."p_ad_name"
- when e."ad_grad"= 3 then e."ad_name"
- end as countyName,
- arb."name" as waterName
- from (
- select date_format(ctc."gmt_create",'%Y-%m-%d') "gmt_create",ctc."call_id",ctr."ad_grad",ctr."ad_name",ctr."p_ad_name",
- ctc."task_id",JSON_VALUE(ctc."call_task_callee_content",'$."$水库编码$"') as waterCode ,ctr."call_result" as callResult,ctr."callee_number"
- from "SJZT_ODS"."call_task_callee" ctc
- join (
- select d.*,aab."ad_grad",aab."ad_name",aab."p_ad_name" from (
- select ctr.*,waterCode from SJZT_ODS."call_task_result" ctr right join
- (
- select max("gmt_create") "gmt_create",waterCode,"callee_number" from (
- select ctr.*,ctc.waterCode from SJZT_ODS."call_task_result" ctr right join (
- select date_format(create_time,'%Y-%m-%d') time,wm_concat(task_id) task_id from YWXT.sm_daily_call_task group by date_format(create_time,'%Y-%m-%d')
- ) sdct on locate(ctr."task_id",sdct.task_id) >0 left join (
- select "call_id",JSON_VALUE("call_task_callee_content",'$."$水库编码$"') as waterCode from "SJZT_ODS"."call_task_callee"
- ) ctc on ctr."call_id" = ctc."call_id"
- where 1=1
- and sdct.time >= #{callTaskStatistic.startTime} and sdct.time <= #{callTaskStatistic.endTime}
- ) a group by date_format("gmt_create",'%Y-%m-%d'),waterCode,"callee_number"
- ) b on ctr."gmt_create" = b."gmt_create" and ctr."callee_number" = b."callee_number"
- ) d left join "YWXT".sm_call_not_fill_record scnfr on scnfr.call_id = d."call_id"
- left join "SJZT_MD"."att_res_base" arb on d.waterCode = arb."code"
- left join "SJZT_MD"."att_ad_base" aab on aab."guid" = concat(arb."ad_guid",'000000')
- where 1=1
- <if test="callTaskStatistic.count==2">
- and d."call_result" = '200000' or scnfr.task_id is not null
- </if>
- <if test="callTaskStatistic.count==3">
- and d."call_result" = '200003' and scnfr.id is null
- </if>
- <if test="callTaskStatistic.count==4">
- and d."call_result" = '200005' and scnfr.id is null
- </if>
- union all
+ select x.* from (
+ select
+ e."gmt_create" as createTime,e."call_id",e.waterCode,e.callResult,e."callee_number",
+ bu.real_name as realName,
+ if(ifnull(scnfr.call_id,0)='0','','已反馈') isSmsFill,
+ arb."name" as waterName,arb."eng_scal" as engScal,arb."res_reg_code" as resRegCode,
+ 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" = 3 THEN b."ad_code"
+ when c."ad_grad" = 3 THEN c."ad_code" END AS countyCode,
+ case when b."ad_grad" = 2 THEN b."ad_code"
+ when c."ad_grad" = 2 THEN c."ad_code"
+ ELSE d."ad_code" END AS cityCode,
+ 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
+ from (
+ select date_format(ctc."gmt_create",'%Y-%m-%d') "gmt_create",ctc."call_id",ctc."task_id",JSON_VALUE(ctc."call_task_callee_content",'$."$水库编码$"') as waterCode ,
+ ctr."call_result" as callResult,ctr."callee_number"
+ from "SJZT_ODS"."call_task_callee" ctc
+ join (
+ select d.* from (
+ select ctr.*,waterCode from SJZT_ODS."call_task_result" ctr right join
+ (
+ select max("gmt_create") "gmt_create",waterCode,"callee_number" from (
+ select ctr.*,ctc.waterCode from SJZT_ODS."call_task_result" ctr right join (
+ select date_format(create_time,'%Y-%m-%d') time,wm_concat(task_id) task_id from YWXT.sm_daily_call_task group by date_format(create_time,'%Y-%m-%d')
+ ) sdct on locate(ctr."task_id",sdct.task_id) >0 left join (
+ select "call_id",JSON_VALUE("call_task_callee_content",'$."$水库编码$"') as waterCode from "SJZT_ODS"."call_task_callee"
+ ) ctc on ctr."call_id" = ctc."call_id"
+ where 1=1
+ and sdct.time >= #{callTaskStatistic.startTime} and sdct.time <= #{callTaskStatistic.endTime}
+ ) a group by date_format("gmt_create",'%Y-%m-%d'),waterCode,"callee_number"
+ ) b on ctr."gmt_create" = b."gmt_create" and ctr."callee_number" = b."callee_number"
+ ) d left join "YWXT".sm_call_not_fill_record scnfr on scnfr.call_id = d."call_id"
+ where 1=1
+ <if test="callTaskStatistic.count==2">
+ and d."call_result" = '200000' or scnfr.task_id is not null
+ </if>
+ <if test="callTaskStatistic.count==3">
+ and d."call_result" = '200003' and scnfr.id is null
+ </if>
+ <if test="callTaskStatistic.count==4">
+ and d."call_result" = '200005' and scnfr.id is null
+ </if>
+ union all
- select ctr.*,waterCode,aab."ad_grad",aab."ad_name",aab."p_ad_name" from SJZT_ODS."call_task_result" ctr
- left join (
- select "call_id",JSON_VALUE("call_task_callee_content",'$."$水库编码$"') as waterCode from "SJZT_ODS"."call_task_callee"
- ) ctc on ctr."call_id" = ctc."call_id"
- left join "YWXT".sm_call_not_fill_record scnfr on scnfr.call_id = ctr."call_id"
- left join SJZT_ODS."call_task" ct on ct."id" = ctr."task_id"
- left join YWXT.sm_daily_call_task sdct on sdct.task_id = ct."id"
- left join "SJZT_MD"."att_res_base" arb on ctc.waterCode = arb."code"
- left join "SJZT_MD"."att_ad_base" aab on aab."guid" = concat(arb."ad_guid",'000000')
- where date_format(ctr."gmt_create",'%Y-%m-%d') >= #{callTaskStatistic.startTime}
- and date_format(ctr."gmt_create",'%Y-%m-%d') <= #{callTaskStatistic.endTime}
- and sdct.task_id is null
- <if test="callTaskStatistic.count==2">
- and ctr."call_result" = '200000' and scnfr.id is not null
- </if>
- <if test="callTaskStatistic.count==3">
- and ctr."call_result" = '200003' and scnfr.id is null
- </if>
- <if test="callTaskStatistic.count==4">
- and ctr."call_result" = '200005' and scnfr.id is null
- </if>
- )ctr on ctc."call_id" = ctr."call_id"
- )e
- left join "SJZT_MD"."att_res_base" arb on locate(arb."code",e.waterCode)>0
- left join "SJZT_MD"."att_ad_base" aab on aab."guid" = concat(arb."ad_guid",'000000')
- left join "YWXT".sm_call_not_fill_record scnfr on scnfr.call_id = e."call_id"
- left join "YWXT".blade_user bu on bu.phone = e."callee_number" and bu.is_deleted = 0
- where aab."ad_name" is not null
- <if test="list != null and list.size()>0">
- and aab."ad_code" in
- <foreach collection="list" item="adCode" separator ="," open="(" close=")">
- #{adCode}
- </foreach>
+ select ctr.*,waterCode from SJZT_ODS."call_task_result" ctr
+ left join (
+ select "call_id",JSON_VALUE("call_task_callee_content",'$."$水库编码$"') as waterCode from "SJZT_ODS"."call_task_callee"
+ ) ctc on ctr."call_id" = ctc."call_id"
+ left join "YWXT".sm_call_not_fill_record scnfr on scnfr.call_id = ctr."call_id"
+ left join SJZT_ODS."call_task" ct on ct."id" = ctr."task_id"
+ left join YWXT.sm_daily_call_task sdct on sdct.task_id = ct."id"
+ where date_format(ctr."gmt_create",'%Y-%m-%d') >= #{callTaskStatistic.startTime}
+ and date_format(ctr."gmt_create",'%Y-%m-%d') <= #{callTaskStatistic.endTime}
+ and sdct.task_id is null
+ <if test="callTaskStatistic.count==2">
+ and ctr."call_result" = '200000' and scnfr.id is not null
+ </if>
+ <if test="callTaskStatistic.count==3">
+ and ctr."call_result" = '200003' and scnfr.id is null
+ </if>
+ <if test="callTaskStatistic.count==4">
+ and ctr."call_result" = '200005' and scnfr.id is null
+ </if>
+ )ctr on ctc."call_id" = ctr."call_id"
+ )e
+ left join YWXT.sm_call_not_fill_record scnfr on scnfr.call_id = e."call_id"
+ left join YWXT.blade_user bu on bu.phone = e."callee_number" and bu.is_deleted = 0
+ left join SJZT_MD."att_res_base" arb on locate(arb."code",e.waterCode)>0
+ left join SJZT_MD."att_ad_base" b ON arb."interior_ad_guid" = b."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"
+ <if test="callTaskStatistic.realName!=null and callTaskStatistic.realName!=''">
+ and bu.real_name like concat('%',#{callTaskStatistic.realName},'%')
+ </if>
+ <if test="callTaskStatistic.waterName!=null and callTaskStatistic.waterName!=''">
+ and arb."name" like concat('%',#{callTaskStatistic.waterName},'%')
+ </if>
+ ) x
+ where 1=1
+ <if test="callTaskStatistic.grad==2">
+ and x.cityCode = #{callTaskStatistic.adCode}
</if>
- <if test="callTaskStatistic.realName!=null and callTaskStatistic.realName!=''">
- and bu.real_name like concat('%',#{callTaskStatistic.realName},'%')
- </if>
- <if test="callTaskStatistic.waterName!=null and callTaskStatistic.waterName!=''">
- and arb."name" like concat('%',#{callTaskStatistic.waterName},'%')
+ <if test="callTaskStatistic.grad==3">
+ and x.countyCode = #{callTaskStatistic.adCode}
</if>
</select>
@@ -872,6 +875,7 @@
arb."rv_name" rvName,
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,
if(ifnull(scnfr.call_id,0)='0','','已反馈') isSmsFill,
case when ctr."call_result"!='200000' then if(ifnull(scnfr.is_danger,0)>'0',if(scnfr.is_danger='是',2,1),0)
else if(ifnull(cas."tag_title",0)>'0',if(instr(cas."tag_title",'未发现险情')>0,1,if(instr(cas."tag_title",'发现险情')>0,2,0)),0) end as isDange,
diff --git a/skjcmanager/skjcmanager-service/skjcmanager-sm/src/main/java/cn/gistack/sm/intelligentCall/service/CallService.java b/skjcmanager/skjcmanager-service/skjcmanager-sm/src/main/java/cn/gistack/sm/intelligentCall/service/CallService.java
index dd22851..2c3a1de 100644
--- a/skjcmanager/skjcmanager-service/skjcmanager-sm/src/main/java/cn/gistack/sm/intelligentCall/service/CallService.java
+++ b/skjcmanager/skjcmanager-service/skjcmanager-sm/src/main/java/cn/gistack/sm/intelligentCall/service/CallService.java
@@ -2,6 +2,7 @@
import cn.gistack.sm.intelligentCall.entity.CallNotFillRecord;
+import cn.gistack.sm.intelligentCall.excel.CallExcel;
import cn.gistack.sm.intelligentCall.vo.CallTaskResultVO;
import cn.gistack.sm.intelligentCall.vo.CallTaskStatistic;
import com.baomidou.mybatisplus.core.metadata.IPage;
@@ -122,4 +123,12 @@
* @return
*/
List<String> createOutCallTaskByAlarm(Map<String, Object> map);
+
+ /**
+ * 导入表格发送智能外呼
+ * @param list
+ * @param time
+ * @return
+ */
+ Object importCall(List<CallExcel> list,String time);
}
diff --git a/skjcmanager/skjcmanager-service/skjcmanager-sm/src/main/java/cn/gistack/sm/intelligentCall/service/impl/CallServiceImpl.java b/skjcmanager/skjcmanager-service/skjcmanager-sm/src/main/java/cn/gistack/sm/intelligentCall/service/impl/CallServiceImpl.java
index 993e8cd..b03d7cb 100644
--- a/skjcmanager/skjcmanager-service/skjcmanager-sm/src/main/java/cn/gistack/sm/intelligentCall/service/impl/CallServiceImpl.java
+++ b/skjcmanager/skjcmanager-service/skjcmanager-sm/src/main/java/cn/gistack/sm/intelligentCall/service/impl/CallServiceImpl.java
@@ -4,12 +4,14 @@
import cn.gistack.sm.intelligentCall.constant.CallConstant;
import cn.gistack.sm.intelligentCall.constant.ZtConstant;
import cn.gistack.sm.intelligentCall.entity.Scene;
+import cn.gistack.sm.intelligentCall.excel.CallExcel;
import cn.gistack.sm.intelligentCall.mapper.CallTaskMapper;
import cn.gistack.sm.intelligentCall.service.CallService;
import cn.gistack.sm.intelligentCall.vo.CallTaskResultVO;
import cn.gistack.sm.intelligentCall.vo.CallTaskStatistic;
import cn.gistack.sm.sjztmd.entity.AttAdBase;
import cn.gistack.sm.sjztmd.service.IAttAdBaseService;
+import cn.gistack.sm.sjztmd.service.IAttResManagePersonService;
import cn.gistack.sm.sjztmd.vo.AttAdBaseVO;
import com.alibaba.fastjson.JSON;
import com.alibaba.fastjson.JSONArray;
@@ -20,6 +22,7 @@
import org.apache.commons.lang3.StringUtils;
import org.jetbrains.annotations.NotNull;
import org.springblade.core.redis.cache.BladeRedis;
+import org.springblade.core.tool.api.R;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.http.*;
import org.springframework.stereotype.Service;
@@ -53,6 +56,9 @@
@Autowired
private BladeRedis bladeRedis;
+
+ @Autowired
+ private IAttResManagePersonService attResManagePersonService;
@Autowired
private AsyncCallService asyncCallService;
@@ -1201,16 +1207,11 @@
*/
@Override
public Object getCallResultList(IPage<CallTaskStatistic> page, CallTaskStatistic callTaskStatistic) {
- List<String> list = new ArrayList<>();
- if (null!= callTaskStatistic.getAdCode() && !callTaskStatistic.getAdCode().equals("")){
- // 查询所有下级区域code
- list = getAllChildrenAreaByAreaCode(callTaskStatistic.getAdCode());
- }
if (null!=callTaskStatistic.getIsPage()){
// 不分页
- return callTaskMapper.getCallResultList(null, list,callTaskStatistic);
+ return callTaskMapper.getCallResultList(null,callTaskStatistic);
}
- List<CallTaskStatistic> callNotConnectResultList = callTaskMapper.getCallResultList(page,list, callTaskStatistic);
+ List<CallTaskStatistic> callNotConnectResultList = callTaskMapper.getCallResultList(page, callTaskStatistic);
// 返回
return page.setRecords(callNotConnectResultList);
}
@@ -1230,4 +1231,37 @@
// 不分页
return callTaskMapper.getCallResultListTemp(null,callTaskResult,list);
}
+
+ /**
+ * 导入表格发送智能外呼
+ * @param list
+ * @param time
+ * @return
+ */
+ @Override
+ public Object importCall(List<CallExcel> list,String time) {
+ // 转换
+ List<String> stringList = list.stream().map(CallExcel::getWaterCode).collect(Collectors.toList());
+ // 通过水库代码获取水库及巡查责任人信息
+ Set<Scene> personList = attResManagePersonService.getPatrolPersonListByWaterCodeList(stringList);
+ Map<String, Object> params = new HashMap<>();
+ //传入调度时间和随机得到的人员信息进行任务的创建并返回
+ params.put("list",setForListMap(personList));
+ // 调度时间处理
+ if (null!=time && !time.equals("")){
+ params.put("taskScheduleTime",time);
+ }else {
+ params.put("taskScheduleTime",new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(new Date()));
+ }
+ // 创建任务并返回结果
+ List<String> task = createTask(params);
+ if (null!=task.get(1) && !task.get(1).equals("")){
+ String successMsg = "外呼任务创建成功";
+ // 返回
+ return R.data(200,successMsg,null);
+ }
+ String errorMsg = task.get(0);
+ // 返回
+ return R.data(400,errorMsg,null);
+ }
}
diff --git a/skjcmanager/skjcmanager-service/skjcmanager-sm/src/main/java/cn/gistack/sm/jcsb/mapper/DangerReportMapper.xml b/skjcmanager/skjcmanager-service/skjcmanager-sm/src/main/java/cn/gistack/sm/jcsb/mapper/DangerReportMapper.xml
index 8d1a59f..35b6722 100644
--- a/skjcmanager/skjcmanager-service/skjcmanager-sm/src/main/java/cn/gistack/sm/jcsb/mapper/DangerReportMapper.xml
+++ b/skjcmanager/skjcmanager-service/skjcmanager-sm/src/main/java/cn/gistack/sm/jcsb/mapper/DangerReportMapper.xml
@@ -60,7 +60,7 @@
<select id="getStatistics" resultType="cn.gistack.sm.jcsb.vo.StatisticsVO">
SELECT * FROM
- (SELECT COUNT(1)AS patrolCount FROM SM_PATROL_TASK WHERE PROJECT_ID =#{resGuid} AND IS_DELETED = 0)p,
+ (SELECT COUNT(1)AS patrolCount FROM SM_PATROL_TASK WHERE PROJECT_ID =#{resGuid} AND state = 3 AND IS_DELETED = 0)p,
(SELECT COUNT(1)AS dangerCount FROM SM_DANGER_REPORT WHERE RESERVOIR_ID = #{resGuid} AND IS_DELETED = 0)SDR
</select>
</mapper>
diff --git a/skjcmanager/skjcmanager-service/skjcmanager-sm/src/main/java/cn/gistack/sm/jcsb/service/impl/DangerReportServiceImpl.java b/skjcmanager/skjcmanager-service/skjcmanager-sm/src/main/java/cn/gistack/sm/jcsb/service/impl/DangerReportServiceImpl.java
index 4cf1373..6280c56 100644
--- a/skjcmanager/skjcmanager-service/skjcmanager-sm/src/main/java/cn/gistack/sm/jcsb/service/impl/DangerReportServiceImpl.java
+++ b/skjcmanager/skjcmanager-service/skjcmanager-sm/src/main/java/cn/gistack/sm/jcsb/service/impl/DangerReportServiceImpl.java
@@ -101,6 +101,7 @@
dangerReportSUPO.setReservoirName(encodeReservoirName);
dangerReport.setReservoirName(attResBase.getName()); // 保存水库名称
+ dangerReport.setReservoirId(attResBase.getGuid());
// 获取用户
dangerReportSUPO.setCreateUserName(encodeCreateUserName);
diff --git a/skjcmanager/skjcmanager-service/skjcmanager-sm/src/main/java/cn/gistack/sm/materials/mapper/MaterialsManageMapper.xml b/skjcmanager/skjcmanager-service/skjcmanager-sm/src/main/java/cn/gistack/sm/materials/mapper/MaterialsManageMapper.xml
index b6f374d..1943370 100644
--- a/skjcmanager/skjcmanager-service/skjcmanager-sm/src/main/java/cn/gistack/sm/materials/mapper/MaterialsManageMapper.xml
+++ b/skjcmanager/skjcmanager-service/skjcmanager-sm/src/main/java/cn/gistack/sm/materials/mapper/MaterialsManageMapper.xml
@@ -10,6 +10,8 @@
<result property="cityName" column="cityName"/>
<result property="county" column="county"/>
<result property="countyName" column="countyName"/>
+ <result property="engScal" column="engScal"/>
+ <result property="resRegCode" column="resRegCode"/>
<result property="town" column="town"/>
<result property="townName" column="townName"/>
<result property="materialsType" column="MATERIALS_TYPE"/>
@@ -33,14 +35,21 @@
<select id="selectMyPage" resultMap="vo">
SELECT MM.*,
- aab1."ad_name" cityName,
- aab2."ad_name" countyName,
- aab3."ad_name" townName,
+ arb."res_reg_code" as resRegCode,arb."eng_scal" as engScal,
+ 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 materialTypeName
FROM SM_MATERIALS_MANAGE MM
- LEFT JOIN SJZT_MD."att_ad_base" aab1 ON aab1."guid" = MM.city
- LEFT JOIN SJZT_MD."att_ad_base" aab2 ON aab2."guid" = MM.county
- LEFT JOIN SJZT_MD."att_ad_base" aab3 ON aab3."guid" = MM.town
+ LEFT JOIN SJZT_MD."att_res_base" arb ON MM.res_guid = arb."guid"
+ LEFT JOIN SJZT_MD."att_ad_base" b ON arb."interior_ad_guid" = b."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"
LEFT JOIN BLADE_DICT_BIZ BDB ON MM.MATERIALS_TYPE = BDB.DICT_KEY
WHERE MM.IS_DELETED = 0 AND BDB.CODE='MATERIALS_TYPE'
<if test="vo.resName !=null and vo.resName !=''">
diff --git a/skjcmanager/skjcmanager-service/skjcmanager-sm/src/main/java/cn/gistack/sm/materials/mapper/RescueTeamManageMapper.xml b/skjcmanager/skjcmanager-service/skjcmanager-sm/src/main/java/cn/gistack/sm/materials/mapper/RescueTeamManageMapper.xml
index 96c3764..be58086 100644
--- a/skjcmanager/skjcmanager-service/skjcmanager-sm/src/main/java/cn/gistack/sm/materials/mapper/RescueTeamManageMapper.xml
+++ b/skjcmanager/skjcmanager-service/skjcmanager-sm/src/main/java/cn/gistack/sm/materials/mapper/RescueTeamManageMapper.xml
@@ -4,13 +4,20 @@
<!--namespace根据自己需要创建的的mapper的路径和名称填写-->
<select id="selectMyPage" resultType="cn.gistack.sm.materials.vo.RescueTeamManageVO">
SELECT RM.*,
- aab1."ad_name" cityName,
- aab2."ad_name" countyName,
- aab3."ad_name" townName
+ arb."res_reg_code" as resRegCode,arb."eng_scal" as engScal,
+ 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
FROM SM_RESCUETEAM_MANAGE RM
- LEFT JOIN SJZT_MD."att_ad_base" aab1 ON aab1."guid" = RM.city
- LEFT JOIN SJZT_MD."att_ad_base" aab2 ON aab2."guid" = RM.county
- LEFT JOIN SJZT_MD."att_ad_base" aab3 ON aab3."guid" = RM.town
+ LEFT JOIN SJZT_MD."att_res_base" arb ON RM.res_guid = arb."guid"
+ LEFT JOIN SJZT_MD."att_ad_base" b ON arb."interior_ad_guid" = b."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 RM.IS_DELETED = 0
<if test="vo.resName !=null and vo.resName !=''">
AND RM.RES_NAME LIKE CONCAT('%',#{vo.resName},'%')
diff --git a/skjcmanager/skjcmanager-service/skjcmanager-sm/src/main/java/cn/gistack/sm/materials/vo/MaterialsManageVO.java b/skjcmanager/skjcmanager-service/skjcmanager-sm/src/main/java/cn/gistack/sm/materials/vo/MaterialsManageVO.java
index 589e2a3..8e592be 100644
--- a/skjcmanager/skjcmanager-service/skjcmanager-sm/src/main/java/cn/gistack/sm/materials/vo/MaterialsManageVO.java
+++ b/skjcmanager/skjcmanager-service/skjcmanager-sm/src/main/java/cn/gistack/sm/materials/vo/MaterialsManageVO.java
@@ -7,6 +7,16 @@
public class MaterialsManageVO extends MaterialsManage {
/**
+ * 水库注册码
+ */
+ private String resRegCode;
+
+ /**
+ * 工程规模
+ */
+ private String engScal;
+
+ /**
* 市名
*/
private String cityName;
diff --git a/skjcmanager/skjcmanager-service/skjcmanager-sm/src/main/java/cn/gistack/sm/materials/vo/RescueTeamManageVO.java b/skjcmanager/skjcmanager-service/skjcmanager-sm/src/main/java/cn/gistack/sm/materials/vo/RescueTeamManageVO.java
index ef0b564..82c2382 100644
--- a/skjcmanager/skjcmanager-service/skjcmanager-sm/src/main/java/cn/gistack/sm/materials/vo/RescueTeamManageVO.java
+++ b/skjcmanager/skjcmanager-service/skjcmanager-sm/src/main/java/cn/gistack/sm/materials/vo/RescueTeamManageVO.java
@@ -7,6 +7,16 @@
@Data
public class RescueTeamManageVO extends RescueTeamManage {
+ /**
+ * 水库注册码
+ */
+ private String resRegCode;
+
+ /**
+ * 工程规模
+ */
+ private String engScal;
+
/**
* 市名
*/
diff --git a/skjcmanager/skjcmanager-service/skjcmanager-sm/src/main/java/cn/gistack/sm/message/mapper/MessageRecordMapper.xml b/skjcmanager/skjcmanager-service/skjcmanager-sm/src/main/java/cn/gistack/sm/message/mapper/MessageRecordMapper.xml
index bc59eea..7d0bbbb 100644
--- a/skjcmanager/skjcmanager-service/skjcmanager-sm/src/main/java/cn/gistack/sm/message/mapper/MessageRecordMapper.xml
+++ b/skjcmanager/skjcmanager-service/skjcmanager-sm/src/main/java/cn/gistack/sm/message/mapper/MessageRecordMapper.xml
@@ -26,6 +26,12 @@
<if test="messageRecord.source!=null and messageRecord.source!=''">
and source = #{messageRecord.source}
</if>
+
+ <if test="messageRecord.createTime != null">
+ AND DATE_FORMAT(create_time,'%Y-%m-%d') = DATE_FORMAT(#{messageRecord.createTime},'%Y-%m-%d')
+ </if>
+
+
ORDER BY ID DESC
</select>
</mapper>
diff --git a/skjcmanager/skjcmanager-service/skjcmanager-sm/src/main/java/cn/gistack/sm/patrol/feign/PatrolTaskImplClient.java b/skjcmanager/skjcmanager-service/skjcmanager-sm/src/main/java/cn/gistack/sm/patrol/feign/PatrolTaskImplClient.java
index c3d9458..1d0bb6e 100644
--- a/skjcmanager/skjcmanager-service/skjcmanager-sm/src/main/java/cn/gistack/sm/patrol/feign/PatrolTaskImplClient.java
+++ b/skjcmanager/skjcmanager-service/skjcmanager-sm/src/main/java/cn/gistack/sm/patrol/feign/PatrolTaskImplClient.java
@@ -1,23 +1,33 @@
package cn.gistack.sm.patrol.feign;
+import cn.gistack.sm.intelligentCall.constant.ZtConstant;
import cn.gistack.sm.intelligentCall.service.CallService;
import cn.gistack.sm.patrol.entity.PatrolTask;
import cn.gistack.sm.patrol.service.IPatrolTaskService;
import cn.gistack.sm.sjztmd.entity.PatrolResponsiblePerson;
import cn.gistack.sm.sjztmd.service.IAttResManagePersonService;
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.tenant.annotation.NonDS;
import org.springblade.core.tool.utils.DateUtil;
+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.GetMapping;
import org.springframework.web.bind.annotation.RestController;
+import org.springframework.web.client.RestTemplate;
import springfox.documentation.annotations.ApiIgnore;
import java.util.ArrayList;
import java.util.Date;
import java.util.List;
+import java.util.Map;
import java.util.concurrent.atomic.AtomicInteger;
/**
@@ -33,9 +43,25 @@
@Slf4j
public class PatrolTaskImplClient implements PatrolTaskClient {
+ //本地测试
+ private static final String LOCAL = "https://sk.hubeishuiyi.cn";
+ //线上
+ private static final String ONLINE = "http://10.42.6.192";
private final IPatrolTaskService patrolTaskService;
-
private final IAttResManagePersonService attResManagePersonService;
+
+ @Autowired
+ private RestTemplate restTemplate;
+
+ /**
+ * 超汛限(包含汛限值0)
+ */
+ private static final String GET_OVER_RZ =ONLINE + "/services/1234567890ABCDEFGHIJKLMN/over_z_last/patr_person/api?start_over=0&pageNo=1&pageSize=2000";
+ /**
+ * 病险水库
+ */
+ private static final String GET_ILL_RESERVOIR =ONLINE + "/services/1234567890ABCDEFGHIJKLMN/res/main_st/rsvr?eng_scal=&res_nm=&is_danger=true&res_cds=&is_video=&flag=&data_sta=&gate=&is_order=1&label=&bas_nm=&pageNo=1&pageSize=10000";
+
/**
* 给巡查责任人定时创建任务执行器
@@ -52,6 +78,111 @@
String title,
String content) {
List<PatrolResponsiblePerson> patrolResponsiblePersonList = attResManagePersonService.getPatrolResponsiblePersonAll();
+ List<Integer> taskJob = createTaskJob(processDefinitionId, taskType, title, content, patrolResponsiblePersonList);
+ return taskJob;
+ }
+
+ @Override
+ @GetMapping(CREATE_TASK_JOB_BY_CONDITION_HANDLER)
+ public List<Integer> createTaskJobByConditionHandler(String processDefinitionId, String taskType, String title, String content) {
+
+ List<String> reservoirList = new ArrayList<>();
+
+ //获取病险水库数据
+ JSONArray overList = apiRequestResult(null, GET_OVER_RZ);
+ for (int i = 0; i < overList.size(); i++) {
+ JSONObject reservoir = overList.getJSONObject(i);
+ reservoirList.add(reservoir.getString("res_cd"));
+ }
+
+ JSONArray illList = apiRequestData(null, GET_ILL_RESERVOIR);
+ for (int i = 0; i < illList.size(); i++) {
+ JSONObject reservoir = illList.getJSONObject(i);
+ reservoirList.add(reservoir.getString("res_cd"));
+ }
+
+ List<PatrolResponsiblePerson> patrolResponsiblePersonList = attResManagePersonService.getPatrolResponsiblePersonByResCdList(reservoirList);
+
+ List<Integer> taskJob = createTaskJob(processDefinitionId, taskType, title, content, patrolResponsiblePersonList);
+
+ return taskJob;
+ }
+
+
+ /**
+ * 请求中台接口,返回resultList结果集
+ * @param params
+ * @return
+ */
+ private JSONArray apiRequestResult(Map<String, Object> params,String url) {
+ //设置请求头
+ HttpHeaders headers = new HttpHeaders();
+ headers.add(ZtConstant.header_key, ZtConstant.header_value);
+ //封装请求头
+ HttpEntity<MultiValueMap<String, Object>> formEntity = new HttpEntity<MultiValueMap<String, Object>>(headers);
+ try {
+ //有请求头,有参数请求
+ ResponseEntity<String> responseEntity =
+ restTemplate.exchange(url,
+ HttpMethod.GET,
+ formEntity,
+ String.class);
+ JSONObject jsonObject = JSON.parseObject(responseEntity.getBody());
+ JSONArray jsonArray = JSONArray.parseArray(jsonObject.get("resultList").toString());
+ // 返回
+ return jsonArray;
+ } catch (Exception e) {
+ e.printStackTrace();
+ }
+ return null;
+ }
+
+ /**
+ * 请求中台接口,返回data结果集
+ * @param params
+ * @return
+ */
+ private JSONArray apiRequestData(Map<String, Object> params,String url) {
+ //设置请求头
+ HttpHeaders headers = new HttpHeaders();
+ headers.add(ZtConstant.header_key, ZtConstant.header_value);
+ //封装请求头
+ HttpEntity<MultiValueMap<String, Object>> formEntity = new HttpEntity<MultiValueMap<String, Object>>(headers);
+ try {
+ //有请求头,有参数请求
+ ResponseEntity<String> responseEntity =
+ restTemplate.exchange(url,
+ HttpMethod.GET,
+ formEntity,
+ String.class);
+ JSONObject jsonObject = JSON.parseObject(responseEntity.getBody());
+ JSONObject data = JSON.parseObject(jsonObject.get("data").toString());
+
+ JSONArray dataList = data.getJSONArray("data");
+
+ // 返回
+ return dataList;
+ } catch (Exception e) {
+ e.printStackTrace();
+ }
+ return null;
+ }
+
+
+
+ /**
+ * 创建任务的方法
+ * @param processDefinitionId
+ * @param taskType
+ * @param title
+ * @param content
+ * @param patrolResponsiblePersonList
+ * @return
+ */
+ public List<Integer> createTaskJob(String processDefinitionId,
+ String taskType,
+ String title,
+ String content,List<PatrolResponsiblePerson> patrolResponsiblePersonList){
AtomicInteger failureCount = new AtomicInteger();
patrolResponsiblePersonList.forEach(item -> {
log.info("当前创建任务对象:" + JSON.toJSONString(item));
@@ -83,4 +214,6 @@
// 返回
return list;
}
+
+
}
diff --git a/skjcmanager/skjcmanager-service/skjcmanager-sm/src/main/java/cn/gistack/sm/point/controller/PointController.java b/skjcmanager/skjcmanager-service/skjcmanager-sm/src/main/java/cn/gistack/sm/point/controller/PointController.java
new file mode 100644
index 0000000..c09cffb
--- /dev/null
+++ b/skjcmanager/skjcmanager-service/skjcmanager-sm/src/main/java/cn/gistack/sm/point/controller/PointController.java
@@ -0,0 +1,129 @@
+package cn.gistack.sm.point.controller;
+
+
+import cn.gistack.sm.point.entity.Point;
+import cn.gistack.sm.point.service.PointService;
+import cn.gistack.sm.point.vo.PointVO;
+import com.baomidou.mybatisplus.core.metadata.IPage;
+import io.swagger.annotations.ApiOperation;
+import lombok.AllArgsConstructor;
+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.util.Arrays;
+import java.util.Date;
+
+/**
+ * 点位控制层
+ * @author zhongrj
+ * @date 2023-09-23
+ */
+@RestController
+@AllArgsConstructor
+@RequestMapping("/point/point")
+public class PointController {
+
+ private final PointService pointService;
+
+ /**
+ * 分页列表查询
+ *
+ * @param point
+ * @return
+ */
+ @ApiOperation(value="点位-分页列表查询", notes="点位-分页列表查询")
+ @GetMapping(value = "/list")
+ public R queryPageList(Point point, Query query) {
+ IPage<Point> pageList = pointService.page(Condition.getPage(query), Condition.getQueryWrapper(point));
+ return R.data(pageList);
+ }
+
+ /**
+ * 自定义分页列表查询
+ * @param query
+ * @param point
+ * @return
+ */
+ @ApiOperation(value="点位-自定义分页列表查询", notes="点位-自定义分页列表查询")
+ @GetMapping(value = "/page")
+ public R page(PointVO point, Query query) {
+ return R.data( pointService.selectPointPage(Condition.getPage(query),point));
+ }
+
+ /**
+ * 添加
+ *
+ * @param point
+ * @return
+ */
+ @ApiOperation(value="点位-添加", notes="点位-添加")
+ @PostMapping(value = "/add")
+ public R add(@RequestBody Point point) {
+ point.setCreateTime(new Date());
+ return R.data(pointService.save(point));
+ }
+
+ /**
+ * 编辑
+ *
+ * @param point
+ * @return
+ */
+ @ApiOperation(value="点位-编辑", notes="点位-编辑")
+ @RequestMapping(value = "/edit", method = {RequestMethod.PUT,RequestMethod.POST})
+ public R edit(@RequestBody Point point) {
+ return R.data(pointService.updateById(point));
+ }
+
+ /**
+ * 通过id删除
+ *
+ * @param id
+ * @return
+ */
+ @ApiOperation(value="点位-通过id删除", notes="点位-通过id删除")
+ @PostMapping(value = "/delete")
+ public R delete(@RequestParam(name="id",required=true) String id) {
+ return R.data(pointService.removeById(id));
+ }
+
+ /**
+ * 批量删除
+ *
+ * @param ids
+ * @return
+ */
+ @ApiOperation(value="点位-批量删除", notes="点位-批量删除")
+ @PostMapping(value = "/deleteBatch")
+ public R deleteBatch(@RequestParam(name="ids",required=true) String ids) {
+ return R.data(this.pointService.removeByIds(Arrays.asList(ids.split(","))));
+ }
+
+ /**
+ * 通过id查询
+ *
+ * @param id
+ * @return
+ */
+ @ApiOperation(value="点位-通过id查询", notes="点位-通过id查询")
+ @GetMapping(value = "/queryById")
+ public R queryById(@RequestParam(name="id",required=true) String id) {
+ Point point = pointService.getById(id);
+ return R.data(point);
+ }
+
+
+ /**
+ * 通过图片id删除
+ * @param id
+ * @return
+ */
+ @ApiOperation(value="点位-通过图片id删除", notes="点位-通过图片id删除")
+ @PostMapping(value = "/deleteByPicId")
+ public R deleteByPicId(@RequestParam(name="id",required=true) String id) {
+ return R.data(pointService.deleteByPicId(id));
+ }
+
+}
diff --git a/skjcmanager/skjcmanager-service/skjcmanager-sm/src/main/java/cn/gistack/sm/point/entity/Point.java b/skjcmanager/skjcmanager-service/skjcmanager-sm/src/main/java/cn/gistack/sm/point/entity/Point.java
new file mode 100644
index 0000000..62f1ff3
--- /dev/null
+++ b/skjcmanager/skjcmanager-service/skjcmanager-sm/src/main/java/cn/gistack/sm/point/entity/Point.java
@@ -0,0 +1,77 @@
+package cn.gistack.sm.point.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 io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+import lombok.experimental.Accessors;
+import org.springframework.format.annotation.DateTimeFormat;
+
+import java.util.Date;
+
+/**
+ * 点位
+ *
+ * @author zhongrj
+ * @date 2023-09-23
+ */
+@Data
+@TableName(value = "sm_point")
+@EqualsAndHashCode(callSuper = false)
+@Accessors(chain = true)
+public class Point {
+
+ /**
+ * id
+ */
+ @ApiModelProperty(value = "id")
+ @TableId(value = "id",type = IdType.ASSIGN_ID)
+ private Long id;
+
+ /**
+ * 水库编号
+ */
+ @ApiModelProperty(value = "水库编号")
+ private String resGuid;
+
+ /**
+ * 测点名称
+ */
+ @ApiModelProperty(value = "测点名称")
+ private String name;
+
+ /**
+ * 测点类型
+ */
+ @ApiModelProperty(value = "测点类型")
+ private String type;
+
+ /**
+ * 图片id,关联考证表id
+ */
+ @ApiModelProperty(value = "图片id,关联考证表id")
+ private String picId;
+
+ /**
+ * x
+ */
+ @ApiModelProperty(value = "x")
+ private String x;
+
+ /**
+ * y
+ */
+ @ApiModelProperty(value = "y")
+ private String y;
+
+ /**
+ * 创建时间
+ */
+ @JsonFormat(timezone = "GMT+8", pattern = "yyyy-MM-dd HH:mm:ss")
+ @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
+ @ApiModelProperty(value = "创建时间")
+ private Date createTime;
+}
diff --git a/skjcmanager/skjcmanager-service/skjcmanager-sm/src/main/java/cn/gistack/sm/point/mapper/PointMapper.java b/skjcmanager/skjcmanager-service/skjcmanager-sm/src/main/java/cn/gistack/sm/point/mapper/PointMapper.java
new file mode 100644
index 0000000..a794428
--- /dev/null
+++ b/skjcmanager/skjcmanager-service/skjcmanager-sm/src/main/java/cn/gistack/sm/point/mapper/PointMapper.java
@@ -0,0 +1,32 @@
+package cn.gistack.sm.point.mapper;
+
+
+import cn.gistack.sm.point.entity.Point;
+import cn.gistack.sm.point.vo.PointVO;
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.baomidou.mybatisplus.core.metadata.IPage;
+import org.apache.ibatis.annotations.Param;
+
+import java.util.List;
+
+/**
+ * 点位详情mapper映射层
+ * @author zhongrj
+ * @date 2023-05-29
+ */
+public interface PointMapper extends BaseMapper<Point> {
+
+ /**
+ * 自定义分页列表查询
+ * @param page
+ * @param point
+ * @return
+ */
+ List<PointVO> selectPointPage(IPage<PointVO> page, @Param("point") PointVO point);
+
+ /**
+ * 删除考证表附件信息
+ * @param id
+ */
+ int deletePicByPicAttach(@Param("id") String id);
+}
diff --git a/skjcmanager/skjcmanager-service/skjcmanager-sm/src/main/java/cn/gistack/sm/point/mapper/PointMapper.xml b/skjcmanager/skjcmanager-service/skjcmanager-sm/src/main/java/cn/gistack/sm/point/mapper/PointMapper.xml
new file mode 100644
index 0000000..2c84f4b
--- /dev/null
+++ b/skjcmanager/skjcmanager-service/skjcmanager-sm/src/main/java/cn/gistack/sm/point/mapper/PointMapper.xml
@@ -0,0 +1,28 @@
+<?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.point.mapper.PointMapper">
+
+ <!--自定义分页列表查询-->
+ <select id="selectPointPage" resultType="cn.gistack.sm.point.vo.PointVO">
+ select * from sm_point
+ where 1=1
+ <if test="point.resGuid!=null and point.resGuid!=''">
+ and res_guid like concat('%',#{point.resGuid},'%')
+ </if>
+ <if test="point.name!=null and point.name!=''">
+ and name like concat('%',#{point.name},'%')
+ </if>
+ <if test="point.type!=null">
+ and type = #{point.type}
+ </if>
+ <if test="point.picId!=null and point.picId!=''">
+ and pic_id = #{point.picId}
+ </if>
+ </select>
+
+ <!--删除考证表附件信息-->
+ <delete id="deletePicByPicAttach">
+ delete from sm_textual_research_attach where id = #{id}
+ </delete>
+
+</mapper>
diff --git a/skjcmanager/skjcmanager-service/skjcmanager-sm/src/main/java/cn/gistack/sm/point/service/PointService.java b/skjcmanager/skjcmanager-service/skjcmanager-sm/src/main/java/cn/gistack/sm/point/service/PointService.java
new file mode 100644
index 0000000..e63e345
--- /dev/null
+++ b/skjcmanager/skjcmanager-service/skjcmanager-sm/src/main/java/cn/gistack/sm/point/service/PointService.java
@@ -0,0 +1,30 @@
+package cn.gistack.sm.point.service;
+
+
+import cn.gistack.sm.point.entity.Point;
+import cn.gistack.sm.point.vo.PointVO;
+import com.baomidou.mybatisplus.core.metadata.IPage;
+import com.baomidou.mybatisplus.extension.service.IService;
+
+/**
+ * 点位服务层
+ * @author zhongrj
+ * @date 2023-09-23
+ */
+public interface PointService extends IService<Point> {
+
+ /**
+ * 自定义分页列表查询
+ * @param page
+ * @param point
+ * @return
+ */
+ Object selectPointPage(IPage<PointVO> page, PointVO point);
+
+ /**
+ * 通过图片id删除
+ * @param id
+ * @return
+ */
+ Boolean deleteByPicId(String id);
+}
diff --git a/skjcmanager/skjcmanager-service/skjcmanager-sm/src/main/java/cn/gistack/sm/point/service/impl/PointServiceImpl.java b/skjcmanager/skjcmanager-service/skjcmanager-sm/src/main/java/cn/gistack/sm/point/service/impl/PointServiceImpl.java
new file mode 100644
index 0000000..c03eeaf
--- /dev/null
+++ b/skjcmanager/skjcmanager-service/skjcmanager-sm/src/main/java/cn/gistack/sm/point/service/impl/PointServiceImpl.java
@@ -0,0 +1,55 @@
+package cn.gistack.sm.point.service.impl;
+
+
+import cn.gistack.sm.point.entity.Point;
+import cn.gistack.sm.point.mapper.PointMapper;
+import cn.gistack.sm.point.service.PointService;
+import cn.gistack.sm.point.vo.PointVO;
+import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
+import com.baomidou.mybatisplus.core.metadata.IPage;
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import org.springframework.stereotype.Service;
+import org.springframework.transaction.annotation.Transactional;
+
+/**
+ * 点位服务实现层
+ * @author zhongrj
+ * @date 2023-09-23
+ */
+@Service
+public class PointServiceImpl extends ServiceImpl<PointMapper, Point> implements PointService {
+
+ /**
+ * 自定义分页列表查询
+ * @param page
+ * @param point
+ * @return
+ */
+ @Override
+ public IPage<PointVO> selectPointPage(IPage<PointVO> page, PointVO point) {
+ return page.setRecords(baseMapper.selectPointPage(page,point));
+ }
+
+ /**
+ * 通过图片id删除
+ * @param id
+ * @return
+ */
+ @Override
+ @Transactional(rollbackFor = Exception.class)
+ public Boolean deleteByPicId(String id) {
+ Boolean flag = false;
+ // 先删除图片附件
+ int i = baseMapper.deletePicByPicAttach(id);
+ // 在删除对应的点位数据
+ if(i>0){
+ QueryWrapper<Point> wrapper = new QueryWrapper<>();
+ wrapper.eq("pic_id",id);
+ int delete = baseMapper.delete(wrapper);
+ if (delete>0){
+ flag = true;
+ }
+ }
+ return flag;
+ }
+}
diff --git a/skjcmanager/skjcmanager-service/skjcmanager-sm/src/main/java/cn/gistack/sm/point/vo/PointVO.java b/skjcmanager/skjcmanager-service/skjcmanager-sm/src/main/java/cn/gistack/sm/point/vo/PointVO.java
new file mode 100644
index 0000000..f97c207
--- /dev/null
+++ b/skjcmanager/skjcmanager-service/skjcmanager-sm/src/main/java/cn/gistack/sm/point/vo/PointVO.java
@@ -0,0 +1,8 @@
+package cn.gistack.sm.point.vo;
+
+import cn.gistack.sm.point.entity.Point;
+import lombok.Data;
+
+@Data
+public class PointVO extends Point {
+}
diff --git a/skjcmanager/skjcmanager-service/skjcmanager-sm/src/main/java/cn/gistack/sm/sjztmd/dto/AttResBaseUserDTO.java b/skjcmanager/skjcmanager-service/skjcmanager-sm/src/main/java/cn/gistack/sm/sjztmd/dto/AttResBaseUserDTO.java
index ce887dd..acbce21 100644
--- a/skjcmanager/skjcmanager-service/skjcmanager-sm/src/main/java/cn/gistack/sm/sjztmd/dto/AttResBaseUserDTO.java
+++ b/skjcmanager/skjcmanager-service/skjcmanager-sm/src/main/java/cn/gistack/sm/sjztmd/dto/AttResBaseUserDTO.java
@@ -185,10 +185,29 @@
*/
@ApiModelProperty(value = "巡查责任人-职务")
private String patrolPosition;
+
/**
* 巡查责任人-所属单位
*/
@ApiModelProperty(value = "巡查责任人-所属单位")
private String patrolUnitName;
+ /**
+ * 市州名称
+ */
+ @ApiModelProperty(value = "市州名称")
+ private String cityName;
+
+ /**
+ * 区县名称
+ */
+ @ApiModelProperty(value = "区县名称")
+ private String countyName;
+
+ /**
+ * 乡镇名称
+ */
+ @ApiModelProperty(value = "乡镇名称")
+ private String townName;
+
}
diff --git a/skjcmanager/skjcmanager-service/skjcmanager-sm/src/main/java/cn/gistack/sm/sjztmd/entity/TbAttResInformationProject.java b/skjcmanager/skjcmanager-service/skjcmanager-sm/src/main/java/cn/gistack/sm/sjztmd/entity/TbAttResInformationProject.java
index 29360d2..d374de6 100644
--- a/skjcmanager/skjcmanager-service/skjcmanager-sm/src/main/java/cn/gistack/sm/sjztmd/entity/TbAttResInformationProject.java
+++ b/skjcmanager/skjcmanager-service/skjcmanager-sm/src/main/java/cn/gistack/sm/sjztmd/entity/TbAttResInformationProject.java
@@ -43,13 +43,6 @@
private String resGuid;
/**
- * 运行状态
- */
- @ApiModelProperty(value = "运行状态")
- @TableField("\"run_status\"")
- private String runStatus;
-
- /**
* 是否有水雨情测报雨量
*/
@ApiModelProperty(value = "是否有水雨情测报雨量")
diff --git a/skjcmanager/skjcmanager-service/skjcmanager-sm/src/main/java/cn/gistack/sm/sjztmd/entity/TbAttResRsbNorspi.java b/skjcmanager/skjcmanager-service/skjcmanager-sm/src/main/java/cn/gistack/sm/sjztmd/entity/TbAttResRsbNorspi.java
index 80e628e..218784c 100644
--- a/skjcmanager/skjcmanager-service/skjcmanager-sm/src/main/java/cn/gistack/sm/sjztmd/entity/TbAttResRsbNorspi.java
+++ b/skjcmanager/skjcmanager-service/skjcmanager-sm/src/main/java/cn/gistack/sm/sjztmd/entity/TbAttResRsbNorspi.java
@@ -134,6 +134,13 @@
private Integer ocType;
/**
+ * 启闭动力
+ */
+ @ApiModelProperty(value = "启闭动力")
+ @TableField("\"oc_power\"")
+ private String ocPower;
+
+ /**
* 消能方式
*/
@ApiModelProperty(value = "消能方式")
diff --git a/skjcmanager/skjcmanager-service/skjcmanager-sm/src/main/java/cn/gistack/sm/sjztmd/entity/TbAttResRsbSpillway.java b/skjcmanager/skjcmanager-service/skjcmanager-sm/src/main/java/cn/gistack/sm/sjztmd/entity/TbAttResRsbSpillway.java
index ebee1eb..25ffaaa 100644
--- a/skjcmanager/skjcmanager-service/skjcmanager-sm/src/main/java/cn/gistack/sm/sjztmd/entity/TbAttResRsbSpillway.java
+++ b/skjcmanager/skjcmanager-service/skjcmanager-sm/src/main/java/cn/gistack/sm/sjztmd/entity/TbAttResRsbSpillway.java
@@ -127,6 +127,13 @@
private String ocType;
/**
+ * 启闭动力
+ */
+ @ApiModelProperty(value = "启闭动力")
+ @TableField("\"oc_power\"")
+ private String ocPower;
+
+ /**
* 填报状态(0:填写中,1:审核中,2:审核通过)
*/
@ApiModelProperty(value = "填报状态(0:填写中,1:审核中,2:审核通过) ")
diff --git a/skjcmanager/skjcmanager-service/skjcmanager-sm/src/main/java/cn/gistack/sm/sjztmd/entity/TbAttResWaterDelivery.java b/skjcmanager/skjcmanager-service/skjcmanager-sm/src/main/java/cn/gistack/sm/sjztmd/entity/TbAttResWaterDelivery.java
index 0893aff..4991fc1 100644
--- a/skjcmanager/skjcmanager-service/skjcmanager-sm/src/main/java/cn/gistack/sm/sjztmd/entity/TbAttResWaterDelivery.java
+++ b/skjcmanager/skjcmanager-service/skjcmanager-sm/src/main/java/cn/gistack/sm/sjztmd/entity/TbAttResWaterDelivery.java
@@ -113,6 +113,20 @@
private String ocType;
/**
+ * 启闭动力
+ */
+ @ApiModelProperty(value = "启闭动力")
+ @TableField("\"oc_power\"")
+ private String ocPower;
+
+ /**
+ * 输水道是否穿过坝体
+ */
+ @ApiModelProperty(value = "输水道是否穿过坝体")
+ @TableField("\"is_across_dam_body\"")
+ private String isAcrossDamBody;
+
+ /**
* 填报状态(0:填写中,1:审核中,2:审核通过)
*/
@ApiModelProperty(value = "填报状态(0:填写中,1:审核中,2:审核通过) ")
diff --git a/skjcmanager/skjcmanager-service/skjcmanager-sm/src/main/java/cn/gistack/sm/sjztmd/entity/TbFileStorageLocation.java b/skjcmanager/skjcmanager-service/skjcmanager-sm/src/main/java/cn/gistack/sm/sjztmd/entity/TbFileStorageLocation.java
index 7f5b23d..945e21f 100644
--- a/skjcmanager/skjcmanager-service/skjcmanager-sm/src/main/java/cn/gistack/sm/sjztmd/entity/TbFileStorageLocation.java
+++ b/skjcmanager/skjcmanager-service/skjcmanager-sm/src/main/java/cn/gistack/sm/sjztmd/entity/TbFileStorageLocation.java
@@ -50,32 +50,46 @@
private String constructionPeriodDataPath;
/**
- * 除险加固资料路径
+ * 改扩建资料
*/
- @ApiModelProperty(value = "除险加固资料路径")
+ @ApiModelProperty(value = "改扩建资料")
+ @TableField("\"reconstruction_and_expansion_data\"")
+ private String reconstructionAndExpansionData;
+
+ /**
+ * 安全鉴定资料路径
+ */
+ @ApiModelProperty(value = "安全鉴定资料路径")
+ @TableField("\"safety_appraisal_data_path\"")
+ private String safetyAppraisalDataPath;
+
+ /**
+ * 除险加固报告资料路径
+ */
+ @ApiModelProperty(value = "除险加固报告资料路径")
@TableField("\"reinforce_data_path\"")
private String reinforceDataPath;
/**
- * 第一次除险加固资料路径
+ * 除险加固批复资料路径
*/
- @ApiModelProperty(value = "第一次除险加固资料路径")
- @TableField("\"first_reinforce_data_path\"")
- private String firstReinforceDataPath;
+ @ApiModelProperty(value = "除险加固批复资料路径")
+ @TableField("\"reinforce_approval_path\"")
+ private String reinforceApprovalPath;
/**
- * 第二次除险加固资料路径
+ * 调度规程资料路径
*/
- @ApiModelProperty(value = "第二次除险加固资料路径")
- @TableField("\"second_reinforce_data_path\"")
- private String secondReinforceDataPath;
+ @ApiModelProperty(value = "调度规程资料路径")
+ @TableField("\"dispatch_regulation_data_path\"")
+ private String dispatchRegulationDataPath;
/**
- * 第三次除险加固资料路径
+ * 调度规程批复资料路径
*/
- @ApiModelProperty(value = "第三次除险加固资料路径")
- @TableField("\"third_reinforce_data_path\"")
- private String thirdReinforceDataPath;
+ @ApiModelProperty(value = "调度规程批复资料路径")
+ @TableField("\"dispatch_regulation_approval_path\"")
+ private String dispatchRegulationApprovalPath;
/**
* 日常运行管理资料路径
@@ -99,6 +113,13 @@
private String waterAerialView;
/**
+ * 其他资料路径
+ */
+ @ApiModelProperty(value = "其他资料路径")
+ @TableField("\"other_data_path\"")
+ private String otherDataPath;
+
+ /**
* 填报状态(0:填写中,1:审核中,2:审核通过)
*/
@ApiModelProperty(value = "填报状态(0:填写中,1:审核中,2:审核通过) ")
diff --git a/skjcmanager/skjcmanager-service/skjcmanager-sm/src/main/java/cn/gistack/sm/sjztmd/feign/AttResManagePersonClient.java b/skjcmanager/skjcmanager-service/skjcmanager-sm/src/main/java/cn/gistack/sm/sjztmd/feign/AttResManagePersonClient.java
index 62cc021..d2d6a95 100644
--- a/skjcmanager/skjcmanager-service/skjcmanager-sm/src/main/java/cn/gistack/sm/sjztmd/feign/AttResManagePersonClient.java
+++ b/skjcmanager/skjcmanager-service/skjcmanager-sm/src/main/java/cn/gistack/sm/sjztmd/feign/AttResManagePersonClient.java
@@ -81,7 +81,7 @@
* @return
*/
@Override
- public List<PersonVO> getUserListByResGuid(String res_cd,String areaList) {
+ public List<PersonVO> getUserListByResGuid(String res_cd, String areaList) {
return adBaseService.getPersonListByResGuid(res_cd,areaList);
}
diff --git a/skjcmanager/skjcmanager-service/skjcmanager-sm/src/main/java/cn/gistack/sm/sjztmd/mapper/AttAdBaseMapper.java b/skjcmanager/skjcmanager-service/skjcmanager-sm/src/main/java/cn/gistack/sm/sjztmd/mapper/AttAdBaseMapper.java
index f8ff127..662f5b3 100644
--- a/skjcmanager/skjcmanager-service/skjcmanager-sm/src/main/java/cn/gistack/sm/sjztmd/mapper/AttAdBaseMapper.java
+++ b/skjcmanager/skjcmanager-service/skjcmanager-sm/src/main/java/cn/gistack/sm/sjztmd/mapper/AttAdBaseMapper.java
@@ -1,13 +1,12 @@
package cn.gistack.sm.sjztmd.mapper;
import cn.gistack.common.node.TreeNode;
-import cn.gistack.sm.sjztmd.vo.PersonVO;
import cn.gistack.sm.sjztmd.entity.AttAdBase;
import cn.gistack.sm.sjztmd.vo.AttAdBaseVO;
+import cn.gistack.sm.sjztmd.vo.PersonVO;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import org.apache.ibatis.annotations.MapKey;
import org.apache.ibatis.annotations.Param;
-import org.springframework.web.bind.annotation.PostMapping;
import java.util.List;
import java.util.Map;
@@ -37,7 +36,7 @@
* @param res_cd
* @return
*/
- List<PersonVO> getPersonListByResGuid(@Param("res_cd")String res_cd,@Param("roleName") String areaList);
+ List<PersonVO> getPersonListByResGuid(@Param("res_cd")String res_cd, @Param("roleName") String areaList);
AttAdBaseVO getDetail(@Param("attAdBase") AttAdBase attAdBase);
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 72aa6b8..39bb55e 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
@@ -34,6 +34,9 @@
<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,
+ 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,
aab."ad_name" as adName,
trmp1."user_unit" areaUnitName,trmp1."user_name" areaUsername,trmp1."user_phone" areaPhone,trmp1."position" areaPosition,trmp1."guid" areaUserGuid,
trmp2."user_unit" customsUnitName,trmp2."user_name" customsUsername,trmp2."user_phone" customsPhone,trmp2."position" customsPosition,trmp2."guid" customsUserGuid,
diff --git a/skjcmanager/skjcmanager-service/skjcmanager-sm/src/main/java/cn/gistack/sm/sjztmd/mapper/AttResManagePersonMapper.java b/skjcmanager/skjcmanager-service/skjcmanager-sm/src/main/java/cn/gistack/sm/sjztmd/mapper/AttResManagePersonMapper.java
index bb4eda1..8a5e704 100644
--- a/skjcmanager/skjcmanager-service/skjcmanager-sm/src/main/java/cn/gistack/sm/sjztmd/mapper/AttResManagePersonMapper.java
+++ b/skjcmanager/skjcmanager-service/skjcmanager-sm/src/main/java/cn/gistack/sm/sjztmd/mapper/AttResManagePersonMapper.java
@@ -1,5 +1,6 @@
package cn.gistack.sm.sjztmd.mapper;
+import cn.gistack.sm.intelligentCall.entity.Scene;
import cn.gistack.sm.sjztmd.entity.AttResManagePerson;
import cn.gistack.sm.sjztmd.entity.PatrolResponsiblePerson;
import cn.gistack.sm.sjztmd.vo.PersonVO;
@@ -59,6 +60,16 @@
* @return
*/
List<PersonVO> getCityCountyPersonListByResGuid(@Param("adCode") String res_cd,
- @Param("roleAlias") String roleAlias,
- @Param("type") String type);
+ @Param("roleAlias") String roleAlias,
+ @Param("type") String type);
+
+ List<PatrolResponsiblePerson> getPatrolResponsiblePersonByResCdList(@Param("ids") List<String> reservoirList);
+
+ /**
+ * 通过水库代码获取水库及巡查责任人信息
+ * @param list
+ * @return
+ */
+ @DS("zt")
+ Set<Scene> getPatrolPersonListByWaterCodeList(@Param("list") List<String> list);
}
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 91c86ac..efb2f34 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
@@ -175,6 +175,30 @@
group by b."user_phone"
</select>
+ <!--通过水库代码获取巡查责任人及技术责任人手机号-->
+ <select id="getPatrolPersonListByWaterCodeList" resultType="cn.gistack.sm.intelligentCall.entity.Scene">
+ SELECT
+ a."guid" as waterCode,
+ a."name" as waterName,
+ b."user_name" as username,
+ b."user_phone" as userId,
+ b."user_phone" as phone
+ FROM SJZT_MD."att_res_base" a
+ LEFT JOIN SJZT_MD."att_res_manage_person" b ON a."guid" = b."res_guid"
+ where 1=1 and b."type" = 5
+ <choose>
+ <when test="list!=null and list.size()>0">
+ and "sk_code" in
+ <foreach collection="list" item="id" open="(" close=")" separator=",">
+ #{id}
+ </foreach>
+ </when>
+ <otherwise>
+ and "sk_code" in ('')
+ </otherwise>
+ </choose>
+ </select>
+
<!--根据水库编号查询市县水利部人员姓名及联系方式-->
<select id="getCityCountyPersonListByResGuid" resultType="cn.gistack.sm.sjztmd.vo.PersonVO">
select real_name as name,phone,#{type} as type from YWXT.blade_user bu
@@ -185,5 +209,32 @@
and bd.ad_code = #{adCode}
limit 3
</select>
+ <select id="getPatrolResponsiblePersonByResCdList"
+ resultType="cn.gistack.sm.sjztmd.entity.PatrolResponsiblePerson">
+
+ select DISTINCT a."res_guid", c."name", b.id as user_id
+ from "SJZT_MD"."att_res_manage_person" a,
+ "BLADE_USER" b,
+ "SJZT_MD"."att_res_base" c
+ WHERE a."user_phone" = b.PHONE
+ and a."res_guid" = c."guid"
+ and a."type" = 5
+ <choose>
+ <when test="ids!=null and ids.size()>0">
+ and "res_guid" in
+ <foreach collection="ids" item="id" open="(" close=")" separator=",">
+ #{id}
+ </foreach>
+ </when>
+ <otherwise>
+ and "res_guid" in ('')
+ </otherwise>
+ </choose>
+
+
+
+
+
+ </select>
</mapper>
diff --git a/skjcmanager/skjcmanager-service/skjcmanager-sm/src/main/java/cn/gistack/sm/sjztmd/service/IAttAdBaseService.java b/skjcmanager/skjcmanager-service/skjcmanager-sm/src/main/java/cn/gistack/sm/sjztmd/service/IAttAdBaseService.java
index f8e011e..bc65a5c 100644
--- a/skjcmanager/skjcmanager-service/skjcmanager-sm/src/main/java/cn/gistack/sm/sjztmd/service/IAttAdBaseService.java
+++ b/skjcmanager/skjcmanager-service/skjcmanager-sm/src/main/java/cn/gistack/sm/sjztmd/service/IAttAdBaseService.java
@@ -35,7 +35,7 @@
* @param areaList
* @return
*/
- List<PersonVO> getPersonListByResGuid(String res_cd,String areaList);
+ List<PersonVO> getPersonListByResGuid(String res_cd, String areaList);
/**
* 获取详情
diff --git a/skjcmanager/skjcmanager-service/skjcmanager-sm/src/main/java/cn/gistack/sm/sjztmd/service/IAttResManagePersonService.java b/skjcmanager/skjcmanager-service/skjcmanager-sm/src/main/java/cn/gistack/sm/sjztmd/service/IAttResManagePersonService.java
index 5542f4d..46d9c4e 100644
--- a/skjcmanager/skjcmanager-service/skjcmanager-sm/src/main/java/cn/gistack/sm/sjztmd/service/IAttResManagePersonService.java
+++ b/skjcmanager/skjcmanager-service/skjcmanager-sm/src/main/java/cn/gistack/sm/sjztmd/service/IAttResManagePersonService.java
@@ -1,9 +1,9 @@
package cn.gistack.sm.sjztmd.service;
+import cn.gistack.sm.intelligentCall.entity.Scene;
import cn.gistack.sm.sjztmd.entity.AttResManagePerson;
import cn.gistack.sm.sjztmd.entity.PatrolResponsiblePerson;
import cn.gistack.sm.sjztmd.vo.PersonVO;
-import cn.gistack.sm.sjztmd.vo.UserPersonVO;
import com.baomidou.mybatisplus.extension.service.IService;
import org.springblade.core.tool.api.R;
@@ -69,4 +69,18 @@
* @return
*/
List<PersonVO> getCityCountyPersonListByResGuid(String res_cd);
+
+ /**
+ * 根据水库id集合查询巡查责任人
+ * @param reservoirList
+ * @return
+ */
+ List<PatrolResponsiblePerson> getPatrolResponsiblePersonByResCdList(List<String> reservoirList);
+
+ /**
+ * 通过水库代码获取水库及巡查责任人信息
+ * @param stringList
+ * @return
+ */
+ Set<Scene> getPatrolPersonListByWaterCodeList(List<String> stringList);
}
diff --git a/skjcmanager/skjcmanager-service/skjcmanager-sm/src/main/java/cn/gistack/sm/sjztmd/service/impl/AttAdBaseServiceImpl.java b/skjcmanager/skjcmanager-service/skjcmanager-sm/src/main/java/cn/gistack/sm/sjztmd/service/impl/AttAdBaseServiceImpl.java
index c86285f..86ea764 100644
--- a/skjcmanager/skjcmanager-service/skjcmanager-sm/src/main/java/cn/gistack/sm/sjztmd/service/impl/AttAdBaseServiceImpl.java
+++ b/skjcmanager/skjcmanager-service/skjcmanager-sm/src/main/java/cn/gistack/sm/sjztmd/service/impl/AttAdBaseServiceImpl.java
@@ -2,11 +2,11 @@
import cn.gistack.common.node.TreeNode;
import cn.gistack.common.utils.NodeTreeUtil;
-import cn.gistack.sm.sjztmd.vo.PersonVO;
import cn.gistack.sm.sjztmd.entity.AttAdBase;
import cn.gistack.sm.sjztmd.mapper.AttAdBaseMapper;
import cn.gistack.sm.sjztmd.service.IAttAdBaseService;
import cn.gistack.sm.sjztmd.vo.AttAdBaseVO;
+import cn.gistack.sm.sjztmd.vo.PersonVO;
import com.baomidou.dynamic.datasource.annotation.DS;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import org.springframework.stereotype.Service;
@@ -75,7 +75,7 @@
* @return
*/
@Override
- public List<PersonVO> getPersonListByResGuid(String res_cd,String areaList) {
+ public List<PersonVO> getPersonListByResGuid(String res_cd, String areaList) {
return baseMapper.getPersonListByResGuid(res_cd,areaList);
}
diff --git a/skjcmanager/skjcmanager-service/skjcmanager-sm/src/main/java/cn/gistack/sm/sjztmd/service/impl/AttResManagePersonServiceImpl.java b/skjcmanager/skjcmanager-service/skjcmanager-sm/src/main/java/cn/gistack/sm/sjztmd/service/impl/AttResManagePersonServiceImpl.java
index bad299c..727eb67 100644
--- a/skjcmanager/skjcmanager-service/skjcmanager-sm/src/main/java/cn/gistack/sm/sjztmd/service/impl/AttResManagePersonServiceImpl.java
+++ b/skjcmanager/skjcmanager-service/skjcmanager-sm/src/main/java/cn/gistack/sm/sjztmd/service/impl/AttResManagePersonServiceImpl.java
@@ -1,6 +1,6 @@
package cn.gistack.sm.sjztmd.service.impl;
-import cn.gistack.sm.sjztmd.entity.AttResBase;
+import cn.gistack.sm.intelligentCall.entity.Scene;
import cn.gistack.sm.sjztmd.entity.AttResManagePerson;
import cn.gistack.sm.sjztmd.entity.PatrolResponsiblePerson;
import cn.gistack.sm.sjztmd.mapper.AttResManagePersonMapper;
@@ -172,4 +172,20 @@
// 返回
return personVOList;
}
+
+ @DS("master")
+ @Override
+ public List<PatrolResponsiblePerson> getPatrolResponsiblePersonByResCdList(List<String> reservoirList) {
+ return baseMapper.getPatrolResponsiblePersonByResCdList(reservoirList);
+ }
+
+ /**
+ * 通过水库代码获取水库及巡查责任人信息
+ * @param stringList
+ * @return
+ */
+ @Override
+ public Set<Scene> getPatrolPersonListByWaterCodeList(List<String> stringList) {
+ return baseMapper.getPatrolPersonListByWaterCodeList(stringList);
+ }
}
diff --git a/skjcmanager/skjcmanager-service/skjcmanager-sm/src/main/java/cn/gistack/sm/sjztods/controller/SkxsQkTjController.java b/skjcmanager/skjcmanager-service/skjcmanager-sm/src/main/java/cn/gistack/sm/sjztods/controller/SkxsQkTjController.java
new file mode 100644
index 0000000..80b8753
--- /dev/null
+++ b/skjcmanager/skjcmanager-service/skjcmanager-sm/src/main/java/cn/gistack/sm/sjztods/controller/SkxsQkTjController.java
@@ -0,0 +1,99 @@
+package cn.gistack.sm.sjztods.controller;
+
+import cn.gistack.sm.sjztmd.excel.AttResStagCapDiscExcel;
+import cn.gistack.sm.sjztmd.excel.AttResStagCapDiscImport;
+import cn.gistack.sm.sjztods.entity.SkxsQkTj;
+import cn.gistack.sm.sjztods.excel.SkxsQkTjExcel;
+import cn.gistack.sm.sjztods.excel.SkxsQkTjImport;
+import cn.gistack.sm.sjztods.service.ISkxsQkTjService;
+import cn.gistack.sm.sjztods.vo.SkxsQkTjVO;
+import io.swagger.annotations.Api;
+import io.swagger.annotations.ApiOperation;
+import lombok.AllArgsConstructor;
+import lombok.extern.slf4j.Slf4j;
+import org.springblade.core.excel.util.ExcelUtil;
+import org.springblade.core.mp.support.Condition;
+import org.springblade.core.mp.support.Query;
+import org.springblade.core.secure.utils.AuthUtil;
+import org.springblade.core.tool.api.R;
+import org.springblade.core.tool.utils.DateUtil;
+import org.springframework.web.bind.annotation.*;
+import org.springframework.web.multipart.MultipartFile;
+
+import javax.servlet.http.HttpServletResponse;
+import java.util.ArrayList;
+import java.util.Date;
+import java.util.List;
+
+
+/**
+ *
+ * @ClassName SkxsQkTjController
+ * @author zhongrj
+ * @date 2023-10-19
+ */
+@Slf4j
+@Api(tags = "大中型水库蓄水情况统计表")
+@RestController
+@RequestMapping("/sjztods/skxsQkTj")
+@AllArgsConstructor
+public class SkxsQkTjController {
+
+ private final ISkxsQkTjService skxsQkTjService;
+
+ /**
+ * 上报
+ * @param skxsQkTj
+ * @return
+ */
+ @ApiOperation(value = "大中型水库蓄水情况统计-上报", notes = "大中型水库蓄水情况统计-上报")
+ @PostMapping(value = "/exportSkxsQkTj")
+ public R exportSkxsQkTj(@RequestBody SkxsQkTj skxsQkTj) {
+ return R.status(skxsQkTjService.exportSkxsQkTj(skxsQkTj));
+ }
+
+ /**
+ * 分页列表数据查询
+ * @param skxsQkTj
+ * @param query
+ * @return
+ */
+ @GetMapping(value = "/page")
+ public R page(SkxsQkTjVO skxsQkTj, Query query) {
+ return R.data(skxsQkTjService.selectSkxsQkTjPage(Condition.getPage(query), skxsQkTj));
+ }
+
+ /**
+ * 按行政区统计
+ * @param skxsQkTj
+ * @return
+ */
+ @ApiOperation(value = "大中型水库蓄水情况统计-按行政区统计", notes = "大中型水库蓄水情况统计-按行政区统计")
+ @GetMapping(value = "/getStatisticList")
+ public R getStatisticList(SkxsQkTjVO skxsQkTj) {
+ return R.data(skxsQkTjService.getStatisticList(skxsQkTj));
+ }
+
+ /**
+ * 导入
+ * @param file
+ * @return
+ */
+ @PostMapping("/import-skxsQkTj")
+ public R importSkxsQkTj(MultipartFile file) {
+ SkxsQkTjImport skxsQkTjImport = new SkxsQkTjImport(skxsQkTjService);
+ ExcelUtil.save(file, skxsQkTjImport, SkxsQkTjExcel.class);
+ return R.success("操作成功");
+ }
+
+ /**
+ * 导出
+ * @param skxsQkTj
+ */
+ @GetMapping("/export-skxsQkTj")
+ public void exportSkxsQkTj(HttpServletResponse response,SkxsQkTjVO skxsQkTj) {
+ List<SkxsQkTjExcel> list = skxsQkTjService.exportSkxsQkTjList(skxsQkTj);
+ ExcelUtil.export(response, "水库统计数据" + DateUtil.time(), "水库统计数据表", list, SkxsQkTjExcel.class);
+ }
+
+}
diff --git a/skjcmanager/skjcmanager-service/skjcmanager-sm/src/main/java/cn/gistack/sm/sjztods/controller/ZdxSkZhController.java b/skjcmanager/skjcmanager-service/skjcmanager-sm/src/main/java/cn/gistack/sm/sjztods/controller/ZdxSkZhController.java
new file mode 100644
index 0000000..b9294de
--- /dev/null
+++ b/skjcmanager/skjcmanager-service/skjcmanager-sm/src/main/java/cn/gistack/sm/sjztods/controller/ZdxSkZhController.java
@@ -0,0 +1,44 @@
+package cn.gistack.sm.sjztods.controller;
+
+import cn.gistack.sm.sjztods.entity.ZdxSkZh;
+import cn.gistack.sm.sjztods.service.IZdxSkZhService;
+import io.swagger.annotations.Api;
+import io.swagger.annotations.ApiOperation;
+import lombok.AllArgsConstructor;
+import lombok.extern.slf4j.Slf4j;
+import org.springblade.core.tool.api.R;
+import org.springframework.web.bind.annotation.*;
+
+import java.util.Date;
+
+
+/**
+ *
+ * @ClassName ZdxSkZhController
+ * @author zhongrj
+ * @date 2023-10-09
+ */
+@Slf4j
+@Api(tags = "中大型数据整合填报")
+@RestController
+@RequestMapping("/sjztmd/zdSkZh")
+@AllArgsConstructor
+public class ZdxSkZhController {
+
+ private final IZdxSkZhService zdxSkZhService;
+
+ /**
+ * 新增
+ * @param zdxSkZh
+ * @return
+ */
+ @ApiOperation(value = "中大型数据整合-新增", notes = "中大型数据整合-新增")
+ @PostMapping(value = "/save")
+ public R save(@RequestBody ZdxSkZh zdxSkZh) {
+ zdxSkZh.setCreateTime(new Date());
+ zdxSkZh.setUpdateTime(new Date());
+ zdxSkZh.setSysResource("zj");
+ return R.status(zdxSkZhService.saveZdxSkZh(zdxSkZh));
+ }
+
+}
diff --git a/skjcmanager/skjcmanager-service/skjcmanager-sm/src/main/java/cn/gistack/sm/sjztods/entity/SkxsQkTj.java b/skjcmanager/skjcmanager-service/skjcmanager-sm/src/main/java/cn/gistack/sm/sjztods/entity/SkxsQkTj.java
new file mode 100644
index 0000000..0f0f865
--- /dev/null
+++ b/skjcmanager/skjcmanager-service/skjcmanager-sm/src/main/java/cn/gistack/sm/sjztods/entity/SkxsQkTj.java
@@ -0,0 +1,228 @@
+package cn.gistack.sm.sjztods.entity;
+
+import com.baomidou.mybatisplus.annotation.IdType;
+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 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 2023-10-18
+ */
+@Data
+@TableName("\"skxs_qk_tj\"")
+@ApiModel(value = "大中型水库蓄水情况统计表", description = "大中型水库蓄水情况统计表")
+public class SkxsQkTj implements Serializable {
+ private static final long serialVersionUID = 1L;
+
+ /**
+ * 主键
+ */
+ @ApiModelProperty(value = "主键")
+ @TableId(value = "\"guid\"",type = IdType.ASSIGN_ID)
+ private String guid;
+
+ /**
+ * 水库编号
+ */
+ @ApiModelProperty(value = "水库编号")
+ @TableField("\"res_code\"")
+ private String resCode;
+
+ /**
+ * 水库名称
+ */
+ @ApiModelProperty(value = "水库名称")
+ @TableField("\"res_name\"")
+ private String resName;
+
+ /**
+ * 总库容
+ */
+ @ApiModelProperty(value = "总库容")
+ @TableField("\"total_cap\"")
+ private Double totalCap;
+
+ /**
+ * 当前水位
+ */
+ @ApiModelProperty(value = "当前水位")
+ @TableField("\"rz\"")
+ private Double rz;
+
+ /**
+ * 当日蓄水量
+ */
+ @ApiModelProperty(value = "当日蓄水量")
+ @TableField("\"ws\"")
+ private Double ws;
+
+ /**
+ * 上月最后一天蓄水量
+ */
+ @ApiModelProperty(value = "上月最后一天蓄水量")
+ @TableField("\"up_month_ws\"")
+ private Double upMonthWs;
+
+ /**
+ * 去年同期蓄水量
+ */
+ @ApiModelProperty(value = "去年同期蓄水量")
+ @TableField("\"last_year_ws\"")
+ private Double lastYearWs;
+
+ /**
+ * 历史同期蓄水量
+ */
+ @ApiModelProperty(value = "历史同期蓄水量")
+ @TableField("\"his_ws\"")
+ private Double hisWs;
+
+ /**
+ * 今年以来灌溉放水量
+ */
+ @ApiModelProperty(value = "今年以来灌溉放水量")
+ @TableField("\"now_year_irr_dw\"")
+ private Double nowYearIrrDw;
+
+ /**
+ * 今年以来生活放水量
+ */
+ @ApiModelProperty(value = "今年以来生活放水量")
+ @TableField("\"now_year_live_dw\"")
+ private Double nowYearLiveDw;
+
+ /**
+ * 今年以来生态放水量
+ */
+ @ApiModelProperty(value = "今年以来生态放水量 ")
+ @TableField("\"now_year_zoo_dw\"")
+ private Double nowYearZooDw;
+
+ /**
+ * 总蓄水现有-历史
+ */
+ @ApiModelProperty(value = "总蓄水现有-历史 ")
+ @TableField("\"total_ws_dif\"")
+ private String totalWsDif;
+
+ /**
+ * 总蓄水较历史同期(%)
+ */
+ @ApiModelProperty(value = "总蓄水较历史同期(%)")
+ @TableField("\"total_ws_his_pro\"")
+ private String totalWsHisPro;
+
+ /**
+ * 死库容
+ */
+ @ApiModelProperty(value = "死库容")
+ @TableField("\"dead_cap\"")
+ private Double deadCap;
+
+ /**
+ * 当前有效蓄水
+ */
+ @ApiModelProperty(value = "当前有效蓄水 ")
+ @TableField("\"now_valid_ws\"")
+ private Double nowValidWs;
+
+ /**
+ * 兴利库容
+ */
+ @ApiModelProperty(value = "兴利库容 ")
+ @TableField("\"ben_res_cap\"")
+ private Double benResCap;
+
+ /**
+ * 有效蓄水/兴利(%)
+ */
+ @ApiModelProperty(value = "有效蓄水/兴利(%) ")
+ @TableField("\"valid_ws_ben_pro\"")
+ private String validWsBenPro;
+ /**
+ * 历史同期有效蓄水
+ */
+ @ApiModelProperty(value = "历史同期有效蓄水 ")
+ @TableField("\"his_valid_ws\"")
+ private Double hisValidWs;
+ /**
+ * 当前有效比历史同期(%)
+ */
+ @ApiModelProperty(value = "当前有效比历史同期(%) ")
+ @TableField("\"now_valid_his_pro\"")
+ private String nowValidHisPro;
+
+ /**
+ * 去年有效蓄水
+ */
+ @ApiModelProperty(value = "去年有效蓄水 ")
+ @TableField("\"last_year_valid_ws\"")
+ private Double lastYearValidWs;
+
+ /**
+ * 当前有效比去年同期(%)
+ */
+ @ApiModelProperty(value = "当前有效比去年同期(%) ")
+ @TableField("\"now_valid_last_pro\"")
+ private String nowValidLastPro;
+
+ /**
+ * 统计时间
+ */
+ @ApiModelProperty(value = "统计时间 ")
+ @TableField("\"statistic_time\"")
+ @DateTimeFormat(pattern = "yyyy-MM-dd")
+ @JsonFormat(pattern = "yyyy-MM-dd")
+ private Date statisticTime;
+
+ /**
+ * 创建人
+ */
+ @ApiModelProperty(value = "创建人")
+ @TableField("\"create_user\"")
+ private Long createUser;
+
+ /**
+ * 创建时间
+ */
+ @ApiModelProperty(value = "创建时间 ")
+ @TableField("\"create_time\"")
+ @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
+ @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
+ private Date createTime;
+
+
+ /**
+ * 更新人
+ */
+ @ApiModelProperty(value = "更新人")
+ @TableField("\"update_user\"")
+ private Long updateUser;
+
+ /**
+ * 更新时间
+ */
+ @ApiModelProperty(value = "更新时间 ")
+ @TableField("\"update_time\"")
+ @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
+ @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
+ private Date updateTime;
+
+ /**
+ * 来源
+ */
+ @ApiModelProperty(value = "来源 ")
+ @TableField("\"sys_resource\"")
+ private String sysResource;
+
+}
diff --git a/skjcmanager/skjcmanager-service/skjcmanager-sm/src/main/java/cn/gistack/sm/sjztods/entity/XsfsQktj.java b/skjcmanager/skjcmanager-service/skjcmanager-sm/src/main/java/cn/gistack/sm/sjztods/entity/XsfsQktj.java
new file mode 100644
index 0000000..504c9d8
--- /dev/null
+++ b/skjcmanager/skjcmanager-service/skjcmanager-sm/src/main/java/cn/gistack/sm/sjztods/entity/XsfsQktj.java
@@ -0,0 +1,241 @@
+package cn.gistack.sm.sjztods.entity;
+
+import com.baomidou.mybatisplus.annotation.IdType;
+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 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 2023-10-18
+ */
+@Data
+@TableName("\"xsfs_qktj\"")
+@ApiModel(value = "蓄水放水情况统计表", description = "蓄水放水情况统计表")
+public class XsfsQktj implements Serializable {
+ private static final long serialVersionUID = 1L;
+
+ /**
+ * 主键
+ */
+ @ApiModelProperty(value = "主键")
+ @TableId(value = "\"guid\"",type = IdType.ASSIGN_ID)
+ private String guid;
+
+ /**
+ * 区域名称
+ */
+ @ApiModelProperty(value = "区域名称")
+ @TableField("\"ad_name\"")
+ private String adName;
+
+ /**
+ * 区域等级
+ */
+ @ApiModelProperty(value = "区域等级")
+ @TableField("\"ad_grad\"")
+ private String adGrad;
+
+ /**
+ * 区域编号
+ */
+ @ApiModelProperty(value = "区域编号")
+ @TableField("\"ad_code\"")
+ private String adCode;
+
+ /**
+ * 总蓄水合计
+ */
+ @ApiModelProperty(value = "总蓄水合计")
+ @TableField("\"zxs_total\"")
+ private Double zxsTotal;
+
+ /**
+ * 总蓄水较上次
+ */
+ @ApiModelProperty(value = "总蓄水较上次")
+ @TableField("\"zxs_sc\"")
+ private String zxsSc;
+
+ /**
+ * 总蓄水较历史同期
+ */
+ @ApiModelProperty(value = "总蓄水较历史同期")
+ @TableField("\"zxs_his_tq\"")
+ private String zxsHisTq;
+
+ /**
+ * 总蓄水较历史同期增减(%)
+ */
+ @ApiModelProperty(value = "总蓄水较历史同期增减(%)")
+ @TableField("\"zxs_his_tqzj\"")
+ private String zxsHisTqzj;
+
+ /**
+ * 总蓄水较去年同期
+ */
+ @ApiModelProperty(value = "总蓄水较去年同期")
+ @TableField("\"zxs_last_year_tq\"")
+ private String zxsLastYearTq;
+
+ /**
+ * 总蓄水较去年同期增减(%)
+ */
+ @ApiModelProperty(value = "总蓄水较去年同期增减(%)")
+ @TableField("\"zxs_last_year_tqzj\"")
+ private String zxsLastYearTqzj;
+
+ /**
+ * 有效蓄水合计
+ */
+ @ApiModelProperty(value = "有效蓄水合计")
+ @TableField("\"yxxs_total\"")
+ private Double yxxsTotal;
+
+ /**
+ * 有效蓄水较同期历史有效蓄水增减(%)
+ */
+ @ApiModelProperty(value = "有效蓄水较同期历史有效蓄水增减(%) ")
+ @TableField("\"yxxs_his_tqzj\"")
+ private String yxxsHisTqzj;
+
+ /**
+ * 有效蓄水较同期去年有效蓄水增减(%)
+ */
+ @ApiModelProperty(value = "有效蓄水较同期去年有效蓄水增减(%) ")
+ @TableField("\"yxxs_last_year_tqzj\"")
+ private String yxxsLastYearTqzj;
+
+ /**
+ * 占兴利库容百分比(%)
+ */
+ @ApiModelProperty(value = "占兴利库容百分比(%)")
+ @TableField("\"yxxs_z_xlkr\"")
+ private String yxxsZXlkr;
+
+ /**
+ * 大型水库蓄水合计
+ */
+ @ApiModelProperty(value = "大型水库蓄水合计")
+ @TableField("\"dxsk_xs_total\"")
+ private Double dxskXsTotal;
+
+ /**
+ * 大型水库蓄水较历史同期
+ */
+ @ApiModelProperty(value = "大型水库蓄水较历史同期 ")
+ @TableField("\"dxsk_xs_his\"")
+ private String dxskXsHis;
+ /**
+ * 大型水库蓄水较去年同期
+ */
+ @ApiModelProperty(value = "大型水库蓄水较去年同期 ")
+ @TableField("\"dxsk_xs_last_year\"")
+ private String dxskXsLastYear;
+ /**
+ * 大型水库有效蓄水
+ */
+ @ApiModelProperty(value = "大型水库有效蓄水 ")
+ @TableField("\"dxsk_yxxs\"")
+ private Double dxskYxxs;
+ /**
+ * 中型水库蓄水合计
+ */
+ @ApiModelProperty(value = "中型水库蓄水合计 ")
+ @TableField("\"zxsk_xs_total\"")
+ private Double zxskXsTotal;
+ /**
+ * 中型水库较历史同期
+ */
+ @ApiModelProperty(value = "中型水库较历史同期 ")
+ @TableField("\"zxsk_xs_his\"")
+ private String zxskXsHis;
+
+ /**
+ * 中型水库较去年同期
+ */
+ @ApiModelProperty(value = "中型水库较去年同期 ")
+ @TableField("\"zxsk_xs_last_year\"")
+ private String zxskXsLastYear;
+
+ /**
+ * 中型水库有效蓄水
+ */
+ @ApiModelProperty(value = "中型水库有效蓄水 ")
+ @TableField("\"zxsk_yxxs\"")
+ private Double zxskYxxs;
+
+ /**
+ * 小型水库蓄水合计
+ */
+ @ApiModelProperty(value = "小型水库蓄水合计 ")
+ @TableField("\"xxsk_xs_total\"")
+ private Double xxskXsTotal;
+
+ /**
+ * 小型水库有效蓄水
+ */
+ @ApiModelProperty(value = "小型水库有效蓄水 ")
+ @TableField("\"xxsk_yxxs\"")
+ private Double xxskYxxs;
+
+ /**
+ * 统计时间
+ */
+ @ApiModelProperty(value = "统计时间 ")
+ @TableField("\"statistic_time\"")
+ @DateTimeFormat(pattern = "yyyy-MM-dd")
+ @JsonFormat(pattern = "yyyy-MM-dd")
+ private Date statisticTime;
+
+
+ /**
+ * 创建人
+ */
+ @ApiModelProperty(value = "创建人")
+ @TableField("\"create_user\"")
+ private Long createUser;
+
+ /**
+ * 创建时间
+ */
+ @ApiModelProperty(value = "创建时间 ")
+ @TableField("\"create_time\"")
+ @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
+ @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
+ private Date createTime;
+
+
+ /**
+ * 更新人
+ */
+ @ApiModelProperty(value = "更新人")
+ @TableField("\"update_user\"")
+ private Long updateUser;
+
+ /**
+ * 更新时间
+ */
+ @ApiModelProperty(value = "更新时间 ")
+ @TableField("\"update_time\"")
+ @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
+ @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
+ private Date updateTime;
+
+ /**
+ * 来源
+ */
+ @ApiModelProperty(value = "来源 ")
+ @TableField("\"sys_resource\"")
+ private String sysResource;
+
+}
diff --git a/skjcmanager/skjcmanager-service/skjcmanager-sm/src/main/java/cn/gistack/sm/sjztods/entity/ZdxSkZh.java b/skjcmanager/skjcmanager-service/skjcmanager-sm/src/main/java/cn/gistack/sm/sjztods/entity/ZdxSkZh.java
new file mode 100644
index 0000000..ca2e652
--- /dev/null
+++ b/skjcmanager/skjcmanager-service/skjcmanager-sm/src/main/java/cn/gistack/sm/sjztods/entity/ZdxSkZh.java
@@ -0,0 +1,207 @@
+package cn.gistack.sm.sjztods.entity;
+
+import com.baomidou.mybatisplus.annotation.TableField;
+import com.baomidou.mybatisplus.annotation.TableName;
+import com.fasterxml.jackson.annotation.JsonFormat;
+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 2023-10-09
+ */
+@Data
+@TableName("\"zdx_sk_zh\"")
+@ApiModel(value = "中大型数据整合", description = "中大型数据整合")
+public class ZdxSkZh implements Serializable {
+ private static final long serialVersionUID = 1L;
+
+ /**
+ * 水库编码
+ */
+ @ApiModelProperty(value = "水库编码")
+ @TableField("\"res_code\"")
+ private String resCode;
+
+ /**
+ * 水库名称
+ */
+ @ApiModelProperty(value = "水库名称")
+ @TableField("\"res_name\"")
+ private String resName;
+
+ /**
+ * 行政区划编码
+ */
+ @ApiModelProperty(value = "行政区划编码")
+ @TableField("\"ad_code\"")
+ private String adCode;
+
+ /**
+ * 管理部门行政区划编码
+ */
+ @ApiModelProperty(value = "管理部门行政区划编码")
+ @TableField("\"mgr_ad_code\"")
+ private String mgrAdCode;
+
+ /**
+ * 内部行政区划编码
+ */
+ @ApiModelProperty(value = "内部行政区划编码")
+ @TableField("\"interior_ad_guid\"")
+ private String interiorAdGuid;
+
+ /**
+ * 工程规模
+ */
+ @ApiModelProperty(value = "工程规模")
+ @TableField("\"eng_scal\"")
+ private String engScal;
+
+ /**
+ * 水库功能
+ */
+ @ApiModelProperty(value = "水库功能")
+ @TableField("\"res_func\"")
+ private String resFunc;
+
+ /**
+ * 水库类型
+ */
+ @ApiModelProperty(value = "水库类型")
+ @TableField("\"res_type\"")
+ private String resType;
+
+ /**
+ * 水库所在位置
+ */
+ @ApiModelProperty(value = "水库所在位置")
+ @TableField("\"res_loc\"")
+ private String resLoc;
+
+ /**
+ * 管理部门
+ */
+ @ApiModelProperty(value = "管理部门 ")
+ @TableField("\"mgr_dept\"")
+ private String mgrDept;
+
+ /**
+ * 所属行业部门
+ */
+ @ApiModelProperty(value = "所属行业部门 ")
+ @TableField("\"industry_dept\"")
+ private String industryDept;
+
+ /**
+ * 测站编码
+ */
+ @ApiModelProperty(value = "测站编码")
+ @TableField("\"st_code\"")
+ private String stCode;
+
+ /**
+ * 正常蓄水位
+ */
+ @ApiModelProperty(value = "正常蓄水位")
+ @TableField("\"norm_pool_stag\"")
+ private Double normPoolStag;
+
+ /**
+ * 死水位
+ */
+ @ApiModelProperty(value = "死水位 ")
+ @TableField("\"dead_stag\"")
+ private Double deadStag;
+ /**
+ * 防洪高水位
+ */
+ @ApiModelProperty(value = "防洪高水位 ")
+ @TableField("\"flpr_high_stag\"")
+ private Double flprHighStag;
+ /**
+ * 兴利水位
+ */
+ @ApiModelProperty(value = "兴利水位 ")
+ @TableField("\"ben_res_stag\"")
+ private Double benResStag;
+ /**
+ * 讯限水位
+ */
+ @ApiModelProperty(value = "讯限水位 ")
+ @TableField("\"flse_lim_stag\"")
+ private Double flseLimStag;
+ /**
+ * 设计洪水位
+ */
+ @ApiModelProperty(value = "设计洪水位 ")
+ @TableField("\"des_fl_stag\"")
+ private Double desFlStag;
+ /**
+ * 校核洪水位
+ */
+ @ApiModelProperty(value = "校核洪水位 ")
+ @TableField("\"chec_fl_stag\"")
+ private Double checFlStag;
+ /**
+ * 总库容
+ */
+ @ApiModelProperty(value = "总库容 ")
+ @TableField("\"tot_cap\"")
+ private Double totCap;
+ /**
+ * 死库容
+ */
+ @ApiModelProperty(value = "死库容 ")
+ @TableField("\"dead_cap\"")
+ private Double deadCap;
+ /**
+ * 坝顶高程
+ */
+ @ApiModelProperty(value = "坝顶高程 ")
+ @TableField("\"dam_top_elev\"")
+ private Double damTopElev;
+ /**
+ * 堰顶高程
+ */
+ @ApiModelProperty(value = "堰顶高程 ")
+ @TableField("\"weir_top_elev\"")
+ private Double weirTopElev;
+ /**
+ * 集雨面积
+ */
+ @ApiModelProperty(value = "集雨面积 ")
+ @TableField("\"wat_shed_area\"")
+ private Double watShedArea;
+
+ /**
+ * 创建时间
+ */
+ @ApiModelProperty(value = "创建时间 ")
+ @TableField("\"create_time\"")
+ @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
+ @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
+ private Date createTime;
+
+ /**
+ * 更新时间
+ */
+ @ApiModelProperty(value = "更新时间 ")
+ @TableField("\"update_time\"")
+ @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
+ @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
+ private Date updateTime;
+
+ /**
+ * 来源
+ */
+ @ApiModelProperty(value = "来源 ")
+ @TableField("\"sys_resource\"")
+ private String sysResource;
+
+}
diff --git a/skjcmanager/skjcmanager-service/skjcmanager-sm/src/main/java/cn/gistack/sm/sjztods/excel/SkxsQkTjExcel.java b/skjcmanager/skjcmanager-service/skjcmanager-sm/src/main/java/cn/gistack/sm/sjztods/excel/SkxsQkTjExcel.java
new file mode 100644
index 0000000..220854e
--- /dev/null
+++ b/skjcmanager/skjcmanager-service/skjcmanager-sm/src/main/java/cn/gistack/sm/sjztods/excel/SkxsQkTjExcel.java
@@ -0,0 +1,188 @@
+package cn.gistack.sm.sjztods.excel;
+
+import com.alibaba.excel.annotation.ExcelProperty;
+import com.alibaba.excel.annotation.write.style.ColumnWidth;
+import com.alibaba.excel.annotation.write.style.ContentRowHeight;
+import com.alibaba.excel.annotation.write.style.HeadRowHeight;
+import com.baomidou.mybatisplus.annotation.TableField;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+import java.io.Serializable;
+
+@Data
+@ColumnWidth(25)
+@HeadRowHeight(20)
+@ContentRowHeight(18)
+public class SkxsQkTjExcel implements Serializable {
+ private static final long serialVersionUID = 1L;
+
+ /**
+ * 水库编号
+ */
+ @ColumnWidth(15)
+ @ExcelProperty("水库编号")
+ private String resCode;
+
+ /**
+ * 水库名称
+ */
+ @ColumnWidth(15)
+ @ExcelProperty("水库名称")
+ private String resName;
+
+ /**
+ * 市州名称
+ */
+ @ColumnWidth(15)
+ @ExcelProperty("市州名称")
+ private String cityName;
+
+ /**
+ * 区县名称
+ */
+ @ColumnWidth(15)
+ @ExcelProperty("区县名称")
+ private String countyName;
+
+ /**
+ * 乡镇名称
+ */
+ @ColumnWidth(15)
+ @ExcelProperty("乡镇名称")
+ private String townName;
+
+ /**
+ * 总库容
+ */
+ @ColumnWidth(15)
+ @ExcelProperty("总库容")
+ private Double totalCap;
+
+ /**
+ * 当前水位
+ */
+ @ColumnWidth(15)
+ @ExcelProperty("当前水位")
+ private Double rz;
+
+ /**
+ * 当日蓄水量
+ */
+ @ColumnWidth(15)
+ @ExcelProperty("当日蓄水量")
+ private Double ws;
+
+ /**
+ * 上月
+ */
+ @ColumnWidth(15)
+ @ExcelProperty("上月")
+ private Double upMonthWs;
+
+ /**
+ * 去年同期蓄水量
+ */
+ @ColumnWidth(15)
+ @ExcelProperty("去年同期蓄水量")
+ private Double lastYearWs;
+
+ /**
+ * 历史同期蓄水量
+ */
+ @ColumnWidth(15)
+ @ExcelProperty("历史同期蓄水量")
+ private Double hisWs;
+
+ /**
+ * 今年以来灌溉放水量
+ */
+ @ColumnWidth(15)
+ @ExcelProperty("今年以来灌溉放水量")
+ private Double nowYearIrrDw;
+
+ /**
+ * 今年以来生活放水量
+ */
+ @ColumnWidth(15)
+ @ExcelProperty("今年以来生活放水量")
+ private Double nowYearLiveDw;
+
+ /**
+ * 今年以来生态放水量
+ */
+ @ColumnWidth(15)
+ @ExcelProperty("今年以来生态放水量")
+ private Double nowYearZooDw;
+
+ /**
+ * 总蓄水现有-历史
+ */
+ @ColumnWidth(15)
+ @ExcelProperty("总蓄水现有-历史")
+ private String totalWsDif;
+
+ /**
+ * 总蓄水较历史同期(%)
+ */
+ @ColumnWidth(15)
+ @ExcelProperty("总蓄水较历史同期(%)")
+ private String totalWsHisPro;
+
+ /**
+ * 死库容
+ */
+ @ColumnWidth(15)
+ @ExcelProperty("死库容")
+ private Double deadCap;
+
+ /**
+ * 当前有效蓄水
+ */
+ @ColumnWidth(15)
+ @ExcelProperty("当前有效蓄水")
+ private Double nowValidWs;
+
+ /**
+ * 兴利库容
+ */
+ @ColumnWidth(15)
+ @ExcelProperty("兴利库容")
+ private Double benResCap;
+
+ /**
+ * 有效蓄水/兴利(%)
+ */
+ @ColumnWidth(15)
+ @ExcelProperty("有效蓄水/兴利(%)")
+ private String validWsBenPro;
+
+ /**
+ * 历史同期有效蓄水
+ */
+ @ColumnWidth(15)
+ @ExcelProperty("历史同期有效蓄水")
+ private Double hisValidWs;
+
+ /**
+ * 当前有效比历史同期(%)
+ */
+ @ColumnWidth(15)
+ @ExcelProperty("当前有效比历史同期(%)")
+ private String nowValidHisPro;
+
+ /**
+ * 去年有效蓄水
+ */
+ @ColumnWidth(15)
+ @ExcelProperty("去年有效蓄水")
+ private Double lastYearValidWs;
+
+ /**
+ * 当前有效比去年同期(%)
+ */
+ @ColumnWidth(15)
+ @ExcelProperty("当前有效比去年同期(%)")
+ private String nowValidLastPro;
+
+}
diff --git a/skjcmanager/skjcmanager-service/skjcmanager-sm/src/main/java/cn/gistack/sm/sjztods/excel/SkxsQkTjImport.java b/skjcmanager/skjcmanager-service/skjcmanager-sm/src/main/java/cn/gistack/sm/sjztods/excel/SkxsQkTjImport.java
new file mode 100644
index 0000000..6ceb4cc
--- /dev/null
+++ b/skjcmanager/skjcmanager-service/skjcmanager-sm/src/main/java/cn/gistack/sm/sjztods/excel/SkxsQkTjImport.java
@@ -0,0 +1,24 @@
+package cn.gistack.sm.sjztods.excel;
+
+import cn.gistack.sm.sjztmd.service.IAttResStagCapDicsService;
+import cn.gistack.sm.sjztods.service.ISkxsQkTjService;
+import lombok.RequiredArgsConstructor;
+import org.springblade.core.excel.support.ExcelImporter;
+
+import java.util.List;
+
+/**
+ * 导入水库库容数据
+ * @author zhongrj
+ * @date 2023-09-04
+ */
+@RequiredArgsConstructor
+public class SkxsQkTjImport implements ExcelImporter<SkxsQkTjExcel> {
+
+ private final ISkxsQkTjService service;
+
+ @Override
+ public void save(List<SkxsQkTjExcel> data) {
+ service.importSkxsQkTjData(data);
+ }
+}
diff --git a/skjcmanager/skjcmanager-service/skjcmanager-sm/src/main/java/cn/gistack/sm/sjztods/mapper/SkxsQkTjMapper.java b/skjcmanager/skjcmanager-service/skjcmanager-sm/src/main/java/cn/gistack/sm/sjztods/mapper/SkxsQkTjMapper.java
new file mode 100644
index 0000000..7d5d6e2
--- /dev/null
+++ b/skjcmanager/skjcmanager-service/skjcmanager-sm/src/main/java/cn/gistack/sm/sjztods/mapper/SkxsQkTjMapper.java
@@ -0,0 +1,44 @@
+package cn.gistack.sm.sjztods.mapper;
+
+import cn.gistack.sm.sjztods.entity.SkxsQkTj;
+import cn.gistack.sm.sjztods.excel.SkxsQkTjExcel;
+import cn.gistack.sm.sjztods.vo.SkxsQkTjVO;
+import com.baomidou.dynamic.datasource.annotation.DS;
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.baomidou.mybatisplus.core.metadata.IPage;
+import org.apache.ibatis.annotations.Param;
+
+import java.util.List;
+
+
+/**
+ * SkxsQkTjMapper 接口
+ *
+ * @author zhongrj
+ * @date 2023-10-19
+ */
+@DS("ztznwh")
+public interface SkxsQkTjMapper extends BaseMapper<SkxsQkTj> {
+
+ /**
+ * 分页列表数据查询
+ * @param page
+ * @param skxsQkTj
+ * @return
+ */
+ List<SkxsQkTjVO> selectSkxsQkTjPage(@Param("page") IPage<SkxsQkTjVO> page,@Param("skxsQkTj") SkxsQkTjVO skxsQkTj);
+
+ /**
+ * 按行政区统计
+ * @param skxsQkTj
+ * @return
+ */
+ Object getStatisticList(@Param("skxsQkTj") SkxsQkTjVO skxsQkTj);
+
+ /**
+ * 查询导出数据
+ * @param skxsQkTj
+ * @return
+ */
+ List<SkxsQkTjExcel> exportSkxsQkTjList(@Param("skxsQkTj") SkxsQkTjVO skxsQkTj);
+}
diff --git a/skjcmanager/skjcmanager-service/skjcmanager-sm/src/main/java/cn/gistack/sm/sjztods/mapper/SkxsQkTjMapper.xml b/skjcmanager/skjcmanager-service/skjcmanager-sm/src/main/java/cn/gistack/sm/sjztods/mapper/SkxsQkTjMapper.xml
new file mode 100644
index 0000000..83521ba
--- /dev/null
+++ b/skjcmanager/skjcmanager-service/skjcmanager-sm/src/main/java/cn/gistack/sm/sjztods/mapper/SkxsQkTjMapper.xml
@@ -0,0 +1,82 @@
+<?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.sjztods.mapper.SkxsQkTjMapper">
+
+ <!--分页列表数据查询-->
+ <select id="selectSkxsQkTjPage" resultType="cn.gistack.sm.sjztods.vo.SkxsQkTjVO">
+ select * from (
+ select
+ sqt.*,
+ arb."res_reg_code" resRegCode,arb."eng_scal" engScal,
+ case when b."ad_grad" = 4 THEN b."ad_name" ELSE NULL END AS townName,
+ case when b."ad_grad" = 4 THEN b."ad_code" ELSE NULL END AS townCode,
+ 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" = 3 THEN b."ad_code"
+ when c."ad_grad" = 3 THEN c."ad_code" END AS countyCode,
+ case when b."ad_grad" = 2 THEN b."ad_code"
+ when c."ad_grad" = 2 THEN c."ad_code"
+ ELSE d."ad_code" END AS cityCode,
+ 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
+ from SJZT_ODS."skxs_qk_tj" sqt
+ left join SJZT_MD."att_res_base" arb on arb."guid" = sqt."res_code"
+ left join SJZT_MD."att_ad_base" b ON arb."interior_ad_guid" = b."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="skxsQkTj.statisticTime!=null">
+ and date_format(sqt."statistic_time","%Y-%m-%d") = #{skxsQkTj.statisticTime}
+ </if>
+ <if test="skxsQkTj.resName!=null and skxsQkTj.resName!=''">
+ and sqt."res_name" like concat('%',#{skxsQkTj.resName},'%')
+ </if>
+ ) x
+ <if test="skxsQkTj.adCode!=null and skxsQkTj.adCode!=''">
+ and (townCode = #{skxsQkTj.adCode} or countyCode = #{skxsQkTj.adCode} or cityCode = #{skxsQkTj.adCode})
+ </if>
+ </select>
+
+ <!--按行政区统计-->
+ <select id="getStatisticList" resultType="cn.gistack.sm.sjztods.vo.SkxsQkTjVO">
+
+ </select>
+
+
+ <!--查询导出数据-->
+ <select id="exportSkxsQkTjList" resultType="cn.gistack.sm.sjztods.excel.SkxsQkTjExcel">
+ select * from (
+ select
+ sqt.*,
+ arb."res_reg_code" resRegCode,arb."eng_scal" engScal,
+ case when b."ad_grad" = 4 THEN b."ad_name" ELSE NULL END AS townName,
+ case when b."ad_grad" = 4 THEN b."ad_code" ELSE NULL END AS townCode,
+ 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" = 3 THEN b."ad_code"
+ when c."ad_grad" = 3 THEN c."ad_code" END AS countyCode,
+ case when b."ad_grad" = 2 THEN b."ad_code"
+ when c."ad_grad" = 2 THEN c."ad_code"
+ ELSE d."ad_code" END AS cityCode,
+ 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
+ from SJZT_ODS."skxs_qk_tj" sqt
+ left join SJZT_MD."att_res_base" arb on arb."guid" = sqt."res_code"
+ left join SJZT_MD."att_ad_base" b ON arb."interior_ad_guid" = b."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="skxsQkTj.statisticTime!=null">
+ and date_format(sqt."statistic_time","%Y-%m-%d") = #{skxsQkTj.statisticTime}
+ </if>
+ <if test="skxsQkTj.resName!=null and skxsQkTj.resName!=''">
+ and sqt."res_name" like concat('%',#{skxsQkTj.resName},'%')
+ </if>
+ ) x
+ <if test="skxsQkTj.adCode!=null and skxsQkTj.adCode!=''">
+ and (townCode = #{skxsQkTj.adCode} or countyCode = #{skxsQkTj.adCode} or cityCode = #{skxsQkTj.adCode})
+ </if>
+ </select>
+</mapper>
diff --git a/skjcmanager/skjcmanager-service/skjcmanager-sm/src/main/java/cn/gistack/sm/sjztods/mapper/ZdxSkZhMapper.java b/skjcmanager/skjcmanager-service/skjcmanager-sm/src/main/java/cn/gistack/sm/sjztods/mapper/ZdxSkZhMapper.java
new file mode 100644
index 0000000..4c1f478
--- /dev/null
+++ b/skjcmanager/skjcmanager-service/skjcmanager-sm/src/main/java/cn/gistack/sm/sjztods/mapper/ZdxSkZhMapper.java
@@ -0,0 +1,16 @@
+package cn.gistack.sm.sjztods.mapper;
+
+import cn.gistack.sm.sjztods.entity.ZdxSkZh;
+import com.baomidou.dynamic.datasource.annotation.DS;
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+
+
+/**
+ * ZdxSkZhMapper 接口
+ *
+ * @author zhongrj
+ * @date 2023-10-09
+ */
+@DS("ztznwh")
+public interface ZdxSkZhMapper extends BaseMapper<ZdxSkZh> {
+}
diff --git a/skjcmanager/skjcmanager-service/skjcmanager-sm/src/main/java/cn/gistack/sm/sjztods/mapper/ZdxSkZhMapper.xml b/skjcmanager/skjcmanager-service/skjcmanager-sm/src/main/java/cn/gistack/sm/sjztods/mapper/ZdxSkZhMapper.xml
new file mode 100644
index 0000000..7d4cf9f
--- /dev/null
+++ b/skjcmanager/skjcmanager-service/skjcmanager-sm/src/main/java/cn/gistack/sm/sjztods/mapper/ZdxSkZhMapper.xml
@@ -0,0 +1,6 @@
+<?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.sjztods.mapper.ZdxSkZhMapper">
+
+
+</mapper>
diff --git a/skjcmanager/skjcmanager-service/skjcmanager-sm/src/main/java/cn/gistack/sm/sjztods/service/ISkxsQkTjService.java b/skjcmanager/skjcmanager-service/skjcmanager-sm/src/main/java/cn/gistack/sm/sjztods/service/ISkxsQkTjService.java
new file mode 100644
index 0000000..7de9859
--- /dev/null
+++ b/skjcmanager/skjcmanager-service/skjcmanager-sm/src/main/java/cn/gistack/sm/sjztods/service/ISkxsQkTjService.java
@@ -0,0 +1,52 @@
+package cn.gistack.sm.sjztods.service;
+
+import cn.gistack.sm.sjztods.entity.SkxsQkTj;
+import cn.gistack.sm.sjztods.excel.SkxsQkTjExcel;
+import cn.gistack.sm.sjztods.vo.SkxsQkTjVO;
+import com.baomidou.mybatisplus.core.metadata.IPage;
+import com.baomidou.mybatisplus.extension.service.IService;
+
+import java.util.List;
+
+/**
+ * @ClassName ISkxsQkTjService
+ * @author zhongrj
+ * @date 2023-10-19
+ */
+public interface ISkxsQkTjService extends IService<SkxsQkTj> {
+
+ /**
+ * 上报
+ * @param skxsQkTj
+ * @return
+ */
+ boolean exportSkxsQkTj(SkxsQkTj skxsQkTj);
+
+ /**
+ * 分页列表数据查询
+ * @param skxsQkTj
+ * @param page
+ * @return
+ */
+ Object selectSkxsQkTjPage(IPage<SkxsQkTjVO> page, SkxsQkTjVO skxsQkTj);
+
+ /**
+ * 按行政区统计
+ * @param skxsQkTj
+ * @return
+ */
+ Object getStatisticList(SkxsQkTjVO skxsQkTj);
+
+ /**
+ * 导入统计上报数据
+ * @param data
+ */
+ void importSkxsQkTjData(List<SkxsQkTjExcel> data);
+
+ /**
+ * 查询导出数据
+ * @param skxsQkTj
+ * @return
+ */
+ List<SkxsQkTjExcel> exportSkxsQkTjList(SkxsQkTjVO skxsQkTj);
+}
diff --git a/skjcmanager/skjcmanager-service/skjcmanager-sm/src/main/java/cn/gistack/sm/sjztods/service/IZdxSkZhService.java b/skjcmanager/skjcmanager-service/skjcmanager-sm/src/main/java/cn/gistack/sm/sjztods/service/IZdxSkZhService.java
new file mode 100644
index 0000000..56d4649
--- /dev/null
+++ b/skjcmanager/skjcmanager-service/skjcmanager-sm/src/main/java/cn/gistack/sm/sjztods/service/IZdxSkZhService.java
@@ -0,0 +1,19 @@
+package cn.gistack.sm.sjztods.service;
+
+import cn.gistack.sm.sjztods.entity.ZdxSkZh;
+import com.baomidou.mybatisplus.extension.service.IService;
+
+/**
+ * @ClassName IZdxSkZhService
+ * @author zhongrj
+ * @date 2023-10-09
+ */
+public interface IZdxSkZhService extends IService<ZdxSkZh> {
+
+ /**
+ * 新增
+ * @param zdxSkZh
+ * @return
+ */
+ boolean saveZdxSkZh(ZdxSkZh zdxSkZh);
+}
diff --git a/skjcmanager/skjcmanager-service/skjcmanager-sm/src/main/java/cn/gistack/sm/sjztods/service/impl/SkxsQkTjServiceImpl.java b/skjcmanager/skjcmanager-service/skjcmanager-sm/src/main/java/cn/gistack/sm/sjztods/service/impl/SkxsQkTjServiceImpl.java
new file mode 100644
index 0000000..1923420
--- /dev/null
+++ b/skjcmanager/skjcmanager-service/skjcmanager-sm/src/main/java/cn/gistack/sm/sjztods/service/impl/SkxsQkTjServiceImpl.java
@@ -0,0 +1,129 @@
+package cn.gistack.sm.sjztods.service.impl;
+
+import cn.gistack.sm.sjztods.entity.SkxsQkTj;
+import cn.gistack.sm.sjztods.excel.SkxsQkTjExcel;
+import cn.gistack.sm.sjztods.mapper.SkxsQkTjMapper;
+import cn.gistack.sm.sjztods.service.ISkxsQkTjService;
+import cn.gistack.sm.sjztods.vo.SkxsQkTjVO;
+import cn.gistack.system.user.entity.User;
+import com.baomidou.dynamic.datasource.annotation.DS;
+import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
+import com.baomidou.mybatisplus.core.metadata.IPage;
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import org.springblade.core.secure.utils.AuthUtil;
+import org.springblade.core.tool.utils.BeanUtil;
+import org.springframework.stereotype.Service;
+
+import java.util.Date;
+import java.util.List;
+import java.util.Objects;
+
+/**
+ * @ClassName SkxsQkTjServiceImpl
+ * @author zhongrj
+ * @date 2023-10-19
+ */
+@Service
+@DS("ztznwh")
+public class SkxsQkTjServiceImpl extends ServiceImpl<SkxsQkTjMapper, SkxsQkTj> implements ISkxsQkTjService {
+
+ /**
+ * 上报
+ * @param skxsQkTj
+ * @return
+ */
+ @Override
+ @DS("ztznwh")
+ public boolean exportSkxsQkTj(SkxsQkTj skxsQkTj) {
+ // 查询库中是否包含当前日期,当前行政区的数据,如果有,则更新,没有则新增
+ QueryWrapper<SkxsQkTj> wrapper = new QueryWrapper<>();
+ wrapper.eq("\"statistic_time\"",skxsQkTj.getStatisticTime())
+ .eq("\"res_code\"",skxsQkTj.getResCode());
+ SkxsQkTj qkTj = baseMapper.selectOne(wrapper);
+ // 设置更新人员,更新时间,来源信息
+ skxsQkTj.setUpdateTime(new Date());
+ skxsQkTj.setUpdateUser(AuthUtil.getUserId());
+ skxsQkTj.setSysResource("sb");
+ if (null!= qkTj){
+ skxsQkTj.setGuid(qkTj.getGuid());
+ // 更新并返回
+ return updateById(skxsQkTj);
+ }
+ // 设置创建人员,时间信息
+ skxsQkTj.setCreateUser(AuthUtil.getUserId());
+ skxsQkTj.setCreateTime(new Date());
+ // 保存并返回
+ return save(skxsQkTj);
+ }
+
+ /**
+ * 分页列表数据查询
+ * @param skxsQkTj
+ * @param page
+ * @return
+ */
+ @Override
+ public Object selectSkxsQkTjPage(IPage<SkxsQkTjVO> page, SkxsQkTjVO skxsQkTj) {
+ if (null!=skxsQkTj.getIsExport()){
+ // 导出,查询所有数据
+ return baseMapper.selectSkxsQkTjPage(null,skxsQkTj);
+ }
+ return page.setRecords(baseMapper.selectSkxsQkTjPage(page,skxsQkTj));
+ }
+
+ /**
+ * 按行政区统计
+ * @param skxsQkTj
+ * @return
+ */
+ @Override
+ public Object getStatisticList(SkxsQkTjVO skxsQkTj) {
+ return baseMapper.getStatisticList(skxsQkTj);
+ }
+
+ /**
+ * 导入统计上报数据
+ * @param data
+ */
+ @Override
+ public void importSkxsQkTjData(List<SkxsQkTjExcel> data) {
+ if (data.size()>0){
+ // 遍历
+ data.forEach(skxsQkTjExcel -> {
+ SkxsQkTj skxsQkTj = Objects.requireNonNull(BeanUtil.copy(skxsQkTjExcel, SkxsQkTj.class));
+ // 查询库中是否包含当前日期,当前行政区的数据,如果有,则更新,没有则新增
+ QueryWrapper<SkxsQkTj> wrapper = new QueryWrapper<>();
+ wrapper.eq("\"statistic_time\"",skxsQkTj.getStatisticTime())
+ .eq("\"res_code\"",skxsQkTj.getResCode());
+ SkxsQkTj qkTj = baseMapper.selectOne(wrapper);
+ // 设置更新人员,更新时间,来源信息
+ skxsQkTj.setUpdateTime(new Date());
+ skxsQkTj.setUpdateUser(AuthUtil.getUserId());
+ skxsQkTj.setSysResource("sb");
+ if (null!= qkTj){
+ skxsQkTj.setGuid(qkTj.getGuid());
+ // 更新并返回
+ updateById(skxsQkTj);
+ return;
+ }
+ // 设置创建人员,时间信息
+ skxsQkTj.setCreateUser(AuthUtil.getUserId());
+ skxsQkTj.setCreateTime(new Date());
+ // 保存并返回
+ save(skxsQkTj);
+ return;
+ });
+ }
+ }
+
+ /**
+ * 查询导出数据
+ * @param skxsQkTj
+ * @return
+ */
+ @Override
+ public List<SkxsQkTjExcel> exportSkxsQkTjList(SkxsQkTjVO skxsQkTj) {
+ return baseMapper.exportSkxsQkTjList(skxsQkTj);
+ }
+}
+
diff --git a/skjcmanager/skjcmanager-service/skjcmanager-sm/src/main/java/cn/gistack/sm/sjztods/service/impl/ZdxSkZhServiceImpl.java b/skjcmanager/skjcmanager-service/skjcmanager-sm/src/main/java/cn/gistack/sm/sjztods/service/impl/ZdxSkZhServiceImpl.java
new file mode 100644
index 0000000..2807332
--- /dev/null
+++ b/skjcmanager/skjcmanager-service/skjcmanager-sm/src/main/java/cn/gistack/sm/sjztods/service/impl/ZdxSkZhServiceImpl.java
@@ -0,0 +1,30 @@
+package cn.gistack.sm.sjztods.service.impl;
+
+import cn.gistack.sm.sjztods.entity.ZdxSkZh;
+import cn.gistack.sm.sjztods.mapper.ZdxSkZhMapper;
+import cn.gistack.sm.sjztods.service.IZdxSkZhService;
+import com.baomidou.dynamic.datasource.annotation.DS;
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import org.springframework.stereotype.Service;
+
+/**
+ * @ClassName ZdxSkZhServiceImpl
+ * @author zhongrj
+ * @date 2023-10-09
+ */
+@Service
+@DS("ztznwh")
+public class ZdxSkZhServiceImpl extends ServiceImpl<ZdxSkZhMapper, ZdxSkZh> implements IZdxSkZhService {
+
+ /**
+ * 新增
+ * @param zdxSkZh
+ * @return
+ */
+ @Override
+ @DS("ztznwh")
+ public boolean saveZdxSkZh(ZdxSkZh zdxSkZh) {
+ return save(zdxSkZh);
+ }
+}
+
diff --git a/skjcmanager/skjcmanager-service/skjcmanager-sm/src/main/java/cn/gistack/sm/sjztods/vo/SkxsQkTjVO.java b/skjcmanager/skjcmanager-service/skjcmanager-sm/src/main/java/cn/gistack/sm/sjztods/vo/SkxsQkTjVO.java
new file mode 100644
index 0000000..75655fc
--- /dev/null
+++ b/skjcmanager/skjcmanager-service/skjcmanager-sm/src/main/java/cn/gistack/sm/sjztods/vo/SkxsQkTjVO.java
@@ -0,0 +1,43 @@
+package cn.gistack.sm.sjztods.vo;
+
+import cn.gistack.sm.sjztods.entity.SkxsQkTj;
+import lombok.Data;
+
+@Data
+public class SkxsQkTjVO extends SkxsQkTj {
+
+ /**
+ * 按行政区划统计
+ */
+ private String adCode;
+
+ /**
+ * 水库规模
+ */
+ private String engScal;
+
+ /**
+ * 水库注册码
+ */
+ private String resRegCode;
+
+ /**
+ * 水库规模
+ */
+ private Integer isExport;
+
+ /**
+ * 市州名称
+ */
+ private String cityName;
+
+ /**
+ * 区县名称
+ */
+ private String countyName;
+
+ /**
+ * 乡镇名称
+ */
+ private String townName;
+}
diff --git a/skjcmanager/skjcmanager-service/skjcmanager-sm/src/main/java/cn/gistack/sm/waterKnowledge/controller/WaterKnowledgeController.java b/skjcmanager/skjcmanager-service/skjcmanager-sm/src/main/java/cn/gistack/sm/waterKnowledge/controller/WaterKnowledgeController.java
new file mode 100644
index 0000000..489d94f
--- /dev/null
+++ b/skjcmanager/skjcmanager-service/skjcmanager-sm/src/main/java/cn/gistack/sm/waterKnowledge/controller/WaterKnowledgeController.java
@@ -0,0 +1,117 @@
+package cn.gistack.sm.waterKnowledge.controller;
+
+
+import cn.gistack.sm.waterKnowledge.entity.WaterKnowledge;
+import cn.gistack.sm.waterKnowledge.service.WaterKnowledgeService;
+import cn.gistack.sm.waterKnowledge.vo.WaterKnowledgeVO;
+import com.baomidou.mybatisplus.core.metadata.IPage;
+import io.swagger.annotations.ApiOperation;
+import lombok.AllArgsConstructor;
+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.util.Arrays;
+import java.util.Date;
+
+/**
+ * 水知识控制层
+ * @author zhongrj
+ * @date 2023-05-29
+ */
+@RestController
+@AllArgsConstructor
+@RequestMapping("/waterKnowledge/waterKnowledge")
+public class WaterKnowledgeController {
+
+ private final WaterKnowledgeService waterKnowledgeService;
+
+ /**
+ * 分页列表查询
+ *
+ * @param waterKnowledge
+ * @return
+ */
+ @ApiOperation(value="水知识-分页列表查询", notes="水知识-分页列表查询")
+ @GetMapping(value = "/list")
+ public R queryPageList(WaterKnowledge waterKnowledge, Query query) {
+ IPage<WaterKnowledge> pageList = waterKnowledgeService.page(Condition.getPage(query), Condition.getQueryWrapper(waterKnowledge));
+ return R.data(pageList);
+ }
+
+ /**
+ * 自定义分页列表查询
+ * @param query
+ * @param waterKnowledge
+ * @return
+ */
+ @ApiOperation(value="水知识-自定义分页列表查询", notes="水知识-自定义分页列表查询")
+ @GetMapping(value = "/page")
+ public R page(WaterKnowledgeVO waterKnowledge, Query query) {
+ return R.data( waterKnowledgeService.selectWaterKnowledgePage(Condition.getPage(query),waterKnowledge));
+ }
+
+ /**
+ * 添加
+ *
+ * @param waterKnowledge
+ * @return
+ */
+ @ApiOperation(value="水知识-添加", notes="水知识-添加")
+ @PostMapping(value = "/add")
+ public R add(@RequestBody WaterKnowledge waterKnowledge) {
+ waterKnowledge.setCreateTime(new Date());
+ return R.data(waterKnowledgeService.save(waterKnowledge));
+ }
+
+ /**
+ * 编辑
+ *
+ * @param waterKnowledge
+ * @return
+ */
+ @ApiOperation(value="水知识-编辑", notes="水知识-编辑")
+ @RequestMapping(value = "/edit", method = {RequestMethod.PUT,RequestMethod.POST})
+ public R edit(@RequestBody WaterKnowledge waterKnowledge) {
+ return R.data(waterKnowledgeService.updateById(waterKnowledge));
+ }
+
+ /**
+ * 通过id删除
+ *
+ * @param id
+ * @return
+ */
+ @ApiOperation(value="水知识-通过id删除", notes="水知识-通过id删除")
+ @PostMapping(value = "/delete")
+ public R delete(@RequestParam(name="id",required=true) String id) {
+ return R.data(waterKnowledgeService.removeById(id));
+ }
+
+ /**
+ * 批量删除
+ *
+ * @param ids
+ * @return
+ */
+ @ApiOperation(value="水知识-批量删除", notes="水知识-批量删除")
+ @PostMapping(value = "/deleteBatch")
+ public R deleteBatch(@RequestParam(name="ids",required=true) String ids) {
+ return R.data(this.waterKnowledgeService.removeByIds(Arrays.asList(ids.split(","))));
+ }
+
+ /**
+ * 通过id查询
+ *
+ * @param id
+ * @return
+ */
+ @ApiOperation(value="水知识-通过id查询", notes="水知识-通过id查询")
+ @GetMapping(value = "/queryById")
+ public R queryById(@RequestParam(name="id",required=true) String id) {
+ WaterKnowledge waterKnowledge = waterKnowledgeService.getById(id);
+ return R.data(waterKnowledge);
+ }
+
+}
diff --git a/skjcmanager/skjcmanager-service/skjcmanager-sm/src/main/java/cn/gistack/sm/waterKnowledge/entity/WaterKnowledge.java b/skjcmanager/skjcmanager-service/skjcmanager-sm/src/main/java/cn/gistack/sm/waterKnowledge/entity/WaterKnowledge.java
new file mode 100644
index 0000000..b651ba0
--- /dev/null
+++ b/skjcmanager/skjcmanager-service/skjcmanager-sm/src/main/java/cn/gistack/sm/waterKnowledge/entity/WaterKnowledge.java
@@ -0,0 +1,84 @@
+package cn.gistack.sm.waterKnowledge.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 io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+import lombok.experimental.Accessors;
+import org.springframework.format.annotation.DateTimeFormat;
+import java.util.Date;
+
+/**
+ * 水知识
+ *
+ * @author zhongrj
+ * @date 2023-09-12
+ */
+@Data
+@TableName(value = "sm_water_knowledge")
+@EqualsAndHashCode(callSuper = false)
+@Accessors(chain = true)
+public class WaterKnowledge {
+
+ /**
+ * id
+ */
+ @ApiModelProperty(value = "id")
+ @TableId(value = "id",type = IdType.ASSIGN_ID)
+ private Long id;
+
+ /**
+ * 标题
+ */
+ @ApiModelProperty(value = "标题")
+ private String title;
+
+ /**
+ * 类型
+ */
+ @ApiModelProperty(value = "类型")
+ private String type;
+
+ /**
+ * 简要内容
+ */
+ @ApiModelProperty(value = "简要内容")
+ private String briefContent;
+
+ /**
+ * 作者
+ */
+ @ApiModelProperty(value = "作者")
+ private String author;
+
+ /**
+ * 来源
+ */
+ @ApiModelProperty(value = "来源")
+ private String source;
+
+ /**
+ * 内容
+ */
+ @ApiModelProperty(value = "内容")
+ private String content;
+
+ /**
+ * 发布时间
+ */
+ @JsonFormat(timezone = "GMT+8", pattern = "yyyy-MM-dd HH:mm:ss")
+ @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
+ @ApiModelProperty(value = "发布时间")
+ private Date issueTime;
+
+ /**
+ * 创建时间
+ */
+ @JsonFormat(timezone = "GMT+8", pattern = "yyyy-MM-dd HH:mm:ss")
+ @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
+ @ApiModelProperty(value = "创建时间")
+ private Date createTime;
+}
diff --git a/skjcmanager/skjcmanager-service/skjcmanager-sm/src/main/java/cn/gistack/sm/waterKnowledge/mapper/WaterKnowledgeMapper.java b/skjcmanager/skjcmanager-service/skjcmanager-sm/src/main/java/cn/gistack/sm/waterKnowledge/mapper/WaterKnowledgeMapper.java
new file mode 100644
index 0000000..24cddfc
--- /dev/null
+++ b/skjcmanager/skjcmanager-service/skjcmanager-sm/src/main/java/cn/gistack/sm/waterKnowledge/mapper/WaterKnowledgeMapper.java
@@ -0,0 +1,26 @@
+package cn.gistack.sm.waterKnowledge.mapper;
+
+
+import cn.gistack.sm.waterKnowledge.entity.WaterKnowledge;
+import cn.gistack.sm.waterKnowledge.vo.WaterKnowledgeVO;
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.baomidou.mybatisplus.core.metadata.IPage;
+import org.apache.ibatis.annotations.Param;
+
+import java.util.List;
+
+/**
+ * 水知识详情mapper映射层
+ * @author zhongrj
+ * @date 2023-05-29
+ */
+public interface WaterKnowledgeMapper extends BaseMapper<WaterKnowledge> {
+
+ /**
+ * 自定义分页列表查询
+ * @param page
+ * @param waterKnowledge
+ * @return
+ */
+ List<WaterKnowledgeVO> selectWaterKnowledgePage(IPage<WaterKnowledgeVO> page, @Param("waterKnowledge") WaterKnowledgeVO waterKnowledge);
+}
diff --git a/skjcmanager/skjcmanager-service/skjcmanager-sm/src/main/java/cn/gistack/sm/waterKnowledge/mapper/WaterKnowledgeMapper.xml b/skjcmanager/skjcmanager-service/skjcmanager-sm/src/main/java/cn/gistack/sm/waterKnowledge/mapper/WaterKnowledgeMapper.xml
new file mode 100644
index 0000000..f74c954
--- /dev/null
+++ b/skjcmanager/skjcmanager-service/skjcmanager-sm/src/main/java/cn/gistack/sm/waterKnowledge/mapper/WaterKnowledgeMapper.xml
@@ -0,0 +1,14 @@
+<?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.waterKnowledge.mapper.WaterKnowledgeMapper">
+
+ <!--自定义分页列表查询-->
+ <select id="selectWaterKnowledgePage" resultType="cn.gistack.sm.waterKnowledge.vo.WaterKnowledgeVO">
+ select * from sm_water_knowledge
+ where 1=1
+ <if test="waterKnowledge.title!=null and waterKnowledge.title!=''">
+ and title like concat('%',#{waterKnowledge.title},'%')
+ </if>
+ </select>
+
+</mapper>
diff --git a/skjcmanager/skjcmanager-service/skjcmanager-sm/src/main/java/cn/gistack/sm/waterKnowledge/service/WaterKnowledgeService.java b/skjcmanager/skjcmanager-service/skjcmanager-sm/src/main/java/cn/gistack/sm/waterKnowledge/service/WaterKnowledgeService.java
new file mode 100644
index 0000000..8c8d06b
--- /dev/null
+++ b/skjcmanager/skjcmanager-service/skjcmanager-sm/src/main/java/cn/gistack/sm/waterKnowledge/service/WaterKnowledgeService.java
@@ -0,0 +1,23 @@
+package cn.gistack.sm.waterKnowledge.service;
+
+
+import cn.gistack.sm.waterKnowledge.entity.WaterKnowledge;
+import cn.gistack.sm.waterKnowledge.vo.WaterKnowledgeVO;
+import com.baomidou.mybatisplus.core.metadata.IPage;
+import com.baomidou.mybatisplus.extension.service.IService;
+
+/**
+ * 水知识服务层
+ * @author zhongrj
+ * @date 2023-09-12
+ */
+public interface WaterKnowledgeService extends IService<WaterKnowledge> {
+
+ /**
+ * 自定义分页列表查询
+ * @param page
+ * @param waterKnowledge
+ * @return
+ */
+ Object selectWaterKnowledgePage(IPage<WaterKnowledgeVO> page, WaterKnowledgeVO waterKnowledge);
+}
diff --git a/skjcmanager/skjcmanager-service/skjcmanager-sm/src/main/java/cn/gistack/sm/waterKnowledge/service/impl/WaterKnowledgeServiceImpl.java b/skjcmanager/skjcmanager-service/skjcmanager-sm/src/main/java/cn/gistack/sm/waterKnowledge/service/impl/WaterKnowledgeServiceImpl.java
new file mode 100644
index 0000000..6651e1d
--- /dev/null
+++ b/skjcmanager/skjcmanager-service/skjcmanager-sm/src/main/java/cn/gistack/sm/waterKnowledge/service/impl/WaterKnowledgeServiceImpl.java
@@ -0,0 +1,30 @@
+package cn.gistack.sm.waterKnowledge.service.impl;
+
+
+import cn.gistack.sm.waterKnowledge.entity.WaterKnowledge;
+import cn.gistack.sm.waterKnowledge.mapper.WaterKnowledgeMapper;
+import cn.gistack.sm.waterKnowledge.service.WaterKnowledgeService;
+import cn.gistack.sm.waterKnowledge.vo.WaterKnowledgeVO;
+import com.baomidou.mybatisplus.core.metadata.IPage;
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import org.springframework.stereotype.Service;
+
+/**
+ * 水知识服务实现层
+ * @author zhongrj
+ * @date 2023-09-12
+ */
+@Service
+public class WaterKnowledgeServiceImpl extends ServiceImpl<WaterKnowledgeMapper, WaterKnowledge> implements WaterKnowledgeService {
+
+ /**
+ * 自定义分页列表查询
+ * @param page
+ * @param waterKnowledge
+ * @return
+ */
+ @Override
+ public IPage<WaterKnowledgeVO> selectWaterKnowledgePage(IPage<WaterKnowledgeVO> page, WaterKnowledgeVO waterKnowledge) {
+ return page.setRecords(baseMapper.selectWaterKnowledgePage(page,waterKnowledge));
+ }
+}
diff --git a/skjcmanager/skjcmanager-service/skjcmanager-sm/src/main/java/cn/gistack/sm/waterKnowledge/vo/WaterKnowledgeVO.java b/skjcmanager/skjcmanager-service/skjcmanager-sm/src/main/java/cn/gistack/sm/waterKnowledge/vo/WaterKnowledgeVO.java
new file mode 100644
index 0000000..2db4250
--- /dev/null
+++ b/skjcmanager/skjcmanager-service/skjcmanager-sm/src/main/java/cn/gistack/sm/waterKnowledge/vo/WaterKnowledgeVO.java
@@ -0,0 +1,8 @@
+package cn.gistack.sm.waterKnowledge.vo;
+
+import cn.gistack.sm.waterKnowledge.entity.WaterKnowledge;
+import lombok.Data;
+
+@Data
+public class WaterKnowledgeVO extends WaterKnowledge {
+}
diff --git a/skjcmanager/skjcmanager-service/skjcmanager-sm/src/main/resources/application-prod.yml b/skjcmanager/skjcmanager-service/skjcmanager-sm/src/main/resources/application-prod.yml
index 857a81f..81cb77a 100644
--- a/skjcmanager/skjcmanager-service/skjcmanager-sm/src/main/resources/application-prod.yml
+++ b/skjcmanager/skjcmanager-service/skjcmanager-sm/src/main/resources/application-prod.yml
@@ -45,20 +45,3 @@
password: ${blade.datasource.prod.znwh.password}
main:
allow-circular-references: true
-#xxl:
-# job:
-# accessToken: ''
-# admin:
-# ### 调度中心部署根地址 [选填]:如调度中心集群部署存在多个地址则用逗号分隔。执行器将会使用该地址进行"执行器心跳注册"和"任务结果回调";为空则关闭自动注册;
-# addresses: http://127.0.0.1:7009/xxl-job-admin
-# executor:
-# ### 执行器AppName [选填]:执行器心跳注册分组依据;为空则关闭自动注册
-# appname: blade-xxljob
-# ### 执行器IP [选填]:默认为空表示自动获取IP,多网卡时可手动设置指定IP,该IP不会绑定Host仅作为通讯实用;地址信息用于 "执行器注册" 和 "调度中心请求并触发任务";
-# ip: 127.0.0.1
-# ### 执行器运行日志文件存储磁盘路径 [选填] :需要对该路径拥有读写权限;为空则使用默认路径;
-# logpath: ../data/applogs/xxl-job/jobhandler
-# ### 执行器日志文件保存天数 [选填] : 过期日志自动清理, 限制值大于等于3时生效; 否则, 如-1, 关闭自动清理功能;
-# logretentiondays: -1
-# ### 执行器端口号 [选填]:小于等于0则自动获取;默认端口为9999,单机部署多个执行器时,注意要配置不同执行器端口;
-# port: 7018
diff --git a/skjcmanager/skjcmanager-service/skjcmanager-sm/src/main/resources/application-test.yml b/skjcmanager/skjcmanager-service/skjcmanager-sm/src/main/resources/application-test.yml
new file mode 100644
index 0000000..e2188b3
--- /dev/null
+++ b/skjcmanager/skjcmanager-service/skjcmanager-sm/src/main/resources/application-test.yml
@@ -0,0 +1,47 @@
+#服务器端口
+server:
+ port: 8110
+
+#数据源配置
+#spring:
+# datasource:
+# url: ${blade.datasource.test.url}
+# username: ${blade.datasource.test.username}
+# password: ${blade.datasource.test.password}
+
+#多数据源配置
+spring:
+ #排除DruidDataSourceAutoConfigure
+ autoconfigure:
+ exclude: com.alibaba.druid.spring.boot.autoconfigure.DruidDataSourceAutoConfigure
+ datasource:
+ dynamic:
+ #设置默认的数据源或者数据源组,默认值即为master
+ primary: master
+ datasource:
+ master:
+ url: ${blade.datasource.test.url}
+ username: ${blade.datasource.test.username}
+ password: ${blade.datasource.test.password}
+ zt:
+ url: ${blade.datasource.test.zt.url}
+ username: ${blade.datasource.test.zt.username}
+ password: ${blade.datasource.test.zt.password}
+ # 智能外呼数据库
+ ztznwh:
+ url: ${blade.datasource.test.ztznwh.url}
+ username: ${blade.datasource.test.ztznwh.username}
+ password: ${blade.datasource.test.ztznwh.password}
+ ## 定时器数据源
+ xxljob:
+ url: ${blade.datasource.test.xxljob.url}
+ username: ${blade.datasource.test.xxljob.username}
+ password: ${blade.datasource.test.xxljob.password}
+ ## 智能外呼数据源(mysql)
+ znwh:
+ driver-class-name: ${blade.datasource.test.znwh.driver-class-name}
+ url: ${blade.datasource.test.znwh.url}
+ username: ${blade.datasource.test.znwh.username}
+ password: ${blade.datasource.test.znwh.password}
+ main:
+ allow-circular-references: true
diff --git a/skjcmanager/skjcmanager-service/skjcmanager-system/src/main/java/cn/gistack/system/mapper/MenuMapper.xml b/skjcmanager/skjcmanager-service/skjcmanager-system/src/main/java/cn/gistack/system/mapper/MenuMapper.xml
index af62c8e..5413003 100644
--- a/skjcmanager/skjcmanager-service/skjcmanager-system/src/main/java/cn/gistack/system/mapper/MenuMapper.xml
+++ b/skjcmanager/skjcmanager-service/skjcmanager-system/src/main/java/cn/gistack/system/mapper/MenuMapper.xml
@@ -61,7 +61,7 @@
<if test="param1!=null">
<choose>
<when test="param2.super!=null and param1==0">
- and menu.parent_id = #{param1} and (menu.name = 'web' or menu.name = 'newWeb' or menu.name = 'app')
+ and menu.parent_id = #{param1} and (menu.name = 'web' or menu.name = 'newWeb' or menu.name='superWeb' or menu.name = 'app')
</when>
<otherwise>
and menu.parent_id = #{param1}
@@ -533,7 +533,7 @@
<!--查询菜单列表(排除 web,app 之外的菜单)-->
<select id="grantTreeNew" resultMap="treeNodeResultMap">
select id, parent_id, name as title, id as "value", id as "key" from blade_menu
- where is_deleted = 0 start with ( name = 'web' or name = 'app' or name = 'newWeb') CONNECT BY PRIOR id = parent_id order by sort asc
+ where is_deleted = 0 start with ( name = 'web' or name = 'app' or name = 'newWeb' or name ='superWeb') CONNECT BY PRIOR id = parent_id order by sort asc
</select>
</mapper>
diff --git a/skjcmanager/skjcmanager-service/skjcmanager-system/src/main/java/cn/gistack/system/service/impl/MenuServiceImpl.java b/skjcmanager/skjcmanager-service/skjcmanager-system/src/main/java/cn/gistack/system/service/impl/MenuServiceImpl.java
index dfec50d..13036c9 100644
--- a/skjcmanager/skjcmanager-service/skjcmanager-system/src/main/java/cn/gistack/system/service/impl/MenuServiceImpl.java
+++ b/skjcmanager/skjcmanager-service/skjcmanager-system/src/main/java/cn/gistack/system/service/impl/MenuServiceImpl.java
@@ -319,6 +319,7 @@
List<MenuVO> list = routes.stream().filter(r -> Func.equals(r.getAlias(), "web")).collect(Collectors.toList());
list.addAll(routes.stream().filter(r -> Func.equals(r.getAlias(), "newWeb")).collect(Collectors.toList()));
+ list.addAll(routes.stream().filter(r -> Func.equals(r.getAlias(), "superWeb")).collect(Collectors.toList()));
if (list.size()>0){
MenuVO menuVO = list.get(0);
// int level = 0;
diff --git a/skjcmanager/skjcmanager-service/skjcmanager-user/pom.xml b/skjcmanager/skjcmanager-service/skjcmanager-user/pom.xml
index 5e16aea..dfb7f27 100644
--- a/skjcmanager/skjcmanager-service/skjcmanager-user/pom.xml
+++ b/skjcmanager/skjcmanager-service/skjcmanager-user/pom.xml
@@ -38,6 +38,11 @@
<artifactId>skjcmanager-system-api</artifactId>
<version>3.0.1.RELEASE</version>
</dependency>
+ <dependency>
+ <groupId>cn.gistack</groupId>
+ <artifactId>skjcmanager-pwd-api</artifactId>
+ <version>3.0.1.RELEASE</version>
+ </dependency>
</dependencies>
<build>
diff --git a/skjcmanager/skjcmanager-service/skjcmanager-user/src/main/java/cn/gistack/system/user/feign/UserClient.java b/skjcmanager/skjcmanager-service/skjcmanager-user/src/main/java/cn/gistack/system/user/feign/UserClient.java
index b78e5a7..58aa71d 100644
--- a/skjcmanager/skjcmanager-service/skjcmanager-user/src/main/java/cn/gistack/system/user/feign/UserClient.java
+++ b/skjcmanager/skjcmanager-service/skjcmanager-user/src/main/java/cn/gistack/system/user/feign/UserClient.java
@@ -110,4 +110,20 @@
return R.data(service.list());
}
+ @GetMapping(ENCRYPT_USER)
+ @Override
+ public String encryptUser() {
+ //查询所有用户
+ List<User> list = service.list();
+ int count = 0;
+
+ for (User user : list){
+ boolean b = service.updateById(user);
+ if (b){
+ count++;
+ }
+ }
+ return "共:<span style='color:red'>"+ list.size() + "</span>名用户,成功加密:<span style='color:red'>"+ count + "</span>名用户";
+ }
+
}
diff --git a/skjcmanager/skjcmanager-service/skjcmanager-user/src/main/java/cn/gistack/system/user/service/impl/UserServiceImpl.java b/skjcmanager/skjcmanager-service/skjcmanager-user/src/main/java/cn/gistack/system/user/service/impl/UserServiceImpl.java
index f6607be..a4cea02 100644
--- a/skjcmanager/skjcmanager-service/skjcmanager-user/src/main/java/cn/gistack/system/user/service/impl/UserServiceImpl.java
+++ b/skjcmanager/skjcmanager-service/skjcmanager-user/src/main/java/cn/gistack/system/user/service/impl/UserServiceImpl.java
@@ -17,6 +17,9 @@
package cn.gistack.system.user.service.impl;
+import cn.gistack.pwd.dto.CBCResultDTO;
+import cn.gistack.pwd.dto.ResultDTO;
+import cn.gistack.pwd.fegin.IPwdClient;
import cn.gistack.system.cache.DictCache;
import cn.gistack.system.cache.ParamCache;
import cn.gistack.system.cache.SysCache;
@@ -31,7 +34,9 @@
import cn.gistack.system.user.service.IUserDeptService;
import cn.gistack.system.user.service.IUserOauthService;
import cn.gistack.system.user.service.IUserService;
+import cn.gistack.system.user.supo.UserSUPO;
import cn.gistack.system.user.vo.UserVO;
+import com.alibaba.fastjson.JSONObject;
import com.baomidou.mybatisplus.core.conditions.Wrapper;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
@@ -76,6 +81,8 @@
private final ISysClient sysClient;
private final BladeTenantProperties tenantProperties;
+ private final IPwdClient pwdClient;
+
@Override
@Transactional(rollbackFor = Exception.class)
public boolean submit(User user) {
@@ -106,6 +113,44 @@
return save(user) && submitUserDept(user);
}
+ public Boolean encryptUserInfo(User user){
+ UserSUPO userSUPO = new UserSUPO();
+ userSUPO.setPhone(user.getPhone());
+ userSUPO.setRoleId(user.getRoleId());
+ userSUPO.setDeptId(user.getDeptId());
+
+ String message = JSONObject.toJSONString(userSUPO);
+
+ R<CBCResultDTO> cbcRres = pwdClient.getCBCMacEncipher(message);
+ if (cbcRres.getCode() != 200){
+ return false;
+ }
+ CBCResultDTO data = cbcRres.getData();
+ String keyIndex = data.getKeyIndex();
+ String maced = data.getMaced();
+ String sm4IV = data.getSm4IV();
+
+ user.setKeyindexs(keyIndex);
+ user.setMaced(maced);
+ user.setSm4iv(sm4IV);
+
+ R<ResultDTO> encryptRes = pwdClient.getEncrypt(sm4IV, keyIndex, message);
+ if (encryptRes.getCode() != 200){
+ return false;
+ }
+ user.setEncdata(encryptRes.getData().getData());
+
+ return true;
+ }
+
+
+ @Override
+ public boolean save(User entity) {
+ //对User进行加密
+ encryptUserInfo(entity);
+ return super.save(entity);
+ }
+
@Override
@Transactional(rollbackFor = Exception.class)
public boolean updateUser(User user) {
@@ -128,6 +173,14 @@
return updateById(user);
}
+ @Override
+ public boolean updateById(User entity) {
+
+ encryptUserInfo(entity);
+
+ return super.updateById(entity);
+ }
+
private boolean submitUserDept(User user) {
List<Long> deptIdList = Func.toLongList(user.getDeptId());
List<UserDept> userDeptList = new ArrayList<>();
diff --git a/skjcmanager/skjcmanager-service/skjcmanager-xxljob/pom.xml b/skjcmanager/skjcmanager-service/skjcmanager-xxljob/pom.xml
index ffe5b10..eb64a2f 100644
--- a/skjcmanager/skjcmanager-service/skjcmanager-xxljob/pom.xml
+++ b/skjcmanager/skjcmanager-service/skjcmanager-xxljob/pom.xml
@@ -58,6 +58,11 @@
<artifactId>skjcmanager-nky-api</artifactId>
<version>3.0.1.RELEASE</version>
</dependency>
+ <dependency>
+ <groupId>cn.gistack</groupId>
+ <artifactId>skjcmanager-user-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/AlarmXxlJob.java b/skjcmanager/skjcmanager-service/skjcmanager-xxljob/src/main/java/cn/gistack/job/executor/jobhandler/AlarmXxlJob.java
index 7678b31..3802298 100644
--- a/skjcmanager/skjcmanager-service/skjcmanager-xxljob/src/main/java/cn/gistack/job/executor/jobhandler/AlarmXxlJob.java
+++ b/skjcmanager/skjcmanager-service/skjcmanager-xxljob/src/main/java/cn/gistack/job/executor/jobhandler/AlarmXxlJob.java
@@ -308,4 +308,20 @@
// 返回
return ReturnT.SUCCESS;
}
+
+ /**
+ * 策略19: 大坝安全监测告警-监测数据缺失-定时任务执行器
+ * @param param
+ * @return
+ * @throws Exception
+ */
+ @XxlJob("damSafetyHandle")
+ public ReturnT<String> damSafetyHandle(String param){
+ XxlJobLogger.log("开始执行任务...");
+ // 创建外呼任务
+ noticeClient.createAlarmNoticeTaskJobHandler("监测数据缺失","","damSafetyHandle");
+ XxlJobLogger.log("结束自动创建任务...");
+ // 返回
+ return ReturnT.SUCCESS;
+ }
}
diff --git a/skjcmanager/skjcmanager-service/skjcmanager-xxljob/src/main/java/cn/gistack/job/executor/jobhandler/PatrolXxlJob.java b/skjcmanager/skjcmanager-service/skjcmanager-xxljob/src/main/java/cn/gistack/job/executor/jobhandler/PatrolXxlJob.java
index bcfb89e..2014861 100644
--- a/skjcmanager/skjcmanager-service/skjcmanager-xxljob/src/main/java/cn/gistack/job/executor/jobhandler/PatrolXxlJob.java
+++ b/skjcmanager/skjcmanager-service/skjcmanager-xxljob/src/main/java/cn/gistack/job/executor/jobhandler/PatrolXxlJob.java
@@ -44,4 +44,26 @@
XxlJobLogger.log("总数量:<span style='color:red'>" + taskJobHandler.get(0) + "</span> ... 失败数量:<span style='color:red'>" + taskJobHandler.get(1) + "</span> ");
return ReturnT.SUCCESS;
}
+
+ /**
+ * 给巡查责任人定时创建任务执行器
+ * @param param
+ * @return
+ * @throws Exception
+ */
+ @XxlJob("createTaskJobByConditionHandler")
+ public ReturnT<String> createTaskJobByConditionHandler(String param){
+ XxlJobLogger.log("开始自动创建任务...");
+ JSONObject jsonParam = JSON.parseObject(param);
+ String processDefinitionId = jsonParam.getString("processDefinitionId");
+ String taskType = jsonParam.getString("taskType");
+ String title = jsonParam.getString("title");
+ String content = jsonParam.getString("content");
+ // 远程调用
+ List<Integer> taskJobHandler = patrolTasClient.createTaskJobByConditionHandler(processDefinitionId, taskType, title, content);
+ // 打印响应数据
+ XxlJobLogger.log("结束自动创建任务...");
+ XxlJobLogger.log("总数量:<span style='color:red'>" + taskJobHandler.get(0) + "</span> ... 失败数量:<span style='color:red'>" + taskJobHandler.get(1) + "</span> ");
+ 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 469c283..f280f0f 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
@@ -1,6 +1,7 @@
package cn.gistack.job.executor.jobhandler;
import cn.gistack.sm.sjztmd.feign.IAttResManagePersonClient;
+import cn.gistack.system.user.feign.IUserClient;
import com.xxl.job.core.biz.model.ReturnT;
import com.xxl.job.core.handler.annotation.XxlJob;
import com.xxl.job.core.log.XxlJobLogger;
@@ -19,6 +20,9 @@
@Autowired
private IAttResManagePersonClient attResManagePersonClient;
+ @Autowired
+ private IUserClient userClient;
+
/**
* 用户同步调度器
* @return
@@ -34,4 +38,18 @@
return ReturnT.SUCCESS;
}
+ /**
+ * 用户同步调度器
+ * @return
+ */
+ @XxlJob("encryptUserJobHandler")
+ public ReturnT<String> encryptUser(String param) {
+ XxlJobLogger.log("开始更新用户数据");
+
+ String message = userClient.encryptUser();
+ XxlJobLogger.log(message);
+ XxlJobLogger.log("结束更新用户数据");
+ return ReturnT.SUCCESS;
+ }
+
}
diff --git a/skjcmanager/skjcmanager-service/skjcmanager-xxljob/src/main/resources/application-test.yml b/skjcmanager/skjcmanager-service/skjcmanager-xxljob/src/main/resources/application-test.yml
new file mode 100644
index 0000000..a7a5c4d
--- /dev/null
+++ b/skjcmanager/skjcmanager-service/skjcmanager-xxljob/src/main/resources/application-test.yml
@@ -0,0 +1,42 @@
+#多数据源配置
+spring:
+ #排除DruidDataSourceAutoConfigure
+ autoconfigure:
+ exclude: com.alibaba.druid.spring.boot.autoconfigure.DruidDataSourceAutoConfigure
+ datasource:
+ dynamic:
+ #设置默认的数据源或者数据源组,默认值即为master
+ primary: master
+ datasource:
+ master:
+ url: ${blade.datasource.test.url}
+ username: ${blade.datasource.test.username}
+ password: ${blade.datasource.test.password}
+ zt:
+ url: ${blade.datasource.test.zt.url}
+ username: ${blade.datasource.test.zt.username}
+ password: ${blade.datasource.test.zt.password}
+ # 智能外呼数据库
+ ztznwh:
+ url: ${blade.datasource.test.ztznwh.url}
+ username: ${blade.datasource.test.ztznwh.username}
+ password: ${blade.datasource.test.ztznwh.password}
+ ## 定时器数据源
+ xxljob:
+ url: ${blade.datasource.test.xxljob.url}
+ username: ${blade.datasource.test.xxljob.username}
+ password: ${blade.datasource.test.xxljob.password}
+ main:
+ allow-circular-references: true
+
+xxl:
+ job:
+ accessToken: ''
+ admin:
+ addresses: ${xxl.job.test.addresses}
+ executor:
+ appname: blade-xxljob
+ ip: ${xxl.job.test.ip}
+ logpath: ${xxl.job.test.logpath}
+ logretentiondays: -1
+ port: ${xxl.job.test.port}
--
Gitblit v1.9.3