Browse Source

Merge remote-tracking branch 'origin/develop' into dev/20210625_v3.1_权限

# Conflicts:
#	gateway-service/src/main/resources/bootstrap.yml
#	pom.xml
rengb 3 năm trước cách đây
mục cha
commit
520c3cd928
55 tập tin đã thay đổi với 2167 bổ sung1 xóa
  1. 13 0
      config-center/src/main/resources/shared/external-service-debug.yml
  2. 13 0
      config-center/src/main/resources/shared/external-service-inner.yml
  3. 13 0
      config-center/src/main/resources/shared/external-service-local.yml
  4. 13 0
      config-center/src/main/resources/shared/external-service-outer.yml
  5. 13 0
      config-center/src/main/resources/shared/external-service-test.yml
  6. 13 0
      config-center/src/main/resources/shared/tran-service-debug.yml
  7. 13 0
      config-center/src/main/resources/shared/tran-service-inner.yml
  8. 13 0
      config-center/src/main/resources/shared/tran-service-local.yml
  9. 13 0
      config-center/src/main/resources/shared/tran-service-outer.yml
  10. 13 0
      config-center/src/main/resources/shared/tran-service-test.yml
  11. 54 0
      dblayer-mbg/src/test/java/com/lantone/dblayermbg/CodeAutoGenerator.java
  12. 33 0
      external-service/.gitignore
  13. 53 0
      external-service/pom.xml
  14. 19 0
      external-service/src/main/java/com/lantone/ExternalServiceApplication.java
  15. 22 0
      external-service/src/main/java/com/lantone/external/client/TranService.java
  16. 13 0
      external-service/src/main/java/com/lantone/external/config/RedisConfig.java
  17. 16 0
      external-service/src/main/java/com/lantone/external/config/SwaggerConfig.java
  18. 26 0
      external-service/src/main/java/com/lantone/external/dto/GetLostBehospitalDTO.java
  19. 27 0
      external-service/src/main/java/com/lantone/external/dto/client/AddLostBehospitalDTO.java
  20. 202 0
      external-service/src/main/java/com/lantone/external/entity/BehospitalInfo.java
  21. 41 0
      external-service/src/main/java/com/lantone/external/enums/IsPlacefileEnum.java
  22. 53 0
      external-service/src/main/java/com/lantone/external/facade/BehospitalManagementFacade.java
  23. 14 0
      external-service/src/main/java/com/lantone/external/facade/base/BehospitalInfoFacade.java
  24. 13 0
      external-service/src/main/java/com/lantone/external/mapper/BehospitalInfoMapper.java
  25. 13 0
      external-service/src/main/java/com/lantone/external/service/BehospitalInfoService.java
  26. 17 0
      external-service/src/main/java/com/lantone/external/service/impl/BehospitalInfoServiceImpl.java
  27. 32 0
      external-service/src/main/java/com/lantone/external/vo/GetLostBehospitalVO.java
  28. 165 0
      external-service/src/main/java/com/lantone/external/vo/client/AddLostBehospitalVO.java
  29. 36 0
      external-service/src/main/java/com/lantone/external/web/BehospitalManagementController.java
  30. 57 0
      external-service/src/main/resources/bootstrap.yml
  31. 133 0
      external-service/src/main/resources/logback-spring.xml
  32. 5 0
      external-service/src/main/resources/mapper/BehospitalInfoMapper.xml
  33. 39 0
      external-service/src/main/resources/mapper/base/BaseBehospitalInfoMapper.xml
  34. 0 0
      external-service/src/main/resources/upgrade/V1__external_init.sql
  35. 15 1
      gateway-service/src/main/resources/bootstrap.yml
  36. 2 0
      pom.xml
  37. 33 0
      tran-service/.gitignore
  38. 53 0
      tran-service/pom.xml
  39. 19 0
      tran-service/src/main/java/com/lantone/TranServiceApplication.java
  40. 13 0
      tran-service/src/main/java/com/lantone/tran/config/RedisConfig.java
  41. 16 0
      tran-service/src/main/java/com/lantone/tran/config/SwaggerConfig.java
  42. 24 0
      tran-service/src/main/java/com/lantone/tran/dto/AddLostBehospitalDTO.java
  43. 232 0
      tran-service/src/main/java/com/lantone/tran/entity/BehospitalInfo.java
  44. 50 0
      tran-service/src/main/java/com/lantone/tran/facade/BehospitalManagementFacade.java
  45. 14 0
      tran-service/src/main/java/com/lantone/tran/facade/base/BehospitalInfoFacade.java
  46. 13 0
      tran-service/src/main/java/com/lantone/tran/mapper/BehospitalInfoMapper.java
  47. 13 0
      tran-service/src/main/java/com/lantone/tran/service/BehospitalInfoService.java
  48. 17 0
      tran-service/src/main/java/com/lantone/tran/service/impl/BehospitalInfoServiceImpl.java
  49. 165 0
      tran-service/src/main/java/com/lantone/tran/vo/AddLostBehospitalVO.java
  50. 36 0
      tran-service/src/main/java/com/lantone/tran/web/BehospitalManagementController.java
  51. 57 0
      tran-service/src/main/resources/bootstrap.yml
  52. 133 0
      tran-service/src/main/resources/logback-spring.xml
  53. 5 0
      tran-service/src/main/resources/mapper/BehospitalInfoMapper.xml
  54. 44 0
      tran-service/src/main/resources/mapper/base/BaseBehospitalInfoMapper.xml
  55. 0 0
      tran-service/src/main/resources/upgrade/V1__tran_init.sql

+ 13 - 0
config-center/src/main/resources/shared/external-service-debug.yml

@@ -0,0 +1,13 @@
+spring:
+  redis:
+    database: 12
+    host: 192.168.2.237 # Redis服务器地址
+    port: 63791 # Redis服务器连接端口
+    password: emrais # Redis服务器连接密码(默认为空)
+  datasource:
+    druid:
+      url: jdbc:mysql://192.168.2.237:3306/external?serverTimezone=GMT%2B8&useUnicode=true&characterEncoding=utf8&characterSetResults=utf8&useSSL=false&allowMultiQueries=true
+      username: root
+      password: lantone
+
+swagger.show: true

+ 13 - 0
config-center/src/main/resources/shared/external-service-inner.yml

@@ -0,0 +1,13 @@
+spring:
+  redis:
+    database: 12
+    host: 192.168.2.237 # Redis服务器地址
+    port: 63791 # Redis服务器连接端口
+    password: emrais # Redis服务器连接密码(默认为空)
+  datasource:
+    druid:
+      url: jdbc:mysql://192.168.2.237:3306/external?serverTimezone=GMT%2B8&useUnicode=true&characterEncoding=utf8&characterSetResults=utf8&useSSL=false&allowMultiQueries=true
+      username: root
+      password: lantone
+
+swagger.show: false

+ 13 - 0
config-center/src/main/resources/shared/external-service-local.yml

@@ -0,0 +1,13 @@
+spring:
+  redis:
+    database: 12
+    host: 192.168.2.237 # Redis服务器地址
+    port: 63791 # Redis服务器连接端口
+    password: emrais # Redis服务器连接密码(默认为空)
+  datasource:
+    druid:
+      url: jdbc:mysql://192.168.2.237:3306/external?serverTimezone=GMT%2B8&useUnicode=true&characterEncoding=utf8&characterSetResults=utf8&useSSL=false&allowMultiQueries=true
+      username: root
+      password: lantone
+
+swagger.show: true

+ 13 - 0
config-center/src/main/resources/shared/external-service-outer.yml

@@ -0,0 +1,13 @@
+spring:
+  redis:
+    database: 12
+    host: 192.168.2.237 # Redis服务器地址
+    port: 63791 # Redis服务器连接端口
+    password: emrais # Redis服务器连接密码(默认为空)
+  datasource:
+    druid:
+      url: jdbc:mysql://192.168.2.237:3306/external?serverTimezone=GMT%2B8&useUnicode=true&characterEncoding=utf8&characterSetResults=utf8&useSSL=false&allowMultiQueries=true
+      username: root
+      password: lantone
+
+swagger.show: false

+ 13 - 0
config-center/src/main/resources/shared/external-service-test.yml

@@ -0,0 +1,13 @@
+spring:
+  redis:
+    database: 12
+    host: 192.168.2.237 # Redis服务器地址
+    port: 63791 # Redis服务器连接端口
+    password: emrais # Redis服务器连接密码(默认为空)
+  datasource:
+    druid:
+      url: jdbc:mysql://192.168.2.237:3306/external?serverTimezone=GMT%2B8&useUnicode=true&characterEncoding=utf8&characterSetResults=utf8&useSSL=false&allowMultiQueries=true
+      username: root
+      password: lantone
+
+swagger.show: true

+ 13 - 0
config-center/src/main/resources/shared/tran-service-debug.yml

@@ -0,0 +1,13 @@
+spring:
+  redis:
+    database: 12
+    host: 192.168.2.237 # Redis服务器地址
+    port: 63791 # Redis服务器连接端口
+    password: emrais # Redis服务器连接密码(默认为空)
+  datasource:
+    druid:
+      url: jdbc:mysql://192.168.2.237:3306/tran?serverTimezone=GMT%2B8&useUnicode=true&characterEncoding=utf8&characterSetResults=utf8&useSSL=false&allowMultiQueries=true
+      username: root
+      password: lantone
+
+swagger.show: true

+ 13 - 0
config-center/src/main/resources/shared/tran-service-inner.yml

@@ -0,0 +1,13 @@
+spring:
+  redis:
+    database: 12
+    host: 192.168.2.237 # Redis服务器地址
+    port: 63791 # Redis服务器连接端口
+    password: emrais # Redis服务器连接密码(默认为空)
+  datasource:
+    druid:
+      url: jdbc:mysql://192.168.2.237:3306/tran?serverTimezone=GMT%2B8&useUnicode=true&characterEncoding=utf8&characterSetResults=utf8&useSSL=false&allowMultiQueries=true
+      username: root
+      password: lantone
+
+swagger.show: false

+ 13 - 0
config-center/src/main/resources/shared/tran-service-local.yml

