Forráskód Böngészése

Merge branch 'dev/subhos_defplan_20211009' into develop

gaodm 3 éve
szülő
commit
06958aae13
22 módosított fájl, 683 hozzáadás és 70 törlés
  1. 72 0
      cdssman-service/src/main/java/com/diagbot/dto/HospitalInfoGetDTO.java
  2. 70 0
      cdssman-service/src/main/java/com/diagbot/dto/HospitalInfoPageDTO.java
  3. 30 0
      cdssman-service/src/main/java/com/diagbot/dto/HospitalRelationDTO.java
  4. 27 0
      cdssman-service/src/main/java/com/diagbot/dto/HospitalRelationErrorDTO.java
  5. 73 0
      cdssman-service/src/main/java/com/diagbot/entity/TranHospitalRelation.java
  6. 2 1
      cdssman-service/src/main/java/com/diagbot/exception/ServiceErrorCode.java
  7. 162 43
      cdssman-service/src/main/java/com/diagbot/facade/HospitalInfoFacade.java
  8. 14 0
      cdssman-service/src/main/java/com/diagbot/facade/TranHospitalRelationFacade.java
  9. 2 2
      cdssman-service/src/main/java/com/diagbot/mapper/HospitalInfoMapper.java
  10. 16 0
      cdssman-service/src/main/java/com/diagbot/mapper/TranHospitalRelationMapper.java
  11. 2 2
      cdssman-service/src/main/java/com/diagbot/service/HospitalInfoService.java
  12. 16 0
      cdssman-service/src/main/java/com/diagbot/service/TranHospitalRelationService.java
  13. 2 2
      cdssman-service/src/main/java/com/diagbot/service/impl/HospitalInfoServiceImpl.java
  14. 20 0
      cdssman-service/src/main/java/com/diagbot/service/impl/TranHospitalRelationServiceImpl.java
  15. 26 0
      cdssman-service/src/main/java/com/diagbot/vo/HospitalInfoGetVO.java
  16. 63 0
      cdssman-service/src/main/java/com/diagbot/vo/HospitalInfoSaveVO.java
  17. 33 0
      cdssman-service/src/main/java/com/diagbot/vo/HospitalRelationVO.java
  18. 27 16
      cdssman-service/src/main/java/com/diagbot/web/HospitalInfoController.java
  19. 1 1
      cdssman-service/src/main/resources/mapper/HospitalInfoMapper.xml
  20. 19 0
      cdssman-service/src/main/resources/mapper/TranHospitalRelationMapper.xml
  21. 2 2
      cdssman-service/src/test/java/com/diagbot/CodeGeneration.java
  22. 4 1
      user-service/src/main/java/com/diagbot/web/UserController.java

+ 72 - 0
cdssman-service/src/main/java/com/diagbot/dto/HospitalInfoGetDTO.java

@@ -0,0 +1,72 @@
+package com.diagbot.dto;
+
+import com.google.common.collect.Lists;
+import lombok.Data;
+
+import java.io.Serializable;
+import java.util.Date;
+import java.util.List;
+
+/**
+ * <p>
+ * 医院信息表
+ * </p>
+ *
+ * @author wangfeng
+ * @since 2020-08-06
+ */
+@Data
+public class HospitalInfoGetDTO implements Serializable {
+
+    private static final long serialVersionUID = 1L;
+
+    /**
+     * 主键
+     */
+    private Long id;
+
+    /**
+     * 记录创建时间
+     */
+    private Date gmtCreate;
+
+    /**
+     * 记录修改时间,如果时间是1970年则表示纪录未修改
+     */
+    private Date gmtModified;
+
+    /**
+     * 医院名称
+     */
+    private String name;
+
+    /**
+     * 医院地址
+     */
+    private String address;
+
+    /**
+     * 医院名称拼音
+     */
+    private String spell;
+
+    /**
+     * 状态:0.禁用1.启用
+     */
+    private Integer status;
+
+    /**
+     * 是否对接(0-不对接,1-对接)
+     */
+    private Integer connect;
+
+    /**
+     * 备注
+     */
+    private String remark;
+
+    /**
+     * 子医院关联表
+     */
+    private List<HospitalRelationDTO> hospitalRelationDTOList = Lists.newLinkedList();
+}

+ 70 - 0
cdssman-service/src/main/java/com/diagbot/dto/HospitalInfoPageDTO.java

@@ -0,0 +1,70 @@
+package com.diagbot.dto;
+
+import lombok.Data;
+
+import java.io.Serializable;
+import java.util.Date;
+
+/**
+ * <p>
+ * 医院信息表
+ * </p>
+ *
+ * @author zhoutg
+ * @since 2020-08-06
+ */
+@Data
+public class HospitalInfoPageDTO implements Serializable {
+
+    private static final long serialVersionUID = 1L;
+
+    /**
+     * 主键
+     */
+    private Long id;
+
+    /**
+     * 记录创建时间
+     */
+    private Date gmtCreate;
+
+    /**
+     * 记录修改时间,如果时间是1970年则表示纪录未修改
+     */
+    private Date gmtModified;
+
+    /**
+     * 医院名称
+     */
+    private String name;
+
+    /**
+     * 医院地址
+     */
+    private String address;
+
+    /**
+     * 医院名称拼音
+     */
+    private String spell;
+
+    /**
+     * 状态:0.禁用1.启用
+     */
+    private Integer status;
+
+    /**
+     * 是否对接(0-不对接,1-对接)
+     */
+    private Integer connect;
+
+    /**
+     * 备注
+     */
+    private String remark;
+
+    /**
+     * 子医院
+     */
+    private String sonHospital;
+}

