From d8ae512ef0a379ff81c59a000d3deb599b01e6f9 Mon Sep 17 00:00:00 2001 From: zhousq Date: Thu, 30 Nov 2023 18:49:04 +0800 Subject: [PATCH] =?UTF-8?q?2023-11-30=20=E5=8D=87=E7=BA=A7=E5=8A=A8?= =?UTF-8?q?=E6=80=81=E6=95=B0=E6=8D=AE=E6=BA=90=E5=8A=A0=E8=BD=BD=EF=BC=8C?= =?UTF-8?q?=E5=88=A0=E9=99=A4=E5=86=B2=E7=AA=81=E9=85=8D=E7=BD=AE=EF=BC=8C?= =?UTF-8?q?=E9=85=8D=E7=BD=AE=E6=96=87=E4=BB=B6=E4=BF=AE=E6=94=B9=EF=BC=8C?= =?UTF-8?q?=E4=BE=9D=E8=B5=96=E6=9B=B4=E6=96=B0=EF=BC=8C=E7=BB=9F=E8=AE=A1?= =?UTF-8?q?=E5=8F=82=E6=95=B0=E8=87=AA=E5=8A=A8=E5=BD=95=E5=85=A5=E5=8D=95?= =?UTF-8?q?=E6=8D=AE=E7=94=9F=E6=88=90?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../main/java/com/lzbi/RuoYiApplication.java | 3 +- .../src/main/resources/application-dev.yml | 140 +++++------ .../src/main/resources/application-test.yml | 2 +- lzbi-admin/src/main/resources/application.yml | 15 +- lzbi-common/pom.xml | 11 +- .../framework/aspectj/DataSourceAspect.java | 6 +- .../lzbi/framework/config/DruidConfig.java | 230 +++++++++--------- .../config/properties/DruidProperties.java | 78 +++--- lzbi-module/pom.xml | 14 +- .../DcBusiWorkReadConfigController.java | 70 +++++- .../asset/domain/DcBusiWorkReadConfig.java | 2 + .../draft/domain/DcBusiParamBillSubDao.java | 54 +--- .../service/DcBusiParamBillMasterService.java | 1 + .../lzbi/task/domain/EumValueReadType.java | 7 +- .../java/com/lzbi/task/domain/WorkReadVo.java | 27 +- .../asset/DcBusiParamBillMasterMapper.xml | 16 +- .../asset/DcBusiWorkReadConfigMapper.xml | 11 +- .../mapper/asset/WorkParamReadMapper.xml | 8 +- 18 files changed, 367 insertions(+), 328 deletions(-) diff --git a/lzbi-admin/src/main/java/com/lzbi/RuoYiApplication.java b/lzbi-admin/src/main/java/com/lzbi/RuoYiApplication.java index b0285c0..9bb8545 100644 --- a/lzbi-admin/src/main/java/com/lzbi/RuoYiApplication.java +++ b/lzbi-admin/src/main/java/com/lzbi/RuoYiApplication.java @@ -1,5 +1,6 @@ package com.lzbi; +import com.alibaba.druid.spring.boot.autoconfigure.DruidDataSourceAutoConfigure; import com.github.xiaoymin.knife4j.spring.annotations.EnableKnife4j; import org.springframework.boot.SpringApplication; import org.springframework.boot.autoconfigure.SpringBootApplication; @@ -11,7 +12,7 @@ import org.springframework.boot.autoconfigure.jdbc.DataSourceAutoConfiguration; * @author ruoyi */ @EnableKnife4j -@SpringBootApplication(exclude = { DataSourceAutoConfiguration.class }) +@SpringBootApplication(exclude = { DataSourceAutoConfiguration.class, DruidDataSourceAutoConfigure.class }) public class RuoYiApplication { public static void main(String[] args) diff --git a/lzbi-admin/src/main/resources/application-dev.yml b/lzbi-admin/src/main/resources/application-dev.yml index 373a956..771505e 100644 --- a/lzbi-admin/src/main/resources/application-dev.yml +++ b/lzbi-admin/src/main/resources/application-dev.yml @@ -27,76 +27,78 @@ spring: # #连接池最大阻塞等待时间(使用负值表示没有限制) max-wait: -1ms datasource: - type: com.alibaba.druid.pool.DruidDataSource - driverClassName: com.mysql.cj.jdbc.Driver - druid: - # 主库数据源 - master: - url: jdbc:mysql://10.10.10.56:13306/lzdc_bi_db?useUnicode=true&characterEncoding=utf8&zeroDateTimeBehavior=convertToNull&useSSL=true&serverTimezone=GMT%2B8 - username: luenmei - password: 123456 - # 计费数据库 - charge: - url: jdbc:oracle:thin:@//10.10.10.60:1521/HX?CONNECT_TIMEOUT=10000&Read_Timeout=120000 - username: lmjt_sys - password: lmjt_sys - # 计费数据库 - workDB: - driverClassName: org.postgresql.Driver - type: com.alibaba.druid.pool.DruidDataSource - url: jdbc:postgresql://10.10.10.56:5432/dctestdb?useUnicode=true&characterEncoding=UTF-8&allowMultiQueries=true&serverTimezone=Asia/Shanghai - username: postgres - password: 123456 - # 从库数据源 - slave: - # 从数据源开关/默认关闭 - enabled: false - url: - username: - password: - # 初始连接数 - initialSize: 5 - # 最小连接池数量 - minIdle: 10 - # 最大连接池数量 - maxActive: 20 - # 配置获取连接等待超时的时间 - maxWait: 60000 - # 配置连接超时时间 - connectTimeout: 30000 - # 配置网络超时时间 - socketTimeout: 60000 - # 配置间隔多久才进行一次检测,检测需要关闭的空闲连接,单位是毫秒 - timeBetweenEvictionRunsMillis: 60000 - # 配置一个连接在池中最小生存的时间,单位是毫秒 - minEvictableIdleTimeMillis: 300000 - # 配置一个连接在池中最大生存的时间,单位是毫秒 - maxEvictableIdleTimeMillis: 900000 - # 配置检测连接是否有效 - validationQuery: SELECT 1 FROM DUAL - testWhileIdle: true - testOnBorrow: false - testOnReturn: false - webStatFilter: - enabled: true - statViewServlet: - enabled: true - # 设置白名单,不填则允许所有访问 - allow: - url-pattern: /druid/* - # 控制台管理用户名和密码 - login-username: ruoyi - login-password: 123456 - filter: - stat: + dynamic: + strict: true + druid: + # 初始连接数 + initialSize: 5 + # 最小连接池数量 + minIdle: 10 + # 最大连接池数量 + maxActive: 20 + # 配置获取连接等待超时的时间 + maxWait: 60000 + # 配置连接超时时间 + connectTimeout: 30000 + # 配置网络超时时间 + socketTimeout: 60000 + # 配置间隔多久才进行一次检测,检测需要关闭的空闲连接,单位是毫秒 + timeBetweenEvictionRunsMillis: 60000 + # 配置一个连接在池中最小生存的时间,单位是毫秒 + minEvictableIdleTimeMillis: 300000 + # 配置一个连接在池中最大生存的时间,单位是毫秒 + maxEvictableIdleTimeMillis: 900000 + # 配置检测连接是否有效 + validationQuery: SELECT 1 + testWhileIdle: true + testOnBorrow: false + testOnReturn: false + webStatFilter: enabled: true - # 慢SQL记录 - log-slow-sql: true - slow-sql-millis: 1000 - merge-sql: true - wall: - config: - multi-statement-allow: true + statViewServlet: + enabled: true + # 设置白名单,不填则允许所有访问 + allow: + url-pattern: /druid/* + # 控制台管理用户名和密码 + login-username: luenmeilz + login-password: 123456 + filter: + stat: + enabled: true + # 慢SQL记录 + log-slow-sql: true + slow-sql-millis: 1000 + merge-sql: true + wall: + config: + multi-statement-allow: true + datasource: + # 主库数据源 + master: + url: jdbc:mysql://10.10.10.56:13306/lzdc_bi_db?useUnicode=true&characterEncoding=utf8&zeroDateTimeBehavior=convertToNull&useSSL=true&serverTimezone=GMT%2B8 + username: luenmei + password: 123456 +# # 计费数据库 +# charge: +# driverClassName: oracle.jdbc.OracleDriver +# url: jdbc:oracle:thin:@//10.10.10.60:1521/HX?CONNECT_TIMEOUT=10000&Read_Timeout=120000 +# username: lmjt_sys +# password: lmjt_sys + # 从库数据源 + slave: + # 从数据源开关/默认关闭 + url: jdbc:mysql://10.10.10.56:13306/lzdc_bi_db?useUnicode=true&characterEncoding=utf8&zeroDateTimeBehavior=convertToNull&useSSL=true&serverTimezone=GMT%2B8 + username: luenmei + password: 123456 + workDB: + driverClassName: org.postgresql.Driver + #type: com.alibaba.druid.pool.DruidDataSource + url: jdbc:postgresql://10.10.10.56:5432/dctestdb?useUnicode=true&characterEncoding=UTF-8&allowMultiQueries=true&serverTimezone=Asia/Shanghai + username: postgres + password: 123456 + primary: master + # 日志配置 logging: file: diff --git a/lzbi-admin/src/main/resources/application-test.yml b/lzbi-admin/src/main/resources/application-test.yml index dc7b568..1221278 100644 --- a/lzbi-admin/src/main/resources/application-test.yml +++ b/lzbi-admin/src/main/resources/application-test.yml @@ -73,7 +73,7 @@ spring: allow: url-pattern: /druid/* # 控制台管理用户名和密码 - login-username: ruoyi + login-username: luenmeilz login-password: 123456 filter: stat: diff --git a/lzbi-admin/src/main/resources/application.yml b/lzbi-admin/src/main/resources/application.yml index 038953d..95f25c2 100644 --- a/lzbi-admin/src/main/resources/application.yml +++ b/lzbi-admin/src/main/resources/application.yml @@ -1,17 +1,17 @@ # 项目相关配置 luenmeilz: # 名称 - name: RuoYi + name: luenmeilz # 版本 - version: 3.8.6 + version: 1.0.1 # 版权年份 copyrightYear: 2023 # 实例演示开关 - demoEnabled: true + demoEnabled: false # 文件路径 示例( Windows配置D:/ruoyi/uploadPath,Linux配置 /home/ruoyi/uploadPath) profile: D:/ruoyi/uploadPath # 获取ip地址开关 - addressEnabled: false + addressEnabled: true # 验证码类型 math 数字计算 char 字符验证 captchaType: math # 高德天气服务ip地址 @@ -41,12 +41,9 @@ server: accept-count: 1000 threads: # tomcat最大线程数,默认为200 - max: 800 + max: 1000 # Tomcat启动初始化的线程数,默认值10 min-spare: 100 - - - # 用户配置 user: password: @@ -83,7 +80,7 @@ token: # 令牌密钥 secret: abcdefghijklmnopqrstuvwxyz # 令牌有效期(默认30分钟) - expireTime: 30 + expireTime: 1440 # MyBatis Plus配置 mybatis-plus: diff --git a/lzbi-common/pom.xml b/lzbi-common/pom.xml index 5be82e3..dd55f9d 100644 --- a/lzbi-common/pom.xml +++ b/lzbi-common/pom.xml @@ -60,11 +60,11 @@ - - - - - + + com.baomidou + dynamic-datasource-spring-boot-starter + 3.5.2 + @@ -141,7 +141,6 @@ com.oracle ojdbc14 10.2.0.3.0 - pom diff --git a/lzbi-framework/src/main/java/com/lzbi/framework/aspectj/DataSourceAspect.java b/lzbi-framework/src/main/java/com/lzbi/framework/aspectj/DataSourceAspect.java index ec47c6f..22d0a67 100644 --- a/lzbi-framework/src/main/java/com/lzbi/framework/aspectj/DataSourceAspect.java +++ b/lzbi-framework/src/main/java/com/lzbi/framework/aspectj/DataSourceAspect.java @@ -20,9 +20,9 @@ import com.lzbi.framework.datasource.DynamicDataSourceContextHolder; * * @author ruoyi */ -@Aspect -@Order(1) -@Component +//@Aspect +//@Order(1) +//@Component public class DataSourceAspect { protected Logger logger = LoggerFactory.getLogger(getClass()); diff --git a/lzbi-framework/src/main/java/com/lzbi/framework/config/DruidConfig.java b/lzbi-framework/src/main/java/com/lzbi/framework/config/DruidConfig.java index 52b54ee..d7af7f0 100644 --- a/lzbi-framework/src/main/java/com/lzbi/framework/config/DruidConfig.java +++ b/lzbi-framework/src/main/java/com/lzbi/framework/config/DruidConfig.java @@ -1,126 +1,126 @@ package com.lzbi.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.lzbi.common.enums.DataSourceType; -import com.lzbi.common.utils.spring.SpringUtils; -import com.lzbi.framework.config.properties.DruidProperties; -import com.lzbi.framework.datasource.DynamicDataSource; +//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.lzbi.common.enums.DataSourceType; +//import com.lzbi.common.utils.spring.SpringUtils; +//import com.lzbi.framework.config.properties.DruidProperties; +//import com.lzbi.framework.datasource.DynamicDataSource; /** * druid 配置多数据源 * * @author ruoyi */ -@Configuration +//@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 - @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 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 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("
", ""); - text = text.replaceAll("powered.*?shrek.wang", ""); - response.getWriter().write(text); - } - @Override - public void destroy() - { - } - }; - FilterRegistrationBean registrationBean = new FilterRegistrationBean(); - registrationBean.setFilter(filter); - registrationBean.addUrlPatterns(commonJsPattern); - return registrationBean; - } +// @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 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 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("
", ""); +// text = text.replaceAll("powered.*?shrek.wang", ""); +// response.getWriter().write(text); +// } +// @Override +// public void destroy() +// { +// } +// }; +// FilterRegistrationBean registrationBean = new FilterRegistrationBean(); +// registrationBean.setFilter(filter); +// registrationBean.addUrlPatterns(commonJsPattern); +// return registrationBean; +// } } diff --git a/lzbi-framework/src/main/java/com/lzbi/framework/config/properties/DruidProperties.java b/lzbi-framework/src/main/java/com/lzbi/framework/config/properties/DruidProperties.java index 112abeb..eefde50 100644 --- a/lzbi-framework/src/main/java/com/lzbi/framework/config/properties/DruidProperties.java +++ b/lzbi-framework/src/main/java/com/lzbi/framework/config/properties/DruidProperties.java @@ -1,15 +1,15 @@ package com.lzbi.framework.config.properties; import org.springframework.beans.factory.annotation.Value; -import org.springframework.context.annotation.Configuration; -import com.alibaba.druid.pool.DruidDataSource; +//import org.springframework.context.annotation.Configuration; +//import com.alibaba.druid.pool.DruidDataSource; /** * druid 配置属性 * * @author ruoyi */ -@Configuration +//@Configuration public class DruidProperties { @Value("${spring.datasource.druid.initialSize}") @@ -50,40 +50,40 @@ public class DruidProperties @Value("${spring.datasource.druid.testOnReturn}") private boolean testOnReturn; - - public DruidDataSource dataSource(DruidDataSource datasource) - { - /** 配置初始化大小、最小、最大 */ - datasource.setInitialSize(initialSize); - datasource.setMaxActive(maxActive); - datasource.setMinIdle(minIdle); - - /** 配置获取连接等待超时的时间 */ - datasource.setMaxWait(maxWait); - - /** 配置驱动连接超时时间,检测数据库建立连接的超时时间,单位是毫秒 */ - datasource.setConnectTimeout(connectTimeout); - - /** 配置网络超时时间,等待数据库操作完成的网络超时时间,单位是毫秒 */ - datasource.setSocketTimeout(socketTimeout); - - /** 配置间隔多久才进行一次检测,检测需要关闭的空闲连接,单位是毫秒 */ - datasource.setTimeBetweenEvictionRunsMillis(timeBetweenEvictionRunsMillis); - - /** 配置一个连接在池中最小、最大生存的时间,单位是毫秒 */ - datasource.setMinEvictableIdleTimeMillis(minEvictableIdleTimeMillis); - datasource.setMaxEvictableIdleTimeMillis(maxEvictableIdleTimeMillis); - - /** - * 用来检测连接是否有效的sql,要求是一个查询语句,常用select 'x'。如果validationQuery为null,testOnBorrow、testOnReturn、testWhileIdle都不会起作用。 - */ - datasource.setValidationQuery(validationQuery); - /** 建议配置为true,不影响性能,并且保证安全性。申请连接的时候检测,如果空闲时间大于timeBetweenEvictionRunsMillis,执行validationQuery检测连接是否有效。 */ - datasource.setTestWhileIdle(testWhileIdle); - /** 申请连接时执行validationQuery检测连接是否有效,做了这个配置会降低性能。 */ - datasource.setTestOnBorrow(testOnBorrow); - /** 归还连接时执行validationQuery检测连接是否有效,做了这个配置会降低性能。 */ - datasource.setTestOnReturn(testOnReturn); - return datasource; - } +// +// public DruidDataSource dataSource(DruidDataSource datasource) +// { +// /** 配置初始化大小、最小、最大 */ +// datasource.setInitialSize(initialSize); +// datasource.setMaxActive(maxActive); +// datasource.setMinIdle(minIdle); +// +// /** 配置获取连接等待超时的时间 */ +// datasource.setMaxWait(maxWait); +// +// /** 配置驱动连接超时时间,检测数据库建立连接的超时时间,单位是毫秒 */ +// datasource.setConnectTimeout(connectTimeout); +// +// /** 配置网络超时时间,等待数据库操作完成的网络超时时间,单位是毫秒 */ +// datasource.setSocketTimeout(socketTimeout); +// +// /** 配置间隔多久才进行一次检测,检测需要关闭的空闲连接,单位是毫秒 */ +// datasource.setTimeBetweenEvictionRunsMillis(timeBetweenEvictionRunsMillis); +// +// /** 配置一个连接在池中最小、最大生存的时间,单位是毫秒 */ +// datasource.setMinEvictableIdleTimeMillis(minEvictableIdleTimeMillis); +// datasource.setMaxEvictableIdleTimeMillis(maxEvictableIdleTimeMillis); +// +// /** +// * 用来检测连接是否有效的sql,要求是一个查询语句,常用select 'x'。如果validationQuery为null,testOnBorrow、testOnReturn、testWhileIdle都不会起作用。 +// */ +// datasource.setValidationQuery(validationQuery); +// /** 建议配置为true,不影响性能,并且保证安全性。申请连接的时候检测,如果空闲时间大于timeBetweenEvictionRunsMillis,执行validationQuery检测连接是否有效。 */ +// datasource.setTestWhileIdle(testWhileIdle); +// /** 申请连接时执行validationQuery检测连接是否有效,做了这个配置会降低性能。 */ +// datasource.setTestOnBorrow(testOnBorrow); +// /** 归还连接时执行validationQuery检测连接是否有效,做了这个配置会降低性能。 */ +// datasource.setTestOnReturn(testOnReturn); +// return datasource; +// } } diff --git a/lzbi-module/pom.xml b/lzbi-module/pom.xml index 0d75fe6..a306c99 100644 --- a/lzbi-module/pom.xml +++ b/lzbi-module/pom.xml @@ -42,15 +42,11 @@
- - mysql - mysql-connector-java - - - com.baomidou - dynamic-datasource-spring-boot-starter - 3.6.1 - + + + + + \ No newline at end of file diff --git a/lzbi-module/src/main/java/com/lzbi/asset/controller/DcBusiWorkReadConfigController.java b/lzbi-module/src/main/java/com/lzbi/asset/controller/DcBusiWorkReadConfigController.java index a92abbb..61c19f0 100644 --- a/lzbi-module/src/main/java/com/lzbi/asset/controller/DcBusiWorkReadConfigController.java +++ b/lzbi-module/src/main/java/com/lzbi/asset/controller/DcBusiWorkReadConfigController.java @@ -1,14 +1,24 @@ package com.lzbi.asset.controller; +import cn.hutool.core.date.DateUtil; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; +import com.lzbi.code.domain.DcBaseCoderuleDefineDao; +import com.lzbi.code.domain.DcBusiCoderuleConfigDao; import com.lzbi.code.service.CodeNoGenerater; +import com.lzbi.code.service.DcBaseCoderuleDefineService; import com.lzbi.common.annotation.Log; import com.lzbi.common.core.controller.BaseController; import com.lzbi.common.core.domain.AjaxResult; import com.lzbi.common.core.page.TableDataInfo; import com.lzbi.common.enums.BusinessType; import com.lzbi.common.utils.DateUtils; +import com.lzbi.common.utils.StringUtils; import com.lzbi.common.utils.poi.ExcelUtil; +import com.lzbi.draft.domain.DcBusiParamBillMasterDao; +import com.lzbi.draft.domain.DcBusiParamBillSubDao; +import com.lzbi.draft.service.DcBusiParamBillMasterService; +import com.lzbi.task.domain.ReadQueryParams; +import com.lzbi.task.domain.WorkReadVo; import com.lzbi.task.service.WorkParamReadService; import io.swagger.annotations.Api; import io.swagger.annotations.ApiOperation; @@ -16,9 +26,12 @@ import org.springframework.beans.factory.annotation.Autowired; import javax.servlet.http.HttpServletResponse; import javax.validation.Valid; import org.springframework.web.bind.annotation.*; -import java.util.Arrays; -import java.util.List; + +import java.awt.geom.Arc2D; +import java.util.*; import java.util.stream.Collectors; +import java.util.stream.Stream; + import com.lzbi.asset.domain.DcBusiWorkReadConfig; import com.lzbi.asset.service.DcBusiWorkReadConfigService; @@ -135,8 +148,59 @@ public class DcBusiWorkReadConfigController extends BaseController{ WorkParamReadService workParamReadService; @Autowired CodeNoGenerater codeNoGenerater; + @Autowired + DcBusiParamBillMasterService dcBusiParamBillMasterService; + @Autowired + DcBaseCoderuleDefineService dcBaseCoderuleDefineService; @GetMapping("/getWork") public AjaxResult getWorkParamValue(){ - return success(); + String inComeDate="2023-11-29"; + DcBusiCoderuleConfigDao ruleIdByBusicode = dcBaseCoderuleDefineService.getRuleIdByBusicode("param_bill_adjust"); + DcBaseCoderuleDefineDao ruleDao = dcBaseCoderuleDefineService.selectDcBaseCoderuleDefineDaoById(ruleIdByBusicode.getRuleId()); + DcBusiParamBillMasterDao billm=new DcBusiParamBillMasterDao(); + String billNo=codeNoGenerater.getCode(ruleDao); + if(StringUtils.isNull(billNo)){ + billNo= "AD_"+String.valueOf(System.currentTimeMillis()); + } + billm.setBillNo(billNo); + billm.setCreatedBy("robot"); + billm.setCreatedTime(DateUtil.date()); + billm.setBillIncomeDate(inComeDate); + billm.setBillType("auto"); + billm.setCheckType("1"); + billm.setCheckStatus("0"); + List billSub=new ArrayList<>(); + ReadQueryParams readQueryParams=new ReadQueryParams(); + readQueryParams.setBeginTime(inComeDate+" 00:00:00"); + readQueryParams.setEndTime(inComeDate+" 23:59:59"); + DcBusiWorkReadConfig dwrc=new DcBusiWorkReadConfig(); + dwrc.setAssetCode("SP00001"); + dwrc.setGoalSource("work"); + List dcBusiWorkReadConfigs = dcBusiWorkReadConfigService.selectByVo(dwrc); + List pcl=dcBusiWorkReadConfigs.parallelStream().map(DcBusiWorkReadConfig::getGoalParamCode).collect(Collectors.toList()); + List dcl=dcBusiWorkReadConfigs.parallelStream().map(DcBusiWorkReadConfig::getGoalParamExt1).collect(Collectors.toList()); + readQueryParams.setParamCodes(pcl); + readQueryParams.setDeviceCodes(dcl); + List workReadVos = workParamReadService.readWorkValue(readQueryParams); + final String billNo_c=billNo; + workReadVos.parallelStream().forEach(item->{ + Optional find = dcBusiWorkReadConfigs.parallelStream().filter(info -> info.getGoalParamCode().equals(item.getParamCode()) && info.getGoalParamExt1().equals(item.getDeviceCode())).findFirst(); + if(find.isPresent()){ + DcBusiParamBillSubDao subDao=new DcBusiParamBillSubDao(); + subDao.setCreatedBy("robot"); + subDao.setAssetCode(find.get().getAssetCode()); + subDao.setBillNo(billNo_c); + Double va=item.getValueByType(find.get().getGoalParamType()); + subDao.setParamValue(va); + subDao.setParamCode(find.get().getAssetParamCode()); + subDao.setFieldType(find.get().getAssetFieldCode()); + subDao.setCounDate(item.getDateCount()); + billSub.add(subDao); + } + }); + billm.setDcBusiParamBillSubDaoList(billSub); + //dcBusiParamBillMasterService.insertDcBusiParamBillMasterDao(billm); + //dcBusiParamBillMasterService.saveBatch() + return success(dcBusiParamBillMasterService.insertDcBusiParamBillMasterDao(billm)); } } \ No newline at end of file diff --git a/lzbi-module/src/main/java/com/lzbi/asset/domain/DcBusiWorkReadConfig.java b/lzbi-module/src/main/java/com/lzbi/asset/domain/DcBusiWorkReadConfig.java index 8f00413..eb2ab2e 100644 --- a/lzbi-module/src/main/java/com/lzbi/asset/domain/DcBusiWorkReadConfig.java +++ b/lzbi-module/src/main/java/com/lzbi/asset/domain/DcBusiWorkReadConfig.java @@ -48,5 +48,7 @@ public class DcBusiWorkReadConfig extends BaseModuleEntity{ /** 数据来源;生产IOT:work;计费:charge;Erp:erp */ @ApiModelProperty(name = "数据来源",notes = "生产IOT:work;计费:charge;Erp:erp") private String goalSource ; + @ApiModelProperty(name = "所属专业") + private String assetFieldCode ; } \ No newline at end of file diff --git a/lzbi-module/src/main/java/com/lzbi/draft/domain/DcBusiParamBillSubDao.java b/lzbi-module/src/main/java/com/lzbi/draft/domain/DcBusiParamBillSubDao.java index dff38de..b74e5c4 100644 --- a/lzbi-module/src/main/java/com/lzbi/draft/domain/DcBusiParamBillSubDao.java +++ b/lzbi-module/src/main/java/com/lzbi/draft/domain/DcBusiParamBillSubDao.java @@ -19,70 +19,20 @@ import com.lzbi.module.base.BaseModuleEntity; public class DcBusiParamBillSubDao extends BaseModuleEntity { private static final long serialVersionUID = 1L; - - /** 租户号 */ - private String tenantId; - - /** 乐观锁 */ - private Long REVISION; - - /** 创建人 */ - private String createdBy; - - /** 创建时间 */ - private Date createdTime; - - /** 更新人 */ - private String updatedBy; - - /** 更新时间 */ - private Date updatedTime; - - /** 删除人 */ - private String deleteBy; - - /** 删除时间 */ - private Date deleteTime; - /** 主键 */ private Long id; - + private String counDate; /** 单据编码 */ @Excel(name = "单据编码") private String billNo; - /** 公司名称 */ - @Excel(name = "公司名称") - private String companyName; - - /** 公司编码 */ - @Excel(name = "公司编码") - private String companyCode; - - /** 组织机构代码 */ - @Excel(name = "组织机构代码") - private String orgCode; - - /** 组织机构名称 */ - @Excel(name = "组织机构名称") - private String orgName; - /** 统计单元编码 */ @Excel(name = "统计单元编码") private String assetCode; - - /** 统计单元名称 */ - @Excel(name = "统计单元名称") - private String assetName; - /** 所属专业 */ @Excel(name = "所属专业") private String fieldType; - /** 指标名称 */ - @Excel(name = "指标名称") - private String paramName; - /** 指标编码 */ @Excel(name = "指标编码") private String paramCode; @@ -93,6 +43,6 @@ public class DcBusiParamBillSubDao extends BaseModuleEntity /** 参数值 */ @Excel(name = "参数值") - private BigDecimal paramValue; + private Double paramValue; } diff --git a/lzbi-module/src/main/java/com/lzbi/draft/service/DcBusiParamBillMasterService.java b/lzbi-module/src/main/java/com/lzbi/draft/service/DcBusiParamBillMasterService.java index ebec170..5b63a91 100644 --- a/lzbi-module/src/main/java/com/lzbi/draft/service/DcBusiParamBillMasterService.java +++ b/lzbi-module/src/main/java/com/lzbi/draft/service/DcBusiParamBillMasterService.java @@ -56,6 +56,7 @@ public class DcBusiParamBillMasterService extends ServiceImpl - @@ -36,14 +35,9 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" - - - - - - + @@ -66,9 +60,9 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" @@ -149,9 +143,9 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" - insert into dc_busi_param_bill_sub( TENANT_ID, REVISION, CREATED_BY, CREATED_TIME, UPDATED_BY, UPDATED_TIME, DELETE_BY, DELETE_TIME, id, bill_no, company_name, company_code, org_code, org_name, asset_code, asset_name, field_type, param_name, param_code, param_uint, param_value) values + insert into dc_busi_param_bill_sub( TENANT_ID, CREATED_BY, CREATED_TIME, UPDATED_BY, UPDATED_TIME, DELETE_BY, DELETE_TIME, id, bill_no, asset_code, field_type, param_code, param_value) values - ( #{item.tenantId}, #{item.REVISION}, #{item.createdBy}, #{item.createdTime}, #{item.updatedBy}, #{item.updatedTime}, #{item.deleteBy}, #{item.deleteTime}, #{item.id}, #{item.billNo}, #{item.companyName}, #{item.companyCode}, #{item.orgCode}, #{item.orgName}, #{item.assetCode}, #{item.assetName}, #{item.fieldType}, #{item.paramName}, #{item.paramCode}, #{item.paramUint}, #{item.paramValue}) + ( #{item.tenantId}, #{item.createdBy}, #{item.createdTime}, #{item.updatedBy}, #{item.updatedTime}, #{item.deleteBy}, #{item.deleteTime}, #{item.id}, #{item.billNo}, #{item.assetCode}, #{item.fieldType}, #{item.paramCode}, #{item.paramValue}) \ No newline at end of file diff --git a/lzbi-module/src/main/resources/mapper/asset/DcBusiWorkReadConfigMapper.xml b/lzbi-module/src/main/resources/mapper/asset/DcBusiWorkReadConfigMapper.xml index 72b1045..8e04ab7 100644 --- a/lzbi-module/src/main/resources/mapper/asset/DcBusiWorkReadConfigMapper.xml +++ b/lzbi-module/src/main/resources/mapper/asset/DcBusiWorkReadConfigMapper.xml @@ -37,6 +37,9 @@ + + + select @@ -56,6 +59,7 @@ goal_param_ext2, goal_param_type, goal_source, + asset_field_code from dc_busi_work_read_config @@ -99,6 +103,7 @@ goal_param_ext2, goal_param_type, goal_source, + asset_field_code #{tenantId}, @@ -117,7 +122,7 @@ #{goalParamExt2}, #{goalParamType}, #{goalSource}, - + #{assetFieldCode}, \ No newline at end of file diff --git a/lzbi-module/src/main/resources/mapper/asset/WorkParamReadMapper.xml b/lzbi-module/src/main/resources/mapper/asset/WorkParamReadMapper.xml index 752bc88..308a6cb 100644 --- a/lzbi-module/src/main/resources/mapper/asset/WorkParamReadMapper.xml +++ b/lzbi-module/src/main/resources/mapper/asset/WorkParamReadMapper.xml @@ -29,12 +29,12 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" FROM dc_base_log_history_level1 AS his where timestamp_key BETWEEN to_timestamp(#{beginTime},'yyyy-MM-dd hh24:mi:ss') and to_timestamp(#{endTime},'yyyy-MM-dd hh24:mi:ss') and device_uuid in - - ( #{item}) + + #{item} and param_code in - - ( #{item}) + + #{item} GROUP BY thour, param_code,device_uuid ORDER BY thour asc