@@ -0,0 +1,13 @@
+spring:
+  redis:
+    database: 12
+    host: 192.168.2.237 # Redis服务器地址
+    port: 63791 # Redis服务器连接端口
+    password: emrais # Redis服务器连接密码(默认为空)
+  datasource:
+    druid:
+      url: jdbc:mysql://192.168.2.237:3306/tran?serverTimezone=GMT%2B8&useUnicode=true&characterEncoding=utf8&characterSetResults=utf8&useSSL=false&allowMultiQueries=true
+      username: root
+      password: lantone
+
+swagger.show: true

+ 13 - 0
config-center/src/main/resources/shared/tran-service-outer.yml

@@ -0,0 +1,13 @@
+spring:
+  redis:
+    database: 12
+    host: 192.168.2.237 # Redis服务器地址
+    port: 63791 # Redis服务器连接端口
+    password: emrais # Redis服务器连接密码(默认为空)
+  datasource:
+    druid:
+      url: jdbc:mysql://192.168.2.237:3306/tran?serverTimezone=GMT%2B8&useUnicode=true&characterEncoding=utf8&characterSetResults=utf8&useSSL=false&allowMultiQueries=true
+      username: root
+      password: lantone
+
+swagger.show: false

+ 13 - 0
config-center/src/main/resources/shared/tran-service-test.yml

@@ -0,0 +1,13 @@
+spring:
+  redis:
+    database: 12
+    host: 192.168.2.237 # Redis服务器地址
+    port: 63791 # Redis服务器连接端口
+    password: emrais # Redis服务器连接密码(默认为空)
+  datasource:
+    druid:
+      url: jdbc:mysql://192.168.2.237:3306/tran?serverTimezone=GMT%2B8&useUnicode=true&characterEncoding=utf8&characterSetResults=utf8&useSSL=false&allowMultiQueries=true
+      username: root
+      password: lantone
+
+swagger.show: true

+ 54 - 0
dblayer-mbg/src/test/java/com/lantone/dblayermbg/CodeAutoGenerator.java

@@ -18,6 +18,8 @@ public class CodeAutoGenerator {
     public static void main(String[] args) {
         securityCenter();
         daqeCenter();
+        externalService();
+        tranService();
     }
 
     /**
@@ -131,4 +133,56 @@ public class CodeAutoGenerator {
         GeneratorUtil.create(moduleName_, parentPackagePath_, packageName_, username, password, url, TABLES, ENTITY_IGNORE_PREFIX);
     }
 
+    /**
+     * external-service模块
+     */
+    private static void externalService() {
+        //模块名称
+        String moduleName_ = "external-service";
+        //父包名路径(文件输出路径,也是导包的路径)
+        String parentPackagePath_ = "/com/lantone/external";
+        //生成文件父类包package
+        String packageName_ = "com.lantone.external";
+
+        //数据库
+        String username = "root";
+        String password = "lantone";
+        String url = "jdbc:mysql://192.168.2.237:3306/external?serverTimezone=GMT%2B8&useUnicode=true&characterEncoding=utf-8";
+
+        //表名
+        String[] TABLES = {
+                "his_behospital_info"
+        };
+        //生成的实体类忽略表前缀: 不需要则置空
+        String[] ENTITY_IGNORE_PREFIX = { "his_" };
+
+        GeneratorUtil.create(moduleName_, parentPackagePath_, packageName_, username, password, url, TABLES, ENTITY_IGNORE_PREFIX);
+    }
+
+    /**
+     * tran-service模块
+     */
+    private static void tranService() {
+        //模块名称
+        String moduleName_ = "tran-service";
+        //父包名路径(文件输出路径,也是导包的路径)
+        String parentPackagePath_ = "/com/lantone/tran";
+        //生成文件父类包package
+        String packageName_ = "com.lantone.tran";
+
+        //数据库
+        String username = "root";
+        String password = "lantone";
+        String url = "jdbc:mysql://192.168.2.237:3306/tran?serverTimezone=GMT%2B8&useUnicode=true&characterEncoding=utf-8";
+
+        //表名
+        String[] TABLES = {
+                "med_behospital_info"
+        };
+        //生成的实体类忽略表前缀: 不需要则置空
+        String[] ENTITY_IGNORE_PREFIX = { "med_" };
+
+        GeneratorUtil.create(moduleName_, parentPackagePath_, packageName_, username, password, url, TABLES, ENTITY_IGNORE_PREFIX);
+    }
+
 }

+ 33 - 0
external-service/.gitignore

@@ -0,0 +1,33 @@
+HELP.md
+target/
+!.mvn/wrapper/maven-wrapper.jar
+!**/src/main/**/target/
+!**/src/test/**/target/
+
+### STS ###
+.apt_generated
+.classpath
+.factorypath
+.project
+.settings
+.springBeans
+.sts4-cache
+
+### IntelliJ IDEA ###
+.idea
+*.iws
+*.iml
+*.ipr
+
+### NetBeans ###
+/nbproject/private/
+/nbbuild/
+/dist/
+/nbdist/
+/.nb-gradle/
+build/
+!**/src/main/**/build/
+!**/src/test/**/build/
+
+### VS Code ###
+.vscode/

+ 53 - 0
external-service/pom.xml

@@ -0,0 +1,53 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+         xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 https://maven.apache.org/xsd/maven-4.0.0.xsd">
+    <modelVersion>4.0.0</modelVersion>
+
+    <parent>
+        <groupId>com.lantone</groupId>
+        <artifactId>emrais</artifactId>
+        <version>0.0.1-SNAPSHOT</version>
+    </parent>
+
+    <artifactId>external-service</artifactId>
+    <name>external-service</name>
+    <packaging>jar</packaging>
+    <description>第三方数据对接服务</description>
+
+    <dependencies>
+        <dependency>
+            <groupId>com.lantone</groupId>
+            <artifactId>dblayer-mbg</artifactId>
+        </dependency>
+        <dependency>
+            <groupId>org.springframework.cloud</groupId>
+            <artifactId>spring-cloud-starter-netflix-eureka-client</artifactId>
+        </dependency>
+        <dependency>
+            <groupId>org.springframework.cloud</groupId>
+            <artifactId>spring-cloud-starter-config</artifactId>
+        </dependency>
+        <dependency>
+            <groupId>org.springframework.cloud</groupId>
+            <artifactId>spring-cloud-starter-openfeign</artifactId>
+        </dependency>
+        <dependency>
+            <groupId>io.github.openfeign</groupId>
+            <artifactId>feign-okhttp</artifactId>
+        </dependency>
+    </dependencies>
+
+    <build>
+        <plugins>
+            <plugin>
+                <groupId>org.springframework.boot</groupId>
+                <artifactId>spring-boot-maven-plugin</artifactId>
+            </plugin>
+            <plugin>
+                <groupId>com.spotify</groupId>
+                <artifactId>docker-maven-plugin</artifactId>
+            </plugin>
+        </plugins>
+    </build>
+
+</project>

+ 19 - 0
external-service/src/main/java/com/lantone/ExternalServiceApplication.java

@@ -0,0 +1,19 @@
+package com.lantone;
+
+import org.mybatis.spring.annotation.MapperScan;
+import org.springframework.boot.SpringApplication;
+import org.springframework.boot.autoconfigure.SpringBootApplication;
+import org.springframework.cloud.netflix.eureka.EnableEurekaClient;
+import org.springframework.cloud.openfeign.EnableFeignClients;
+
+@EnableEurekaClient
+@EnableFeignClients
+@SpringBootApplication
+@MapperScan(basePackages = "com.lantone.external.mapper")
+public class ExternalServiceApplication {
+
+    public static void main(String[] args) {
+        SpringApplication.run(ExternalServiceApplication.class, args);
+    }
+
+}

+ 22 - 0
external-service/src/main/java/com/lantone/external/client/TranService.java

@@ -0,0 +1,22 @@
+package com.lantone.external.client;
+
+import com.lantone.common.api.CommonResult;
+import com.lantone.external.dto.client.AddLostBehospitalDTO;
+import com.lantone.external.vo.client.AddLostBehospitalVO;
+import org.springframework.cloud.openfeign.FeignClient;
+import org.springframework.web.bind.annotation.PostMapping;
+
+import java.util.List;
+
+/**
+ * @Description: 第三方数据入库服务远程调用
+ * @author: rengb
+ * @time: 2021/1/5 18:27
+ */
+@FeignClient("tran-service")
+public interface TranService {
+
+    @PostMapping("/behospitalManage/addLostBehospital")
+    CommonResult<AddLostBehospitalDTO> addLostBehospital(List<AddLostBehospitalVO> addLostBehospitalVOList);
+
+}

+ 13 - 0
external-service/src/main/java/com/lantone/external/config/RedisConfig.java

@@ -0,0 +1,13 @@
+package com.lantone.external.config;
+
+import com.lantone.common.config.BaseRedisConfig;
+import org.springframework.context.annotation.Configuration;
+
+/**
+ * Redis相关配置
+ * Created by macro on 2020/6/19.
+ */
+@Configuration
+public class RedisConfig extends BaseRedisConfig {
+
+}

+ 16 - 0
external-service/src/main/java/com/lantone/external/config/SwaggerConfig.java

@@ -0,0 +1,16 @@
+package com.lantone.external.config;
+
+import com.lantone.common.config.BaseSwaggerConfig;
+import org.springframework.context.annotation.Configuration;
+import springfox.documentation.swagger2.annotations.EnableSwagger2;
+
+/**
+ * @Description: Swagger相关配置
+ * @author: rengb
+ * @time: 2021/1/5 18:27
+ */
+@Configuration
+@EnableSwagger2
+public class SwaggerConfig extends BaseSwaggerConfig {
+
+}

+ 26 - 0
external-service/src/main/java/com/lantone/external/dto/GetLostBehospitalDTO.java

