package com.moshang.exportsql;
import cn.hutool.json.JSONUtil;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.boot.CommandLineRunner;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.jdbc.core.JdbcTemplate;
import org.springframework.jdbc.core.namedparam.MapSqlParameterSource;
import org.springframework.jdbc.core.namedparam.NamedParameterJdbcTemplate;
import java.io.File;
import java.io.FileWriter;
import java.io.IOException;
import java.io.PrintWriter;
import java.sql.ResultSetMetaData;
import java.sql.SQLException;
import java.time.LocalDateTime;
import java.time.format.DateTimeFormatter;
import java.util.ArrayList;
import java.util.Date;
import java.util.List;
import java.util.Map;
@SpringBootApplication
public class ExportSqlApplication implements CommandLineRunner {
@Autowired
private NamedParameterJdbcTemplate namedParameterJdbcTemplate;
public static void main(String[] args) {
SpringApplication.run(ExportSqlApplication.class, args);
}
@Override
public void run(String... args) throws Exception {
// 执行SQL查询
// 智能体厂
List<Map<String, Object>> mlServiceQueryResult = namedParameterJdbcTemplate.queryForList("SELECT * FROM ml_service WHERE (container in('Levault','BPM','EntArch','DME') or code='bizsvr') and tenant_id='0'", new MapSqlParameterSource());
List<Map<String, Object>> mlClassQueryResult = namedParameterJdbcTemplate.queryForList("SELECT * FROM ml_class WHERE container in('Levault','BPM','EntArch','DME') and tenant_id='0'", new MapSqlParameterSource());
List<Map<String, Object>> mlClassAtrQueryResult = namedParameterJdbcTemplate.queryForList("SELECT * FROM cls_attr WHERE container in('Levault','BPM','EntArch','DME') and tenant_id='0'", new MapSqlParameterSource());
List<Map<String, Object>> clsMsgQueryResult = namedParameterJdbcTemplate.queryForList("SELECT * FROM cls_msg WHERE container in('Levault','BPM','EntArch','DME') and tenant_id='0'", new MapSqlParameterSource());
List<Map<String, Object>> clsConstQueryResult = namedParameterJdbcTemplate.queryForList("SELECT * FROM cls_const WHERE left_id IN(SELECT obj_id FROM ml_class WHERE container in('Levault','BPM','EntArch','DME') and tenant_id='0');", new MapSqlParameterSource());
List<Map<String, Object>> mlAttributeQueryResult = namedParameterJdbcTemplate.queryForList("SELECT * FROM ml_attribute WHERE obj_id IN(SELECT right_id FROM cls_attr WHERE left_id IN(SELECT obj_id FROM ml_class WHERE container in('Levault','BPM','EntArch','DME') and tenant_id='0'));", new MapSqlParameterSource());
List<Map<String, Object>> mlMessageQueryResult = namedParameterJdbcTemplate.queryForList("SELECT * FROM ml_message WHERE obj_id IN(SELECT right_id FROM cls_msg WHERE left_id IN(SELECT obj_id FROM ml_class WHERE container in('Levault','BPM','EntArch','DME') and tenant_id='0'));", new MapSqlParameterSource());
List<Map<String, Object>> mlConstantQueryResult = namedParameterJdbcTemplate.queryForList("SELECT * FROM ml_constant WHERE obj_id IN(SELECT right_id FROM cls_const WHERE left_id IN(SELECT obj_id FROM ml_class WHERE container in('Levault','BPM','EntArch','DME') and tenant_id='0'));", new MapSqlParameterSource());
List<Map<String, Object>> mlRuleQueryResult = namedParameterJdbcTemplate.queryForList("SELECT * FROM ml_rule WHERE code IN(SELECT rule_code FROM cls_attr WHERE left_id IN(SELECT obj_id FROM ml_class WHERE container in('Levault','BPM','EntArch','DME') and tenant_id='0') and rule_code !='' and rule_code is not null);", new MapSqlParameterSource());
List<Map<String, Object>> mlDbInfoQueryResult = namedParameterJdbcTemplate.queryForList("SELECT * FROM ml_db_info WHERE obj_id IN(SELECT right_id FROM svr_db WHERE left_id IN(SELECT obj_id FROM ml_service WHERE container in('Levault','BPM','EntArch','DME') and tenant_id='0'));", new MapSqlParameterSource());
List<Map<String, Object>> svrDbQueryResult = namedParameterJdbcTemplate.queryForList("SELECT * FROM svr_db WHERE left_id IN(SELECT obj_id FROM ml_service WHERE (container in('Levault','BPM','EntArch','DME') or code='bizsvr') and tenant_id='0');", new MapSqlParameterSource());
List<Map<String, Object>> mlLangQueryResult = namedParameterJdbcTemplate.queryForList("SELECT * FROM ml_lang WHERE container in('Levault','BPM','EntArch','DME') and tenant_id='0';", new MapSqlParameterSource());
List<Map<String, Object>> mlCodeRepoQueryResult = namedParameterJdbcTemplate.queryForList("SELECT * FROM ml_code_repo", new MapSqlParameterSource());
List<Map<String, Object>> attrLovQueryResult = namedParameterJdbcTemplate.queryForList("SELECT* FROM attr_lov WHERE left_id in(SELECT obj_id FROM ml_attribute WHERE obj_id IN(SELECT right_id FROM cls_attr WHERE left_id IN(SELECT obj_id FROM ml_class WHERE container in('Levault','BPM','EntArch','DME') and tenant_id='0')));", new MapSqlParameterSource());
List<Map<String, Object>> attrCodeQueryResult = namedParameterJdbcTemplate.queryForList("SELECT* FROM attr_code WHERE left_id in(SELECT obj_id FROM ml_attribute WHERE obj_id IN(SELECT right_id FROM cls_attr WHERE left_id IN(SELECT obj_id FROM ml_class WHERE container in('Levault','BPM','EntArch','DME') and tenant_id='0')));", new MapSqlParameterSource());
List<Map<String, Object>> mlDialogLayOutQueryResult = namedParameterJdbcTemplate.queryForList("SELECT * FROM ml_dialog_layout where container in('Levault','BPM','EntArch','DME') and tenant_id='0';", new MapSqlParameterSource());
List<Map<String, Object>> mlIndexQueryResult = namedParameterJdbcTemplate.queryForList("SELECT * FROM " +
"ml_index where container in('Levault','BPM','EntArch','DME') and tenant_id='0';",
new MapSqlParameterSource());
List<Map<String, Object>> mlAttrRelQueryResult = namedParameterJdbcTemplate.queryForList("SELECT * FROM " +
" ml_attr_rel where container in('Levault','BPM','EntArch','DME') and tenant_id='0';",
new MapSqlParameterSource());
List<Map<String, Object>> mlRuntimeClassQueryResult = namedParameterJdbcTemplate.queryForList("SELECT * FROM" +
" ml_runtime_relation_class where container in('Levault','BPM','EntArch','DME') and " +
"tenant_id='0';",
new MapSqlParameterSource());
List<Map<String, Object>> mlServiceIdQueryResult = namedParameterJdbcTemplate.queryForList("SELECT * FROM unique_id where obj_id in(SELECT obj_id FROM ml_service WHERE (container in('Levault','BPM','EntArch','DME') or code='bizsvr') and tenant_id='0');", new MapSqlParameterSource());
List<Map<String, Object>> mlClassIdQueryResult = namedParameterJdbcTemplate.queryForList("SELECT * FROM unique_id where obj_id in(SELECT obj_id FROM ml_class WHERE container in('Levault','BPM','EntArch','DME') and tenant_id='0');", new MapSqlParameterSource());
List<Map<String, Object>> clsAttrIdQueryResult = namedParameterJdbcTemplate.queryForList("SELECT * FROM unique_id where obj_id in(SELECT obj_id FROM cls_attr WHERE container in('Levault','BPM','EntArch','DME') and tenant_id='0');", new MapSqlParameterSource());
List<Map<String, Object>> clsMsgIdQueryResult = namedParameterJdbcTemplate.queryForList("SELECT * FROM unique_id where obj_id in(SELECT obj_id FROM cls_msg WHERE container in('Levault','BPM','EntArch','DME') and tenant_id='0');", new MapSqlParameterSource());
List<Map<String, Object>> clsConstIdQueryResult = namedParameterJdbcTemplate.queryForList("SELECT * FROM unique_id where obj_id in(SELECT obj_id FROM cls_const WHERE left_id IN(SELECT obj_id FROM ml_class WHERE container in('Levault','BPM','EntArch','DME') and tenant_id='0'));", new MapSqlParameterSource());
List<Map<String, Object>> ml