xieb
2023-08-01 3fde6b45ddfcccb76bcb86c8b0e415342c443ce1
南科院对接
1 files modified
21 files added
778 ■■■■■ changed files
skjcmanager/skjcmanager-service/pom.xml 1 ●●●● patch | view | raw | blame | history
skjcmanager/skjcmanager-service/skjcmanager-nky/pom.xml 53 ●●●●● patch | view | raw | blame | history
skjcmanager/skjcmanager-service/skjcmanager-nky/src/main/java/cn/gistack/nky/NkyApplication.java 27 ●●●●● patch | view | raw | blame | history
skjcmanager/skjcmanager-service/skjcmanager-nky/src/main/java/cn/gistack/nky/controller/TestController.java 48 ●●●●● patch | view | raw | blame | history
skjcmanager/skjcmanager-service/skjcmanager-nky/src/main/java/cn/gistack/nky/launch/NkyLauncherServiceImpl.java 33 ●●●●● patch | view | raw | blame | history
skjcmanager/skjcmanager-service/skjcmanager-nky/src/main/java/cn/gistack/nky/requestpojo/ArimaPredictReqPo.java 39 ●●●●● patch | view | raw | blame | history
skjcmanager/skjcmanager-service/skjcmanager-nky/src/main/java/cn/gistack/nky/requestpojo/HstPredictReqPo.java 30 ●●●●● patch | view | raw | blame | history
skjcmanager/skjcmanager-service/skjcmanager-nky/src/main/java/cn/gistack/nky/requestpojo/PredictWatersPo.java 18 ●●●●● patch | view | raw | blame | history
skjcmanager/skjcmanager-service/skjcmanager-nky/src/main/java/cn/gistack/nky/requestpojo/QueryReqPo.java 39 ●●●●● patch | view | raw | blame | history
skjcmanager/skjcmanager-service/skjcmanager-nky/src/main/java/cn/gistack/nky/resultpojo/DataBigResultPojo.java 23 ●●●●● patch | view | raw | blame | history
skjcmanager/skjcmanager-service/skjcmanager-nky/src/main/java/cn/gistack/nky/resultpojo/DataResChildrenPo.java 21 ●●●●● patch | view | raw | blame | history
skjcmanager/skjcmanager-service/skjcmanager-nky/src/main/java/cn/gistack/nky/resultpojo/DataResPo.java 31 ●●●●● patch | view | raw | blame | history
skjcmanager/skjcmanager-service/skjcmanager-nky/src/main/java/cn/gistack/nky/resultpojo/ZtResultPo.java 20 ●●●●● patch | view | raw | blame | history
skjcmanager/skjcmanager-service/skjcmanager-nky/src/main/java/cn/gistack/nky/service/INkyService.java 40 ●●●●● patch | view | raw | blame | history
skjcmanager/skjcmanager-service/skjcmanager-nky/src/main/java/cn/gistack/nky/service/IZtApiService.java 26 ●●●●● patch | view | raw | blame | history
skjcmanager/skjcmanager-service/skjcmanager-nky/src/main/java/cn/gistack/nky/service/NkyServiceImpl.java 66 ●●●●● patch | view | raw | blame | history
skjcmanager/skjcmanager-service/skjcmanager-nky/src/main/java/cn/gistack/nky/service/ZtApiServiceImpl.java 66 ●●●●● patch | view | raw | blame | history
skjcmanager/skjcmanager-service/skjcmanager-nky/src/main/resources/application-dev.yml 35 ●●●●● patch | view | raw | blame | history
skjcmanager/skjcmanager-service/skjcmanager-nky/src/main/resources/application-prod.yml 33 ●●●●● patch | view | raw | blame | history
skjcmanager/skjcmanager-service/skjcmanager-nky/src/test/java/cn/gistack/nky/SkjcmanagerNkyApplicationTests.java 13 ●●●●● patch | view | raw | blame | history
skjcmanager/skjcmanager-service/skjcmanager-sm/src/main/java/cn/gistack/sm/updaterecord/UpdateRecordAop.java 95 ●●●●● patch | view | raw | blame | history
skjcmanager/skjcmanager-service/skjcmanager-sm/src/main/java/cn/gistack/sm/updaterecord/UpdateRecordConfig.java 21 ●●●●● patch | view | raw | blame | history
skjcmanager/skjcmanager-service/pom.xml
@@ -24,6 +24,7 @@
        <module>skjcmanager-sm</module>
        <module>skjcmanager-alerts</module>
        <module>skjcmanager-xxljob</module>
        <module>skjcmanager-nky</module>
    </modules>
    <dependencies>
