opt:任务查询优化
This commit is contained in:
@@ -8,9 +8,11 @@ import com.alibaba.druid.proxy.jdbc.ResultSetProxy;
|
|||||||
import com.alibaba.druid.proxy.jdbc.StatementProxy;
|
import com.alibaba.druid.proxy.jdbc.StatementProxy;
|
||||||
import com.alibaba.druid.sql.SQLUtils;
|
import com.alibaba.druid.sql.SQLUtils;
|
||||||
import com.alibaba.druid.util.JdbcUtils;
|
import com.alibaba.druid.util.JdbcUtils;
|
||||||
|
import com.mysql.cj.jdbc.ConnectionImpl;
|
||||||
import com.mysql.cj.jdbc.result.ResultSetImpl;
|
import com.mysql.cj.jdbc.result.ResultSetImpl;
|
||||||
import lombok.extern.slf4j.Slf4j;
|
import lombok.extern.slf4j.Slf4j;
|
||||||
|
|
||||||
|
import java.sql.Connection;
|
||||||
import java.sql.SQLException;
|
import java.sql.SQLException;
|
||||||
import java.util.ArrayList;
|
import java.util.ArrayList;
|
||||||
import java.util.Collection;
|
import java.util.Collection;
|
||||||
@@ -37,6 +39,12 @@ public class DruidFilter extends FilterEventAdapter {
|
|||||||
|
|
||||||
@Override
|
@Override
|
||||||
protected void statementExecuteAfter(StatementProxy statement, String sql, boolean result) {
|
protected void statementExecuteAfter(StatementProxy statement, String sql, boolean result) {
|
||||||
|
String database="";
|
||||||
|
try {
|
||||||
|
ConnectionImpl connection = (ConnectionImpl)statement.getConnection();
|
||||||
|
database = connection.getDatabase();
|
||||||
|
}catch (Exception ex){
|
||||||
|
}
|
||||||
int size = statement.getParametersSize();
|
int size = statement.getParametersSize();
|
||||||
String executeSql = sql;
|
String executeSql = sql;
|
||||||
int count = 0;
|
int count = 0;
|
||||||
@@ -53,9 +61,7 @@ public class DruidFilter extends FilterEventAdapter {
|
|||||||
}
|
}
|
||||||
executeSql = SQLUtils.format(executeSql, JdbcUtils.MYSQL, params);
|
executeSql = SQLUtils.format(executeSql, JdbcUtils.MYSQL, params);
|
||||||
}
|
}
|
||||||
if (!sql.contains("sys_log") && !sql.contains("sys_interface_log")){
|
log.info("[----SQL----][update][数据库:{}][ SQL: {} ]",database, executeSql);
|
||||||
log.info("[----SQL----][update][ SQL: {} ]", executeSql);
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
super.statementExecuteAfter(statement, sql, result);
|
super.statementExecuteAfter(statement, sql, result);
|
||||||
}
|
}
|
||||||
@@ -64,6 +70,12 @@ public class DruidFilter extends FilterEventAdapter {
|
|||||||
public ResultSetProxy statement_getResultSet(FilterChain chain, StatementProxy statement) throws SQLException {
|
public ResultSetProxy statement_getResultSet(FilterChain chain, StatementProxy statement) throws SQLException {
|
||||||
ResultSetProxy rs = super.statement_getResultSet(chain, statement);
|
ResultSetProxy rs = super.statement_getResultSet(chain, statement);
|
||||||
String executeSql = statement.getLastExecuteSql();
|
String executeSql = statement.getLastExecuteSql();
|
||||||
|
String database="";
|
||||||
|
try {
|
||||||
|
ConnectionImpl connection = (ConnectionImpl)statement.getConnection();
|
||||||
|
database = connection.getDatabase();
|
||||||
|
}catch (Exception ex){
|
||||||
|
}
|
||||||
int result = 0;
|
int result = 0;
|
||||||
if (rs != null) {
|
if (rs != null) {
|
||||||
ResultSetImpl rss = rs.getResultSetRaw().unwrap(ResultSetImpl.class);
|
ResultSetImpl rss = rs.getResultSetRaw().unwrap(ResultSetImpl.class);
|
||||||
@@ -82,7 +94,7 @@ public class DruidFilter extends FilterEventAdapter {
|
|||||||
} catch (Exception ex) {
|
} catch (Exception ex) {
|
||||||
log.warn("[-SQL解析异常-][{}]", ex.getMessage());
|
log.warn("[-SQL解析异常-][{}]", ex.getMessage());
|
||||||
}
|
}
|
||||||
log.info("[----SQL----][select][执行结果:{}][ SQL: {} ]", result, executeSql);
|
log.info("[----SQL----][select][执行结果:{}][数据库:{}][ SQL: {} ]", result,database, executeSql);
|
||||||
return rs;
|
return rs;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -51,14 +51,18 @@
|
|||||||
|
|
||||||
IF 输入.flag = "1"
|
IF 输入.flag = "1"
|
||||||
PAGEQUERY
|
PAGEQUERY
|
||||||
|
SELECT * FROM (
|
||||||
SELECT
|
SELECT
|
||||||
task.*,
|
task.*,
|
||||||
md.class_name task_type_name,
|
md.class_name task_type_name,
|
||||||
user.person_name AS create_name1
|
user.person_name AS create_name1,
|
||||||
|
dict.label task_status_name,
|
||||||
|
case when task.task_type like '0105%' then 'LK' when task.task_type like '0107%' then 'LK' ELSE task.product_area end AS final_product_area
|
||||||
FROM
|
FROM
|
||||||
sch_base_task task
|
sch_base_task task
|
||||||
LEFT JOIN md_pb_classstandard md ON task.task_type = md.class_code
|
LEFT JOIN md_pb_classstandard md ON task.task_type = md.class_code
|
||||||
LEFT JOIN sys_user user ON user.username = task.create_name
|
LEFT JOIN sys_user user ON user.username = task.create_name
|
||||||
|
LEFT JOIN sys_dict dict ON dict.`value` = task.task_status AND dict.`code` = 'task_status'
|
||||||
WHERE
|
WHERE
|
||||||
1=1
|
1=1
|
||||||
OPTION 输入.is_delete <> ""
|
OPTION 输入.is_delete <> ""
|
||||||
@@ -80,7 +84,7 @@
|
|||||||
task.task_status <> '07'
|
task.task_status <> '07'
|
||||||
ENDOPTION
|
ENDOPTION
|
||||||
OPTION 输入.task_status <> ""
|
OPTION 输入.task_status <> ""
|
||||||
task.task_status = '07'
|
find_in_set( task.task_status, 输入.task_status)
|
||||||
ENDOPTION
|
ENDOPTION
|
||||||
OPTION 输入.vehicle_code <> ""
|
OPTION 输入.vehicle_code <> ""
|
||||||
(task.vehicle_code like 输入.vehicle_code OR task.material_code like 输入.vehicle_code OR task.vehicle_code2 like 输入.vehicle_code)
|
(task.vehicle_code like 输入.vehicle_code OR task.material_code like 输入.vehicle_code OR task.vehicle_code2 like 输入.vehicle_code)
|
||||||
@@ -97,9 +101,11 @@
|
|||||||
OPTION 输入.end_time <> ""
|
OPTION 输入.end_time <> ""
|
||||||
task.create_time <= 输入.end_time
|
task.create_time <= 输入.end_time
|
||||||
ENDOPTION
|
ENDOPTION
|
||||||
OPTION 输入.in_area_id <> ""
|
) a
|
||||||
task.product_area IN 输入.in_area_id
|
WHERE 1=1
|
||||||
ENDOPTION
|
OPTION 输入.in_area_id <> ""
|
||||||
ENDSELECT
|
a.final_product_area IN 输入.in_area_id
|
||||||
ENDPAGEQUERY
|
ENDOPTION
|
||||||
ENDIF
|
ENDSELECT
|
||||||
|
ENDPAGEQUERY
|
||||||
|
ENDIF
|
||||||
|
|||||||
@@ -94,8 +94,8 @@ spring:
|
|||||||
type: Static
|
type: Static
|
||||||
props:
|
props:
|
||||||
#接口有事务,读写分离不生效,默认全部使用主库
|
#接口有事务,读写分离不生效,默认全部使用主库
|
||||||
write-data-source-name: slave
|
write-data-source-name: master
|
||||||
read-data-source-names: master
|
read-data-source-names: slave
|
||||||
#负载均衡算法名称
|
#负载均衡算法名称
|
||||||
load-balancer-name: round-robin
|
load-balancer-name: round-robin
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user