@@ -0,0 +1,26 @@
+package com.lantone.external.dto;
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Getter;
+import lombok.Setter;
+
+import java.io.Serializable;
+import java.util.List;
+
+/**
+ * @Description: 获取丢失的住院病历信息-接口出参
+ * @author: rengb
+ * @time: 2022/3/16 16:28
+ */
+@ApiModel(value = "获取丢失的住院病历信息-接口出参")
+@Getter
+@Setter
+public class GetLostBehospitalDTO implements Serializable {
+
+    private static final long serialVersionUID = -3423432863909470619L;
+
+    @ApiModelProperty(value = "丢失的住院号列表")
+    private List<String> behospitalCodes;
+
+}

+ 27 - 0
external-service/src/main/java/com/lantone/external/dto/client/AddLostBehospitalDTO.java

@@ -0,0 +1,27 @@
+package com.lantone.external.dto.client;
+
+import io.swagger.annotations.ApiModel;
+import lombok.Getter;
+import lombok.Setter;
+
+import java.io.Serializable;
+import java.util.List;
+
+/**
+ * @Description: 第三方数据入库服务远程调用-丢失的住院病历信息入库-接口出参
+ * @author: rengb
+ * @time: 2022/3/16 16:28
+ */
+@ApiModel(value = "第三方数据入库服务远程调用-丢失的住院病历信息入库-接口出参")
+@Getter
+@Setter
+public class AddLostBehospitalDTO implements Serializable {
+
+    private static final long serialVersionUID = -3423432863909470619L;
+
+    /**
+     * 病人住院号列表
+     */
+    private List<String> behospitalCodes;
+
+}

+ 202 - 0
external-service/src/main/java/com/lantone/external/entity/BehospitalInfo.java

@@ -0,0 +1,202 @@
+package com.lantone.external.entity;
+
+import com.baomidou.mybatisplus.annotation.TableField;
+import com.baomidou.mybatisplus.annotation.TableId;
+import com.baomidou.mybatisplus.annotation.TableName;
+import lombok.Data;
+
+import java.io.Serializable;
+import java.util.Date;
+
+/**
+ * <p>
+ * 住院病历信息 实体类
+ * </p>
+ */
+@Data
+@TableName("his_behospital_info")
+public class BehospitalInfo implements Serializable {
+
+    private static final long serialVersionUID = 1L;
+
+    /**
+     * 病人住院ID
+     */
+    @TableId("behospital_code")
+    private String behospitalCode;
+
+    /**
+     * 医院ID
+     */
+    @TableField("hospital_id")
+    private Long hospitalId;
+
+    /**
+     * 姓名
+     */
+    @TableField("name")
+    private String name;
+
+    /**
+     * 性别(男,女)
+     */
+    @TableField("sex")
+    private String sex;
+
+    /**
+     * 出生日期
+     */
+    @TableField("birthday")
+    private Date birthday;
+
+    /**
+     * 档案号
+     */
+    @TableField("file_code")
+    private String fileCode;
+
+    /**
+     * 质控类型
+     */
+    @TableField("qc_type_id")
+    private Long qcTypeId;
+
+    /**
+     * 病区编码
+     */
+    @TableField("ward_code")
+    private String wardCode;
+
+    /**
+     * 病区名称
+     */
+    @TableField("ward_name")
+    private String wardName;
+
+    /**
+     * 住院科室ID
+     */
+    @TableField("beh_dept_id")
+    private String behDeptId;
+
+    /**
+     * 住院科室名称
+     */
+    @TableField("beh_dept_name")
+    private String behDeptName;
+
+    /**
+     * 床位号
+     */
+    @TableField("bed_code")
+    private String bedCode;
+
+    /**
+     * 床位名称
+     */
+    @TableField("bed_name")
+    private String bedName;
+
+    /**
+     * 医保类别
+     */
+    @TableField("insurance_name")
+    private String insuranceName;
+
+    /**
+     * 职业
+     */
+    @TableField("job_type")
+    private String jobType;
+
+    /**
+     * 入院时间
+     */
+    @TableField("behospital_date")
+    private Date behospitalDate;
+
+    /**
+     * 出院时间
+     */
+    @TableField("leave_hospital_date")
+    private Date leaveHospitalDate;
+
+    /**
+     * 转入时间
+     */
+    @TableField("trans_in_time")
+    private Date transInTime;
+
+    /**
+     * 转出时间
+     */
+    @TableField("trans_out_time")
+    private Date transOutTime;
+
+    /**
+     * 疾病ICD编码
+     */
+    @TableField("diagnose_icd")
+    private String diagnoseIcd;
+
+    /**
+     * 疾病名称
+     */
+    @TableField("diagnose")
+    private String diagnose;
+
+    /**
+     * 主治医生ID
+     */
+    @TableField("doctor_id")
+    private String doctorId;
+
+    /**
+     * 主治医生姓名
+     */
+    @TableField("doctor_name")
+    private String doctorName;
+
+    /**
+     * 住院医生ID
+     */
+    @TableField("beh_doctor_id")
+    private String behDoctorId;
+
+    /**
+     * 住院医生姓名
+     */
+    @TableField("beh_doctor_name")
+    private String behDoctorName;
+
+    /**
+     * 主任医生ID
+     */
+    @TableField("director_doctor_id")
+    private String directorDoctorId;
+
+    /**
+     * 主任医生姓名
+     */
+    @TableField("director_doctor_name")
+    private String directorDoctorName;
+
+    /**
+     * 是否归档(0:未归档,1:已归档)
+     */
+    @TableField("is_placefile")
+    private String isPlacefile;
+
+    /**
+     * 归档时间
+     */
+    @TableField("placefile_date")
+    private Date placefileDate;
+
+    /**
+     * R-住院登记I-病房接诊B-出院登记O-出院结算P-预约出院N-无费退院
+     */
+    @TableField("in_state")
+    private String inState;
+
+}

+ 41 - 0
external-service/src/main/java/com/lantone/external/enums/IsPlacefileEnum.java

@@ -0,0 +1,41 @@
+package com.lantone.external.enums;
+
+import lombok.Getter;
+import lombok.Setter;
+
+/**
+ * @Description: 是否归档
+ * @author: songxl
+ * @time: 2022/3/4 16:03
+ */
+public enum IsPlacefileEnum {
+    N("0", "未归档"),
+    Y("1", "已归档");
+
+    @Getter
+    @Setter
+    private String key;
+
+    @Getter
+    @Setter
+    private String name;
+
+    IsPlacefileEnum(String key, String name) {
+        this.key = key;
+        this.name = name;
+    }
+
+    public static IsPlacefileEnum getEnum(String key) {
+        for (IsPlacefileEnum item : IsPlacefileEnum.values()) {
+            if (item.key.equals(key)) {
+                return item;
+            }
+        }
+        return null;
+    }
+
+    public static String getName(String key) {
+        IsPlacefileEnum item = getEnum(key);
+        return item != null ? item.name : null;
+    }
+}

+ 53 - 0
external-service/src/main/java/com/lantone/external/facade/BehospitalManagementFacade.java

@@ -0,0 +1,53 @@
+package com.lantone.external.facade;
+
+import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
+import com.lantone.common.api.CommonResult;
+import com.lantone.common.util.BeanUtil;
+import com.lantone.common.util.ListUtil;
+import com.lantone.external.client.TranService;
+import com.lantone.external.dto.GetLostBehospitalDTO;
+import com.lantone.external.dto.client.AddLostBehospitalDTO;
+import com.lantone.external.entity.BehospitalInfo;
+import com.lantone.external.enums.IsPlacefileEnum;
+import com.lantone.external.facade.base.BehospitalInfoFacade;
+import com.lantone.external.vo.GetLostBehospitalVO;
+import com.lantone.external.vo.client.AddLostBehospitalVO;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Component;
+
+import java.util.List;
+
+/**
+ * @Description: 住院病历信息同步简单示例-业务处理类
+ * @author: rengb
+ * @time: 2022/3/16 16:28
+ */
+@Component
+public class BehospitalManagementFacade {
+
+    @Autowired
+    private BehospitalInfoFacade behospitalInfoFacade;
+    @Autowired
+    private TranService tranService;
+
+    public GetLostBehospitalDTO getLostBehospital(GetLostBehospitalVO getLostBehospitalVO) {
+        QueryWrapper<BehospitalInfo> behospitalInfoQueryWrapper = new QueryWrapper<>();
+        behospitalInfoQueryWrapper.eq("is_placefile", IsPlacefileEnum.Y.getKey());
+        behospitalInfoQueryWrapper.between("behospital_date", getLostBehospitalVO.getBehospitalStartDate(), getLostBehospitalVO.getBehospitalEndDate());
+        List<BehospitalInfo> behospitalInfoList = behospitalInfoFacade.list(behospitalInfoQueryWrapper);
+        if (ListUtil.isEmpty(behospitalInfoList)) {
+            return null;
+        }
+
+        List<AddLostBehospitalVO> addLostBehospitalVOList = BeanUtil.listCopyTo(behospitalInfoList, AddLostBehospitalVO.class);
+        CommonResult<AddLostBehospitalDTO> commonResult = tranService.addLostBehospital(addLostBehospitalVOList);
+        if (commonResult == null || commonResult.getData() == null) {
+            return null;
+        }
+
+        GetLostBehospitalDTO getLostBehospitalDTO = new GetLostBehospitalDTO();
+        getLostBehospitalDTO.setBehospitalCodes(commonResult.getData().getBehospitalCodes());
+        return getLostBehospitalDTO;
+    }
+
+}

+ 14 - 0
external-service/src/main/java/com/lantone/external/facade/base/BehospitalInfoFacade.java

@@ -0,0 +1,14 @@
+package com.lantone.external.facade.base;
+
+import com.lantone.external.service.impl.BehospitalInfoServiceImpl;
+import org.springframework.stereotype.Component;
+
+/**
+ * <p>
+ * 表名:his_behospital_info 业务类
+ * </p>
+ */
+@Component
+public class BehospitalInfoFacade extends BehospitalInfoServiceImpl {
+
+}

+ 13 - 0
external-service/src/main/java/com/lantone/external/mapper/BehospitalInfoMapper.java

@@ -0,0 +1,13 @@
+package com.lantone.external.mapper;
+
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.lantone.external.entity.BehospitalInfo;
+
+/**
+ * <p>
+ * 表名:his_behospital_info Mapper接口
+ * </p>
+ */
+public interface BehospitalInfoMapper extends BaseMapper<BehospitalInfo> {
+
+}

