1. 办公基价作价
This commit is contained in:
@ -354,8 +354,8 @@ export default {
|
|||||||
return "";
|
return "";
|
||||||
},
|
},
|
||||||
/** 查询办公基价列表 */
|
/** 查询办公基价列表 */
|
||||||
getList(formName) {
|
getList() {
|
||||||
this.$refs[formName].validate(valid => {
|
this.$refs['queryForm'].validate(valid => {
|
||||||
if (valid) {
|
if (valid) {
|
||||||
this.loading = true;
|
this.loading = true;
|
||||||
list(this.queryParams).then(response => {
|
list(this.queryParams).then(response => {
|
||||||
@ -381,7 +381,7 @@ export default {
|
|||||||
/** 搜索按钮操作 */
|
/** 搜索按钮操作 */
|
||||||
handleQuery() {
|
handleQuery() {
|
||||||
this.queryParams.pageIndex = 1;
|
this.queryParams.pageIndex = 1;
|
||||||
this.getList("queryForm");
|
this.getList();
|
||||||
},
|
},
|
||||||
/** 重置按钮操作 */
|
/** 重置按钮操作 */
|
||||||
resetQuery() {
|
resetQuery() {
|
||||||
|
@ -64,6 +64,15 @@
|
|||||||
v-hasPermi="['system:user:import']"
|
v-hasPermi="['system:user:import']"
|
||||||
>导入</el-button>
|
>导入</el-button>
|
||||||
</el-col>
|
</el-col>
|
||||||
|
<el-col :span="1.5">
|
||||||
|
<el-button
|
||||||
|
type="success"
|
||||||
|
icon="el-icon-druid"
|
||||||
|
size="mini"
|
||||||
|
@click="handleImport"
|
||||||
|
v-hasPermi="['system:user:import']"
|
||||||
|
>基价变化一览</el-button>
|
||||||
|
</el-col>
|
||||||
</el-row>
|
</el-row>
|
||||||
|
|
||||||
<el-table v-loading="loading" :data="dataList">
|
<el-table v-loading="loading" :data="dataList">
|
||||||
|
@ -26,7 +26,7 @@
|
|||||||
<mybatis.spring.boot.starter.version>1.3.2</mybatis.spring.boot.starter.version>
|
<mybatis.spring.boot.starter.version>1.3.2</mybatis.spring.boot.starter.version>
|
||||||
<pagehelper.spring.boot.starter.version>1.2.5</pagehelper.spring.boot.starter.version>
|
<pagehelper.spring.boot.starter.version>1.2.5</pagehelper.spring.boot.starter.version>
|
||||||
<fastjson.version>1.2.68</fastjson.version>
|
<fastjson.version>1.2.68</fastjson.version>
|
||||||
<druid.version>1.1.14</druid.version>
|
<!-- <druid.version>1.1.14</druid.version>-->
|
||||||
<commons.io.version>2.5</commons.io.version>
|
<commons.io.version>2.5</commons.io.version>
|
||||||
<commons.fileupload.version>1.3.3</commons.fileupload.version>
|
<commons.fileupload.version>1.3.3</commons.fileupload.version>
|
||||||
<bitwalker.version>1.19</bitwalker.version>
|
<bitwalker.version>1.19</bitwalker.version>
|
||||||
@ -99,6 +99,7 @@
|
|||||||
<groupId>com.microsoft.sqlserver</groupId>
|
<groupId>com.microsoft.sqlserver</groupId>
|
||||||
<artifactId>mssql-jdbc</artifactId>
|
<artifactId>mssql-jdbc</artifactId>
|
||||||
<scope>runtime</scope>
|
<scope>runtime</scope>
|
||||||
|
<version>7.4.0.jre8</version>
|
||||||
</dependency>
|
</dependency>
|
||||||
|
|
||||||
<!-- SpringBoot集成mybatis框架 -->
|
<!-- SpringBoot集成mybatis框架 -->
|
||||||
@ -116,11 +117,11 @@
|
|||||||
</dependency>
|
</dependency>
|
||||||
|
|
||||||
<!--阿里数据库连接池 -->
|
<!--阿里数据库连接池 -->
|
||||||
<dependency>
|
<!-- <dependency>-->
|
||||||
<groupId>com.alibaba</groupId>
|
<!-- <groupId>com.alibaba</groupId>-->
|
||||||
<artifactId>druid-spring-boot-starter</artifactId>
|
<!-- <artifactId>druid-spring-boot-starter</artifactId>-->
|
||||||
<version>${druid.version}</version>
|
<!-- <version>${druid.version}</version>-->
|
||||||
</dependency>
|
<!-- </dependency>-->
|
||||||
|
|
||||||
<!--常用工具类 -->
|
<!--常用工具类 -->
|
||||||
<dependency>
|
<dependency>
|
||||||
|
@ -1,6 +1,6 @@
|
|||||||
package com.ruoyi;
|
package com.ruoyi;
|
||||||
|
|
||||||
import com.alibaba.druid.spring.boot.autoconfigure.DruidDataSourceAutoConfigure;
|
//import com.alibaba.druid.spring.boot.autoconfigure.DruidDataSourceAutoConfigure;
|
||||||
import com.github.pagehelper.autoconfigure.PageHelperAutoConfiguration;
|
import com.github.pagehelper.autoconfigure.PageHelperAutoConfiguration;
|
||||||
import org.springframework.boot.SpringApplication;
|
import org.springframework.boot.SpringApplication;
|
||||||
import org.springframework.boot.autoconfigure.SpringBootApplication;
|
import org.springframework.boot.autoconfigure.SpringBootApplication;
|
||||||
@ -11,7 +11,8 @@ import org.springframework.boot.autoconfigure.jdbc.DataSourceAutoConfiguration;
|
|||||||
*
|
*
|
||||||
* @author ruoyi
|
* @author ruoyi
|
||||||
*/
|
*/
|
||||||
@SpringBootApplication(exclude = {DataSourceAutoConfiguration.class, DruidDataSourceAutoConfigure.class,
|
@SpringBootApplication(exclude = {DataSourceAutoConfiguration.class,
|
||||||
|
// DruidDataSourceAutoConfigure.class,
|
||||||
PageHelperAutoConfiguration.class})
|
PageHelperAutoConfiguration.class})
|
||||||
public class RuoYiApplication {
|
public class RuoYiApplication {
|
||||||
public static void main(String[] args) {
|
public static void main(String[] args) {
|
||||||
|
@ -1,125 +1,125 @@
|
|||||||
package com.ruoyi.framework.config;
|
//package com.ruoyi.framework.config;
|
||||||
|
|
||||||
import java.io.IOException;
|
|
||||||
import java.util.HashMap;
|
|
||||||
import java.util.Map;
|
|
||||||
import javax.servlet.Filter;
|
|
||||||
import javax.servlet.FilterChain;
|
|
||||||
import javax.servlet.ServletException;
|
|
||||||
import javax.servlet.ServletRequest;
|
|
||||||
import javax.servlet.ServletResponse;
|
|
||||||
import javax.sql.DataSource;
|
|
||||||
import org.springframework.boot.autoconfigure.condition.ConditionalOnProperty;
|
|
||||||
import org.springframework.boot.context.properties.ConfigurationProperties;
|
|
||||||
import org.springframework.boot.web.servlet.FilterRegistrationBean;
|
|
||||||
import org.springframework.context.annotation.Bean;
|
|
||||||
import org.springframework.context.annotation.Configuration;
|
|
||||||
import org.springframework.context.annotation.Primary;
|
|
||||||
import com.alibaba.druid.pool.DruidDataSource;
|
|
||||||
import com.alibaba.druid.spring.boot.autoconfigure.DruidDataSourceBuilder;
|
|
||||||
import com.alibaba.druid.spring.boot.autoconfigure.properties.DruidStatProperties;
|
|
||||||
import com.alibaba.druid.util.Utils;
|
|
||||||
import com.ruoyi.common.utils.spring.SpringUtils;
|
|
||||||
import com.ruoyi.framework.aspectj.lang.enums.DataSourceType;
|
|
||||||
import com.ruoyi.framework.datasource.DynamicDataSource;
|
|
||||||
|
|
||||||
/**
|
|
||||||
* druid 配置多数据源
|
|
||||||
*
|
|
||||||
* @author ruoyi
|
|
||||||
*/
|
|
||||||
@Configuration
|
|
||||||
public class DruidConfig
|
|
||||||
{
|
|
||||||
// @Bean
|
|
||||||
// @ConfigurationProperties("spring.datasource.druid.master")
|
|
||||||
// public DataSource masterDataSource(DruidProperties druidProperties)
|
|
||||||
// {
|
|
||||||
// DruidDataSource dataSource = DruidDataSourceBuilder.create().build();
|
|
||||||
// return druidProperties.dataSource(dataSource);
|
|
||||||
// }
|
|
||||||
//
|
//
|
||||||
// @Bean
|
//import java.io.IOException;
|
||||||
// @ConfigurationProperties("spring.datasource.druid.slave")
|
//import java.util.HashMap;
|
||||||
// @ConditionalOnProperty(prefix = "spring.datasource.druid.slave", name = "enabled", havingValue = "true")
|
//import java.util.Map;
|
||||||
// public DataSource slaveDataSource(DruidProperties druidProperties)
|
//import javax.servlet.Filter;
|
||||||
// {
|
//import javax.servlet.FilterChain;
|
||||||
// DruidDataSource dataSource = DruidDataSourceBuilder.create().build();
|
//import javax.servlet.ServletException;
|
||||||
// return druidProperties.dataSource(dataSource);
|
//import javax.servlet.ServletRequest;
|
||||||
// }
|
//import javax.servlet.ServletResponse;
|
||||||
//
|
//import javax.sql.DataSource;
|
||||||
// @Bean(name = "dynamicDataSource")
|
//import org.springframework.boot.autoconfigure.condition.ConditionalOnProperty;
|
||||||
// @Primary
|
//import org.springframework.boot.context.properties.ConfigurationProperties;
|
||||||
// public DynamicDataSource dataSource(DataSource masterDataSource)
|
//import org.springframework.boot.web.servlet.FilterRegistrationBean;
|
||||||
// {
|
//import org.springframework.context.annotation.Bean;
|
||||||
// Map<Object, Object> targetDataSources = new HashMap<>();
|
//import org.springframework.context.annotation.Configuration;
|
||||||
// targetDataSources.put(DataSourceType.MASTER.name(), masterDataSource);
|
//import org.springframework.context.annotation.Primary;
|
||||||
// setDataSource(targetDataSources, DataSourceType.SLAVE.name(), "slaveDataSource");
|
//import com.alibaba.druid.pool.DruidDataSource;
|
||||||
// return new DynamicDataSource(masterDataSource, targetDataSources);
|
//import com.alibaba.druid.spring.boot.autoconfigure.DruidDataSourceBuilder;
|
||||||
// }
|
//import com.alibaba.druid.spring.boot.autoconfigure.properties.DruidStatProperties;
|
||||||
|
//import com.alibaba.druid.util.Utils;
|
||||||
|
//import com.ruoyi.common.utils.spring.SpringUtils;
|
||||||
|
//import com.ruoyi.framework.aspectj.lang.enums.DataSourceType;
|
||||||
|
//import com.ruoyi.framework.datasource.DynamicDataSource;
|
||||||
//
|
//
|
||||||
///**
|
///**
|
||||||
// * 设置数据源
|
// * druid 配置多数据源
|
||||||
// *
|
// *
|
||||||
// * @param targetDataSources 备选数据源集合
|
// * @author ruoyi
|
||||||
// * @param sourceName 数据源名称
|
|
||||||
// * @param beanName bean名称
|
|
||||||
// */
|
// */
|
||||||
// public void setDataSource(Map<Object, Object> targetDataSources, String sourceName, String beanName)
|
//@Configuration
|
||||||
|
//public class DruidConfig
|
||||||
//{
|
//{
|
||||||
// try
|
//// @Bean
|
||||||
|
//// @ConfigurationProperties("spring.datasource.druid.master")
|
||||||
|
//// public DataSource masterDataSource(DruidProperties druidProperties)
|
||||||
|
//// {
|
||||||
|
//// DruidDataSource dataSource = DruidDataSourceBuilder.create().build();
|
||||||
|
//// return druidProperties.dataSource(dataSource);
|
||||||
|
//// }
|
||||||
|
////
|
||||||
|
//// @Bean
|
||||||
|
//// @ConfigurationProperties("spring.datasource.druid.slave")
|
||||||
|
//// @ConditionalOnProperty(prefix = "spring.datasource.druid.slave", name = "enabled", havingValue = "true")
|
||||||
|
//// public DataSource slaveDataSource(DruidProperties druidProperties)
|
||||||
|
//// {
|
||||||
|
//// DruidDataSource dataSource = DruidDataSourceBuilder.create().build();
|
||||||
|
//// return druidProperties.dataSource(dataSource);
|
||||||
|
//// }
|
||||||
|
////
|
||||||
|
//// @Bean(name = "dynamicDataSource")
|
||||||
|
//// @Primary
|
||||||
|
//// public DynamicDataSource dataSource(DataSource masterDataSource)
|
||||||
|
//// {
|
||||||
|
//// Map<Object, Object> targetDataSources = new HashMap<>();
|
||||||
|
//// targetDataSources.put(DataSourceType.MASTER.name(), masterDataSource);
|
||||||
|
//// setDataSource(targetDataSources, DataSourceType.SLAVE.name(), "slaveDataSource");
|
||||||
|
//// return new DynamicDataSource(masterDataSource, targetDataSources);
|
||||||
|
//// }
|
||||||
|
////
|
||||||
|
//// /**
|
||||||
|
//// * 设置数据源
|
||||||
|
//// *
|
||||||
|
//// * @param targetDataSources 备选数据源集合
|
||||||
|
//// * @param sourceName 数据源名称
|
||||||
|
//// * @param beanName bean名称
|
||||||
|
//// */
|
||||||
|
//// public void setDataSource(Map<Object, Object> targetDataSources, String sourceName, String beanName)
|
||||||
|
//// {
|
||||||
|
//// try
|
||||||
|
//// {
|
||||||
|
//// DataSource dataSource = SpringUtils.getBean(beanName);
|
||||||
|
//// targetDataSources.put(sourceName, dataSource);
|
||||||
|
//// }
|
||||||
|
//// catch (Exception e)
|
||||||
|
//// {
|
||||||
|
//// }
|
||||||
|
//// }
|
||||||
|
//
|
||||||
|
// /**
|
||||||
|
// * 去除监控页面底部的广告
|
||||||
|
// */
|
||||||
|
// @SuppressWarnings({ "rawtypes", "unchecked" })
|
||||||
|
// @Bean
|
||||||
|
// @ConditionalOnProperty(name = "spring.datasource.druid.statViewServlet.enabled", havingValue = "true")
|
||||||
|
// public FilterRegistrationBean removeDruidFilterRegistrationBean(DruidStatProperties properties)
|
||||||
// {
|
// {
|
||||||
// DataSource dataSource = SpringUtils.getBean(beanName);
|
// // 获取web监控页面的参数
|
||||||
// targetDataSources.put(sourceName, dataSource);
|
// DruidStatProperties.StatViewServlet config = properties.getStatViewServlet();
|
||||||
// }
|
// // 提取common.js的配置路径
|
||||||
// catch (Exception e)
|
// String pattern = config.getUrlPattern() != null ? config.getUrlPattern() : "/druid/*";
|
||||||
|
// String commonJsPattern = pattern.replaceAll("\\*", "js/common.js");
|
||||||
|
// final String filePath = "support/http/resources/js/common.js";
|
||||||
|
// // 创建filter进行过滤
|
||||||
|
// Filter filter = new Filter()
|
||||||
|
// {
|
||||||
|
// @Override
|
||||||
|
// public void init(javax.servlet.FilterConfig filterConfig) throws ServletException
|
||||||
// {
|
// {
|
||||||
// }
|
// }
|
||||||
|
// @Override
|
||||||
|
// public void doFilter(ServletRequest request, ServletResponse response, FilterChain chain)
|
||||||
|
// throws IOException, ServletException
|
||||||
|
// {
|
||||||
|
// chain.doFilter(request, response);
|
||||||
|
// // 重置缓冲区,响应头不会被重置
|
||||||
|
// response.resetBuffer();
|
||||||
|
// // 获取common.js
|
||||||
|
// String text = Utils.readFromResource(filePath);
|
||||||
|
// // 正则替换banner, 除去底部的广告信息
|
||||||
|
// text = text.replaceAll("<a.*?banner\"></a><br/>", "");
|
||||||
|
// text = text.replaceAll("powered.*?shrek.wang</a>", "");
|
||||||
|
// response.getWriter().write(text);
|
||||||
|
// }
|
||||||
|
// @Override
|
||||||
|
// public void destroy()
|
||||||
|
// {
|
||||||
|
// }
|
||||||
|
// };
|
||||||
|
// FilterRegistrationBean registrationBean = new FilterRegistrationBean();
|
||||||
|
// registrationBean.setFilter(filter);
|
||||||
|
// registrationBean.addUrlPatterns(commonJsPattern);
|
||||||
|
// return registrationBean;
|
||||||
|
// }
|
||||||
//}
|
//}
|
||||||
|
|
||||||
/**
|
|
||||||
* 去除监控页面底部的广告
|
|
||||||
*/
|
|
||||||
@SuppressWarnings({ "rawtypes", "unchecked" })
|
|
||||||
@Bean
|
|
||||||
@ConditionalOnProperty(name = "spring.datasource.druid.statViewServlet.enabled", havingValue = "true")
|
|
||||||
public FilterRegistrationBean removeDruidFilterRegistrationBean(DruidStatProperties properties)
|
|
||||||
{
|
|
||||||
// 获取web监控页面的参数
|
|
||||||
DruidStatProperties.StatViewServlet config = properties.getStatViewServlet();
|
|
||||||
// 提取common.js的配置路径
|
|
||||||
String pattern = config.getUrlPattern() != null ? config.getUrlPattern() : "/druid/*";
|
|
||||||
String commonJsPattern = pattern.replaceAll("\\*", "js/common.js");
|
|
||||||
final String filePath = "support/http/resources/js/common.js";
|
|
||||||
// 创建filter进行过滤
|
|
||||||
Filter filter = new Filter()
|
|
||||||
{
|
|
||||||
@Override
|
|
||||||
public void init(javax.servlet.FilterConfig filterConfig) throws ServletException
|
|
||||||
{
|
|
||||||
}
|
|
||||||
@Override
|
|
||||||
public void doFilter(ServletRequest request, ServletResponse response, FilterChain chain)
|
|
||||||
throws IOException, ServletException
|
|
||||||
{
|
|
||||||
chain.doFilter(request, response);
|
|
||||||
// 重置缓冲区,响应头不会被重置
|
|
||||||
response.resetBuffer();
|
|
||||||
// 获取common.js
|
|
||||||
String text = Utils.readFromResource(filePath);
|
|
||||||
// 正则替换banner, 除去底部的广告信息
|
|
||||||
text = text.replaceAll("<a.*?banner\"></a><br/>", "");
|
|
||||||
text = text.replaceAll("powered.*?shrek.wang</a>", "");
|
|
||||||
response.getWriter().write(text);
|
|
||||||
}
|
|
||||||
@Override
|
|
||||||
public void destroy()
|
|
||||||
{
|
|
||||||
}
|
|
||||||
};
|
|
||||||
FilterRegistrationBean registrationBean = new FilterRegistrationBean();
|
|
||||||
registrationBean.setFilter(filter);
|
|
||||||
registrationBean.addUrlPatterns(commonJsPattern);
|
|
||||||
return registrationBean;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
@ -0,0 +1,131 @@
|
|||||||
|
package com.ruoyi.framework.config;
|
||||||
|
|
||||||
|
|
||||||
|
import java.io.IOException;
|
||||||
|
import java.util.HashMap;
|
||||||
|
import java.util.Map;
|
||||||
|
import javax.servlet.Filter;
|
||||||
|
import javax.servlet.FilterChain;
|
||||||
|
import javax.servlet.ServletException;
|
||||||
|
import javax.servlet.ServletRequest;
|
||||||
|
import javax.servlet.ServletResponse;
|
||||||
|
import javax.sql.DataSource;
|
||||||
|
|
||||||
|
import com.zaxxer.hikari.HikariConfig;
|
||||||
|
import com.zaxxer.hikari.HikariDataSource;
|
||||||
|
import org.springframework.boot.autoconfigure.condition.ConditionalOnProperty;
|
||||||
|
import org.springframework.boot.context.properties.ConfigurationProperties;
|
||||||
|
import org.springframework.boot.web.servlet.FilterRegistrationBean;
|
||||||
|
import org.springframework.context.annotation.Bean;
|
||||||
|
import org.springframework.context.annotation.Configuration;
|
||||||
|
import org.springframework.context.annotation.Primary;
|
||||||
|
//import com.alibaba.druid.pool.DruidDataSource;
|
||||||
|
//import com.alibaba.druid.spring.boot.autoconfigure.DruidDataSourceBuilder;
|
||||||
|
//import com.alibaba.druid.spring.boot.autoconfigure.properties.DruidStatProperties;
|
||||||
|
//import com.alibaba.druid.util.Utils;
|
||||||
|
import com.ruoyi.common.utils.spring.SpringUtils;
|
||||||
|
import com.ruoyi.framework.aspectj.lang.enums.DataSourceType;
|
||||||
|
import com.ruoyi.framework.datasource.DynamicDataSource;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* druid 配置多数据源
|
||||||
|
*
|
||||||
|
* @author ruoyi
|
||||||
|
*/
|
||||||
|
@Configuration
|
||||||
|
public class HikariCPConfig {
|
||||||
|
// @Bean
|
||||||
|
// @ConfigurationProperties("spring.datasource.druid.master")
|
||||||
|
// public DataSource masterDataSource(HikariConfig hikariConfig) {
|
||||||
|
// HikariDataSource hikariDataSource = new HikariDataSource(hikariConfig);
|
||||||
|
//
|
||||||
|
// return hikariDataSource;
|
||||||
|
//
|
||||||
|
//// DruidDataSource dataSource = DruidDataSourceBuilder.create().build();
|
||||||
|
//// return druidProperties.dataSource(dataSource);
|
||||||
|
// }
|
||||||
|
//
|
||||||
|
// @Bean
|
||||||
|
// @ConfigurationProperties("spring.datasource.druid.slave")
|
||||||
|
// @ConditionalOnProperty(prefix = "spring.datasource.druid.slave", name = "enabled", havingValue = "true")
|
||||||
|
// public DataSource slaveDataSource(DruidProperties druidProperties)
|
||||||
|
// {
|
||||||
|
// DruidDataSource dataSource = DruidDataSourceBuilder.create().build();
|
||||||
|
// return druidProperties.dataSource(dataSource);
|
||||||
|
// }
|
||||||
|
//
|
||||||
|
// @Bean(name = "dynamicDataSource")
|
||||||
|
// @Primary
|
||||||
|
// public DynamicDataSource dataSource(DataSource masterDataSource)
|
||||||
|
// {
|
||||||
|
// Map<Object, Object> targetDataSources = new HashMap<>();
|
||||||
|
// targetDataSources.put(DataSourceType.MASTER.name(), masterDataSource);
|
||||||
|
// setDataSource(targetDataSources, DataSourceType.SLAVE.name(), "slaveDataSource");
|
||||||
|
// return new DynamicDataSource(masterDataSource, targetDataSources);
|
||||||
|
// }
|
||||||
|
//
|
||||||
|
// /**
|
||||||
|
// * 设置数据源
|
||||||
|
// *
|
||||||
|
// * @param targetDataSources 备选数据源集合
|
||||||
|
// * @param sourceName 数据源名称
|
||||||
|
// * @param beanName bean名称
|
||||||
|
// */
|
||||||
|
// public void setDataSource(Map<Object, Object> targetDataSources, String sourceName, String beanName)
|
||||||
|
// {
|
||||||
|
// try
|
||||||
|
// {
|
||||||
|
// DataSource dataSource = SpringUtils.getBean(beanName);
|
||||||
|
// targetDataSources.put(sourceName, dataSource);
|
||||||
|
// }
|
||||||
|
// catch (Exception e)
|
||||||
|
// {
|
||||||
|
// }
|
||||||
|
// }
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 去除监控页面底部的广告
|
||||||
|
*/
|
||||||
|
// @SuppressWarnings({ "rawtypes", "unchecked" })
|
||||||
|
// @Bean
|
||||||
|
// @ConditionalOnProperty(name = "spring.datasource.druid.statViewServlet.enabled", havingValue = "true")
|
||||||
|
// public FilterRegistrationBean removeDruidFilterRegistrationBean(DruidStatProperties properties)
|
||||||
|
// {
|
||||||
|
// // 获取web监控页面的参数
|
||||||
|
// DruidStatProperties.StatViewServlet config = properties.getStatViewServlet();
|
||||||
|
// // 提取common.js的配置路径
|
||||||
|
// String pattern = config.getUrlPattern() != null ? config.getUrlPattern() : "/druid/*";
|
||||||
|
// String commonJsPattern = pattern.replaceAll("\\*", "js/common.js");
|
||||||
|
// final String filePath = "support/http/resources/js/common.js";
|
||||||
|
// // 创建filter进行过滤
|
||||||
|
// Filter filter = new Filter()
|
||||||
|
// {
|
||||||
|
// @Override
|
||||||
|
// public void init(javax.servlet.FilterConfig filterConfig) throws ServletException
|
||||||
|
// {
|
||||||
|
// }
|
||||||
|
// @Override
|
||||||
|
// public void doFilter(ServletRequest request, ServletResponse response, FilterChain chain)
|
||||||
|
// throws IOException, ServletException
|
||||||
|
// {
|
||||||
|
// chain.doFilter(request, response);
|
||||||
|
// // 重置缓冲区,响应头不会被重置
|
||||||
|
// response.resetBuffer();
|
||||||
|
// // 获取common.js
|
||||||
|
// String text = Utils.readFromResource(filePath);
|
||||||
|
// // 正则替换banner, 除去底部的广告信息
|
||||||
|
// text = text.replaceAll("<a.*?banner\"></a><br/>", "");
|
||||||
|
// text = text.replaceAll("powered.*?shrek.wang</a>", "");
|
||||||
|
// response.getWriter().write(text);
|
||||||
|
// }
|
||||||
|
// @Override
|
||||||
|
// public void destroy()
|
||||||
|
// {
|
||||||
|
// }
|
||||||
|
// };
|
||||||
|
// FilterRegistrationBean registrationBean = new FilterRegistrationBean();
|
||||||
|
// registrationBean.setFilter(filter);
|
||||||
|
// registrationBean.addUrlPatterns(commonJsPattern);
|
||||||
|
// return registrationBean;
|
||||||
|
// }
|
||||||
|
}
|
@ -5,7 +5,6 @@ import java.util.*;
|
|||||||
|
|
||||||
import com.ruoyi.common.exception.CustomException;
|
import com.ruoyi.common.exception.CustomException;
|
||||||
import com.ruoyi.common.utils.StringUtils;
|
import com.ruoyi.common.utils.StringUtils;
|
||||||
import com.ruoyi.common.utils.file.FileUtils;
|
|
||||||
import com.ruoyi.framework.config.UVConfig;
|
import com.ruoyi.framework.config.UVConfig;
|
||||||
import com.ruoyi.project.common.UVResponse;
|
import com.ruoyi.project.common.UVResponse;
|
||||||
import com.ruoyi.project.common.VueSelectModel;
|
import com.ruoyi.project.common.VueSelectModel;
|
||||||
@ -17,10 +16,7 @@ import com.ruoyi.project.system.service.impl.SysUserServiceImpl;
|
|||||||
import org.slf4j.Logger;
|
import org.slf4j.Logger;
|
||||||
import org.slf4j.LoggerFactory;
|
import org.slf4j.LoggerFactory;
|
||||||
import org.springframework.beans.factory.annotation.Autowired;
|
import org.springframework.beans.factory.annotation.Autowired;
|
||||||
import org.springframework.beans.factory.annotation.Value;
|
|
||||||
import org.springframework.jdbc.core.JdbcTemplate;
|
|
||||||
import org.springframework.stereotype.Service;
|
import org.springframework.stereotype.Service;
|
||||||
import org.springframework.transaction.annotation.Transactional;
|
|
||||||
import org.springframework.web.client.RestTemplate;
|
import org.springframework.web.client.RestTemplate;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
@ -1,60 +1,26 @@
|
|||||||
# 数据源配置
|
# 数据源配置
|
||||||
spring:
|
spring:
|
||||||
datasource:
|
datasource:
|
||||||
druid:
|
|
||||||
statViewServlet:
|
|
||||||
enabled: true
|
|
||||||
# 设置白名单,不填则允许所有访问
|
|
||||||
allow:
|
|
||||||
url-pattern: /druid/*
|
|
||||||
# 控制台管理用户名和密码
|
|
||||||
login-username:
|
|
||||||
login-password:
|
|
||||||
dynamic:
|
dynamic:
|
||||||
druid:
|
|
||||||
# 初始连接数
|
|
||||||
initialSize: 5
|
|
||||||
# 最小连接池数量
|
|
||||||
minIdle: 10
|
|
||||||
# 最大连接池数量
|
|
||||||
maxActive: 20
|
|
||||||
# 配置获取连接等待超时的时间
|
|
||||||
maxWait: 60000
|
|
||||||
# 配置间隔多久才进行一次检测,检测需要关闭的空闲连接,单位是毫秒
|
|
||||||
timeBetweenEvictionRunsMillis: 60000
|
|
||||||
# 配置一个连接在池中最小生存的时间,单位是毫秒
|
|
||||||
minEvictableIdleTimeMillis: 300000
|
|
||||||
# 配置一个连接在池中最大生存的时间,单位是毫秒
|
|
||||||
maxEvictableIdleTimeMillis: 900000
|
|
||||||
# 配置检测连接是否有效
|
|
||||||
validationQuery: SELECT 1
|
|
||||||
testWhileIdle: true
|
|
||||||
testOnBorrow: false
|
|
||||||
testOnReturn: false
|
|
||||||
webStatFilter:
|
|
||||||
enabled: true
|
|
||||||
filters: stat,wall
|
|
||||||
wall:
|
|
||||||
multiStatementAllow: true
|
|
||||||
stat:
|
|
||||||
log-slow-sql: true
|
|
||||||
slow-sql-millis: 1000
|
|
||||||
merge-sql: true
|
|
||||||
primary: master
|
primary: master
|
||||||
|
hikari:
|
||||||
|
connection-timeout: 30000
|
||||||
|
validation-timeout: 30000
|
||||||
|
idle-timeout: 30000
|
||||||
|
max-lifetime: 30000
|
||||||
|
max-pool-size: 30
|
||||||
|
min-idle: 10
|
||||||
|
initialization-fail-timeout: 30000
|
||||||
|
connection-init-sql: select 1
|
||||||
|
connection-test-query: select 1
|
||||||
|
is-auto-commit: true
|
||||||
|
is-read-only: false
|
||||||
datasource:
|
datasource:
|
||||||
# 主库数据源
|
|
||||||
master:
|
master:
|
||||||
driver-class-name: com.mysql.jdbc.Driver
|
driver-class-name: com.mysql.jdbc.Driver
|
||||||
url: jdbc:mysql://172.16.30.243:6060/ruoyi?useUnicode=true&characterEncoding=utf8&zeroDateTimeBehavior=convertToNull&useSSL=true&serverTimezone=GMT%2B8
|
url: jdbc:mysql://172.16.30.243:6060/ruoyi?useUnicode=true&characterEncoding=utf8&zeroDateTimeBehavior=convertToNull&useSSL=true&serverTimezone=GMT%2B8
|
||||||
username: root
|
username: root
|
||||||
password: LOLm2dI2UQF#RxOf
|
password: LOLm2dI2UQF#RxOf
|
||||||
# 从库数据源
|
|
||||||
# slave:
|
|
||||||
# # 从数据源开关/默认关闭
|
|
||||||
# enabled: false
|
|
||||||
# url:
|
|
||||||
# username:
|
|
||||||
# password:
|
|
||||||
teemlink:
|
teemlink:
|
||||||
driver-class-name: com.microsoft.sqlserver.jdbc.SQLServerDriver
|
driver-class-name: com.microsoft.sqlserver.jdbc.SQLServerDriver
|
||||||
url: jdbc:sqlserver://172.16.30.233:1433;DatabaseName=obpm_LianCheng_Data
|
url: jdbc:sqlserver://172.16.30.233:1433;DatabaseName=obpm_LianCheng_Data
|
||||||
@ -70,3 +36,73 @@ spring:
|
|||||||
url: jdbc:sqlserver://172.16.30.233:1433;DatabaseName=uv_clean
|
url: jdbc:sqlserver://172.16.30.233:1433;DatabaseName=uv_clean
|
||||||
username: sa
|
username: sa
|
||||||
password: Lcdatacenter_888
|
password: Lcdatacenter_888
|
||||||
|
|
||||||
|
# druid:
|
||||||
|
# statViewServlet:
|
||||||
|
# enabled: true
|
||||||
|
# # 设置白名单,不填则允许所有访问
|
||||||
|
# allow:
|
||||||
|
# url-pattern: /druid/*
|
||||||
|
# # 控制台管理用户名和密码
|
||||||
|
# login-username:
|
||||||
|
# login-password:
|
||||||
|
# dynamic:
|
||||||
|
# druid:
|
||||||
|
# # 初始连接数
|
||||||
|
# initialSize: 5
|
||||||
|
# # 最小连接池数量
|
||||||
|
# minIdle: 10
|
||||||
|
# # 最大连接池数量
|
||||||
|
# maxActive: 20
|
||||||
|
# # 配置获取连接等待超时的时间
|
||||||
|
# maxWait: 60000
|
||||||
|
# # 配置间隔多久才进行一次检测,检测需要关闭的空闲连接,单位是毫秒
|
||||||
|
# timeBetweenEvictionRunsMillis: 60000
|
||||||
|
# # 配置一个连接在池中最小生存的时间,单位是毫秒
|
||||||
|
# minEvictableIdleTimeMillis: 300000
|
||||||
|
# # 配置一个连接在池中最大生存的时间,单位是毫秒
|
||||||
|
# maxEvictableIdleTimeMillis: 900000
|
||||||
|
# # 配置检测连接是否有效
|
||||||
|
# validationQuery: SELECT 1
|
||||||
|
# testWhileIdle: true
|
||||||
|
# testOnBorrow: false
|
||||||
|
# testOnReturn: false
|
||||||
|
## webStatFilter:
|
||||||
|
## enabled: true
|
||||||
|
## filters: stat,wall
|
||||||
|
## wall:
|
||||||
|
## multiStatementAllow: true
|
||||||
|
# stat:
|
||||||
|
# log-slow-sql: true
|
||||||
|
# slow-sql-millis: 1000
|
||||||
|
# merge-sql: true
|
||||||
|
# primary: master
|
||||||
|
# datasource:
|
||||||
|
# # 主库数据源
|
||||||
|
# master:
|
||||||
|
# driver-class-name: com.mysql.jdbc.Driver
|
||||||
|
# url: jdbc:mysql://172.16.30.243:6060/ruoyi?useUnicode=true&characterEncoding=utf8&zeroDateTimeBehavior=convertToNull&useSSL=true&serverTimezone=GMT%2B8
|
||||||
|
# username: root
|
||||||
|
# password: LOLm2dI2UQF#RxOf
|
||||||
|
# # 从库数据源
|
||||||
|
## slave:
|
||||||
|
## # 从数据源开关/默认关闭
|
||||||
|
## enabled: false
|
||||||
|
## url:
|
||||||
|
## username:
|
||||||
|
## password:
|
||||||
|
# teemlink:
|
||||||
|
# driver-class-name: com.microsoft.sqlserver.jdbc.SQLServerDriver
|
||||||
|
# url: jdbc:sqlserver://172.16.30.233:1433;DatabaseName=obpm_LianCheng_Data
|
||||||
|
# username: sa
|
||||||
|
# password: Lcdatacenter_888
|
||||||
|
# compute:
|
||||||
|
# driver-class-name: com.microsoft.sqlserver.jdbc.SQLServerDriver
|
||||||
|
# url: jdbc:sqlserver://172.16.30.233:1433;DatabaseName=uv_compute
|
||||||
|
# username: sa
|
||||||
|
# password: Lcdatacenter_888
|
||||||
|
# clean:
|
||||||
|
# driver-class-name: com.microsoft.sqlserver.jdbc.SQLServerDriver
|
||||||
|
# url: jdbc:sqlserver://172.16.30.233:1433;DatabaseName=uv_clean
|
||||||
|
# username: sa
|
||||||
|
# password: Lcdatacenter_888
|
@ -54,36 +54,30 @@
|
|||||||
,a.Status
|
,a.Status
|
||||||
,a.BuildingStd
|
,a.BuildingStd
|
||||||
,a.AdjEvd
|
,a.AdjEvd
|
||||||
,b.AreaCoff
|
,a.AreaCoff
|
||||||
,b.YearCoff
|
,a.YearCoff
|
||||||
,b.BuildingCoff
|
,a.BuildingCoff
|
||||||
,b.ProjectName
|
,a.ProjectName
|
||||||
,b.ProjectAddr
|
,a.ProjectAddr
|
||||||
,b.BuildingAddr
|
,a.BuildingAddr
|
||||||
,b.County
|
,a.County
|
||||||
,b.Loop
|
,a.Loop
|
||||||
,b.Block
|
,a.Block
|
||||||
,b.Street
|
,a.Street
|
||||||
,b.Year
|
,a.Year
|
||||||
,b.AvgArea
|
,a.AvgArea
|
||||||
,b.TotalFloorSum
|
,a.TotalFloorSum
|
||||||
,b.UpperFloorSum
|
,a.UpperFloorSum
|
||||||
,b.OfficeClass
|
,a.OfficeClass
|
||||||
,b.Grade
|
,a.Grade
|
||||||
,c.MainPrice AS mainPrice_1
|
,a.mainPrice_1
|
||||||
,c.MainPriceRent as mainPriceRent_1
|
,a.mainPriceRent_1
|
||||||
, ${yearMonth} as yearMonth
|
, ${yearMonth} as yearMonth
|
||||||
FROM ODS_OFFICE_BUILDING_PRICE_INFO_${yearMonth} a
|
FROM ODS_OFFICE_BUILDING_PRICE_INFO_${yearMonth} a
|
||||||
left join DIM_OFFICE_PROJECT_BUILDING_201909 b on a.BuildingID_P=b.BuildingID_P
|
|
||||||
left join ODS_OFFICE_BUILDING_PRICE_INFO_${lastYearMonth} c on a.BuildingID_P = c.BuildingID_P
|
|
||||||
WHERE b.EffDate <![CDATA[ <= ]]> getdate() AND b.ExpirDate <![CDATA[ > ]]> getdate() AND c.Status=1
|
|
||||||
</sql>
|
</sql>
|
||||||
|
|
||||||
<select id="getCount" parameterType="com.ruoyi.project.data.price.domain.UltimateOfficeBasePrice" resultType="int">
|
<select id="getCount" parameterType="com.ruoyi.project.data.price.domain.UltimateOfficeBasePrice" resultType="int">
|
||||||
select count(1) FROM ODS_OFFICE_BUILDING_PRICE_INFO_${yearMonth} a
|
select count(1) FROM ODS_OFFICE_BUILDING_PRICE_INFO_${yearMonth} a
|
||||||
left join DIM_OFFICE_PROJECT_BUILDING_201909 b on a.BuildingID_P=b.BuildingID_P
|
|
||||||
left join ODS_OFFICE_BUILDING_PRICE_INFO_${lastYearMonth} c on a.BuildingID_P = c.BuildingID_P
|
|
||||||
WHERE b.EffDate <![CDATA[ <= ]]> getdate() AND b.ExpirDate <![CDATA[ > ]]> getdate() AND c.Status=1
|
|
||||||
<if test="communityId != null">
|
<if test="communityId != null">
|
||||||
AND a.PROJECTID_P = #{communityId}
|
AND a.PROJECTID_P = #{communityId}
|
||||||
</if>
|
</if>
|
||||||
@ -107,7 +101,7 @@
|
|||||||
<if test="status != null">
|
<if test="status != null">
|
||||||
AND a.STATUS = #{status}
|
AND a.STATUS = #{status}
|
||||||
</if>
|
</if>
|
||||||
order by a.ModifyDate DESC,a.BUILDINGID_P ASC OFFSET #{pageIndex} rows fetch next #{pageSize} rows only;
|
order by a.id desc OFFSET #{pageIndex} rows fetch next #{pageSize} rows only;
|
||||||
</select>
|
</select>
|
||||||
|
|
||||||
<select id="getById" resultMap="OfficeBasePriceUltimateResult">
|
<select id="getById" resultMap="OfficeBasePriceUltimateResult">
|
||||||
|
57
ruoyi/src/test/java/com/uvaluation/longtime/SqlTests.java
Normal file
57
ruoyi/src/test/java/com/uvaluation/longtime/SqlTests.java
Normal file
@ -0,0 +1,57 @@
|
|||||||
|
package com.uvaluation.longtime;
|
||||||
|
|
||||||
|
import com.baomidou.dynamic.datasource.annotation.DS;
|
||||||
|
import com.ruoyi.RuoYiApplication;
|
||||||
|
import com.ruoyi.project.data.price.domain.UltimateOfficeBasePrice;
|
||||||
|
import org.junit.Assert;
|
||||||
|
import org.junit.Test;
|
||||||
|
import org.junit.runner.RunWith;
|
||||||
|
import org.springframework.beans.factory.annotation.Autowired;
|
||||||
|
import org.springframework.boot.test.context.SpringBootTest;
|
||||||
|
import org.springframework.jdbc.core.JdbcTemplate;
|
||||||
|
import org.springframework.jdbc.core.RowMapper;
|
||||||
|
import org.springframework.test.context.junit4.SpringRunner;
|
||||||
|
|
||||||
|
import java.sql.ResultSet;
|
||||||
|
import java.sql.SQLException;
|
||||||
|
import java.util.List;
|
||||||
|
|
||||||
|
@RunWith(SpringRunner.class)
|
||||||
|
@SpringBootTest(classes = RuoYiApplication.class)
|
||||||
|
@DS("master")
|
||||||
|
public class SqlTests {
|
||||||
|
@Autowired
|
||||||
|
private JdbcTemplate jdbcTemplate;
|
||||||
|
|
||||||
|
@Test
|
||||||
|
@DS("compute")
|
||||||
|
public void testSpendTime() {
|
||||||
|
|
||||||
|
Integer coutn = jdbcTemplate.queryForObject("select count(1) from ODS_OFFICE_BUILDING_PRICE_INFO_202006 ",
|
||||||
|
Integer.class);
|
||||||
|
|
||||||
|
List<UltimateOfficeBasePrice> list = jdbcTemplate.query("SELECT a.ID ,a.BuildingID_P ,a.ProjectID_P ,a" +
|
||||||
|
".MainPrice ,a.MainPriceRent ,a" +
|
||||||
|
".MainPricePst " +
|
||||||
|
",a.MainPriceRentPst ,a.MainPriceType ,a.MainPriceRentType ,a.ModifyDate ,a.Status ,a.BuildingStd ,a" +
|
||||||
|
".AdjEvd ,b.AreaCoff ,b.YearCoff ,b.BuildingCoff ,b.ProjectName ,b.ProjectAddr ,b.BuildingAddr ,b" +
|
||||||
|
".County ,b.Loop ,b.Block ,b.Street ,b.Year ,b.AvgArea ,b.TotalFloorSum ,b.UpperFloorSum ,b" +
|
||||||
|
".OfficeClass ,b.Grade ,c.MainPrice AS mainPrice_1 ,c.MainPriceRent as mainPriceRent_1 , 202006 as " +
|
||||||
|
"yearMonth FROM ODS_OFFICE_BUILDING_PRICE_INFO_202006 a left join DIM_OFFICE_PROJECT_BUILDING_201909 " +
|
||||||
|
"b on a.BuildingID_P=b.BuildingID_P left join ODS_OFFICE_BUILDING_PRICE_INFO_202005 c on a" +
|
||||||
|
".BuildingID_P = c.BuildingID_P WHERE b.valid=1 AND c.Status=1 order by a.id desc OFFSET 18570 rows " +
|
||||||
|
" fetch next 10 rows only;", new TestTempMapper());
|
||||||
|
Assert.assertEquals(list.size(), 2);
|
||||||
|
}
|
||||||
|
|
||||||
|
class TestTempMapper implements RowMapper<UltimateOfficeBasePrice> {
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public UltimateOfficeBasePrice mapRow(ResultSet resultSet, int rowNum) throws SQLException {
|
||||||
|
UltimateOfficeBasePrice result = new UltimateOfficeBasePrice();
|
||||||
|
result.setId(resultSet.getString("id"));
|
||||||
|
result.setBuildingId(resultSet.getString("BuildingID_P"));
|
||||||
|
return result;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
Reference in New Issue
Block a user