package com.eastcom_sw.dsv.special.gde.dao.assetsManage; import com.eastcom_sw.baseframe.jdbc.dao.JdbcDaoSupport; import com.eastcom_sw.dsv.special.gde.dao.interfaceManage.RegisterInterfaceDaoImpl; import org.apache.commons.lang3.StringUtils; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.jdbc.core.BatchPreparedStatementSetter; import org.springframework.jdbc.core.JdbcTemplate; import org.springframework.stereotype.Component; import javax.annotation.Resource; import javax.sql.DataSource; import java.sql.PreparedStatement; import java.sql.SQLException; import java.sql.Types; import java.util.HashMap; import java.util.List; import java.util.Map; /** * @author tangkk * @ClassName AssetsImportDaoImpl * @Description 资产导入 * @Date 2020/8/11 13:46 * @Version 1.0 **/ @Component @SuppressWarnings({"rawtypes"}) public class AssetsImportDaoImpl extends JdbcDaoSupport implements AssetsImportDao { public JdbcTemplate jdbcTemplate; @Resource(name = "ipmsdmDataSource") public void setDataSource(DataSource dataSource) { this.jdbcTemplate = new JdbcTemplate(dataSource); } @Autowired private RegisterInterfaceDaoImpl registerInterfaceDao; /** * @param * @return * @Description * @Title 导入指标 * @Date 2020/9/30 16:32 * @Version 1.0 **/ @Override public Map<String, Integer> addBatchData(String userCn, String flag, final Map<String, List<Map<String, String>>> map) { // 注册指标 List<Map<String, String>> base = map.get("base"); if (base != null) { String[] split = userCn.split("-"); String s = split[1]; addKpi(s, base); } // 相关报表 List<Map<String, String>> relyReport = map.get("relyReport"); if (relyReport != null) { addKpiReport(relyReport); } // 依赖模型 List<Map<String, String>> relyTable = map.get("relyModel"); if (relyTable != null) { addKpiRelyTable(relyTable); } // 依赖指标 List<Map<String, String>> relyKpi = map.get("relyKpi"); if (relyKpi != null) { addKpiRelyKpi(relyKpi); } Map returnMap = new HashMap(); returnMap.put("base", base != null ? base.size() : 0); returnMap.put("relyReport", relyReport != null ? relyReport.size() : 0); returnMap.put("relyModel", relyTable != null ? relyTable.size() : 0); returnMap.put("relyKpi", relyKpi != null ? relyKpi.size() : 0); return returnMap; } /** * @param * @return * @Description * @Title 导入模型 * @Date 2020/9/30 16:33 * @Version 1.0 **/ @Override public Map<String, Integer> addModelData(String userCn, String flag, final Map<String, List<Map<String, String>>> map) { List list = map.get("base"); String[] split = userCn.split("-"); String s = split[1]; if (list != null) { addModel(s, list); } List<Map<String, String>> property = map.get("property"); if (property != null) { addProperty(property); } List<Map<String, String>> dblink = map.get("dblink"); if (dblink != null) { addLink(dblink); } List<Map<String, String>> relyTable = map.get("relyTable"); if (relyTable != null) { addRelyTable(relyTable); } // 依赖接口 List<Map<String, String>> relyInterface = map.get("relyInterface"); if (relyInterface != null) { addRelyInterface(relyInterface); } Map returnMap = new HashMap(); returnMap.put("base", list != null ? list.size() : 0); returnMap.put("property", property != null ? property.size() : 0); returnMap.put("dblink", dblink != null ? dblink.size() : 0); returnMap.put("relyTable", relyTable != null ? relyTable.size() : 0); returnMap.put("relyInterface", relyInterface != null ? relyInterface.size() : 0); return returnMap; } /** * @param * @return * @Description * @Title 导入接口服务 * @Date 2020/9/30 16:33 * @Version 1.0 **/ @Override public Map<String, Integer> addInterfaceData(String userCn, String flag, Map<String, List<Map<String, String>>> map) { String[] split = userCn.split("-"); String s = split[1]; // 注册指标 List<Map<String, String>> base = map.get("base"); if (base != null) { addInterface(s, base); } // 接口属性 List<Map<String, String>> relyReport = map.get("relyReport"); if (relyReport != null) { addPropertyInterface(relyReport); } Map returnMap = new HashMap(); returnMap.put("base", base != null ? base.size() : 0); returnMap.put("relyReport", relyReport != null ? relyReport.size() : 0); return returnMap; } /** * @param * @return * @Description * @Title * @Date 2020/9/15 16:39 * @Version 1.0 **/ @Override public Map<String, Integer> addDservData(String userCn, String flag, Map<String, List<Map<String, String>>> map) { String[] split = userCn.split("-"); String s = split[1]; // 注册指标 List<Map<String, String>> base = map.get("base"); if (base != null) { addDserv(s, base); } // 接口属性 List<Map<String, String>> relyReport = map.get("relyReport"); if (relyReport != null) { addPropertyDserv(relyReport); } Map returnMap = new HashMap(); returnMap.put("base", base != null ? base.size() : 0); returnMap.put("relyReport", relyReport != null ? relyReport.size() : 0); return returnMap; } /** * @param * @return * @Description * @Title 新增模型 * @Date 2020/8/23 18:49 * @Version 1.0 **/ public String addModel(String userCn, final List<Map<String, String>> list) { String result = "", sql = "", question = ""; question = "TABLE_ID,THEME_ID,SUB_THEME_ID,LAYER_ID,DATA_SOURCES_ID,ASSET_PERSON,IS_MAIN_DATA,ASSET_LEVEL," + "TABLE_DESC,MODEL_TYPE," + "TABLE_ID,TABLE_NAME,THEME_ID,SUB_THEME_ID,LAYER_ID,DATA_SOURCES_ID,ASSET_PERSON,IS_MAIN_DATA," + "ASSET_LEVEL,TABLE_DESC,MODEL_TYPE,UUID"; sql = "MERGE INTO IPMSDW.DW_GDE_TABLE_INFO T1 USING (SELECT ? TABLE_ID FROM DUAL) T2 " + " ON (T1.TABLE_ID=T2.TABLE_ID)" + "WHEN MATCHED THEN UPDATE SET T1.THEME_ID = ?, " + "T1.SUB_THEME_ID = ?, T1.LAYER_ID = ?," + " T1.DATA_SOURCES_ID = ?, T1.ASSET_PERSON = ?, T1.IS_MAIN_DATA = ?, " + "T1.ASSET_LEVEL = ?, T1.TABLE_DESC =?, " + " T1.MODEL_TYPE = ?" + " WHEN NOT MATCHED THEN INSERT (TABLE_ID,TABLE_NAME,THEME_ID,SUB_THEME_ID,LAYER_ID,DATA_SOURCES_ID," + "ASSET_PERSON,IS_MAIN_DATA,ASSET_LEVEL,TABLE_DESC,MODEL_TYPE,UUID,ASSET_REG_USER,ASSET_STATUS," + "REG_TIME)" + " VALUES(?,?,?,?,?,?,?,?,?,?,?,?,'" + userCn + "',0,to_number( to_char( SYSDATE, 'yyyymmdd' ) || " + "'0000' ))"; final String[] questionList = question.split(","); try { // 执行操作 jdbcTemplate.batchUpdate(sql, new BatchPreparedStatementSetter() { @Override public void setValues(PreparedStatement pstat, int i) throws SQLException { Map<String, String> dataMap = list.get(i); for (int k = 0; k < questionList.length; k++) { String value = dataMap.containsKey(questionList[k]) ? (StringUtils.isBlank(dataMap.get(questionList[k])) || dataMap.get(questionList[k]) == null ? "" : dataMap.get(questionList[k])).replace("#", "") : ""; if (StringUtils.isBlank(value)) { pstat.setNull(k + 1, Types.CHAR); } else { if (k == 6 || k == 7 || k == 9 || k == 17 || k == 18 || k == 20) { pstat.setInt(k + 1, Integer.valueOf(value)); } else { pstat.setString(k + 1, value); } } } } @Override public int getBatchSize() { // 设置本批次一共多少组数据,隐含的就是循环几次 return list.size(); } }); result = "true"; } catch (Exception e) { result = "false"; e.printStackTrace(); } return result; } /** * @param * @return * @Description * @Title 新增指标 * @Date 2020/8/23 18:49 * @Version 1.0 **/ public String addKpi(String userCn, final List<Map<String, String>> list) { String result = "", sql = "", question = ""; question = "KPI_ID,KPI_NAME,KPI_NAME_EN,BUSI_CALIBER,TECH_CALIBER,BUSI_TYPE,SUB_BUSI_TYPE,DATA_SOURCES_ID," + "MAINT_VENDER," + "MAINT_USER,UNIT_ID,UPDATE_CYCLE,STORAGE_CYCLE,BUSI_DIRECTOR,TECH_DIRECTOR,BUSI_DEPT_ID," + "MAINT_DEPT_ID," + "PROVIDE_DEPT_ID,CHECK_TYPE,VITAL_LEVEL,KPI_TYPE,DEVELOP_VENDER,DEVELOP_USER," + "KPI_ID,KPI_NAME,KPI_NAME_EN,BUSI_CALIBER," + "TECH_CALIBER,BUSI_TYPE,SUB_BUSI_TYPE,DATA_SOURCES_ID,MAINT_VENDER,MAINT_USER,UNIT_ID,UPDATE_CYCLE," + "STORAGE_CYCLE,BUSI_DIRECTOR," + "TECH_DIRECTOR,BUSI_DEPT_ID,MAINT_DEPT_ID, " + "PROVIDE_DEPT_ID,CHECK_TYPE,VITAL_LEVEL,KPI_TYPE,DEVELOP_VENDER,DEVELOP_USER,UUID"; sql = "MERGE INTO IPMSDW.DW_GDE_KPI_INFO T1 USING (SELECT ? KPI_ID FROM DUAL) T2 " + " ON (T1.KPI_ID=T2.KPI_ID)" + "WHEN MATCHED THEN UPDATE SET T1.KPI_NAME = ?,T1.KPI_NAME_EN = ?, " + "T1.BUSI_CALIBER = ?, T1.TECH_CALIBER = ?," + " T1.BUSI_TYPE = ?, T1.SUB_BUSI_TYPE = ?, T1.DATA_SOURCES_ID = ?, " + "T1.MAINT_VENDER = ?, T1.MAINT_USER =?, " + " T1.UNIT_ID = ?," + "T1.UPDATE_CYCLE = ?, T1.STORAGE_CYCLE =?, " + "T1.BUSI_DIRECTOR = ?, T1.TECH_DIRECTOR =?, " + "T1.BUSI_DEPT_ID = ?, T1.MAINT_DEPT_ID =?, " + "T1.PROVIDE_DEPT_ID = ?, T1.CHECK_TYPE =?, " + "T1.VITAL_LEVEL = ?, T1.KPI_TYPE =?, " + "T1.DEVELOP_VENDER = ?, " + "T1.DEVELOP_USER = ? " + " WHEN NOT MATCHED THEN INSERT (KPI_ID,KPI_NAME,KPI_NAME_EN,BUSI_CALIBER,TECH_CALIBER,BUSI_TYPE," + "SUB_BUSI_TYPE," + "DATA_SOURCES_ID,MAINT_VENDER,MAINT_USER,UNIT_ID,UPDATE_CYCLE,STORAGE_CYCLE,BUSI_DIRECTOR," + "TECH_DIRECTOR," + "BUSI_DEPT_ID,MAINT_DEPT_ID,PROVIDE_DEPT_ID,CHECK_TYPE,VITAL_LEVEL,KPI_TYPE,DEVELOP_VENDER," + "DEVELOP_USER,UUID,ASSET_REG_USER,ASSET_STATUS,REG_TIME)" + " VALUES(?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,'" + userCn + "',0,to_number( to_char( " + "SYSDATE, 'yyyymmdd' ) || '0000' ))"; final String[] questionList = question.split(","); try { // 执行操作 jdbcTemplate.batchUpdate(sql, new BatchPreparedStatementSetter() { @Override public void setValues(PreparedStatement pstat, int i) throws SQLException { Map<String, String> dataMap = list.get(i); for (int k = 0; k < questionList.length; k++) { String value = dataMap.containsKey(questionList[k]) ? (StringUtils.isBlank(dataMap.get(questionList[k])) || dataMap.get(questionList[k]) == null ? "" : dataMap.get(questionList[k])).replace("#", "") : ""; if (StringUtils.isBlank(value)) { pstat.setNull(k + 1, Types.CHAR); } else { pstat.setString(k + 1, value); } } } @Override public int getBatchSize() { // 设置本批次一共多少组数据,隐含的就是循环几次 return list.size(); } }); result = "true"; } catch (Exception e) { result = "false"; e.printStackTrace(); } return result; } /** * 新增数据分布 */ public String addLink(final List<Map<String, String>> list) { String result = "", sql = "", question = ""; question = "TABLE_ID,SYS_ID,DB_NAME,DB_ACCOUNT,TABLE_TYPE," + "TABLE_ID,SYS_ID,DB_NAME,DB_ACCOUNT,TABLE_TYPE,UUID"; sql = "MERGE INTO IPMSDW.DW_GDE_TABLE_BD_LINK T1 USING (SELECT ? TABLE_ID,? SYS_ID,? DB_NAME FROM DUAL) T2 " + " ON (T1.TABLE_ID=T2.TABLE_ID AND T1.SYS_ID=T2.SYS_ID AND T1.DB_NAME=T2.DB_NAME)" + "WHEN MATCHED THEN UPDATE SET T1.DB_ACCOUNT = ?, " + " T1.TABLE_TYPE = ?" + " WHEN NOT MATCHED THEN INSERT (TABLE_ID,SYS_ID,DB_NAME,DB_ACCOUNT,TABLE_TYPE,UUID)" + " VALUES(?,?,?,?,?,?)"; final String[] questionList = question.split(","); try { // 执行操作 jdbcTemplate.batchUpdate(sql, new BatchPreparedStatementSetter() { @Override public void setValues(PreparedStatement pstat, int i) throws SQLException { Map<String, String> dataMap = list.get(i); for (int k = 0; k < questionList.length; k++) { String value = dataMap.containsKey(questionList[k]) ? (StringUtils.isBlank(dataMap.get(questionList[k])) || dataMap.get(questionList[k]) == null ? "" : dataMap.get(questionList[k])).replace("#", "") : ""; if (StringUtils.isBlank(value)) { pstat.setNull(k + 1, Types.CHAR); } else { pstat.setString(k + 1, value); } } } @Override public int getBatchSize() { // 设置本批次一共多少组数据,隐含的就是循环几次 return list.size(); } }); result = "true"; } catch (Exception e) { result = "false"; e.printStackTrace(); } return result; } /** * 新增依赖模型 */ public String addRelyTable(final List<Map<String, String>> list) { String result = "", sql = "", question = ""; question = "PARENT_ID,TABLE_ID,PARENT_ID,TABLE_ID,UUID"; sql = "MERGE INTO IPMSDW.DW_GDE_TAB_TAB_REL T1 USING (SELECT ? PARENT_ID,? TABLE_ID FROM DUAL) T2 " + " ON (T1.TABLE_ID=T2.PARENT_ID AND T1.REL_TABLE_ID=T2.TABLE_ID)" + " WHEN NOT MATCHED THEN INSERT (TABLE_ID,REL_TABLE_ID,UUID)" + " VALUES(?,?,?)"; final String[] questionList = question.split(","); try { // 执行操作 jdbcTemplate.batchUpdate(sql, new BatchPreparedStatementSetter() { @Override public void setValues(PreparedStatement pstat, int i) throws SQLException { Map<String, String> dataMap = list.get(i); for (int k = 0; k < questionList.length; k++) { String value = dataMap.containsKey(questionList[k]) ? (StringUtils.isBlank(dataMap.get(questionList[k])) || dataMap.get(questionList[k]) == null ? "" : dataMap.get(questionList[k])).replace("#", "") : ""; if (StringUtils.isBlank(value)) { pstat.setNull(k + 1, Types.CHAR); } else { pstat.setString(k + 1, value); } } } @Override public int getBatchSize() { // 设置本批次一共多少组数据,隐含的就是循环几次 return list.size(); } }); result = "true"; } catch (Exception e) { result = "false"; e.printStackTrace(); } return result; } /** * @param * @return * @Description * @Title 新增依赖接口 * @Date 2020/8/23 20:59 * @Version 1.0 **/ public String addRelyInterface(final List<Map<String, String>> list) { String sql = "", question = "", result = "true"; question = "TABLE_ID,IF_ID,TABLE_ID,IF_ID,UUID"; sql = "MERGE INTO IPMSDW.DW_GDE_TAB_IF_REL T1 USING (SELECT ? TABLE_ID,? IF_ID FROM DUAL) T2 " + " ON (T1.TABLE_ID=T2.TABLE_ID AND T1.REL_IF_ID=T2.IF_ID)" + " WHEN NOT MATCHED THEN INSERT (TABLE_ID,REL_IF_ID,UUID)" + " VALUES(?,?,?)"; final String[] questionList = question.split(","); try { // 执行操作 jdbcTemplate.batchUpdate(sql, new BatchPreparedStatementSetter() { @Override public void setValues(PreparedStatement pstat, int i) throws SQLException { Map<String, String> dataMap = list.get(i); for (int k = 0; k < questionList.length; k++) { String value = dataMap.containsKey(questionList[k]) ? (StringUtils.isBlank(dataMap.get(questionList[k])) || dataMap.get(questionList[k]) == null ? "" : dataMap.get(questionList[k])).replace("#", "") : ""; if (StringUtils.isBlank(value)) { pstat.setNull(k + 1, Types.CHAR); } else { pstat.setString(k + 1, value); } } } @Override public int getBatchSize() { // 设置本批次一共多少组数据,隐含的就是循环几次 return list.size(); } }); result = "true"; } catch (Exception e) { e.printStackTrace(); result = "false"; } return result; } /** * @param * @return * @Description * @Title 新增接口 * @Date 2020/8/29 12:43 * @Version 1.0 **/ public String addInterface(String userCn, final List<Map<String, String>> list) { String result = "", sql = "", question = ""; question = "IF_ID,IF_NAME,IF_L1_TYPE,IF_L2_TYPE,IF_L3_TYPE,IS_ACCESS,REQ_TYPE,TIMELEVEL_ID,FILE_NAME," + "FILE_SEP,DB_TYPE,COLLECT_TIME," + "SERVERS_IP,D_ADDRESS,IF_TYPE,DATA_SOURCES_ID,VENDER_ID,VENDER_USER,MSISDN,DB_ACCOUNTS,DB_PASSWORD," + "IF_DESC," + "IF_ID,IF_NAME,IF_L1_TYPE,IF_L2_TYPE,IF_L3_TYPE,IS_ACCESS,REQ_TYPE,TIMELEVEL_ID,FILE_NAME,FILE_SEP," + "DB_TYPE,COLLECT_TIME," + "SERVERS_IP,D_ADDRESS,IF_TYPE,DATA_SOURCES_ID,VENDER_ID,VENDER_USER,MSISDN,DB_ACCOUNTS,DB_PASSWORD," + "IF_DESC,UUID"; sql = "MERGE INTO IPMSDW.DW_GDE_IF_INFO T1 USING (SELECT ? IF_ID FROM DUAL) T2 " + " ON (T1.IF_ID=T2.IF_ID)" + "WHEN MATCHED THEN UPDATE SET T1.IF_NAME = ?, " + "T1.IF_L1_TYPE = ?, T1.IF_L2_TYPE = ?," + " T1.IF_L3_TYPE = ?, T1.IS_ACCESS = ?, T1.REQ_TYPE = ?, " + "T1.TIMELEVEL_ID = ?, T1.FILE_NAME =?, " + " T1.FILE_SEP = ?, T1.DB_TYPE = ?, T1.COLLECT_TIME = ?, T1.SERVERS_IP = ?, T1.D_ADDRESS = ?, " + "T1.IF_TYPE = ?, " + "T1.DATA_SOURCES_ID = ?, T1.VENDER_ID = ?, T1.VENDER_USER = ?, T1.MSISDN = ?, T1.DB_ACCOUNTS = ?, " + "T1.DB_PASSWORD = ?, T1.IF_DESC = ?" + " WHEN NOT MATCHED THEN INSERT (IF_ID,IF_NAME,IF_L1_TYPE,IF_L2_TYPE,IF_L3_TYPE,IS_ACCESS,REQ_TYPE," + "TIMELEVEL_ID,FILE_NAME,FILE_SEP,DB_TYPE," + "COLLECT_TIME,SERVERS_IP,D_ADDRESS,IF_TYPE,DATA_SOURCES_ID,VENDER_ID,VENDER_USER,MSISDN,DB_ACCOUNTS," + "DB_PASSWORD,IF_DESC,UUID,ASSET_REG_USER,ASSET_STATUS,REG_TIME) " + "VALUES(?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,'" + userCn + "',0,to_number( to_char( SYSDATE," + " 'yyyymmdd' ) || '0000' ))"; final String[] questionList = question.split(","); try { // 执行操作 jdbcTemplate.batchUpdate(sql, new BatchPreparedStatementSetter() { @Override public void setValues(PreparedStatement pstat, int i) throws SQLException { Map<String, String> dataMap = list.get(i); for (int k = 0; k < questionList.length; k++) { String value = dataMap.containsKey(questionList[k]) ? (StringUtils.isBlank(dataMap.get(questionList[k])) || dataMap.get(questionList[k]) == null ? "" : dataMap.get(questionList[k])).replace("#", "") : ""; if (StringUtils.isBlank(value)) { pstat.setNull(k + 1, Types.CHAR); } else { if (k == 5 || k == 26 || k == 6 || k == 27) { pstat.setInt(k + 1, Integer.valueOf(value)); } else { pstat.setString(k + 1, value); } } } } @Override public int getBatchSize() { // 设置本批次一共多少组数据,隐含的就是循环几次 return list.size(); } }); result = "true"; } catch (Exception e) { result = "false"; e.printStackTrace(); } return result; } /** * @param * @return * @Description * @Title 新增接口 * @Date 2020/8/29 12:43 * @Version 1.0 **/ public String addDserv(String userCn, final List<Map<String, String>> list) { String result = "", sql = "", question = ""; question = "SERV_ID,SERV_NAME,SERV_L1_TYPE,SERV_L2_TYPE,SOURCE_TABLE,TAR_SERVER,TAR_PATH,TIME_LEVEL," + "PROCESS_NAME,FILE_SEP,FILE_SERV_NAME,TRANSFER_TIME,IF_TYPE,D_SYS,DB_ACCOUNTS,DB_PASSWORD," + "CODED_FORMAT," + "SERV_ID,SERV_NAME,SERV_L1_TYPE,SERV_L2_TYPE,SOURCE_TABLE,TAR_SERVER,TAR_PATH,TIME_LEVEL," + "PROCESS_NAME,FILE_SEP,FILE_SERV_NAME,TRANSFER_TIME,IF_TYPE,D_SYS,DB_ACCOUNTS,DB_PASSWORD," + "CODED_FORMAT,UUID"; sql = "MERGE INTO IPMSDW.DW_GDE_DSERV_INFO T1 USING (SELECT ? SERV_ID FROM DUAL) T2 " + " ON (T1.SERV_ID=T2.SERV_ID)" + "WHEN MATCHED THEN UPDATE SET T1.SERV_NAME = ?, " + "T1.SERV_L1_TYPE = ?, T1.SERV_L2_TYPE = ?," + " T1.SOURCE_TABLE = ?, T1.TAR_SERVER = ?, T1.TAR_PATH = ?, " + "T1.TIME_LEVEL = ?, T1.PROCESS_NAME =?, " + " T1.FILE_SEP = ?, T1.FILE_SERV_NAME = ?, T1.TRANSFER_TIME = ?, T1.IF_TYPE = ?, T1.D_SYS = ?, " + "T1.DB_ACCOUNTS = ?, " + "T1.DB_PASSWORD = ?, T1.CODED_FORMAT = ? " + " WHEN NOT MATCHED THEN INSERT (SERV_ID,SERV_NAME,SERV_L1_TYPE,SERV_L2_TYPE,SOURCE_TABLE,TAR_SERVER," + "TAR_PATH,TIME_LEVEL,PROCESS_NAME,FILE_SEP,FILE_SERV_NAME,TRANSFER_TIME,IF_TYPE,D_SYS,DB_ACCOUNTS," + "DB_PASSWORD,CODED_FORMAT,UUID,ASSET_REG_USER,ASSET_STATUS,REG_TIME) " + "VALUES(?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,'" + userCn + "',0,to_number( to_char( SYSDATE," + " 'yyyymmdd' ) || '0000' ))"; final String[] questionList = question.split(","); try { // 执行操作 jdbcTemplate.batchUpdate(sql, new BatchPreparedStatementSetter() { @Override public void setValues(PreparedStatement pstat, int i) throws SQLException { Map<String, String> dataMap = list.get(i); for (int k = 0; k < questionList.length; k++) { String value = dataMap.containsKey(questionList[k]) ? (StringUtils.isBlank(dataMap.get(questionList[k])) || dataMap.get(questionList[k]) == null ? "" : dataMap.get(questionList[k])).replace("#", "") : ""; if (StringUtils.isBlank(value)) { pstat.setNull(k + 1, Types.CHAR); } else { pstat.setString(k + 1, value); } } } @Override public int getBatchSize() { // 设置本批次一共多少组数据,隐含的就是循环几次 return list.size(); } }); result = "true"; } catch (Exception e) { result = "false"; e.printStackTrace(); } return result; } /** * @author tangkk * @ClassName AssetsImportDaoImpl * @Description * @Date 2020/8/29 12:43 * @Version 1.0 **/ public String addPropertyInterface(final List<Map<String, String>> list) { String result = "", sql = "", question = ""; question = "PARENT_ID,PRO_CN_NAME,PRO_EN_NAME,PARENT_ID,PRO_CN_NAME,PRO_EN_NAME,DATA_TYPE,UNIT_ID," + "DEFAULT_VAL,SAMPLE_DATA,PRO_DESC,UUID"; sql = " MERGE INTO IPMSDW.DW_GDE_IF_PROPERTY T1 USING (SELECT ? PARENT_ID,? PRO_CN_NAME, ? PRO_EN_NAME FROM " + "DUAL ) T2 " + " ON (T1.PARENT_ID = T2.PARENT_ID AND T1.PRO_CN_NAME = T2.PRO_CN_NAME AND T1.PRO_EN_NAME = " + "T2.PRO_EN_NAME ) " + " WHEN NOT MATCHED THEN INSERT ( PARENT_ID, PRO_CN_NAME, PRO_EN_NAME, DATA_TYPE, UNIT_ID, " + "DEFAULT_VAL, SAMPLE_DATA, PRO_DESC,UUID ) VALUES(?,?,?,?,?,?,?,?,? ) "; final String[] questionList = question.split(","); try { // 执行操作 jdbcTemplate.batchUpdate(sql, new BatchPreparedStatementSetter() { @Override public void setValues(PreparedStatement pstat, int i) throws SQLException { Map<String, String> dataMap = list.get(i); for (int k = 0; k < questionList.length; k++) { String value = dataMap.containsKey(questionList[k]) ? (StringUtils.isBlank(dataMap.get(questionList[k])) || dataMap.get(questionList[k]) == null ? "" : dataMap.get(questionList[k])).replace("#", "") : ""; if (StringUtils.isBlank(value)) { if (k == 7) { pstat.setNull(k + 1, Types.NUMERIC); } else { pstat.setNull(k + 1, Types.CHAR); } } else { pstat.setString(k + 1, value); } } } @Override public int getBatchSize() { // 设置本批次一共多少组数据,隐含的就是循环几次 return list.size(); } }); result = "true"; } catch (Exception e) { result = "false"; e.printStackTrace(); } return result; } /** * @author tangkk * @ClassName AssetsImportDaoImpl * @Description * @Date 2020/8/29 12:43 * @Version 1.0 **/ public String addPropertyDserv(final List<Map<String, String>> list) { String result = "", sql = "", question = ""; question = "PARENT_ID,PRO_CN_NAME,PRO_EN_NAME,PARENT_ID,PRO_CN_NAME,PRO_EN_NAME,DATA_TYPE,REMARK,UUID"; sql = " MERGE INTO IPMSDW.DW_GDE_DSERV_PROPERTY T1 USING (SELECT ? PARENT_ID,? PRO_CN_NAME, ? PRO_EN_NAME " + "FROM " + "DUAL ) T2 " + " ON (T1.PARENT_ID = T2.PARENT_ID AND T1.PRO_CN_NAME = T2.PRO_CN_NAME AND T1.PRO_EN_NAME = " + "T2.PRO_EN_NAME ) " + " WHEN NOT MATCHED THEN INSERT ( PARENT_ID, PRO_CN_NAME, PRO_EN_NAME, DATA_TYPE, REMARK,UUID ) VALUES" + "(?,?,?,?,?,?) "; final String[] questionList = question.split(","); try { // 执行操作 jdbcTemplate.batchUpdate(sql, new BatchPreparedStatementSetter() { @Override public void setValues(PreparedStatement pstat, int i) throws SQLException { Map<String, String> dataMap = list.get(i); for (int k = 0; k < questionList.length; k++) { String value = dataMap.containsKey(questionList[k]) ? (StringUtils.isBlank(dataMap.get(questionList[k])) || dataMap.get(questionList[k]) == null ? "" : dataMap.get(questionList[k])).replace("#", "") : ""; if (StringUtils.isBlank(value)) { pstat.setNull(k + 1, Types.CHAR); } else { pstat.setString(k + 1, value); } } } @Override public int getBatchSize() { // 设置本批次一共多少组数据,隐含的就是循环几次 return list.size(); } }); result = "true"; } catch (Exception e) { result = "false"; e.printStackTrace(); } return result; } /** * @param * @return * @Description * @Title 新增属性 * @Date 2020/9/30 16:34 * @Version 1.0 **/ public String addProperty(final List<Map<String, String>> list) { String result = "", sql = "", question = ""; question = "PRO_CN_NAME,PRO_EN_NAME,PARENT_ID,PRO_CN_NAME,PRO_EN_NAME,DATA_TYPE,PRO_DESC,BUSI_CALIBRE," + "PARENT_ID,UUID,SECRECY_LEVEL"; sql = "MERGE INTO IPMSDW.DW_GDE_TABLE_PROPERTY T1 USING (SELECT ? PRO_CN_NAME,? PRO_EN_NAME,? PARENT_ID FROM " + "DUAL) T2 " + " ON (T1.PRO_CN_NAME=T2.PRO_CN_NAME AND T1.PRO_EN_NAME=T2.PRO_EN_NAME AND T1.PARENT_ID=T2.PARENT_ID)" + " WHEN NOT MATCHED THEN INSERT (PRO_CN_NAME,PRO_EN_NAME,DATA_TYPE,PRO_DESC,BUSI_CALIBRE,PARENT_ID," + "UUID,SECRECY_LEVEL) VALUES(?,?,?,?,?,?,?,?)"; final String[] questionList = question.split(","); try { // 执行操作 jdbcTemplate.batchUpdate(sql, new BatchPreparedStatementSetter() { @Override public void setValues(PreparedStatement pstat, int i) throws SQLException { Map<String, String> dataMap = list.get(i); for (int k = 0; k < questionList.length; k++) { String value = dataMap.containsKey(questionList[k]) ? (StringUtils.isBlank(dataMap.get(questionList[k])) || dataMap.get(questionList[k]) == null ? "" : dataMap.get(questionList[k])).replace("#", "") : ""; if (StringUtils.isBlank(value)) { pstat.setNull(k + 1, Types.CHAR); } else { pstat.setString(k + 1, value); } } } @Override public int getBatchSize() { // 设置本批次一共多少组数据,隐含的就是循环几次 return list.size(); } }); result = "true"; } catch (Exception e) { result = "false"; e.printStackTrace(); } return result; } /** * @param * @return * @Description * @Title 新增指标报表 * @Date 2020/9/30 16:34 * @Version 1.0 **/ public String addKpiReport(final List<Map<String, String>> list) { String result = "", sql = "", question = ""; question = "KPI_ID,report_name,report_path,KPI_ID,report_name,report_path,report_desc,report_id,UUID"; sql = "MERGE INTO IPMSDW.DW_GDE_KPI_RF_REL T1 USING (SELECT ? KPI_ID,? report_name,? report_path FROM DUAL) " + "T2 " + " ON (T1.PARENT_ID=T2.KPI_ID AND T1.REPORT_NAME=T2.report_name AND T1.REPORT_PATH=T2.report_path)" + " WHEN NOT MATCHED THEN INSERT (PARENT_ID,REPORT_NAME,REPORT_PATH,REPORT_DESC,REPORT_ID,UUID) VALUES" + "(?,?,?,?,?,?)"; final String[] questionList = question.split(","); try { // 执行操作 jdbcTemplate.batchUpdate(sql, new BatchPreparedStatementSetter() { @Override public void setValues(PreparedStatement pstat, int i) throws SQLException { Map<String, String> dataMap = list.get(i); for (int k = 0; k < questionList.length; k++) { String value = dataMap.containsKey(questionList[k]) ? (StringUtils.isBlank(dataMap.get(questionList[k])) || dataMap.get(questionList[k]) == null ? "" : dataMap.get(questionList[k])).replace("#", "") : ""; if (StringUtils.isBlank(value)) { pstat.setNull(k + 1, Types.CHAR); } else { pstat.setString(k + 1, value); } } } @Override public int getBatchSize() { // 设置本批次一共多少组数据,隐含的就是循环几次 return list.size(); } }); result = "true"; } catch (Exception e) { result = "false"; e.printStackTrace(); } return result; } /** * @param * @return * @Description * @Title 新增依赖模型 * @Date 2020/9/30 16:34 * @Version 1.0 **/ public String addKpiRelyTable(final List<Map<String, String>> list) { String result = "", sql = "", question = ""; question = "KPI_ID,TABLE_ID,KPI_ID,TABLE_ID,UUID"; sql = "MERGE INTO IPMSDW.DW_GDE_KPI_TAB_ERL T1 USING (SELECT ? KPI_ID,? TABLE_ID FROM DUAL) T2 " + " ON (T1.KPI_ID=T2.KPI_ID AND T1.TABLE_ID=T2.TABLE_ID)" + " WHEN NOT MATCHED THEN INSERT (KPI_ID,TABLE_ID,UUID) VALUES(?,?,?)"; final String[] questionList = question.split(","); try { // 执行操作 jdbcTemplate.batchUpdate(sql, new BatchPreparedStatementSetter() { @Override public void setValues(PreparedStatement pstat, int i) throws SQLException { Map<String, String> dataMap = list.get(i); for (int k = 0; k < questionList.length; k++) { String value = dataMap.containsKey(questionList[k]) ? (StringUtils.isBlank(dataMap.get(questionList[k])) || dataMap.get(questionList[k]) == null ? "" : dataMap.get(questionList[k])).replace("#", "") : ""; if (StringUtils.isBlank(value)) { pstat.setNull(k + 1, Types.CHAR); } else { pstat.setString(k + 1, value); } } } @Override public int getBatchSize() { // 设置本批次一共多少组数据,隐含的就是循环几次 return list.size(); } }); result = "true"; } catch (Exception e) { result = "false"; e.printStackTrace(); } return result; } /** * @param * @return * @Description * @Title 新增指标依赖指标 * @Date 2020/9/30 16:35 * @Version 1.0 **/ public String addKpiRelyKpi(final List<Map<String, String>> list) { String result = "", sql = "", question = ""; question = "KPI_ID,REL_KPI_ID,KPI_ID,REL_KPI_ID,UUID"; sql = "MERGE INTO IPMSDW.DW_GDE_KPI_KPI_REL T1 USING (SELECT ? KPI_ID,? REL_KPI_ID FROM DUAL) T2 " + " ON (T1.KPI_ID=T2.KPI_ID AND T1.REL_KPI_ID=T2.REL_KPI_ID)" + " WHEN NOT MATCHED THEN INSERT (KPI_ID,REL_KPI_ID,UUID) VALUES(?,?,?)"; final String[] questionList = question.split(","); try { // 执行操作 jdbcTemplate.batchUpdate(sql, new BatchPreparedStatementSetter() { @Override public void setValues(PreparedStatement pstat, int i) throws SQLException { Map<String, String> dataMap = list.get(i); for (int k = 0; k < questionList.length; k++) { String value = dataMap.containsKey(questionList[k]) ? (StringUtils.isBlank(dataMap.get(questionList[k])) || dataMap.get(questionList[k]) == null ? "" : dataMap.get(questionList[k])).replace("#", "") : ""; if (StringUtils.isBlank(value)) { pstat.setNull(k + 1, Types.CHAR); } else { pstat.setString(k + 1, value); } } } @Override public int getBatchSize() { // 设置本批次一共多少组数据,隐含的就是循环几次 return list.size(); } }); result = "true"; } catch (Exception e) { result = "false"; e.printStackTrace(); } return result; } }
直接写存贮过程,适合Excel批量导入
最新推荐文章于 2023-07-16 12:35:22 发布