Browse Source

获取集团医院信息接口

rengb 5 years ago
parent
commit
6f2ce2697b

+ 5 - 0
icss-service/src/main/java/com/diagbot/client/TranServiceClient.java

@@ -3,6 +3,7 @@ package com.diagbot.client;
 import com.diagbot.client.hystrix.TranServiceHystrix;
 import com.diagbot.dto.DoctorInfoDTO;
 import com.diagbot.dto.GetExportInquirysDTO;
+import com.diagbot.dto.GetHospitalRankInfoDTO;
 import com.diagbot.dto.HisInquirysForJzDTO;
 import com.diagbot.dto.HospitalInfoDTO;
 import com.diagbot.dto.LisConfigDTO;
@@ -19,6 +20,7 @@ import com.diagbot.entity.HospitalDept;
 import com.diagbot.entity.PatientInfo;
 import com.diagbot.vo.AddDiagnoseSecondVO;
 import com.diagbot.vo.DoctorInfoVO;
+import com.diagbot.vo.GetHospitalRankInfoVO;
 import com.diagbot.vo.HisInquirysForJzVO;
 import com.diagbot.vo.HosCodeVO;
 import com.diagbot.vo.HospitalInfoVO;
@@ -205,4 +207,7 @@ public interface TranServiceClient {
 
     @PostMapping("/sysSet/getSysSetInfoDatas")
     RespDTO<List<SysSetInfoDTO>> getSysSetInfoDatas(@Valid @RequestBody HospitalSetVO hospitalSetVO);
+
+    @PostMapping("/sysSet/getHospitalRankInfo")
+    RespDTO<GetHospitalRankInfoDTO> getHospitalRankInfo(@RequestBody GetHospitalRankInfoVO getHospitalRankInfoVO);
 }

+ 8 - 0
icss-service/src/main/java/com/diagbot/client/hystrix/TranServiceHystrix.java

@@ -3,6 +3,7 @@ package com.diagbot.client.hystrix;
 import com.diagbot.client.TranServiceClient;
 import com.diagbot.dto.DoctorInfoDTO;
 import com.diagbot.dto.GetExportInquirysDTO;
+import com.diagbot.dto.GetHospitalRankInfoDTO;
 import com.diagbot.dto.HisInquirysForJzDTO;
 import com.diagbot.dto.HospitalInfoDTO;
 import com.diagbot.dto.LisConfigDTO;
@@ -19,6 +20,7 @@ import com.diagbot.entity.HospitalDept;
 import com.diagbot.entity.PatientInfo;
 import com.diagbot.vo.AddDiagnoseSecondVO;
 import com.diagbot.vo.DoctorInfoVO;
+import com.diagbot.vo.GetHospitalRankInfoVO;
 import com.diagbot.vo.HisInquirysForJzVO;
 import com.diagbot.vo.HosCodeVO;
 import com.diagbot.vo.HospitalInfoVO;
@@ -196,4 +198,10 @@ public class TranServiceHystrix implements TranServiceClient {
         log.error("【hystrix】调用{}异常", "getSysSetInfoDatas");
         return null;
     }
+
+    @Override
+    public RespDTO<GetHospitalRankInfoDTO> getHospitalRankInfo(GetHospitalRankInfoVO getHospitalRankInfoVO) {
+        log.error("【hystrix】调用{}异常", "getHospitalRankInfo");
+        return null;
+    }
 }

+ 54 - 0
icss-service/src/main/java/com/diagbot/dto/GetHospitalRankInfoDTO.java