skjcmanager/skjcmanager-service/skjcmanager-nky/pom.xml
New file
@@ -0,0 +1,53 @@
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
         xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
    <parent>
        <artifactId>skjcmanager-service</artifactId>
        <groupId>cn.gistack</groupId>
        <version>3.0.1.RELEASE</version>
    </parent>
    <modelVersion>4.0.0</modelVersion>
    <artifactId>skjcmanager-nky</artifactId>
    <version>${bladex.project.version}</version>
    <name>${project.artifactId}</name>
    <packaging>jar</packaging>
    <dependencies>
        <dependency>
            <groupId>org.springblade</groupId>
            <artifactId>blade-core-boot</artifactId>
        </dependency>
        <!--开启多数据源-->
        <dependency>
            <groupId>org.springblade</groupId>
            <artifactId>blade-core-auto</artifactId>
            <scope>compile</scope>
        </dependency>
    </dependencies>
    <build>
        <plugins>
            <plugin>
                <groupId>com.spotify</groupId>
                <artifactId>dockerfile-maven-plugin</artifactId>
                <configuration>
                    <username>${docker.username}</username>
                    <password>${docker.password}</password>
                    <repository>${docker.registry.url}/${docker.namespace}/${project.artifactId}</repository>
                    <tag>${project.version}</tag>
                    <useMavenSettingsForAuth>true</useMavenSettingsForAuth>
                    <buildArgs>
                        <JAR_FILE>target/${project.build.finalName}.jar</JAR_FILE>
                    </buildArgs>
                    <skip>false</skip>
                </configuration>
            </plugin>
            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-antrun-plugin</artifactId>
            </plugin>
        </plugins>
    </build>
</project>
skjcmanager/skjcmanager-service/skjcmanager-nky/src/main/java/cn/gistack/nky/NkyApplication.java
New file
@@ -0,0 +1,27 @@
package cn.gistack.nky;
import org.mybatis.spring.annotation.MapperScan;
import org.springblade.core.cloud.client.BladeCloudApplication;
import org.springblade.core.launch.BladeApplication;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.boot.web.client.RestTemplateBuilder;
import org.springframework.cloud.openfeign.EnableFeignClients;
import org.springframework.context.annotation.Bean;
import org.springframework.web.client.RestTemplate;
@BladeCloudApplication
@EnableFeignClients({"cn.gistack"})
@MapperScan({"org.springblade.**.mapper.**","cn.gistack.nky.**.mapper.**"})
public class NkyApplication {
    public static void main(String[] args) {
        BladeApplication.run("blade-nky", NkyApplication.class, args);
    }
    @Bean
    public RestTemplate restTemplate(RestTemplateBuilder builder){
        return builder.build();
    }
}
skjcmanager/skjcmanager-service/skjcmanager-nky/src/main/java/cn/gistack/nky/controller/TestController.java
New file
@@ -0,0 +1,48 @@
package cn.gistack.nky.controller;
import cn.gistack.nky.requestpojo.ArimaPredictReqPo;
import cn.gistack.nky.requestpojo.QueryReqPo;
import cn.gistack.nky.service.INkyService;
import cn.gistack.nky.service.IZtApiService;
import io.swagger.annotations.Api;
import lombok.AllArgsConstructor;
import lombok.extern.slf4j.Slf4j;
import org.springblade.core.tool.api.R;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
/**
 * @PROJECT_NAME: skjcmanager
 * @DESCRIPTION:
 * @USER: aix
 * @DATE: 2023/7/28 17:45
 */
