Browse Source

Merge branch 'dev/20200602_dataimport' into dev/20200603_1.3.1

# Conflicts:
#	src/main/java/com/diagbot/config/ResourceServerConfigurer.java
#	src/main/java/com/diagbot/config/security/UrlAccessDecisionManager.java
zhoutg 5 years ago
parent
commit
cf4ea616e6

+ 5 - 0
doc/006.20200602数据导入/qc_init.sql

@@ -0,0 +1,5 @@
+use `qc`;
+
+INSERT INTO `qc_mode` (`id`, `name`, `order_no`, `parent_id`, `is_deleted`, `gmt_create`, `gmt_modified`, `creator`, `modifier`, `remark`) VALUES ('56', '日常病程录', '210', '37', 'N', '1970-01-01 12:00:00', '1970-01-01 12:00:00', '0', '0', NULL);
+
+delete from sys_dictionary_info where group_type = 0 and is_deleted = 'Y';

+ 4 - 0
src/main/java/com/diagbot/client/AuthServiceClient.java

@@ -5,6 +5,7 @@ import com.diagbot.dto.AnalyzeDTO;
 import com.diagbot.dto.RespDTO;
 import com.diagbot.entity.JWT;
 import com.diagbot.vo.AnalyzeVO;
+import com.diagbot.vo.DataImportVO;
 import org.springframework.cloud.openfeign.FeignClient;
 import org.springframework.security.oauth2.common.OAuth2AccessToken;
 import org.springframework.web.bind.annotation.PostMapping;
@@ -32,6 +33,9 @@ public interface AuthServiceClient {
 
     @PostMapping(value = "/qc/behospitalInfo/analyze_rpc")
     RespDTO<AnalyzeDTO> analyze_rpc(@RequestBody AnalyzeVO analyzeVO);
+
+    @PostMapping(value = "/qc/dataimport/import")
+    RespDTO<Boolean> dataimport(@RequestBody DataImportVO dataImportVO);
 }
 
 

+ 7 - 0
src/main/java/com/diagbot/client/hystrix/AuthServiceHystrix.java

@@ -6,6 +6,7 @@ import com.diagbot.dto.AnalyzeDTO;
 import com.diagbot.dto.RespDTO;
 import com.diagbot.entity.JWT;
 import com.diagbot.vo.AnalyzeVO;
+import com.diagbot.vo.DataImportVO;
 import lombok.extern.slf4j.Slf4j;
 import org.springframework.security.oauth2.common.OAuth2AccessToken;
 import org.springframework.stereotype.Component;
@@ -41,4 +42,10 @@ public class AuthServiceHystrix implements AuthServiceClient {
         log.error("【hystrix】调用{}异常", "analyze_rpc");
         return null;
     }
+
+    @Override
+    public RespDTO<Boolean> dataimport(DataImportVO dataImportVO) {
+        log.error("【hystrix】调用{}异常", "dataimport");
+        return null;
+    }
 }

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

@@ -67,6 +67,9 @@ public class ResourceServerConfigurer extends ResourceServerConfigurerAdapter {
                 .antMatchers("/console/entryRejectPercent").permitAll()
                 .antMatchers("/qc/abnormal/getQcAnnormalMode").permitAll()
                 .antMatchers("/console/qcResultLevelPercent").permitAll()
+                .antMatchers("/qc/dataimport/import").permitAll()
+                .antMatchers("/qc/dataimport/dataimportPrepare").permitAll()
+                .antMatchers("/qc/dataimport/test").permitAll()
                 .antMatchers("/**").authenticated();
 //                .antMatchers("/**").permitAll();
     }

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

@@ -110,6 +110,9 @@ public class UrlAccessDecisionManager implements AccessDecisionManager {
                 || matchers("/console/entryRejectPercent", request)
                 || matchers("/qc/abnormal/getQcAnnormalMode", request)
                 || matchers("/console/qcResultLevelPercent", request)
+                || matchers("/qc/dataimport/import", request)
+                || matchers("/qc/dataimport/dataimportPrepare", request)
+                || matchers("/qc/dataimport/test", request)
                 || matchers("/", request)) {
             return true;
         }

+ 308 - 0
src/main/java/com/diagbot/entity/MedCrisisInfo.java