+ 13 - 0
external-service/src/main/java/com/lantone/external/service/BehospitalInfoService.java

@@ -0,0 +1,13 @@
+package com.lantone.external.service;
+
+import com.baomidou.mybatisplus.extension.service.IService;
+import com.lantone.external.entity.BehospitalInfo;
+
+/**
+ * <p>
+ * 住院病历信息 Service类
+ * </p>
+ */
+public interface BehospitalInfoService extends IService<BehospitalInfo> {
+
+}

+ 17 - 0
external-service/src/main/java/com/lantone/external/service/impl/BehospitalInfoServiceImpl.java

@@ -0,0 +1,17 @@
+package com.lantone.external.service.impl;
+
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import com.lantone.external.entity.BehospitalInfo;
+import com.lantone.external.mapper.BehospitalInfoMapper;
+import com.lantone.external.service.BehospitalInfoService;
+import org.springframework.stereotype.Service;
+
+/**
+ * <p>
+ * 住院病历信息 Service实现类
+ * </p>
+ */
+@Service
+public class BehospitalInfoServiceImpl extends ServiceImpl<BehospitalInfoMapper, BehospitalInfo> implements BehospitalInfoService {
+
+}

+ 32 - 0
external-service/src/main/java/com/lantone/external/vo/GetLostBehospitalVO.java

@@ -0,0 +1,32 @@
+package com.lantone.external.vo;
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Getter;
+import lombok.Setter;
+
+import javax.validation.constraints.NotNull;
+import java.io.Serializable;
+import java.util.Date;
+
+/**
+ * @Description: 获取丢失的住院病历信息-接口入参
+ * @author: rengb
+ * @time: 2022/3/16 16:28
+ */
+@ApiModel(value = "获取丢失的住院病历信息-接口入参")
+@Getter
+@Setter
+public class GetLostBehospitalVO implements Serializable {
+
+    private static final long serialVersionUID = -345554179620072672L;
+
+    @ApiModelProperty(value = "入院起始时间", required = true)
+    @NotNull(message = "入院起始时间不能为空")
+    private Date behospitalStartDate;
+
+    @ApiModelProperty(value = "入院截止时间", required = true)
+    @NotNull(message = "入院截止时间不能为空")
+    private Date behospitalEndDate;
+
+}

+ 165 - 0
external-service/src/main/java/com/lantone/external/vo/client/AddLostBehospitalVO.java

@@ -0,0 +1,165 @@
+package com.lantone.external.vo.client;
+
+import com.baomidou.mybatisplus.annotation.TableField;
+import io.swagger.annotations.ApiModel;
+import lombok.Getter;
+import lombok.Setter;
+
+import java.io.Serializable;
+import java.util.Date;
+
+/**
+ * @Description: 第三方数据入库服务远程调用-丢失的住院病历信息入库-接口入参
+ * @author: rengb
+ * @time: 2022/3/16 16:28
+ */
+@ApiModel(value = "第三方数据入库服务远程调用-丢失的住院病历信息入库-接口入参")
+@Getter
+@Setter
+public class AddLostBehospitalVO implements Serializable {
+
+    private static final long serialVersionUID = -345554179620072672L;
+
+    /**
+     * 医院ID
+     */
+    private Long hospitalId;
+
+    /**
+     * 病人住院ID
+     */
+    private String behospitalCode;
+
+    /**
+     * 姓名
+     */
+    private String name;
+
+    /**
+     * 性别(男,女)
+     */
+    private String sex;
+
+    /**
+     * 出生日期
+     */
+    private Date birthday;
+
+    /**
+     * 档案号
+     */
+    @TableField("file_code")
+    private String fileCode;
+
+    /**
+     * 病区编码
+     */
+    private String wardCode;
+
+    /**
+     * 病区名称
+     */
+    private String wardName;
+
+    /**
+     * 住院科室ID
+     */
+    private String behDeptId;
+
+    /**
+     * 住院科室名称
+     */
+    private String behDeptName;
+
+    /**
+     * 床位号
+     */
+    private String bedCode;
+
+    /**
+     * 床位名称
+     */
+    private String bedName;
+
+    /**
+     * 医保类别
+     */
+    @TableField("insurance_name")
+    private String insuranceName;
+
+    /**
+     * 职业
+     */
+    private String jobType;
+
+    /**
+     * 入院时间
+     */
+    private Date behospitalDate;
+
+    /**
+     * 出院时间
+     */
+    private Date leaveHospitalDate;
+
+    /**
+     * 转入时间
+     */
+    private Date transInTime;
+
+    /**
+     * 转出时间
+     */
+    private Date transOutTime;
+
+    /**
+     * 疾病ICD编码
+     */
+    private String diagnoseIcd;
+
+    /**
+     * 疾病名称
+     */
+    private String diagnose;
+
+    /**
+     * 主治医生ID
+     */
+    private String doctorId;
+
+    /**
+     * 主治医生姓名
+     */
+    private String doctorName;
+
+    /**
+     * 住院医生ID
+     */
+    private String behDoctorId;
+
+    /**
+     * 住院医生姓名
+     */
+    private String behDoctorName;
+
+    /**
+     * 主任医生ID
+     */
+    private String directorDoctorId;
+
+    /**
+     * 主任医生姓名
+     */
+    private String directorDoctorName;
+
+    /**
+     * 是否归档(0:未归档,1:已归档)
+     */
+    private String isPlacefile;
+
+    /**
+     * 归档时间
+     */
+    private Date placefileDate;
+
+}

+ 36 - 0
external-service/src/main/java/com/lantone/external/web/BehospitalManagementController.java

@@ -0,0 +1,36 @@
+package com.lantone.external.web;
+
+import com.lantone.common.api.CommonResult;
+import com.lantone.external.dto.GetLostBehospitalDTO;
+import com.lantone.external.facade.BehospitalManagementFacade;
+import com.lantone.external.vo.GetLostBehospitalVO;
+import io.swagger.annotations.Api;
+import io.swagger.annotations.ApiOperation;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.web.bind.annotation.PostMapping;
+import org.springframework.web.bind.annotation.RequestBody;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RestController;
+
+import javax.validation.Valid;
+
+/**
+ * @Description: 住院病历信息同步简单示例API
+ * @author: rengb
+ * @time: 2022/3/16 16:28
+ */
+@RestController
+@Api(value = "住院病历信息同步简单示例API", tags = { "住院病历信息同步简单示例API" })
+@RequestMapping("/behospitalManage")
+public class BehospitalManagementController {
+
+    @Autowired
+    private BehospitalManagementFacade behospitalManagementFacade;
+
+    @ApiOperation(value = "获取丢失的住院病历信息 [by:rengb]", notes = "获取丢失的住院病历信息")
+    @PostMapping("/getLostBehospital")
+    public CommonResult<GetLostBehospitalDTO> getLostBehospital(@RequestBody @Valid GetLostBehospitalVO getLostBehospitalVO) {
+        return CommonResult.success(behospitalManagementFacade.getLostBehospital(getLostBehospitalVO));
+    }
+
+}

+ 57 - 0
external-service/src/main/resources/bootstrap.yml

@@ -0,0 +1,57 @@
+server:
+  port: 8819
+
+spring:
+  application:
+    name: external-service
+  cloud:
+    config:
+      discovery:
+        enabled: true
+        service-id: config-center
+  redis:
+    jedis:
+      pool:
+        max-active: 8 # 连接池最大连接数(使用负值表示没有限制)
+        max-idle: 5 # 连接池中的最大空闲连接
+        max-wait: -1 # 连接池最大阻塞等待时间(使用负值表示没有限制)
+        min-idle: 0 # 连接池中的最小空闲连接
+    timeout: 20000 # 连接超时时间(毫秒)
+  profiles:
+    active: local
+
+eureka:
+  client:
+    service-url:
+      defaultZone: http://${eureka-addr:localhost}:${eureka-port:6751}/eureka/
+
+logging:
+  config: classpath:logback-spring.xml
+  level:
+    root: ${log-level:info}
+  file:
+    path: /logs/external-service
+
+management:
+  endpoints:
+    web:
+      exposure:
+        include: '*'
+  endpoint:
+    health:
+      show-details: always
+
+feign:
+  okhttp:
+    enabled: true
+
+ribbon:
+  ConnectTimeout: 3000 # 服务请求连接超时时间(毫秒)
+  ReadTimeout: 3000 # 服务请求处理超时时间(毫秒)
+
+mybatis-plus:
+  type-aliases-package: com.lantone.external.entity
+
+swagger.title: 第三方数据对接服务
+swagger.des: 第三方数据对接服务—相关接口文档
+swagger.version: 0.0.1-SNAPSHOT

+ 133 - 0
external-service/src/main/resources/logback-spring.xml