+ 30 - 0
cdssman-service/src/main/java/com/diagbot/dto/HospitalRelationDTO.java

@@ -0,0 +1,30 @@
+package com.diagbot.dto;
+
+import lombok.Data;
+
+import java.io.Serializable;
+
+/**
+ * <p>
+ * 医院关联表
+ * </p>
+ *
+ * @author zhoutg
+ * @since 2020-08-06
+ */
+@Data
+public class HospitalRelationDTO implements Serializable {
+
+    private static final long serialVersionUID = 1L;
+
+    /**
+     * 子医院名称
+     */
+    private String name;
+
+    /**
+     * 子医院编码
+     */
+    private String code;
+
+}

+ 27 - 0
cdssman-service/src/main/java/com/diagbot/dto/HospitalRelationErrorDTO.java

@@ -0,0 +1,27 @@
+package com.diagbot.dto;
+
+import com.diagbot.vo.HospitalRelationVO;
+import lombok.Data;
+
+import java.io.Serializable;
+import java.util.List;
+
+/**
+ * <p>
+ * 医院关联表提示出错
+ * </p>
+ *
+ * @author zhoutg
+ * @since 2020-08-06
+ */
+@Data
+public class HospitalRelationErrorDTO implements Serializable {
+
+    private static final long serialVersionUID = 1L;
+
+    // 当前医院重复
+    private List<HospitalRelationVO> errorCurrent;
+
+    // 与其他医院重复
+    private List<HospitalRelationVO> errorOther;
+}

+ 73 - 0
cdssman-service/src/main/java/com/diagbot/entity/TranHospitalRelation.java

@@ -0,0 +1,73 @@
+package com.diagbot.entity;
+
+import com.baomidou.mybatisplus.annotation.IdType;
+import com.baomidou.mybatisplus.annotation.TableId;
+import lombok.Data;
+
+import java.io.Serializable;
+import java.util.Date;
+
+/**
+ * <p>
+ * 医院关联表
+ * </p>
+ *
+ * @author zhoutg
+ * @since 2021-10-09
+ */
+@Data
+public class TranHospitalRelation implements Serializable {
+
+    private static final long serialVersionUID = 1L;
+
+    /**
+     * 主键
+     */
+    @TableId(value = "id", type = IdType.AUTO)
+    private Long id;
+
+    /**
+     * 是否删除,N:未删除,Y:删除
+     */
+    private String isDeleted;
+
+    /**
+     * 记录创建时间
+     */
+    private Date gmtCreate;
+
+    /**
+     * 记录修改时间,如果时间是1970年则表示纪录未修改
+     */
+    private Date gmtModified;
+
+    /**
+     * 创建人,0表示无创建人值
+     */
+    private String creator;
+
+    /**
+     * 修改人,如果为0则表示纪录未修改
+     */
+    private String modifier;
+
+    /**
+     * 子医院编码
+     */
+    private String code;
+
+    /**
+     * 子医院名称
+     */
+    private String name;
+
+    /**
+     * 父医院id
+     */
+    private Long hospitalId;
+
+    /**
+     * 备注
+     */
+    private String remark;
+}

+ 2 - 1
cdssman-service/src/main/java/com/diagbot/exception/ServiceErrorCode.java