@@ -0,0 +1,308 @@
+package com.diagbot.entity;
+
+import java.time.LocalDate;
+import java.time.LocalDateTime;
+import java.io.Serializable;
+
+/**
+ * <p>
+ * 危急值信息
+ * </p>
+ *
+ * @author zhoutg
+ * @since 2020-06-02
+ */
+public class MedCrisisInfo implements Serializable {
+
+    private static final long serialVersionUID = 1L;
+
+    private String recId;
+
+    /**
+     * 医院ID
+     */
+    private Long hospitalId;
+
+    /**
+     * 病人住院ID
+     */
+    private String behospitalCode;
+
+    /**
+     * 记录类型
+     */
+    private String recType;
+
+    /**
+     * 危急值ID
+     */
+    private String crisisId;
+
+    /**
+     * 危急值名称
+     */
+    private String crisisName;
+
+    /**
+     * 开单科室ID
+     */
+    private String deptId;
+
+    /**
+     * 开单科室名称
+     */
+    private String deptName;
+
+    /**
+     * 开单医生ID
+     */
+    private String doctorId;
+
+    /**
+     * 开单医生姓名
+     */
+    private String doctorName;
+
+    /**
+     * 危急结果值
+     */
+    private String crisisValue;
+
+    /**
+     * 危急值描述
+     */
+    private String crisisDesc;
+
+    /**
+     * 危急值状态
+     */
+    private String crisisStatus;
+
+    /**
+     * 参考上限
+     */
+    private String crisisTopValue;
+
+    /**
+     * 参考下限
+     */
+    private String crisisLowerValue;
+
+    /**
+     * 送检时间
+     */
+    private LocalDate sendDate;
+
+    /**
+     * 报告时间
+     */
+    private LocalDate repDate;
+
+    /**
+     * 是否删除,N:未删除,Y:删除
+     */
+    private String isDeleted;
+
+    /**
+     * 记录创建时间
+     */
+    private LocalDateTime gmtCreate;
+
+    /**
+     * 记录修改时间,如果时间是1970年则表示纪录未修改
+     */
+    private LocalDateTime gmtModified;
+
+    /**
+     * 创建人,0表示无创建人值
+     */
+    private String creator;
+
+    /**
+     * 修改人,如果为0则表示纪录未修改
+     */
+    private String modifier;
+
+    public String getRecId() {
+        return recId;
+    }
+
+    public void setRecId(String recId) {
+        this.recId = recId;
+    }
+    public Long getHospitalId() {
+        return hospitalId;
+    }
+
+    public void setHospitalId(Long hospitalId) {
+        this.hospitalId = hospitalId;
+    }
+    public String getBehospitalCode() {
+        return behospitalCode;
+    }
+
+    public void setBehospitalCode(String behospitalCode) {
+        this.behospitalCode = behospitalCode;
+    }
+    public String getRecType() {
+        return recType;
+    }
+
+    public void setRecType(String recType) {
+        this.recType = recType;
+    }
+    public String getCrisisId() {
+        return crisisId;
+    }
+
+    public void setCrisisId(String crisisId) {
+        this.crisisId = crisisId;
+    }
+    public String getCrisisName() {
+        return crisisName;
+    }
+
+    public void setCrisisName(String crisisName) {
+        this.crisisName = crisisName;
+    }
+    public String getDeptId() {
+        return deptId;
+    }
+
+    public void setDeptId(String deptId) {
+        this.deptId = deptId;
+    }
+    public String getDeptName() {
+        return deptName;
+    }
+
+    public void setDeptName(String deptName) {
+        this.deptName = deptName;
+    }
+    public String getDoctorId() {
+        return doctorId;
+    }
+
+    public void setDoctorId(String doctorId) {
+        this.doctorId = doctorId;
+    }
+    public String getDoctorName() {
+        return doctorName;
+    }
+
+    public void setDoctorName(String doctorName) {
+        this.doctorName = doctorName;
+    }
+    public String getCrisisValue() {
+        return crisisValue;
+    }
+
+    public void setCrisisValue(String crisisValue) {
+        this.crisisValue = crisisValue;
+    }
+    public String getCrisisDesc() {
+        return crisisDesc;
+    }
+
+    public void setCrisisDesc(String crisisDesc) {
+        this.crisisDesc = crisisDesc;
+    }
+    public String getCrisisStatus() {
+        return crisisStatus;
+    }
+
+    public void setCrisisStatus(String crisisStatus) {
+        this.crisisStatus = crisisStatus;
+    }
+    public String getCrisisTopValue() {
+        return crisisTopValue;
+    }
+
+    public void setCrisisTopValue(String crisisTopValue) {
+        this.crisisTopValue = crisisTopValue;
+    }
+    public String getCrisisLowerValue() {
+        return crisisLowerValue;
+    }
+
+    public void setCrisisLowerValue(String crisisLowerValue) {
+        this.crisisLowerValue = crisisLowerValue;
+    }
+    public LocalDate getSendDate() {
+        return sendDate;
+    }
+
+    public void setSendDate(LocalDate sendDate) {
+        this.sendDate = sendDate;
+    }
+    public LocalDate getRepDate() {
+        return repDate;
+    }
+
+    public void setRepDate(LocalDate repDate) {
+        this.repDate = repDate;
+    }
+    public String getIsDeleted() {
+        return isDeleted;
+    }
+
+    public void setIsDeleted(String isDeleted) {
+        this.isDeleted = isDeleted;
+    }
+    public LocalDateTime getGmtCreate() {
+        return gmtCreate;
+    }
+
+    public void setGmtCreate(LocalDateTime gmtCreate) {
+        this.gmtCreate = gmtCreate;
+    }
+    public LocalDateTime getGmtModified() {
+        return gmtModified;
+    }
+
+    public void setGmtModified(LocalDateTime gmtModified) {
+        this.gmtModified = gmtModified;
+    }
+    public String getCreator() {
+        return creator;
+    }
+
+    public void setCreator(String creator) {
+        this.creator = creator;
+    }
+    public String getModifier() {
+        return modifier;
+    }
+
+    public void setModifier(String modifier) {
+        this.modifier = modifier;
+    }
+
+    @Override
+    public String toString() {
+        return "MedCrisisInfo{" +
+            "recId=" + recId +
+            ", hospitalId=" + hospitalId +
+            ", behospitalCode=" + behospitalCode +
+            ", recType=" + recType +
+            ", crisisId=" + crisisId +
+            ", crisisName=" + crisisName +
+            ", deptId=" + deptId +
+            ", deptName=" + deptName +
+            ", doctorId=" + doctorId +
+            ", doctorName=" + doctorName +
+            ", crisisValue=" + crisisValue +
+            ", crisisDesc=" + crisisDesc +
+            ", crisisStatus=" + crisisStatus +
+            ", crisisTopValue=" + crisisTopValue +
+            ", crisisLowerValue=" + crisisLowerValue +
+            ", sendDate=" + sendDate +
+            ", repDate=" + repDate +
+            ", isDeleted=" + isDeleted +
+            ", gmtCreate=" + gmtCreate +
+            ", gmtModified=" + gmtModified +
+            ", creator=" + creator +
+            ", modifier=" + modifier +
+        "}";
+    }
+}

+ 5 - 0
src/main/java/com/diagbot/entity/MedicalRecord.java