@Slf4j
@Api(tags="测试")
@RestController
@RequestMapping("/test/test")
@AllArgsConstructor
public class TestController {
    private IZtApiService ztApiService;
    private INkyService nkyService;
    @GetMapping(value = "/getTest")
    public R getTest() {
        return R.data(ztApiService.getWy());
    }
    @GetMapping(value = "/getTest2")
    public R getTest2() {
        ArimaPredictReqPo po = new ArimaPredictReqPo("42011640018","02","3",24);
        nkyService.arimaPredict(po);
        return R.data(null);
    }
    @GetMapping(value = "/getTest3")
    public R getTest3() {
        return R.data(ztApiService.getWy());
    }
}
skjcmanager/skjcmanager-service/skjcmanager-nky/src/main/java/cn/gistack/nky/launch/NkyLauncherServiceImpl.java
New file
@@ -0,0 +1,33 @@
package cn.gistack.nky.launch;
import cn.gistack.common.constant.LauncherConstant;
import org.springblade.core.auto.service.AutoService;
import org.springblade.core.launch.service.LauncherService;
import org.springblade.core.launch.utils.PropsUtil;
import org.springframework.boot.builder.SpringApplicationBuilder;
import java.util.Properties;
/**
 * @PROJECT_NAME: skjcmanager
 * @DESCRIPTION: nacos配置
 * @USER: aix
 * @DATE: 2023/7/31 10:51
 */
@AutoService(LauncherService.class)
public class NkyLauncherServiceImpl implements LauncherService {
    @Override
    public void launcher(SpringApplicationBuilder builder, String appName, String profile, boolean isLocalDev) {
        Properties props = System.getProperties();
        // 通用注册
        PropsUtil.setProperty(props, "spring.cloud.nacos.discovery.server-addr", LauncherConstant.nacosAddr(profile));
        PropsUtil.setProperty(props, "spring.cloud.nacos.config.server-addr", LauncherConstant.nacosAddr(profile));
        PropsUtil.setProperty(props, "spring.cloud.sentinel.transport.dashboard", LauncherConstant.sentinelAddr(profile));
        PropsUtil.setProperty(props, "spring.zipkin.base-url", LauncherConstant.zipkinAddr(profile));
        //开启多数据源
        PropsUtil.setProperty(props, "spring.datasource.dynamic.enabled", "true");
    }
}
skjcmanager/skjcmanager-service/skjcmanager-nky/src/main/java/cn/gistack/nky/requestpojo/ArimaPredictReqPo.java
New file
@@ -0,0 +1,39 @@
package cn.gistack.nky.requestpojo;
import cn.gistack.nky.resultpojo.DataResChildrenPo;
import lombok.Data;
/**
 * @PROJECT_NAME: skjcmanager
 * @DESCRIPTION: arima预测请求参数
 * @USER: aix
 * @DATE: 2023/7/31 11:02
 */
@Data
public class ArimaPredictReqPo {
    private String damId;
    private String pointId;
    private String type;
    private int number;
    public ArimaPredictReqPo() {};
    public ArimaPredictReqPo(String damId, String pointId, String type, int number) {
        this.damId = damId;
        this.pointId = pointId;
        this.type = type;
        this.number = number;
    }
    public ArimaPredictReqPo (DataResChildrenPo pojo, String type, int number) {
        this.damId = pojo.getRes_cd();
        this.pointId = pojo.getCd();
        this.type = type;
        this.number = number;
    }
}
skjcmanager/skjcmanager-service/skjcmanager-nky/src/main/java/cn/gistack/nky/requestpojo/HstPredictReqPo.java
New file
@@ -0,0 +1,30 @@
package cn.gistack.nky.requestpojo;
import lombok.Data;
import java.util.List;
/**
 * @PROJECT_NAME: skjcmanager
 * @DESCRIPTION: hst预测请求参数
 * @USER: aix
 * @DATE: 2023/7/31 11:04
 */
@Data
public class HstPredictReqPo {
    private String damId;
    private String pointId;
    private String type;
    private List<PredictWatersPo> predictWaters;
    public HstPredictReqPo(String damId, String pointId, String type, List<PredictWatersPo> predictWaters) {
        this.damId = damId;
        this.pointId = pointId;
        this.type = type;
        this.predictWaters = predictWaters;
    }
}
skjcmanager/skjcmanager-service/skjcmanager-nky/src/main/java/cn/gistack/nky/requestpojo/PredictWatersPo.java
New file
@@ -0,0 +1,18 @@
package cn.gistack.nky.requestpojo;
import lombok.Data;
/**
 * @PROJECT_NAME: skjcmanager
 * @DESCRIPTION:
 * @USER: aix
 * @DATE: 2023/7/31 11:05
 */
@Data
public class PredictWatersPo {
    private String time;
    private Double value;
}
skjcmanager/skjcmanager-service/skjcmanager-nky/src/main/java/cn/gistack/nky/requestpojo/QueryReqPo.java
New file
@@ -0,0 +1,39 @@
package cn.gistack.nky.requestpojo;
import lombok.Data;
/**
 * @PROJECT_NAME: skjcmanager
 * @DESCRIPTION: 查询结果请求参数
 * @USER: aix
 * @DATE: 2023/7/31 11:07
 */
