Browse Source

Merge branch 'dev/subhos_defplan_20211009' into debug

# Conflicts:
#	src/main/java/com/diagbot/web/MappingConfigController.java
zhoutg 3 năm trước cách đây
mục cha
commit
476c812f3c
57 tập tin đã thay đổi với 1666 bổ sung284 xóa
  1. 19 0
      doc/003.20211009子医院映射/cdss_init.sql
  2. 15 0
      doc/003.20211009子医院映射/user_init.sql
  3. 9 8
      src/main/java/com/diagbot/aggregate/AssembleAggregate.java
  4. 8 7
      src/main/java/com/diagbot/aggregate/AssemblePushAggregate.java
  5. 1 0
      src/main/java/com/diagbot/config/ResourceServerConfigurer.java
  6. 1 0
      src/main/java/com/diagbot/config/security/UrlAccessDecisionManager.java
  7. 72 0
      src/main/java/com/diagbot/dto/HospitalInfoGetDTO.java
  8. 30 0
      src/main/java/com/diagbot/dto/HospitalRelationDTO.java
  9. 27 0
      src/main/java/com/diagbot/dto/HospitalRelationErrorDTO.java
  10. 1 0
      src/main/java/com/diagbot/dto/IndexBatchDTO.java
  11. 1 1
      src/main/java/com/diagbot/entity/AnesthesiaConfig.java
  12. 1 1
      src/main/java/com/diagbot/entity/DeptConfig.java
  13. 1 1
      src/main/java/com/diagbot/entity/DiseaseConfig.java
  14. 2 2
      src/main/java/com/diagbot/entity/DrugConfig.java
  15. 1 1
      src/main/java/com/diagbot/entity/LisConfig.java
  16. 1 1
      src/main/java/com/diagbot/entity/NurseConfig.java
  17. 1 1
      src/main/java/com/diagbot/entity/OperationConfig.java
  18. 1 1
      src/main/java/com/diagbot/entity/PacsConfig.java
  19. 1 1
      src/main/java/com/diagbot/entity/ScaleConfig.java
  20. 1 1
      src/main/java/com/diagbot/entity/TcmdiseaseConfig.java
  21. 1 1
      src/main/java/com/diagbot/entity/TcmsyndromeConfig.java
  22. 74 0
      src/main/java/com/diagbot/entity/TranHospitalRelation.java
  23. 1 1
      src/main/java/com/diagbot/entity/TransfusionConfig.java
  24. 23 0
      src/main/java/com/diagbot/entity/wrapper/AnesthesiaConfigWrapper.java
  25. 24 0
      src/main/java/com/diagbot/entity/wrapper/DeptConfigWrapper.java
  26. 23 0
      src/main/java/com/diagbot/entity/wrapper/DiseaseConfigWrapper.java
  27. 28 0
      src/main/java/com/diagbot/entity/wrapper/DrugConfigWrapper.java
  28. 23 0
      src/main/java/com/diagbot/entity/wrapper/LisConfigWrapper.java
  29. 4 0
      src/main/java/com/diagbot/entity/wrapper/MappingConfigWrapper.java
  30. 23 0
      src/main/java/com/diagbot/entity/wrapper/NurseConfigWrapper.java
  31. 23 0
      src/main/java/com/diagbot/entity/wrapper/OperationConfigWrapper.java
  32. 23 0
      src/main/java/com/diagbot/entity/wrapper/PacsConfigWrapper.java
  33. 23 0
      src/main/java/com/diagbot/entity/wrapper/ScaleConfigWrapper.java
  34. 23 0
      src/main/java/com/diagbot/entity/wrapper/TcmdiseaseConfigWrapper.java
  35. 23 0
      src/main/java/com/diagbot/entity/wrapper/TcmsyndromeConfigWrapper.java
  36. 23 0
      src/main/java/com/diagbot/entity/wrapper/TransfusionConfigWrapper.java
  37. 4 2
      src/main/java/com/diagbot/exception/ServiceErrorCode.java
  38. 7 7
      src/main/java/com/diagbot/facade/ConceptInfoFacade.java
  39. 141 1
      src/main/java/com/diagbot/facade/HospitalInfoFacade.java
  40. 642 235
      src/main/java/com/diagbot/facade/MappingConfigFacade.java
  41. 14 0
      src/main/java/com/diagbot/facade/TranHospitalRelationFacade.java
  42. 16 0
      src/main/java/com/diagbot/mapper/TranHospitalRelationMapper.java
  43. 16 0
      src/main/java/com/diagbot/service/TranHospitalRelationService.java
  44. 3 2
      src/main/java/com/diagbot/service/impl/MrServiceImpl.java
  45. 1 1
      src/main/java/com/diagbot/service/impl/SysTokenServiceImpl.java
  46. 20 0
      src/main/java/com/diagbot/service/impl/TranHospitalRelationServiceImpl.java
  47. 1 0
      src/main/java/com/diagbot/vo/ConceptVO.java
  48. 1 0
      src/main/java/com/diagbot/vo/FilterVO.java
  49. 61 0
      src/main/java/com/diagbot/vo/HospitalInfoSaveVO.java
  50. 32 0
      src/main/java/com/diagbot/vo/HospitalRelationVO.java
  51. 14 0
      src/main/java/com/diagbot/vo/MappingConfigPageVO.java
  52. 26 0
      src/main/java/com/diagbot/web/HospitalInfoController.java
  53. 38 5
      src/main/java/com/diagbot/web/MappingConfigController.java
  54. 20 0
      src/main/java/com/diagbot/web/TranHospitalRelationController.java
  55. 30 0
      src/main/resources/mapper/MappingConfigMapper.xml
  56. 19 0
      src/main/resources/mapper/TranHospitalRelationMapper.xml
  57. 4 3
      src/test/java/com/diagbot/CodeGeneration.java

+ 19 - 0
doc/003.20211009子医院映射/cdss_init.sql

@@ -0,0 +1,19 @@
+use `cdss`;
+
+DROP TABLE IF EXISTS `tran_hospital_relation`;
+CREATE TABLE `tran_hospital_relation` (
+  `id` bigint(20) NOT NULL AUTO_INCREMENT COMMENT '主键',
+  `is_deleted` char(1) NOT NULL DEFAULT 'N' COMMENT '是否删除,N:未删除,Y:删除',
+  `gmt_create` datetime NOT NULL DEFAULT '1970-01-01 12:00:00' COMMENT '记录创建时间',
+  `gmt_modified` datetime NOT NULL DEFAULT '1970-01-01 12:00:00' COMMENT '记录修改时间,如果时间是1970年则表示纪录未修改',
+  `creator` varchar(20) NOT NULL DEFAULT '0' COMMENT '创建人,0表示无创建人值',
+  `modifier` varchar(20) NOT NULL DEFAULT '0' COMMENT '修改人,如果为0则表示纪录未修改',
+  `code` varchar(255) NOT NULL DEFAULT '' COMMENT '子医院编码',
+  `name` varchar(255) NOT NULL DEFAULT '' COMMENT '子医院名称',
+  `hospital_id` bigint(20) NOT NULL DEFAULT '0' COMMENT '父医院id',
+  `remark` varchar(128) DEFAULT NULL COMMENT '备注',
+  PRIMARY KEY (`id`),
+  UNIQUE KEY `code_name` (`code`,`name`) USING BTREE,
+  KEY `name` (`name`) USING BTREE,
+  KEY `hospital_id` (`hospital_id`) USING BTREE
+) ENGINE=InnoDB AUTO_INCREMENT=2 DEFAULT CHARSET=utf8 COMMENT='医院关联表';

+ 15 - 0
doc/003.20211009子医院映射/user_init.sql

