Bladeren bron

事中提醒

0027005599 2 jaren geleden
bovenliggende
commit
333dec63a9

+ 48 - 0
jeecg-boot-base-core/src/main/java/org/jeecg/config/sign/util/HttpUtils.java

@@ -184,4 +184,52 @@ public class HttpUtils {
         }
         return result;
     }
+
+    public static String getIPAddress(HttpServletRequest request) {
+        String ip = null;
+        //X-Forwarded-For:Squid 服务代理
+        String ipAddresses = request.getHeader("X-Forwarded-For");
+        log.info("IPWEIOriginal"+ipAddresses);
+        if (ipAddresses == null || ipAddresses.length() == 0 || "unknown".equalsIgnoreCase(ipAddresses)) {
+            //X-Real-IP:nginx服务代理
+            ipAddresses = request.getHeader("X-Original-Forwarded-For");
+            log.info("IPWEIOriginal"+request.getHeader(" X-Original-Forwarded-For"));
+        }
+        if (ipAddresses == null || ipAddresses.length() == 0 || "unknown".equalsIgnoreCase(ipAddresses)) {
+            //Proxy-Client-IP:apache 服务代理
+            ipAddresses = request.getHeader("Proxy-Client-IP");
+            log.info("IPWEIipapache"+request.getHeader("Proxy-Client-IP"));
+        }
+
+        if (ipAddresses == null || ipAddresses.length() == 0 || "unknown".equalsIgnoreCase(ipAddresses)) {
+            //WL-Proxy-Client-IP:weblogic 服务代理
+            ipAddresses = request.getHeader("WL-Proxy-Client-IP");
+            log.info("IPWEIweblogic"+request.getHeader("WL-Proxy-Client-IP"));
+        }
+
+        if (ipAddresses == null || ipAddresses.length() == 0 || "unknown".equalsIgnoreCase(ipAddresses)) {
+            //HTTP_CLIENT_IP:有些代理服务器
+            ipAddresses = request.getHeader("HTTP_CLIENT_IP");
+            log.info("IPWEIHTTP_CLIENT_IP"+request.getHeader("HTTP_CLIENT_IP"));
+        }
+
+        if (ipAddresses == null || ipAddresses.length() == 0 || "unknown".equalsIgnoreCase(ipAddresses)) {
+            //X-Real-IP:nginx服务代理
+            ipAddresses = request.getHeader("X-Real-IP");
+            log.info("IPWEInginx"+request.getHeader("X-Real-IP"));
+        }
+
+        //有些网络通过多层代理,那么获取到的ip就会有多个,一般都是通过逗号(,)分割开来,并且第一个ip为客户端的真实IP
+        if (ipAddresses != null && ipAddresses.length() != 0) {
+            ip = ipAddresses.split(",")[0];
+
+        }
+
+        //还是不能获取到,最后再通过request.getRemoteAddr();获取
+        if (ip == null || ip.length() == 0 || "unknown".equalsIgnoreCase(ipAddresses)) {
+            ip = request.getRemoteAddr();
+            log.info("IPWEIRemoteAddr"+request.getRemoteAddr());
+        }
+        return ip;
+    }
 }

+ 3 - 2
jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/medical/controller/HisController.java

@@ -15,6 +15,7 @@ import org.jeecg.common.api.vo.Result;
 import org.jeecg.common.aspect.annotation.AutoLog;
 import org.jeecg.common.system.base.controller.JeecgController;
 import org.jeecg.common.system.query.QueryGenerator;
+import org.jeecg.config.sign.util.HttpUtils;
 import org.jeecg.modules.medical.entity.AdvanceWarningVO;
 import org.jeecg.modules.medical.entity.Audit;
 import org.jeecg.modules.medical.entity.MidIncidentWarningVO;
@@ -42,7 +43,7 @@ import java.util.Map;
 * @Date:   2023-04-23
 * @Version: V1.0
 */
-@Api(tags="check")
+@Api(tags="事中提醒")
 @RestController
 @RequestMapping("/his/check")
 @Slf4j
@@ -100,7 +101,7 @@ public class HisController extends JeecgController<Audit, IAuditService> {
     @PostMapping(value = "/midIncidentWarning")
     public Result<String> midIncidentWarning(@RequestBody MidIncidentWarningVO midIncidentWarningVO,HttpServletRequest httpServletRequest) {
         String jsonStr = JSON.toJSONString(midIncidentWarningVO);
-        String ipStr = httpServletRequest.getRemoteHost();
+        String ipStr = HttpUtils.getIPAddress(httpServletRequest);
         log.info("远端请求的服务ip地址:{}", ipStr);
         log.info("事中提醒接收报文:{}", jsonStr);
         JSONObject paramMap = JSON.parseObject(jsonStr);

+ 2 - 5
jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/medical/entity/MedicalInsuranceDrugs.java

@@ -31,7 +31,7 @@ public class MedicalInsuranceDrugs implements Serializable {
     private static final long serialVersionUID = 1L;
 
 
-    @TableId(type = IdType.ASSIGN_ID)
+    @TableId(type = IdType.AUTO)
     @ApiModelProperty(value = "主键")
     private String id;
 
@@ -50,11 +50,8 @@ public class MedicalInsuranceDrugs implements Serializable {
 	/**医院项目名称;医嘱系统中药品的名称*/
 	@Excel(name = "医院项目名称", width = 15)
     @ApiModelProperty(value = "医院项目名称;医嘱系统中药品的名称")
-    private java.lang.Integer itemNameHosp;
+    private java.lang.String itemNameHosp;
 
-    @Excel(name = "医院药品名称", width = 15)
-    @ApiModelProperty(value = "医院药品名称")
-    private String medicinesNameHosp;
 	/**剂型*/
 	@Excel(name = "剂型", width = 15)
     @ApiModelProperty(value = "剂型")