@Data
public class QueryReqPo {
    /**
     * 第几页
     */
    private int pageNo;
    /**
     * 每页数量
     */
    private int pageSize;
    /**
     * 开始记录No
     */
    private int startNo;
    /**
     * 大坝id
     */
    private int damId;
    /**
     * 测点id
     */
    private int pointId;
    /**
     * 监测量类型
     */
    private int type;
}
skjcmanager/skjcmanager-service/skjcmanager-nky/src/main/java/cn/gistack/nky/resultpojo/DataBigResultPojo.java
New file
@@ -0,0 +1,23 @@
package cn.gistack.nky.resultpojo;
import lombok.Data;
import java.util.List;
/**
 * @PROJECT_NAME: skjcmanager
 * @DESCRIPTION:
 * @USER: aix
 * @DATE: 2023/7/31 9:42
 */
@Data
public class DataBigResultPojo {
    private int totalRecords;
    private int offset;
    private int pageNo;
    private int totalPages;
    private int pageSize;
    private List<DataResPo> data;
}
skjcmanager/skjcmanager-service/skjcmanager-nky/src/main/java/cn/gistack/nky/resultpojo/DataResChildrenPo.java
New file
@@ -0,0 +1,21 @@
package cn.gistack.nky.resultpojo;
import lombok.Data;
/**
 * @PROJECT_NAME: skjcmanager
 * @DESCRIPTION:
 * @USER: aix
 * @DATE: 2023/7/31 9:38
 */
@Data
public class DataResChildrenPo {
    private String res_reg_code;
    private String cd;// 测站编码
    private String tm;
    private String res_cd; // 水库编码
    private String res_nm; // 水库名称
}
skjcmanager/skjcmanager-service/skjcmanager-nky/src/main/java/cn/gistack/nky/resultpojo/DataResPo.java
New file
@@ -0,0 +1,31 @@
package cn.gistack.nky.resultpojo;
import lombok.Data;
import java.util.List;
/**
 * @PROJECT_NAME: skjcmanager
 * @DESCRIPTION:
 * @USER: aix
 * @DATE: 2023/7/31 9:37
 */
@Data
public class DataResPo {
    private String rscd;
    private String res_cd;
    private String res_nm;
    private String province_cd;
    private String province_nm;
    private String city_cd;
    private String city_nm;
    private String county_cd;
    private String county_nm;
    private String town_cd;
    private String town_nm;
    private String rv_name;
    private String bas_guid;
    private List<DataResChildrenPo> children;
}
skjcmanager/skjcmanager-service/skjcmanager-nky/src/main/java/cn/gistack/nky/resultpojo/ZtResultPo.java
New file
@@ -0,0 +1,20 @@
package cn.gistack.nky.resultpojo;
import lombok.Data;
/**
 * @PROJECT_NAME: skjcmanager
 * @DESCRIPTION: 中台返回resultpojo
 * @USER: aix
 * @DATE: 2023/7/28 17:21
 */
@Data
public class ZtResultPo {
    private DataBigResultPojo data;
    private Integer code;
    private String msg;
}
skjcmanager/skjcmanager-service/skjcmanager-nky/src/main/java/cn/gistack/nky/service/INkyService.java
New file
@@ -0,0 +1,40 @@
package cn.gistack.nky.service;
import cn.gistack.nky.requestpojo.ArimaPredictReqPo;
import cn.gistack.nky.requestpojo.HstPredictReqPo;
import cn.gistack.nky.requestpojo.QueryReqPo;
/**
 * @PROJECT_NAME: skjcmanager
 * @DESCRIPTION: 南科院接口service
 * @USER: aix
 * @DATE: 2023/7/31 10:17
 */
public interface INkyService {
    /**
     * arima 预测
     * 结果通过请通过查询接口查看
     */
    void arimaPredict(ArimaPredictReqPo po);
    /**
     * hst预测
     * 结果通过请通过查询接口查看
     */
    void hstPredict(HstPredictReqPo po);
    /**
     * arima预测查询结果
     * @param po 查询参数对象
     * @return
     */
    Object arimaQuery(QueryReqPo po);
    /**
     * hst预测查询结果
     * @return
     */
    Object hstQuery(QueryReqPo po);
}
skjcmanager/skjcmanager-service/skjcmanager-nky/src/main/java/cn/gistack/nky/service/IZtApiService.java
New file
@@ -0,0 +1,26 @@
package cn.gistack.nky.service;
import cn.gistack.nky.resultpojo.DataBigResultPojo;
/**
 * @PROJECT_NAME: skjcmanager
 * @DESCRIPTION: 中台远程调用
 * @USER: aix
 * @DATE: 2023/7/28 9:44
 */