@@ -0,0 +1,133 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<configuration scanPeriod="10 seconds">
+    <include resource="org/springframework/boot/logging/logback/defaults.xml"/>
+    <include resource="org/springframework/boot/logging/logback/console-appender.xml"/>
+
+    <property name="APP_NAME" value="external-service"/>
+    <contextName>${APP_NAME}</contextName>
+    <property name="LOG_FILE_PATH" value="/logs/${APP_NAME}"/>
+
+    <conversionRule conversionWord="clr"
+                    converterClass="org.springframework.boot.logging.logback.ColorConverter"/>
+    <conversionRule conversionWord="wex"
+                    converterClass="org.springframework.boot.logging.logback.WhitespaceThrowableProxyConverter"/>
+    <conversionRule conversionWord="wEx"
+                    converterClass="org.springframework.boot.logging.logback.ExtendedWhitespaceThrowableProxyConverter"/>
+    <property name="CONSOLE_LOG_PATTERN"
+              value="${CONSOLE_LOG_PATTERN:-%clr(%d{yyyy-MM-dd HH:mm:ss.SSS}){faint} %clr(${LOG_LEVEL_PATTERN:-%5p}) %clr(${PID:- }){magenta} %clr(---){faint} %clr([%15.15t]){faint} %clr(%-40.40logger{39}){cyan} %clr(:){faint} %m%n${LOG_EXCEPTION_CONVERSION_WORD:-%wEx}}"/>
+
+    <appender name="CONSOLE" class="ch.qos.logback.core.ConsoleAppender">
+        <filter class="ch.qos.logback.classic.filter.ThresholdFilter">
+            <level>info</level>
+        </filter>
+        <encoder>
+            <Pattern>${CONSOLE_LOG_PATTERN}</Pattern>
+            <charset>UTF-8</charset>
+        </encoder>
+    </appender>
+
+    <appender name="DEBUG_FILE" class="ch.qos.logback.core.rolling.RollingFileAppender">
+        <file>${LOG_FILE_PATH}/debug.log</file>
+        <encoder>
+            <pattern>%d{yyyy-MM-dd HH:mm:ss.SSS} [%thread] %-5level %logger{50} - %msg%n</pattern>
+            <charset>UTF-8</charset>
+        </encoder>
+        <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
+            <fileNamePattern>${LOG_FILE_PATH}/debug/log-debug-%d{yyyy-MM-dd}.%i.log</fileNamePattern>
+            <timeBasedFileNamingAndTriggeringPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedFNATP">
+                <maxFileSize>100MB</maxFileSize>
+            </timeBasedFileNamingAndTriggeringPolicy>
+            <maxHistory>90</maxHistory>
+        </rollingPolicy>
+        <filter class="ch.qos.logback.classic.filter.LevelFilter">
+            <level>debug</level>
+            <onMatch>ACCEPT</onMatch>
+            <onMismatch>DENY</onMismatch>
+        </filter>
+    </appender>
+
+    <appender name="INFO_FILE" class="ch.qos.logback.core.rolling.RollingFileAppender">
+        <file>${LOG_FILE_PATH}/info.log</file>
+        <encoder>
+            <pattern>%d{yyyy-MM-dd HH:mm:ss.SSS} [%thread] %-5level %logger{50} - %msg%n</pattern>
+            <charset>UTF-8</charset>
+        </encoder>
+        <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
+            <fileNamePattern>${LOG_FILE_PATH}/info/log-info-%d{yyyy-MM-dd}.%i.log</fileNamePattern>
+            <timeBasedFileNamingAndTriggeringPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedFNATP">
+                <maxFileSize>100MB</maxFileSize>
+            </timeBasedFileNamingAndTriggeringPolicy>
+            <maxHistory>90</maxHistory>
+        </rollingPolicy>
+        <filter class="ch.qos.logback.classic.filter.LevelFilter">
+            <level>info</level>
+            <onMatch>ACCEPT</onMatch>
+            <onMismatch>DENY</onMismatch>
+        </filter>
+    </appender>
+
+    <appender name="WARN_FILE" class="ch.qos.logback.core.rolling.RollingFileAppender">
+        <file>${LOG_FILE_PATH}/warn.log</file>
+        <encoder>
+            <pattern>%d{yyyy-MM-dd HH:mm:ss.SSS} [%thread] %-5level %logger{50} - %msg%n</pattern>
+            <charset>UTF-8</charset>
+        </encoder>
+        <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
+            <fileNamePattern>${LOG_FILE_PATH}/warn/log-warn-%d{yyyy-MM-dd}.%i.log</fileNamePattern>
+            <timeBasedFileNamingAndTriggeringPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedFNATP">
+                <maxFileSize>100MB</maxFileSize>
+            </timeBasedFileNamingAndTriggeringPolicy>
+            <maxHistory>90</maxHistory>
+        </rollingPolicy>
+        <filter class="ch.qos.logback.classic.filter.LevelFilter">
+            <level>warn</level>
+            <onMatch>ACCEPT</onMatch>
+            <onMismatch>DENY</onMismatch>
+        </filter>
+    </appender>
+
+    <appender name="ERROR_FILE" class="ch.qos.logback.core.rolling.RollingFileAppender">
+        <file>${LOG_FILE_PATH}/error.log</file>
+        <encoder>
+            <pattern>%d{yyyy-MM-dd HH:mm:ss.SSS} [%thread] %-5level %logger{50} - %msg%n</pattern>
+            <charset>UTF-8</charset>
+        </encoder>
+        <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
+            <fileNamePattern>${LOG_FILE_PATH}/error/log-error-%d{yyyy-MM-dd}.%i.log</fileNamePattern>
+            <timeBasedFileNamingAndTriggeringPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedFNATP">
+                <maxFileSize>100MB</maxFileSize>
+            </timeBasedFileNamingAndTriggeringPolicy>
+            <maxHistory>90</maxHistory>
+        </rollingPolicy>
+        <filter class="ch.qos.logback.classic.filter.LevelFilter">
+            <level>error</level>
+            <onMatch>ACCEPT</onMatch>
+            <onMismatch>DENY</onMismatch>
+        </filter>
+    </appender>
+
+    <appender name="ALL_FILE" class="ch.qos.logback.core.rolling.RollingFileAppender">
+        <file>${LOG_FILE_PATH}/spring.log</file>
+        <encoder>
+            <pattern>%d{yyyy-MM-dd HH:mm:ss.SSS} [%thread] %-5level %logger{50} - %msg%n</pattern>
+            <charset>UTF-8</charset>
+        </encoder>
+        <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
+            <fileNamePattern>${LOG_FILE_PATH}/all/spring-%d{yyyy-MM-dd}.%i.log</fileNamePattern>
+            <timeBasedFileNamingAndTriggeringPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedFNATP">
+                <maxFileSize>100MB</maxFileSize>
+            </timeBasedFileNamingAndTriggeringPolicy>
+            <maxHistory>90</maxHistory>
+        </rollingPolicy>
+    </appender>
+
+    <root>
+        <appender-ref ref="CONSOLE"/>
+        <appender-ref ref="DEBUG_FILE"/>
+        <appender-ref ref="INFO_FILE"/>
+        <appender-ref ref="WARN_FILE"/>
+        <appender-ref ref="ERROR_FILE"/>
+        <appender-ref ref="ALL_FILE"/>
+    </root>
+
+</configuration>

+ 5 - 0
external-service/src/main/resources/mapper/BehospitalInfoMapper.xml

@@ -0,0 +1,5 @@
+<?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.lantone.external.mapper.BehospitalInfoMapper">
+
+</mapper>

+ 39 - 0
external-service/src/main/resources/mapper/base/BaseBehospitalInfoMapper.xml

@@ -0,0 +1,39 @@
+<?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.lantone.external.mapper.BehospitalInfoMapper">
+
+    <!-- 通用查询映射结果 -->
+    <resultMap id="BaseResultMap" type="com.lantone.external.entity.BehospitalInfo">
+        <id column="behospital_code" property="behospitalCode"/>
+        <result column="hospital_id" property="hospitalId"/>
+        <result column="name" property="name"/>
+        <result column="sex" property="sex"/>
+        <result column="birthday" property="birthday"/>
+        <result column="file_code" property="fileCode"/>
+        <result column="qc_type_id" property="qcTypeId"/>
+        <result column="ward_code" property="wardCode"/>
+        <result column="ward_name" property="wardName"/>
+        <result column="beh_dept_id" property="behDeptId"/>
+        <result column="beh_dept_name" property="behDeptName"/>
+        <result column="bed_code" property="bedCode"/>
+        <result column="bed_name" property="bedName"/>
+        <result column="insurance_name" property="insuranceName"/>
+        <result column="job_type" property="jobType"/>
+        <result column="behospital_date" property="behospitalDate"/>
+        <result column="leave_hospital_date" property="leaveHospitalDate"/>
+        <result column="trans_in_time" property="transInTime"/>
+        <result column="trans_out_time" property="transOutTime"/>
+        <result column="diagnose_icd" property="diagnoseIcd"/>
+        <result column="diagnose" property="diagnose"/>
+        <result column="doctor_id" property="doctorId"/>
+        <result column="doctor_name" property="doctorName"/>
+        <result column="beh_doctor_id" property="behDoctorId"/>
+        <result column="beh_doctor_name" property="behDoctorName"/>
+        <result column="director_doctor_id" property="directorDoctorId"/>
+        <result column="director_doctor_name" property="directorDoctorName"/>
+        <result column="is_placefile" property="isPlacefile"/>
+        <result column="placefile_date" property="placefileDate"/>
+        <result column="in_state" property="inState"/>
+    </resultMap>
+
+</mapper>

+ 0 - 0
external-service/src/main/resources/upgrade/V1__external_init.sql


+ 15 - 1
gateway-service/src/main/resources/bootstrap.yml

@@ -57,6 +57,18 @@ spring:
             - Path=/mdsp-service/**
           filters:
             - StripPrefix=1
+        - id: external-service
+          uri: lb://external-service
+          predicates:
+            - Path=/external-service/**
+          filters:
+            - StripPrefix=1
+        - id: tran-service
+          uri: lb://tran-service
+          predicates:
+            - Path=/tran-service/**
+          filters:
+            - StripPrefix=1
     config:
       discovery:
         enabled: true
@@ -130,4 +142,6 @@ secure:
       - "/daqe-center/**"
       - "/security-center/logManage/getOperationLogs"
       - "/security-center/logManage/getOperationLogNum"
-      - "/mdsp-service/**"
+      - "/mdsp-service/**"
+      - "/external-service/**"
+      - "/tran-service/**"

+ 2 - 0
pom.xml

@@ -32,6 +32,8 @@
         <module>report-service</module>
         <module>daqe-center</module>
         <module>mdsp-service</module>
+        <module>external-service</module>
+        <module>tran-service</module>
     </modules>
 
     <properties>

+ 33 - 0
tran-service/.gitignore

@@ -0,0 +1,33 @@
+HELP.md
+target/
+!.mvn/wrapper/maven-wrapper.jar
+!**/src/main/**/target/
+!**/src/test/**/target/
+
+### STS ###
+.apt_generated
+.classpath
+.factorypath
+.project
+.settings
+.springBeans
+.sts4-cache
+
+### IntelliJ IDEA ###
+.idea
+*.iws
+*.iml
+*.ipr
+
+### NetBeans ###
+/nbproject/private/
+/nbbuild/
+/dist/
+/nbdist/
+/.nb-gradle/
+build/
+!**/src/main/**/build/
+!**/src/test/**/build/
+
+### VS Code ###
+.vscode/