@@ -8,7 +8,8 @@ package com.diagbot.exception;
  * @time: 2018/9/10 11:11
  */
 public enum ServiceErrorCode implements ErrorCode {
-    LOG_IS_NOT_EXIST("90020001", "该日志不存在");
+    LOG_IS_NOT_EXIST("90020001", "该日志不存在"),
+    NAME_CODE_ERROR("20020009", "操作失败,请检查【医院名称+医院编码】重复项");
 
     private String code;
     private String msg;

+ 162 - 43
cdssman-service/src/main/java/com/diagbot/facade/HospitalInfoFacade.java

@@ -4,33 +4,44 @@ import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
 import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper;
 import com.baomidou.mybatisplus.core.metadata.IPage;
 import com.diagbot.dto.HospitalInfoDTO;
-import com.diagbot.entity.DiseaseConfig;
+import com.diagbot.dto.HospitalInfoGetDTO;
+import com.diagbot.dto.HospitalInfoPageDTO;
+import com.diagbot.dto.HospitalRelationDTO;
+import com.diagbot.dto.HospitalRelationErrorDTO;
 import com.diagbot.entity.HospitalInfo;
 import com.diagbot.entity.MappingConfig;
 import com.diagbot.entity.Plan;
+import com.diagbot.entity.TranHospitalRelation;
 import com.diagbot.enums.IsDeleteEnum;
 import com.diagbot.exception.CommonErrorCode;
 import com.diagbot.exception.CommonException;
 import com.diagbot.service.HospitalInfoService;
+import com.diagbot.service.TranHospitalRelationService;
 import com.diagbot.service.impl.HospitalInfoServiceImpl;
 import com.diagbot.util.BeanUtil;
 import com.diagbot.util.Cn2SpellUtil;
 import com.diagbot.util.DateUtil;
+import com.diagbot.util.EntityUtil;
 import com.diagbot.util.ListUtil;
 import com.diagbot.util.StringUtil;
 import com.diagbot.util.UserUtils;
 import com.diagbot.vo.ChangeStatusVO;
+import com.diagbot.vo.HospitalInfoGetVO;
 import com.diagbot.vo.HospitalInfoListVO;
 import com.diagbot.vo.HospitalInfoPageVO;
+import com.diagbot.vo.HospitalInfoSaveVO;
+import com.diagbot.vo.HospitalRelationVO;
 import com.diagbot.vo.HospitalSaveVO;
 import com.diagbot.vo.IdListVO;
 import com.diagbot.vo.IdVO;
+import com.google.common.collect.Lists;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.beans.factory.annotation.Qualifier;
 import org.springframework.stereotype.Component;
 
 import java.util.ArrayList;
 import java.util.Date;
+import java.util.LinkedHashMap;
 import java.util.List;
 import java.util.Map;
 import java.util.stream.Collectors;
@@ -49,6 +60,9 @@ public class HospitalInfoFacade extends HospitalInfoServiceImpl {
     private MappingConfigFacade mappingConfigFacade;
     @Autowired
     private PlanFacade planFacade;
+    @Autowired
+    @Qualifier("tranHospitalRelationServiceImpl")
+    TranHospitalRelationService tranHospitalRelationService;
 
     public List<HospitalInfoDTO> getHospitalInfo() {
         QueryWrapper<HospitalInfo> hospitalInfo = new QueryWrapper<>();
@@ -59,49 +73,62 @@ public class HospitalInfoFacade extends HospitalInfoServiceImpl {
         return data;
     }
 
+    /**
+     * 根据ID获取医院信息
+     *
+     * @param hospitalInfoGetVO
+     * @return
+     */
+    public HospitalInfoGetDTO getById(HospitalInfoGetVO hospitalInfoGetVO) {
+        HospitalInfo hospitalInfo = this.getOne(new QueryWrapper<HospitalInfo>()
+                .eq("is_deleted", IsDeleteEnum.N.getKey())
+                .eq("id", hospitalInfoGetVO.getId()), false);
+        if (hospitalInfo == null) {
+            throw new CommonException(CommonErrorCode.NOT_EXISTS, "数据不存在");
+        }
+        HospitalInfoGetDTO hospitalInfoGetDTO = new HospitalInfoGetDTO();
+        BeanUtil.copyProperties(hospitalInfo, hospitalInfoGetDTO);
+
+        List<TranHospitalRelation> relationList = tranHospitalRelationService.list(new QueryWrapper<TranHospitalRelation>()
+                .eq("is_deleted", IsDeleteEnum.N.getKey())
+                .eq("hospital_id", hospitalInfoGetVO.getId()));
+        List<HospitalRelationDTO> hospitalRelationDTOS = BeanUtil.listCopyTo(relationList, HospitalRelationDTO.class);
+        hospitalInfoGetDTO.setHospitalRelationDTOList(hospitalRelationDTOS);
+        return hospitalInfoGetDTO;
+    }
+
     /**
      * 保存记录-单条
      *
-     * @param hospitalInfo
+     * @param hospitalInfoSaveVO
      * @return
      */
-    public Boolean saveOrUpdateRecord(HospitalInfo hospitalInfo) {
+    public HospitalRelationErrorDTO saveOrUpdateRecord(HospitalInfoSaveVO hospitalInfoSaveVO) {
         String userId = UserUtils.getCurrentPrincipleID();
+        HospitalInfo hospitalInfo = new HospitalInfo();
+        BeanUtil.copyProperties(hospitalInfoSaveVO, hospitalInfo);
         Date now = DateUtil.now();
         hospitalInfo.setModifier(userId);
         hospitalInfo.setGmtModified(now);
-        QueryWrapper<HospitalInfo> queryWrapper = new QueryWrapper<>();
         if (StringUtil.isNotBlank(hospitalInfo.getName())) {
-            queryWrapper.eq("is_deleted", IsDeleteEnum.N.getKey());
-            queryWrapper.eq("name", hospitalInfo.getName());
-            HospitalInfo oldRecord = this.getOne(queryWrapper, false);
-            if (hospitalInfo.getId() == null
-                    && oldRecord != null) {
-                throw new CommonException(CommonErrorCode.IS_EXISTS, "该医院名称已存在");
-            }
-            if (hospitalInfo.getId() != null
-                    && oldRecord != null
-                    && !hospitalInfo.getId().equals(oldRecord.getId())) {
+            HospitalInfo oldRecord = this.getOne(new QueryWrapper<HospitalInfo>()
+                    .eq("is_deleted", IsDeleteEnum.N.getKey())
+                    .eq("name", hospitalInfo.getName())
+                    .ne("id", hospitalInfo.getId() == null ? -999 : hospitalInfo.getId()), false);
+            if (oldRecord != null) {
                 throw new CommonException(CommonErrorCode.IS_EXISTS, "该医院名称已存在");
             }
         }
-        /*if (StringUtil.isNotBlank(hospitalInfo.getCode())) {
-            queryWrapper = new QueryWrapper<>();
-            queryWrapper.eq("is_deleted", IsDeleteEnum.N.getKey());
-            queryWrapper.eq("code", hospitalInfo.getCode());
-            HospitalInfo oldRecord = this.getOne(queryWrapper, false);
-            if (hospitalInfo.getId() == null
-                    && oldRecord != null) {
-                throw new CommonException(CommonErrorCode.IS_EXISTS, "该医院编码已存在");
-            }
-            if (hospitalInfo.getId() != null
-                    && oldRecord != null
-                    && !hospitalInfo.getId().equals(oldRecord.getId())) {
-                throw new CommonException(CommonErrorCode.IS_EXISTS, "该医院编码已存在");
-            }
-        }*/
 
-        //新增数据
+        // 获取子医院
+        List<HospitalRelationVO> hospitalRelationVOList = hospitalInfoSaveVO.getHospitalRelationVOList();
+        // 校验子医院
+        HospitalRelationErrorDTO res = checkRelationHospital(hospitalRelationVOList, hospitalInfo.getId());
+        if (res != null) {
+            return res;
+        }
+
+        // 新增数据
         if (hospitalInfo.getId() == null) {
             hospitalInfo.setCreator(userId);
             hospitalInfo.setGmtCreate(now);
@@ -110,11 +137,74 @@ public class HospitalInfoFacade extends HospitalInfoServiceImpl {
         if (StringUtil.isBlank(hospitalInfo.getSpell())) {
             hospitalInfo.setSpell(Cn2SpellUtil.converterToFirstSpell(hospitalInfo.getName()));
         }
-        if (hospitalInfo.getIsDeleted() == null) {
-            hospitalInfo.setIsDeleted(IsDeleteEnum.N.getKey());
-        }
         this.saveOrUpdate(hospitalInfo);
-        return true;
+
+        // 先删除子医院关联表
+        tranHospitalRelationService.remove(new QueryWrapper<TranHospitalRelation>().eq("hospital_id", hospitalInfo.getId()));
+        // 插入子医院关联表
+        List<TranHospitalRelation> saveRelationList = Lists.newArrayList();
+        for (HospitalRelationVO hospitalRelationVO : hospitalRelationVOList) {
+            TranHospitalRelation tranHospitalRelation = new TranHospitalRelation();
+            BeanUtil.copyProperties(hospitalRelationVO, tranHospitalRelation);
+            tranHospitalRelation.setHospitalId(hospitalInfo.getId());
+            tranHospitalRelation.setCreator(userId);
+            tranHospitalRelation.setModifier(userId);
+            tranHospitalRelation.setGmtCreate(now);
+            tranHospitalRelation.setGmtModified(now);
+            saveRelationList.add(tranHospitalRelation);
+        }
+        if (ListUtil.isNotEmpty(saveRelationList)) {
+            tranHospitalRelationService.saveBatch(saveRelationList);
+        }
+        return null;
+    }
+
+    /**
+     * 校验子医院
+     *
+     * @param hospitalRelationVOList
+     * @param curHospitalId
+     * @return
+     */
+    public HospitalRelationErrorDTO checkRelationHospital(List<HospitalRelationVO> hospitalRelationVOList, Long curHospitalId) {
+        HospitalRelationErrorDTO res = new HospitalRelationErrorDTO();
+        if (ListUtil.isNotEmpty(hospitalRelationVOList)) {
+            // 校验name+code唯一性
+            List<TranHospitalRelation> tranHospitalRelationList = tranHospitalRelationService.list(new QueryWrapper<TranHospitalRelation>()
+                    .eq("is_deleted", IsDeleteEnum.N.getKey())
+            );
+            Map<String, Long> relationMap = tranHospitalRelationList.stream().collect(
+                    Collectors.toMap(k -> k.getName().toUpperCase() + "_" + k.getCode().toUpperCase(), v -> v.getHospitalId(), (v1, v2) -> (v2), LinkedHashMap::new));
+            List<String> keyExist = Lists.newArrayList(); // 避免重复数据返回
+            List<String> keyAll = Lists.newArrayList(); // 当前医院所有key
+            List<HospitalRelationVO> errorOther = Lists.newArrayList(); // 与其他医院重复
+            List<HospitalRelationVO> errorCurrent = Lists.newArrayList(); // 当前医院重复
+
+            for (HospitalRelationVO hospitalRelationVO : hospitalRelationVOList) {
+                // 联合key
+                String unionKey = hospitalRelationVO.getName().toUpperCase() + "_" + hospitalRelationVO.getCode().toUpperCase();
+                // 判断当前医院重复
+                if (keyAll.contains(unionKey)) {
+                    errorCurrent.add(hospitalRelationVO);
+                } else {
+                    keyAll.add(unionKey);
+                }
+                // 判断与其他医院重复
+                Long hospitalId = relationMap.get(unionKey);
+                if (hospitalId != null && !hospitalId.equals(curHospitalId) && !keyExist.contains(unionKey)) {
+                    errorOther.add(hospitalRelationVO);
+                    keyExist.add(unionKey);
+                }
+            }
+
+            // 有错误,直接返回
+            if (ListUtil.isNotEmpty(errorOther) || ListUtil.isNotEmpty(errorCurrent)) {
+                res.setErrorOther(errorOther);
+                res.setErrorCurrent(errorCurrent);
+                return res;
+            }
+        }
+        return null;
     }
 
     /**
@@ -150,7 +240,11 @@ public class HospitalInfoFacade extends HospitalInfoServiceImpl {
     public Boolean deleteRecord(IdVO idVO) {
         String userId = UserUtils.getCurrentPrincipleID();
         Date now = DateUtil.now();
-        HospitalInfo hospitalInfo = hospitalInfoService.getById(idVO.getId());
+        Long id = idVO.getId();
+        if (idVO.getId().equals(-1)) {
+            throw new CommonException(CommonErrorCode.SERVER_IS_ERROR, "当前医院不能删除");
+        }
+        HospitalInfo hospitalInfo = hospitalInfoService.getById(id);
         if (hospitalInfo == null) {
             throw new CommonException(CommonErrorCode.NOT_EXISTS, "数据不存在");
         }
@@ -161,24 +255,34 @@ public class HospitalInfoFacade extends HospitalInfoServiceImpl {
         List<MappingConfig> mappingConfigList
                 = mappingConfigFacade.list(new QueryWrapper<MappingConfig>()
                 .eq("is_deleted", IsDeleteEnum.N.getKey())
-                .eq("hospital_id", idVO.getId()));
+                .eq("hospital_id", id));
         if (ListUtil.isNotEmpty(mappingConfigList)) {
-            throw new CommonException(CommonErrorCode.SERVER_IS_ERROR, "该医院存在关联数据,无法删除");
+            throw new CommonException(CommonErrorCode.SERVER_IS_ERROR, "该医院存在映射关联,无法删除");
         }
 
         List<Plan> planList
                 = planFacade.list(new QueryWrapper<Plan>()
                 .eq("is_deleted", IsDeleteEnum.N.getKey())
-                .eq("hospital_id", idVO.getId()));
+                .eq("hospital_id", id));
         if (ListUtil.isNotEmpty(planList)) {
-            throw new CommonException(CommonErrorCode.SERVER_IS_ERROR, "该医院存在关联数据,无法删除");
+            throw new CommonException(CommonErrorCode.SERVER_IS_ERROR, "该医院存在方案配置关联,无法删除");
         }
 
-
+        int count = tranHospitalRelationService.count(new QueryWrapper<TranHospitalRelation>()
+                .eq("is_deleted", IsDeleteEnum.N.getKey())
+                .eq("hospital_id", id));
+        if (count > 0) {
+            throw new CommonException(CommonErrorCode.SERVER_IS_ERROR, "该医院存在子医院关联,无法删除");
+        }
+        // 主表逻辑删除
         hospitalInfo.setIsDeleted(IsDeleteEnum.Y.getKey());
         hospitalInfo.setModifier(userId);
         hospitalInfo.setGmtModified(now);
         hospitalInfoService.updateById(hospitalInfo);
+
+        // 关联表物理删除
+        tranHospitalRelationService.remove(new QueryWrapper<TranHospitalRelation>()
+                .eq("hospital_id", id));
         return true;
     }
 
@@ -215,9 +319,24 @@ public class HospitalInfoFacade extends HospitalInfoServiceImpl {
      * @param hospitalInfoPageVO
      * @return
      */
-    @Override
-    public IPage<DiseaseConfig> getPage(HospitalInfoPageVO hospitalInfoPageVO) {
-        return hospitalInfoService.getPage(hospitalInfoPageVO);
+    public IPage<HospitalInfoPageDTO> getPageFac(HospitalInfoPageVO hospitalInfoPageVO) {
+        IPage<HospitalInfoPageDTO> page = hospitalInfoService.getPage(hospitalInfoPageVO);
+        List<HospitalInfoPageDTO> records = page.getRecords();
+        if (ListUtil.isNotEmpty(records)) {
+            List<Long> idList = records.stream().map(r -> r.getId()).collect(Collectors.toList());
+            List<TranHospitalRelation> relationList = tranHospitalRelationService.list(new QueryWrapper<TranHospitalRelation>()
+                    .eq("is_deleted", IsDeleteEnum.N.getKey())
+                    .in("hospital_id", idList)
+            );
+            Map<Long, List<TranHospitalRelation>> hospitalIdMap = EntityUtil.makeEntityListMap(relationList, "hospitalId");
+            for (HospitalInfoPageDTO hospitalInfoPageDTO : records) {
+                List<TranHospitalRelation> tranHospitalRelationList = hospitalIdMap.get(hospitalInfoPageDTO.getId());
+                if (ListUtil.isNotEmpty(tranHospitalRelationList)) {
+                    hospitalInfoPageDTO.setSonHospital(tranHospitalRelationList.stream().map(r -> r.getName()).collect(Collectors.joining(",")));
+                }
+            }
+        }
+        return page;
     }
 
     /**

+ 14 - 0
cdssman-service/src/main/java/com/diagbot/facade/TranHospitalRelationFacade.java

@@ -0,0 +1,14 @@
+package com.diagbot.facade;
+
+import com.diagbot.service.impl.TranHospitalRelationServiceImpl;
+import org.springframework.stereotype.Component;
+
+/**
+ * @author zhoutg
+ * @Description:
+ * @date 2020-07-29 11:08
+ */
+@Component
+public class TranHospitalRelationFacade extends TranHospitalRelationServiceImpl {
+
+}

+ 2 - 2
cdssman-service/src/main/java/com/diagbot/mapper/HospitalInfoMapper.java

@@ -3,7 +3,7 @@ package com.diagbot.mapper;
 import com.baomidou.mybatisplus.core.mapper.BaseMapper;
 import com.baomidou.mybatisplus.core.metadata.IPage;
 import com.diagbot.dto.ConceptMappingDTO;
-import com.diagbot.entity.DiseaseConfig;
+import com.diagbot.dto.HospitalInfoPageDTO;
 import com.diagbot.entity.HospitalInfo;
 import com.diagbot.vo.HospitalInfoPageVO;
 import org.apache.ibatis.annotations.Param;
@@ -23,7 +23,7 @@ public interface HospitalInfoMapper extends BaseMapper<HospitalInfo> {
      * @param hospitalInfoPageVO
      * @return
      */
-    IPage<DiseaseConfig> getPage(@Param("hospitalInfoPageVO") HospitalInfoPageVO hospitalInfoPageVO);
+    IPage<HospitalInfoPageDTO> getPage(@Param("hospitalInfoPageVO") HospitalInfoPageVO hospitalInfoPageVO);
 
     /**
      * 获取术语映射统计列表

+ 16 - 0
cdssman-service/src/main/java/com/diagbot/mapper/TranHospitalRelationMapper.java

@@ -0,0 +1,16 @@
+package com.diagbot.mapper;
+
+import com.diagbot.entity.TranHospitalRelation;
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+
+/**
+ * <p>
+ * 医院关联表 Mapper 接口
+ * </p>
+ *
+ * @author zhoutg
+ * @since 2021-10-09
+ */
+public interface TranHospitalRelationMapper extends BaseMapper<TranHospitalRelation> {
+
+}

+ 2 - 2
cdssman-service/src/main/java/com/diagbot/service/HospitalInfoService.java

@@ -3,7 +3,7 @@ package com.diagbot.service;
 import com.baomidou.mybatisplus.core.metadata.IPage;
 import com.baomidou.mybatisplus.extension.service.IService;
 import com.diagbot.dto.ConceptMappingDTO;
-import com.diagbot.entity.DiseaseConfig;
+import com.diagbot.dto.HospitalInfoPageDTO;
 import com.diagbot.entity.HospitalInfo;
 import com.diagbot.vo.HospitalInfoPageVO;
 import org.apache.ibatis.annotations.Param;
@@ -23,7 +23,7 @@ public interface HospitalInfoService extends IService<HospitalInfo> {
      * @param hospitalInfoPageVO
      * @return
      */
-    IPage<DiseaseConfig> getPage(@Param("hospitalInfoPageVO") HospitalInfoPageVO hospitalInfoPageVO);
+    IPage<HospitalInfoPageDTO> getPage(@Param("hospitalInfoPageVO") HospitalInfoPageVO hospitalInfoPageVO);
 
     /**
      * 获取术语映射统计列表

+ 16 - 0
cdssman-service/src/main/java/com/diagbot/service/TranHospitalRelationService.java

@@ -0,0 +1,16 @@
+package com.diagbot.service;
+
+import com.diagbot.entity.TranHospitalRelation;
+import com.baomidou.mybatisplus.extension.service.IService;
+
+/**
+ * <p>
+ * 医院关联表 服务类
+ * </p>
+ *
+ * @author zhoutg
+ * @since 2021-10-09
+ */
+public interface TranHospitalRelationService extends IService<TranHospitalRelation> {
+
+}

+ 2 - 2
cdssman-service/src/main/java/com/diagbot/service/impl/HospitalInfoServiceImpl.java

@@ -3,7 +3,7 @@ package com.diagbot.service.impl;
 import com.baomidou.mybatisplus.core.metadata.IPage;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
 import com.diagbot.dto.ConceptMappingDTO;
-import com.diagbot.entity.DiseaseConfig;
+import com.diagbot.dto.HospitalInfoPageDTO;
 import com.diagbot.entity.HospitalInfo;
 import com.diagbot.mapper.HospitalInfoMapper;
 import com.diagbot.service.HospitalInfoService;
@@ -27,7 +27,7 @@ public class HospitalInfoServiceImpl extends ServiceImpl<HospitalInfoMapper, Hos
      * @param hospitalInfoPageVO
      * @return
      */
-    public IPage<DiseaseConfig> getPage(@Param("hospitalInfoPageVO") HospitalInfoPageVO hospitalInfoPageVO) {
+    public IPage<HospitalInfoPageDTO> getPage(@Param("hospitalInfoPageVO") HospitalInfoPageVO hospitalInfoPageVO) {
         return baseMapper.getPage(hospitalInfoPageVO);
     }
 

+ 20 - 0
cdssman-service/src/main/java/com/diagbot/service/impl/TranHospitalRelationServiceImpl.java

@@ -0,0 +1,20 @@
+package com.diagbot.service.impl;
+
+import com.diagbot.entity.TranHospitalRelation;
+import com.diagbot.mapper.TranHospitalRelationMapper;
+import com.diagbot.service.TranHospitalRelationService;
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import org.springframework.stereotype.Service;
+
+/**
+ * <p>
+ * 医院关联表 服务实现类
+ * </p>
+ *
+ * @author zhoutg
+ * @since 2021-10-09
+ */
+@Service
+public class TranHospitalRelationServiceImpl extends ServiceImpl<TranHospitalRelationMapper, TranHospitalRelation> implements TranHospitalRelationService {
+
+}

+ 26 - 0
cdssman-service/src/main/java/com/diagbot/vo/HospitalInfoGetVO.java

@@ -0,0 +1,26 @@
+package com.diagbot.vo;
+
+import lombok.Data;
+
+import javax.validation.constraints.NotNull;
+import java.io.Serializable;
+
+/**
+ * <p>
+ * 医院信息表
+ * </p>
+ *
+ * @author zhoutg
+ * @since 2020-08-06
+ */
+@Data
+public class HospitalInfoGetVO implements Serializable {
+
+    private static final long serialVersionUID = 1L;
+
+    /**
+     * 主键
+     */
+    @NotNull(message = "医院id不能为空")
+    private Long id;
+}

+ 63 - 0
cdssman-service/src/main/java/com/diagbot/vo/HospitalInfoSaveVO.java

@@ -0,0 +1,63 @@
+package com.diagbot.vo;
+
+import com.google.common.collect.Lists;
+import lombok.Data;
+
+import javax.validation.constraints.NotBlank;
+import java.io.Serializable;
+import java.util.List;
+
+/**
+ * <p>
+ * 医院信息表
+ * </p>
+ *
+ * @author wangfeng
+ * @since 2020-08-06
+ */
+@Data
+public class HospitalInfoSaveVO implements Serializable {
+
+    private static final long serialVersionUID = 1L;
+
+    /**
+     * 主键
+     */
+    private Long id;
+
+    /**
+     * 医院名称
+     */
+    @NotBlank(message = "医院名称不能为空")
+    private String name;
+
+    /**
+     * 医院地址
+     */
+    private String address;
+
+    /**
+     * 医院名称拼音
+     */
+    private String spell;
+
+    /**
+     * 状态:0.禁用1.启用
+     */
+    private Integer status;
+
+    /**
+     * 是否对接(0-不对接,1-对接)
+     */
+    private Integer connect;
+
+    /**
+     * 备注
+     */
+    private String remark;
+
+    /**
+     * 子医院关联表
+     */
+    private List<HospitalRelationVO> hospitalRelationVOList = Lists.newLinkedList();
+}

+ 33 - 0
cdssman-service/src/main/java/com/diagbot/vo/HospitalRelationVO.java

@@ -0,0 +1,33 @@
+package com.diagbot.vo;
+
+import lombok.Data;
+
+import javax.validation.constraints.NotBlank;
+import java.io.Serializable;
+
+/**
+ * <p>
+ * 医院关联表
+ * </p>
+ *
+ * @author zhoutg
+ * @since 2020-08-06
+ */
+@Data
+public class HospitalRelationVO implements Serializable {
+
+    private static final long serialVersionUID = 1L;
+
+    /**
+     * 子医院名称
+     */
+    @NotBlank(message = "子医院名称不能为空")
+    private String name;
+
+    /**
+     * 子医院编码
+     */
+    @NotBlank(message = "子医院编码不能为空")
+    private String code;
+
+}

+ 27 - 16
cdssman-service/src/main/java/com/diagbot/web/HospitalInfoController.java

@@ -5,13 +5,17 @@ import com.baomidou.mybatisplus.core.metadata.IPage;
 import com.diagbot.annotation.SysLogger;
 import com.diagbot.dto.ConceptMappingDTO;
 import com.diagbot.dto.HospitalInfoDTO;
+import com.diagbot.dto.HospitalInfoGetDTO;
+import com.diagbot.dto.HospitalInfoPageDTO;
+import com.diagbot.dto.HospitalRelationErrorDTO;
 import com.diagbot.dto.RespDTO;
-import com.diagbot.entity.DiseaseConfig;
-import com.diagbot.entity.HospitalInfo;
+import com.diagbot.exception.ServiceErrorCode;
 import com.diagbot.facade.HospitalInfoFacade;
 import com.diagbot.vo.ChangeStatusVO;
+import com.diagbot.vo.HospitalInfoGetVO;
 import com.diagbot.vo.HospitalInfoListVO;
 import com.diagbot.vo.HospitalInfoPageVO;
+import com.diagbot.vo.HospitalInfoSaveVO;
 import com.diagbot.vo.HospitalSaveVO;
 import com.diagbot.vo.IdListVO;
 import com.diagbot.vo.IdVO;
@@ -52,19 +56,26 @@ public class HospitalInfoController {
         return RespDTO.onSuc(data);
     }
 
-    /**
-     * 保存或修改映射关系
-     *
-     * @param hospitalInfo
-     * @return
-     */
-    @ApiOperation(value = "保存或修改映射关系[by:zhaops]", notes = "")
+    @ApiOperation(value = "根据医院id获取信息[by:zhoutg]", notes = "")
+    @PostMapping("/getById")
+    @SysLogger("getById")
+    public RespDTO<HospitalInfoGetDTO> getById(@RequestBody @Valid HospitalInfoGetVO hospitalInfoGetVO) {
+        HospitalInfoGetDTO data = hospitalInfoFacade.getById(hospitalInfoGetVO);
+        return RespDTO.onSuc(data);
+    }
+
+    @ApiOperation(value = "保存或修改[by:zhaops]", notes = "")
     @PostMapping("/saveOrUpdateRecord")
     @SysLogger("saveOrUpdateRecord")
     @Transactional
-    public RespDTO<Boolean> saveOrUpdateRecord(@RequestBody @Valid HospitalInfo hospitalInfo) {
-        Boolean data = hospitalInfoFacade.saveOrUpdateRecord(hospitalInfo);
-        return RespDTO.onSuc(data);
+    public RespDTO<HospitalRelationErrorDTO> saveOrUpdateRecord(@RequestBody @Valid HospitalInfoSaveVO hospitalInfoSaveVO) {
+        HospitalRelationErrorDTO errorData = hospitalInfoFacade.saveOrUpdateRecord(hospitalInfoSaveVO);
+        if (errorData != null) {
+            return RespDTO.onSucBoth(ServiceErrorCode.NAME_CODE_ERROR.getCode(),
+                    "操作失败,请检查【医院名称+医院编码】重复项",
+                    errorData);
+        }
+        return RespDTO.onSuc(errorData);
     }
 
     /**
@@ -83,12 +94,12 @@ public class HospitalInfoController {
     }
 
     /**
-     * 删除映射关系
+     * 删除
      *
      * @param idVO
      * @return
      */
-    @ApiOperation(value = "删除映射关系[by:zhaops]", notes = "")
+    @ApiOperation(value = "删除[by:zhaops]", notes = "")
     @PostMapping("/deleteRecord")
     @SysLogger("deleteRecord")
     @Transactional
@@ -121,8 +132,8 @@ public class HospitalInfoController {
     @ApiOperation(value = "分页查询[by:zhaops]", notes = "")
     @PostMapping("/getPage")
     @SysLogger("getPage")
-    public RespDTO<DiseaseConfig> getPage(@RequestBody @Valid HospitalInfoPageVO hospitalInfoPageVO) {
-        IPage<DiseaseConfig> data = hospitalInfoFacade.getPage(hospitalInfoPageVO);
+    public RespDTO<IPage<HospitalInfoPageDTO>> getPage(@RequestBody @Valid HospitalInfoPageVO hospitalInfoPageVO) {
+        IPage<HospitalInfoPageDTO> data = hospitalInfoFacade.getPageFac(hospitalInfoPageVO);
         return RespDTO.onSuc(data);
     }
 

+ 1 - 1
cdssman-service/src/main/resources/mapper/HospitalInfoMapper.xml

@@ -21,7 +21,7 @@
     </resultMap>
 
     <!-- 分页查询 -->
-    <select id="getPage" resultType="com.diagbot.entity.HospitalInfo">
+    <select id="getPage" resultType="com.diagbot.dto.HospitalInfoPageDTO">
         select a.*
         from tran_hospital_info a
         where a.is_deleted='N'

+ 19 - 0
cdssman-service/src/main/resources/mapper/TranHospitalRelationMapper.xml

@@ -0,0 +1,19 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
+<mapper namespace="com.diagbot.mapper.TranHospitalRelationMapper">
+
+    <!-- 通用查询映射结果 -->
+    <resultMap id="BaseResultMap" type="com.diagbot.entity.TranHospitalRelation">
+        <id column="id" property="id" />
+        <result column="is_deleted" property="isDeleted" />
+        <result column="gmt_create" property="gmtCreate" />
+        <result column="gmt_modified" property="gmtModified" />
+        <result column="creator" property="creator" />
+        <result column="modifier" property="modifier" />
+        <result column="code" property="code" />
+        <result column="name" property="name" />
+        <result column="hospital_id" property="hospitalId" />
+        <result column="remark" property="remark" />
+    </resultMap>
+
+</mapper>

+ 2 - 2
cdssman-service/src/test/java/com/diagbot/CodeGeneration.java

@@ -49,14 +49,14 @@ public class CodeGeneration {
         dsc.setDriverName("com.mysql.cj.jdbc.Driver");
         dsc.setUsername("root");
         dsc.setPassword("lantone");
-        dsc.setUrl("jdbc:mysql://192.168.2.236:3306/med_2021?serverTimezone=GMT%2B8&useUnicode=true&characterEncoding=utf-8");
+        dsc.setUrl("jdbc:mysql://192.168.2.236:3306/cdss?serverTimezone=GMT%2B8&useUnicode=true&characterEncoding=utf-8");
         mpg.setDataSource(dsc);
 
         // 策略配置
         StrategyConfig strategy = new StrategyConfig();
         //strategy.setTablePrefix(new String[] { "test" });// 此处可以修改为您的表前缀
         strategy.setNaming(NamingStrategy.underline_to_camel);// 表名生成策略
-        strategy.setInclude(new String[] { "kl_tcm_disease","kl_tcm_syndrome"}); // 需要生成的表
+        strategy.setInclude(new String[] { "tran_hospital_relation"}); // 需要生成的表
 
         strategy.setSuperServiceClass(null);
         strategy.setSuperServiceImplClass(null);

+ 4 - 1
user-service/src/main/java/com/diagbot/web/UserController.java

@@ -108,7 +108,10 @@ public class UserController {
 
     @ApiOperation(value = "登录获取jwt[by:zhoutg]",
             notes = "username:用户名,必填<br>" +
-                    "password:密码, 必填, 默认密码:dc483e80a7a0bd9ef71d8cf973673924<br> ")
+                    "password:密码, 必填<br> " +
+                    "【236】:f6af7afd01d4eb0dc5fe0a342cd6cee7<br>" +
+                    "【241】:ccd2fc33d2d423d7209035dbfff82b29<br>" +
+                    "【121、122】:27f78bb8d0adb1568d674518302f10b6<br>")
     @PostMapping("/getJwt")
     @SysLogger("getJwt")
     public RespDTO<JwtDTO> getJwt(@RequestBody UserLoginVO userLoginVO) {