public interface IZtApiService {
    /**
     * 实时渗压监测数据
     * @return list集合
     */
    DataBigResultPojo getSljc();
    /**
     * 实时变形监测数据
     * @return list集合
     */
    DataBigResultPojo getWy();
}
skjcmanager/skjcmanager-service/skjcmanager-nky/src/main/java/cn/gistack/nky/service/NkyServiceImpl.java
New file
@@ -0,0 +1,66 @@
package cn.gistack.nky.service;
import cn.gistack.nky.requestpojo.ArimaPredictReqPo;
import cn.gistack.nky.requestpojo.HstPredictReqPo;
import cn.gistack.nky.requestpojo.QueryReqPo;
import com.alibaba.fastjson.JSON;
import org.springframework.http.*;
import org.springframework.stereotype.Service;
import org.springframework.web.client.RestTemplate;
/**
 * @PROJECT_NAME: skjcmanager
 * @DESCRIPTION:
 * @USER: aix
 * @DATE: 2023/7/31 14:19
 */
@Service
public class NkyServiceImpl implements INkyService {
    // ARIMA预测接口URL
    private static final String ARIMA_PREDICT = "https://sk.hubeishuiyi.cn/warnIp/predict/arimaPredict";
    // ARIMA预测结果接口
    private static final String ARIMA_QUERY = "https://sk.hubeishuiyi.cn/warnIp/predict/arimaQuery";
    // HST预测接口URL
    private static final String HST_PREDICT = "https://sk.hubeishuiyi.cn/warnIp/predict/hstPredict";
    // HST预测结果接口
    private static final String HST_QUERY = "https://sk.hubeishuiyi.cn/warnIp/predict/hstQuery";
    @Override
    public void arimaPredict(ArimaPredictReqPo po) {
        setPredict(ARIMA_PREDICT, JSON.toJSONString(po));
    }
    @Override
    public void hstPredict(HstPredictReqPo po) {
        setPredict(HST_PREDICT, JSON.toJSONString(po));
    }
    @Override
    public Object arimaQuery(QueryReqPo po) {
        return null;
    }
    @Override
    public Object hstQuery(QueryReqPo po) {
        return null;
    }
    private void setPredict(String url, String jsonparams) {
        // 声明一个header变量
        HttpHeaders headers = new HttpHeaders();
        // 设置为json格式
        MediaType mediaType = MediaType.parseMediaType("application/json;charset=utf-8");
        headers.setContentType(mediaType);
        headers.add("Accept", MediaType.APPLICATION_JSON.toString());
        HttpEntity<String> httpEntity = new HttpEntity(jsonparams, headers);
        RestTemplate template = new RestTemplate();
        String resultStr = template.postForObject(url, httpEntity, String.class);
        System.out.println(resultStr);
    }
}
skjcmanager/skjcmanager-service/skjcmanager-nky/src/main/java/cn/gistack/nky/service/ZtApiServiceImpl.java
New file
@@ -0,0 +1,66 @@
package cn.gistack.nky.service;
import cn.gistack.nky.resultpojo.DataBigResultPojo;
import cn.gistack.nky.resultpojo.ZtResultPo;
import org.springframework.http.HttpEntity;
import org.springframework.http.HttpHeaders;
import org.springframework.http.HttpMethod;
import org.springframework.http.ResponseEntity;
import org.springframework.stereotype.Service;
import org.springframework.web.client.RestTemplate;
import java.util.LinkedHashMap;
import java.util.Map;
/**
 * @PROJECT_NAME: skjcmanager
 * @DESCRIPTION:
 * @USER: aix
 * @DATE: 2023/7/28 17:16
 */