+ 53 - 0
tran-service/pom.xml

@@ -0,0 +1,53 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+         xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 https://maven.apache.org/xsd/maven-4.0.0.xsd">
+    <modelVersion>4.0.0</modelVersion>
+
+    <parent>
+        <groupId>com.lantone</groupId>
+        <artifactId>emrais</artifactId>
+        <version>0.0.1-SNAPSHOT</version>
+    </parent>
+
+    <artifactId>tran-service</artifactId>
+    <name>tran-service</name>
+    <packaging>jar</packaging>
+    <description>第三方数据入库服务</description>
+
+    <dependencies>
+        <dependency>
+            <groupId>com.lantone</groupId>
+            <artifactId>dblayer-mbg</artifactId>
+        </dependency>
+        <dependency>
+            <groupId>org.springframework.cloud</groupId>
+            <artifactId>spring-cloud-starter-netflix-eureka-client</artifactId>
+        </dependency>
+        <dependency>
+            <groupId>org.springframework.cloud</groupId>
+            <artifactId>spring-cloud-starter-config</artifactId>
+        </dependency>
+        <dependency>
+            <groupId>org.springframework.cloud</groupId>
+            <artifactId>spring-cloud-starter-openfeign</artifactId>
+        </dependency>
+        <dependency>
+            <groupId>io.github.openfeign</groupId>
+            <artifactId>feign-okhttp</artifactId>
+        </dependency>
+    </dependencies>
+
+    <build>
+        <plugins>
+            <plugin>
+                <groupId>org.springframework.boot</groupId>
+                <artifactId>spring-boot-maven-plugin</artifactId>
+            </plugin>
+            <plugin>
+                <groupId>com.spotify</groupId>
+                <artifactId>docker-maven-plugin</artifactId>
+            </plugin>
+        </plugins>
+    </build>
+
+</project>

+ 19 - 0
tran-service/src/main/java/com/lantone/TranServiceApplication.java

@@ -0,0 +1,19 @@
+package com.lantone;
+
+import org.mybatis.spring.annotation.MapperScan;
+import org.springframework.boot.SpringApplication;
+import org.springframework.boot.autoconfigure.SpringBootApplication;
+import org.springframework.cloud.netflix.eureka.EnableEurekaClient;
+import org.springframework.cloud.openfeign.EnableFeignClients;
+
+@EnableEurekaClient
+@EnableFeignClients
+@SpringBootApplication
+@MapperScan(basePackages = "com.lantone.tran.mapper")
+public class TranServiceApplication {
+
+    public static void main(String[] args) {
+        SpringApplication.run(TranServiceApplication.class, args);
+    }
+
+}

+ 13 - 0
tran-service/src/main/java/com/lantone/tran/config/RedisConfig.java

@@ -0,0 +1,13 @@
+package com.lantone.tran.config;
+
+import com.lantone.common.config.BaseRedisConfig;
+import org.springframework.context.annotation.Configuration;
+
+/**
+ * Redis相关配置
+ * Created by macro on 2020/6/19.
+ */
+@Configuration
+public class RedisConfig extends BaseRedisConfig {
+
+}

+ 16 - 0
tran-service/src/main/java/com/lantone/tran/config/SwaggerConfig.java

@@ -0,0 +1,16 @@
+package com.lantone.tran.config;
+
+import com.lantone.common.config.BaseSwaggerConfig;
+import org.springframework.context.annotation.Configuration;
+import springfox.documentation.swagger2.annotations.EnableSwagger2;
+
+/**
+ * @Description: Swagger相关配置
+ * @author: rengb
+ * @time: 2021/1/5 18:27
+ */
+@Configuration
+@EnableSwagger2
+public class SwaggerConfig extends BaseSwaggerConfig {
+
+}

+ 24 - 0
tran-service/src/main/java/com/lantone/tran/dto/AddLostBehospitalDTO.java

@@ -0,0 +1,24 @@
+package com.lantone.tran.dto;
+
+import io.swagger.annotations.ApiModel;
+import lombok.Getter;
+import lombok.Setter;
+
+import java.io.Serializable;
+import java.util.List;
+
+/**
+ * @Description: 丢失的住院病历信息入库-接口出参
+ * @author: rengb
+ * @time: 2022/3/16 16:28
+ */
+@ApiModel(value = "丢失的住院病历信息入库-接口出参")
+@Getter
+@Setter
+public class AddLostBehospitalDTO implements Serializable {
+
+    private static final long serialVersionUID = -3423432863909470619L;
+
+    private List<String> behospitalCodes;
+
+}

+ 232 - 0
tran-service/src/main/java/com/lantone/tran/entity/BehospitalInfo.java

@@ -0,0 +1,232 @@
+package com.lantone.tran.entity;
+
+import com.baomidou.mybatisplus.annotation.TableField;
+import com.baomidou.mybatisplus.annotation.TableId;
+import com.baomidou.mybatisplus.annotation.TableName;
+import lombok.Data;
+
+import java.io.Serializable;
+import java.util.Date;
+
+/**
+ * <p>
+ * 住院病历信息 实体类
+ * </p>
+ */
+@Data
+@TableName("med_behospital_info")
+public class BehospitalInfo implements Serializable {
+
+    private static final long serialVersionUID = 1L;
+
+    /**
+     * 病人住院ID
+     */
+    @TableId("behospital_code")
+    private String behospitalCode;
+
+    /**
+     * 医院ID
+     */
+    @TableField("hospital_id")
+    private Long hospitalId;
+
+    /**
+     * 姓名
+     */
+    @TableField("name")
+    private String name;
+
+    /**
+     * 性别(男,女)
+     */
+    @TableField("sex")
+    private String sex;
+
+    /**
+     * 出生日期
+     */
+    @TableField("birthday")
+    private Date birthday;
+
+    /**
+     * 档案号
+     */
+    @TableField("file_code")
+    private String fileCode;
+
+    /**
+     * 质控类型
+     */
+    @TableField("qc_type_id")
+    private Long qcTypeId;
+
+    /**
+     * 病区编码
+     */
+    @TableField("ward_code")
+    private String wardCode;
+
+    /**
+     * 病区名称
+     */
+    @TableField("ward_name")
+    private String wardName;
+
+    /**
+     * 住院科室ID
+     */
+    @TableField("beh_dept_id")
+    private String behDeptId;
+
+    /**
+     * 住院科室名称
+     */
+    @TableField("beh_dept_name")
+    private String behDeptName;
+
+    /**
+     * 床位号
+     */
+    @TableField("bed_code")
+    private String bedCode;
+
+    /**
+     * 床位名称
+     */
+    @TableField("bed_name")
+    private String bedName;
+
+    /**
+     * 医保类别
+     */
+    @TableField("insurance_name")
+    private String insuranceName;
+
+    /**
+     * 职业
+     */
+    @TableField("job_type")
+    private String jobType;
+
+    /**
+     * 入院时间
+     */
+    @TableField("behospital_date")
+    private Date behospitalDate;
+
+    /**
+     * 出院时间
+     */
+    @TableField("leave_hospital_date")
+    private Date leaveHospitalDate;
+
+    /**
+     * 转入时间
+     */
+    @TableField("trans_in_time")
+    private Date transInTime;
+
+    /**
+     * 转出时间
+     */
+    @TableField("trans_out_time")
+    private Date transOutTime;
+
+    /**
+     * 疾病ICD编码
+     */
+    @TableField("diagnose_icd")
+    private String diagnoseIcd;
+
+    /**
+     * 疾病名称
+     */
+    @TableField("diagnose")
+    private String diagnose;
+
+    /**
+     * 主治医生ID
+     */
+    @TableField("doctor_id")
+    private String doctorId;
+
+    /**
+     * 主治医生姓名
+     */
+    @TableField("doctor_name")
+    private String doctorName;
+
+    /**
+     * 住院医生ID
+     */
+    @TableField("beh_doctor_id")
+    private String behDoctorId;
+
+    /**
+     * 住院医生姓名
+     */
+    @TableField("beh_doctor_name")
+    private String behDoctorName;
+
+    /**
+     * 主任医生ID
+     */
+    @TableField("director_doctor_id")
+    private String directorDoctorId;
+
+    /**
+     * 主任医生姓名
+     */
+    @TableField("director_doctor_name")
+    private String directorDoctorName;
+
+    /**
+     * 是否归档(0:未归档,1:已归档)
+     */
+    @TableField("is_placefile")
+    private String isPlacefile;
+
+    /**
+     * 归档时间
+     */
+    @TableField("placefile_date")
+    private Date placefileDate;
+
+    /**
+     * R-住院登记I-病房接诊B-出院登记O-出院结算P-预约出院N-无费退院
+     */
+    @TableField("in_state")
+    private String inState;
+
+    /**
+     * 是否删除,N:未删除,Y:删除
+     */
+    @TableField("is_deleted")
+    private String isDeleted;
+
+    /**
+     * 记录创建时间
+     */
+    @TableField("gmt_create")
+    private Date gmtCreate;
+
+    /**
+     * 记录修改时间,如果时间是1970年则表示纪录未修改
+     */
+    @TableField("gmt_modified")
+    private Date gmtModified;
+
+    /**
+     * 创建人,0表示无创建人值
+     */
+    @TableField("creator")
+    private String creator;
+
+    /**
+     * 修改人,如果为0则表示纪录未修改
+     */
+    @TableField("modifier")
+    private String modifier;
+
+}

+ 50 - 0
tran-service/src/main/java/com/lantone/tran/facade/BehospitalManagementFacade.java