@@ -0,0 +1,54 @@
+package com.diagbot.dto;
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Getter;
+import lombok.Setter;
+
+/**
+ * @Description:
+ * @author: rengb
+ * @time: 2019/3/19 13:56
+ */
+@ApiModel(value = "获取大小医院信息接口出参")
+@Getter
+@Setter
+public class GetHospitalRankInfoDTO {
+
+    /**
+     * 医院id
+     */
+    @ApiModelProperty(value = "医院id")
+    private Long hospitalId;
+
+    /**
+     * 医院编码
+     */
+    @ApiModelProperty(value = "医院编码")
+    private String hospitalCode;
+
+    /**
+     * 医院名称
+     */
+    @ApiModelProperty(value = "医院名称")
+    private String hospitalName;
+
+    /**
+     * 子医院id
+     */
+    @ApiModelProperty(value = "子医院id")
+    private Long sonHospitalId;
+
+    /**
+     * 子医院编码
+     */
+    @ApiModelProperty(value = "子医院编码")
+    private String sonHospitalCode;
+
+    /**
+     * 子医院名称
+     */
+    @ApiModelProperty(value = "子医院名称")
+    private String sonHospitalName;
+
+}

+ 14 - 0
icss-service/src/main/java/com/diagbot/facade/SysSetFacade.java

@@ -2,6 +2,8 @@ package com.diagbot.facade;
 
 import java.util.List;
 
+import com.diagbot.dto.GetHospitalRankInfoDTO;
+import com.diagbot.vo.GetHospitalRankInfoVO;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Component;
 
@@ -34,4 +36,16 @@ public class SysSetFacade {
 		return sysSetInfoLists.data;
 	}
 
+	/**
+	 * 获取大小医院信息
+	 *
+	 * @param getHospitalRankInfoVO
+	 * @return
+	 */
+	public GetHospitalRankInfoDTO getHospitalRankInfo(GetHospitalRankInfoVO getHospitalRankInfoVO) {
+		RespDTO<GetHospitalRankInfoDTO> retData = tranServiceClient.getHospitalRankInfo(getHospitalRankInfoVO);
+		RespDTOUtil.respNGDeal(retData, "获取大小医院信息失败!");
+		return retData.data;
+	}
+
 }

+ 27 - 0
icss-service/src/main/java/com/diagbot/vo/GetHospitalRankInfoVO.java

@@ -0,0 +1,27 @@
+package com.diagbot.vo;
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Getter;
+import lombok.Setter;
+
+import javax.validation.constraints.NotBlank;
+
+/**
+ * @Description:
+ * @author: rengb
+ * @time: 2018/11/19 18:58
+ */
+@ApiModel(value = "获取大小医院信息接口传参")
+@Getter
+@Setter
+public class GetHospitalRankInfoVO {
+
+    /**
+     * 医院编码
+     */
+    @ApiModelProperty(value = "医院编码", required = true)
+    @NotBlank(message = "医院编码必传")
+    private String hospitalCode;
+
+}

+ 9 - 0
icss-service/src/main/java/com/diagbot/web/SysSetController.java

@@ -1,9 +1,11 @@
 package com.diagbot.web;
 
 import com.diagbot.annotation.SysLogger;
+import com.diagbot.dto.GetHospitalRankInfoDTO;
 import com.diagbot.dto.RespDTO;
 import com.diagbot.dto.SysSetInfoDTO;
 import com.diagbot.facade.SysSetFacade;
+import com.diagbot.vo.GetHospitalRankInfoVO;
 import com.diagbot.vo.HospitalSetVO;
 import io.swagger.annotations.Api;
 import io.swagger.annotations.ApiOperation;
@@ -42,4 +44,11 @@ public class SysSetController {
 
         return RespDTO.onSuc(data);
     }
+
+    @ApiOperation(value = "获取大小医院信息[by:rengb]")
+    @PostMapping("/getHospitalRankInfo")
+    @SysLogger("getHospitalRankInfo")
+    public RespDTO<GetHospitalRankInfoDTO> getHospitalRankInfo(@Valid @RequestBody GetHospitalRankInfoVO getHospitalRankInfoVO) {
+        return RespDTO.onSuc(sysSetFacade.getHospitalRankInfo(getHospitalRankInfoVO));
+    }
 }

+ 45 - 0
tran-service/src/main/java/com/diagbot/dto/GetHospitalRankInfoDTO.java