@@ -0,0 +1,15 @@
+use `cdss`;
+
+INSERT INTO `cdss`.`sys_menu` (`id`, `is_deleted`, `gmt_create`, `gmt_modified`, `creator`, `modifier`, `name`, `parent_id`, `code`, `order_no`, `remark`) VALUES ('20', 'N', '1970-01-01 12:00:00', '1970-01-01 12:00:00', '0', '0', '子医院维护', '2', 'XTPZ-ZYYWH', '2', '');
+
+INSERT INTO `cdss`.`sys_menu_permission` (`id`, `is_deleted`, `gmt_create`, `gmt_modified`, `creator`, `modifier`, `menu_id`, `permission_id`, `remark`) VALUES ('93', 'N', '1970-01-01 12:00:00', '1970-01-01 12:00:00', '0', '0', '20', '96', '子医院维护-获取子医院信息');
+INSERT INTO `cdss`.`sys_menu_permission` (`id`, `is_deleted`, `gmt_create`, `gmt_modified`, `creator`, `modifier`, `menu_id`, `permission_id`, `remark`) VALUES ('94', 'N', '1970-01-01 12:00:00', '1970-01-01 12:00:00', '0', '0', '20', '97', '子医院维护-编辑子医院信息');
+
+INSERT INTO `cdss`.`sys_permission` (`id`, `is_deleted`, `gmt_create`, `gmt_modified`, `creator`, `modifier`, `name`, `code`, `permissionUrl`, `method`, `descritpion`, `type`, `remark`) VALUES ('96', 'N', '1970-01-01 12:00:00', '1970-01-01 12:00:00', '0', '0', '子医院维护-获取子医院信息', 'FUNC000096', '/tran/hospitalInfo/getHospitalRelation', 'ALL', '子医院维护-获取子医院信息', '0', NULL);
+INSERT INTO `cdss`.`sys_permission` (`id`, `is_deleted`, `gmt_create`, `gmt_modified`, `creator`, `modifier`, `name`, `code`, `permissionUrl`, `method`, `descritpion`, `type`, `remark`) VALUES ('97', 'N', '1970-01-01 12:00:00', '1970-01-01 12:00:00', '0', '0', '子医院维护-编辑子医院信息', 'FUNC000097', '/tran/hospitalInfo/saveHospitalRelation', 'ALL', '子医院维护-编辑子医院信息', '0', NULL);
+
+INSERT INTO `cdss`.`sys_role_menu` (`id`, `is_deleted`, `gmt_create`, `gmt_modified`, `creator`, `modifier`, `role_id`, `menu_id`, `remark`) VALUES ('20', 'N', '1970-01-01 12:00:00', '1970-01-01 12:00:00', '0', '0', '-1', '20', NULL);
+
+INSERT INTO `cdss`.`sys_role_permission` (`id`, `is_deleted`, `gmt_create`, `gmt_modified`, `creator`, `modifier`, `role_id`, `permission_id`, `remark`) VALUES ('96', 'N', '1970-01-01 12:00:00', '1970-01-01 12:00:00', '0', '0', '-1', '96', '子医院维护-获取子医院信息');
+INSERT INTO `cdss`.`sys_role_permission` (`id`, `is_deleted`, `gmt_create`, `gmt_modified`, `creator`, `modifier`, `role_id`, `permission_id`, `remark`) VALUES ('97', 'N', '1970-01-01 12:00:00', '1970-01-01 12:00:00', '0', '0', '-1', '97', '子医院维护-编辑子医院信息');
+

+ 9 - 8
src/main/java/com/diagbot/aggregate/AssembleAggregate.java

@@ -4,6 +4,7 @@ import com.diagbot.biz.push.entity.Item;
 import com.diagbot.biz.push.entity.Lis;
 import com.diagbot.biz.push.entity.Pacs;
 import com.diagbot.enums.ConceptTypeEnum;
+import com.diagbot.enums.StatusEnum;
 import com.diagbot.facade.MappingConfigFacade;
 import com.diagbot.util.BeanUtil;
 import com.diagbot.util.ListUtil;
@@ -162,7 +163,7 @@ public class AssembleAggregate {
 
         if (ListUtil.isNotEmpty(lisHisNameList)) {
             lisConfigMap
-                    = mappingConfigFacade.groupByHisNameWithName(lisHisNameList, ConceptTypeEnum.LisPack.getKey(), searchData.getHospitalId());
+                    = mappingConfigFacade.groupByHisNameWithName(lisHisNameList, ConceptTypeEnum.LisPack.getKey(), searchData.getHospitalId(), StatusEnum.Enable.getKey());
         }
         return lisConfigMap;
     }
@@ -195,7 +196,7 @@ public class AssembleAggregate {
         Map<String, Map<String, Map<String, List<String>>>> pacsConfigMap = new HashMap<>();
         if (ListUtil.isNotEmpty(pacsHisNameList)) {
             pacsConfigMap
-                    = mappingConfigFacade.groupByHisNameWithName(pacsHisNameList, ConceptTypeEnum.Pacs.getKey(), searchData.getHospitalId());
+                    = mappingConfigFacade.groupByHisNameWithName(pacsHisNameList, ConceptTypeEnum.Pacs.getKey(), searchData.getHospitalId(),StatusEnum.Enable.getKey());
         }
         return pacsConfigMap;
     }
@@ -233,7 +234,7 @@ public class AssembleAggregate {
         Map<String, Map<String, Map<String, List<String>>>> configMap = new HashMap<>();
         if (ListUtil.isNotEmpty(diagHisNameList)) {
             configMap
-                    = mappingConfigFacade.groupByHisNameWithName(diagHisNameList, ConceptTypeEnum.Disease.getKey(), searchData.getHospitalId());
+                    = mappingConfigFacade.groupByHisNameWithName(diagHisNameList, ConceptTypeEnum.Disease.getKey(), searchData.getHospitalId(),StatusEnum.Enable.getKey());
         }
         return configMap;
     }
@@ -266,7 +267,7 @@ public class AssembleAggregate {
         Map<String, Map<String, Map<String, List<String>>>> configMap = new HashMap<>();
         if (ListUtil.isNotEmpty(drugHisNameList)) {
             configMap
-                    = mappingConfigFacade.groupByHisNameWithName(drugHisNameList, ConceptTypeEnum.Drug.getKey(), searchData.getHospitalId());
+                    = mappingConfigFacade.groupByHisNameWithName(drugHisNameList, ConceptTypeEnum.Drug.getKey(), searchData.getHospitalId(),StatusEnum.Enable.getKey());
         }
         return configMap;
     }
@@ -304,7 +305,7 @@ public class AssembleAggregate {
         Map<String, Map<String, Map<String, List<String>>>> configMap = new HashMap<>();
         if (ListUtil.isNotEmpty(operationHisNameList)) {
             configMap
-                    = mappingConfigFacade.groupByHisNameWithName(operationHisNameList, ConceptTypeEnum.Operation.getKey(), searchData.getHospitalId());
+                    = mappingConfigFacade.groupByHisNameWithName(operationHisNameList, ConceptTypeEnum.Operation.getKey(), searchData.getHospitalId(),StatusEnum.Enable.getKey());
         }
         return configMap;
     }
@@ -330,7 +331,7 @@ public class AssembleAggregate {
 
         if (ListUtil.isNotEmpty(deptHisNameList)) {
             configMap
-                    = mappingConfigFacade.groupByHisNameWithName(deptHisNameList, ConceptTypeEnum.Dept.getKey(), searchData.getHospitalId());
+                    = mappingConfigFacade.groupByHisNameWithName(deptHisNameList, ConceptTypeEnum.Dept.getKey(), searchData.getHospitalId(),StatusEnum.Enable.getKey());
         }
         return configMap;
     }
@@ -364,7 +365,7 @@ public class AssembleAggregate {
 
         if (ListUtil.isNotEmpty(transfusionHisNameList)) {
             configMap
-                    = mappingConfigFacade.groupByHisNameWithName(transfusionHisNameList, ConceptTypeEnum.Transfusion.getKey(), searchData.getHospitalId());
+                    = mappingConfigFacade.groupByHisNameWithName(transfusionHisNameList, ConceptTypeEnum.Transfusion.getKey(), searchData.getHospitalId(),StatusEnum.Enable.getKey());
         }
         return configMap;
     }
@@ -402,7 +403,7 @@ public class AssembleAggregate {
                 }
 
                 String hisDetailName = "";
