From 2ece722bfafa27e3ef5dd5e060ee0624e6f263a6 Mon Sep 17 00:00:00 2001 From: zjh <zjh@888> Date: 星期三, 19 六月 2024 19:20:14 +0800 Subject: [PATCH] zjh 本地 2024/06/19 --3 --- ltkj-admin/src/main/java/com/ltkj/web/controller/his/HisApiGetMethodService.java | 97 +++++++++++++++++++----------------------------- 1 files changed, 38 insertions(+), 59 deletions(-) diff --git a/ltkj-admin/src/main/java/com/ltkj/web/controller/his/HisApiGetMethodService.java b/ltkj-admin/src/main/java/com/ltkj/web/controller/his/HisApiGetMethodService.java index 08bc676..8f243c6 100644 --- a/ltkj-admin/src/main/java/com/ltkj/web/controller/his/HisApiGetMethodService.java +++ b/ltkj-admin/src/main/java/com/ltkj/web/controller/his/HisApiGetMethodService.java @@ -1,5 +1,6 @@ package com.ltkj.web.controller.his; +import cn.hutool.core.bean.BeanUtil; import cn.hutool.core.util.StrUtil; import cn.hutool.json.JSONArray; import cn.hutool.json.JSONObject; @@ -76,7 +77,10 @@ * @param type 鎺ュ彛浠g爜 * @param params 璇锋眰鍙傛暟 * @return + * @deprecated + * 鏂规硶宸插純鐢�,灏唖witch鏇存敼涓烘暟鎹簱鍖归厤 浣跨敤鏂版柟娉晎@link #getHISDataNew(String, Map)} */ + @Deprecated @Transactional public AjaxResult getHISData(String type, Map<String, Object> params) { AjaxResult result = null; @@ -138,7 +142,7 @@ List<Map<String, String>> list = new ArrayList<>(); for (Object resultDatum : resultData) { JSONObject object = (JSONObject) resultDatum; - ajaxResult = save(object, type,null); + ajaxResult = save(object, type,null,JSONUtil.toJsonStr(params)); Map<String, String> map = new HashMap<>(); for (String key : object.keySet()) { String defaultVal = object.get(key).toString(); @@ -170,7 +174,7 @@ return AjaxResult.error().put("result", JSONUtil.parseObj(json)); } } - + @Transactional public AjaxResult getHISDataNew(String type, Map<String, Object> params){ LambdaQueryWrapper<HisApiConfig> lambdaQueryWrapper = new LambdaQueryWrapper<>(); @@ -190,7 +194,7 @@ List<Map<String, String>> list = new ArrayList<>(); for (Object resultDatum : resultData) { JSONObject object = (JSONObject) resultDatum; - ajaxResult = save(object, type,hisApiConfig); + ajaxResult = save(object, type,hisApiConfig,JSONUtil.toJsonStr(params)); Map<String, String> map = new HashMap<>(); for (String key : object.keySet()) { String defaultVal = object.get(key).toString(); @@ -214,7 +218,7 @@ * @param code 鎺ュ彛浠g爜 * @return 鎵ц鏄惁鎴愬姛 */ - public AjaxResult save(JSONObject object, String code,HisApiConfig hisApiConfig) { + public AjaxResult save(JSONObject object, String code,HisApiConfig hisApiConfig,String paramsJson) { Connection connection = getConnection(); Boolean isExists = tabIsExists(connection, hisApiConfig.getTabName()); if (null == isExists) @@ -229,7 +233,7 @@ } //鎻掑叆鏁版嵁 try { - operationTable(object,connection,hisApiConfig); + operationTable(object,connection,hisApiConfig,paramsJson); } catch (SQLException e) { e.printStackTrace(); return AjaxResult.error(); @@ -242,63 +246,24 @@ } /** - * ResultData涓洪泦鍚� - * 鏍规嵁his鎺ュ彛杩斿洖鍊� 鎻掑叆鏁版嵁 - * 濡傛灉娌℃湁琛ㄥ垯鍒涘缓琛� 鎺ュ彛澧炲姞浜嗗瓧娈靛垯涓鸿〃澧炲姞瀛楁 - * - * @param code 鎺ュ彛浠g爜 - * @return 鎵ц鏄惁鎴愬姛 - */ - public AjaxResult saveArray(String json, String code) { - code = code.toLowerCase(); - JSONObject jsonObject = JSONUtil.parseObj(json); - JSONObject response = jsonObject.getJSONObject("Response"); - String tabName = "ltkj_" + code; - if (response.getStr("ResultCode").equals("0")) { - JSONArray resultData = response.getJSONArray("ResultData"); - Connection connection = getConnection(); - for (Object resultDatum : resultData) { - JSONObject object = (JSONObject) resultDatum; - Boolean isExists = tabIsExists(connection, tabName); - if (null == isExists) - return AjaxResult.error(); - if (!isExists) { - try { - creatTable(object, tabName, connection); - } catch (SQLException throwables) { - throwables.printStackTrace(); - return AjaxResult.error(); - } - } - //鎻掑叆鏁版嵁 - try { - operationTable(object,connection,null); - } catch (SQLException throwables) { - throwables.printStackTrace(); - return AjaxResult.error(); - } - } - try { - if (connection != null) - connection.close(); - } catch (SQLException throwables) { - } - } - return AjaxResult.success(); - } - - /** * 鎿嶄綔琛� * * @param connection * @throws SQLException */ - private void operationTable(JSONObject jsonObject, Connection connection,HisApiConfig hisApiConfig) throws SQLException { + private void operationTable(JSONObject jsonObject, Connection connection,HisApiConfig hisApiConfig,String paramsJson) throws SQLException { List<String> columns = getColumns(hisApiConfig.getTabName(), connection); ArrayList<String> responseColums = new ArrayList<>(); for (Map.Entry<String, Object> entry : jsonObject.entrySet()) { String key = entry.getKey().trim().toLowerCase(); responseColums.add(key); + } + Map<String, Object> beanToMap = BeanUtil.beanToMap(JSONUtil.parseObj(paramsJson)); + Set<Map.Entry<String, Object>> entries = beanToMap.entrySet(); + for (Map.Entry<String, Object> entry : entries) { + String key = "request_params_"+entry.getKey().trim().toLowerCase(); + if (!columns.contains(key)) + responseColums.add(key); } responseColums.removeAll(columns); if (!responseColums.isEmpty()) { @@ -308,13 +273,9 @@ statement.executeUpdate(sql); statement.close(); } - if (hisApiConfig == null) - insertData(hisApiConfig, connection, jsonObject); - else insertDataNew(connection, jsonObject,hisApiConfig); + insertDataNew(connection, jsonObject,hisApiConfig,paramsJson); } else { - if (hisApiConfig == null) - insertData(hisApiConfig, connection, jsonObject); - else insertDataNew(connection, jsonObject,hisApiConfig); + insertDataNew(connection, jsonObject,hisApiConfig,paramsJson); } } @@ -385,7 +346,7 @@ * @param jsonObject * @throws SQLException */ - private void insertDataNew(Connection connection, JSONObject jsonObject,HisApiConfig hisApiConfig) throws SQLException { + private void insertDataNew(Connection connection, JSONObject jsonObject,HisApiConfig hisApiConfig,String paramsJson) throws SQLException { List<String> primaryKesList = Arrays.stream(hisApiConfig.getPrimaryKeys().split(",")).map(String::toLowerCase).collect(Collectors.toList()); StringBuilder deleteSqlBuilder = new StringBuilder(); StringBuilder insertSqlBuilder = new StringBuilder(); @@ -424,8 +385,25 @@ // log.info("鍒犻櫎鏉℃暟 ->{}",i); statement.close(); insertSqlBuilder.append("insert_time, "); + insertSqlBuilder.append("request_params, "); + DatabaseMetaData metaData = connection.getMetaData(); + try (ResultSet resultSet = metaData.getColumns(null, null, hisApiConfig.getTabName(), "request_params")) { + if (!resultSet.next()){ + String alterTableSQL = String.format("ALTER TABLE %s ADD COLUMN %s %s", hisApiConfig.getTabName(), "request_params", "text"); + statement = connection.createStatement(); + statement.execute(alterTableSQL); + } + } String time = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(new Date()); valueBuilder.append("'").append(time).append("'").append(", "); + valueBuilder.append("'").append(paramsJson).append("'").append(", "); + Map<String, Object> beanToMap = BeanUtil.beanToMap(JSONUtil.parseObj(paramsJson)); + Set<Map.Entry<String, Object>> entries = beanToMap.entrySet(); + for (Map.Entry<String, Object> entry : entries) { + String key = "request_params_"+entry.getKey().trim().toLowerCase(); + insertSqlBuilder.append(key).append(", "); + valueBuilder.append("'").append(entry.getValue().toString()).append("', "); + } insertSqlBuilder.delete(insertSqlBuilder.length() - 2, insertSqlBuilder.length()); valueBuilder.delete(valueBuilder.length() - 2, valueBuilder.length()); insertSqlBuilder.append(") values (").append(valueBuilder).append(")"); @@ -541,6 +519,7 @@ sql.append(key).append(" VARCHAR(200) null,"); } sql.append("insert_time").append(" VARCHAR(200) null,"); + sql.append("request_params").append(" text null COMMENT '璇锋眰鍙傛暟',"); sql = new StringBuilder(sql.substring(0, sql.length() - 1)); sql.append(");"); Statement statement = connection.createStatement(); -- Gitblit v1.8.0