@@ -0,0 +1,45 @@
+package com.diagbot.dto;
+
+import lombok.Getter;
+import lombok.Setter;
+
+/**
+ * @Description:
+ * @author: rengb
+ * @time: 2019/3/19 13:56
+ */
+@Getter
+@Setter
+public class GetHospitalRankInfoDTO {
+
+    /**
+     * 医院id
+     */
+    private Long hospitalId;
+
+    /**
+     * 医院编码
+     */
+    private String hospitalCode;
+
+    /**
+     * 医院名称
+     */
+    private String hospitalName;
+
+    /**
+     * 子医院id
+     */
+    private Long sonHospitalId;
+
+    /**
+     * 子医院编码
+     */
+    private String sonHospitalCode;
+
+    /**
+     * 子医院名称
+     */
+    private String sonHospitalName;
+
+}

+ 69 - 1
tran-service/src/main/java/com/diagbot/facade/SysSetFacade.java

@@ -1,6 +1,7 @@
 package com.diagbot.facade;
 
 import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
+import com.diagbot.dto.GetHospitalRankInfoDTO;
 import com.diagbot.dto.SysHospitalDTO;
 import com.diagbot.dto.SysHospitalDeptInfoDTO;
 import com.diagbot.dto.SysSetInfoDTO;
@@ -8,18 +9,24 @@ import com.diagbot.entity.HospitalInfo;
 import com.diagbot.entity.SysSet;
 import com.diagbot.enums.IsDeleteEnum;
 import com.diagbot.enums.SysTypeEnum;
+import com.diagbot.exception.CommonErrorCode;
+import com.diagbot.exception.CommonException;
 import com.diagbot.service.impl.SysSetServiceImpl;
 import com.diagbot.util.BeanUtil;
 import com.diagbot.util.IntegerUtil;
+import com.diagbot.util.StringUtil;
+import com.diagbot.vo.GetHospitalRankInfoVO;
 import com.diagbot.vo.HospitalSetVO;
 import com.diagbot.vo.SysHospitalCodeVO;
 import com.diagbot.vo.SysHospitalInfoVO;
 import com.google.common.collect.Lists;
+import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Component;
 
 import java.util.ArrayList;
-import java.util.Arrays;
 import java.util.List;