@@ -0,0 +1,50 @@
+package com.lantone.tran.facade;
+
+import com.lantone.common.util.BeanUtil;
+import com.lantone.common.util.DateUtil;
+import com.lantone.common.util.ListUtil;
+import com.lantone.tran.dto.AddLostBehospitalDTO;
+import com.lantone.tran.entity.BehospitalInfo;
+import com.lantone.tran.facade.base.BehospitalInfoFacade;
+import com.lantone.tran.service.BehospitalInfoService;
+import com.lantone.tran.vo.AddLostBehospitalVO;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.beans.factory.annotation.Qualifier;
+import org.springframework.stereotype.Component;
+
+import java.util.Date;
+import java.util.List;
+import java.util.stream.Collectors;
+
+/**
+ * @Description: 住院病历信息入库简单示例-业务处理类
+ * @author: rengb
+ * @time: 2022/3/16 16:28
+ */
+@Component
+public class BehospitalManagementFacade {
+
+    @Autowired
+    @Qualifier("behospitalInfoServiceImpl")
+    private BehospitalInfoService behospitalInfoService;
+
+    @Autowired
+    private BehospitalInfoFacade behospitalInfoFacade;
+
+    public AddLostBehospitalDTO addLostBehospital(List<AddLostBehospitalVO> addLostBehospitalVOList) {
+        if (ListUtil.isEmpty(addLostBehospitalVOList)) {
+            return null;
+        }
+        List<BehospitalInfo> behospitalInfoList = BeanUtil.listCopyTo(addLostBehospitalVOList, BehospitalInfo.class);
+        Date now = DateUtil.now();
+        behospitalInfoList.forEach(i -> {
+            i.setGmtCreate(now);
+            i.setGmtModified(now);
+        });
+        behospitalInfoService.saveOrUpdateBatch(behospitalInfoList);
+        AddLostBehospitalDTO addLostBehospitalDTO = new AddLostBehospitalDTO();
+        addLostBehospitalDTO.setBehospitalCodes(behospitalInfoList.stream().map(i -> i.getBehospitalCode()).collect(Collectors.toList()));
+        return addLostBehospitalDTO;
+    }
+
+}

+ 14 - 0
tran-service/src/main/java/com/lantone/tran/facade/base/BehospitalInfoFacade.java

@@ -0,0 +1,14 @@
+package com.lantone.tran.facade.base;
+
+import com.lantone.tran.service.impl.BehospitalInfoServiceImpl;
+import org.springframework.stereotype.Component;
+
+/**
+ * <p>
+ * 表名:med_behospital_info 业务类
+ * </p>
+ */
+@Component
+public class BehospitalInfoFacade extends BehospitalInfoServiceImpl {
+
+}

+ 13 - 0
tran-service/src/main/java/com/lantone/tran/mapper/BehospitalInfoMapper.java

@@ -0,0 +1,13 @@
+package com.lantone.tran.mapper;
+
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.lantone.tran.entity.BehospitalInfo;
+
+/**
+ * <p>
+ * 表名:med_behospital_info Mapper接口
+ * </p>
+ */
+public interface BehospitalInfoMapper extends BaseMapper<BehospitalInfo> {
+
+}

+ 13 - 0
tran-service/src/main/java/com/lantone/tran/service/BehospitalInfoService.java

@@ -0,0 +1,13 @@
+package com.lantone.tran.service;
+
+import com.baomidou.mybatisplus.extension.service.IService;
+import com.lantone.tran.entity.BehospitalInfo;
+
+/**
+ * <p>
+ * 住院病历信息 Service类
+ * </p>
+ */
+public interface BehospitalInfoService extends IService<BehospitalInfo> {
+
+}

+ 17 - 0
tran-service/src/main/java/com/lantone/tran/service/impl/BehospitalInfoServiceImpl.java

@@ -0,0 +1,17 @@
+package com.lantone.tran.service.impl;
+
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import com.lantone.tran.entity.BehospitalInfo;
+import com.lantone.tran.mapper.BehospitalInfoMapper;
+import com.lantone.tran.service.BehospitalInfoService;
+import org.springframework.stereotype.Service;
+
+/**
+ * <p>
+ * 住院病历信息 Service实现类
+ * </p>
+ */
+@Service
+public class BehospitalInfoServiceImpl extends ServiceImpl<BehospitalInfoMapper, BehospitalInfo> implements BehospitalInfoService {
+
+}

+ 165 - 0
tran-service/src/main/java/com/lantone/tran/vo/AddLostBehospitalVO.java

@@ -0,0 +1,165 @@
+package com.lantone.tran.vo;
+
+import com.baomidou.mybatisplus.annotation.TableField;
+import io.swagger.annotations.ApiModel;
+import lombok.Getter;
+import lombok.Setter;
+
+import java.io.Serializable;
+import java.util.Date;
+
+/**
+ * @Description: 丢失的住院病历信息入库-接口入参
+ * @author: rengb
+ * @time: 2022/3/16 16:28
+ */
+@ApiModel(value = "丢失的住院病历信息入库-接口入参")
+@Getter
+@Setter
+public class AddLostBehospitalVO implements Serializable {
+
+    private static final long serialVersionUID = -345554179620072672L;
+
+    /**
+     * 医院ID
+     */
+    private Long hospitalId;
+
+    /**
+     * 病人住院ID
+     */
+    private String behospitalCode;
+
+    /**
+     * 姓名
+     */
+    private String name;
+
+    /**
+     * 性别(男,女)
+     */
+    private String sex;
+
+    /**
+     * 出生日期
+     */
+    private Date birthday;
+
+    /**
+     * 档案号
+     */
+    @TableField("file_code")
+    private String fileCode;
+
+    /**
+     * 病区编码
+     */
+    private String wardCode;
+
+    /**
+     * 病区名称
+     */
+    private String wardName;
+
+    /**
+     * 住院科室ID
+     */
+    private String behDeptId;
+
+    /**
+     * 住院科室名称
+     */
+    private String behDeptName;
+
+    /**
+     * 床位号
+     */
+    private String bedCode;
+
+    /**
+     * 床位名称
+     */
+    private String bedName;
+
+    /**
+     * 医保类别
+     */
+    @TableField("insurance_name")
+    private String insuranceName;
+
+    /**
+     * 职业
+     */
+    private String jobType;
+
+    /**
+     * 入院时间
+     */
+    private Date behospitalDate;
+
+    /**
+     * 出院时间
+     */
+    private Date leaveHospitalDate;
+
+    /**
+     * 转入时间
+     */
+    private Date transInTime;
+
+    /**
+     * 转出时间
+     */
+    private Date transOutTime;
+
+    /**
+     * 疾病ICD编码
+     */
+    private String diagnoseIcd;
+
+    /**
+     * 疾病名称
+     */
+    private String diagnose;
+
+    /**
+     * 主治医生ID
+     */
+    private String doctorId;
+
+    /**
+     * 主治医生姓名
+     */
+    private String doctorName;
+
+    /**
+     * 住院医生ID
+     */
+    private String behDoctorId;
+
+    /**
+     * 住院医生姓名
+     */
+    private String behDoctorName;
+
+    /**
+     * 主任医生ID
+     */
+    private String directorDoctorId;
+
+    /**
+     * 主任医生姓名
+     */
+    private String directorDoctorName;
+
+    /**
+     * 是否归档(0:未归档,1:已归档)
+     */
+    private String isPlacefile;
+
+    /**
+     * 归档时间
+     */
+    private Date placefileDate;
+
+}

+ 36 - 0
tran-service/src/main/java/com/lantone/tran/web/BehospitalManagementController.java

@@ -0,0 +1,36 @@
+package com.lantone.tran.web;
+
+import com.lantone.common.api.CommonResult;
+import com.lantone.tran.dto.AddLostBehospitalDTO;
+import com.lantone.tran.facade.BehospitalManagementFacade;
+import com.lantone.tran.vo.AddLostBehospitalVO;
+import io.swagger.annotations.Api;
+import io.swagger.annotations.ApiOperation;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.web.bind.annotation.PostMapping;
+import org.springframework.web.bind.annotation.RequestBody;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RestController;
+
+import java.util.List;
+
+/**
+ * @Description: 住院病历信息入库简单示例API
+ * @author: rengb
+ * @time: 2022/3/16 16:28
+ */
+@RestController
+@Api(value = "住院病历信息入库简单示例API", tags = { "住院病历信息入库简单示例API" })
+@RequestMapping("/behospitalManage")
+public class BehospitalManagementController {
+
+    @Autowired
+    private BehospitalManagementFacade behospitalManagementFacade;
+
+    @ApiOperation(value = "丢失的住院病历信息入库 [by:rengb]", notes = "丢失的住院病历信息入库")
+    @PostMapping("/addLostBehospital")
+    public CommonResult<AddLostBehospitalDTO> addLostBehospital(@RequestBody List<AddLostBehospitalVO> addLostBehospitalVOList) {
+        return CommonResult.success(behospitalManagementFacade.addLostBehospital(addLostBehospitalVOList));
+    }
+
+}

+ 57 - 0
tran-service/src/main/resources/bootstrap.yml

@@ -0,0 +1,57 @@
+server:
+  port: 8829
+
+spring:
+  application:
+    name: tran-service
+  cloud:
+    config:
+      discovery:
+        enabled: true
+        service-id: config-center
+  redis:
+    jedis:
+      pool:
+        max-active: 8 # 连接池最大连接数(使用负值表示没有限制)
+        max-idle: 5 # 连接池中的最大空闲连接
+        max-wait: -1 # 连接池最大阻塞等待时间(使用负值表示没有限制)
+        min-idle: 0 # 连接池中的最小空闲连接
+    timeout: 20000 # 连接超时时间(毫秒)
+  profiles:
+    active: local
+
+eureka:
+  client:
+    service-url:
+      defaultZone: http://${eureka-addr:localhost}:${eureka-port:6751}/eureka/
+
+logging:
+  config: classpath:logback-spring.xml
+  level:
+    root: ${log-level:info}
+  file:
+    path: /logs/tran-service
+
+management:
+  endpoints:
+    web:
+      exposure:
+        include: '*'
+  endpoint:
+    health:
+      show-details: always
+
+feign:
+  okhttp:
+    enabled: true
+
+ribbon:
+  ConnectTimeout: 3000 # 服务请求连接超时时间(毫秒)
+  ReadTimeout: 3000 # 服务请求处理超时时间(毫秒)
+
+mybatis-plus:
+  type-aliases-package: com.lantone.tran.entity
+
+swagger.title: 第三方数据入库服务
+swagger.des: 第三方数据入库服务—相关接口文档
+swagger.version: 0.0.1-SNAPSHOT