@@ -60,6 +60,11 @@ public class MedicalRecord implements Serializable {
      */
     private String recTitle;
 
+    /**
+     * 模板处理状态(0:未处理,1:已处理)
+     */
+    private Integer status;
+
     /**
      * 是否删除,N:未删除,Y:删除
      */

+ 1 - 0
src/main/java/com/diagbot/facade/BehospitalInfoFacade.java

@@ -304,6 +304,7 @@ public class BehospitalInfoFacade extends BehospitalInfoServiceImpl {
         addData("疑难病例讨论记录", recMap, medrecVoList);
         addData("输血后效果评价", recMap, medrecVoList);
         addData("病理检验送检单", recMap, medrecVoList);
+        addData("日常病程录", recMap, medrecVoList);
 
         addDataWithInnerKey("知情同意书", recMap, medrecVoList);
         addDataWithInnerKey("谈话告知书", recMap, medrecVoList);

+ 535 - 0
src/main/java/com/diagbot/facade/DataImportFacade.java

@@ -0,0 +1,535 @@
+package com.diagbot.facade;
+
+import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
+import com.diagbot.client.AuthServiceClient;
+import com.diagbot.entity.BehospitalInfo;
+import com.diagbot.entity.DoctorAdvice;
+import com.diagbot.entity.HomeDiagnoseInfo;
+import com.diagbot.entity.HomeOperationInfo;
+import com.diagbot.entity.HomePage;
+import com.diagbot.entity.MedCrisisInfo;
+import com.diagbot.entity.MedicalRecord;
+import com.diagbot.entity.MedicalRecordContent;
+import com.diagbot.enums.IsDeleteEnum;
+import com.diagbot.exception.CommonErrorCode;
+import com.diagbot.exception.CommonException;
+import com.diagbot.service.BehospitalInfoService;
+import com.diagbot.service.DoctorAdviceService;
+import com.diagbot.service.HomeDiagnoseInfoService;
+import com.diagbot.service.HomeOperationInfoService;
+import com.diagbot.service.HomePageService;
+import com.diagbot.service.MedCrisisInfoService;
+import com.diagbot.service.MedicalRecordContentService;
+import com.diagbot.service.MedicalRecordService;
+import com.diagbot.util.EncrypDES;
+import com.diagbot.util.ListUtil;
+import com.diagbot.util.StringUtil;
+import com.diagbot.vo.DataImportVO;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.beans.factory.annotation.Qualifier;
+import org.springframework.beans.factory.annotation.Value;
+import org.springframework.stereotype.Component;
+
+import java.util.List;
+import java.util.stream.Collectors;
+
+/**
+ * @Description:
+ * @Author:zhoutg
+ * @time: 2018/11/23 11:37
+ */
+@Component
+public class DataImportFacade {
+
+    @Autowired
+    @Qualifier("behospitalInfoServiceImpl")
+    BehospitalInfoService behospitalInfoService;
+    @Autowired
+    @Qualifier("medCrisisInfoServiceImpl")
+    MedCrisisInfoService medCrisisInfoService;
+    @Autowired
+    @Qualifier("doctorAdviceServiceImpl")
+    DoctorAdviceService doctorAdviceService;
+    @Autowired
+    @Qualifier("homeDiagnoseInfoServiceImpl")
+    HomeDiagnoseInfoService homeDiagnoseInfoService;
+    @Autowired
+    @Qualifier("homePageServiceImpl")
+    HomePageService homePageService;
+    @Autowired
+    @Qualifier("homeOperationInfoServiceImpl")
+    HomeOperationInfoService homeOperationInfoService;
+    @Autowired
+    @Qualifier("medicalRecordServiceImpl")
+    MedicalRecordService medicalRecordService;
+    @Autowired
+    @Qualifier("medicalRecordContentServiceImpl")
+    MedicalRecordContentService medicalRecordContentService;
+    @Autowired
+    AuthServiceClient authServiceClient;
+    @Value("${encrypt.enable}")
+    Boolean encryptFlag;
+
+    /**
+     * 数据导入
+     *
+     * @param dataImportVO
+     * @return
+     */
+    public Boolean dataImportFacade(DataImportVO dataImportVO) {
+        Long hospitalId = dataImportVO.getHospitalId();
+        // 病历信息导入
+        List<BehospitalInfo> behospitalInfoList = dataImportVO.getBehospitalInfoList();
+        if (ListUtil.isNotEmpty(behospitalInfoList)) {
+            List<String> behospitalCodeList = behospitalInfoList.stream().map(r -> r.getBehospitalCode()).collect(Collectors.toList());
+            if (ListUtil.isNotEmpty(behospitalCodeList)) {
+                // 先删除
+                behospitalInfoService.remove(new QueryWrapper<BehospitalInfo>()
+                        .eq("hospital_id", hospitalId)
+                        .in("behospital_code", behospitalCodeList)
+                );
+                // 加密
+                for (BehospitalInfo behospitalInfo : behospitalInfoList) {
+                    // 姓名
+                    if (StringUtil.isNotBlank(behospitalInfo.getName())) {
+                        behospitalInfo.setName(behospitalInfo.getName().substring(0, 1) + "**");
+                    }
+                }
+                behospitalInfoService.saveBatch(behospitalInfoList);
+            }
+        }
+
+        // 危急值信息
+        List<MedCrisisInfo> medCrisisInfoList = dataImportVO.getMedCrisisInfoList();
+        if (ListUtil.isNotEmpty(medCrisisInfoList)) {
+            List<String> recIdList = medCrisisInfoList.stream().map(r -> r.getRecId()).collect(Collectors.toList());
+            if (ListUtil.isNotEmpty(recIdList)) {
+                // 先删除
+                medCrisisInfoService.remove(new QueryWrapper<MedCrisisInfo>()
+                        .eq("hospital_id", hospitalId)
+                        .in("rec_id", recIdList)
+                );
+                medCrisisInfoService.saveBatch(medCrisisInfoList);
+            }
+        }
+
+        // 病人医嘱
+        List<DoctorAdvice> doctorAdviceList = dataImportVO.getDoctorAdviceList();
+        if (ListUtil.isNotEmpty(doctorAdviceList)) {
+            List<String> doctorAdviceIdList = doctorAdviceList.stream().map(r -> r.getDoctorAdviceId()).collect(Collectors.toList());
+            if (ListUtil.isNotEmpty(doctorAdviceIdList)) {
+                // 先删除
+                doctorAdviceService.remove(new QueryWrapper<DoctorAdvice>()
+                        .eq("hospital_id", hospitalId)
+                        .in("doctor_advice_id", doctorAdviceIdList)
+                );
+                doctorAdviceService.saveBatch(doctorAdviceList);
+            }
+        }
+
+        // 病案首页诊断
+        List<HomeDiagnoseInfo> homeDiagnoseInfoList = dataImportVO.getHomeDiagnoseInfoList();
+        if (ListUtil.isNotEmpty(homeDiagnoseInfoList)) {
+            StringBuffer sb = new StringBuffer();
+            sb.append(" ( ");
+            for (int i = 0; i < homeDiagnoseInfoList.size(); i++) {
+                HomeDiagnoseInfo s = homeDiagnoseInfoList.get(i);
+                if (i == 0) {
+                    sb.append(" (home_page_id = '" + s.getHomePageId() + "'"
+                            + " and diagnose_order_no = '" + s.getDiagnoseOrderNo() + "'"
+                            + ") " );
+                } else {
+                    sb.append(" or ( home_page_id = '" + s.getHomePageId() + "'"
+                            + " and diagnose_order_no = '" + s.getDiagnoseOrderNo() + "'"
+                            + ") " );
+                }
+            }
+            sb.append(")");
+
+            // 先删除
+            homeDiagnoseInfoService.remove(new QueryWrapper<HomeDiagnoseInfo>()
+                    .eq("hospital_id", hospitalId)
+                    .apply(sb.toString())
+            );
+            homeDiagnoseInfoService.saveBatch(homeDiagnoseInfoList);
+        }
+
+        // 病案首页
+        List<HomePage> homePageList = dataImportVO.getHomePageList();
+        if (ListUtil.isNotEmpty(homePageList)) {
+            List<String> homePageIdList = homePageList.stream().map(r -> r.getHomePageId()).collect(Collectors.toList());
+            if (ListUtil.isNotEmpty(homePageIdList)) {
+                // 先删除
+                homePageService.remove(new QueryWrapper<HomePage>()
+                        .eq("hospital_id", hospitalId)
+                        .in("home_page_id", homePageIdList)
+                );
+                // 加密
+                for (HomePage homePage : dataImportVO.getHomePageList()) {
+                    // 姓名
+                    if (StringUtil.isNotBlank(homePage.getName())) {
+                        homePage.setName(homePage.getName().substring(0, 1) + "**");
+                    }
+                    // 身份证
+                    if (StringUtil.isNotBlank(homePage.getIdentityCardNo())) {
+                        homePage.setIdentityCardNo(homePage.getIdentityCardNo().substring(0, 1) + "*****************");
+                    }
+                    // 现住址电话
+                    if (StringUtil.isNotBlank(homePage.getCurPhone())) {
+                        homePage.setCurPhone(homePage.getCurPhone().substring(0, 1) + "**");
+                    }
+                    // 工作单位电话
+                    if (StringUtil.isNotBlank(homePage.getWorkPhone())) {
+                        homePage.setWorkPhone(homePage.getWorkPhone().substring(0, 1) + "**");
+                    }
+                    // 联系人姓名
+                    if (StringUtil.isNotBlank(homePage.getContactName())) {
+                        homePage.setContactName(homePage.getContactName().substring(0, 1) + "**");
+                    }
+                    // 联系人电话
+                    if (StringUtil.isNotBlank(homePage.getContactPhone())) {
+                        homePage.setContactPhone(homePage.getContactPhone().substring(0, 1) + "**");
+                    }
+                }
+                homePageService.saveBatch(homePageList);
+            }
+        }
+
+        // 病案首页手术信息
+        List<HomeOperationInfo> homeOperationInfoList = dataImportVO.getHomeOperationInfoList();
+        if (ListUtil.isNotEmpty(homeOperationInfoList)) {
+            StringBuffer sb = new StringBuffer();
+            sb.append(" ( ");
+            for (int i = 0; i < homeOperationInfoList.size(); i++) {
+                HomeOperationInfo s = homeOperationInfoList.get(i);
+                if (i == 0) {
+                    sb.append(" (home_page_id = '" + s.getHomePageId() + "'"
+                            + " and operation_order_no = '" + s.getOperationOrderNo() + "'"
+                            + ") " );
+                } else {
+                    sb.append(" or ( home_page_id = '" + s.getHomePageId() + "'"
+                            + " and operation_order_no = '" + s.getOperationOrderNo() + "'"
+                            + ") " );
+                }
+            }
+            sb.append(")");
+            // 先删除
+            homeOperationInfoService.remove(new QueryWrapper<HomeOperationInfo>()
+                    .eq("hospital_id", hospitalId)
+                    .apply(sb.toString())
+            );
+            homeOperationInfoService.saveBatch(homeOperationInfoList);
+        }
+
+        // 文书信息
+        List<MedicalRecord> medicalRecordList = dataImportVO.getMedicalRecordList();
+        if (ListUtil.isNotEmpty(medicalRecordList)) {
+            List<String> recIdList = medicalRecordList.stream().map(r -> r.getRecId()).collect(Collectors.toList());
+            if (ListUtil.isNotEmpty(recIdList)) {
+                // 先删除
+                medicalRecordService.remove(new QueryWrapper<MedicalRecord>()
+                        .eq("hospital_id", hospitalId)
+                        .in("rec_id", recIdList)
+                );
+                medicalRecordService.saveBatch(medicalRecordList);
+            }
+        }
+
+        // 文书明细信息
+        List<MedicalRecordContent> medicalRecordContentList = dataImportVO.getMedicalRecordContentList();
+        if (ListUtil.isNotEmpty(medicalRecordContentList)) {
+            List<String> recIdList = medicalRecordContentList.stream().map(r -> r.getRecId()).collect(Collectors.toList());
+            if (ListUtil.isNotEmpty(recIdList)) {
+                // 先删除
+                medicalRecordContentService.remove(new QueryWrapper<MedicalRecordContent>()
+                        .eq("hospital_id", hospitalId)
+                        .in("rec_id", recIdList));
+
+                // 加密数据
+                if (encryptFlag) {
+                    String recId = "";
+                    try {
+                        EncrypDES encrypDES = new EncrypDES();
+                        for (MedicalRecordContent medicalRecordContent : medicalRecordContentList) {
+                            recId = medicalRecordContent.getRecId();
+                            if (StringUtil.isNotBlank(medicalRecordContent.getXmlText())) {
+                                medicalRecordContent.setXmlText(encrypDES.encrytor(medicalRecordContent.getXmlText()));
+                            }
+                        }
+                    } catch (Exception e) {
+                        throw new CommonException(CommonErrorCode.SERVER_IS_ERROR, "加密xml错误!recId=【" + recId + "】");
+                    }
+                }
+                medicalRecordContentService.saveBatch(medicalRecordContentList, 100);
+            }
+        }
+        return true;
+    }
+
+
+    /**
+     * 数据导入【效率低,备用】
+     *
+     * @param dataImportVO
+     * @return
+     */
+    public Boolean dataImportPrepareFacade(DataImportVO dataImportVO) {
+        Long hospitalId = dataImportVO.getHospitalId();
+        // 病历信息导入
+        List<BehospitalInfo> behospitalInfoList = dataImportVO.getBehospitalInfoList();
+        if (ListUtil.isNotEmpty(behospitalInfoList)) {
+            behospitalInfoList.forEach(s -> {
+                QueryWrapper<BehospitalInfo> queryWrapper = new QueryWrapper<>();
+                queryWrapper.eq("behospital_code", s.getBehospitalCode());
+                queryWrapper.eq("hospital_id", s.getHospitalId());
+                queryWrapper.eq("is_deleted", IsDeleteEnum.N);
+                // 姓名加密
+                if (StringUtil.isNotBlank(s.getName())) {
+                    s.setName(s.getName().substring(0, 1) + "**");
+                }
+                int count = behospitalInfoService.count(queryWrapper);
+                if (count > 0) {
+                    behospitalInfoService.update(s, queryWrapper);
+                } else {
+                    behospitalInfoService.save(s);
+                }
+            });
+        }
+
+        // 危急值信息
+        List<MedCrisisInfo> medCrisisInfoList = dataImportVO.getMedCrisisInfoList();
+        if (ListUtil.isNotEmpty(medCrisisInfoList)) {
+            medCrisisInfoList.forEach(s -> {
+                QueryWrapper<MedCrisisInfo> queryWrapper = new QueryWrapper<>();
+                queryWrapper.eq("rec_id", s.getRecId());
+                queryWrapper.eq("hospital_id", s.getHospitalId());
+                queryWrapper.eq("behospital_code", s.getBehospitalCode());
+                queryWrapper.eq("rec_type", s.getRecType());
+                int count = medCrisisInfoService.count(queryWrapper);
+                if (count > 0) {
+                    medCrisisInfoService.update(s, queryWrapper);
+                } else {
+                    medCrisisInfoService.save(s);
+                }
+            });
+        }
+
+        // 病人医嘱
+        List<DoctorAdvice> doctorAdviceList = dataImportVO.getDoctorAdviceList();
+        if (ListUtil.isNotEmpty(doctorAdviceList)) {
+            doctorAdviceList.forEach(s -> {
+                QueryWrapper<DoctorAdvice> queryWrapper = new QueryWrapper<>();
+                queryWrapper.eq("doctor_advice_id", s.getDoctorAdviceId());
+                queryWrapper.eq("hospital_id", s.getHospitalId());
+                queryWrapper.eq("is_deleted",IsDeleteEnum.N);
+                int count = doctorAdviceService.count(queryWrapper);
+                if (count > 0) {
+                    doctorAdviceService.update(s, queryWrapper);
+                } else {
+                    doctorAdviceService.save(s);
+                }
+            });
+        }
+
+        // 病案首页诊断
+        List<HomeDiagnoseInfo> homeDiagnoseInfoList = dataImportVO.getHomeDiagnoseInfoList();
+        if (ListUtil.isNotEmpty(homeDiagnoseInfoList)) {
+            homeDiagnoseInfoList.forEach(s -> {
+                QueryWrapper<HomeDiagnoseInfo> queryWrapper = new QueryWrapper<>();
+                queryWrapper.eq("home_page_id", s.getHomePageId());
+                queryWrapper.eq("hospital_id", s.getHospitalId());
+                queryWrapper.eq("diagnose_order_no", s.getDiagnoseOrderNo());
+                int count = homeDiagnoseInfoService.count(queryWrapper);
+                if (count > 0) {
+                    homeDiagnoseInfoService.update(s, queryWrapper);
+                } else {
+                    homeDiagnoseInfoService.save(s);
+                }
+            });
+        }
+
+        // 病案首页
+        List<HomePage> homePageList = dataImportVO.getHomePageList();
+        if (ListUtil.isNotEmpty(homePageList)) {
+            homePageList.stream().forEach(s -> {
+                // 姓名
+                if (StringUtil.isNotBlank(s.getName())) {
+                    s.setName(s.getName().substring(0, 1) + "**");
+                }
+                // 身份证
+                if (StringUtil.isNotBlank(s.getIdentityCardNo())) {
+                    s.setIdentityCardNo(s.getIdentityCardNo().substring(0, 1) + "*****************");
+                }
+                // 现住址电话
+                if (StringUtil.isNotBlank(s.getCurPhone())) {
+                    s.setCurPhone(s.getCurPhone().substring(0, 1) + "**");
+                }
+                // 工作单位电话
+                if (StringUtil.isNotBlank(s.getWorkPhone())) {
+                    s.setWorkPhone(s.getWorkPhone().substring(0, 1) + "**");
+                }
+                // 联系人姓名
+                if (StringUtil.isNotBlank(s.getContactName())) {
+                    s.setContactName(s.getContactName().substring(0, 1) + "**");
+                }
+                // 联系人电话
+                if (StringUtil.isNotBlank(s.getContactPhone())) {
+                    s.setContactPhone(s.getContactPhone().substring(0, 1) + "**");
+                }
+
+                QueryWrapper<HomePage> queryWrapper = new QueryWrapper<>();
+                queryWrapper.eq("home_page_id", s.getHomePageId());
+                queryWrapper.eq("hospital_id", s.getHospitalId());
+                queryWrapper.eq("behospital_code", s.getBehospitalCode());
+                queryWrapper.eq("is_deleted",IsDeleteEnum.N);
+                int count = homePageService.count(queryWrapper);
+                if (count > 0) {
+                    homePageService.update(s, queryWrapper);
+                } else {
+                    homePageService.save(s);
+                }
+            });
+        }
+
+        // 病案首页手术信息
+        List<HomeOperationInfo> homeOperationInfoList = dataImportVO.getHomeOperationInfoList();
+        if (ListUtil.isNotEmpty(homeOperationInfoList)) {
+            homeOperationInfoList.forEach(s -> {
+                if(s.getHomePageId()!=null && !"".equals(s.getOperationOrderNo())) {
+                    QueryWrapper<HomeOperationInfo> queryWrapper = new QueryWrapper<>();
+                    queryWrapper.eq("home_page_id", s.getHomePageId());
+                    queryWrapper.eq("hospital_id", s.getHospitalId());
+                    queryWrapper.eq("operation_order_no", s.getOperationOrderNo());
+                    int count = homeOperationInfoService.count(queryWrapper);
+                    if (count > 0) {
+                        homeOperationInfoService.update(s, queryWrapper);
+                    } else {
+                        homeOperationInfoService.save(s);
+                    }
+                }
+            });
+        }
+
+        // 文书信息
+        List<MedicalRecord> medicalRecordList = dataImportVO.getMedicalRecordList();
+        if (ListUtil.isNotEmpty(medicalRecordList)) {
+            medicalRecordList.forEach(s -> {
+                QueryWrapper<MedicalRecord> queryWrapper = new QueryWrapper<>();
+                queryWrapper.eq("rec_id", s.getRecId());
+                queryWrapper.eq("hospital_id", s.getHospitalId());
+                queryWrapper.eq("is_deleted",IsDeleteEnum.N);
+                int count = medicalRecordService.count(queryWrapper);
+                if (count > 0) {
+                    medicalRecordService.update(s, queryWrapper);
+                } else {
+                    medicalRecordService.save(s);
+                }
+            });
+        }
+
+        // 文书明细信息
+        List<MedicalRecordContent> medicalRecordContentList = dataImportVO.getMedicalRecordContentList();
+        if (ListUtil.isNotEmpty(medicalRecordContentList)) {
+            // 加密数据
+            if (encryptFlag) {
+                String recId = "";
+                try {
+                    EncrypDES encrypDES = new EncrypDES();
+                    for (MedicalRecordContent s : medicalRecordContentList) {
+                        recId = s.getRecId();
+                        if (StringUtil.isNotBlank(s.getXmlText())) {
+                            s.setXmlText(encrypDES.encrytor(s.getXmlText()));
+                        }
+                        QueryWrapper<MedicalRecordContent> queryWrapper = new QueryWrapper<>();
+                        queryWrapper.eq("rec_id", s.getRecId());
+                        queryWrapper.eq("hospital_id", s.getHospitalId());
+                        queryWrapper.eq("is_deleted",IsDeleteEnum.N);
+                        int count = medicalRecordContentService.count(queryWrapper);
+                        if (count > 0) {
+                            medicalRecordContentService.update(s, queryWrapper);
+                        } else {
+                            medicalRecordContentService.save(s);
+                        }
+                    }
+                } catch (Exception e) {
+                    throw new CommonException(CommonErrorCode.SERVER_IS_ERROR, "加密xml错误!recId=【" + recId + "】");
+                }
+            }
+        }
+        return true;
+    }
+
+
+    /**
+     * 模拟测试数据
+     *
+     * @return
+     */
+    public Boolean test() {
+        int size = 5;
+        Long hospitalId = 8L;
+        int random = (int)(Math.random() * 100);
+
+        DataImportVO dataImportVO = new DataImportVO();
+        dataImportVO.setHospitalId(hospitalId);
+
+        // // 病历信息
+        // List<BehospitalInfo> behospitalInfoList = behospitalInfoService.list(new QueryWrapper<BehospitalInfo>()
+        //         .ne("hospital_id", hospitalId)
+        //         .last(" limit " + size)
+        // );
+        // behospitalInfoList.forEach(r -> { r.setHospitalId(hospitalId); r.setBehospitalCode(r.getBehospitalCode() + random); });
+        // dataImportVO.setBehospitalInfoList(behospitalInfoList);
+        //
+        // // 医嘱信息
+        // List<DoctorAdvice> doctorAdviceList = doctorAdviceService.list(new QueryWrapper<DoctorAdvice>()
+        //         .ne("hospital_id", hospitalId)
+        //         .last(" limit " + size)
+        // );
+        // doctorAdviceList.forEach(r -> {r.setHospitalId(hospitalId); r.setBehospitalCode(r.getBehospitalCode() + random);});
+        // dataImportVO.setDoctorAdviceList(doctorAdviceList);
+        //
+        // // 病案首页诊断
+        // List<HomeDiagnoseInfo> homeDiagnoseInfoList = homeDiagnoseInfoService.list(new QueryWrapper<HomeDiagnoseInfo>()
+        //         .ne("hospital_id", hospitalId)
+        //         .last(" limit " + size)
+        // );
+        // homeDiagnoseInfoList.forEach(r -> {r.setHospitalId(hospitalId); r.setHomePageId(r.getHomePageId() + random);});
+        // dataImportVO.setHomeDiagnoseInfoList(homeDiagnoseInfoList);
+        //
+        // // 病案首页
+        // List<HomePage> homePageList = homePageService.list(new QueryWrapper<HomePage>()
+        //         .ne("hospital_id", hospitalId)
+        //         .last(" limit " + size)
+        // );
+        // homePageList.forEach(r -> {r.setHospitalId(hospitalId); r.setBehospitalCode(r.getBehospitalCode() + random);});
+        // dataImportVO.setHomePageList(homePageList);
+
+        // // 病案首页手术信息
+        // List<HomeOperationInfo> homeOperationInfoList = homeOperationInfoService.list(new QueryWrapper<HomeOperationInfo>()
+        //         .eq("hospital_id", hospitalId)
+        //         .last(" limit " + size)
+        // );
+        // homeOperationInfoList.forEach(r -> {r.setHospitalId(hospitalId); r.setHomePageId(r.getHomePageId() );});
+        // dataImportVO.setHomeOperationInfoList(homeOperationInfoList);
+        //
+        // // 文书信息
+        // List<MedicalRecord> medicalRecordList = medicalRecordService.list(new QueryWrapper<MedicalRecord>()
+        //         .ne("hospital_id", hospitalId)
+        //         .last(" limit " + size)
+        // );
+        // medicalRecordList.forEach(r -> {r.setHospitalId(hospitalId); r.setBehospitalCode(r.getBehospitalCode() + random);});
+        // dataImportVO.setMedicalRecordList(medicalRecordList);
+
+        // // 文书明细信息
+        // List<MedicalRecordContent> medicalRecordContentList = medicalRecordContentService.list(new QueryWrapper<MedicalRecordContent>()
+        //         .ne("hospital_id", hospitalId)
+        //         .last(" limit " + size)
+        // );
+        // medicalRecordContentList.forEach(r -> {r.setHospitalId(hospitalId); r.setRecId(r.getRecId() + random);});
+        // dataImportVO.setMedicalRecordContentList(medicalRecordContentList);
+
+        authServiceClient.dataimport(dataImportVO);
+        return true;
+    }
+}

+ 16 - 0
src/main/java/com/diagbot/mapper/MedCrisisInfoMapper.java

@@ -0,0 +1,16 @@
+package com.diagbot.mapper;
+
+import com.diagbot.entity.MedCrisisInfo;
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+
+/**
+ * <p>
+ * 危急值信息 Mapper 接口
+ * </p>
+ *
+ * @author zhoutg
+ * @since 2020-06-02
+ */
+public interface MedCrisisInfoMapper extends BaseMapper<MedCrisisInfo> {
+
+}

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

@@ -0,0 +1,16 @@
+package com.diagbot.service;
+
+import com.diagbot.entity.MedCrisisInfo;
+import com.baomidou.mybatisplus.extension.service.IService;
+
+/**
+ * <p>
+ * 危急值信息 服务类
+ * </p>
+ *
+ * @author zhoutg
+ * @since 2020-06-02
+ */
+public interface MedCrisisInfoService extends IService<MedCrisisInfo> {
+
+}

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

@@ -0,0 +1,20 @@
+package com.diagbot.service.impl;
+
+import com.diagbot.entity.MedCrisisInfo;
+import com.diagbot.mapper.MedCrisisInfoMapper;
+import com.diagbot.service.MedCrisisInfoService;
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import org.springframework.stereotype.Service;
+
+/**
+ * <p>
+ * 危急值信息 服务实现类
+ * </p>
+ *
+ * @author zhoutg
+ * @since 2020-06-02
+ */
+@Service
+public class MedCrisisInfoServiceImpl extends ServiceImpl<MedCrisisInfoMapper, MedCrisisInfo> implements MedCrisisInfoService {
+
+}

+ 42 - 0
src/main/java/com/diagbot/vo/DataImportVO.java

@@ -0,0 +1,42 @@
+package com.diagbot.vo;
+
+import com.diagbot.entity.BehospitalInfo;
+import com.diagbot.entity.DoctorAdvice;
+import com.diagbot.entity.HomeDiagnoseInfo;
+import com.diagbot.entity.HomeOperationInfo;
+import com.diagbot.entity.HomePage;
+import com.diagbot.entity.MedCrisisInfo;
+import com.diagbot.entity.MedicalRecord;
+import com.diagbot.entity.MedicalRecordContent;
+import lombok.Data;
+
+import javax.validation.constraints.NotNull;
+import java.util.List;
+
+/**
+ * @Description:
+ * @author: zhoutg
+ * @time: 2020/4/14 9:53
+ */
+@Data
+public class DataImportVO {
+    // 医院ID
+    @NotNull(message = "医院ID不能为空")
+    private Long hospitalId;
+    // 病历信息
+    private List<BehospitalInfo> behospitalInfoList;
+    // 危急值信息
+    private List<MedCrisisInfo> medCrisisInfoList;
+    // 病人医嘱
+    private List<DoctorAdvice> doctorAdviceList;
+    // 病案首页诊断
+    private List<HomeDiagnoseInfo> homeDiagnoseInfoList;
+    // 病案首页
+    private List<HomePage> homePageList;
+    // 病案首页手术信息
+    private List<HomeOperationInfo> homeOperationInfoList;
+    // 文书信息
+    private List<MedicalRecord> medicalRecordList;
+    // 文书明细信息
+    private List<MedicalRecordContent> medicalRecordContentList;
+}

+ 99 - 0
src/main/java/com/diagbot/web/DataImportController.java

@@ -0,0 +1,99 @@
+package com.diagbot.web;
+
+import com.diagbot.annotation.SysLogger;
+import com.diagbot.dto.RespDTO;
+import com.diagbot.facade.DataImportFacade;
+import com.diagbot.vo.DataImportVO;
+import io.swagger.annotations.Api;
+import io.swagger.annotations.ApiOperation;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.transaction.annotation.Transactional;
+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;
+
+/**
+ * <p>
+ * 数据导入 前端控制器
+ * </p>
+ *
+ * @author zhoutg
+ * @since 2020-04-27
+ */
+@RestController
+@RequestMapping("/qc/dataimport")
+@SuppressWarnings("unchecked")
+@Api(value = "数据导入API", tags = { "数据导入API" })
+public class DataImportController {
+
+    @Autowired
+    DataImportFacade dataImportFacade;
+
+    @ApiOperation(value = "导入数据【全部删除,全部新增,效率高】[by:zhoutg]",
+            notes = "// 医院ID\n" +
+                    " Long hospitalId;\n" +
+                    "// 病历信息\n" +
+                    "List<BehospitalInfo> behospitalInfoList;\n" +
+                    "// 危急值信息\n" +
+                    "List<MedCrisisInfo> medCrisisInfoList;\n" +
+                    "// 病人医嘱\n" +
+                    "List<DoctorAdvice> doctorAdviceList;\n" +
+                    "// 病案首页诊断\n" +
+                    "List<HomeDiagnoseInfo> homeDiagnoseInfoList;\n" +
+                    "// 病案首页\n" +
+                    "List<HomePage> homePageList;\n" +
+                    "// 病案首页手术信息\n" +
+                    "List<HomeOperationInfo> homeOperationInfoList;\n" +
+                    "// 文书信息\n" +
+                    "List<MedicalRecord> medicalRecordList;\n" +
+                    "// 文书明细信息\n" +
+                    "List<MedicalRecordContent> medicalRecordContentList;")
+    @PostMapping("/import")
+    @SysLogger("import")
+    @Transactional
+    public RespDTO<Boolean> dataimport(@RequestBody @Valid DataImportVO dataImportVO) {
+        Boolean data = dataImportFacade.dataImportFacade(dataImportVO);
+        return RespDTO.onSuc(data);
+    }
+
+    @ApiOperation(value = "导入数据【更新数据,单条执行,效率低,备用】[by:zhoutg]",
+            notes = "// 医院ID\n" +
+                    " Long hospitalId;\n" +
+                    "// 病历信息\n" +
+                    "List<BehospitalInfo> behospitalInfoList;\n" +
+                    "// 危急值信息\n" +
+                    "List<MedCrisisInfo> medCrisisInfoList;\n" +
+                    "// 病人医嘱\n" +
+                    "List<DoctorAdvice> doctorAdviceList;\n" +
+                    "// 病案首页诊断\n" +
+                    "List<HomeDiagnoseInfo> homeDiagnoseInfoList;\n" +
+                    "// 病案首页\n" +
+                    "List<HomePage> homePageList;\n" +
+                    "// 病案首页手术信息\n" +
+                    "List<HomeOperationInfo> homeOperationInfoList;\n" +
+                    "// 文书信息\n" +
+                    "List<MedicalRecord> medicalRecordList;\n" +
+                    "// 文书明细信息\n" +
+                    "List<MedicalRecordContent> medicalRecordContentList;")
+    @PostMapping("/dataimportPrepare")
+    @SysLogger("dataimportPrepare")
+    @Transactional
+    public RespDTO<Boolean> dataimportPrepare(@RequestBody @Valid DataImportVO dataImportVO) {
+        Boolean data = dataImportFacade.dataImportPrepareFacade(dataImportVO);
+        return RespDTO.onSuc(data);
+    }
+
+    @ApiOperation(value = "模拟测试数据[by:zhoutg]",
+            notes = "")
+    @PostMapping("/test")
+    @SysLogger("test")
+    @Transactional
+    public RespDTO<Boolean> test() {
+        Boolean data = dataImportFacade.test();
+        return RespDTO.onSuc(data);
+    }
+
+}

+ 4 - 0
src/main/resources/application-dev.yml

@@ -121,6 +121,10 @@ spring:
         min-idle: 0 # 连接池中的最小空闲连接
     timeout: 20000 # 连接超时时间(毫秒)
 
+  servlet:
+    multipart:
+      max-request-size: 2048MB
+
 #mybatis
 mybatis-plus:
   mapper-locations: classpath:/mapper/*Mapper.xml

+ 4 - 0
src/main/resources/application-local.yml

@@ -121,6 +121,10 @@ spring:
         min-idle: 0 # 连接池中的最小空闲连接
     timeout: 20000 # 连接超时时间(毫秒)
 
+  servlet:
+    multipart:
+      max-request-size: 2048MB
+
 #mybatis
 mybatis-plus:
   mapper-locations: classpath:/mapper/*Mapper.xml

+ 4 - 0
src/main/resources/application-pre.yml

@@ -121,6 +121,10 @@ spring:
         min-idle: 0 # 连接池中的最小空闲连接
     timeout: 20000 # 连接超时时间(毫秒)
 
+  servlet:
+    multipart:
+      max-request-size: 2048MB
+
 #mybatis
 mybatis-plus:
   mapper-locations: classpath:/mapper/*Mapper.xml

+ 4 - 0
src/main/resources/application-pro.yml

@@ -121,6 +121,10 @@ spring:
         min-idle: 0 # 连接池中的最小空闲连接
     timeout: 20000 # 连接超时时间(毫秒)
 
+  servlet:
+    multipart:
+      max-request-size: 2048MB
+
 #mybatis
 mybatis-plus:
   mapper-locations: classpath:/mapper/*Mapper.xml

+ 4 - 0
src/main/resources/application-test.yml

@@ -121,6 +121,10 @@ spring:
         min-idle: 0 # 连接池中的最小空闲连接
     timeout: 20000 # 连接超时时间(毫秒)
 
+  servlet:
+    multipart:
+      max-request-size: 2048MB
+
 #mybatis
 mybatis-plus:
   mapper-locations: classpath:/mapper/*Mapper.xml

+ 31 - 0
src/main/resources/mapper/MedCrisisInfoMapper.xml

@@ -0,0 +1,31 @@
+<?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.MedCrisisInfoMapper">
+
+    <!-- 通用查询映射结果 -->
+    <resultMap id="BaseResultMap" type="com.diagbot.entity.MedCrisisInfo">
+        <id column="rec_id" property="recId" />
+        <result column="hospital_id" property="hospitalId" />
+        <result column="behospital_code" property="behospitalCode" />
+        <result column="rec_type" property="recType" />
+        <result column="crisis_id" property="crisisId" />
+        <result column="crisis_name" property="crisisName" />
+        <result column="dept_id" property="deptId" />
+        <result column="dept_name" property="deptName" />
+        <result column="doctor_id" property="doctorId" />
+        <result column="doctor_name" property="doctorName" />
+        <result column="crisis_value" property="crisisValue" />
+        <result column="crisis_desc" property="crisisDesc" />
+        <result column="crisis_status" property="crisisStatus" />
+        <result column="crisis_top_value" property="crisisTopValue" />
+        <result column="crisis_lower_value" property="crisisLowerValue" />
+        <result column="send_date" property="sendDate" />
+        <result column="rep_date" property="repDate" />
+        <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>

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

@@ -33,7 +33,7 @@ public class CodeGeneration {
         gc.setEnableCache(false);// XML 二级缓存
         gc.setBaseResultMap(true);// XML ResultMap
         gc.setBaseColumnList(false);// XML columList
-        gc.setAuthor("gaodm");// 作者
+        gc.setAuthor("zhoutg");// 作者
 
         // 自定义文件命名,注意 %s 会自动填充表实体属性!
         gc.setControllerName("%sController");
@@ -56,7 +56,7 @@ public class CodeGeneration {
         StrategyConfig strategy = new StrategyConfig();
 //        strategy.setTablePrefix(new String[] { "med_" });// 此处可以修改为您的表前缀
         strategy.setNaming(NamingStrategy.underline_to_camel);// 表名生成策略
-        strategy.setInclude(new String[] { "med_qcresult_detail","med_behospital_info"}); // 需要生成的表
+        strategy.setInclude(new String[] { "med_crisis_info"}); // 需要生成的表
 
         strategy.setSuperServiceClass(null);
         strategy.setSuperServiceImplClass(null);