+import java.util.Map;
+import java.util.stream.Collectors;
 
 /**
  * @author wangfeng
@@ -29,6 +36,8 @@ import java.util.List;
 @Component
 public class SysSetFacade extends SysSetServiceImpl {
 
+    @Autowired
+    private HospitalInfoFacade hospitalInfoFacade;
 
     /**
      * @param hospitalSetVO
@@ -79,4 +88,63 @@ public class SysSetFacade extends SysSetServiceImpl {
         sysHospitalDTO.setJuniorHospital(hospitalDatas);
         return sysHospitalDTO;
     }
+
+    /**
+     * 获取大小医院信息
+     *
+     * @param getHospitalRankInfoVO
+     * @return
+     */
+    public GetHospitalRankInfoDTO getHospitalRankInfo(GetHospitalRankInfoVO getHospitalRankInfoVO) {
+        QueryWrapper<SysSet> sysSetQe = new QueryWrapper<>();
+        sysSetQe.and(qe1 -> qe1
+                .and(qe2 -> qe2
+                        .eq("hospital_code", getHospitalRankInfoVO.getHospitalCode())
+                        .eq("sys_type", SysTypeEnum.ICSS_SERVICE.getKey())
+                        .eq("code", "connect_prec"))
+                .or(qe3 -> qe3
+                        .eq("sys_type", SysTypeEnum.PREC_SERVICE.getKey())
+                        .eq("code", "junior_hospital")
+                        .like("value", getHospitalRankInfoVO.getHospitalCode())));
+        Map<String, SysSet> sysSetMap = list(sysSetQe).stream()
+                .collect(Collectors.toMap(SysSet::getCode, i -> i));
+
+        SysSet connectPrecSysSet = sysSetMap.get("connect_prec");
+        if (connectPrecSysSet == null
+                || StringUtil.isBlank(connectPrecSysSet.getValue())
+                || connectPrecSysSet.getValue().equals("0")) {
+            throw new CommonException(CommonErrorCode.RPC_ERROR, "不支持同时对接预问诊");
+        }
+
+        String hospitalCode = null, sonHospitalCode = null;
+        SysSet juniorHospitalSysSet = sysSetMap.get("junior_hospital");
+        if (juniorHospitalSysSet != null) {
+            hospitalCode = juniorHospitalSysSet.getHospitalCode();
+            sonHospitalCode = getHospitalRankInfoVO.getHospitalCode();
+        } else {
+            hospitalCode = getHospitalRankInfoVO.getHospitalCode();
+        }
+
+        QueryWrapper<HospitalInfo> hospitalInfoQe = new QueryWrapper<>();
+        hospitalInfoQe.eq("code", hospitalCode)
+                .or(StringUtil.isNotBlank(sonHospitalCode))
+                .eq("code", sonHospitalCode);
+        Map<String, HospitalInfo> hospitalInfoMap = hospitalInfoFacade.list(hospitalInfoQe)
+                .stream().collect(Collectors.toMap(HospitalInfo::getCode, i -> i));
+
+        HospitalInfo hospitalInfo = hospitalInfoMap.get(hospitalCode);
+        HospitalInfo sonHospitalInfo = hospitalInfoMap.get(sonHospitalCode);
+        GetHospitalRankInfoDTO getHospitalRankInfoDTO = new GetHospitalRankInfoDTO();
+        getHospitalRankInfoDTO.setHospitalId(hospitalInfo.getId());
+        getHospitalRankInfoDTO.setHospitalCode(hospitalInfo.getCode());
+        getHospitalRankInfoDTO.setHospitalName(hospitalInfo.getName());
+        if (sonHospitalInfo != null) {
+            getHospitalRankInfoDTO.setSonHospitalId(sonHospitalInfo.getId());
+            getHospitalRankInfoDTO.setSonHospitalCode(sonHospitalInfo.getCode());
+            getHospitalRankInfoDTO.setSonHospitalName(sonHospitalInfo.getName());
+        }
+
+        return getHospitalRankInfoDTO;
+    }
+
 }

+ 20 - 0
tran-service/src/main/java/com/diagbot/vo/GetHospitalRankInfoVO.java

@@ -0,0 +1,20 @@
+package com.diagbot.vo;
+
+import lombok.Getter;
+import lombok.Setter;
+
+/**
+ * @Description:
+ * @author: rengb
+ * @time: 2018/11/19 18:58
+ */
+@Getter
+@Setter
+public class GetHospitalRankInfoVO {
+
+    /**
+     * 医院编码
+     */
+    private String hospitalCode;
+
+}

+ 9 - 0
tran-service/src/main/java/com/diagbot/web/SysSetController.java

@@ -1,10 +1,12 @@
 package com.diagbot.web;
 
 import com.diagbot.annotation.SysLogger;
+import com.diagbot.dto.GetHospitalRankInfoDTO;
 import com.diagbot.dto.RespDTO;
 import com.diagbot.dto.SysHospitalDTO;
 import com.diagbot.dto.SysSetInfoDTO;
 import com.diagbot.facade.SysSetFacade;
+import com.diagbot.vo.GetHospitalRankInfoVO;
 import com.diagbot.vo.HospitalSetVO;
 import com.diagbot.vo.SysHospitalCodeVO;
 import io.swagger.annotations.Api;
@@ -52,4 +54,11 @@ public class SysSetController {
         return RespDTO.onSuc(data);
     }
 
+    @ApiOperation(value = "获取大小医院信息[by:rengb]")
+    @PostMapping("/getHospitalRankInfo")
+    @SysLogger("getHospitalRankInfo")
+    public RespDTO<GetHospitalRankInfoDTO> getHospitalRankInfo(@RequestBody GetHospitalRankInfoVO getHospitalRankInfoVO) {
+        return RespDTO.onSuc(sysSetFacade.getHospitalRankInfo(getHospitalRankInfoVO));
+    }
+
 }