+ 133 - 0
tran-service/src/main/resources/logback-spring.xml

@@ -0,0 +1,133 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<configuration scanPeriod="10 seconds">
+    <include resource="org/springframework/boot/logging/logback/defaults.xml"/>
+    <include resource="org/springframework/boot/logging/logback/console-appender.xml"/>
+
+    <property name="APP_NAME" value="tran-service"/>
+    <contextName>${APP_NAME}</contextName>
+    <property name="LOG_FILE_PATH" value="/logs/${APP_NAME}"/>
+
+    <conversionRule conversionWord="clr"
+                    converterClass="org.springframework.boot.logging.logback.ColorConverter"/>
+    <conversionRule conversionWord="wex"
+                    converterClass="org.springframework.boot.logging.logback.WhitespaceThrowableProxyConverter"/>
+    <conversionRule conversionWord="wEx"
+                    converterClass="org.springframework.boot.logging.logback.ExtendedWhitespaceThrowableProxyConverter"/>
+    <property name="CONSOLE_LOG_PATTERN"
+              value="${CONSOLE_LOG_PATTERN:-%clr(%d{yyyy-MM-dd HH:mm:ss.SSS}){faint} %clr(${LOG_LEVEL_PATTERN:-%5p}) %clr(${PID:- }){magenta} %clr(---){faint} %clr([%15.15t]){faint} %clr(%-40.40logger{39}){cyan} %clr(:){faint} %m%n${LOG_EXCEPTION_CONVERSION_WORD:-%wEx}}"/>
+
+    <appender name="CONSOLE" class="ch.qos.logback.core.ConsoleAppender">
+        <filter class="ch.qos.logback.classic.filter.ThresholdFilter">
+            <level>info</level>
+        </filter>
+        <encoder>
+            <Pattern>${CONSOLE_LOG_PATTERN}</Pattern>
+            <charset>UTF-8</charset>
+        </encoder>
+    </appender>
+
+    <appender name="DEBUG_FILE" class="ch.qos.logback.core.rolling.RollingFileAppender">
+        <file>${LOG_FILE_PATH}/debug.log</file>
+        <encoder>
+            <pattern>%d{yyyy-MM-dd HH:mm:ss.SSS} [%thread] %-5level %logger{50} - %msg%n</pattern>
+            <charset>UTF-8</charset>
+        </encoder>
+        <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
+            <fileNamePattern>${LOG_FILE_PATH}/debug/log-debug-%d{yyyy-MM-dd}.%i.log</fileNamePattern>
+            <timeBasedFileNamingAndTriggeringPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedFNATP">
+                <maxFileSize>100MB</maxFileSize>
+            </timeBasedFileNamingAndTriggeringPolicy>
+            <maxHistory>90</maxHistory>
+        </rollingPolicy>
+        <filter class="ch.qos.logback.classic.filter.LevelFilter">
+            <level>debug</level>
+            <onMatch>ACCEPT</onMatch>
+            <onMismatch>DENY</onMismatch>
+        </filter>
+    </appender>
+
+    <appender name="INFO_FILE" class="ch.qos.logback.core.rolling.RollingFileAppender">
+        <file>${LOG_FILE_PATH}/info.log</file>
+        <encoder>
+            <pattern>%d{yyyy-MM-dd HH:mm:ss.SSS} [%thread] %-5level %logger{50} - %msg%n</pattern>
+            <charset>UTF-8</charset>
+        </encoder>
+        <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
+            <fileNamePattern>${LOG_FILE_PATH}/info/log-info-%d{yyyy-MM-dd}.%i.log</fileNamePattern>
+            <timeBasedFileNamingAndTriggeringPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedFNATP">
+                <maxFileSize>100MB</maxFileSize>
+            </timeBasedFileNamingAndTriggeringPolicy>
+            <maxHistory>90</maxHistory>
+        </rollingPolicy>
+        <filter class="ch.qos.logback.classic.filter.LevelFilter">
+            <level>info</level>
+            <onMatch>ACCEPT</onMatch>
+            <onMismatch>DENY</onMismatch>
+        </filter>
+    </appender>
+
+    <appender name="WARN_FILE" class="ch.qos.logback.core.rolling.RollingFileAppender">
+        <file>${LOG_FILE_PATH}/warn.log</file>
+        <encoder>
+            <pattern>%d{yyyy-MM-dd HH:mm:ss.SSS} [%thread] %-5level %logger{50} - %msg%n</pattern>
+            <charset>UTF-8</charset>
+        </encoder>
+        <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
+            <fileNamePattern>${LOG_FILE_PATH}/warn/log-warn-%d{yyyy-MM-dd}.%i.log</fileNamePattern>
+            <timeBasedFileNamingAndTriggeringPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedFNATP">
+                <maxFileSize>100MB</maxFileSize>
+            </timeBasedFileNamingAndTriggeringPolicy>
+            <maxHistory>90</maxHistory>
+        </rollingPolicy>
+        <filter class="ch.qos.logback.classic.filter.LevelFilter">
+            <level>warn</level>
+            <onMatch>ACCEPT</onMatch>
+            <onMismatch>DENY</onMismatch>
+        </filter>
+    </appender>
+
+    <appender name="ERROR_FILE" class="ch.qos.logback.core.rolling.RollingFileAppender">
+        <file>${LOG_FILE_PATH}/error.log</file>
+        <encoder>
+            <pattern>%d{yyyy-MM-dd HH:mm:ss.SSS} [%thread] %-5level %logger{50} - %msg%n</pattern>
+            <charset>UTF-8</charset>
+        </encoder>
+        <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
+            <fileNamePattern>${LOG_FILE_PATH}/error/log-error-%d{yyyy-MM-dd}.%i.log</fileNamePattern>
+            <timeBasedFileNamingAndTriggeringPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedFNATP">
+                <maxFileSize>100MB</maxFileSize>
+            </timeBasedFileNamingAndTriggeringPolicy>
+            <maxHistory>90</maxHistory>
+        </rollingPolicy>
+        <filter class="ch.qos.logback.classic.filter.LevelFilter">
+            <level>error</level>
+            <onMatch>ACCEPT</onMatch>
+            <onMismatch>DENY</onMismatch>
+        </filter>
+    </appender>
+
+    <appender name="ALL_FILE" class="ch.qos.logback.core.rolling.RollingFileAppender">
+        <file>${LOG_FILE_PATH}/spring.log</file>
+        <encoder>
+            <pattern>%d{yyyy-MM-dd HH:mm:ss.SSS} [%thread] %-5level %logger{50} - %msg%n</pattern>
+            <charset>UTF-8</charset>
+        </encoder>
+        <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
+            <fileNamePattern>${LOG_FILE_PATH}/all/spring-%d{yyyy-MM-dd}.%i.log</fileNamePattern>
+            <timeBasedFileNamingAndTriggeringPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedFNATP">
+                <maxFileSize>100MB</maxFileSize>
+            </timeBasedFileNamingAndTriggeringPolicy>
+            <maxHistory>90</maxHistory>
+        </rollingPolicy>
+    </appender>
+
+    <root>
+        <appender-ref ref="CONSOLE"/>
+        <appender-ref ref="DEBUG_FILE"/>
+        <appender-ref ref="INFO_FILE"/>
+        <appender-ref ref="WARN_FILE"/>
+        <appender-ref ref="ERROR_FILE"/>
+        <appender-ref ref="ALL_FILE"/>
+    </root>
+
+</configuration>

+ 5 - 0
tran-service/src/main/resources/mapper/BehospitalInfoMapper.xml

@@ -0,0 +1,5 @@
+<?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.lantone.tran.mapper.BehospitalInfoMapper">
+
+</mapper>

+ 44 - 0
tran-service/src/main/resources/mapper/base/BaseBehospitalInfoMapper.xml

@@ -0,0 +1,44 @@
+<?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.lantone.tran.mapper.BehospitalInfoMapper">
+
+    <!-- 通用查询映射结果 -->
+    <resultMap id="BaseResultMap" type="com.lantone.tran.entity.BehospitalInfo">
+        <id column="behospital_code" property="behospitalCode"/>
+        <result column="hospital_id" property="hospitalId"/>
+        <result column="name" property="name"/>
+        <result column="sex" property="sex"/>
+        <result column="birthday" property="birthday"/>
+        <result column="file_code" property="fileCode"/>
+        <result column="qc_type_id" property="qcTypeId"/>
+        <result column="ward_code" property="wardCode"/>
+        <result column="ward_name" property="wardName"/>
+        <result column="beh_dept_id" property="behDeptId"/>
+        <result column="beh_dept_name" property="behDeptName"/>
+        <result column="bed_code" property="bedCode"/>
+        <result column="bed_name" property="bedName"/>
+        <result column="insurance_name" property="insuranceName"/>
+        <result column="job_type" property="jobType"/>
+        <result column="behospital_date" property="behospitalDate"/>
+        <result column="leave_hospital_date" property="leaveHospitalDate"/>
+        <result column="trans_in_time" property="transInTime"/>
+        <result column="trans_out_time" property="transOutTime"/>
+        <result column="diagnose_icd" property="diagnoseIcd"/>
+        <result column="diagnose" property="diagnose"/>
+        <result column="doctor_id" property="doctorId"/>
+        <result column="doctor_name" property="doctorName"/>
+        <result column="beh_doctor_id" property="behDoctorId"/>
+        <result column="beh_doctor_name" property="behDoctorName"/>
+        <result column="director_doctor_id" property="directorDoctorId"/>
+        <result column="director_doctor_name" property="directorDoctorName"/>
+        <result column="is_placefile" property="isPlacefile"/>
+        <result column="placefile_date" property="placefileDate"/>
+        <result column="in_state" property="inState"/>
+        <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"/>
+    </resultMap>
+
+</mapper>

+ 0 - 0
tran-service/src/main/resources/upgrade/V1__tran_init.sql