-                if(type.equals(ConceptTypeEnum.LisPack.getKey())) {
+                if (type.equals(ConceptTypeEnum.LisPack.getKey())) {
                     hisDetailName = ReflectUtil.getProperty(item, "detailName");
                     if (StringUtil.isBlank(hisDetailName)) {
                         hisDetailName = "";

+ 8 - 7
src/main/java/com/diagbot/aggregate/AssemblePushAggregate.java

@@ -4,6 +4,7 @@ import com.diagbot.dto.PushBaseDTO;
 import com.diagbot.dto.PushDTO;
 import com.diagbot.dto.PushScaleDTO;
 import com.diagbot.enums.ConceptTypeEnum;
+import com.diagbot.enums.StatusEnum;
 import com.diagbot.facade.MappingConfigFacade;
 import com.diagbot.util.ListUtil;
 import com.google.common.collect.Lists;
@@ -85,7 +86,7 @@ public class AssemblePushAggregate {
                     .map(i -> i.getName())
                     .collect(Collectors.toList());
             Map<String, Map<String, Map<String, List<String>>>> uniqueNameMap
-                    = mappingConfigFacade.groupByUniqueNameWithName(uniqueNameList, ConceptTypeEnum.LisPack.getKey(), hospitalId);
+                    = mappingConfigFacade.groupByUniqueNameWithName(uniqueNameList, ConceptTypeEnum.LisPack.getKey(), hospitalId, StatusEnum.Enable.getKey());
 
             if (uniqueNameMap != null && uniqueNameMap.size() > 0) {
                 retLis.forEach(item -> {
@@ -113,7 +114,7 @@ public class AssemblePushAggregate {
                     .map(i -> i.getName())
                     .collect(Collectors.toList());
             Map<String, Map<String, Map<String, List<String>>>> uniqueNameMap
-                    = mappingConfigFacade.groupByUniqueNameWithName(uniqueNameList, ConceptTypeEnum.Pacs.getKey(), hospitalId);
+                    = mappingConfigFacade.groupByUniqueNameWithName(uniqueNameList, ConceptTypeEnum.Pacs.getKey(), hospitalId, StatusEnum.Enable.getKey());
 
             if (uniqueNameMap != null && uniqueNameMap.size() > 0) {
                 retPacs.forEach(item -> {
@@ -146,7 +147,7 @@ public class AssemblePushAggregate {
             }
             if (ListUtil.isNotEmpty(uniqueNameList)) {
                 Map<String, Map<String, Map<String, List<String>>>> uniqueNameMap
-                        = mappingConfigFacade.groupByUniqueNameWithName(uniqueNameList, ConceptTypeEnum.Disease.getKey(), hospitalId);
+                        = mappingConfigFacade.groupByUniqueNameWithName(uniqueNameList, ConceptTypeEnum.Disease.getKey(), hospitalId, StatusEnum.Enable.getKey());
 
                 for (Map.Entry<String, List<PushBaseDTO>> entry : retMap.entrySet()) {
                     if (uniqueNameMap != null && uniqueNameMap.size() > 0) {
@@ -177,7 +178,7 @@ public class AssemblePushAggregate {
                     .map(i -> i.getName())
                     .collect(Collectors.toList());
             Map<String, Map<String, Map<String, List<String>>>> uniqueNameMap
-                    = mappingConfigFacade.groupByUniqueNameWithName(uniqueNameList, ConceptTypeEnum.Operation.getKey(), hospitalId);
+                    = mappingConfigFacade.groupByUniqueNameWithName(uniqueNameList, ConceptTypeEnum.Operation.getKey(), hospitalId, StatusEnum.Enable.getKey());
 
             if (uniqueNameMap != null && uniqueNameMap.size() > 0) {
                 retOperation.forEach(item -> {
@@ -205,7 +206,7 @@ public class AssemblePushAggregate {
                     .map(i -> i.getName())
                     .collect(Collectors.toList());
             Map<String, Map<String, Map<String, List<String>>>> uniqueNameMap
-                    = mappingConfigFacade.groupByUniqueNameWithName(uniqueNameList, ConceptTypeEnum.Drug.getKey(), hospitalId);
+                    = mappingConfigFacade.groupByUniqueNameWithName(uniqueNameList, ConceptTypeEnum.Drug.getKey(), hospitalId, StatusEnum.Enable.getKey());
 
             if (uniqueNameMap != null && uniqueNameMap.size() > 0) {
                 retDrug.forEach(item -> {
@@ -233,7 +234,7 @@ public class AssemblePushAggregate {
                     .map(i -> i.getName())
                     .collect(Collectors.toList());
             Map<String, Map<String, Map<String, List<String>>>> uniqueNameMap
-                    = mappingConfigFacade.groupByUniqueNameWithName(uniqueNameList, ConceptTypeEnum.Scale.getKey(), hospitalId);
+                    = mappingConfigFacade.groupByUniqueNameWithName(uniqueNameList, ConceptTypeEnum.Scale.getKey(), hospitalId, StatusEnum.Enable.getKey());
 
             if (uniqueNameMap != null && uniqueNameMap.size() > 0) {
                 retScale.forEach(item -> {
@@ -261,7 +262,7 @@ public class AssemblePushAggregate {
                     .map(i -> i.getName())
                     .collect(Collectors.toList());
             Map<String, Map<String, Map<String, List<String>>>> uniqueNameMap
-                    = mappingConfigFacade.groupByUniqueNameWithName(uniqueNameList, ConceptTypeEnum.Nurse.getKey(), hospitalId);
+                    = mappingConfigFacade.groupByUniqueNameWithName(uniqueNameList, ConceptTypeEnum.Nurse.getKey(), hospitalId, StatusEnum.Enable.getKey());
 
             if (uniqueNameMap != null && uniqueNameMap.size() > 0) {
                 retNurse.forEach(item -> {

+ 1 - 0
src/main/java/com/diagbot/config/ResourceServerConfigurer.java

@@ -50,6 +50,7 @@ public class ResourceServerConfigurer extends ResourceServerConfigurerAdapter {
                 .antMatchers("/tran/mappingConfig/precDataMatch_remote").permitAll()
                 .antMatchers("/tran/mappingConfig/importExcelDataVerify").permitAll()
                 .antMatchers("/tran/mappingConfig/importExcel").permitAll()
+                .antMatchers("/tran/mappingConfig/importExcel_remote").permitAll()
                 .antMatchers("/tran/mappingConfig/exportExcel").permitAll()
                 .antMatchers("/tran/mappingConfig/exportExcel_remote").permitAll()
                 .antMatchers("/tran/mappingConfig/getPage").permitAll()

+ 1 - 0
src/main/java/com/diagbot/config/security/UrlAccessDecisionManager.java

@@ -93,6 +93,7 @@ public class UrlAccessDecisionManager implements AccessDecisionManager {
                 || matchers("/tran/mappingConfig/precDataMatch_remote", request)
                 || matchers("/tran/mappingConfig/importExcelDataVerify", request)
                 || matchers("/tran/mappingConfig/importExcel", request)
+                || matchers("/tran/mappingConfig/importExcel_remote", request)
                 || matchers("/tran/mappingConfig/exportExcel", request)
                 || matchers("/tran/mappingConfig/exportExcel_remote", request)
                 || matchers("/tran/mappingConfig/getPage", request)

+ 72 - 0
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();
+}

+ 30 - 0
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
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;
+}

+ 1 - 0
src/main/java/com/diagbot/dto/IndexBatchDTO.java

@@ -12,6 +12,7 @@ import lombok.Setter;
 @Setter
 public class IndexBatchDTO {
     private Long id;
+    private Integer status;
     private String name;
     private String code;
     private String synonyms;

+ 1 - 1
src/main/java/com/diagbot/entity/AnesthesiaConfig.java

@@ -36,7 +36,7 @@ public class AnesthesiaConfig {
     /**
      * 是否匹配(0-未匹配、1-已匹配)
      */
-    @Excel(name = "是否匹配", width = 20, orderNum = "4", replace = { "未匹配_0", "已匹配_1" }, isImportField = "true")
+    @Excel(name = "是否匹配", width = 20, orderNum = "4", replace = { "未匹配_0", "已匹配_1", "_null" }, isImportField = "true")
     private Integer isMatch;
 
     /**

+ 1 - 1
src/main/java/com/diagbot/entity/DeptConfig.java

@@ -83,7 +83,7 @@ public class DeptConfig {
     /**
      * 是否匹配(0-未匹配、1-已匹配)
      */
-    @Excel(name = "是否匹配【未匹配、已匹配】", width = 20, orderNum = "4", replace = { "未匹配_0", "已匹配_1" }, isImportField = "true")
+    @Excel(name = "是否匹配【未匹配、已匹配】", width = 20, orderNum = "4", replace = { "未匹配_0", "已匹配_1", "_null" }, isImportField = "true")
     private Integer isMatch;
 
     /**

+ 1 - 1
src/main/java/com/diagbot/entity/DiseaseConfig.java

@@ -78,7 +78,7 @@ public class DiseaseConfig {
     /**
      * 是否匹配(0-未匹配、1-已匹配)
      */
-    @Excel(name = "是否匹配【未匹配、已匹配】", width = 20, orderNum = "4", replace = { "未匹配_0", "已匹配_1" }, isImportField = "true")
+    @Excel(name = "是否匹配【未匹配、已匹配】", width = 20, orderNum = "4", replace = { "未匹配_0", "已匹配_1", "_null"}, isImportField = "true")
     private Integer isMatch;
 
     /**

+ 2 - 2
src/main/java/com/diagbot/entity/DrugConfig.java

@@ -82,12 +82,12 @@ public class DrugConfig {
     /**
      * 是否匹配(0-未匹配、1-已匹配)
      */
-    @Excel(name = "是否匹配【未匹配、已匹配】", width = 20, orderNum = "5", replace = { "未匹配_0", "已匹配_1" }, isImportField = "true")
+    @Excel(name = "是否匹配【未匹配、已匹配】", width = 20, orderNum = "5", replace = { "未匹配_0", "已匹配_1", "_null" }, isImportField = "true")
     private Integer isMatch;
 
     /**
      * 数据来源(1-标准词、2-同义词、3-编码、4-历史数据、5-相似词、99-数据迁移)
      */
-    @Excel(name = "数据来源【不填、标准词、同义词、编码、历史数据、相似词】", width = 20, orderNum = "6", replace = { "标准词_1", "同义词_2", "编码_3", "历史数据_4", "相似词_5", "国药准字_6", "数据迁移_99", "_null" }, isImportField = "true")
+    @Excel(name = "数据来源【不填、标准词、同义词、编码、历史数据、相似词、国药准字】", width = 20, orderNum = "6", replace = { "标准词_1", "同义词_2", "编码_3", "历史数据_4", "相似词_5", "国药准字_6", "数据迁移_99", "_null" }, isImportField = "true")
     private Integer source;
 }

+ 1 - 1
src/main/java/com/diagbot/entity/LisConfig.java

@@ -87,7 +87,7 @@ public class LisConfig {
     /**
      * 是否匹配(0-未匹配、1-已匹配)
      */
-    @Excel(name = "是否匹配【未匹配、已匹配】", width = 20, orderNum = "4", replace = { "未匹配_0", "已匹配_1" }, isImportField = "true")
+    @Excel(name = "是否匹配【未匹配、已匹配】", width = 20, orderNum = "4", replace = { "未匹配_0", "已匹配_1", "_null" }, isImportField = "true")
     private Integer isMatch;
 
     /**

+ 1 - 1
src/main/java/com/diagbot/entity/NurseConfig.java

@@ -81,7 +81,7 @@ public class NurseConfig{
     /**
      * 是否匹配(0-未匹配、1-已匹配)
      */
-    @Excel(name = "是否匹配【未匹配、已匹配】", width = 20, orderNum = "4", replace = { "未匹配_0", "已匹配_1" }, isImportField = "true")
+    @Excel(name = "是否匹配【未匹配、已匹配】", width = 20, orderNum = "4", replace = { "未匹配_0", "已匹配_1", "_null" }, isImportField = "true")
     private Integer isMatch;
 
     /**

+ 1 - 1
src/main/java/com/diagbot/entity/OperationConfig.java

@@ -82,7 +82,7 @@ public class OperationConfig{
     /**
      * 是否匹配(0-未匹配、1-已匹配)
      */
-    @Excel(name = "是否匹配【未匹配、已匹配】", width = 20, orderNum = "4", replace = { "未匹配_0", "已匹配_1" }, isImportField = "true")
+    @Excel(name = "是否匹配【未匹配、已匹配】", width = 20, orderNum = "4", replace = { "未匹配_0", "已匹配_1", "_null" }, isImportField = "true")
     private Integer isMatch;
 
     /**

+ 1 - 1
src/main/java/com/diagbot/entity/PacsConfig.java

@@ -82,7 +82,7 @@ public class PacsConfig implements Serializable {
     /**
      * 是否匹配(0-未匹配、1-已匹配)
      */
-    @Excel(name = "是否匹配【未匹配、已匹配】", width = 20, orderNum = "4", replace = { "未匹配_0", "已匹配_1" }, isImportField = "true")
+    @Excel(name = "是否匹配【未匹配、已匹配】", width = 20, orderNum = "4", replace = { "未匹配_0", "已匹配_1", "_null" }, isImportField = "true")
     private Integer isMatch;
 
     /**

+ 1 - 1
src/main/java/com/diagbot/entity/ScaleConfig.java

@@ -81,7 +81,7 @@ public class ScaleConfig{
     /**
      * 是否匹配(0-未匹配、1-已匹配)
      */
-    @Excel(name = "是否匹配【未匹配、已匹配】", width = 20, orderNum = "4", replace = { "未匹配_0", "已匹配_1" }, isImportField = "true")
+    @Excel(name = "是否匹配【未匹配、已匹配】", width = 20, orderNum = "4", replace = { "未匹配_0", "已匹配_1", "_null" }, isImportField = "true")
     private Integer isMatch;
 
     /**

+ 1 - 1
src/main/java/com/diagbot/entity/TcmdiseaseConfig.java

@@ -82,7 +82,7 @@ public class TcmdiseaseConfig{
     /**
      * 是否匹配(0-未匹配、1-已匹配)
      */
-    @Excel(name = "是否匹配【未匹配、已匹配】", width = 20, orderNum = "4", replace = { "未匹配_0", "已匹配_1" }, isImportField = "true")
+    @Excel(name = "是否匹配【未匹配、已匹配】", width = 20, orderNum = "4", replace = { "未匹配_0", "已匹配_1", "_null" }, isImportField = "true")
     private Integer isMatch;
 
     /**

+ 1 - 1
src/main/java/com/diagbot/entity/TcmsyndromeConfig.java

@@ -78,7 +78,7 @@ public class TcmsyndromeConfig {
     /**
      * 是否匹配(0-未匹配、1-已匹配)
      */
-    @Excel(name = "是否匹配【未匹配、已匹配】", width = 20, orderNum = "4", replace = { "未匹配_0", "已匹配_1" }, isImportField = "true")
+    @Excel(name = "是否匹配【未匹配、已匹配】", width = 20, orderNum = "4", replace = { "未匹配_0", "已匹配_1", "_null" }, isImportField = "true")
     private Integer isMatch;
 
     /**

+ 74 - 0
src/main/java/com/diagbot/entity/TranHospitalRelation.java

@@ -0,0 +1,74 @@
+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;
+
+}

+ 1 - 1
src/main/java/com/diagbot/entity/TransfusionConfig.java

@@ -78,7 +78,7 @@ public class TransfusionConfig {
     /**
      * 是否匹配(0-未匹配、1-已匹配)
      */
-    @Excel(name = "是否匹配【未匹配、已匹配】", width = 20, orderNum = "4", replace = { "未匹配_0", "已匹配_1" }, isImportField = "true")
+    @Excel(name = "是否匹配【未匹配、已匹配】", width = 20, orderNum = "4", replace = { "未匹配_0", "已匹配_1", "_null" }, isImportField = "true")
     private Integer isMatch;
 
     /**

+ 23 - 0
src/main/java/com/diagbot/entity/wrapper/AnesthesiaConfigWrapper.java

@@ -0,0 +1,23 @@
+package com.diagbot.entity.wrapper;
+
+import cn.afterturn.easypoi.excel.annotation.Excel;
+import com.diagbot.entity.AnesthesiaConfig;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+import lombok.ToString;
+
+/**
+ * @Description:
+ * @Author:zhaops
+ * @time: 2021/9/22 15:13
+ */
+@Data
+@EqualsAndHashCode(callSuper = true)
+@ToString(callSuper = true)
+public class AnesthesiaConfigWrapper extends AnesthesiaConfig {
+    /**
+     * 医院诊断名称
+     */
+    @Excel(name = "标准术语状态", width = 40, replace = { "禁用_0", "启用_1", "_null" }, orderNum = "99")
+    private Integer status;
+}

+ 24 - 0
src/main/java/com/diagbot/entity/wrapper/DeptConfigWrapper.java

@@ -0,0 +1,24 @@
+package com.diagbot.entity.wrapper;
+
+import cn.afterturn.easypoi.excel.annotation.Excel;
+import com.diagbot.entity.DeptConfig;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+import lombok.ToString;
+
+
+/**
+ * @Description:
+ * @Author:zhaops
+ * @time: 2021/9/22 14:53
+ */
+@Data
+@EqualsAndHashCode(callSuper = true)
+@ToString(callSuper = true)
+public class DeptConfigWrapper extends DeptConfig {
+    /**
+     * 医院诊断名称
+     */
+    @Excel(name = "标准术语状态", width = 40, replace = { "禁用_0", "启用_1", "_null" }, orderNum = "99")
+    private Integer status;
+}

+ 23 - 0
src/main/java/com/diagbot/entity/wrapper/DiseaseConfigWrapper.java

@@ -0,0 +1,23 @@
+package com.diagbot.entity.wrapper;
+
+import cn.afterturn.easypoi.excel.annotation.Excel;
+import com.diagbot.entity.DiseaseConfig;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+import lombok.ToString;
+
+/**
+ * @Description:
+ * @Author:zhaops
+ * @time: 2021/9/22 15:00
+ */
+@Data
+@EqualsAndHashCode(callSuper = true)
+@ToString(callSuper = true)
+public class DiseaseConfigWrapper extends DiseaseConfig {
+    /**
+     * 医院诊断名称
+     */
+    @Excel(name = "标准术语状态", width = 40, replace = { "禁用_0", "启用_1", "_null" }, orderNum = "99")
+    private Integer status;
+}

+ 28 - 0
src/main/java/com/diagbot/entity/wrapper/DrugConfigWrapper.java

@@ -0,0 +1,28 @@
+package com.diagbot.entity.wrapper;
+
+import cn.afterturn.easypoi.excel.annotation.Excel;
+import com.diagbot.entity.DrugConfig;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+import lombok.ToString;
+
+/**
+ * @Description:
+ * @Author:zhaops
+ * @time: 2021/9/22 15:02
+ */
+@Data
+@EqualsAndHashCode(callSuper = true)
+@ToString(callSuper = true)
+public class DrugConfigWrapper extends DrugConfig {
+    /**
+     * 医院诊断名称
+     */
+    @Excel(name = "标准术语状态", width = 40, replace = { "禁用_0", "启用_1", "_null" }, orderNum = "99")
+    private Integer status;
+    /**
+     * 医院诊断名称
+     */
+    @Excel(name = "标准剂型状态", width = 40, replace = { "禁用_0", "启用_1", "_null" }, orderNum = "100")
+    private Integer formStatus;
+}

+ 23 - 0
src/main/java/com/diagbot/entity/wrapper/LisConfigWrapper.java

@@ -0,0 +1,23 @@
+package com.diagbot.entity.wrapper;
+
+import cn.afterturn.easypoi.excel.annotation.Excel;
+import com.diagbot.entity.LisConfig;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+import lombok.ToString;
+
+/**
+ * @Description:
+ * @Author:zhaops
+ * @time: 2021/9/22 15:09
+ */
+@Data
+@EqualsAndHashCode(callSuper = true)
+@ToString(callSuper = true)
+public class LisConfigWrapper extends LisConfig {
+    /**
+     * 医院诊断名称
+     */
+    @Excel(name = "标准术语状态", width = 40, replace = { "禁用_0", "启用_1", "_null" }, orderNum = "99")
+    private Integer status;
+}

+ 4 - 0
src/main/java/com/diagbot/entity/wrapper/MappingConfigWrapper.java

@@ -16,7 +16,9 @@ import lombok.ToString;
 @ToString(callSuper = true)
 public class MappingConfigWrapper extends MappingConfig {
     private String uniqueName;
+    private Integer status;
     private String form;
+    private Integer formStatus;
     private String code;
     /**
      * 国药准字
@@ -46,7 +48,9 @@ public class MappingConfigWrapper extends MappingConfig {
     public static boolean nonNull(MappingConfigWrapper o) {
         return !(o == null
                 || (StringUtil.isBlank(o.uniqueName)
+                && o.status == null
                 && StringUtil.isBlank(o.form)
+                && o.formStatus == null
                 && StringUtil.isBlank(o.code)
                 && StringUtil.isBlank(o.approval)))
                 || MappingConfig.nonNull(o);

+ 23 - 0
src/main/java/com/diagbot/entity/wrapper/NurseConfigWrapper.java

@@ -0,0 +1,23 @@
+package com.diagbot.entity.wrapper;
+
+import cn.afterturn.easypoi.excel.annotation.Excel;
+import com.diagbot.entity.NurseConfig;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+import lombok.ToString;
+
+/**
+ * @Description:
+ * @Author:zhaops
+ * @time: 2021/9/22 15:12
+ */
+@Data
+@EqualsAndHashCode(callSuper = true)
+@ToString(callSuper = true)
+public class NurseConfigWrapper extends NurseConfig {
+    /**
+     * 医院诊断名称
+     */
+    @Excel(name = "标准术语状态", width = 40, replace = { "禁用_0", "启用_1", "_null" }, orderNum = "99")
+    private Integer status;
+}

+ 23 - 0
src/main/java/com/diagbot/entity/wrapper/OperationConfigWrapper.java

@@ -0,0 +1,23 @@
+package com.diagbot.entity.wrapper;
+
+import cn.afterturn.easypoi.excel.annotation.Excel;
+import com.diagbot.entity.OperationConfig;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+import lombok.ToString;
+
+/**
+ * @Description:
+ * @Author:zhaops
+ * @time: 2021/9/22 15:08
+ */
+@Data
+@EqualsAndHashCode(callSuper = true)
+@ToString(callSuper = true)
+public class OperationConfigWrapper extends OperationConfig {
+    /**
+     * 医院诊断名称
+     */
+    @Excel(name = "标准术语状态", width = 40, replace = { "禁用_0", "启用_1", "_null" }, orderNum = "99")
+    private Integer status;
+}

+ 23 - 0
src/main/java/com/diagbot/entity/wrapper/PacsConfigWrapper.java

@@ -0,0 +1,23 @@
+package com.diagbot.entity.wrapper;
+
+import cn.afterturn.easypoi.excel.annotation.Excel;
+import com.diagbot.entity.PacsConfig;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+import lombok.ToString;
+
+/**
+ * @Description:
+ * @Author:zhaops
+ * @time: 2021/9/22 15:10
+ */
+@Data
+@EqualsAndHashCode(callSuper = true)
+@ToString(callSuper = true)
+public class PacsConfigWrapper extends PacsConfig {
+    /**
+     * 医院诊断名称
+     */
+    @Excel(name = "标准术语状态", width = 40, replace = { "禁用_0", "启用_1", "_null" }, orderNum = "99")
+    private Integer status;
+}

+ 23 - 0
src/main/java/com/diagbot/entity/wrapper/ScaleConfigWrapper.java

@@ -0,0 +1,23 @@
+package com.diagbot.entity.wrapper;
+
+import cn.afterturn.easypoi.excel.annotation.Excel;
+import com.diagbot.entity.ScaleConfig;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+import lombok.ToString;
+
+/**
+ * @Description:
+ * @Author:zhaops
+ * @time: 2021/9/22 15:15
+ */
+@Data
+@EqualsAndHashCode(callSuper = true)
+@ToString(callSuper = true)
+public class ScaleConfigWrapper extends ScaleConfig {
+    /**
+     * 医院诊断名称
+     */
+    @Excel(name = "标准术语状态", width = 40, replace = { "禁用_0", "启用_1", "_null" }, orderNum = "99")
+    private Integer status;
+}

+ 23 - 0
src/main/java/com/diagbot/entity/wrapper/TcmdiseaseConfigWrapper.java

@@ -0,0 +1,23 @@
+package com.diagbot.entity.wrapper;
+
+import cn.afterturn.easypoi.excel.annotation.Excel;
+import com.diagbot.entity.TcmdiseaseConfig;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+import lombok.ToString;
+
+/**
+ * @Description:
+ * @Author:zhaops
+ * @time: 2021/9/22 15:17
+ */
+@Data
+@EqualsAndHashCode(callSuper = true)
+@ToString(callSuper = true)
+public class TcmdiseaseConfigWrapper extends TcmdiseaseConfig {
+    /**
+     * 医院诊断名称
+     */
+    @Excel(name = "标准术语状态", width = 40, replace = { "禁用_0", "启用_1", "_null" }, orderNum = "99")
+    private Integer status;
+}

+ 23 - 0
src/main/java/com/diagbot/entity/wrapper/TcmsyndromeConfigWrapper.java

@@ -0,0 +1,23 @@
+package com.diagbot.entity.wrapper;
+
+import cn.afterturn.easypoi.excel.annotation.Excel;
+import com.diagbot.entity.TcmsyndromeConfig;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+import lombok.ToString;
+
+/**
+ * @Description:
+ * @Author:zhaops
+ * @time: 2021/9/22 15:18
+ */
+@Data
+@EqualsAndHashCode(callSuper = true)
+@ToString(callSuper = true)
+public class TcmsyndromeConfigWrapper extends TcmsyndromeConfig {
+    /**
+     * 医院诊断名称
+     */
+    @Excel(name = "标准术语状态", width = 40, replace = { "禁用_0", "启用_1", "_null" }, orderNum = "99")
+    private Integer status;
+}

+ 23 - 0
src/main/java/com/diagbot/entity/wrapper/TransfusionConfigWrapper.java

@@ -0,0 +1,23 @@
+package com.diagbot.entity.wrapper;
+
+import cn.afterturn.easypoi.excel.annotation.Excel;
+import com.diagbot.entity.TransfusionConfig;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+import lombok.ToString;
+
+/**
+ * @Description:
+ * @Author:zhaops
+ * @time: 2021/9/22 15:18
+ */
+@Data
+@EqualsAndHashCode(callSuper = true)
+@ToString(callSuper = true)
+public class TransfusionConfigWrapper extends TransfusionConfig {
+    /**
+     * 医院诊断名称
+     */
+    @Excel(name = "标准术语状态", width = 40, replace = { "禁用_0", "启用_1", "_null" }, orderNum = "99")
+    private Integer status;
+}

+ 4 - 2
src/main/java/com/diagbot/exception/ServiceErrorCode.java

@@ -18,7 +18,9 @@ public enum ServiceErrorCode implements ErrorCode {
     USER_UN_BIND_ERROR("10020006", "用户手机号未绑定无需解绑"),
     VERIFYCODE_ERROR("10020007", "图片验证码生成错误"),
     USER_EXIST("10020008", "该账号已注册"),
-    EMAIL_IS_NULL("10020009", "请输入邮箱");
+    EMAIL_IS_NULL("10020009", "请输入邮箱"),
+
+    NAME_CODE_ERROR("20020009", "操作失败,请检查【医院名称+医院编码】重复项");
 
     private String code;
     private String msg;
@@ -40,7 +42,7 @@ public enum ServiceErrorCode implements ErrorCode {
 
     public static ServiceErrorCode codeOf(String code) {
         for (ServiceErrorCode state : values()) {
-            if (state.getCode() == code) {
+            if (state.getCode().equals(code)) {
                 return state;
             }
         }

+ 7 - 7
src/main/java/com/diagbot/facade/ConceptInfoFacade.java

@@ -608,7 +608,7 @@ public class ConceptInfoFacade extends ConceptInfoServiceImpl {
             case 1:
                 Map<String, Map<String, Map<String, List<String>>>> disConfigMap
                         = mappingConfigFacade.groupByHisNameWithName(ListUtil.arrayToList(new String[] { staticKnowledgeHISVO.getHisName() }),
-                        ConceptTypeEnum.Disease.getKey(), hospitalId);
+                        ConceptTypeEnum.Disease.getKey(), hospitalId,StatusEnum.Enable.getKey());
                 if (disConfigMap != null
                         && disConfigMap.get(staticKnowledgeHISVO.getHisName()) != null) {
                     nameList = disConfigMap.get(staticKnowledgeHISVO.getHisName())
@@ -620,7 +620,7 @@ public class ConceptInfoFacade extends ConceptInfoServiceImpl {
             case 2:
                 Map<String, Map<String, Map<String, List<String>>>> drugConfigMap
                         = mappingConfigFacade.groupByHisNameWithName(ListUtil.arrayToList(new String[] { staticKnowledgeHISVO.getHisName() }),
-                        ConceptTypeEnum.Drug.getKey(), hospitalId);
+                        ConceptTypeEnum.Drug.getKey(), hospitalId,StatusEnum.Enable.getKey());
                 if (drugConfigMap != null
                         && drugConfigMap.get(staticKnowledgeHISVO.getHisName()) != null) {
                     nameList = drugConfigMap.get(staticKnowledgeHISVO.getHisName())
@@ -633,7 +633,7 @@ public class ConceptInfoFacade extends ConceptInfoServiceImpl {
             case 4:
                 Map<String, Map<String, Map<String, List<String>>>> lisConfigMap
                         = mappingConfigFacade.groupByHisNameWithName(ListUtil.arrayToList(new String[] { staticKnowledgeHISVO.getHisName() }),
-                        ConceptTypeEnum.LisPack.getKey(), hospitalId);
+                        ConceptTypeEnum.LisPack.getKey(), hospitalId,StatusEnum.Enable.getKey());
                 if (lisConfigMap != null) {
                     if (StringUtil.isBlank(staticKnowledgeHISVO.getHisDetailName())) {
                         staticKnowledgeHISVO.setHisDetailName("");
@@ -652,7 +652,7 @@ public class ConceptInfoFacade extends ConceptInfoServiceImpl {
             case 6:
                 Map<String, Map<String, Map<String, List<String>>>> pacsConfigMap
                         = mappingConfigFacade.groupByHisNameWithName(ListUtil.arrayToList(new String[] { staticKnowledgeHISVO.getHisName() }),
-                        ConceptTypeEnum.Pacs.getKey(), hospitalId);
+                        ConceptTypeEnum.Pacs.getKey(), hospitalId,StatusEnum.Enable.getKey());
                 if (pacsConfigMap != null
                         && pacsConfigMap.get(staticKnowledgeHISVO.getHisName()) != null) {
                     nameList = pacsConfigMap.get(staticKnowledgeHISVO.getHisName())
@@ -664,7 +664,7 @@ public class ConceptInfoFacade extends ConceptInfoServiceImpl {
             case 7:
                 Map<String, Map<String, Map<String, List<String>>>> operationConfigMap
                         = mappingConfigFacade.groupByHisNameWithName(ListUtil.arrayToList(new String[] { staticKnowledgeHISVO.getHisName() }),
-                        ConceptTypeEnum.Operation.getKey(), hospitalId);
+                        ConceptTypeEnum.Operation.getKey(), hospitalId,StatusEnum.Enable.getKey());
                 if (operationConfigMap != null &&
                         operationConfigMap.get(staticKnowledgeHISVO.getHisName()) != null) {
                     nameList = operationConfigMap.get(staticKnowledgeHISVO.getHisName())
@@ -676,7 +676,7 @@ public class ConceptInfoFacade extends ConceptInfoServiceImpl {
             case 8:
                 Map<String, Map<String, Map<String, List<String>>>> scaleConfigMap
                         = mappingConfigFacade.groupByHisNameWithName(ListUtil.arrayToList(new String[] { staticKnowledgeHISVO.getHisName() }),
-                        ConceptTypeEnum.Scale.getKey(), hospitalId);
+                        ConceptTypeEnum.Scale.getKey(), hospitalId,StatusEnum.Enable.getKey());
                 if (scaleConfigMap != null &&
                         scaleConfigMap.get(staticKnowledgeHISVO.getHisName()) != null) {
                     nameList = scaleConfigMap.get(staticKnowledgeHISVO.getHisName())
@@ -688,7 +688,7 @@ public class ConceptInfoFacade extends ConceptInfoServiceImpl {
             case 9:
                 Map<String, Map<String, Map<String, List<String>>>> nurseConfigMap
                         = mappingConfigFacade.groupByHisNameWithName(ListUtil.arrayToList(new String[] { staticKnowledgeHISVO.getHisName() }),
-                        ConceptTypeEnum.Nurse.getKey(), hospitalId);
+                        ConceptTypeEnum.Nurse.getKey(), hospitalId,StatusEnum.Enable.getKey());
                 if (nurseConfigMap != null &&
                         nurseConfigMap.get(staticKnowledgeHISVO.getHisName()) != null) {
                     nameList = nurseConfigMap.get(staticKnowledgeHISVO.getHisName())

+ 141 - 1
src/main/java/com/diagbot/facade/HospitalInfoFacade.java

@@ -3,23 +3,37 @@ package com.diagbot.facade;
 import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
 import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper;
 import com.diagbot.dto.HospitalInfoDTO;
+import com.diagbot.dto.HospitalInfoGetDTO;
+import com.diagbot.dto.HospitalRelationDTO;
+import com.diagbot.dto.HospitalRelationErrorDTO;
 import com.diagbot.entity.HospitalInfo;
+import com.diagbot.entity.TranHospitalRelation;
 import com.diagbot.enums.IsDeleteEnum;
 import com.diagbot.enums.StatusEnum;
 import com.diagbot.exception.CommonErrorCode;
 import com.diagbot.exception.CommonException;
+import com.diagbot.service.TranHospitalRelationService;
 import com.diagbot.service.impl.HospitalInfoServiceImpl;
 import com.diagbot.util.BeanUtil;
 import com.diagbot.util.DateUtil;
+import com.diagbot.util.ListUtil;
 import com.diagbot.util.SysUserUtils;
+import com.diagbot.util.UserUtils;
 import com.diagbot.vo.HospitalCheckVO;
+import com.diagbot.vo.HospitalInfoSaveVO;
 import com.diagbot.vo.HospitalInfoVO;
+import com.diagbot.vo.HospitalRelationVO;
 import com.diagbot.vo.HospitalSaveVO;
+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;
 
 /**
  * @author wangfeng
@@ -29,6 +43,10 @@ import java.util.List;
 @Component
 public class HospitalInfoFacade extends HospitalInfoServiceImpl {
 
+    @Autowired
+    @Qualifier("tranHospitalRelationServiceImpl")
+    TranHospitalRelationService tranHospitalRelationService;
+
     /**
      * @param hospitalInfoVO
      * @return
@@ -114,4 +132,126 @@ public class HospitalInfoFacade extends HospitalInfoServiceImpl {
         data = BeanUtil.listCopyTo(list, HospitalInfoDTO.class);
         return data;
     }
+
+    /**
+     * 获取子医院信息
+     *
+     * @return
+     */
+    public HospitalInfoGetDTO getHospitalRelation() {
+        HospitalInfoGetDTO hospitalInfoGetDTO = new HospitalInfoGetDTO();
+        String hospitalId = SysUserUtils.getCurrentHospitalID();
+
+        // 查询主表
+        HospitalInfo one = this.getOne(new QueryWrapper<HospitalInfo>()
+                .eq("is_deleted", IsDeleteEnum.N.getKey())
+                .eq("id", hospitalId), false);
+        if (one == null) {
+            throw new CommonException(CommonErrorCode.NOT_EXISTS, "数据不存在");
+        }
+        BeanUtil.copyProperties(one, hospitalInfoGetDTO);
+
+        // 查询关联表
+        List<TranHospitalRelation> relationList = tranHospitalRelationService.list(new QueryWrapper<TranHospitalRelation>()
+                .eq("is_deleted", IsDeleteEnum.N.getKey())
+                .eq("hospital_id", hospitalId)
+        );
+        List<HospitalRelationDTO> hospitalRelationDTOList = BeanUtil.listCopyTo(relationList, HospitalRelationDTO.class);
+        hospitalInfoGetDTO.setHospitalRelationDTOList(hospitalRelationDTOList);
+        return hospitalInfoGetDTO;
+    }
+
+    /**
+     * 保存
+     *
+     * @param hospitalInfoSaveVO
+     * @return
+     */
+    public HospitalRelationErrorDTO saveHospitalRelation(HospitalInfoSaveVO hospitalInfoSaveVO) {
+        Long curHospitalId = Long.parseLong(SysUserUtils.getCurrentHospitalID());
+        // 查询主表
+        HospitalInfo one = this.getOne(new QueryWrapper<HospitalInfo>()
+                .eq("is_deleted", IsDeleteEnum.N.getKey())
+                .eq("id", curHospitalId), false);
+        if (one == null) {
+            throw new CommonException(CommonErrorCode.NOT_EXISTS, "数据不存在");
+        }
+
+        // 获取子医院
+        List<HospitalRelationVO> hospitalRelationVOList = hospitalInfoSaveVO.getHospitalRelationVOList();
+        // 校验子医院
+        HospitalRelationErrorDTO res = checkRelationHospital(hospitalRelationVOList, curHospitalId);
+        if (res != null) {
+            return res;
+        }
+
+        // 先删除子医院关联表
+        tranHospitalRelationService.remove(new QueryWrapper<TranHospitalRelation>().eq("hospital_id", curHospitalId));
+
+        // 插入子医院关联表
+        List<TranHospitalRelation> saveRelationList = Lists.newArrayList();
+        String userId = UserUtils.getCurrentPrincipleID();
+        Date now = DateUtil.now();
+        for (HospitalRelationVO hospitalRelationVO : hospitalRelationVOList) {
+            TranHospitalRelation tranHospitalRelation = new TranHospitalRelation();
+            BeanUtil.copyProperties(hospitalRelationVO, tranHospitalRelation);
+            tranHospitalRelation.setHospitalId(curHospitalId);
+            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() + "_" + k.getCode(), 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() + "_" + hospitalRelationVO.getCode();
+                // 判断当前医院重复
+                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;
+    }
 }

Những thai đổi đã bị hủy bỏ vì nó quá lớn
+ 642 - 235
src/main/java/com/diagbot/facade/MappingConfigFacade.java


+ 14 - 0
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 {
+
+}

+ 16 - 0
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> {
+
+}

+ 16 - 0
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> {
+
+}

+ 3 - 2
src/main/java/com/diagbot/service/impl/MrServiceImpl.java

@@ -4,6 +4,7 @@ import com.diagbot.biz.push.entity.Item;
 import com.diagbot.dto.TcmDTO;
 import com.diagbot.enums.ConceptTypeEnum;
 import com.diagbot.enums.OtherIndexEnum;
+import com.diagbot.enums.StatusEnum;
 import com.diagbot.exception.CommonErrorCode;
 import com.diagbot.exception.CommonException;
 import com.diagbot.facade.MappingConfigFacade;
@@ -143,7 +144,7 @@ public class MrServiceImpl implements MrService {
                 tcmdisease.setName(otherIndex.get(OtherIndexEnum.getName(OtherIndexEnum.TcmDiag.getKey())));
                 Map<String, Map<String, Map<String, List<String>>>> configMap
                         = mappingConfigFacade.groupByHisNameWithName(Arrays.asList(new String[] { tcmdisease.getName() }),
-                        ConceptTypeEnum.Tcmdisease.getKey(), hospitalId);
+                        ConceptTypeEnum.Tcmdisease.getKey(), hospitalId, StatusEnum.Enable.getKey());
                 if (configMap != null && configMap.get(tcmdisease.getName()) != null) {
                     tcmdisease.setUniqueName(configMap.get(tcmdisease.getName())
                             .get("")
@@ -162,7 +163,7 @@ public class MrServiceImpl implements MrService {
                 tcmsyndrome.setName(otherIndex.get(OtherIndexEnum.getName(OtherIndexEnum.TcmSyndrome.getKey())));
                 Map<String, Map<String, Map<String, List<String>>>> configMap
                         = mappingConfigFacade.groupByHisNameWithName(Arrays.asList(new String[] { tcmsyndrome.getName() }),
-                        ConceptTypeEnum.Tcmsyndrome.getKey(), hospitalId);
+                        ConceptTypeEnum.Tcmsyndrome.getKey(), hospitalId, StatusEnum.Enable.getKey());
                 if (configMap != null && configMap.get(tcmsyndrome.getName()) != null) {
                     tcmsyndrome.setUniqueName(configMap.get(tcmsyndrome.getName())
                             .get("")

+ 1 - 1
src/main/java/com/diagbot/service/impl/SysTokenServiceImpl.java

@@ -57,7 +57,7 @@ public class SysTokenServiceImpl implements SysTokenService {
      */
     @Override
     public Boolean createToken(JwtStore token) {
-        DecodedJWT jwt = JwtUtil.decodedJWT(token.getRefreshToken());
+        DecodedJWT jwt = JwtUtil.decodedJWT(token.getAccessToken());
         Map<String, Claim> claims = jwt.getClaims();
         String userId = claims.get("user_id").asInt().toString();
         Date expDate = claims.get("exp").asDate();

+ 20 - 0
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 {
+
+}

+ 1 - 0
src/main/java/com/diagbot/vo/ConceptVO.java

@@ -17,4 +17,5 @@ public class ConceptVO {
     private List<String> names;
     private Integer type;
     private Integer source;
+    private Integer status;
 }

+ 1 - 0
src/main/java/com/diagbot/vo/FilterVO.java

@@ -15,4 +15,5 @@ import javax.validation.constraints.NotBlank;
 public class FilterVO {
     @NotBlank(message = "请输入检索内容")
     private String inputStr;
+    private Integer status;
 }

+ 61 - 0
src/main/java/com/diagbot/vo/HospitalInfoSaveVO.java

@@ -0,0 +1,61 @@
+package com.diagbot.vo;
+
+import com.google.common.collect.Lists;
+import lombok.Data;
+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();
+}

+ 32 - 0
src/main/java/com/diagbot/vo/HospitalRelationVO.java

@@ -0,0 +1,32 @@
+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;
+
+}

+ 14 - 0
src/main/java/com/diagbot/vo/MappingConfigPageVO.java

@@ -48,6 +48,8 @@ public class MappingConfigPageVO extends Page {
     private String uniqueName;
     @ApiModelProperty(hidden = true)
     private List<Long> conceptIds;
+    @ApiModelProperty(hidden = true)
+    private List<Long> notInConceptIds;
 
     /**
      * 药品剂型
@@ -55,6 +57,8 @@ public class MappingConfigPageVO extends Page {
     private String form;
     @ApiModelProperty(hidden = true)
     private List<Long> formConceptIds;
+    @ApiModelProperty(hidden = true)
+    private List<Long> notInFormConceptIds;
 
     /**
      * 是否匹配(0-未匹配、1-已匹配、2-多条匹配)
@@ -71,4 +75,14 @@ public class MappingConfigPageVO extends Page {
      */
     @ApiModelProperty(hidden = true)
     private Integer isMultiple;
+
+    /**
+     * 标准术语启用禁用状态
+     */
+    private Integer status;
+
+    /**
+     * 剂型启用禁用状态
+     */
+    private Integer formStatus;
 }

+ 26 - 0
src/main/java/com/diagbot/web/HospitalInfoController.java

@@ -3,10 +3,14 @@ package com.diagbot.web;
 
 import com.diagbot.annotation.SysLogger;
 import com.diagbot.dto.HospitalInfoDTO;
+import com.diagbot.dto.HospitalInfoGetDTO;
+import com.diagbot.dto.HospitalRelationErrorDTO;
 import com.diagbot.dto.RespDTO;
 import com.diagbot.entity.HospitalInfo;
+import com.diagbot.exception.ServiceErrorCode;
 import com.diagbot.facade.HospitalInfoFacade;
 import com.diagbot.vo.HospitalCheckVO;
+import com.diagbot.vo.HospitalInfoSaveVO;
 import com.diagbot.vo.HospitalInfoVO;
 import com.diagbot.vo.HospitalSaveVO;
 import io.swagger.annotations.Api;
@@ -90,4 +94,26 @@ public class HospitalInfoController {
         List<HospitalInfoDTO> data = hospitalInfoFacade.getAllEnableHospitalInfo();
         return RespDTO.onSuc(data);
     }
+
+    @ApiOperation(value = "获取子医院信息[by:zhoutg]",
+            notes = "")
+    @PostMapping("/getHospitalRelation")
+    @SysLogger("getHospitalRelation")
+    public RespDTO<HospitalInfoGetDTO> getHospitalRelation() {
+        return RespDTO.onSuc(hospitalInfoFacade.getHospitalRelation());
+    }
+
+    @ApiOperation(value = "编辑子医院信息[by:zhoutg]", notes = "")
+    @PostMapping("/saveHospitalRelation")
+    @SysLogger("saveHospitalRelation")
+    @Transactional
+    public RespDTO<HospitalRelationErrorDTO> saveHospitalRelation(@RequestBody @Valid HospitalInfoSaveVO hospitalInfoSaveVO) {
+        HospitalRelationErrorDTO errorData = hospitalInfoFacade.saveHospitalRelation(hospitalInfoSaveVO);
+        if (errorData != null) {
+            return RespDTO.onSucBoth(ServiceErrorCode.NAME_CODE_ERROR.getCode(),
+                    "操作失败,请检查【医院名称+医院编码】重复项",
+                    errorData);
+        }
+        return RespDTO.onSuc(errorData);
+    }
 }

+ 38 - 5
src/main/java/com/diagbot/web/MappingConfigController.java

@@ -12,6 +12,7 @@ import com.diagbot.vo.IdListVO;
 import com.diagbot.vo.IdVO;
 import com.diagbot.vo.MappingConfigPageVO;
 import com.diagbot.vo.MappingConfigVO;
+import com.diagbot.vo.PrecDataVO;
 import io.swagger.annotations.Api;
 import io.swagger.annotations.ApiOperation;
 import org.springframework.beans.factory.annotation.Autowired;
@@ -83,6 +84,19 @@ public class MappingConfigController {
         return RespDTO.onSuc(data);
     }
 
+    @ApiOperation(value = "预匹配(非文件匹配)[by:zhaops]",
+            notes = "type(必填): 类型:1-化验、3-辅检、4-诊断、5-药品、6-手术和操作、7-科室、8-输血、10-量表、11-护理、12-中医诊断、13-中医证候、14-麻醉 <br>" +
+                    "hisName(必填):医院术语名称 <br>" +
+                    "hisDetailName(选填):医院术语名称-细项 <br>" +
+                    "code(选填):诊断ICD10编码、手术编码、中医疾病编码、中医证候编码 <br>" +
+                    "approval(选填):药品国药准字 <br>")
+    @PostMapping(value = "/precData")
+    @SysLogger("precData")
+    public RespDTO<List<MappingConfigWrapper>> precData(@Valid @RequestBody PrecDataVO precDataVO) {
+        List<MappingConfigWrapper> data = mappingConfigFacade.precData(precDataVO);
+        return RespDTO.onSuc(data);
+    }
+
     @ApiOperation(value = "数据导入校验[by:zhaops]",
             notes = "file(必填):导入文件 <br>" +
                     "hospitalId(必填):医院id <br>" +
@@ -106,11 +120,30 @@ public class MappingConfigController {
     @PostMapping(value = "/importExcel", consumes = MediaType.MULTIPART_FORM_DATA_VALUE)
     @SysLogger("importExcel")
     @Transactional
-    public RespDTO<Boolean> importExcel(@RequestParam("file") MultipartFile file,
-                                        @RequestParam("hospitalId") Long hospitalId,
-                                        @RequestParam("type") Integer type,
-                                        @RequestParam("uesrId") String userId) {
-        Boolean data = mappingConfigFacade.importExcel(file, hospitalId, type, userId);
+    public void importExcel(HttpServletResponse response,
+                            @RequestParam("file") MultipartFile file,
+                            @RequestParam("hospitalId") Long hospitalId,
+                            @RequestParam("type") Integer type,
+                            @RequestParam("uesrId") String userId) {
+        response.setHeader("Access-Control-Expose-Headers", "*");
+        mappingConfigFacade.importExcel(response, file, hospitalId, type, userId);
+    }
+
+    @ApiOperation(value = "数据导入_远程调用[by:zhaops]",
+            notes = "file(必填):导入文件 <br>" +
+                    "hospitalId(必填):医院id <br>" +
+                    "uesrId(必填):操作人id <br>" +
+                    "type(必填): 类型:1-化验、3-辅检、4-诊断、5-药品、6-手术和操作、7-科室、8-输血、10-量表、11-护理、12-中医诊断、13-中医证候、14-麻醉 <br>")
+    @PostMapping(value = "/importExcel_remote", consumes = MediaType.MULTIPART_FORM_DATA_VALUE)
+    @SysLogger("importExcel_remote")
+    @Transactional
+    @ApiIgnore
+    public RespDTO<List<MappingConfigWrapper>> importExcel_remote(HttpServletResponse response,
+                                                                  @RequestParam("file") MultipartFile file,
+                                                                  @RequestParam("hospitalId") Long hospitalId,
+                                                                  @RequestParam("type") Integer type,
+                                                                  @RequestParam("uesrId") String userId) {
+        List<MappingConfigWrapper> data = mappingConfigFacade.importExcel_remote(response, file, hospitalId, type, userId);
         return RespDTO.onSuc(data);
     }
 

+ 20 - 0
src/main/java/com/diagbot/web/TranHospitalRelationController.java

@@ -0,0 +1,20 @@
+package com.diagbot.web;
+
+
+import org.springframework.web.bind.annotation.RequestMapping;
+
+import org.springframework.stereotype.Controller;
+
+/**
+ * <p>
+ * 医院关联表 前端控制器
+ * </p>
+ *
+ * @author zhoutg
+ * @since 2021-10-09
+ */
+@Controller
+@RequestMapping("/tranHospitalRelation")
+public class TranHospitalRelationController {
+
+}

+ 30 - 0
src/main/resources/mapper/MappingConfigMapper.xml

@@ -50,6 +50,13 @@
                 #{conceptId}
             </foreach>
         </if>
+        <if test="mappingConfigPageVO.notInConceptIds!=null and mappingConfigPageVO.notInConceptIds.size()>0">
+            and a.concept_id is not null
+            and a.concept_id not in
+            <foreach item="notInConceptId" collection="mappingConfigPageVO.notInConceptIds" open="(" separator="," close=")">
+                #{notInConceptId}
+            </foreach>
+        </if>
         <if test="mappingConfigPageVO.formConceptIds!=null and mappingConfigPageVO.formConceptIds.size()>0">
             and a.form_concept_id in
             <foreach item="formConceptId" collection="mappingConfigPageVO.formConceptIds" open="(" separator=","
@@ -57,6 +64,14 @@
                 #{formConceptId}
             </foreach>
         </if>
+        <if test="mappingConfigPageVO.notInFormConceptIds!=null and mappingConfigPageVO.notInFormConceptIds.size()>0">
+            and a.form_concept_id is not null
+            and a.form_concept_id in
+            <foreach item="notInFormConceptId" collection="mappingConfigPageVO.notInFormConceptIds" open="(" separator=","
+                     close=")">
+                #{notInFormConceptId}
+            </foreach>
+        </if>
         <if test="mappingConfigPageVO.isMatch!=null">
             and a.is_match=#{mappingConfigPageVO.isMatch}
         </if>
@@ -86,6 +101,13 @@
                     #{conceptId}
                 </foreach>
             </if>
+            <if test="mappingConfigPageVO.notInConceptIds!=null and mappingConfigPageVO.notInConceptIds.size()>0">
+                and a.concept_id is not null
+                and a.concept_id not in
+                <foreach item="notInConceptId" collection="mappingConfigPageVO.notInConceptIds" open="(" separator="," close=")">
+                    #{notInConceptId}
+                </foreach>
+            </if>
             <if test="mappingConfigPageVO.formConceptIds!=null and mappingConfigPageVO.formConceptIds.size()>0">
                 and a.form_concept_id in
                 <foreach item="formConceptId" collection="mappingConfigPageVO.formConceptIds" open="(" separator=","
@@ -93,6 +115,14 @@
                     #{formConceptId}
                 </foreach>
             </if>
+            <if test="mappingConfigPageVO.notInFormConceptIds!=null and mappingConfigPageVO.notInFormConceptIds.size()>0">
+                and a.form_concept_id is not null
+                and a.form_concept_id in
+                <foreach item="notInFormConceptId" collection="mappingConfigPageVO.notInFormConceptIds" open="(" separator=","
+                         close=")">
+                    #{notInFormConceptId}
+                </foreach>
+            </if>
             group by a.his_name
             <if test="mappingConfigPageVO.type!=null and mappingConfigPageVO.type==1">
                 ,a.his_detail_name

+ 19 - 0
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>

+ 4 - 3
src/test/java/com/diagbot/CodeGeneration.java

@@ -28,12 +28,13 @@ public class CodeGeneration {
         // 全局配置
         GlobalConfig gc = new GlobalConfig();
         gc.setOutputDir("E://code//cdss");
+        // gc.setOutputDir(System.getProperty("user.dir") + "//src//main//java");
         gc.setFileOverride(true);
         gc.setActiveRecord(false);// 不需要ActiveRecord特性的请改为false
         gc.setEnableCache(false);// XML 二级缓存
         gc.setBaseResultMap(true);// XML ResultMap
         gc.setBaseColumnList(false);// XML columList
-        gc.setAuthor("gaodm");// 作者
+        gc.setAuthor("zhoutg");// 作者
 
         // 自定义文件命名,注意 %s 会自动填充表实体属性!
         gc.setControllerName("%sController");
@@ -54,9 +55,9 @@ public class CodeGeneration {
 
         // 策略配置
         StrategyConfig strategy = new StrategyConfig();
-        strategy.setTablePrefix(new String[] { "demo_" });// 此处可以修改为您的表前缀
+        // strategy.setTablePrefix(new String[] { "demo_" });// 此处可以修改为您的表前缀
         strategy.setNaming(NamingStrategy.underline_to_camel);// 表名生成策略
-        strategy.setInclude(new String[] { "demo_mrtest_info"}); // 需要生成的表
+        strategy.setInclude(new String[] { "tran_hospital_relation"}); // 需要生成的表
 
         strategy.setSuperServiceClass(null);
         strategy.setSuperServiceImplClass(null);