From 4d9364da736f322cfeeec2815e83f2a3f6534223 Mon Sep 17 00:00:00 2001
From: zss <zss@example.com>
Date: 星期二, 30 七月 2024 20:04:16 +0800
Subject: [PATCH] Merge remote-tracking branch 'origin/master'
---
cnas-server/src/main/java/com/yuanchu/mom/utils/DataAcquisition.java | 536 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++-
1 files changed, 520 insertions(+), 16 deletions(-)
diff --git a/cnas-server/src/main/java/com/yuanchu/mom/utils/DataAcquisition.java b/cnas-server/src/main/java/com/yuanchu/mom/utils/DataAcquisition.java
index 7766817..ab8db5b 100644
--- a/cnas-server/src/main/java/com/yuanchu/mom/utils/DataAcquisition.java
+++ b/cnas-server/src/main/java/com/yuanchu/mom/utils/DataAcquisition.java
@@ -1,32 +1,536 @@
package com.yuanchu.mom.utils;
+import cn.hutool.core.io.IORuntimeException;
+import cn.hutool.http.HttpUtil;
+import com.alibaba.fastjson.JSON;
+import com.alibaba.fastjson.JSONArray;
+import com.alibaba.fastjson.JSONObject;
+import com.baomidou.mybatisplus.core.toolkit.ObjectUtils;
+import com.yuanchu.mom.exception.ErrorException;
import com.yuanchu.mom.pojo.DataConfig;
-import com.yuanchu.mom.vo.Result;
+import com.yuanchu.mom.pojo.Device;
+import javax.script.ScriptEngine;
+import javax.script.ScriptEngineManager;
import javax.servlet.http.HttpServletRequest;
-import java.util.List;
+import java.math.BigDecimal;
+import java.util.*;
+import java.util.regex.Matcher;
+import java.util.regex.Pattern;
+import java.util.stream.Collectors;
public class DataAcquisition {
private static final String HTTP = "http://";
- private static final String GETFILE = "/lims/getFile";
+ private static final String GETFILE = ":9527/lims/getFile"; // 鑾峰彇鏂囦欢鎺ュ彛
- private static final String MOVEFILE = "/lims/moveFile";
+ private static final String MOVEFILE = ":9527/lims/moveFile"; // 鏂囦欢绉诲姩鍦板潃
- public static Result<?> dataAcquisitionEntrance(HttpServletRequest request, List<DataConfig> dataConfig) {
+ private static final String splitIdentifier = "@-@"; // 鑷畾涔夊敮涓�鏍囪瘑鍒嗗壊绗�
+
+ public static final String frequency = "frequency";
+
+ /**
+ * 鏁伴噰鍏ュ彛
+ *
+ * @param dataConfig
+ * @param device
+ * @return
+ */
+ public static Map<String, String> dataAcquisitionEntrance(List<DataConfig> dataConfig, Device device, String entrustCode, String sampleCode, String ip) {
+ /**
+ * filePath 鏂囦欢閲囬泦璺緞
+ * fileExtension 鏂囦欢鍚庣紑
+ * entrustCode 濮旀墭缂栧彿
+ * sampleCode 鏍峰搧缂栧彿
+ * mdbEntrustCode mdb鏂囦欢闇�瑕侊細濮旀墭缂栧彿瀛楁
+ * mdbSampleCode mdb鏂囦欢闇�瑕侊細鏍峰搧缂栧彿瀛楁
+ */
+ String http = HTTP + ip + GETFILE +
+ "?filePath=" + device.getCollectUrl() +
+ "&fileExtension=" + device.getFileType() +
+ "&entrustCode=" + entrustCode +
+ "&sampleCode=" + sampleCode +
+ "&mdbEntrustCode=" + device.getMdbEntrustCode() +
+ "&mdbSampleCode=" + device.getMdbSampleCode();
+ String result = null;
+ try {
+ result = HttpUtil.get(http);
+ } catch (IORuntimeException e) {
+ throw new ErrorException("鎵�鍦ㄧ數鑴戞湭瀹夎鎴栨湭鍚姩锛歀IMS鏂囦欢閲囬泦鍣紒");
+ }
+ JSONObject jsonObject = JSON.parseObject(result);
+ if (Objects.equals(jsonObject.get("code"), 1)) {
+ if (ObjectUtils.isEmpty(jsonObject.get("msg"))) {
+ throw new ErrorException("鏈煡璇㈠埌鏁版嵁锛屽彲鑳芥枃浠惰矾寰勯厤缃敊璇紒");
+ } else {
+ System.out.println(jsonObject);
+ throw new ErrorException("鏈煡閿欒锛岃鑱旂郴绠$悊鍛橈紒");
+ }
+ } else {
+ String data = jsonObject.get("data").toString();
+ // 鑰冭檻鍒颁竴涓娴嬮」鍙兘浼氬瓨鍦ㄥ涓暟閲囬厤缃紝鎵�浠ラ渶瑕佽繘琛屽垎缁�
+ Map<String, List<DataConfig>> userMap = dataConfig.stream()
+ .peek(i -> i.setInsProductItem(
+ i.getInspectionItem().equals(i.getInspectionItemSubclass()) ? i.getInspectionItem() + "," : i.getInspectionItem() + "," + i.getInspectionItemSubclass()
+ ))
+ .collect(Collectors.groupingBy(DataConfig::getInsProductItem));
+ Map<String, String> map;
+ switch (device.getFileType()) {
+ case ".docx":
+ map = analysisString(data, userMap);
+ break;
+ case ".xlsx":
+ map = analysisList(data, userMap);
+ break;
+ case ".txt":
+ map = analysisTxt(data, userMap);
+ break;
+ case ".csv":
+ map = analysisList(data, userMap);
+ break;
+ case ".mdb":
+ map = analysisMdb(data, userMap);
+ break;
+ case ".db":
+ map = analysisDb(data, userMap);
+ break;
+ case ".png":
+ map = readPngString(data, userMap);
+ break;
+ default:
+ map = null;
+ break;
+ }
+ // 濡傛灉瀛樺湪瀛樺偍鍦板潃锛屽垯绉诲姩鍦板潃
+ if (ObjectUtils.isNotEmpty(device.getStorageUrl())) {
+ String s = HTTP + ip + MOVEFILE + "?startFilePath=" + device.getCollectUrl() + "&endFilePath=" + device.getStorageUrl() + "&fileType=" + device.getFileType();
+ String storageUrlResult = HttpUtil.get(s);
+ JSONObject storageUrlResultJson = JSON.parseObject(storageUrlResult);
+ }
+ return map;
+ }
+ }
+
+ public static String createFrequency(String entrustCode, String sampleCode) {
+ String key = frequency + ":" + entrustCode + ":" + sampleCode;
+ boolean b = RedisUtil.hasKey(key);
+ String frequencyValue;
+ if (b) {
+ long incr = RedisUtil.incr(key, 1);
+ frequencyValue = String.valueOf(incr);
+ } else {
+ RedisUtil.set(key, 1);
+ frequencyValue = "1";
+ }
+ return frequencyValue;
+ }
+
+ /**
+ * 闇�瑕侀�氳繃X,Y杞村畾浣�
+ *
+ * @param data
+ * @param dataConfig
+ * @return
+ */
+ private static Map<String, String> analysisDb(String data, Map<String, List<DataConfig>> dataConfig) {
+ JSONObject jsonObject = JSON.parseObject(data);
+ Map<String, String> map = new HashMap<>();
+ if (jsonObject.isEmpty()) {
+ return map;
+ }
+ JSONArray dataList = JSONArray.parseArray(jsonObject.get("data").toString());
+ dataConfig.forEach((k, v) -> {
+ List<Object> list = new ArrayList<>();
+ for (int config = 0; config < v.size(); config++) {
+ String referx = getRefer(v.get(config).getReferx());
+ for (int i = 0; i < dataList.size(); i++) {
+ JSONObject jsonObject1 = JSON.parseObject(dataList.get(i).toString());
+ Object o = jsonObject1.get(referx);
+ if (ObjectUtils.isNotEmpty(o)) {
+ list.add(o);
+ }
+ }
+ }
+ // 杩涜鍏紡璁$畻
+ String resultValue = calculationFormula(list, v.get(0), k);
+ map.put(k, resultValue);
+ });
+ return map;
+ }
+
+ /**
+ * @param data
+ * @param dataConfig
+ * @return
+ */
+ private static Map<String, String> analysisMdb(String data, Map<String, List<DataConfig>> dataConfig) {
+ JSONObject jsonObject = JSON.parseObject(data);
+ Map<String, String> map = new HashMap<>();
+ if (jsonObject.isEmpty()) {
+ return map;
+ }
+ JSONArray dataList = JSONArray.parseArray(jsonObject.get("data").toString());
+ dataConfig.forEach((k, v) -> {
+ List<Object> list = new ArrayList<>();
+ for (int config = 0; config < v.size(); config++) {
+ String referx = getRefer(v.get(config).getReferx());
+ for (int i = 0; i < dataList.size(); i++) {
+ JSONObject jsonObject1 = JSON.parseObject(dataList.get(i).toString());
+ Object o = jsonObject1.get(referx);
+ if (ObjectUtils.isNotEmpty(o)) {
+ list.add(o);
+ }
+ }
+ }
+ // 杩涜鍏紡璁$畻
+ String resultValue = calculationFormula(list, v.get(0), k);
+ map.put(k, resultValue);
+ });
+ return map;
+ }
+
+ private static Pattern SPATTERN = Pattern.compile("([-+])?\\d+(\\.\\d+)?");
+
+ /**
+ * 鍙渶X杞�
+ *
+ * @param data 閲囬泦鍒扮殑鏂囦欢瀛楃涓�
+ * @param dataConfig 鐢ㄦ埛閰嶇疆濂界殑x,y杞村畾浣嶆暟鎹笌鍙傜収鐗�
+ * @return
+ */
+ private static Map<String, String> readPngString(String data, Map<String, List<DataConfig>> dataConfig) {
+ Map<String, String> map = new HashMap<>();
+ dataConfig.forEach((k, v) -> {
+ List<Object> list = new ArrayList<>();
+ for (int config = 0; config < v.size(); config++) {
+ String referx = getRefer(v.get(config).getReferx());
+ String result = null;
+ // 閫氳繃\n灏嗗瓧绗︿覆鍒嗗壊涓鸿
+ String[] aColumnY = data.split("\n");
+ List<String> list1 = new ArrayList<>();
+ // 璇ュ惊鐜緱鍑虹敤鎴烽厤缃殑y杞�
+ for (int i = 0; i < aColumnY.length; i++) {
+ String addDataWithSpaces = referx.replaceAll("", " ");
+ int x = getXOrY(v.get(config).getX(), k, "X");
+ if (aColumnY[i].contains(addDataWithSpaces)) {
+ Matcher matcher = SPATTERN.matcher(aColumnY[i]);
+ while (matcher.find()) {
+ String group = matcher.group();
+ list1.add(group);
+ }
+ }
+ if (ObjectUtils.isNotEmpty(list1)) {
+ result = list1.get(x);
+ }
+ }
+ if (ObjectUtils.isNotEmpty(result)) {
+ list.add(result);
+ }
+ }
+ // 杩涜鍏紡璁$畻
+ String resultValue = calculationFormula(list, v.get(0), k);
+ map.put(k, resultValue);
+ });
+ return map;
+ }
+
+ /**
+ * 浠庢枃浠朵腑鎻愬彇鍑烘潵鐨勬枃瀛楋紝濡傛灉鏈夊叕寮忥紝杩涜鍏紡璁$畻锛屽惁鍒欏彇鍒楄〃绗竴涓��
+ *
+ * @param list 鎻愬彇鍑虹殑鏁板瓧
+ * @param dataConfig 瀛樺偍鍏紡鐨勫璞�
+ * @return
+ */
+ private static String calculationFormula(List<Object> list, DataConfig dataConfig, String insProductItem) {
+ if (list.size() == 0) {
+ return null;
+ }
+ // 濡傛灉涓嶄负绌猴紝杩涜鍏紡璁$畻
+ if (ObjectUtils.isNotEmpty(dataConfig.getFormula())) {
+ String formula = dataConfig.getFormula();
+ //棣栧厛灏唋ist杞崲涓篵igdecmic
+ List<BigDecimal> bigDecimalList = list.stream()
+ .map(obj -> {
+ return new BigDecimal((obj).toString());
+ }).collect(Collectors.toList());
+ System.out.println(bigDecimalList);
+
+ //灏嗕腑鏂囩殑(杞崲鑻辨枃鐨�())
+ formula = formula.replace("锛�", "(")
+ .replace("锛�", ")")
+ .replace("锛�", ",");
+ //鐒跺悗鎻愬彇鑻辨枃瀛楁瘝,鍏ㄩ儴杞崲涓哄ぇ鍐�
+ String[] strs = formula.split("[^A-Za-z]+");
+ String upperStr = "";
+ for (String str : strs) {
+ upperStr += str.toUpperCase();
+ }
+ if (upperStr.equals("")) {
+ throw new ErrorException(formula + "閲岄潰鐨勫叕寮忔病鏈夊嚱鏁�");
+ }
+ //鐒跺悗鑾峰彇鏈�澶栭潰鎷彿閲岄潰鐨勫��,鍐嶆牴鎹�","鍒嗗壊
+ int start = formula.indexOf("(");
+ int end = -1;
+ int a = 0;
+ for (int i = start; i < formula.length(); i++) {
+ char c = formula.charAt(i);
+ if (c == '(') {
+ a++;
+ } else if (c == ')') {
+ a--;
+ if (a == 0) {
+ end = i;
+ }
+ }
+ }
+ if (start == -1 || end == -1) {
+ throw new ErrorException("鍏紡鎷彿涓嶅尮閰�: " + formula);
+ }
+
+ String inner = formula.substring(start + 1, end);
+ List<String> arguments = new ArrayList<>();
+ int depth = 0;
+ StringBuilder currentArgument = new StringBuilder();
+ for (
+ char c : inner.toCharArray()) {
+ if (c == ',' && depth == 0) {
+ arguments.add(currentArgument.toString());
+ currentArgument.setLength(0);
+ } else {
+ if (c == '(') {
+ depth++;
+ } else if (c == ')') {
+ depth--;
+ }
+ currentArgument.append(c);
+ }
+ }
+ arguments.add(currentArgument.toString());
+ String[] bracketStrs = arguments.toArray(new String[0]);
+
+ List<BigDecimal> results = new ArrayList<>();
+ for (
+ String expr : bracketStrs) {
+ System.out.println("鏇挎崲鍓�" + expr);
+ Pattern pattern = Pattern.compile("\\b\\d+\\b");
+ Matcher matcher = pattern.matcher(expr);
+ StringBuffer sb = new StringBuffer();
+ while (matcher.find()) {
+ int index = Integer.parseInt(matcher.group()) - 1;
+ if (index < bigDecimalList.size()) {
+ matcher.appendReplacement(sb, bigDecimalList.get(index).toString());
+ } else {
+ throw new ErrorException("琛ㄨ揪寮忎腑鐨勪笅鏍� " + index + " 瓒呭嚭鑼冨洿");
+ }
+ }
+ matcher.appendTail(sb);
+ System.out.println("鏇挎崲鍚�" + sb.toString());
+ //璁$畻
+ ScriptEngine engine = new ScriptEngineManager().getEngineByName("JavaScript");
+ try {
+ Object result = engine.eval(sb.toString());
+ results.add(new BigDecimal(result.toString()));
+ } catch (Exception e) {
+ throw new IllegalArgumentException("鏃犳硶璁$畻琛ㄨ揪寮�: " + sb, e);
+ }
+ }
+ // 鏍规嵁鍑芥暟鍚嶇О杩涜鐩稿簲璁$畻
+ BigDecimal finalResult;
+ switch (upperStr) {
+ case "MAX":
+ finalResult = results.stream().max(BigDecimal::compareTo)
+ .orElseThrow(() -> new IllegalArgumentException("鏃犳硶璁$畻MAX鍊�"));
+ break;
+ case "MIN":
+ finalResult = results.stream().min(BigDecimal::compareTo)
+ .orElseThrow(() -> new IllegalArgumentException("鏃犳硶璁$畻MIN鍊�"));
+ break;
+ case "SUM":
+ finalResult = results.stream().reduce(BigDecimal.ZERO, BigDecimal::add);
+ break;
+ case "ABS":
+ finalResult = results.stream().map(BigDecimal::abs).reduce(BigDecimal.ZERO, BigDecimal::add);
+ break;
+ case "AVERAGE":
+ finalResult = results.stream().reduce(BigDecimal.ZERO, BigDecimal::divide)
+ .divide(BigDecimal.valueOf(results.size()), 2, BigDecimal.ROUND_HALF_UP);
+ break;
+ case "MEDIAN":
+ int size = results.size();
+ if (size % 2 == 1) {
+ finalResult = results.get(size / 2);
+ } else {
+ BigDecimal sum = results.get(size / 2 - 1).add(results.get(size / 2));
+ finalResult = sum.divide(BigDecimal.valueOf(2), 2, BigDecimal.ROUND_HALF_UP);
+ }
+ break;
+ default:
+ throw new UnsupportedOperationException("鏆備笉鏀寔鍑芥暟: " + upperStr);
+ }
+ System.out.println(results);
+ System.out.println("璁$畻缁撴灉: " + finalResult);
+
+ return finalResult.toString();
+ // 鍚﹀垯锛氭病鏈夊叕寮忎唬琛ㄤ笉闇�瑕佽绠楋紝鐩存帴鎻愬彇List閲岄潰鐨勬暟鎹�
+ } else {
+ // 杩欓噷鍙細鍙栧垪琛ㄧ涓�涓暟鎹�
+ if (list.size() > 1) {
+ throw new ErrorException("鏈粰锛�" + insProductItem + " 閰嶇疆鍏紡锛屽彲鏄嵈閲囬泦鍒颁簡" + list.size() + "涓�硷紒鍒嗗埆涓猴細" + list);
+ } else {
+ return list.get(0).toString();
+ }
+ }
+ }
+
+ /**
+ * 瑙f瀽String鏁版嵁
+ *
+ * @param data 閲囬泦鍒扮殑鏂囦欢瀛楃涓�
+ * @param dataConfig 鐢ㄦ埛閰嶇疆濂界殑x,y杞村畾浣嶆暟鎹笌鍙傜収鐗�
+ * @return
+ */
+ private static Map<String, String> analysisTxt(String data, Map<String, List<DataConfig>> dataConfig) {
+ Map<String, String> map = new HashMap<>();
+ dataConfig.forEach((k, v) -> {
+ List<Object> list = analyzeData(data, v, k, ",");
+ // 杩涜鍏紡璁$畻
+ String resultValue = calculationFormula(list, v.get(0), k);
+ map.put(k, resultValue);
+ });
+ return map;
+ }
+
+ /**
+ * @param data 閲囬泦鍒扮殑鏂囦欢瀛楃涓�
+ * @param dataConfig 鐢ㄦ埛閰嶇疆濂界殑x,y杞村畾浣嶆暟鎹笌鍙傜収鐗�
+ * @return
+ */
+ private static Map<String, String> analysisString(String data, Map<String, List<DataConfig>> dataConfig) {
+ String processingDataAfterSpaces = data
+ .replaceAll(" +", splitIdentifier)
+ .replaceAll("\r", "")
+ .replaceAll(" ", "");
+ Map<String, String> map = new HashMap<>();
+ dataConfig.forEach((k, v) -> {
+ List<Object> list = analyzeData(processingDataAfterSpaces, v, k, splitIdentifier);
+ // 杩涜鍏紡璁$畻
+ String resultValue = calculationFormula(list, v.get(0), k);
+ map.put(k, resultValue);
+ });
+ return map;
+ }
+
+ /**
+ * 鍙朮锛孻涓や釜瀹氫綅
+ *
+ * @param data 閲囬泦鍒扮殑鏂囦欢瀛楃涓�
+ * @param dataConfig 鐢ㄦ埛閰嶇疆濂界殑x,y杞村畾浣嶆暟鎹笌鍙傜収鐗�
+ * @return
+ */
+ public static Map<String, String> analysisList(String data, Map<String, List<DataConfig>> dataConfig) {
+ Map<String, String> map = new HashMap<>();
+ dataConfig.forEach((k, v) -> {
+ // 鐢ㄦ埛鍙兘缁欎竴涓瓙椤圭洰閰嶇疆浜嗗涓厤缃紝鍗充竴涓」鐩彇澶氫釜鍊硷紝鎵�浠ラ渶瑕佸惊鐜�
+ List<Object> list = analyzeData(data, v, k, splitIdentifier);
+ // 杩涜鍏紡璁$畻
+ String resultValue = calculationFormula(list, v.get(0), k);
+ map.put(k, resultValue);
+ });
+ return map;
+ }
+
+ // 鐢变簬鍦ㄦ柟娉曚腑浼氬ぇ閲忕殑鍒ゆ柇锛屾墍浠ュ仛涓�涓柟娉�
+ private static int getXOrY(String value, String k, String tips) {
+ try {
+ return Integer.parseInt(value);
+ } catch (NumberFormatException e) {
+ throw new ErrorException(k + "锛氭湭閰嶇疆" + tips + "鍧愭爣杞寸殑鍊硷紒");
+ }
+ }
+
+ // 闃叉鍙傜収鐗╀负绌烘姤閿欙紝杩涜鍒ゆ柇濡傛灉涓虹┖璧嬪�肩┖瀛楃
+ private static String getRefer(String refer) {
+ return ObjectUtils.isNotEmpty(refer) ? refer.replaceAll(" ", "") : "";
+ }
+
+ public static List<Object> analyzeData(String data, List<DataConfig> v, String k, String split) {
+ List<Object> list = new ArrayList<>();
+ for (int config = 0; config < v.size(); config++) {
+ // 鍙栦袱涓敤鎴烽厤缃殑鍙傜収鐗�
+ String referx = getRefer(v.get(config).getReferx());
+ String refery = getRefer(v.get(config).getRefery());
+ // 鏈�缁堢粨鏋�
+ String result = null;
+ // 閫氳繃\n灏嗗瓧绗︿覆鍒嗗壊涓鸿
+ String[] aColumnY = data.replaceAll(" ", "").split("\n");
+ Integer end = null;
+ // 閲囬泦鏁版嵁锛歒杞�
+ for (int i = 0; i < aColumnY.length; i++) {
+ // 鍙杧鐨勫�硷紝闃叉鎶ラ敊
+ int x = getXOrY(v.get(config).getX(), k, "X");
+ // 濡傛灉Y涓嶺鐢ㄦ埛閮介厤缃簡鍒欐墽琛�
+ if (ObjectUtils.isNotEmpty(refery)) {
+ // 鍙朰鍧愭爣鍊�
+ int y = getXOrY(v.get(config).getY(), k, "Y");
+ // 缂撳瓨Y鐨勭粨鏉熷��
+ if (ObjectUtils.isEmpty(end) && aColumnY[i].contains(refery)) {
+ end = i + y;
+ }
+ // 鍒ゆ柇鏄惁鍦ㄥ弬鐓х墿涓鸿捣鍒帮紝Y鍧愭爣鍊间负鏈�缁堣寖鍥�
+ if (ObjectUtils.isNotEmpty(end) && i <= end) {
+ String[] aLineX = aColumnY[i].split(split);
+ for (int j = 0; j < aLineX.length; j++) {
+ if (aLineX[j].contains(referx)) {
+ try {
+ result = aLineX[j + x];
+ } catch (Exception e) {
+ throw new ErrorException(k + "锛歑杞村畾浣嶈秴鍑猴紒");
+ }
+ break;
+ }
+ }
+ }
+ // 濡傛灉鍙厤缃簡X锛屽垯鎵ц涓嬮潰鐨勪唬鐮�
+ } else if (aColumnY[i].contains(referx) && ObjectUtils.isEmpty(refery)) {
+ String[] aLineX = aColumnY[i].split(split);
+ for (int j = 0; j < aLineX.length; j++) {
+ if (aLineX[j].contains(referx)) {
+ try {
+ result = aLineX[j + x];
+ } catch (Exception e) {
+ throw new ErrorException(k + "锛歑杞村畾浣嶈秴鍑猴紒");
+ }
+ }
+ }
+ }
+ }
+ // 闃叉璁$畻鍏紡鐨勬椂鍊欏嚭鐜帮細[null] 杩欑鏁版嵁
+ if (ObjectUtils.isNotEmpty(result)) {
+ String formatProcessing = getFormatProcessing(result);
+ list.add(formatProcessing);
+ }
+ }
+ return list;
+ }
+
+ public static String getFormatProcessing(String value) {
+ value = value.replaceAll("%", "");
+ if (value.contains("=")) {
+ String[] split = value.split("=");
+ return split[split.length - 1];
+ } else if (value.contains(":")) {
+ String[] split = value.split(":");
+ return split[split.length - 1];
+ } else {
+ return value;
+ }
+ }
+
+ public static String getIp(HttpServletRequest request) {
String ipAddress = request.getRemoteAddr();
// 闃叉鍥炵幆鍦板潃鍙樹负IPv6
- String ip = ipAddress.equals("0:0:0:0:0:0:0:1") ? "127.0.0.1" : ipAddress;
-// String http = HTTP + ip + GETFILE + "?filePath=" + dataConfig.get(0).getCollectUrl() + "&fileExtension=" + dataConfig.get(0).getFileType();
-// String result = HttpUtil.get(http);
-// JSONObject jsonObject = JSON.parseObject(result);
-// if (Objects.equals(jsonObject.get("code"), 1)) {
-// throw new ErrorException(jsonObject.get("message").toString());
-// } else {
-// Object data = jsonObject.get("data");
-//
-// }
- return null;
+ return ipAddress.equals("0:0:0:0:0:0:0:1") ? "127.0.0.1" : ipAddress;
}
}
--
Gitblit v1.9.3