@Service
public class ZtApiServiceImpl implements IZtApiService {
    /**
     * 实时渗压监测
     */
    private static final String LASTEST_OSMOTIC_PRESSURE = "https://sk.hubeishuiyi.cn/services/1234567890ABCDEFGHIJKLMN/monitor/lastest_osmotic_pressure/api?res_nm=&cd=&city_cd=&county_cd=&pageNo=1&pageSize=9999";
    private static final String WY_API = "https://sk.hubeishuiyi.cn/services/1234567890ABCDEFGHIJKLMN/monitor/wy/api?res_nm=&cd=&city_cd=&county_cd=&pageNo=1&pageSize=9999";
    @Override
    public DataBigResultPojo getSljc() {
        Map<String, Object> params = new LinkedHashMap<>();
        return getData(LASTEST_OSMOTIC_PRESSURE, "get", params);
    }
    @Override
    public DataBigResultPojo getWy() {
        Map<String, Object> params = new LinkedHashMap<>();
        return getData(WY_API, "get", params);
    }
    private DataBigResultPojo getData(String url, String type, Map<String, Object> params) {
        HttpMethod method;
        if (type.toLowerCase().equals("get".toLowerCase())) {
            method = HttpMethod.GET;
        } else {
            method = HttpMethod.POST;
        }
        // 声明一个header变量
        HttpHeaders headers = new HttpHeaders();
        // 设置apikey
        headers.set("apikey","F1DBECD719108635189480CF60E6553ADB3109616426BD537F25A430DFC613B491A025C4A51E77FD08C6E5B7CBE05917A461286E7B6D69F1AB1B14F946149D2065B0C675F8FEDF4B9B05C1496881BC5A");
        HttpEntity<String> httpEntity = new HttpEntity(null, headers);
        RestTemplate template = new RestTemplate();
        ResponseEntity<ZtResultPo> ztResultPojoResponseEntity = template.exchange(url, method,httpEntity, ZtResultPo.class,params);
        if (ztResultPojoResponseEntity.getStatusCodeValue() == 200) {
            return ztResultPojoResponseEntity.getBody().getData();
        }
        return null;
    }
}
skjcmanager/skjcmanager-service/skjcmanager-nky/src/main/resources/application-dev.yml
New file
@@ -0,0 +1,35 @@
#服务器端口
server:
  port: 8115
#数据源配置
#spring:
#  datasource:
#    url: ${blade.datasource.dev.url}
#    username: ${blade.datasource.dev.username}
#    password: ${blade.datasource.dev.password}
#多数据源配置
spring:
  #排除DruidDataSourceAutoConfigure
  autoconfigure:
    exclude: com.alibaba.druid.spring.boot.autoconfigure.DruidDataSourceAutoConfigure
  datasource:
    dynamic:
      #设置默认的数据源或者数据源组,默认值即为master
      primary: master
      datasource:
        ## 业务默认数据源
        master:
          url: ${blade.datasource.dev.url}
          username: ${blade.datasource.dev.username}
          password: ${blade.datasource.dev.password}
        ##中台数据源
        zt:
          url: ${blade.datasource.dev.zt.url}
          username: ${blade.datasource.dev.zt.username}
          password: ${blade.datasource.dev.zt.password}
  main:
    allow-circular-references: true
skjcmanager/skjcmanager-service/skjcmanager-nky/src/main/resources/application-prod.yml
New file
@@ -0,0 +1,33 @@
#服务器端口
server:
  port: 8115
#数据源配置
#spring:
#  datasource:
#    url: ${blade.datasource.prod.url}
#    username: ${blade.datasource.prod.username}
#    password: ${blade.datasource.prod.password}
#多数据源配置
spring:
  #排除DruidDataSourceAutoConfigure
  autoconfigure:
    exclude: com.alibaba.druid.spring.boot.autoconfigure.DruidDataSourceAutoConfigure
  datasource:
    dynamic:
      #设置默认的数据源或者数据源组,默认值即为master
      primary: master
      datasource:
        master:
          url: ${blade.datasource.prod.url}
          username: ${blade.datasource.prod.username}
          password: ${blade.datasource.prod.password}
        zt:
          url: ${blade.datasource.prod.zt.url}
          username: ${blade.datasource.prod.zt.username}
          password: ${blade.datasource.prod.zt.password}
  main:
    allow-circular-references: true
