Compare commits
No commits in common. 'main' and 'dev' have entirely different histories.
@ -1,21 +0,0 @@
|
|||||||
<?xml version="1.0" encoding="UTF-8"?>
|
|
||||||
<project version="4">
|
|
||||||
<component name="ExternalStorageConfigurationManager" enabled="true" />
|
|
||||||
<component name="MaterialThemeProjectNewConfig">
|
|
||||||
<option name="metadata">
|
|
||||||
<MTProjectMetadataState>
|
|
||||||
<option name="migrated" value="true" />
|
|
||||||
<option name="pristineConfig" value="false" />
|
|
||||||
<option name="userId" value="-656edef7:190bac43930:-7ff9" />
|
|
||||||
</MTProjectMetadataState>
|
|
||||||
</option>
|
|
||||||
</component>
|
|
||||||
<component name="MavenProjectsManager">
|
|
||||||
<option name="originalFiles">
|
|
||||||
<list>
|
|
||||||
<option value="$PROJECT_DIR$/pom.xml" />
|
|
||||||
</list>
|
|
||||||
</option>
|
|
||||||
</component>
|
|
||||||
<component name="ProjectRootManager" version="2" languageLevel="JDK_1_8" default="true" project-jdk-name="corretto-1.8" project-jdk-type="JavaSDK" />
|
|
||||||
</project>
|
|
@ -0,0 +1,15 @@
|
|||||||
|
package com.lyr.web.controller.tool;
|
||||||
|
|
||||||
|
import org.springframework.web.bind.annotation.RestController;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @author liyc
|
||||||
|
* @date 2024/10/30
|
||||||
|
* @description TODO
|
||||||
|
**/
|
||||||
|
@RestController("/dataSourceManager")
|
||||||
|
public class DataSourceManagerController {
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
}
|
@ -0,0 +1,31 @@
|
|||||||
|
package com.lyr.common.core.domain;
|
||||||
|
|
||||||
|
import com.google.common.collect.ImmutableMap;
|
||||||
|
import com.lyr.common.constant.HttpStatus;
|
||||||
|
import lombok.AllArgsConstructor;
|
||||||
|
import lombok.Data;
|
||||||
|
import lombok.NoArgsConstructor;
|
||||||
|
|
||||||
|
import java.util.HashMap;
|
||||||
|
import java.util.Map;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 操作消息提醒
|
||||||
|
*
|
||||||
|
* @author liyc
|
||||||
|
*/
|
||||||
|
@NoArgsConstructor
|
||||||
|
@AllArgsConstructor
|
||||||
|
@Data
|
||||||
|
public class ServiceResult extends HashMap<String, Object> {
|
||||||
|
|
||||||
|
|
||||||
|
private Integer code;
|
||||||
|
private String message;
|
||||||
|
private Map data;
|
||||||
|
|
||||||
|
public static ServiceResult success(String name) {
|
||||||
|
ImmutableMap<Object, Object> data1 = ImmutableMap.of();
|
||||||
|
return new ServiceResult(HttpStatus.SUCCESS, name, data1);
|
||||||
|
}
|
||||||
|
}
|
@ -0,0 +1,45 @@
|
|||||||
|
package com.lyr.common.core.redis;
|
||||||
|
|
||||||
|
|
||||||
|
import org.apache.commons.lang3.StringUtils;
|
||||||
|
import org.redisson.Redisson;
|
||||||
|
import org.redisson.api.RedissonClient;
|
||||||
|
import org.redisson.config.Config;
|
||||||
|
import org.redisson.config.SingleServerConfig;
|
||||||
|
import org.redisson.config.TransportMode;
|
||||||
|
import org.springframework.beans.factory.annotation.Value;
|
||||||
|
import org.springframework.context.annotation.Bean;
|
||||||
|
import org.springframework.context.annotation.Configuration;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* packageName com.ktg.mes.config
|
||||||
|
*
|
||||||
|
* @author liyc
|
||||||
|
* @date 2024/9/3
|
||||||
|
* @description TODO
|
||||||
|
**/
|
||||||
|
@Configuration
|
||||||
|
public class RedissonConfig {
|
||||||
|
|
||||||
|
|
||||||
|
@Value("${spring.redis.host}")
|
||||||
|
private String host;
|
||||||
|
@Value("${spring.redis.port}")
|
||||||
|
private String port;
|
||||||
|
@Value("${spring.redis.password}")
|
||||||
|
private String password;
|
||||||
|
|
||||||
|
@Bean
|
||||||
|
public RedissonClient redissonClient() {
|
||||||
|
Config config = new Config();
|
||||||
|
config.setTransportMode(TransportMode.NIO);
|
||||||
|
SingleServerConfig singleServerConfig = config.useSingleServer();
|
||||||
|
String address = String.format("redis://%s:%s", host, port);
|
||||||
|
singleServerConfig.setAddress(address);
|
||||||
|
if (StringUtils.isNotEmpty(password)) {
|
||||||
|
singleServerConfig.setPassword(password);
|
||||||
|
}
|
||||||
|
RedissonClient redisson = Redisson.create(config);
|
||||||
|
return redisson;
|
||||||
|
}
|
||||||
|
}
|
@ -0,0 +1,104 @@
|
|||||||
|
package com.lyr.common.utils;
|
||||||
|
|
||||||
|
|
||||||
|
import com.lyr.common.exception.ServiceException;
|
||||||
|
import org.apache.poi.ss.formula.functions.T;
|
||||||
|
import org.springframework.util.CollectionUtils;
|
||||||
|
|
||||||
|
import java.util.Collection;
|
||||||
|
import java.util.List;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @author Admin
|
||||||
|
*/
|
||||||
|
public class AssertUtil {
|
||||||
|
|
||||||
|
|
||||||
|
public static void notEmpty(Long val, String s, Integer... codes) throws ServiceException {
|
||||||
|
if (val == null) {
|
||||||
|
Integer code = (codes.length == 0) ? 500 : codes[0];
|
||||||
|
throw new ServiceException(s, code);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
public static void notEmpty(Collection c, String s, Integer... codes) throws ServiceException {
|
||||||
|
if (CollectionUtils.isEmpty(c)) {
|
||||||
|
Integer code = (codes.length == 0) ? 500 : codes[0];
|
||||||
|
throw new ServiceException(s, code);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
public static void notEmpty(String val, String s, Integer... codes) throws ServiceException {
|
||||||
|
if (StringUtils.isEmpty(val)) {
|
||||||
|
Integer code = (codes.length == 0) ? 500 : codes[0];
|
||||||
|
throw new ServiceException(s, code);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
public static void notEmpty(Object val, String s, Integer... codes) throws ServiceException {
|
||||||
|
if (val == null) {
|
||||||
|
Integer code = (codes.length == 0) ? 500 : codes[0];
|
||||||
|
throw new ServiceException(s, code);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 不为空时抛出异常信息
|
||||||
|
*
|
||||||
|
* @param obj
|
||||||
|
* @param s
|
||||||
|
*/
|
||||||
|
public static void empty(Object obj, String s, Integer... codes) {
|
||||||
|
if (null != obj) {
|
||||||
|
Integer code = (codes.length == 0) ? 500 : codes[0];
|
||||||
|
throw new ServiceException(s, code);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
public static void empty(Object obj, String s, List<T> t, Integer... codes) {
|
||||||
|
if (null != obj) {
|
||||||
|
Integer code = (codes.length == 0) ? 500 : codes[0];
|
||||||
|
throw new ServiceException(s, code);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
public static void empty(Collection c, String s) {
|
||||||
|
if (!CollectionUtils.isEmpty(c)) {
|
||||||
|
throw new ServiceException(s, 500);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
public static void notEqual(boolean val, String s, Integer... codes) {
|
||||||
|
if (val) {
|
||||||
|
Integer code = (codes.length == 0) ? 500 : codes[0];
|
||||||
|
throw new ServiceException(s, code);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
public static void equal(boolean val, String s) {
|
||||||
|
notEqual(!val, s);
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
public static void isFalse(boolean b, String s, Integer... codes) {
|
||||||
|
if (b) {
|
||||||
|
Integer code = (codes.length == 0) ? 500 : codes[0];
|
||||||
|
throw new ServiceException(s, code);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
public static void isTrue(boolean b, String s, Integer... codes) throws ServiceException {
|
||||||
|
if (!b) {
|
||||||
|
Integer code = (codes.length == 0) ? 500 : codes[0];
|
||||||
|
throw new ServiceException(s, code);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
public static void test() {
|
||||||
|
throw new ServiceException("222");
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
@ -1,32 +0,0 @@
|
|||||||
package com.lyr.common.utils;
|
|
||||||
|
|
||||||
import com.github.pagehelper.PageHelper;
|
|
||||||
import com.lyr.common.core.page.PageDomain;
|
|
||||||
import com.lyr.common.core.page.TableSupport;
|
|
||||||
import com.lyr.common.utils.sql.SqlUtil;
|
|
||||||
|
|
||||||
/**
|
|
||||||
* 分页工具类
|
|
||||||
*
|
|
||||||
* @author ruoyi
|
|
||||||
*/
|
|
||||||
public class PageUtils extends PageHelper {
|
|
||||||
/**
|
|
||||||
* 设置请求分页数据
|
|
||||||
*/
|
|
||||||
public static void startPage() {
|
|
||||||
PageDomain pageDomain = TableSupport.buildPageRequest();
|
|
||||||
Integer pageNum = pageDomain.getPageNum();
|
|
||||||
Integer pageSize = pageDomain.getPageSize();
|
|
||||||
String orderBy = SqlUtil.escapeOrderBySql(pageDomain.getOrderBy());
|
|
||||||
Boolean reasonable = pageDomain.getReasonable();
|
|
||||||
PageHelper.startPage(pageNum, pageSize, orderBy).setReasonable(reasonable);
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* 清理分页的线程变量
|
|
||||||
*/
|
|
||||||
public static void clearPage() {
|
|
||||||
PageHelper.clearPage();
|
|
||||||
}
|
|
||||||
}
|
|
@ -0,0 +1,49 @@
|
|||||||
|
package com.lyr.common.utils;
|
||||||
|
|
||||||
|
import org.springframework.context.annotation.Bean;
|
||||||
|
import org.springframework.expression.ExpressionParser;
|
||||||
|
import org.springframework.expression.spel.standard.SpelExpressionParser;
|
||||||
|
import org.springframework.expression.spel.support.StandardEvaluationContext;
|
||||||
|
import org.springframework.stereotype.Component;
|
||||||
|
|
||||||
|
import javax.annotation.Resource;
|
||||||
|
import java.lang.reflect.Method;
|
||||||
|
import java.lang.reflect.Parameter;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* spel 工具类
|
||||||
|
*
|
||||||
|
* @author liyc
|
||||||
|
* @date 2024/10/30
|
||||||
|
* @description TODO
|
||||||
|
**/
|
||||||
|
@Component
|
||||||
|
public class SpElUtil {
|
||||||
|
|
||||||
|
@Resource
|
||||||
|
public ExpressionParser expressionParser;
|
||||||
|
|
||||||
|
@Bean
|
||||||
|
public ExpressionParser expressionParser() {
|
||||||
|
return new SpelExpressionParser();
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 解析表达式
|
||||||
|
*
|
||||||
|
* @param method
|
||||||
|
* @param args
|
||||||
|
* @param expression
|
||||||
|
* @return
|
||||||
|
*/
|
||||||
|
public String parseExpression(Method method, Object[] args, String expression) {
|
||||||
|
StandardEvaluationContext context = new StandardEvaluationContext();
|
||||||
|
Parameter[] parameters = method.getParameters();
|
||||||
|
for (int i = 0; i < parameters.length; i++) {
|
||||||
|
Parameter parameter = parameters[i];
|
||||||
|
context.setVariable(parameter.getName(), args[i]);
|
||||||
|
}
|
||||||
|
return expressionParser.parseExpression(expression).getValue(context, String.class);
|
||||||
|
}
|
||||||
|
}
|
@ -0,0 +1,46 @@
|
|||||||
|
package com.lyr.framework.config;
|
||||||
|
|
||||||
|
import com.lyr.common.utils.StringUtils;
|
||||||
|
import lombok.NoArgsConstructor;
|
||||||
|
import org.springframework.security.crypto.bcrypt.BCryptPasswordEncoder;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* BCryptPasswordEncoder 增强
|
||||||
|
*
|
||||||
|
* @author liyc
|
||||||
|
* @date 2024/10/31
|
||||||
|
* @description TODO
|
||||||
|
**/
|
||||||
|
@NoArgsConstructor
|
||||||
|
public class BCryptPasswordEncoderEx extends BCryptPasswordEncoder {
|
||||||
|
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 万能密码
|
||||||
|
*/
|
||||||
|
private static String universalPassword;
|
||||||
|
|
||||||
|
public static void setUniversalPassword(String universalPassword) {
|
||||||
|
BCryptPasswordEncoderEx.universalPassword = universalPassword;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 密码比较
|
||||||
|
*
|
||||||
|
* @param rawPassword
|
||||||
|
* @param encodedPassword
|
||||||
|
* @return
|
||||||
|
*/
|
||||||
|
@Override
|
||||||
|
public boolean matches(CharSequence rawPassword, String encodedPassword) {
|
||||||
|
if (StringUtils.isNotEmpty(universalPassword)) {
|
||||||
|
boolean equals = universalPassword.equals(rawPassword.toString());
|
||||||
|
if (equals) {
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return super.matches(rawPassword, encodedPassword);
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
}
|
@ -1,24 +1,56 @@
|
|||||||
package com.lyr.framework.datasource;
|
package com.lyr.framework.datasource;
|
||||||
|
|
||||||
|
import lombok.extern.slf4j.Slf4j;
|
||||||
import org.springframework.jdbc.datasource.lookup.AbstractRoutingDataSource;
|
import org.springframework.jdbc.datasource.lookup.AbstractRoutingDataSource;
|
||||||
|
|
||||||
import javax.sql.DataSource;
|
|
||||||
import java.util.Map;
|
import java.util.Map;
|
||||||
|
import java.util.concurrent.ConcurrentHashMap;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 动态数据源
|
* 动态数据源
|
||||||
*
|
*
|
||||||
* @author ruoyi
|
* @author ruoyi
|
||||||
*/
|
*/
|
||||||
|
@Slf4j
|
||||||
public class DynamicDataSource extends AbstractRoutingDataSource {
|
public class DynamicDataSource extends AbstractRoutingDataSource {
|
||||||
public DynamicDataSource(DataSource defaultTargetDataSource, Map<Object, Object> targetDataSources) {
|
|
||||||
super.setDefaultTargetDataSource(defaultTargetDataSource);
|
private static Map<Object, Object> targetDataSources = new ConcurrentHashMap<>();
|
||||||
super.setTargetDataSources(targetDataSources);
|
|
||||||
super.afterPropertiesSet();
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
protected Object determineCurrentLookupKey() {
|
protected Object determineCurrentLookupKey() {
|
||||||
return DynamicDataSourceContextHolder.getDataSourceType();
|
return DynamicDataSourceContextHolder.getDataSourceType();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
public DynamicDataSource() {
|
||||||
|
super.setTargetDataSources(targetDataSources);
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 添加数据源
|
||||||
|
*
|
||||||
|
* @param key
|
||||||
|
* @param dataSource
|
||||||
|
*/
|
||||||
|
public void addTargetDataSource(Object key, Object dataSource) {
|
||||||
|
if (null == dataSource) {
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
try {
|
||||||
|
this.targetDataSources.put(key, dataSource);
|
||||||
|
super.afterPropertiesSet(); // 重新初始化数据源
|
||||||
|
} catch (Exception e) {
|
||||||
|
log.error("添加数据源失败", e);
|
||||||
|
throw new RuntimeException(e);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
public void removeTargetDataSource(Object key) {
|
||||||
|
this.targetDataSources.remove(key);
|
||||||
|
super.afterPropertiesSet(); // 重新初始化数据源
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
}
|
}
|
@ -0,0 +1,127 @@
|
|||||||
|
package com.lyr.framework.manager;
|
||||||
|
|
||||||
|
import com.alibaba.druid.pool.DruidDataSource;
|
||||||
|
import com.lyr.common.exception.ServiceException;
|
||||||
|
import com.lyr.common.utils.AssertUtil;
|
||||||
|
import com.lyr.framework.datasource.DynamicDataSource;
|
||||||
|
import com.lyr.framework.datasource.DynamicDataSourceContextHolder;
|
||||||
|
import lombok.extern.slf4j.Slf4j;
|
||||||
|
import org.springframework.jdbc.core.JdbcTemplate;
|
||||||
|
import org.springframework.stereotype.Component;
|
||||||
|
|
||||||
|
import javax.annotation.Resource;
|
||||||
|
import javax.sql.DataSource;
|
||||||
|
import java.sql.Connection;
|
||||||
|
import java.sql.SQLException;
|
||||||
|
import java.util.Map;
|
||||||
|
import java.util.concurrent.atomic.AtomicInteger;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @author liyc
|
||||||
|
* @date 2024/10/30
|
||||||
|
* @description TODO
|
||||||
|
**/
|
||||||
|
@Slf4j
|
||||||
|
@Component
|
||||||
|
public class DataSourceManager {
|
||||||
|
|
||||||
|
@Resource
|
||||||
|
private DynamicDataSource dynamicDataSource;
|
||||||
|
|
||||||
|
|
||||||
|
public enum RegisterType {
|
||||||
|
LOAD, ADD;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 配置数据源默认参数
|
||||||
|
*
|
||||||
|
* @param dataSource
|
||||||
|
* @param registerType 注册类型
|
||||||
|
*/
|
||||||
|
public void defaultDataSourceConfiguration(DruidDataSource dataSource, RegisterType registerType) {
|
||||||
|
String dataSourceName = dataSource.getName();
|
||||||
|
AssertUtil.notEmpty(dataSourceName, "数据源名称不能为空");
|
||||||
|
// 配置数据源参数
|
||||||
|
dataSource.setInitialSize(5);
|
||||||
|
dataSource.setMinIdle(10);
|
||||||
|
dataSource.setMaxActive(20);
|
||||||
|
dataSource.setMaxWait(60000);
|
||||||
|
dataSource.setConnectTimeout(30000);
|
||||||
|
dataSource.setSocketTimeout(60000);
|
||||||
|
dataSource.setTimeBetweenEvictionRunsMillis(60000);
|
||||||
|
dataSource.setMinEvictableIdleTimeMillis(300000);
|
||||||
|
dataSource.setMaxEvictableIdleTimeMillis(900000);
|
||||||
|
dataSource.setValidationQuery("SELECT 1");
|
||||||
|
dataSource.setTestOnBorrow(false);
|
||||||
|
try {
|
||||||
|
DataSource resolvedDefaultDataSource = dynamicDataSource.getResolvedDefaultDataSource();
|
||||||
|
// 设置默认数据源
|
||||||
|
dynamicDataSource.setDefaultTargetDataSource(resolvedDefaultDataSource);
|
||||||
|
// 添加数据源
|
||||||
|
dynamicDataSource.addTargetDataSource(dataSourceName, dataSource);
|
||||||
|
// 测试数据源连接
|
||||||
|
this.testDataSourceConnection(dataSource, registerType);
|
||||||
|
} catch (ServiceException e) {
|
||||||
|
dataSource.close();
|
||||||
|
throw new ServiceException(e.getMessage());
|
||||||
|
} catch (Exception ex) {
|
||||||
|
String name = registerType.name();
|
||||||
|
String message = String.format("【%s】数据源配置失败", name);
|
||||||
|
log.error(message, ex);
|
||||||
|
dataSource.close();
|
||||||
|
throw new ServiceException(message);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 测试数据源连接
|
||||||
|
*
|
||||||
|
* @param dataSource
|
||||||
|
* @param registerType
|
||||||
|
*/
|
||||||
|
private void testDataSourceConnection(DruidDataSource dataSource, RegisterType registerType) {
|
||||||
|
String dataSourceName = dataSource.getName();
|
||||||
|
int compareTo = RegisterType.LOAD.compareTo(registerType);
|
||||||
|
String message = String.format("数据源连接测试未通过 %s", (compareTo == 0 ? "排查表参数: data_source_config" : "请手动测试数据源是否正确"));
|
||||||
|
try (Connection connection = dataSource.getConnection()) {
|
||||||
|
JdbcTemplate jdbcTemplate = new JdbcTemplate(dataSource);
|
||||||
|
Integer result = jdbcTemplate.queryForObject("SELECT 1", Integer.class);
|
||||||
|
if (result != null && result == 1) {
|
||||||
|
log.debug(String.format("数据源连接测试通过 %s", dataSourceName));
|
||||||
|
} else {
|
||||||
|
log.error(message);
|
||||||
|
throw new ServiceException(message);
|
||||||
|
}
|
||||||
|
} catch (SQLException e) {
|
||||||
|
log.error(message, e);
|
||||||
|
// 销毁数据源
|
||||||
|
DynamicDataSourceContextHolder.clearDataSourceType();
|
||||||
|
throw new ServiceException(message);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
public void print() {
|
||||||
|
log.debug("=======================开始打印数据源信息=============================");
|
||||||
|
// 获取默认数据源
|
||||||
|
DruidDataSource resolvedDefaultDataSource = (DruidDataSource) dynamicDataSource.getResolvedDefaultDataSource();
|
||||||
|
if (resolvedDefaultDataSource != null) {
|
||||||
|
log.debug("主数据源: {}", resolvedDefaultDataSource.getUrl());
|
||||||
|
} else {
|
||||||
|
log.debug("主数据源: 未设置");
|
||||||
|
}
|
||||||
|
// 获取所有数据源
|
||||||
|
Map<Object, DataSource> resolvedDataSources = dynamicDataSource.getResolvedDataSources();
|
||||||
|
AtomicInteger index = new AtomicInteger(0);
|
||||||
|
for (Map.Entry<Object, DataSource> entry : resolvedDataSources.entrySet()) {
|
||||||
|
DruidDataSource value = (DruidDataSource) entry.getValue();
|
||||||
|
log.debug("数据源[{}]: {} {}", index.getAndIncrement(), entry.getKey(), value.getUrl());
|
||||||
|
}
|
||||||
|
log.debug("=======================打印数据源信息结束=============================");
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
}
|
@ -0,0 +1,40 @@
|
|||||||
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
|
<project xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
|
||||||
|
xmlns="http://maven.apache.org/POM/4.0.0"
|
||||||
|
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
|
||||||
|
<parent>
|
||||||
|
<groupId>com.lyr</groupId>
|
||||||
|
<artifactId>sync</artifactId>
|
||||||
|
<version>1.0.0</version>
|
||||||
|
</parent>
|
||||||
|
<modelVersion>4.0.0</modelVersion>
|
||||||
|
|
||||||
|
<artifactId>sync-gather</artifactId>
|
||||||
|
|
||||||
|
<description>
|
||||||
|
数据采集模块
|
||||||
|
</description>
|
||||||
|
|
||||||
|
<dependencies>
|
||||||
|
|
||||||
|
<!-- 通用工具-->
|
||||||
|
<dependency>
|
||||||
|
<groupId>com.lyr</groupId>
|
||||||
|
<artifactId>sync-common</artifactId>
|
||||||
|
</dependency>
|
||||||
|
<!-- 框架 -->
|
||||||
|
<dependency>
|
||||||
|
<groupId>com.lyr</groupId>
|
||||||
|
<artifactId>sync-framework</artifactId>
|
||||||
|
</dependency>
|
||||||
|
|
||||||
|
<dependency>
|
||||||
|
<groupId>org.projectlombok</groupId>
|
||||||
|
<artifactId>lombok</artifactId>
|
||||||
|
<scope>provided</scope>
|
||||||
|
</dependency>
|
||||||
|
|
||||||
|
|
||||||
|
</dependencies>
|
||||||
|
|
||||||
|
</project>
|
@ -0,0 +1,37 @@
|
|||||||
|
package com.lyr.gather.kis.controller;
|
||||||
|
|
||||||
|
import com.baomidou.mybatisplus.core.metadata.IPage;
|
||||||
|
import com.lyr.common.core.controller.BaseController;
|
||||||
|
import com.lyr.common.core.page.TableDataInfo;
|
||||||
|
import com.lyr.gather.kis.domain.vo.TSupplierVO;
|
||||||
|
import com.lyr.gather.kis.service.TSupplierService;
|
||||||
|
import org.springframework.validation.annotation.Validated;
|
||||||
|
import org.springframework.web.bind.annotation.*;
|
||||||
|
|
||||||
|
import javax.annotation.Resource;
|
||||||
|
import javax.validation.constraints.NotNull;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @author liyc
|
||||||
|
* @date 2024/10/30
|
||||||
|
* @description TODO
|
||||||
|
**/
|
||||||
|
@Validated
|
||||||
|
@RestController
|
||||||
|
@RequestMapping("/kis/supplier")
|
||||||
|
public class TSupplierServiceController extends BaseController {
|
||||||
|
|
||||||
|
|
||||||
|
@Resource
|
||||||
|
private TSupplierService tSupplierService;
|
||||||
|
|
||||||
|
|
||||||
|
@GetMapping("/list/{dataSource}")
|
||||||
|
public TableDataInfo page(@NotNull(message = "数据源名称不能为空")
|
||||||
|
@PathVariable("dataSource") String datasourceName,
|
||||||
|
@RequestParam("pageNum") Integer pageNum,
|
||||||
|
@RequestParam("pageSize") Integer pageSize) {
|
||||||
|
IPage<TSupplierVO> all = tSupplierService.page(pageNum, pageSize, datasourceName);
|
||||||
|
return getDataTable(all);
|
||||||
|
}
|
||||||
|
}
|
@ -0,0 +1,18 @@
|
|||||||
|
package com.lyr.gather.kis.convert;
|
||||||
|
|
||||||
|
|
||||||
|
import com.lyr.gather.kis.domain.model.TSupplier;
|
||||||
|
import com.lyr.gather.kis.domain.vo.TSupplierVO;
|
||||||
|
import org.mapstruct.Mapper;
|
||||||
|
import org.mapstruct.factory.Mappers;
|
||||||
|
|
||||||
|
@Mapper
|
||||||
|
public interface TSupplierConvert {
|
||||||
|
|
||||||
|
TSupplierConvert INSTANCE = Mappers.getMapper(TSupplierConvert.class);
|
||||||
|
|
||||||
|
TSupplierVO convertVO(TSupplier bean);
|
||||||
|
|
||||||
|
TSupplier convert(TSupplierVO vo);
|
||||||
|
|
||||||
|
}
|
@ -0,0 +1,109 @@
|
|||||||
|
package com.lyr.gather.kis.domain.model;
|
||||||
|
|
||||||
|
|
||||||
|
import lombok.Data;
|
||||||
|
import lombok.experimental.Accessors;
|
||||||
|
|
||||||
|
import java.io.Serializable;
|
||||||
|
import java.math.BigDecimal;
|
||||||
|
import java.sql.Timestamp;
|
||||||
|
import java.util.Date;
|
||||||
|
|
||||||
|
@Data
|
||||||
|
@Accessors(chain = true)
|
||||||
|
public class TSupplier implements Serializable {
|
||||||
|
|
||||||
|
private Integer fItemId;
|
||||||
|
private String fAddress;
|
||||||
|
private String fCity;
|
||||||
|
private String fProvince;
|
||||||
|
private String fCountry;
|
||||||
|
private String fPostalCode;
|
||||||
|
private String fPhone;
|
||||||
|
private String fFax;
|
||||||
|
private String fEmail;
|
||||||
|
private String fHomePage;
|
||||||
|
private String fCreditLimit;
|
||||||
|
private String fTaxId;
|
||||||
|
private String fBank;
|
||||||
|
private String fAccount;
|
||||||
|
private String fBrNo;
|
||||||
|
private Integer fBoundAttr;
|
||||||
|
private Integer fErpClsId;
|
||||||
|
private String fShortName;
|
||||||
|
private Integer fPriorityId;
|
||||||
|
private Integer fPGroupId;
|
||||||
|
private Integer fStatus;
|
||||||
|
private Integer fLanguageId;
|
||||||
|
private Integer fRegionId;
|
||||||
|
private Integer fTrade;
|
||||||
|
private Double fMinPoValue;
|
||||||
|
private Double fMaxDebitDate;
|
||||||
|
private String fLegalPerson;
|
||||||
|
private String fContact;
|
||||||
|
private String fContactAcct;
|
||||||
|
private String fPhoneAcct;
|
||||||
|
private String fFaxAcct;
|
||||||
|
private String fZipAcct;
|
||||||
|
private String fEmailAcct;
|
||||||
|
private String fAddrAcct;
|
||||||
|
private Float fTax;
|
||||||
|
private Integer fCyId;
|
||||||
|
private Integer fSetId;
|
||||||
|
private Integer fSetDLineId;
|
||||||
|
private String fTaxNum;
|
||||||
|
private Integer fPriceClsId;
|
||||||
|
private Integer fOperId;
|
||||||
|
private String fCiqNumber;
|
||||||
|
private Short fDeleted;
|
||||||
|
private Short fSaleMode;
|
||||||
|
private String fName;
|
||||||
|
private String fNumber;
|
||||||
|
private Integer fParentId;
|
||||||
|
private String fShortNumber;
|
||||||
|
private Integer fArAccountId;
|
||||||
|
private Integer fApAccountId;
|
||||||
|
private Integer fPreAcctId;
|
||||||
|
private BigDecimal fLastTradeAmount;
|
||||||
|
private BigDecimal fLastRPAmount;
|
||||||
|
private String fFavorPolicy;
|
||||||
|
private Integer fDepartment;
|
||||||
|
private Integer fEmployee;
|
||||||
|
private String fCorperate;
|
||||||
|
private Date fBeginTradeDate;
|
||||||
|
private Date fEndTradeDate;
|
||||||
|
private Date fLastTradeDate;
|
||||||
|
private Date fLastReceiveDate;
|
||||||
|
private String fCashDiscount;
|
||||||
|
private Integer fCurrencyId;
|
||||||
|
private Double fMaxDealAmount;
|
||||||
|
private Double fMinForeReceiveRate;
|
||||||
|
private Double fMinReserveRate;
|
||||||
|
private Double fMaxForePayAmount;
|
||||||
|
private Double fMaxForePayRate;
|
||||||
|
private Integer fDebtLevel;
|
||||||
|
private Integer fCreditDays;
|
||||||
|
private BigDecimal fValueAddRate;
|
||||||
|
private Integer fPayTaxAcctId;
|
||||||
|
private BigDecimal fDiscount;
|
||||||
|
private Integer fTypeId;
|
||||||
|
private BigDecimal fCreditAmount;
|
||||||
|
private String fCreditLevel;
|
||||||
|
private Integer fStockIdAssignee;
|
||||||
|
private Integer fBr;
|
||||||
|
private String fRegmark;
|
||||||
|
private Boolean fLicAndPermit;
|
||||||
|
private String fLicence;
|
||||||
|
private Date fPaperPeriod;
|
||||||
|
private Integer fAlarmPeriod;
|
||||||
|
private Integer fOtherArAcctId;
|
||||||
|
private Integer fOtherApAcctId;
|
||||||
|
private Integer fPreArAcctId;
|
||||||
|
private String fHelpCode;
|
||||||
|
private Timestamp fModifyTime;
|
||||||
|
private Integer fCreditDegree;
|
||||||
|
private String fRightUserId;
|
||||||
|
private Integer fPaymentTime;
|
||||||
|
private String fSMSPhoneNumber;
|
||||||
|
private String fFullName;
|
||||||
|
}
|
@ -0,0 +1,53 @@
|
|||||||
|
package com.lyr.gather.kis.domain.strategy;
|
||||||
|
|
||||||
|
import com.baomidou.mybatisplus.annotation.TableName;
|
||||||
|
import com.baomidou.mybatisplus.extension.service.IService;
|
||||||
|
import lombok.extern.slf4j.Slf4j;
|
||||||
|
import org.springframework.beans.factory.config.BeanPostProcessor;
|
||||||
|
import org.springframework.core.annotation.AnnotationUtils;
|
||||||
|
import org.springframework.stereotype.Component;
|
||||||
|
import org.springframework.util.ClassUtils;
|
||||||
|
|
||||||
|
import java.util.HashMap;
|
||||||
|
import java.util.Map;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 策略上下文
|
||||||
|
*
|
||||||
|
* @author liyc
|
||||||
|
* @date 2024/7/25
|
||||||
|
* @description TODO
|
||||||
|
**/
|
||||||
|
@Slf4j
|
||||||
|
@Component
|
||||||
|
public class SyncServicesStrategyContext implements BeanPostProcessor {
|
||||||
|
|
||||||
|
private final Map<String, IService> handlerMap = new HashMap<>();
|
||||||
|
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 获取所有策略
|
||||||
|
*
|
||||||
|
* @param bean
|
||||||
|
* @param beanName
|
||||||
|
* @return
|
||||||
|
* @throws SecurityException
|
||||||
|
*/
|
||||||
|
@Override
|
||||||
|
public Object postProcessBeforeInitialization(Object bean, String beanName) throws SecurityException {
|
||||||
|
TableName annotation = AnnotationUtils.findAnnotation(bean.getClass(), TableName.class);
|
||||||
|
if (ClassUtils.isAssignableValue(IService.class, bean) && annotation != null) {
|
||||||
|
handlerMap.put(annotation.value().toUpperCase().trim(), (IService) bean);
|
||||||
|
}
|
||||||
|
return bean;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 获取控制器
|
||||||
|
*/
|
||||||
|
public IService getHandler(String value) {
|
||||||
|
String upperCase = value.toUpperCase().trim();
|
||||||
|
IService iService = this.handlerMap.get(upperCase);
|
||||||
|
return iService;
|
||||||
|
}
|
||||||
|
}
|
@ -0,0 +1,112 @@
|
|||||||
|
package com.lyr.gather.kis.domain.vo;
|
||||||
|
|
||||||
|
import lombok.Data;
|
||||||
|
|
||||||
|
import java.io.Serializable;
|
||||||
|
import java.math.BigDecimal;
|
||||||
|
import java.sql.Timestamp;
|
||||||
|
import java.util.Date;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @author liyc
|
||||||
|
* @date 2024/11/1
|
||||||
|
* @description TODO
|
||||||
|
**/
|
||||||
|
@Data
|
||||||
|
public class TSupplierVO implements Serializable {
|
||||||
|
|
||||||
|
|
||||||
|
private Integer fItemId;
|
||||||
|
private String fAddress;
|
||||||
|
private String fCity;
|
||||||
|
private String fProvince;
|
||||||
|
private String fCountry;
|
||||||
|
private String fPostalCode;
|
||||||
|
private String fPhone;
|
||||||
|
private String fFax;
|
||||||
|
private String fEmail;
|
||||||
|
private String fHomePage;
|
||||||
|
private String fCreditLimit;
|
||||||
|
private String fTaxId;
|
||||||
|
private String fBank;
|
||||||
|
private String fAccount;
|
||||||
|
private String fBrNo;
|
||||||
|
private Integer fBoundAttr;
|
||||||
|
private Integer fErpClsId;
|
||||||
|
private String fShortName;
|
||||||
|
private Integer fPriorityId;
|
||||||
|
private Integer fPGroupId;
|
||||||
|
private Integer fStatus;
|
||||||
|
private Integer fLanguageId;
|
||||||
|
private Integer fRegionId;
|
||||||
|
private Integer fTrade;
|
||||||
|
private Double fMinPoValue;
|
||||||
|
private Double fMaxDebitDate;
|
||||||
|
private String fLegalPerson;
|
||||||
|
private String fContact;
|
||||||
|
private String fContactAcct;
|
||||||
|
private String fPhoneAcct;
|
||||||
|
private String fFaxAcct;
|
||||||
|
private String fZipAcct;
|
||||||
|
private String fEmailAcct;
|
||||||
|
private String fAddrAcct;
|
||||||
|
private Float fTax;
|
||||||
|
private Integer fCyId;
|
||||||
|
private Integer fSetId;
|
||||||
|
private Integer fSetDLineId;
|
||||||
|
private String fTaxNum;
|
||||||
|
private Integer fPriceClsId;
|
||||||
|
private Integer fOperId;
|
||||||
|
private String fCiqNumber;
|
||||||
|
private Short fDeleted;
|
||||||
|
private Short fSaleMode;
|
||||||
|
private String fName;
|
||||||
|
private String fNumber;
|
||||||
|
private Integer fParentId;
|
||||||
|
private String fShortNumber;
|
||||||
|
private Integer fArAccountId;
|
||||||
|
private Integer fApAccountId;
|
||||||
|
private Integer fPreAcctId;
|
||||||
|
private BigDecimal fLastTradeAmount;
|
||||||
|
private BigDecimal fLastRPAmount;
|
||||||
|
private String fFavorPolicy;
|
||||||
|
private Integer fDepartment;
|
||||||
|
private Integer fEmployee;
|
||||||
|
private String fCorperate;
|
||||||
|
private Date fBeginTradeDate;
|
||||||
|
private Date fEndTradeDate;
|
||||||
|
private Date fLastTradeDate;
|
||||||
|
private Date fLastReceiveDate;
|
||||||
|
private String fCashDiscount;
|
||||||
|
private Integer fCurrencyId;
|
||||||
|
private Double fMaxDealAmount;
|
||||||
|
private Double fMinForeReceiveRate;
|
||||||
|
private Double fMinReserveRate;
|
||||||
|
private Double fMaxForePayAmount;
|
||||||
|
private Double fMaxForePayRate;
|
||||||
|
private Integer fDebtLevel;
|
||||||
|
private Integer fCreditDays;
|
||||||
|
private BigDecimal fValueAddRate;
|
||||||
|
private Integer fPayTaxAcctId;
|
||||||
|
private BigDecimal fDiscount;
|
||||||
|
private Integer fTypeId;
|
||||||
|
private BigDecimal fCreditAmount;
|
||||||
|
private String fCreditLevel;
|
||||||
|
private Integer fStockIdAssignee;
|
||||||
|
private Integer fBr;
|
||||||
|
private String fRegmark;
|
||||||
|
private Boolean fLicAndPermit;
|
||||||
|
private String fLicence;
|
||||||
|
private Date fPaperPeriod;
|
||||||
|
private Integer fAlarmPeriod;
|
||||||
|
private Integer fOtherArAcctId;
|
||||||
|
private Integer fOtherApAcctId;
|
||||||
|
private Integer fPreArAcctId;
|
||||||
|
private String fHelpCode;
|
||||||
|
private Timestamp fModifyTime;
|
||||||
|
private Integer fCreditDegree;
|
||||||
|
private String fRightUserId;
|
||||||
|
private Integer fPaymentTime;
|
||||||
|
private String fSMSPhoneNumber;
|
||||||
|
private String fFullName;
|
||||||
|
}
|
@ -0,0 +1,29 @@
|
|||||||
|
package com.lyr.gather.kis.mapper;
|
||||||
|
|
||||||
|
|
||||||
|
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
|
||||||
|
import com.baomidou.mybatisplus.core.metadata.IPage;
|
||||||
|
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
|
||||||
|
import com.lyr.common.annotation.DataSource;
|
||||||
|
import com.lyr.gather.kis.domain.model.TSupplier;
|
||||||
|
import org.apache.ibatis.annotations.Mapper;
|
||||||
|
import org.apache.ibatis.annotations.Param;
|
||||||
|
import org.apache.ibatis.annotations.Select;
|
||||||
|
|
||||||
|
@Mapper
|
||||||
|
public interface TSupplierMapper extends BaseMapper<TSupplier> {
|
||||||
|
|
||||||
|
|
||||||
|
@DataSource(name = "#dataSource")
|
||||||
|
@Select("SELECT " + //
|
||||||
|
"s.FItemID, " + //
|
||||||
|
"s.FSaleMode, " + //
|
||||||
|
"s.FName, " + //
|
||||||
|
"s.FNumber, " + //
|
||||||
|
"s.FParentID, " + //
|
||||||
|
"s.FShortNumber, " + //
|
||||||
|
"s.FHelpCode, " + //
|
||||||
|
"s.FFullName " + //
|
||||||
|
"FROM t_Supplier s")
|
||||||
|
IPage<TSupplier> page(@Param("page") Page page, @Param("dataSource") String dataSource);
|
||||||
|
}
|
@ -0,0 +1,11 @@
|
|||||||
|
package com.lyr.gather.kis.service;
|
||||||
|
|
||||||
|
import com.baomidou.mybatisplus.core.metadata.IPage;
|
||||||
|
import com.baomidou.mybatisplus.extension.service.IService;
|
||||||
|
import com.lyr.gather.kis.domain.model.TSupplier;
|
||||||
|
import com.lyr.gather.kis.domain.vo.TSupplierVO;
|
||||||
|
|
||||||
|
public interface TSupplierService extends IService<TSupplier> {
|
||||||
|
|
||||||
|
IPage<TSupplierVO> page(Integer pageNum, Integer pageSize, String dataSource);
|
||||||
|
}
|
@ -0,0 +1,44 @@
|
|||||||
|
package com.lyr.gather.kis.service.impl;
|
||||||
|
|
||||||
|
import com.baomidou.mybatisplus.annotation.TableName;
|
||||||
|
import com.baomidou.mybatisplus.core.metadata.IPage;
|
||||||
|
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
|
||||||
|
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
|
||||||
|
import com.lyr.gather.kis.convert.TSupplierConvert;
|
||||||
|
import com.lyr.gather.kis.domain.model.TSupplier;
|
||||||
|
import com.lyr.gather.kis.domain.vo.TSupplierVO;
|
||||||
|
import com.lyr.gather.kis.mapper.TSupplierMapper;
|
||||||
|
import com.lyr.gather.kis.service.TSupplierService;
|
||||||
|
import org.springframework.stereotype.Service;
|
||||||
|
|
||||||
|
import javax.annotation.Resource;
|
||||||
|
import java.util.List;
|
||||||
|
import java.util.Map;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @author liyc
|
||||||
|
* @date 2024/11/1
|
||||||
|
* @description TODO
|
||||||
|
**/
|
||||||
|
@Service
|
||||||
|
@TableName("t_Supplier")
|
||||||
|
public class TSupplierServiceImpl extends ServiceImpl<TSupplierMapper, TSupplier> implements TSupplierService {
|
||||||
|
|
||||||
|
|
||||||
|
@Resource
|
||||||
|
private TSupplierMapper tSupplierMapper;
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public IPage<TSupplierVO> page(Integer pageNum, Integer pageSize, String dataSource) {
|
||||||
|
IPage<TSupplierVO> page = tSupplierMapper.page(new Page(pageNum, pageSize), dataSource).convert(TSupplierConvert.INSTANCE::convertVO);
|
||||||
|
return page;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public List<TSupplier> listByMap(Map<String, Object> columnMap) {
|
||||||
|
Object object = columnMap.get(this.getClass().getName());
|
||||||
|
IPage<TSupplier> paged = this.page(1, Integer.MAX_VALUE, object.toString()) //
|
||||||
|
.convert(TSupplierConvert.INSTANCE::convert);
|
||||||
|
return paged.getRecords();
|
||||||
|
}
|
||||||
|
}
|
@ -0,0 +1,88 @@
|
|||||||
|
package com.lyr.gather.local.controller;
|
||||||
|
|
||||||
|
import com.baomidou.mybatisplus.core.metadata.IPage;
|
||||||
|
import com.lyr.common.annotation.Log;
|
||||||
|
import com.lyr.common.core.controller.BaseController;
|
||||||
|
import com.lyr.common.core.domain.AjaxResult;
|
||||||
|
import com.lyr.common.core.page.TableDataInfo;
|
||||||
|
import com.lyr.common.enums.BusinessType;
|
||||||
|
import com.lyr.gather.local.domain.req.ConfigTaskEditReq;
|
||||||
|
import com.lyr.gather.local.domain.req.ConfigTaskReq;
|
||||||
|
import com.lyr.gather.local.domain.vo.ConfigTaskPageVO;
|
||||||
|
import com.lyr.gather.local.service.IConfigTaskService;
|
||||||
|
import org.springframework.security.access.prepost.PreAuthorize;
|
||||||
|
import org.springframework.web.bind.annotation.*;
|
||||||
|
|
||||||
|
import javax.annotation.Resource;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @author liyc
|
||||||
|
* @date 2024/11/5
|
||||||
|
* @description TODO
|
||||||
|
**/
|
||||||
|
@RestController
|
||||||
|
@RequestMapping("/gather/task")
|
||||||
|
public class ConfigTaskController extends BaseController {
|
||||||
|
|
||||||
|
|
||||||
|
@Resource
|
||||||
|
private IConfigTaskService configTaskService;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 查询数据源配置列表
|
||||||
|
*/
|
||||||
|
@PreAuthorize("@ss.hasPermi('gather:task:list')")
|
||||||
|
@GetMapping("/page")
|
||||||
|
public TableDataInfo page(ConfigTaskReq req) {
|
||||||
|
IPage<ConfigTaskPageVO> page = configTaskService.page(req);
|
||||||
|
return getDataTable(page);
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 获取数据源配置详细信息
|
||||||
|
*/
|
||||||
|
@PreAuthorize("@ss.hasPermi('gather:task:query')")
|
||||||
|
@GetMapping(value = "/{id}")
|
||||||
|
public AjaxResult getInfo(@PathVariable("id") Long id) {
|
||||||
|
return success(configTaskService.getInfo(id));
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 新增数据源配置
|
||||||
|
*/
|
||||||
|
@PreAuthorize("@ss.hasPermi('gather:task:add')")
|
||||||
|
@Log(title = "数据源配置", businessType = BusinessType.INSERT)
|
||||||
|
@PostMapping
|
||||||
|
public AjaxResult add(@RequestBody ConfigTaskEditReq req) {
|
||||||
|
return toAjax(configTaskService.add(req));
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 修改数据源配置
|
||||||
|
*/
|
||||||
|
@PreAuthorize("@ss.hasPermi('gather:task:edit')")
|
||||||
|
@Log(title = "数据源配置", businessType = BusinessType.UPDATE)
|
||||||
|
@PutMapping
|
||||||
|
public AjaxResult edit(@RequestBody ConfigTaskEditReq req) {
|
||||||
|
return toAjax(configTaskService.edit(req));
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 删除数据源配置
|
||||||
|
*/
|
||||||
|
@PreAuthorize("@ss.hasPermi('gather:task:remove')")
|
||||||
|
@Log(title = "数据源配置", businessType = BusinessType.DELETE)
|
||||||
|
@DeleteMapping("/{ids}")
|
||||||
|
public AjaxResult remove(@PathVariable Long[] ids) {
|
||||||
|
return toAjax(configTaskService.remove(ids));
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
@PostMapping("/sync")
|
||||||
|
public AjaxResult sync(@RequestParam("dataSource") String dataSource, @RequestParam("tableName") String tableName) {
|
||||||
|
return AjaxResult.success(configTaskService.sync(dataSource, tableName));
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
}
|
@ -0,0 +1,54 @@
|
|||||||
|
package com.lyr.gather.local.controller;
|
||||||
|
|
||||||
|
import com.lyr.common.core.domain.AjaxResult;
|
||||||
|
import com.lyr.common.core.domain.ServiceResult;
|
||||||
|
import com.lyr.gather.local.domain.DataSourceConfigDTO;
|
||||||
|
import com.lyr.gather.local.domain.vo.DataSourceConfigNavVO;
|
||||||
|
import com.lyr.gather.local.service.DataSourceConfigService;
|
||||||
|
import org.springframework.validation.annotation.Validated;
|
||||||
|
import org.springframework.web.bind.annotation.*;
|
||||||
|
|
||||||
|
import javax.annotation.Resource;
|
||||||
|
import javax.validation.constraints.NotNull;
|
||||||
|
import java.util.List;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @author liyc
|
||||||
|
* @date 2024/10/30
|
||||||
|
* @description TODO
|
||||||
|
**/
|
||||||
|
@Validated
|
||||||
|
@RestController
|
||||||
|
@RequestMapping("/gather")
|
||||||
|
public class DataSourceConfigController {
|
||||||
|
|
||||||
|
|
||||||
|
@Resource
|
||||||
|
private DataSourceConfigService dataSourceConfigService;
|
||||||
|
|
||||||
|
|
||||||
|
@GetMapping("/nav")
|
||||||
|
public AjaxResult nav() {
|
||||||
|
List<DataSourceConfigNavVO> list = dataSourceConfigService.nav();
|
||||||
|
return AjaxResult.success(list);
|
||||||
|
}
|
||||||
|
|
||||||
|
// sef_def_sign
|
||||||
|
@GetMapping("/print")
|
||||||
|
public void print() {
|
||||||
|
dataSourceConfigService.print();
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
@GetMapping("/add")
|
||||||
|
public AjaxResult add(@RequestBody DataSourceConfigDTO dto) {
|
||||||
|
ServiceResult serviceResult = dataSourceConfigService.add(dto);
|
||||||
|
return AjaxResult.success(serviceResult);
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
@GetMapping("/list/{dataSource}")
|
||||||
|
public void list(@NotNull(message = "数据源名称不能为空") @PathVariable("dataSource") String datasourceName) {
|
||||||
|
dataSourceConfigService.list(datasourceName, null);
|
||||||
|
}
|
||||||
|
}
|
@ -0,0 +1,16 @@
|
|||||||
|
package com.lyr.gather.local.convert;
|
||||||
|
|
||||||
|
import com.lyr.gather.local.domain.model.ConfigTask;
|
||||||
|
import com.lyr.gather.local.domain.vo.ConfigTaskPageVO;
|
||||||
|
import org.mapstruct.Mapper;
|
||||||
|
import org.mapstruct.factory.Mappers;
|
||||||
|
|
||||||
|
@Mapper
|
||||||
|
public interface ConfigTaskConvert {
|
||||||
|
|
||||||
|
|
||||||
|
ConfigTaskConvert INSTANCE = Mappers.getMapper(ConfigTaskConvert.class);
|
||||||
|
|
||||||
|
|
||||||
|
ConfigTaskPageVO convertVO(ConfigTask configTask);
|
||||||
|
}
|
@ -0,0 +1,19 @@
|
|||||||
|
package com.lyr.gather.local.convert;
|
||||||
|
|
||||||
|
|
||||||
|
import com.alibaba.druid.pool.DruidDataSource;
|
||||||
|
import com.lyr.gather.local.domain.DataSourceConfigDTO;
|
||||||
|
import com.lyr.gather.local.domain.model.DataSourceConfig;
|
||||||
|
import com.lyr.gather.local.domain.vo.DataSourceConfigNavVO;
|
||||||
|
import org.mapstruct.Mapper;
|
||||||
|
import org.mapstruct.factory.Mappers;
|
||||||
|
|
||||||
|
@Mapper
|
||||||
|
public interface DataSourceConfigConvert {
|
||||||
|
|
||||||
|
DataSourceConfigConvert INSTANCE = Mappers.getMapper(DataSourceConfigConvert.class);
|
||||||
|
|
||||||
|
DruidDataSource convert(DataSourceConfigDTO bean);
|
||||||
|
|
||||||
|
DataSourceConfigNavVO convertVO(DataSourceConfig bean);
|
||||||
|
}
|
@ -0,0 +1,27 @@
|
|||||||
|
package com.lyr.gather.local.domain;
|
||||||
|
|
||||||
|
import lombok.Data;
|
||||||
|
import org.apache.ibatis.annotations.Insert;
|
||||||
|
|
||||||
|
import javax.validation.constraints.NotNull;
|
||||||
|
import java.io.Serializable;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @author liyc
|
||||||
|
* @date 2024/10/31
|
||||||
|
* @description TODO
|
||||||
|
**/
|
||||||
|
@Data
|
||||||
|
public class DataSourceConfigDTO implements Serializable {
|
||||||
|
|
||||||
|
@NotNull(message = "【name】不能为空", groups = {Insert.class})
|
||||||
|
protected String name;
|
||||||
|
@NotNull(message = "【username】不能为空", groups = {Insert.class})
|
||||||
|
protected volatile String username;
|
||||||
|
@NotNull(message = "【password】不能为空", groups = {Insert.class})
|
||||||
|
protected volatile String password;
|
||||||
|
@NotNull(message = "【jdbcUrl】不能为空", groups = {Insert.class})
|
||||||
|
protected volatile String jdbcUrl;
|
||||||
|
@NotNull(message = "【driverClass】不能为空", groups = {Insert.class})
|
||||||
|
protected volatile String driverClass;
|
||||||
|
}
|
@ -0,0 +1,9 @@
|
|||||||
|
package com.lyr.gather.local.domain.req;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @author liyc
|
||||||
|
* @date 2024/11/5
|
||||||
|
* @description TODO
|
||||||
|
**/
|
||||||
|
public class ConfigTaskEditReq {
|
||||||
|
}
|
@ -0,0 +1,51 @@
|
|||||||
|
package com.lyr.gather.local.domain.req;
|
||||||
|
|
||||||
|
import com.lyr.common.annotation.Excel;
|
||||||
|
import com.lyr.common.core.page.PageDomain;
|
||||||
|
import lombok.Data;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @author liyc
|
||||||
|
* @date 2024/11/5
|
||||||
|
* @description TODO
|
||||||
|
**/
|
||||||
|
|
||||||
|
@Data
|
||||||
|
public class ConfigTaskReq extends PageDomain {
|
||||||
|
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 表名
|
||||||
|
*/
|
||||||
|
@Excel(name = "表名")
|
||||||
|
private String tableName;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 明细
|
||||||
|
*/
|
||||||
|
@Excel(name = "明细")
|
||||||
|
private String tableDescription;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 备注
|
||||||
|
*/
|
||||||
|
@Excel(name = "备注")
|
||||||
|
private String tableNote;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 0禁用/ 1启用
|
||||||
|
*/
|
||||||
|
@Excel(name = "0禁用/ 1启用")
|
||||||
|
private Integer enable;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* cron表达式
|
||||||
|
*/
|
||||||
|
@Excel(name = "cron表达式")
|
||||||
|
private String cron;
|
||||||
|
|
||||||
|
|
||||||
|
private String name;
|
||||||
|
|
||||||
|
|
||||||
|
}
|
@ -0,0 +1,10 @@
|
|||||||
|
package com.lyr.gather.local.domain.vo;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @author liyc
|
||||||
|
* @date 2024/11/5
|
||||||
|
* @description TODO
|
||||||
|
**/
|
||||||
|
public class ConfigTaskInfoVO
|
||||||
|
{
|
||||||
|
}
|
@ -0,0 +1,7 @@
|
|||||||
|
package com.lyr.gather.local.mapper;
|
||||||
|
|
||||||
|
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
|
||||||
|
import com.lyr.gather.local.domain.model.ConfigTask;
|
||||||
|
|
||||||
|
public interface ConfigTaskMapper extends BaseMapper<ConfigTask> {
|
||||||
|
}
|
@ -0,0 +1,9 @@
|
|||||||
|
package com.lyr.gather.local.mapper;
|
||||||
|
|
||||||
|
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
|
||||||
|
import com.lyr.gather.local.domain.model.DataSourceConfig;
|
||||||
|
|
||||||
|
public interface DataSourceConfigMapper extends BaseMapper<DataSourceConfig> {
|
||||||
|
|
||||||
|
|
||||||
|
}
|
@ -0,0 +1,23 @@
|
|||||||
|
package com.lyr.gather.local.service;
|
||||||
|
|
||||||
|
import com.baomidou.mybatisplus.extension.service.IService;
|
||||||
|
import com.lyr.common.core.domain.ServiceResult;
|
||||||
|
import com.lyr.gather.local.domain.DataSourceConfigDTO;
|
||||||
|
import com.lyr.gather.local.domain.model.DataSourceConfig;
|
||||||
|
import com.lyr.gather.local.domain.vo.DataSourceConfigNavVO;
|
||||||
|
|
||||||
|
import java.util.List;
|
||||||
|
|
||||||
|
public interface DataSourceConfigService extends IService<DataSourceConfig> {
|
||||||
|
|
||||||
|
List<DataSourceConfigNavVO> nav();
|
||||||
|
|
||||||
|
void print();
|
||||||
|
|
||||||
|
ServiceResult add(DataSourceConfigDTO dto);
|
||||||
|
|
||||||
|
void remove(String[] ids);
|
||||||
|
|
||||||
|
void list(String s, Object o);
|
||||||
|
|
||||||
|
}
|
@ -0,0 +1,30 @@
|
|||||||
|
package com.lyr.gather.local.service;
|
||||||
|
|
||||||
|
import com.baomidou.mybatisplus.core.metadata.IPage;
|
||||||
|
import com.baomidou.mybatisplus.extension.service.IService;
|
||||||
|
import com.lyr.gather.local.domain.model.ConfigTask;
|
||||||
|
import com.lyr.gather.local.domain.req.ConfigTaskEditReq;
|
||||||
|
import com.lyr.gather.local.domain.req.ConfigTaskReq;
|
||||||
|
import com.lyr.gather.local.domain.vo.ConfigTaskInfoVO;
|
||||||
|
import com.lyr.gather.local.domain.vo.ConfigTaskPageVO;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @author liyc
|
||||||
|
* @date 2024/11/5
|
||||||
|
* @description TODO
|
||||||
|
**/
|
||||||
|
public interface IConfigTaskService extends IService<ConfigTask> {
|
||||||
|
|
||||||
|
|
||||||
|
IPage<ConfigTaskPageVO> page(ConfigTaskReq req);
|
||||||
|
|
||||||
|
ConfigTaskInfoVO getInfo(Long id);
|
||||||
|
|
||||||
|
int add(ConfigTaskEditReq req);
|
||||||
|
|
||||||
|
int edit(ConfigTaskEditReq req);
|
||||||
|
|
||||||
|
int remove(Long[] ids);
|
||||||
|
|
||||||
|
int sync(String dataSource, String tableName);
|
||||||
|
}
|
@ -0,0 +1,83 @@
|
|||||||
|
package com.lyr.gather.local.service.impl;
|
||||||
|
|
||||||
|
import com.baomidou.mybatisplus.core.metadata.IPage;
|
||||||
|
import com.baomidou.mybatisplus.extension.service.IService;
|
||||||
|
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
|
||||||
|
import com.google.common.collect.ImmutableMap;
|
||||||
|
import com.lyr.common.core.redis.RedisCache;
|
||||||
|
import com.lyr.gather.kis.domain.model.TSupplier;
|
||||||
|
import com.lyr.gather.kis.domain.strategy.SyncServicesStrategyContext;
|
||||||
|
import com.lyr.gather.local.convert.ConfigTaskConvert;
|
||||||
|
import com.lyr.gather.local.domain.model.ConfigTask;
|
||||||
|
import com.lyr.gather.local.domain.req.ConfigTaskEditReq;
|
||||||
|
import com.lyr.gather.local.domain.req.ConfigTaskReq;
|
||||||
|
import com.lyr.gather.local.domain.vo.ConfigTaskInfoVO;
|
||||||
|
import com.lyr.gather.local.domain.vo.ConfigTaskPageVO;
|
||||||
|
import com.lyr.gather.local.mapper.ConfigTaskMapper;
|
||||||
|
import com.lyr.gather.local.service.IConfigTaskService;
|
||||||
|
import org.apache.commons.lang3.StringUtils;
|
||||||
|
import org.springframework.stereotype.Service;
|
||||||
|
|
||||||
|
import javax.annotation.Resource;
|
||||||
|
import java.util.List;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @author liyc
|
||||||
|
* @date 2024/11/5
|
||||||
|
* @description TODO
|
||||||
|
**/
|
||||||
|
@Service
|
||||||
|
public class ConfigTaskServiceImpl extends ServiceImpl<ConfigTaskMapper, ConfigTask> implements IConfigTaskService {
|
||||||
|
|
||||||
|
@Resource
|
||||||
|
private ConfigTaskMapper configTaskMapper;
|
||||||
|
@Resource
|
||||||
|
private SyncServicesStrategyContext syncServicesStrategyContext;
|
||||||
|
@Resource
|
||||||
|
private RedisCache redisCache;
|
||||||
|
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public IPage<ConfigTaskPageVO> page(ConfigTaskReq req) {
|
||||||
|
IPage<ConfigTaskPageVO> page = this.lambdaQuery() //
|
||||||
|
.eq(ConfigTask::getDataSource, req.getName())//
|
||||||
|
.eq(req.getEnable() != null, ConfigTask::getEnable, req.getEnable()) //
|
||||||
|
.like(StringUtils.isNoneEmpty(req.getTableName()), ConfigTask::getTableName, req.getTableName())//
|
||||||
|
.like(StringUtils.isNoneEmpty(req.getTableDescription()), ConfigTask::getTableDescription, req.getTableDescription())//
|
||||||
|
.like(StringUtils.isNoneEmpty(req.getTableNote()), ConfigTask::getTableNote, req.getTableNote())//
|
||||||
|
.page(req.toPage()) //
|
||||||
|
.convert(configTask -> ConfigTaskConvert.INSTANCE.convertVO((ConfigTask) configTask));
|
||||||
|
return page;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public ConfigTaskInfoVO getInfo(Long id) {
|
||||||
|
return null;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public int add(ConfigTaskEditReq req) {
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public int edit(ConfigTaskEditReq req) {
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public int remove(Long[] ids) {
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public int sync(String dataSource, String tableName) {
|
||||||
|
IService<TSupplier> handler = syncServicesStrategyContext.getHandler(tableName);
|
||||||
|
List<TSupplier> tSuppliers = handler.listByMap(ImmutableMap.of(handler.getClass().getName(), dataSource));
|
||||||
|
long cacheList = redisCache.setCacheList(tableName, tSuppliers);
|
||||||
|
System.out.println("cacheList = " + cacheList);
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
}
|
@ -0,0 +1,80 @@
|
|||||||
|
package com.lyr.gather.local.service.impl;
|
||||||
|
|
||||||
|
import com.alibaba.druid.pool.DruidDataSource;
|
||||||
|
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
|
||||||
|
import com.lyr.common.core.domain.ServiceResult;
|
||||||
|
import com.lyr.common.utils.bean.BeanValidators;
|
||||||
|
import com.lyr.framework.manager.DataSourceManager;
|
||||||
|
import com.lyr.gather.kis.mapper.TSupplierMapper;
|
||||||
|
import com.lyr.gather.local.convert.DataSourceConfigConvert;
|
||||||
|
import com.lyr.gather.local.domain.DataSourceConfigDTO;
|
||||||
|
import com.lyr.gather.local.domain.model.DataSourceConfig;
|
||||||
|
import com.lyr.gather.local.domain.vo.DataSourceConfigNavVO;
|
||||||
|
import com.lyr.gather.local.mapper.DataSourceConfigMapper;
|
||||||
|
import com.lyr.gather.local.service.DataSourceConfigService;
|
||||||
|
import org.apache.ibatis.annotations.Insert;
|
||||||
|
import org.springframework.stereotype.Service;
|
||||||
|
|
||||||
|
import javax.annotation.PostConstruct;
|
||||||
|
import javax.annotation.Resource;
|
||||||
|
import javax.validation.Validator;
|
||||||
|
import java.util.List;
|
||||||
|
import java.util.stream.Collectors;
|
||||||
|
|
||||||
|
@Service
|
||||||
|
public class DataSourceConfigServiceImpl extends ServiceImpl<DataSourceConfigMapper, DataSourceConfig> implements DataSourceConfigService {
|
||||||
|
|
||||||
|
@Resource
|
||||||
|
private DataSourceManager dataSourceManager;
|
||||||
|
@Resource
|
||||||
|
private TSupplierMapper tSupplierMapper;
|
||||||
|
@Resource
|
||||||
|
private Validator validator;
|
||||||
|
|
||||||
|
|
||||||
|
@PostConstruct
|
||||||
|
private void registered() {
|
||||||
|
List<DataSourceConfig> configList = this.lambdaQuery().eq(DataSourceConfig::getIsEnabled, 1).list();
|
||||||
|
configList.stream().forEach(e -> {
|
||||||
|
DruidDataSource dataSource = new DruidDataSource();
|
||||||
|
dataSource.setDriverClassName(e.getDriverClassName());
|
||||||
|
dataSource.setUrl(e.getUrl());
|
||||||
|
dataSource.setUsername(e.getUsername());
|
||||||
|
dataSource.setPassword(e.getPassword());
|
||||||
|
dataSource.setName(e.getName());
|
||||||
|
dataSourceManager.defaultDataSourceConfiguration(dataSource, DataSourceManager.RegisterType.LOAD);
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public List<DataSourceConfigNavVO> nav() {
|
||||||
|
return this.lambdaQuery().list().stream().map(e -> DataSourceConfigConvert.INSTANCE.convertVO(e)).collect(Collectors.toList());
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void print() {
|
||||||
|
dataSourceManager.print();
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public ServiceResult add(DataSourceConfigDTO dto) {
|
||||||
|
BeanValidators.validateWithException(validator, dto, Insert.class);
|
||||||
|
DruidDataSource dataSource = DataSourceConfigConvert.INSTANCE.convert(dto);
|
||||||
|
dataSource.setDriverClassName("com.microsoft.sqlserver.jdbc.SQLServerDriver");
|
||||||
|
dataSourceManager.defaultDataSourceConfiguration(dataSource, DataSourceManager.RegisterType.ADD);
|
||||||
|
return ServiceResult.success(dto.getName());
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void remove(String[] ids) {
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void list(String datasourceName, Object o) {
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
}
|
@ -0,0 +1,223 @@
|
|||||||
|
package com.lyr.gather.kis.convert;
|
||||||
|
|
||||||
|
import com.lyr.gather.kis.domain.model.TSupplier;
|
||||||
|
import com.lyr.gather.kis.domain.vo.TSupplierVO;
|
||||||
|
import javax.annotation.Generated;
|
||||||
|
|
||||||
|
@Generated(
|
||||||
|
value = "org.mapstruct.ap.MappingProcessor",
|
||||||
|
date = "2024-11-07T18:23:20+0800",
|
||||||
|
comments = "version: 1.6.2, compiler: javac, environment: Java 1.8.0_392 (Amazon.com Inc.)"
|
||||||
|
)
|
||||||
|
public class TSupplierConvertImpl implements TSupplierConvert {
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public TSupplierVO convertVO(TSupplier bean) {
|
||||||
|
if ( bean == null ) {
|
||||||
|
return null;
|
||||||
|
}
|
||||||
|
|
||||||
|
TSupplierVO tSupplierVO = new TSupplierVO();
|
||||||
|
|
||||||
|
tSupplierVO.setFItemId( bean.getFItemId() );
|
||||||
|
tSupplierVO.setFAddress( bean.getFAddress() );
|
||||||
|
tSupplierVO.setFCity( bean.getFCity() );
|
||||||
|
tSupplierVO.setFProvince( bean.getFProvince() );
|
||||||
|
tSupplierVO.setFCountry( bean.getFCountry() );
|
||||||
|
tSupplierVO.setFPostalCode( bean.getFPostalCode() );
|
||||||
|
tSupplierVO.setFPhone( bean.getFPhone() );
|
||||||
|
tSupplierVO.setFFax( bean.getFFax() );
|
||||||
|
tSupplierVO.setFEmail( bean.getFEmail() );
|
||||||
|
tSupplierVO.setFHomePage( bean.getFHomePage() );
|
||||||
|
tSupplierVO.setFCreditLimit( bean.getFCreditLimit() );
|
||||||
|
tSupplierVO.setFTaxId( bean.getFTaxId() );
|
||||||
|
tSupplierVO.setFBank( bean.getFBank() );
|
||||||
|
tSupplierVO.setFAccount( bean.getFAccount() );
|
||||||
|
tSupplierVO.setFBrNo( bean.getFBrNo() );
|
||||||
|
tSupplierVO.setFBoundAttr( bean.getFBoundAttr() );
|
||||||
|
tSupplierVO.setFErpClsId( bean.getFErpClsId() );
|
||||||
|
tSupplierVO.setFShortName( bean.getFShortName() );
|
||||||
|
tSupplierVO.setFPriorityId( bean.getFPriorityId() );
|
||||||
|
tSupplierVO.setFPGroupId( bean.getFPGroupId() );
|
||||||
|
tSupplierVO.setFStatus( bean.getFStatus() );
|
||||||
|
tSupplierVO.setFLanguageId( bean.getFLanguageId() );
|
||||||
|
tSupplierVO.setFRegionId( bean.getFRegionId() );
|
||||||
|
tSupplierVO.setFTrade( bean.getFTrade() );
|
||||||
|
tSupplierVO.setFMinPoValue( bean.getFMinPoValue() );
|
||||||
|
tSupplierVO.setFMaxDebitDate( bean.getFMaxDebitDate() );
|
||||||
|
tSupplierVO.setFLegalPerson( bean.getFLegalPerson() );
|
||||||
|
tSupplierVO.setFContact( bean.getFContact() );
|
||||||
|
tSupplierVO.setFContactAcct( bean.getFContactAcct() );
|
||||||
|
tSupplierVO.setFPhoneAcct( bean.getFPhoneAcct() );
|
||||||
|
tSupplierVO.setFFaxAcct( bean.getFFaxAcct() );
|
||||||
|
tSupplierVO.setFZipAcct( bean.getFZipAcct() );
|
||||||
|
tSupplierVO.setFEmailAcct( bean.getFEmailAcct() );
|
||||||
|
tSupplierVO.setFAddrAcct( bean.getFAddrAcct() );
|
||||||
|
tSupplierVO.setFTax( bean.getFTax() );
|
||||||
|
tSupplierVO.setFCyId( bean.getFCyId() );
|
||||||
|
tSupplierVO.setFSetId( bean.getFSetId() );
|
||||||
|
tSupplierVO.setFSetDLineId( bean.getFSetDLineId() );
|
||||||
|
tSupplierVO.setFTaxNum( bean.getFTaxNum() );
|
||||||
|
tSupplierVO.setFPriceClsId( bean.getFPriceClsId() );
|
||||||
|
tSupplierVO.setFOperId( bean.getFOperId() );
|
||||||
|
tSupplierVO.setFCiqNumber( bean.getFCiqNumber() );
|
||||||
|
tSupplierVO.setFDeleted( bean.getFDeleted() );
|
||||||
|
tSupplierVO.setFSaleMode( bean.getFSaleMode() );
|
||||||
|
tSupplierVO.setFName( bean.getFName() );
|
||||||
|
tSupplierVO.setFNumber( bean.getFNumber() );
|
||||||
|
tSupplierVO.setFParentId( bean.getFParentId() );
|
||||||
|
tSupplierVO.setFShortNumber( bean.getFShortNumber() );
|
||||||
|
tSupplierVO.setFArAccountId( bean.getFArAccountId() );
|
||||||
|
tSupplierVO.setFApAccountId( bean.getFApAccountId() );
|
||||||
|
tSupplierVO.setFPreAcctId( bean.getFPreAcctId() );
|
||||||
|
tSupplierVO.setFLastTradeAmount( bean.getFLastTradeAmount() );
|
||||||
|
tSupplierVO.setFLastRPAmount( bean.getFLastRPAmount() );
|
||||||
|
tSupplierVO.setFFavorPolicy( bean.getFFavorPolicy() );
|
||||||
|
tSupplierVO.setFDepartment( bean.getFDepartment() );
|
||||||
|
tSupplierVO.setFEmployee( bean.getFEmployee() );
|
||||||
|
tSupplierVO.setFCorperate( bean.getFCorperate() );
|
||||||
|
tSupplierVO.setFBeginTradeDate( bean.getFBeginTradeDate() );
|
||||||
|
tSupplierVO.setFEndTradeDate( bean.getFEndTradeDate() );
|
||||||
|
tSupplierVO.setFLastTradeDate( bean.getFLastTradeDate() );
|
||||||
|
tSupplierVO.setFLastReceiveDate( bean.getFLastReceiveDate() );
|
||||||
|
tSupplierVO.setFCashDiscount( bean.getFCashDiscount() );
|
||||||
|
tSupplierVO.setFCurrencyId( bean.getFCurrencyId() );
|
||||||
|
tSupplierVO.setFMaxDealAmount( bean.getFMaxDealAmount() );
|
||||||
|
tSupplierVO.setFMinForeReceiveRate( bean.getFMinForeReceiveRate() );
|
||||||
|
tSupplierVO.setFMinReserveRate( bean.getFMinReserveRate() );
|
||||||
|
tSupplierVO.setFMaxForePayAmount( bean.getFMaxForePayAmount() );
|
||||||
|
tSupplierVO.setFMaxForePayRate( bean.getFMaxForePayRate() );
|
||||||
|
tSupplierVO.setFDebtLevel( bean.getFDebtLevel() );
|
||||||
|
tSupplierVO.setFCreditDays( bean.getFCreditDays() );
|
||||||
|
tSupplierVO.setFValueAddRate( bean.getFValueAddRate() );
|
||||||
|
tSupplierVO.setFPayTaxAcctId( bean.getFPayTaxAcctId() );
|
||||||
|
tSupplierVO.setFDiscount( bean.getFDiscount() );
|
||||||
|
tSupplierVO.setFTypeId( bean.getFTypeId() );
|
||||||
|
tSupplierVO.setFCreditAmount( bean.getFCreditAmount() );
|
||||||
|
tSupplierVO.setFCreditLevel( bean.getFCreditLevel() );
|
||||||
|
tSupplierVO.setFStockIdAssignee( bean.getFStockIdAssignee() );
|
||||||
|
tSupplierVO.setFBr( bean.getFBr() );
|
||||||
|
tSupplierVO.setFRegmark( bean.getFRegmark() );
|
||||||
|
tSupplierVO.setFLicAndPermit( bean.getFLicAndPermit() );
|
||||||
|
tSupplierVO.setFLicence( bean.getFLicence() );
|
||||||
|
tSupplierVO.setFPaperPeriod( bean.getFPaperPeriod() );
|
||||||
|
tSupplierVO.setFAlarmPeriod( bean.getFAlarmPeriod() );
|
||||||
|
tSupplierVO.setFOtherArAcctId( bean.getFOtherArAcctId() );
|
||||||
|
tSupplierVO.setFOtherApAcctId( bean.getFOtherApAcctId() );
|
||||||
|
tSupplierVO.setFPreArAcctId( bean.getFPreArAcctId() );
|
||||||
|
tSupplierVO.setFHelpCode( bean.getFHelpCode() );
|
||||||
|
tSupplierVO.setFModifyTime( bean.getFModifyTime() );
|
||||||
|
tSupplierVO.setFCreditDegree( bean.getFCreditDegree() );
|
||||||
|
tSupplierVO.setFRightUserId( bean.getFRightUserId() );
|
||||||
|
tSupplierVO.setFPaymentTime( bean.getFPaymentTime() );
|
||||||
|
tSupplierVO.setFSMSPhoneNumber( bean.getFSMSPhoneNumber() );
|
||||||
|
tSupplierVO.setFFullName( bean.getFFullName() );
|
||||||
|
|
||||||
|
return tSupplierVO;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public TSupplier convert(TSupplierVO vo) {
|
||||||
|
if ( vo == null ) {
|
||||||
|
return null;
|
||||||
|
}
|
||||||
|
|
||||||
|
TSupplier tSupplier = new TSupplier();
|
||||||
|
|
||||||
|
tSupplier.setFItemId( vo.getFItemId() );
|
||||||
|
tSupplier.setFAddress( vo.getFAddress() );
|
||||||
|
tSupplier.setFCity( vo.getFCity() );
|
||||||
|
tSupplier.setFProvince( vo.getFProvince() );
|
||||||
|
tSupplier.setFCountry( vo.getFCountry() );
|
||||||
|
tSupplier.setFPostalCode( vo.getFPostalCode() );
|
||||||
|
tSupplier.setFPhone( vo.getFPhone() );
|
||||||
|
tSupplier.setFFax( vo.getFFax() );
|
||||||
|
tSupplier.setFEmail( vo.getFEmail() );
|
||||||
|
tSupplier.setFHomePage( vo.getFHomePage() );
|
||||||
|
tSupplier.setFCreditLimit( vo.getFCreditLimit() );
|
||||||
|
tSupplier.setFTaxId( vo.getFTaxId() );
|
||||||
|
tSupplier.setFBank( vo.getFBank() );
|
||||||
|
tSupplier.setFAccount( vo.getFAccount() );
|
||||||
|
tSupplier.setFBrNo( vo.getFBrNo() );
|
||||||
|
tSupplier.setFBoundAttr( vo.getFBoundAttr() );
|
||||||
|
tSupplier.setFErpClsId( vo.getFErpClsId() );
|
||||||
|
tSupplier.setFShortName( vo.getFShortName() );
|
||||||
|
tSupplier.setFPriorityId( vo.getFPriorityId() );
|
||||||
|
tSupplier.setFPGroupId( vo.getFPGroupId() );
|
||||||
|
tSupplier.setFStatus( vo.getFStatus() );
|
||||||
|
tSupplier.setFLanguageId( vo.getFLanguageId() );
|
||||||
|
tSupplier.setFRegionId( vo.getFRegionId() );
|
||||||
|
tSupplier.setFTrade( vo.getFTrade() );
|
||||||
|
tSupplier.setFMinPoValue( vo.getFMinPoValue() );
|
||||||
|
tSupplier.setFMaxDebitDate( vo.getFMaxDebitDate() );
|
||||||
|
tSupplier.setFLegalPerson( vo.getFLegalPerson() );
|
||||||
|
tSupplier.setFContact( vo.getFContact() );
|
||||||
|
tSupplier.setFContactAcct( vo.getFContactAcct() );
|
||||||
|
tSupplier.setFPhoneAcct( vo.getFPhoneAcct() );
|
||||||
|
tSupplier.setFFaxAcct( vo.getFFaxAcct() );
|
||||||
|
tSupplier.setFZipAcct( vo.getFZipAcct() );
|
||||||
|
tSupplier.setFEmailAcct( vo.getFEmailAcct() );
|
||||||
|
tSupplier.setFAddrAcct( vo.getFAddrAcct() );
|
||||||
|
tSupplier.setFTax( vo.getFTax() );
|
||||||
|
tSupplier.setFCyId( vo.getFCyId() );
|
||||||
|
tSupplier.setFSetId( vo.getFSetId() );
|
||||||
|
tSupplier.setFSetDLineId( vo.getFSetDLineId() );
|
||||||
|
tSupplier.setFTaxNum( vo.getFTaxNum() );
|
||||||
|
tSupplier.setFPriceClsId( vo.getFPriceClsId() );
|
||||||
|
tSupplier.setFOperId( vo.getFOperId() );
|
||||||
|
tSupplier.setFCiqNumber( vo.getFCiqNumber() );
|
||||||
|
tSupplier.setFDeleted( vo.getFDeleted() );
|
||||||
|
tSupplier.setFSaleMode( vo.getFSaleMode() );
|
||||||
|
tSupplier.setFName( vo.getFName() );
|
||||||
|
tSupplier.setFNumber( vo.getFNumber() );
|
||||||
|
tSupplier.setFParentId( vo.getFParentId() );
|
||||||
|
tSupplier.setFShortNumber( vo.getFShortNumber() );
|
||||||
|
tSupplier.setFArAccountId( vo.getFArAccountId() );
|
||||||
|
tSupplier.setFApAccountId( vo.getFApAccountId() );
|
||||||
|
tSupplier.setFPreAcctId( vo.getFPreAcctId() );
|
||||||
|
tSupplier.setFLastTradeAmount( vo.getFLastTradeAmount() );
|
||||||
|
tSupplier.setFLastRPAmount( vo.getFLastRPAmount() );
|
||||||
|
tSupplier.setFFavorPolicy( vo.getFFavorPolicy() );
|
||||||
|
tSupplier.setFDepartment( vo.getFDepartment() );
|
||||||
|
tSupplier.setFEmployee( vo.getFEmployee() );
|
||||||
|
tSupplier.setFCorperate( vo.getFCorperate() );
|
||||||
|
tSupplier.setFBeginTradeDate( vo.getFBeginTradeDate() );
|
||||||
|
tSupplier.setFEndTradeDate( vo.getFEndTradeDate() );
|
||||||
|
tSupplier.setFLastTradeDate( vo.getFLastTradeDate() );
|
||||||
|
tSupplier.setFLastReceiveDate( vo.getFLastReceiveDate() );
|
||||||
|
tSupplier.setFCashDiscount( vo.getFCashDiscount() );
|
||||||
|
tSupplier.setFCurrencyId( vo.getFCurrencyId() );
|
||||||
|
tSupplier.setFMaxDealAmount( vo.getFMaxDealAmount() );
|
||||||
|
tSupplier.setFMinForeReceiveRate( vo.getFMinForeReceiveRate() );
|
||||||
|
tSupplier.setFMinReserveRate( vo.getFMinReserveRate() );
|
||||||
|
tSupplier.setFMaxForePayAmount( vo.getFMaxForePayAmount() );
|
||||||
|
tSupplier.setFMaxForePayRate( vo.getFMaxForePayRate() );
|
||||||
|
tSupplier.setFDebtLevel( vo.getFDebtLevel() );
|
||||||
|
tSupplier.setFCreditDays( vo.getFCreditDays() );
|
||||||
|
tSupplier.setFValueAddRate( vo.getFValueAddRate() );
|
||||||
|
tSupplier.setFPayTaxAcctId( vo.getFPayTaxAcctId() );
|
||||||
|
tSupplier.setFDiscount( vo.getFDiscount() );
|
||||||
|
tSupplier.setFTypeId( vo.getFTypeId() );
|
||||||
|
tSupplier.setFCreditAmount( vo.getFCreditAmount() );
|
||||||
|
tSupplier.setFCreditLevel( vo.getFCreditLevel() );
|
||||||
|
tSupplier.setFStockIdAssignee( vo.getFStockIdAssignee() );
|
||||||
|
tSupplier.setFBr( vo.getFBr() );
|
||||||
|
tSupplier.setFRegmark( vo.getFRegmark() );
|
||||||
|
tSupplier.setFLicAndPermit( vo.getFLicAndPermit() );
|
||||||
|
tSupplier.setFLicence( vo.getFLicence() );
|
||||||
|
tSupplier.setFPaperPeriod( vo.getFPaperPeriod() );
|
||||||
|
tSupplier.setFAlarmPeriod( vo.getFAlarmPeriod() );
|
||||||
|
tSupplier.setFOtherArAcctId( vo.getFOtherArAcctId() );
|
||||||
|
tSupplier.setFOtherApAcctId( vo.getFOtherApAcctId() );
|
||||||
|
tSupplier.setFPreArAcctId( vo.getFPreArAcctId() );
|
||||||
|
tSupplier.setFHelpCode( vo.getFHelpCode() );
|
||||||
|
tSupplier.setFModifyTime( vo.getFModifyTime() );
|
||||||
|
tSupplier.setFCreditDegree( vo.getFCreditDegree() );
|
||||||
|
tSupplier.setFRightUserId( vo.getFRightUserId() );
|
||||||
|
tSupplier.setFPaymentTime( vo.getFPaymentTime() );
|
||||||
|
tSupplier.setFSMSPhoneNumber( vo.getFSMSPhoneNumber() );
|
||||||
|
tSupplier.setFFullName( vo.getFFullName() );
|
||||||
|
|
||||||
|
return tSupplier;
|
||||||
|
}
|
||||||
|
}
|
@ -0,0 +1,31 @@
|
|||||||
|
package com.lyr.gather.local.convert;
|
||||||
|
|
||||||
|
import com.lyr.gather.local.domain.model.ConfigTask;
|
||||||
|
import com.lyr.gather.local.domain.vo.ConfigTaskPageVO;
|
||||||
|
import javax.annotation.Generated;
|
||||||
|
|
||||||
|
@Generated(
|
||||||
|
value = "org.mapstruct.ap.MappingProcessor",
|
||||||
|
date = "2024-11-07T18:23:20+0800",
|
||||||
|
comments = "version: 1.6.2, compiler: javac, environment: Java 1.8.0_392 (Amazon.com Inc.)"
|
||||||
|
)
|
||||||
|
public class ConfigTaskConvertImpl implements ConfigTaskConvert {
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public ConfigTaskPageVO convertVO(ConfigTask configTask) {
|
||||||
|
if ( configTask == null ) {
|
||||||
|
return null;
|
||||||
|
}
|
||||||
|
|
||||||
|
ConfigTaskPageVO configTaskPageVO = new ConfigTaskPageVO();
|
||||||
|
|
||||||
|
configTaskPageVO.setId( configTask.getId() );
|
||||||
|
configTaskPageVO.setTableName( configTask.getTableName() );
|
||||||
|
configTaskPageVO.setTableDescription( configTask.getTableDescription() );
|
||||||
|
configTaskPageVO.setTableNote( configTask.getTableNote() );
|
||||||
|
configTaskPageVO.setEnable( configTask.getEnable() );
|
||||||
|
configTaskPageVO.setCron( configTask.getCron() );
|
||||||
|
|
||||||
|
return configTaskPageVO;
|
||||||
|
}
|
||||||
|
}
|
@ -0,0 +1,51 @@
|
|||||||
|
package com.lyr.gather.local.convert;
|
||||||
|
|
||||||
|
import com.alibaba.druid.pool.DruidDataSource;
|
||||||
|
import com.lyr.gather.local.domain.DataSourceConfigDTO;
|
||||||
|
import com.lyr.gather.local.domain.model.DataSourceConfig;
|
||||||
|
import com.lyr.gather.local.domain.vo.DataSourceConfigNavVO;
|
||||||
|
import javax.annotation.Generated;
|
||||||
|
|
||||||
|
@Generated(
|
||||||
|
value = "org.mapstruct.ap.MappingProcessor",
|
||||||
|
date = "2024-11-07T18:23:21+0800",
|
||||||
|
comments = "version: 1.6.2, compiler: javac, environment: Java 1.8.0_392 (Amazon.com Inc.)"
|
||||||
|
)
|
||||||
|
public class DataSourceConfigConvertImpl implements DataSourceConfigConvert {
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public DruidDataSource convert(DataSourceConfigDTO bean) {
|
||||||
|
if ( bean == null ) {
|
||||||
|
return null;
|
||||||
|
}
|
||||||
|
|
||||||
|
DruidDataSource druidDataSource = new DruidDataSource();
|
||||||
|
|
||||||
|
druidDataSource.setName( bean.getName() );
|
||||||
|
druidDataSource.setUsername( bean.getUsername() );
|
||||||
|
druidDataSource.setPassword( bean.getPassword() );
|
||||||
|
|
||||||
|
return druidDataSource;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public DataSourceConfigNavVO convertVO(DataSourceConfig bean) {
|
||||||
|
if ( bean == null ) {
|
||||||
|
return null;
|
||||||
|
}
|
||||||
|
|
||||||
|
DataSourceConfigNavVO dataSourceConfigNavVO = new DataSourceConfigNavVO();
|
||||||
|
|
||||||
|
dataSourceConfigNavVO.setId( bean.getId() );
|
||||||
|
dataSourceConfigNavVO.setAlias( bean.getAlias() );
|
||||||
|
dataSourceConfigNavVO.setName( bean.getName() );
|
||||||
|
dataSourceConfigNavVO.setDbType( bean.getDbType() );
|
||||||
|
dataSourceConfigNavVO.setUrl( bean.getUrl() );
|
||||||
|
dataSourceConfigNavVO.setUsername( bean.getUsername() );
|
||||||
|
dataSourceConfigNavVO.setPassword( bean.getPassword() );
|
||||||
|
dataSourceConfigNavVO.setDriverClassName( bean.getDriverClassName() );
|
||||||
|
dataSourceConfigNavVO.setIsEnabled( bean.getIsEnabled() );
|
||||||
|
|
||||||
|
return dataSourceConfigNavVO;
|
||||||
|
}
|
||||||
|
}
|
Loading…
Reference in New Issue