skjcmanager/skjcmanager-service/skjcmanager-nky/src/test/java/cn/gistack/nky/SkjcmanagerNkyApplicationTests.java
New file
@@ -0,0 +1,13 @@
package cn.gistack.nky;
import org.junit.jupiter.api.Test;
import org.springframework.boot.test.context.SpringBootTest;
@SpringBootTest
class SkjcmanagerNkyApplicationTests {
    @Test
    void contextLoads() {
    }
}
skjcmanager/skjcmanager-service/skjcmanager-sm/src/main/java/cn/gistack/sm/updaterecord/UpdateRecordAop.java
New file
@@ -0,0 +1,95 @@
package cn.gistack.sm.updaterecord;
import io.geekidea.updaterecord.api.entity.UpdateRecordColumnLog;
import io.geekidea.updaterecord.api.entity.UpdateRecordLog;
import io.geekidea.updaterecord.api.entity.UpdateRecordTableLog;
import io.geekidea.updaterecord.core.aop.UpdateRecordAopSupport;
import lombok.extern.slf4j.Slf4j;
import org.aspectj.lang.JoinPoint;
import org.aspectj.lang.annotation.AfterReturning;
import org.aspectj.lang.annotation.AfterThrowing;
import org.aspectj.lang.annotation.Aspect;
import org.aspectj.lang.annotation.Before;
import org.springblade.core.secure.utils.AuthUtil;
import org.springblade.core.tool.utils.StringUtil;
import org.springframework.scheduling.annotation.Async;
import org.springframework.stereotype.Component;
import javax.servlet.http.HttpServletRequest;
import java.util.List;
/**
 * @PROJECT_NAME: skjcmanager
 * @DESCRIPTION:
 * @USER: aix
 * @DATE: 2023/7/13 14:16
 */
@Slf4j
@Aspect
@Component
public class UpdateRecordAop extends UpdateRecordAopSupport {
    /**
     * 切点
     */
    private static final String POINTCUT = "@annotation(io.geekidea.updaterecord.annotation.UpdateRecord)";
    /**
     * 方法执行之前
     *
     * @param joinPoint
     * @throws Throwable
     */
    @Before(POINTCUT)
    @Override
    protected void doBefore(JoinPoint joinPoint) throws Throwable {
        super.doBeforeHandle(joinPoint);
    }
    /**
     * 方法正常执行并成功返回
     *
     * @param joinPoint
     * @param result
     * @throws Throwable
     */
    @AfterReturning(value = POINTCUT, returning = RESULT)
    @Override
    protected void doAfterReturning(JoinPoint joinPoint, Object result) throws Throwable {
        super.doAfterReturningHandle(joinPoint, result);
    }
    /**
     * 异常处理
     *
     * @param exception
     * @throws Throwable
     */
    @AfterThrowing(value = POINTCUT, throwing = EXCEPTION)
    @Override
    protected void doAfterThrowing(Throwable exception) throws Throwable {
        super.doAfterThrowingHandle(exception);
    }
    @Override
    protected String getToken(HttpServletRequest request) {
        return super.getToken(request);
    }
    @Override
    protected void handleUpdateRecord(UpdateRecordLog updateRecordLog, List<UpdateRecordTableLog> updateRecordTableLogs, List<UpdateRecordColumnLog> updateRecordColumnLogs) {
        // 需自己完善当前登陆用户ID和用户名称,IP对应的区域,备注信息等
        updateRecordLog.setUserId(String.valueOf(AuthUtil.getUserId()));
        updateRecordLog.setUserName(AuthUtil.getUserName());
        updateRecordLog.setArea("");
        updateRecordLog.setRemark("update...");
    }
    @Async
    @Override
    protected void save(UpdateRecordLog updateRecordLog, List<UpdateRecordTableLog> updateRecordTableLogs, List<UpdateRecordColumnLog> updateRecordColumnLogs) {
        super.save(updateRecordLog, updateRecordTableLogs, updateRecordColumnLogs);
    }
}
skjcmanager/skjcmanager-service/skjcmanager-sm/src/main/java/cn/gistack/sm/updaterecord/UpdateRecordConfig.java
New file
@@ -0,0 +1,21 @@
package cn.gistack.sm.updaterecord;
import io.geekidea.updaterecord.mybatis.UpdateRecordMybatisInterceptor;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
/**
 * @PROJECT_NAME: skjcmanager
 * @DESCRIPTION:
 * @USER: aix
 * @DATE: 2023/7/13 14:16
 */
@Configuration
public class UpdateRecordConfig {
    @Bean
    public UpdateRecordMybatisInterceptor updateRecordMybatisInterceptor(){
        return new UpdateRecordMybatisInterceptor();
    }
}