Selaa lähdekoodia

调整同步数据不一致的情况

lantone 5 vuotta sitten
vanhempi
commit
90da3df797
87 muutettua tiedostoa jossa 2428 lisäystä ja 127 poistoa
  1. 3 2
      src/main/java/com/diagbot/config/ResourceServerConfigurer.java
  2. 13 12
      src/main/java/com/diagbot/config/security/UrlAccessDecisionManager.java
  3. 3 3
      src/main/java/com/diagbot/dto/data/ABehospitalInfoDTO.java
  4. 2 2
      src/main/java/com/diagbot/dto/data/ADoctorAdviceDTO.java
  5. 1 3
      src/main/java/com/diagbot/dto/data/AHomeOperationDTO.java
  6. 2 2
      src/main/java/com/diagbot/dto/data/AMedCrisisDTO.java
  7. 10 0
      src/main/java/com/diagbot/dto/data/AMedicalRecordContentDTO.java
  8. 1 2
      src/main/java/com/diagbot/dto/data/AMedicalRecordDTO.java
  9. 1 0
      src/main/java/com/diagbot/facade/DataFacade.java
  10. 101 0
      src/main/java/com/diagbot/facade/data/ABasDeptInfoFacade.java
  11. 97 0
      src/main/java/com/diagbot/facade/data/ABasDoctorInfoFacade.java
  12. 173 0
      src/main/java/com/diagbot/facade/data/ABehospitalInfoFacade.java
  13. 109 0
      src/main/java/com/diagbot/facade/data/ADoctorAdviceFacade.java
  14. 91 0
      src/main/java/com/diagbot/facade/data/AHomeDiagnoseInfoFacade.java
  15. 88 0
      src/main/java/com/diagbot/facade/data/AHomeOperationInfoFacade.java
  16. 238 0
      src/main/java/com/diagbot/facade/data/AHomePageFacade.java
  17. 84 0
      src/main/java/com/diagbot/facade/data/AMedCrisisFacade.java
  18. 87 0
      src/main/java/com/diagbot/facade/data/AMedRecordTypeFacade.java
  19. 78 0
      src/main/java/com/diagbot/facade/data/AMedicalRecordContentFacade.java
  20. 243 0
      src/main/java/com/diagbot/facade/data/AMedicalRecordFacade.java
  21. 1 2
      src/main/java/com/diagbot/facade/ABasDeptInfoFacade.java
  22. 1 3
      src/main/java/com/diagbot/facade/ABasDoctorInfoFacade.java
  23. 3 3
      src/main/java/com/diagbot/facade/ABehospitalInfoFacade.java
  24. 1 2
      src/main/java/com/diagbot/facade/ADoctorAdviceFacade.java
  25. 1 1
      src/main/java/com/diagbot/facade/AHomeDiagnoseInfoFacade.java
  26. 1 1
      src/main/java/com/diagbot/facade/AHomeOperationInfoFacade.java
  27. 1 2
      src/main/java/com/diagbot/facade/AHomePageFacade.java
  28. 1 4
      src/main/java/com/diagbot/facade/AMedCrisisFacade.java
  29. 1 3
      src/main/java/com/diagbot/facade/AMedRecordTypeFacade.java
  30. 1 1
      src/main/java/com/diagbot/facade/AMedicalRecordContentFacade.java
  31. 3 2
      src/main/java/com/diagbot/facade/AMedicalRecordFacade.java
  32. 2 0
      src/main/java/com/diagbot/mapper/BasDeptInfoMapper.java
  33. 3 1
      src/main/java/com/diagbot/mapper/BasDoctorInfoMapper.java
  34. 6 0
      src/main/java/com/diagbot/mapper/BehospitalInfoMapper.java
  35. 3 1
      src/main/java/com/diagbot/mapper/DoctorAdviceMapper.java
  36. 3 1
      src/main/java/com/diagbot/mapper/HomeDiagnoseInfoMapper.java
  37. 3 1
      src/main/java/com/diagbot/mapper/HomeOperationInfoMapper.java
  38. 6 1
      src/main/java/com/diagbot/mapper/HomePageMapper.java
  39. 3 1
      src/main/java/com/diagbot/mapper/MedCrisisInfoMapper.java
  40. 3 1
      src/main/java/com/diagbot/mapper/MedRecordTypeMapper.java
  41. 3 1
      src/main/java/com/diagbot/mapper/MedicalRecordContentMapper.java
  42. 2 0
      src/main/java/com/diagbot/mapper/MedicalRecordMapper.java
  43. 0 1
      src/main/java/com/diagbot/mapper/SysRoleMapper.java
  44. 0 1
      src/main/java/com/diagbot/service/BehospitalInfoService.java
  45. 0 1
      src/main/java/com/diagbot/service/HomePageService.java
  46. 4 0
      src/main/java/com/diagbot/service/impl/BasDeptInfoServiceImpl.java
  47. 9 1
      src/main/java/com/diagbot/service/impl/BasDoctorInfoServiceImpl.java
  48. 4 1
      src/main/java/com/diagbot/service/impl/BehospitalInfoServiceImpl.java
  49. 9 1
      src/main/java/com/diagbot/service/impl/DoctorAdviceServiceImpl.java
  50. 5 1
      src/main/java/com/diagbot/service/impl/HomeDiagnoseInfoServiceImpl.java
  51. 9 1
      src/main/java/com/diagbot/service/impl/HomeOperationInfoServiceImpl.java
  52. 8 1
      src/main/java/com/diagbot/service/impl/HomePageServiceImpl.java
  53. 5 1
      src/main/java/com/diagbot/service/impl/MedCrisisInfoServiceImpl.java
  54. 5 1
      src/main/java/com/diagbot/service/impl/MedRecordTypeServiceImpl.java
  55. 5 1
      src/main/java/com/diagbot/service/impl/MedicalRecordContentServiceImpl.java
  56. 4 0
      src/main/java/com/diagbot/service/impl/MedicalRecordServiceImpl.java
  57. 1 1
      src/main/java/com/diagbot/task/BasDeptInfoTask.java
  58. 1 1
      src/main/java/com/diagbot/task/BasDoctorInfoTask.java
  59. 1 1
      src/main/java/com/diagbot/task/BehospitalInfoTask.java
  60. 1 1
      src/main/java/com/diagbot/task/DoctorAdviceTask.java
  61. 1 3
      src/main/java/com/diagbot/task/HomeDiagnoseInfoTask.java
  62. 1 0
      src/main/java/com/diagbot/task/HomeOperationInfoTask.java
  63. 1 2
      src/main/java/com/diagbot/task/HomePageTask.java
  64. 1 2
      src/main/java/com/diagbot/task/MedCrisisTask.java
  65. 1 2
      src/main/java/com/diagbot/task/MedicalRecordContentTask.java
  66. 1 1
      src/main/java/com/diagbot/task/MedicalRecordTask.java
  67. 1 2
      src/main/java/com/diagbot/task/MedicalRecordTypeTask.java
  68. 4 7
      src/main/java/com/diagbot/vo/data/ABasDoctorInfoVO.java
  69. 3 3
      src/main/java/com/diagbot/vo/data/ABehospitalInfoVO.java
  70. 2 2
      src/main/java/com/diagbot/vo/data/ADoctorAdviceVO.java
  71. 1 3
      src/main/java/com/diagbot/vo/data/AHomeOperationVO.java
  72. 17 0
      src/main/java/com/diagbot/vo/data/AHomePageIngVO.java
  73. 2 2
      src/main/java/com/diagbot/vo/data/AMedCrisisVO.java
  74. 1 2
      src/main/java/com/diagbot/vo/data/AMedicalRecordVO.java
  75. 33 21
      src/main/java/com/diagbot/web/DataController.java
  76. 0 1
      src/main/java/com/diagbot/web/QcCasesController.java
  77. 30 0
      src/main/resources/mapper/BasDeptInfoMapper.xml
  78. 27 0
      src/main/resources/mapper/BasDoctorInfoMapper.xml
  79. 84 0
      src/main/resources/mapper/BehospitalInfoMapper.xml
  80. 77 0
      src/main/resources/mapper/DoctorAdviceMapper.xml
  81. 36 0
      src/main/resources/mapper/HomeDiagnoseInfoMapper.xml
  82. 48 0
      src/main/resources/mapper/HomeOperationInfoMapper.xml
  83. 385 0
      src/main/resources/mapper/HomePageMapper.xml
  84. 54 0
      src/main/resources/mapper/MedCrisisInfoMapper.xml
  85. 21 0
      src/main/resources/mapper/MedRecordTypeMapper.xml
  86. 21 0
      src/main/resources/mapper/MedicalRecordContentMapper.xml
  87. 27 0
      src/main/resources/mapper/MedicalRecordMapper.xml

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

@@ -48,14 +48,15 @@ public class ResourceServerConfigurer extends ResourceServerConfigurerAdapter {
                 .antMatchers("/qc/data/sendDoctorInfos").permitAll()
                 .antMatchers("/qc/data/sendDeptInfos").permitAll()
                 .antMatchers("/qc/data/sendRecordTypes").permitAll()
-                .antMatchers("/qc/data/sendMedicalRecord").permitAll()
+                .antMatchers("/qc/data/sendMrRecordIng").permitAll()
                 .antMatchers("/qc/data/sendMrContent").permitAll()
+                .antMatchers("/qc/data/sendMrRecord").permitAll()
                 .antMatchers("/qc/data/sendPatientInfo").permitAll()
                 .antMatchers("/qc/data/sendDoctorAdvice").permitAll()
+                .antMatchers("/qc/data/sendHomePageIng").permitAll()
                 .antMatchers("/qc/data/sendHomePage").permitAll()
                 .antMatchers("/qc/data/sendHomeDiagnose").permitAll()
                 .antMatchers("/qc/data/sendHomeOperation").permitAll()
-                .antMatchers("/qc/data/sendMrView").permitAll()
                 .antMatchers("/qc/data/sendCrisis").permitAll()
                 .antMatchers("/qc/behospitalInfo/execule").permitAll()
                 .antMatchers("/qc/behospitalInfo/analyze_rpc").permitAll()

+ 13 - 12
src/main/java/com/diagbot/config/security/UrlAccessDecisionManager.java

@@ -88,18 +88,6 @@ public class UrlAccessDecisionManager implements AccessDecisionManager {
                 || matchers("/oauth/check_token", request)
                 || matchers("/cache/clear", request)
                 || matchers("/qc/mode/getMenu", request)
-                || matchers("/qc/data/sendDoctorInfos", request)
-                || matchers("/qc/data/sendDeptInfos", request)
-                || matchers("/qc/data/sendRecordTypes", request)
-                || matchers("/qc/data/sendMedicalRecord", request)
-                || matchers("/qc/data/sendMrContent", request)
-                || matchers("/qc/data/sendPatientInfo", request)
-                || matchers("/qc/data/sendDoctorAdvice", request)
-                || matchers("/qc/data/sendHomePage", request)
-                || matchers("/qc/data/sendHomeDiagnose", request)
-                || matchers("/qc/data/sendHomeOperation", request)
-                || matchers("/qc/data/sendMrView", request)
-                || matchers("/qc/data/sendCrisis", request)
                 || matchers("/qc/behospitalInfo/execule", request)
                 || matchers("/qc/behospitalInfo/analyze_rpc", request)
                 || matchers("/qc/behospitalInfo/analyze_api", request)
@@ -121,6 +109,19 @@ public class UrlAccessDecisionManager implements AccessDecisionManager {
                 || matchers("/qc/behospitalInfo/exportQcresult", request)
                 || matchers("/qc/behospitalInfo/exportQcresultByDept", request)
                 || matchers("/qc/abnormal/getQcAnnormalMode", request)
+                || matchers("/qc/data/sendDoctorInfos", request)
+                || matchers("/qc/data/sendDeptInfos", request)
+                || matchers("/qc/data/sendRecordTypes", request)
+                || matchers("/qc/data/sendMrRecordIng", request)
+                || matchers("/qc/data/sendMrContent", request)
+                || matchers("/qc/data/sendMrRecord", request)
+                || matchers("/qc/data/sendPatientInfo", request)
+                || matchers("/qc/data/sendDoctorAdvice", request)
+                || matchers("/qc/data/sendHomePageIng", request)
+                || matchers("/qc/data/sendHomePage", request)
+                || matchers("/qc/data/sendHomeDiagnose", request)
+                || matchers("/qc/data/sendHomeOperation", request)
+                || matchers("/qc/data/sendCrisis", request)
                 || matchers("/", request)) {
             return true;
         }

+ 3 - 3
src/main/java/com/diagbot/dto/data/ABehospitalInfoDTO.java

@@ -32,7 +32,7 @@ public class ABehospitalInfoDTO{
     /**
      * 出生日期
      */
-    private Date birthday;
+    private String birthday;
 
     /**
      * 档案号
@@ -82,12 +82,12 @@ public class ABehospitalInfoDTO{
     /**
      * 入院时间
      */
-    private Date behospitalDate;
+    private String behospitalDate;
 
     /**
      * 出院时间
      */
-    private Date leaveHospitalDate;
+    private String leaveHospitalDate;
 
     /**
      * 疾病ICD编码

+ 2 - 2
src/main/java/com/diagbot/dto/data/ADoctorAdviceDTO.java

@@ -82,7 +82,7 @@ public class ADoctorAdviceDTO {
     /**
      * 医嘱开始时间
      */
-    private Date daStartDate;
+    private String daStartDate;
 
     /**
      * 医嘱项目名称
@@ -97,7 +97,7 @@ public class ADoctorAdviceDTO {
     /**
      * 医嘱结束时间
      */
-    private Date daStopDate;
+    private String daStopDate;
 
     /**
      * 医嘱同组序号

+ 1 - 3
src/main/java/com/diagbot/dto/data/AHomeOperationDTO.java

@@ -1,7 +1,5 @@
 package com.diagbot.dto.data;
 
-import java.util.Date;
-
 import lombok.Getter;
 import lombok.Setter;
 
@@ -26,7 +24,7 @@ public class AHomeOperationDTO {
     /**
      * 手术日期
      */
-    private Date operationDate;
+    private String operationDate;
 
     /**
      * 手术编码

+ 2 - 2
src/main/java/com/diagbot/dto/data/AMedCrisisDTO.java

@@ -83,10 +83,10 @@ public class AMedCrisisDTO {
     /**
      * 送检时间
      */
-    private Date sendDate;
+    private String sendDate;
 
     /**
      * 报告时间
      */
-    private Date repDate;
+    private String repDate;
 }

+ 10 - 0
src/main/java/com/diagbot/dto/data/AMedicalRecordContentDTO.java

@@ -27,4 +27,14 @@ public class AMedicalRecordContentDTO {
      * 病历文本(文本)
      */
     private String contentText;
+
+    /**
+     * html文本信息
+     */
+    private String htmlText;
+
+    /**
+     * xml文本信息
+     */
+    private String xmlText;
 }

+ 1 - 2
src/main/java/com/diagbot/dto/data/AMedicalRecordDTO.java

@@ -4,7 +4,6 @@ import com.diagbot.vo.data.AMedicalRecordContentVO;
 import lombok.Getter;
 import lombok.Setter;
 
-import java.util.Date;
 import java.util.List;
 
 @Getter
@@ -40,7 +39,7 @@ public class AMedicalRecordDTO {
     /**
      * 病历标题
      */
-    private Date recTitle;
+    private String recTitle;
 
     /**
      * 病历内容

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

@@ -1,5 +1,6 @@
 package com.diagbot.facade;
 
+import com.diagbot.facade.databack.*;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Component;
 

+ 101 - 0
src/main/java/com/diagbot/facade/data/ABasDeptInfoFacade.java

@@ -0,0 +1,101 @@
+package com.diagbot.facade.data;
+
+import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
+import com.diagbot.dto.RespDTO;
+import com.diagbot.dto.data.ABasDeptInfoDTO;
+import com.diagbot.entity.BasDeptInfo;
+import com.diagbot.service.impl.BasDeptInfoServiceImpl;
+import com.diagbot.util.TZDBConn;
+import com.diagbot.vo.data.ABasDeptInfoVO;
+import com.diagbot.util.BeanUtil;
+import com.google.common.collect.Lists;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.beans.factory.annotation.Qualifier;
+import org.springframework.stereotype.Component;
+
+import java.util.Date;
+import java.util.List;
+
+@Component
+public class ABasDeptInfoFacade extends BasDeptInfoServiceImpl{
+
+    @Autowired
+    @Qualifier("basDeptInfoServiceImpl")
+    private BasDeptInfoServiceImpl basDeptInfoService;
+
+    private TZDBConn tzDBConn = new TZDBConn();
+
+    /**
+     * 同步前一天科室的信息
+     */
+    public void executeDept() {
+        String sql="select * from hi_deptinfo where cjcxrq>=dateadd(day,-1,getdate()) and cjcxrq<=getdate()";
+        List<BasDeptInfo> basDeptInfoList = tzDBConn.getDeptInfo(sql);
+        execute(basDeptInfoList);
+    }
+
+    /**
+     * 同步历史数据
+     */
+    public void executeDeptPast(){
+        String sql="select * from hi_deptinfo where cjcxrq>=dateadd(day,-1,getdate()) and cjcxrq<=getdate()";
+        List<BasDeptInfo> basDeptInfoList = tzDBConn.getDeptInfo(sql);
+        execute(basDeptInfoList);
+    }
+
+    /**
+     * 通过接口同步数据
+     * @param list
+     * @return
+     */
+    public RespDTO<List<ABasDeptInfoDTO>> executeDept(List<ABasDeptInfoVO> list) {
+        if(list!=null && list.size()>0){
+            List<BasDeptInfo> basDeptInfoList=Lists.newArrayList();
+            List<ABasDeptInfoDTO> basDeptInfoDtoList=Lists.newArrayList();
+            basDeptInfoList=BeanUtil.listCopyTo(list,BasDeptInfo.class);
+            basDeptInfoDtoList=BeanUtil.listCopyTo(list,ABasDeptInfoDTO.class);
+
+            //循环验证数据有效性
+            for (BasDeptInfo basDeptInfo:basDeptInfoList) {
+                if("".equals(basDeptInfo.getDeptId())) {
+                    return RespDTO.onError("请输入科室编码!");
+                }else if(basDeptInfo.getHospitalId()==null){
+                    return RespDTO.onError("请输入医院编码!");
+                }else if("".equals(basDeptInfo.getDeptName())){
+                    return RespDTO.onError("请输入科室名称!");
+                }
+            }
+            execute(basDeptInfoList);
+            return RespDTO.onSuc(basDeptInfoDtoList);
+        }else {
+            return RespDTO.onError("未接收到数据!");
+        }
+    }
+
+    public void execute(List<BasDeptInfo> basDeptInfoList){
+        long startTime=System.currentTimeMillis();
+        List<BasDeptInfo> addE=Lists.newArrayList();
+        List<BasDeptInfo> updateE=Lists.newArrayList();
+        basDeptInfoList.stream().forEach(s -> {
+            BasDeptInfo basDeptInfo =this.getOne(new QueryWrapper<BasDeptInfo>()
+            .eq("dept_id", s.getDeptId())
+            .eq("hospital_id", s.getHospitalId()));
+            if (basDeptInfo != null) {
+                s.setGmtModified(new Date());
+                updateE.add(s);
+            } else {
+                s.setGmtCreate(new Date());
+                addE.add(s);
+            }
+        });
+        if(updateE.size()>0){
+            basDeptInfoService.updateBatchByKey(updateE);
+        }
+        if(addE.size()>0){
+            basDeptInfoService.saveBatch(addE);
+        }
+
+        long endTime=System.currentTimeMillis();
+        System.out.println("程序运行时间: "+(endTime - startTime)+"ms");
+    }
+}

+ 97 - 0
src/main/java/com/diagbot/facade/data/ABasDoctorInfoFacade.java

@@ -0,0 +1,97 @@
+package com.diagbot.facade.data;
+
+import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
+import com.diagbot.dto.RespDTO;
+import com.diagbot.dto.data.ABasDoctorInfoDTO;
+import com.diagbot.entity.BasDoctorInfo;
+import com.diagbot.service.impl.BasDoctorInfoServiceImpl;
+import com.diagbot.service.impl.MedQcresultCasesServiceImpl;
+import com.diagbot.util.BeanUtil;
+import com.diagbot.util.TZDBConn;
+import com.diagbot.vo.data.ABasDoctorInfoVO;
+import com.google.common.collect.Lists;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.beans.factory.annotation.Qualifier;
+import org.springframework.stereotype.Component;
+
+import java.util.Date;
+import java.util.List;
+
+@Component
+public class ABasDoctorInfoFacade extends BasDoctorInfoServiceImpl {
+    @Autowired
+    @Qualifier("basDoctorInfoServiceImpl")
+    private BasDoctorInfoServiceImpl basDoctorInfoService;
+
+    private TZDBConn tzDBConn = new TZDBConn();
+
+    /**
+     * 同步历史数据
+     */
+    public void executeDoctorPast() {
+        String sql="select * from gi_userinfo";
+        List<BasDoctorInfo> basDeptInfoList = tzDBConn.getBasDoctorInfo(sql);
+        execute(basDeptInfoList);
+
+    }
+    /**
+     * 同步前一天医生信息
+     */
+    public void executeDoctor() {
+        String sql="select * from gi_userinfo";
+        List<BasDoctorInfo> basDeptInfoList = tzDBConn.getBasDoctorInfo(sql);
+        execute(basDeptInfoList);
+    }
+    /**
+     * 从接口接收医生信息
+     * @param list
+     * @return
+     */
+    public RespDTO<List<ABasDoctorInfoDTO>> executeDoctor(List<ABasDoctorInfoVO> list) {
+        if(list!=null && list.size()>0){
+            List<BasDoctorInfo> basDoctorInfoList=Lists.newArrayList();
+            List<ABasDoctorInfoDTO> basDoctorDtoList=Lists.newArrayList();
+            basDoctorInfoList=BeanUtil.listCopyTo(list,BasDoctorInfo.class);
+            basDoctorDtoList=BeanUtil.listCopyTo(list,ABasDoctorInfoDTO.class);
+            //循环验证数据有效性
+            for (BasDoctorInfo basDoctorInfo:basDoctorInfoList) {
+                if("".equals(basDoctorInfo.getDoctorId())) {
+                    return RespDTO.onError("请输入医生编码!");
+                }else if(basDoctorInfo.getHospitalId()==null){
+                    return RespDTO.onError("请输入医院编码!");
+                }
+            }
+            execute(basDoctorInfoList);
+            return RespDTO.onSuc(basDoctorDtoList);
+        }else{
+            return RespDTO.onError("未接收到数据!");
+        }
+    }
+
+    public void execute(List<BasDoctorInfo> basDoctorInfoList){
+        long startTime=System.currentTimeMillis();
+        List<BasDoctorInfo> addE=Lists.newArrayList();
+        List<BasDoctorInfo> updateE=Lists.newArrayList();
+        basDoctorInfoList.stream().forEach(s -> {
+            BasDoctorInfo basDoctorInfo =this.baseMapper.selectOne(new QueryWrapper<BasDoctorInfo>()
+                    .eq("doctor_id", s.getDoctorId())
+                    .eq("hospital_id", s.getHospitalId()));
+            if (basDoctorInfo != null) {
+                s.setGmtModified(new Date());
+                updateE.add(s);
+            } else {
+                s.setGmtCreate(new Date());
+                addE.add(s);
+            }
+        });
+        if(updateE.size()>0){
+            basDoctorInfoService.updateBatchByKey(updateE);
+        }
+        if(addE.size()>0){
+            basDoctorInfoService.saveBatch(addE);
+        }
+
+        long endTime=System.currentTimeMillis();
+        System.out.println("程序运行时间: "+(endTime - startTime)+"ms");
+    }
+}

+ 173 - 0
src/main/java/com/diagbot/facade/data/ABehospitalInfoFacade.java

@@ -0,0 +1,173 @@
+package com.diagbot.facade.data;
+
+import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
+import com.diagbot.dto.RespDTO;
+import com.diagbot.dto.data.ABehospitalInfoDTO;
+import com.diagbot.entity.*;
+import com.diagbot.enums.IsDeleteEnum;
+import com.diagbot.facade.QcAbnormalFacade;
+import com.diagbot.facade.QcTypeFacade;
+import com.diagbot.service.impl.BehospitalInfoServiceImpl;
+import com.diagbot.service.impl.MedicalRecordServiceImpl;
+import com.diagbot.util.BeanUtil;
+import com.diagbot.util.DateUtil;
+import com.diagbot.util.StringUtil;
+import com.diagbot.util.TZDBConn;
+import com.diagbot.vo.data.ABehospitalInfoVO;
+import com.google.common.collect.Lists;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.beans.factory.annotation.Qualifier;
+import org.springframework.stereotype.Component;
+
+import java.util.Date;
+import java.util.List;
+
+@Component
+public class ABehospitalInfoFacade extends BehospitalInfoServiceImpl {
+
+    @Autowired
+    @Qualifier("behospitalInfoServiceImpl")
+    private BehospitalInfoServiceImpl behospitalInfoService;
+
+    @Autowired
+    private QcTypeFacade qcTypeFacade;
+
+    @Autowired
+    private AMedicalRecordFacade aMedicalRecordFacade;
+
+    @Autowired
+    private QcAbnormalFacade qcAbnormalFacade;
+
+    private TZDBConn tzDBConn = new TZDBConn();
+
+    /**
+     * 终末质控-同步前一天的入院记录
+     */
+    public void executeBehospital() {
+        //String sql="select * from br_inpatientinfo where cjcxrq>=dateadd(day,-2,getdate()) and cjcxrq<=getdate()";
+        String sql="select * from br_inpatientinfo where cjcxrq>=(select CONVERT(varchar,GETDATE()-1,23)) and cjcxrq<(select CONVERT(varchar,GETDATE(),23)) ORDER BY cjcxrq DESC";
+        List<BehospitalInfo> behospitalInfoList = tzDBConn.getBehospitalInfo(sql);
+        execute(behospitalInfoList);
+    }
+
+    /**
+     * 同步前一天的入院记录
+     */
+    public void executeBehospitalPast() {
+        String sql="select * from br_inpatientinfo where cjcxrq>=dateadd(day,-2,getdate()) and cjcxrq<=getdate()";
+        List<BehospitalInfo> behospitalInfoList = tzDBConn.getBehospitalInfo(sql);
+        execute(behospitalInfoList);
+    }
+
+
+    /**
+     * 通过接口更新病人住院记录信息
+     * @param list
+     * @return
+     */
+    public RespDTO<List<ABehospitalInfoDTO>> executeBehospital(List<ABehospitalInfoVO> list) {
+        if(list!=null && list.size()>0) {
+            List<BehospitalInfo> behospitalInfoList = Lists.newArrayList();
+            List<ABehospitalInfoDTO> behospitalInfoDtoList = Lists.newArrayList();
+            list.stream().forEach(s->{
+                BehospitalInfo behospitalInfo=new BehospitalInfo();
+                BeanUtil.copyProperties(s,behospitalInfo);
+                if(StringUtil.isNotBlank(s.getBirthday())) {
+                    behospitalInfo.setBirthday(DateUtil.parseDate(s.getBirthday()));
+                }
+                if(StringUtil.isNotBlank(s.getLeaveHospitalDate())) {
+                    behospitalInfo.setLeaveHospitalDate(DateUtil.parseDateTime(s.getLeaveHospitalDate()));
+                }
+                if(StringUtil.isNotBlank(s.getBehospitalDate())){
+                    behospitalInfo.setBehospitalDate(DateUtil.parseDateTime(s.getBehospitalDate()));
+                }
+                behospitalInfoList.add(behospitalInfo);
+
+            });
+
+            //循环验证数据有效性
+            for (BehospitalInfo behospitalInfo:behospitalInfoList) {
+                if("".equals(behospitalInfo.getBehospitalCode())) {
+                    return RespDTO.onError("请输入病人住院编码!");
+                }else if(behospitalInfo.getHospitalId()==null){
+                    return RespDTO.onError("请输入医院编码!");
+                }else if("".equals(behospitalInfo.getBehDeptId())){
+                    return RespDTO.onError("请输入住院科室编码!");
+                }else if("".equals(behospitalInfo.getBehDeptName())){
+                    return RespDTO.onError("请输入住院科室名称!");
+                }
+            }
+            execute(behospitalInfoList);
+            behospitalInfoDtoList = BeanUtil.listCopyTo(list, ABehospitalInfoDTO.class);
+            return RespDTO.onSuc(behospitalInfoDtoList);
+        }else{
+            return RespDTO.onError("未接收到数据!");
+        }
+    }
+
+    public void execute(List<BehospitalInfo> behospitalInfoList){
+        List<BehospitalInfo> addE = Lists.newLinkedList();
+        List<BehospitalInfo> updateE = Lists.newLinkedList();
+        behospitalInfoList.stream().forEach(s -> {
+            BehospitalInfo behospitalInfo = this.getOne(new QueryWrapper<BehospitalInfo>()
+            .eq("behospital_code", s.getBehospitalCode())
+            .eq("hospital_id", s.getHospitalId()));
+            if (behospitalInfo != null) {
+                s.setGmtModified(new Date());
+                s.setQcTypeId(initQcTypeId(s));
+                updateE.add(s);
+            } else {
+                s.setGmtCreate(new Date());
+                s.setQcTypeId(initQcTypeId(s));
+                addE.add(s);
+            }
+        });
+        if(addE.size()>0){
+            behospitalInfoService.saveBatch(addE);
+        }
+        if(updateE.size()>0){
+            behospitalInfoService.updateBatchByKey(updateE);
+        }
+
+    }
+
+    /**
+     * 初始化QcTypeId
+     * @param s
+     * @return
+     */
+    private Long initQcTypeId(BehospitalInfo s){
+        Long qcTypeId=Long.valueOf("0");
+        MedicalRecord medicalRecord = aMedicalRecordFacade.getOne(new QueryWrapper<MedicalRecord>()
+                .eq("behospital_code", s.getBehospitalCode())
+                .eq("hospital_id", s.getHospitalId())
+                .eq("mode_id", Long.valueOf("1")));
+        if(medicalRecord!=null){
+            QcType qcType=qcTypeFacade.getOne(new QueryWrapper<QcType>()
+                    .eq("name",medicalRecord.getRecTitle())
+                    .eq("hospital_id", s.getHospitalId()));
+            if(qcType!=null){
+                qcTypeId=qcType.getId();
+            }else{
+                //新增类型到qc_type表中
+                QcType qctype=new QcType();
+                qctype.setHospitalId(s.getHospitalId());
+                qctype.setName(medicalRecord.getRecTitle());
+                qctype.setGmtCreate(new Date());
+
+                Long id=qcTypeFacade.saveT(qctype);
+                qcTypeId=id;
+
+                //新增类型到监测表中
+                QcAbnormal qcAbnormal=new QcAbnormal();
+                qcAbnormal.setHospitalId(s.getHospitalId());
+                qcAbnormal.setBehospitalCode(s.getBehospitalCode());
+                qcAbnormal.setType(2);
+                qcAbnormal.setDescription(medicalRecord.getRecTitle());
+                qcAbnormal.setGmtCreate(new Date());
+                qcAbnormalFacade.getBaseMapper().insert(qcAbnormal);
+            }
+        }
+        return qcTypeId;
+    }
+}

+ 109 - 0
src/main/java/com/diagbot/facade/data/ADoctorAdviceFacade.java

@@ -0,0 +1,109 @@
+package com.diagbot.facade.data;
+
+import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
+import com.diagbot.dto.RespDTO;
+import com.diagbot.dto.data.ADoctorAdviceDTO;
+import com.diagbot.entity.DoctorAdvice;
+import com.diagbot.service.impl.DoctorAdviceServiceImpl;
+import com.diagbot.util.BeanUtil;
+import com.diagbot.util.DateUtil;
+import com.diagbot.util.StringUtil;
+import com.diagbot.util.TZDBConn;
+import com.diagbot.vo.data.ADoctorAdviceVO;
+import com.google.common.collect.Lists;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.beans.factory.annotation.Qualifier;
+import org.springframework.stereotype.Component;
+
+import java.util.Date;
+import java.util.List;
+
+@Component
+public class ADoctorAdviceFacade extends DoctorAdviceServiceImpl{
+
+    @Autowired
+    @Qualifier("doctorAdviceServiceImpl")
+    private DoctorAdviceServiceImpl doctorAdviceService;
+
+    private TZDBConn tzDBConn = new TZDBConn();
+
+    /**
+     * 终末质控-同步前一天的入院病人医嘱信息
+     */
+    public void executeDoctorAdvice() {
+        //String sql="select * from br_doctadvice where cjcxrq>=dateadd(day,-2,getdate()) and cjcxrq<=getdate()";
+        String sql="select * from br_doctadvice where cjcxrq>=(select CONVERT(varchar,GETDATE()-1,23)) and cjcxrq<(select CONVERT(varchar,GETDATE(),23)) ORDER BY cjcxrq DESC";
+        List<DoctorAdvice> doctorAdviceList = tzDBConn.getDoctorAdvice(sql);
+        execute(doctorAdviceList);
+    }
+
+    public void executeDoctorAdvicePast() {
+        String sql="select * from br_doctadvice where cjcxrq>=dateadd(day,-2,getdate()) and cjcxrq<=getdate()";
+        List<DoctorAdvice> doctorAdviceList = tzDBConn.getDoctorAdvice(sql);
+        execute(doctorAdviceList);
+    }
+    /**
+     * 数据引擎-通过接口更新医生医嘱信息
+     * @param list
+     * @return
+     */
+    public RespDTO<List<ADoctorAdviceDTO>> executeDoctorAdvice(List<ADoctorAdviceVO> list) {
+        if(list!=null && list.size()>0){
+            //循环验证数据有效性
+            for (ADoctorAdviceVO doctorAdvice:list) {
+                if("".equals(doctorAdvice.getDoctorAdviceId())) {
+                    return RespDTO.onError("请输入病人医嘱编码!");
+                }else if(doctorAdvice.getHospitalId()==null){
+                    return RespDTO.onError("请输入医院编码!");
+                }else if("".equals(doctorAdvice.getBehospitalCode())){
+                    return RespDTO.onError("请输入病人住院编码!");
+                }
+            }
+            //初始、格式化数据
+            List<DoctorAdvice> doctorAdviceList=Lists.newArrayList();
+            List<ADoctorAdviceDTO> doctorAdviceDtoList=Lists.newArrayList();
+            list.stream().forEach(s->{
+                DoctorAdvice doctorAdvice=new DoctorAdvice();
+                BeanUtil.copyProperties(s,doctorAdvice);
+                if(StringUtil.isNotBlank(s.getDaStartDate())){
+                    doctorAdvice.setDaStartDate(DateUtil.parseDateTime(s.getDaStartDate()));
+                }
+                if(StringUtil.isNotBlank(s.getDaStopDate())){
+                    doctorAdvice.setDaStopDate(DateUtil.parseDateTime(s.getDaStopDate()));
+                }
+                doctorAdviceList.add(doctorAdvice);
+            });
+            execute(doctorAdviceList);
+            doctorAdviceDtoList=BeanUtil.listCopyTo(list,ADoctorAdviceDTO.class);
+            return RespDTO.onSuc(doctorAdviceDtoList);
+        }else{
+            return RespDTO.onError("未接收到数据!");
+        }
+    }
+
+    public void execute(List<DoctorAdvice> doctorAdviceList){
+        List<DoctorAdvice> addE = Lists.newLinkedList();
+        List<DoctorAdvice> updateE = Lists.newLinkedList();
+        if (doctorAdviceList != null && doctorAdviceList.size() > 0) {
+            doctorAdviceList.stream().forEach(s -> {
+                DoctorAdvice doctorAdvice = this.getOne(new QueryWrapper<DoctorAdvice>()
+                        .eq("doctor_advice_id", s.getDoctorAdviceId())
+                        .eq("hospital_id", s.getHospitalId())
+                        .eq("behospital_code",s.getBehospitalCode()));
+                if (doctorAdvice != null) {
+                    s.setGmtModified(new Date());
+                    updateE.add(s);
+                } else {
+                    s.setGmtCreate(new Date());
+                    addE.add(s);
+                }
+            });
+        }
+        if(addE.size()>0){
+            doctorAdviceService.saveBatch(addE);
+        }
+        if(updateE.size()>0){
+            doctorAdviceService.updateBatchByKey(updateE);
+        }
+    }
+}

+ 91 - 0
src/main/java/com/diagbot/facade/data/AHomeDiagnoseInfoFacade.java

@@ -0,0 +1,91 @@
+package com.diagbot.facade.data;
+
+import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
+import com.diagbot.dto.RespDTO;
+import com.diagbot.dto.data.AHomeDiagnoseDTO;
+import com.diagbot.entity.HomeDiagnoseInfo;
+import com.diagbot.entity.MedRecordType;
+import com.diagbot.service.impl.HomeDiagnoseInfoServiceImpl;
+import com.diagbot.util.BeanUtil;
+import com.diagbot.util.TZDBConn;
+import com.diagbot.vo.data.AHomeDiagnoseVO;
+import com.google.common.collect.Lists;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.beans.factory.annotation.Qualifier;
+import org.springframework.stereotype.Component;
+
+import java.util.Date;
+import java.util.List;
+
+@Component
+public class AHomeDiagnoseInfoFacade extends HomeDiagnoseInfoServiceImpl{
+
+    @Autowired
+    @Qualifier("homeDiagnoseInfoServiceImpl")
+    private HomeDiagnoseInfoServiceImpl homeDiagnoseInfoService;
+
+    private TZDBConn tzDBConn = new TZDBConn();
+
+    /**
+     * 终末质控-定时同步病案首页诊断
+     */
+    public void executeHomeDiagnose() {
+        //String sql="select * from br_recdiagnose where BASYID in (select BASYID from br_rechome where cjcxrq>=dateadd(day,-2,getdate()) and cjcxrq<=getdate())";//今年的数据
+        //前一天的数据
+        String sql="select * from br_recdiagnose where BASYID in (select BASYID from br_rechome where cjcxrq>=(select CONVERT(varchar,GETDATE()-1,23)) and cjcxrq<(select CONVERT(varchar,GETDATE(),23)))";
+        List<HomeDiagnoseInfo> homeDiagnoseList = tzDBConn.getHomeDiagnose(sql);
+        execute(homeDiagnoseList);
+    }
+
+    public void executeHomeDiagnosePast() {
+        String sql="select * from br_recdiagnose where BASYID in (select BASYID from br_rechome where cjcxrq>=dateadd(day,-2,getdate()) and cjcxrq<=getdate())";//今年的数据
+        List<HomeDiagnoseInfo> homeDiagnoseList = tzDBConn.getHomeDiagnose(sql);
+        execute(homeDiagnoseList);
+    }
+    /**
+     * 数据引擎-通过接口更新病案首页诊断
+     * @param list
+     * @return
+     */
+    public RespDTO<List<AHomeDiagnoseDTO>> executeHomeDiagnose(List<AHomeDiagnoseVO> list) {
+        if(list!=null && list.size()>0){
+            List<HomeDiagnoseInfo> homeDiagnoseList=Lists.newArrayList();
+            List<AHomeDiagnoseDTO> homeDiagnoseDtoList=Lists.newArrayList();
+
+            homeDiagnoseList=BeanUtil.listCopyTo(list,HomeDiagnoseInfo.class);
+            homeDiagnoseDtoList=BeanUtil.listCopyTo(list,AHomeDiagnoseDTO.class);
+            execute(homeDiagnoseList);
+            return RespDTO.onSuc(homeDiagnoseDtoList);
+        }else{
+            return RespDTO.onError("未接收到数据!");
+        }
+    }
+
+    public void execute(List<HomeDiagnoseInfo> homeDiagnoseList){
+        List<HomeDiagnoseInfo> addE = Lists.newLinkedList();
+        List<HomeDiagnoseInfo> updateE = Lists.newLinkedList();
+        if (homeDiagnoseList != null && homeDiagnoseList.size() > 0) {
+            homeDiagnoseList.stream().forEach(s -> {
+                if(s.getHomePageId()!=null && !"".equals(s.getDiagnoseOrderNo())){
+                    HomeDiagnoseInfo diagnoseInfo = this.getOne(new QueryWrapper<HomeDiagnoseInfo>()
+                            .eq("home_page_id", s.getHomePageId())
+                            .eq("hospital_id", s.getHospitalId())
+                            .eq("diagnose_order_no", s.getDiagnoseOrderNo()));
+                    if (diagnoseInfo != null) {
+                        s.setGmtModified(new Date());
+                        updateE.add(s);
+                    } else {
+                        s.setGmtCreate(new Date());
+                        addE.add(s);
+                    }
+                }
+            });
+        }
+        if(addE.size()>0){
+            homeDiagnoseInfoService.saveBatch(addE);
+        }
+        if(updateE.size()>0){
+            homeDiagnoseInfoService.updateBatchByKey(updateE);
+        }
+    }
+}

+ 88 - 0
src/main/java/com/diagbot/facade/data/AHomeOperationInfoFacade.java

@@ -0,0 +1,88 @@
+package com.diagbot.facade.data;
+
+import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
+import com.diagbot.dto.data.AHomeOperationDTO;
+import com.diagbot.entity.HomeOperationInfo;
+import com.diagbot.service.impl.HomeOperationInfoServiceImpl;
+import com.diagbot.util.BeanUtil;
+import com.diagbot.util.DateUtil;
+import com.diagbot.util.TZDBConn;
+import com.diagbot.vo.data.AHomeOperationVO;
+import com.google.common.collect.Lists;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.beans.factory.annotation.Qualifier;
+import org.springframework.stereotype.Component;
+
+import java.util.Date;
+import java.util.List;
+
+@Component
+public class AHomeOperationInfoFacade extends HomeOperationInfoServiceImpl{
+
+    @Autowired
+    @Qualifier("homeOperationInfoServiceImpl")
+    private HomeOperationInfoServiceImpl homeOperationInfoService;
+
+    private TZDBConn tzDBConn = new TZDBConn();
+
+    /**
+     * 终末质控-同步前一天数据
+     */
+    public void executeHomeOperation() {
+        //String sql="select * from br_recoperation where cjcxrq>=dateadd(day,-2,getdate()) and cjcxrq<=getdate()";
+        //前一天数据
+        String sql="select * from br_recoperation where cjcxrq>=(select CONVERT(varchar,GETDATE()-1,23)) and cjcxrq<(select CONVERT(varchar,GETDATE(),23))";
+        List<HomeOperationInfo> homeOperationList = tzDBConn.getHomeOperation(sql);
+        execute(homeOperationList);
+    }
+
+    /**
+     * 终末质控-通过接口更新病案首页手术
+     * @param list
+     * @return
+     */
+    public List<AHomeOperationDTO> executeHomeOperation(List<AHomeOperationVO> list) {
+        List<HomeOperationInfo> homeOperationList=Lists.newArrayList();
+        List<AHomeOperationDTO> homeOperationDtoList=Lists.newArrayList();
+        if(list!=null && list.size()>0){
+            list.stream().forEach(s->{
+                HomeOperationInfo homeOperationInfo=new HomeOperationInfo();
+                BeanUtil.copyProperties(s,homeOperationInfo);
+                homeOperationInfo.setOperationDate(DateUtil.parseDateTime(s.getOperationDate()));
+                homeOperationList.add(homeOperationInfo);
+            });
+            homeOperationDtoList=BeanUtil.listCopyTo(list,AHomeOperationDTO.class);
+            execute(homeOperationList);
+        }
+        return homeOperationDtoList;
+    }
+
+    public void execute(List<HomeOperationInfo> homeOperationList){
+        List<HomeOperationInfo> addE = Lists.newLinkedList();
+        List<HomeOperationInfo> updateE = Lists.newLinkedList();
+        if (homeOperationList != null && homeOperationList.size() > 0) {
+            homeOperationList.stream().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());
+                    HomeOperationInfo operationInfo = this.getOne(queryWrapper);
+                    if (operationInfo != null) {
+                        s.setGmtModified(new Date());
+                        updateE.add(s);
+                    } else {
+                        s.setGmtCreate(new Date());
+                        addE.add(s);
+                    }
+                }
+            });
+        }
+        if(addE.size()>0){
+            homeOperationInfoService.saveBatch(addE);
+        }
+        if(updateE.size()>0){
+            homeOperationInfoService.updateBatchByKey(updateE);
+        }
+    }
+}

+ 238 - 0
src/main/java/com/diagbot/facade/data/AHomePageFacade.java

@@ -0,0 +1,238 @@
+package com.diagbot.facade.data;
+
+import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
+import com.diagbot.dto.RespDTO;
+import com.diagbot.dto.data.AHomePageDTO;
+import com.diagbot.entity.HomeDiagnoseInfo;
+import com.diagbot.entity.HomeOperationInfo;
+import com.diagbot.entity.HomePage;
+import com.diagbot.facade.BehospitalInfoFacade;
+import com.diagbot.service.impl.HomePageServiceImpl;
+import com.diagbot.util.BeanUtil;
+import com.diagbot.util.DateUtil;
+import com.diagbot.util.ReadProperties;
+import com.diagbot.util.TZDBConn;
+import com.diagbot.vo.AnalyzeApiVO;
+import com.diagbot.vo.data.AHomeDiagnoseVO;
+import com.diagbot.vo.data.AHomeOperationVO;
+import com.diagbot.vo.data.AHomePageIngVO;
+import com.diagbot.vo.data.AHomePageVO;
+import com.google.common.collect.Lists;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.beans.factory.annotation.Qualifier;
+import org.springframework.stereotype.Component;
+
+import java.util.Date;
+import java.util.HashMap;
+import java.util.List;
+import java.util.Map;
+
+@Component
+public class AHomePageFacade extends HomePageServiceImpl{
+
+    @Autowired
+    @Qualifier("homePageServiceImpl")
+    private HomePageServiceImpl homePageService;
+
+    @Autowired
+    private AHomeDiagnoseInfoFacade aHomeDiagnoseInfoFacade;
+
+    @Autowired
+    private AHomeOperationInfoFacade aHomeOperationInfoFacade;
+
+    @Autowired
+    private BehospitalInfoFacade behospitalInfoFacade;
+
+    @Autowired
+    private ReadProperties readProperties;
+
+    private TZDBConn tzDBConn = new TZDBConn();
+
+    /**
+     * 同步前一天病案首页
+     */
+    public void executeHomePage() {
+        //String sql="select * from br_rechome where cjcxrq>=dateadd(day,-2,getdate()) and cjcxrq<=getdate()";
+        //同步前一天的数据
+        String sql="select * from br_rechome where cjcxrq>=(select CONVERT(varchar,GETDATE()-1,23)) and cjcxrq<(select CONVERT(varchar,GETDATE(),23)) ORDER BY cjcxrq DESC";
+        List<HomePage> homePageList = tzDBConn.getHomePage(sql);
+        execute(homePageList);
+    }
+
+    /**
+     * 运行质控-验证数据有效性
+     * @param aHomePageIngVO
+     * @return
+     */
+    public RespDTO<Map<String, Object>> executeHomePageIng(AHomePageIngVO aHomePageIngVO){
+        if(aHomePageIngVO.getHomePages()!=null && aHomePageIngVO.getHomePages().size()>0){
+            //验证数据有效性
+            for (AHomePageVO aHomePageVO:aHomePageIngVO.getHomePages()) {
+                if("".equals(aHomePageVO.getHomePageId())) {
+                    return RespDTO.onError("请输入病案首页编号!");
+                }else if(aHomePageVO.getHospitalId()==null){
+                    return RespDTO.onError("请输入医院编码!");
+                }else if("".equals(aHomePageVO.getBehospitalCode())){
+                    return RespDTO.onError("请输入病人住院编码!");
+                }
+                //出院诊断
+                if(aHomePageVO.getLeaveDiags()!=null && aHomePageVO.getLeaveDiags().size()>0){
+                    for (AHomeDiagnoseVO aHomeDiagnoseVO:aHomePageVO.getLeaveDiags()){
+                        if("".equals(aHomeDiagnoseVO.getHomePageId())) {
+                            return RespDTO.onError("出院诊断未输入病案首页编号!");
+                        }else if(aHomeDiagnoseVO.getHospitalId()==null){
+                            return RespDTO.onError("出院诊断未输入医院编码!");
+                        }else if("".equals(aHomeDiagnoseVO.getDiagnoseOrderNo())){
+                            return RespDTO.onError("出院诊断未输入顺序号!");
+                        }
+                    }
+                };
+
+                //住院手术
+                if(aHomePageVO.getOperations()!=null && aHomePageVO.getOperations().size()>0){
+                    for (AHomeOperationVO aHomeOperationVO:aHomePageVO.getOperations()){
+                        if("".equals(aHomeOperationVO.getHomePageId())) {
+                            return RespDTO.onError("住院手术未输入病案首页编号!");
+                        }else if(aHomeOperationVO.getHospitalId()==null){
+                            return RespDTO.onError("住院手术未输入医院编码!");
+                        }else if("".equals(aHomeOperationVO.getOperationOrderNo())){
+                            return RespDTO.onError("住院手术未输入顺序号!");
+                        }
+                    }
+                }
+            }
+
+            //装载数据
+            updateHomePageIng(aHomePageIngVO);
+            //评分后返回结构体
+            return homePageIng(aHomePageIngVO);
+        }else{
+            return RespDTO.onError("未接收到数据!");
+        }
+    }
+
+    /**
+     * 更新数据到数据库
+     * @param aHomePageIngVO
+     */
+    private void updateHomePageIng(AHomePageIngVO aHomePageIngVO){
+        List<HomePage> homePageList=Lists.newArrayList();
+        aHomePageIngVO.getHomePages().stream().forEach(s->{
+            //初始化入参
+            HomePage homePage=new HomePage();
+            BeanUtil.copyProperties(s,homePage);
+            homePage.setBirthday(DateUtil.parseDate(s.getBirthday()));
+            homePageList.add(homePage);
+
+            //初始化诊断和手术,并同步到数据库
+            aHomeDiagnoseInfoFacade.executeHomeDiagnose(s.getLeaveDiags());//首页诊断
+            aHomeOperationInfoFacade.executeHomeOperation(s.getOperations());//首页手术
+        });
+        execute(homePageList);
+    }
+
+    /**
+     * 评分后返回结构体
+     * @param aHomePageIngVO
+     * @return
+     */
+    private RespDTO<Map<String, Object>> homePageIng(AHomePageIngVO aHomePageIngVO){
+        String behospitalCode =aHomePageIngVO.getHomePages().get(0).getBehospitalCode();
+        Long hospitalId=aHomePageIngVO.getHomePages().get(0).getHospitalId();
+        Long modeId=Long.valueOf("6");//病案首页默认为6
+        if(aHomePageIngVO.getDockModeType().equals("1")){
+            //页面模式
+            String url=readProperties.getProcessQcUrl()+"?behospitalCode="+behospitalCode+"&hospitalId="+hospitalId+"&modeId="+modeId;
+            Map<String,Object> map=new HashMap<String,Object>();
+            map.put("url",url);
+            return RespDTO.onSuc(map);
+        }else if(aHomePageIngVO.getDockModeType().equals("2")){
+            AnalyzeApiVO analyzeApiVO=new AnalyzeApiVO();
+            analyzeApiVO.setBehospitalCode(behospitalCode);
+            analyzeApiVO.setHospitalId(hospitalId);
+            Map<String, Object> map=behospitalInfoFacade.analyzeApi(analyzeApiVO);
+            //接口引擎模式
+            return RespDTO.onSuc(map);
+        }else{
+            //页面模式+接口引擎模式
+            String url=readProperties.getProcessQcUrl()+"?behospitalCode="+behospitalCode+"&hospitalId="+hospitalId+"&modeId="+modeId;
+
+            AnalyzeApiVO analyzeApiVO=new AnalyzeApiVO();
+            analyzeApiVO.setBehospitalCode(behospitalCode);
+            analyzeApiVO.setHospitalId(hospitalId);
+            Map<String, Object> map=behospitalInfoFacade.analyzeApi(analyzeApiVO);
+
+            map.put("url",url);
+
+            return RespDTO.onSuc(map);
+        }
+    }
+
+
+    /**
+     * 终末质控-通过接口更新病案首页
+     * @param list
+     * @return
+     */
+    public RespDTO<List<AHomePageDTO>> executeHomePage(List<AHomePageVO> list) {
+        if(list!=null && list.size()>0){
+            //循环验证数据有效性
+            for (AHomePageVO aHomePageVO:list) {
+                if("".equals(aHomePageVO.getHomePageId())) {
+                    return RespDTO.onError("请输入病案首页编号!");
+                }else if(aHomePageVO.getHospitalId()==null){
+                    return RespDTO.onError("请输入医院编码!");
+                }else if("".equals(aHomePageVO.getBehospitalCode())){
+                    return RespDTO.onError("请输入病人住院编码!");
+                }
+            }
+            //装载数据
+            List<HomePage> homePageList=Lists.newArrayList();
+            list.stream().forEach(s->{
+                //初始化入参
+                HomePage homePage=new HomePage();
+                BeanUtil.copyProperties(s,homePage);
+                homePage.setBirthday(DateUtil.parseDate(s.getBirthday()));
+                homePage.setBehospitalDate(DateUtil.parseDateTime(s.getBehospitalDate()));
+                homePage.setLeaveHospitalDate(DateUtil.parseDateTime(s.getLeaveHospitalDate()));
+                homePage.setQcDate(DateUtil.parseDateTime(s.getQcDate()));
+                homePageList.add(homePage);
+            });
+            execute(homePageList);
+            List<AHomePageDTO> homePageDtoList=BeanUtil.listCopyTo(list,AHomePageDTO.class);
+            return RespDTO.onSuc(homePageDtoList);
+        }else{
+            return RespDTO.onError("未接收到数据!");
+        }
+    }
+
+    /**
+     * 病案首页
+     * @param homePageList
+     */
+    public void execute(List<HomePage> homePageList){
+        List<HomePage> addE = Lists.newLinkedList();
+        List<HomePage> updateE = Lists.newLinkedList();
+        if (homePageList != null && homePageList.size() > 0) {
+            homePageList.stream().forEach(s -> {
+                HomePage homePage = this.getOne(new QueryWrapper<HomePage>()
+                        .eq("home_page_id", s.getHomePageId())
+                        .eq("hospital_id", s.getHospitalId())
+                        .eq("behospital_code", s.getBehospitalCode()));
+                if (homePage != null) {
+                    s.setGmtModified(new Date());
+                    updateE.add(s);
+                } else {
+                    s.setGmtCreate(new Date());
+                    addE.add(s);
+                }
+            });
+        }
+        if(addE.size()>0){
+            homePageService.saveBatch(addE);
+        }
+        if(updateE.size()>0){
+            homePageService.updateBatchByKey(updateE);
+        }
+    }
+}

+ 84 - 0
src/main/java/com/diagbot/facade/data/AMedCrisisFacade.java

@@ -0,0 +1,84 @@
+package com.diagbot.facade.data;
+
+import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
+import com.diagbot.dto.RespDTO;
+import com.diagbot.dto.data.AMedCrisisDTO;
+import com.diagbot.entity.MedCrisisInfo;
+import com.diagbot.service.impl.MedCrisisInfoServiceImpl;
+import com.diagbot.util.BeanUtil;
+import com.diagbot.util.DateUtil;
+import com.diagbot.vo.data.AMedCrisisVO;
+import com.google.common.collect.Lists;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.beans.factory.annotation.Qualifier;
+import org.springframework.stereotype.Component;
+
+import java.util.Date;
+import java.util.List;
+
+@Component
+public class AMedCrisisFacade extends MedCrisisInfoServiceImpl{
+
+    @Autowired
+    @Qualifier("medCrisisInfoServiceImpl")
+    private MedCrisisInfoServiceImpl medCrisisInfoService;
+
+    public RespDTO<List<AMedCrisisDTO>> executeMedCrisis(List<AMedCrisisVO> list) {
+        if(list!=null && list.size()>0){
+            //循环验证数据有效性
+            for (AMedCrisisVO aMedCrisisVO:list) {
+                if("".equals(aMedCrisisVO.getRecId())){
+                    return RespDTO.onError("请输入文书编码!");
+                }else if("".equals(aMedCrisisVO.getBehospitalCode())) {
+                    return RespDTO.onError("请输入病人住院编码!");
+                }else if(aMedCrisisVO.getHospitalId()==null){
+                    return RespDTO.onError("请输入医院编码!");
+                }else if("".equals(aMedCrisisVO.getRecType())){
+                    return RespDTO.onError("请输入危急值类型!");
+                }
+            }
+
+            List<MedCrisisInfo> medCrisisList=Lists.newArrayList();
+            list.stream().forEach(s->{
+                MedCrisisInfo medCrisisInfo=new MedCrisisInfo();
+                BeanUtil.copyProperties(s,medCrisisInfo);
+                medCrisisInfo.setRepDate(DateUtil.parseDateTime(s.getRepDate()));
+                medCrisisInfo.setSendDate(DateUtil.parseDateTime(s.getSendDate()));
+                medCrisisList.add(medCrisisInfo);
+            });
+            execute(medCrisisList);
+
+            List<AMedCrisisDTO> medCrisisDtoList=BeanUtil.listCopyTo(list,AMedCrisisDTO.class);
+            return RespDTO.onSuc(medCrisisDtoList);
+        }else{
+            return RespDTO.onError("未接收到数据!");
+        }
+    }
+
+    public void execute(List<MedCrisisInfo> medCrisisList){
+        List<MedCrisisInfo> addE = Lists.newLinkedList();
+        List<MedCrisisInfo> updateE = Lists.newLinkedList();
+        if (medCrisisList != null && medCrisisList.size() > 0) {
+            medCrisisList.stream().forEach(s -> {
+                MedCrisisInfo medCrisisInfo = this.getOne(new QueryWrapper<MedCrisisInfo>()
+                .eq("rec_id", s.getRecId())
+                .eq("hospital_id", s.getHospitalId())
+                .eq("behospital_code", s.getBehospitalCode())
+                .eq("rec_type", s.getRecType()));
+                if (medCrisisInfo != null) {
+                    s.setGmtModified(new Date());
+                    updateE.add(s);
+                } else {
+                    s.setGmtCreate(new Date());
+                    addE.add(s);
+                }
+            });
+        }
+        if(addE.size()>0){
+            medCrisisInfoService.saveBatch(addE);
+        }
+        if(updateE.size()>0){
+            medCrisisInfoService.updateBatchByKey(updateE);
+        }
+    }
+}

+ 87 - 0
src/main/java/com/diagbot/facade/data/AMedRecordTypeFacade.java

@@ -0,0 +1,87 @@
+package com.diagbot.facade.data;
+
+import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
+import com.diagbot.dto.RespDTO;
+import com.diagbot.dto.data.AMedicalRecordTypeDTO;
+import com.diagbot.entity.BasDoctorInfo;
+import com.diagbot.entity.MedRecordType;
+import com.diagbot.enums.IsDeleteEnum;
+import com.diagbot.service.impl.MedRecordTypeServiceImpl;
+import com.diagbot.util.BeanUtil;
+import com.diagbot.util.TZDBConn;
+import com.diagbot.vo.data.AMedicalRecordTypeVO;
+import com.google.common.collect.Lists;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.beans.factory.annotation.Qualifier;
+import org.springframework.stereotype.Component;
+
+import java.util.List;
+
+@Component
+public class AMedRecordTypeFacade extends MedRecordTypeServiceImpl {
+
+    @Autowired
+    @Qualifier("medRecordTypeServiceImpl")
+    private MedRecordTypeServiceImpl medRecordTypeService;
+
+    private TZDBConn tzDBConn = new TZDBConn();
+
+    /**
+     * 终末质控-同步前一天变更的模板类型
+     */
+    public void executeMRType() {
+        String sql="select * from ar_medirecclass where SFZFPB='1' and cjcxrq>=dateadd(day,-2,getdate()) and cjcxrq<=getdate()";
+        List<MedRecordType> medRecordTypeList = tzDBConn.getMedicalRecordType(sql);
+        execute(medRecordTypeList);
+    }
+    /**
+     * 数据引擎-通过接口更新病人住院记录信息
+     * @param list
+     * @return
+     */
+    public RespDTO<List<AMedicalRecordTypeDTO>> executeMRType(List<AMedicalRecordTypeVO> list) {
+        if(list!=null && list.size()>0){
+            //循环验证数据有效性
+            for (AMedicalRecordTypeVO medRecordType:list) {
+                if("".equals(medRecordType.getTypeId())) {
+                    return RespDTO.onError("请输入文书类型编码!");
+                }else if(medRecordType.getHospitalId()==null){
+                    return RespDTO.onError("请输入医院编码!");
+                }else if("".equals(medRecordType.getTypeName())){
+                    return RespDTO.onError("请文书类型名称!");
+                }
+            }
+            List<MedRecordType> medRecordTypeList=Lists.newArrayList();
+            List<AMedicalRecordTypeDTO> medRecordTypeDtoList=Lists.newArrayList();
+            medRecordTypeList=BeanUtil.listCopyTo(list,MedRecordType.class);
+            medRecordTypeDtoList=BeanUtil.listCopyTo(list,AMedicalRecordTypeDTO.class);
+            execute(medRecordTypeList);
+            return RespDTO.onSuc(medRecordTypeDtoList);
+        }else{
+            return RespDTO.onError("未接收到数据!");
+        }
+    }
+
+    public void execute(List<MedRecordType> medRecordTypeList){
+        List<MedRecordType> addE = Lists.newLinkedList();
+        List<MedRecordType> updateE = Lists.newLinkedList();
+        if (medRecordTypeList != null && medRecordTypeList.size() != 0) {
+            medRecordTypeList.stream().forEach(s -> {
+                MedRecordType mrType = this.getOne(new QueryWrapper<MedRecordType>()
+                        .eq("type_id", s.getTypeId())
+                        .eq("hospital_id", s.getHospitalId()));
+                if (mrType != null) {
+                    updateE.add(s);
+                } else {
+                    addE.add(s);
+                }
+            });
+        }
+        if(addE.size()>0){
+            medRecordTypeService.saveBatch(addE);
+        }
+        if(updateE.size()>0){
+            medRecordTypeService.updateBatchByKey(updateE);
+        }
+    }
+}

+ 78 - 0
src/main/java/com/diagbot/facade/data/AMedicalRecordContentFacade.java

@@ -0,0 +1,78 @@
+package com.diagbot.facade.data;
+
+import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
+import com.diagbot.dto.RespDTO;
+import com.diagbot.dto.data.AMedicalRecordContentDTO;
+import com.diagbot.entity.MedicalRecordContent;
+import com.diagbot.service.impl.MedicalRecordContentServiceImpl;
+import com.diagbot.util.BeanUtil;
+import com.diagbot.util.TZDBConn;
+import com.diagbot.vo.data.AMedicalRecordContentVO;
+import com.google.common.collect.Lists;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.beans.factory.annotation.Qualifier;
+import org.springframework.stereotype.Component;
+
+import java.util.*;
+
+@Component
+public class AMedicalRecordContentFacade extends MedicalRecordContentServiceImpl{
+
+    @Qualifier("medicalRecordContentServiceImpl")
+    @Autowired
+    private MedicalRecordContentServiceImpl medicalRecordContentService;
+
+    private TZDBConn tzDBConn = new TZDBConn();
+
+    /**
+     * 终末质控-同步前一天的病历详细记录
+     */
+    public void executeMrRecordContent() {
+        //String sql="select * from mr_mrcontent  where cjcxrq>=dateadd(day,-2,getdate()) and cjcxrq<=getdate()";
+        String sql="select BLJLID,BLJLNR from mr_mrcontent  where cjcxrq>=(select CONVERT(varchar,GETDATE()-1,23)) and cjcxrq<(select CONVERT(varchar,GETDATE(),23)) ORDER BY cjcxrq DESC";
+        List<MedicalRecordContent> mrContentList = tzDBConn.getMedicalRecordContent(sql);
+        execute(mrContentList);
+    }
+
+    /**
+     * 数据引擎-通过接口更新病历内容
+     * @param list
+     * @return
+     */
+    public RespDTO<List<AMedicalRecordContentDTO>> executeMrRecordContent(List<AMedicalRecordContentVO> list) {
+        if(list!=null && list.size()>0) {
+            List<MedicalRecordContent> mrContentList=BeanUtil.listCopyTo(list,MedicalRecordContent.class);
+            List<AMedicalRecordContentDTO> mrContentDtoList=BeanUtil.listCopyTo(list,AMedicalRecordContentDTO.class);
+            execute(mrContentList);
+            return RespDTO.onSuc(mrContentDtoList);
+        }else{
+            return RespDTO.onError("未接收到数据!");
+        }
+    }
+
+    public void execute(List<MedicalRecordContent> mrContentList){
+        List<MedicalRecordContent> addE = Lists.newLinkedList();
+        List<MedicalRecordContent> updateE = Lists.newLinkedList();
+        if (mrContentList != null && mrContentList.size() > 0) {
+            mrContentList.stream().forEach(s -> {
+                QueryWrapper<MedicalRecordContent> queryWrapper = new QueryWrapper<>();
+                queryWrapper.eq("rec_id", s.getRecId());
+                queryWrapper.eq("hospital_id", s.getHospitalId());
+                MedicalRecordContent mrContent = this.getOne(queryWrapper);
+                if (mrContent != null) {
+                    s.setGmtModified(new Date());
+                    updateE.add(s);
+                } else {
+                    s.setGmtCreate(new Date());
+                    addE.add(s);
+                }
+            });
+        }
+        if(addE.size()>0){
+            medicalRecordContentService.saveBatch(addE);
+        }
+        if(updateE.size()>0){
+            medicalRecordContentService.updateBatchByKey(updateE);
+        }
+    }
+}

+ 243 - 0
src/main/java/com/diagbot/facade/data/AMedicalRecordFacade.java

@@ -0,0 +1,243 @@
+package com.diagbot.facade.data;
+
+import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
+import com.diagbot.dto.RespDTO;
+import com.diagbot.dto.data.AMedicalRecordDTO;
+import com.diagbot.dto.data.AMrContentDTO;
+import com.diagbot.entity.*;
+import com.diagbot.facade.BehospitalInfoFacade;
+import com.diagbot.facade.ModelHospitalFacade;
+import com.diagbot.facade.QcAbnormalFacade;
+import com.diagbot.service.impl.MedicalRecordServiceImpl;
+import com.diagbot.util.BeanUtil;
+import com.diagbot.util.DateUtil;
+import com.diagbot.util.ReadProperties;
+import com.diagbot.util.TZDBConn;
+import com.diagbot.vo.AnalyzeApiVO;
+import com.diagbot.vo.data.AMedicalRecordVO;
+import com.diagbot.vo.data.AMrContentVO;
+import com.google.common.collect.Lists;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.beans.factory.annotation.Qualifier;
+import org.springframework.stereotype.Component;
+
+import java.util.Date;
+import java.util.HashMap;
+import java.util.List;
+import java.util.Map;
+
+@Component
+public class AMedicalRecordFacade extends MedicalRecordServiceImpl {
+
+    @Autowired
+    @Qualifier("medicalRecordServiceImpl")
+    private MedicalRecordServiceImpl medicalRecordService;
+
+    @Autowired
+    private ModelHospitalFacade modelHospitalFacade;
+
+    @Autowired
+    private AMedicalRecordContentFacade aMedicalRecordContentFacade;
+
+    @Autowired
+    private BehospitalInfoFacade behospitalInfoFacade;
+
+    @Autowired
+    private QcAbnormalFacade qcAbnormalFacade;
+
+    @Autowired
+    private ReadProperties readProperties;
+
+    private TZDBConn tzDBConn = new TZDBConn();
+
+    /**
+     * 终末质控-同步前一天的病历记录
+     */
+    public void executeMrRecord() {
+        //String sql="select * from mr_medicalrecords  where cjcxrq>=dateadd(day,-2,getdate()) and cjcxrq<=getdate()";
+        String sql="select * from mr_medicalrecords  where cjcxrq>=(select CONVERT(varchar,GETDATE()-1,23)) and cjcxrq<(select CONVERT(varchar,GETDATE(),23)) ORDER BY cjcxrq DESC";
+        List<MedicalRecord> medicalRecordList = tzDBConn.getMedicalRecord(sql);
+        execute(medicalRecordList);
+    }
+
+    /**
+     * 终末质控-通过接口更新病历记录
+     * @param list
+     * @return
+     */
+    public RespDTO<List<AMedicalRecordDTO>> executeMrRecord(List<AMedicalRecordVO> list) {
+        if(list!=null && list.size()>0) {
+            //循环验证数据有效性
+            for (AMedicalRecordVO aMedicalRecordVO : list) {
+                if ("".equals(aMedicalRecordVO.getRecId())) {
+                    return RespDTO.onError("请输入文书序号!");
+                } else if (aMedicalRecordVO.getHospitalId() == null) {
+                    return RespDTO.onError("请输入医院编码!");
+                } else if ("".equals(aMedicalRecordVO.getBehospitalCode())) {
+                    return RespDTO.onError("请输入病人住院编码!");
+                }
+            }
+
+            //装载数据
+            List<MedicalRecord> medicalRecordList = Lists.newArrayList();
+            list.stream().forEach(s->{
+                MedicalRecord medicalRecord=new MedicalRecord();
+                BeanUtil.copyProperties(s,medicalRecord);
+                medicalRecord.setRecDate(DateUtil.parseDateTime(s.getRecDate()));
+                medicalRecordList.add(medicalRecord);
+            });
+            execute(medicalRecordList);
+
+            List<AMedicalRecordDTO> medicalRecordDTOList = BeanUtil.listCopyTo(list, AMedicalRecordDTO.class);
+            return RespDTO.onSuc(medicalRecordDTOList);
+        }else{
+            return RespDTO.onError("未接收到数据!");
+        }
+    }
+
+    /**
+     * 运行质控-通过接口更新病历记录
+     * @param aMrContentVO
+     * @return
+     */
+    public RespDTO<Map<String, Object>> executeMrRecordIng(AMrContentVO aMrContentVO) {
+        if(aMrContentVO.getRecords()!=null && aMrContentVO.getRecords().size()>0){
+            AMrContentDTO aMrContentDTO=new AMrContentDTO();
+            //循环验证数据有效性
+            for (AMedicalRecordVO aMedicalRecordVO : aMrContentVO.getRecords()) {
+                if ("".equals(aMedicalRecordVO.getRecId())) {
+                    return RespDTO.onError("请输入文书序号!");
+                } else if (aMedicalRecordVO.getHospitalId() == null) {
+                    return RespDTO.onError("请输入医院编码!");
+                } else if ("".equals(aMedicalRecordVO.getBehospitalCode())) {
+                    return RespDTO.onError("请输入病人住院编码!");
+                } else if ("".equals(aMedicalRecordVO.getRecTypeId())) {
+                    return RespDTO.onError("请输入病历类别编号!");
+                } else if ("".equals(aMedicalRecordVO.getRecTitle())) {
+                    return RespDTO.onError("请输入病历标题!");
+                } else if (aMedicalRecordVO.getContents() == null || aMedicalRecordVO.getContents().size() == 0) {
+                    return RespDTO.onError("请输入文书详情!");
+                }
+            }
+            //更新文书信息
+            executeMrRecord(aMrContentVO.getRecords());
+
+            aMrContentVO.getRecords().stream().forEach(s -> {
+                //更新文书详情
+                aMedicalRecordContentFacade.executeMrRecordContent(s.getContents());
+            });
+
+            //评分后返回结构体
+            return mrIng(aMrContentVO);
+
+        }else{
+            return RespDTO.onError("未接收到数据!");
+        }
+    }
+
+    /**
+     * 评分后返回结构体
+     * @param aMrContentVO
+     * @return
+     */
+    private RespDTO<Map<String, Object>> mrIng(AMrContentVO aMrContentVO){
+        String behospitalCode =aMrContentVO.getRecords().get(0).getBehospitalCode();
+        Long hospitalId=aMrContentVO.getRecords().get(0).getHospitalId();
+        MedicalRecord medicalRecord=new MedicalRecord();
+        BeanUtil.copyProperties(aMrContentVO.getRecords().get(0),medicalRecord);
+        Long modeId=initModeId(medicalRecord);
+        if(aMrContentVO.getDockModeType().equals("1")){
+            if(modeId==0 || modeId==null){
+                return RespDTO.onError("无对应的文书类型");
+            }
+            //页面模式
+            String url=readProperties.getProcessQcUrl()+"?behospitalCode="+behospitalCode+"&hospitalId="+hospitalId+"&modeId="+modeId;
+            Map<String,Object> map=new HashMap<String,Object>();
+            map.put("url",url);
+            return RespDTO.onSuc(map);
+        }else if(aMrContentVO.getDockModeType().equals("2")){
+            AnalyzeApiVO analyzeApiVO=new AnalyzeApiVO();
+            analyzeApiVO.setBehospitalCode(behospitalCode);
+            analyzeApiVO.setHospitalId(hospitalId);
+            Map<String, Object> map=behospitalInfoFacade.analyzeApi(analyzeApiVO);
+            //接口引擎模式
+            return RespDTO.onSuc(map);
+        }else{
+            if(modeId==0 || modeId==null){
+                return RespDTO.onError("无对应的文书类型");
+            }
+            //页面模式
+            String url=readProperties.getProcessQcUrl()+"?behospitalCode="+behospitalCode+"&hospitalId="+hospitalId+"&modeId="+modeId;
+
+            AnalyzeApiVO analyzeApiVO=new AnalyzeApiVO();
+            analyzeApiVO.setBehospitalCode(behospitalCode);
+            analyzeApiVO.setHospitalId(hospitalId);
+            Map<String, Object> map=behospitalInfoFacade.analyzeApi(analyzeApiVO);
+
+            map.put("url",url);
+
+            return RespDTO.onSuc(map);
+        }
+    }
+
+    public void execute(List<MedicalRecord> medicalRecordList){
+        List<MedicalRecord> addE = Lists.newLinkedList();
+        List<MedicalRecord> updateE = Lists.newLinkedList();
+        if (medicalRecordList != null && medicalRecordList.size() > 0) {
+            medicalRecordList.stream().forEach(s -> {
+                //初始化mode_id
+                Long modeId=initModeId(s);
+                if(modeId==Long.valueOf("0")){
+                    //新增类型到监测表中
+                    QcAbnormal qcAbnormal=new QcAbnormal();
+                    qcAbnormal.setHospitalId(s.getHospitalId());
+                    qcAbnormal.setBehospitalCode(s.getBehospitalCode());
+                    qcAbnormal.setType(1);
+                    qcAbnormal.setDescription(s.getRecTitle());
+                    qcAbnormal.setGmtCreate(new Date());
+                    qcAbnormalFacade.save(qcAbnormal);
+                }
+                s.setModeId(modeId);
+                //新增或修改
+                MedicalRecord mRecord = this.getOne(new QueryWrapper<MedicalRecord>()
+                        .eq("rec_id", s.getRecId())
+                        .eq("hospital_id", s.getHospitalId())
+                        .eq("behospital_code", s.getBehospitalCode()));
+                if (mRecord != null) {
+                    s.setGmtModified(new Date());
+                    updateE.add(s);
+                } else {
+                    s.setGmtCreate(new Date());
+                    addE.add(s);
+                }
+            });
+        }
+        if(addE.size()>0){
+            medicalRecordService.saveBatch(addE);
+        }
+        if(updateE.size()>0){
+            medicalRecordService.updateBatchByKey(updateE);
+        }
+    }
+
+
+    /**
+     * 初始化模型ID
+     * @param medicalRecord
+     * @return
+     */
+    private Long initModeId(MedicalRecord medicalRecord){
+        Long modeId=Long.valueOf("0");
+        QueryWrapper<ModelHospital> wrapper = new QueryWrapper<>();
+        wrapper.eq("hospital_id",medicalRecord.getHospitalId());
+        wrapper.eq("hospital_model_name",medicalRecord.getRecTitle());
+        ModelHospital mode=modelHospitalFacade.getOne(wrapper);
+        if(mode!=null){
+            modeId=mode.getStandModelId();
+        }else{
+            modeId=Long.valueOf("0");
+        }
+        return modeId;
+    }
+
+}

+ 1 - 2
src/main/java/com/diagbot/facade/ABasDeptInfoFacade.java

@@ -1,10 +1,9 @@
-package com.diagbot.facade;
+package com.diagbot.facade.databack;
 
 import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
 import com.diagbot.dto.RespDTO;
 import com.diagbot.dto.data.ABasDeptInfoDTO;
 import com.diagbot.entity.BasDeptInfo;
-import com.diagbot.entity.BasDoctorInfo;
 import com.diagbot.enums.IsDeleteEnum;
 import com.diagbot.service.impl.BasDeptInfoServiceImpl;
 import com.diagbot.util.BeanUtil;

+ 1 - 3
src/main/java/com/diagbot/facade/ABasDoctorInfoFacade.java

@@ -1,6 +1,5 @@
-package com.diagbot.facade;
+package com.diagbot.facade.databack;
 
-import com.alibaba.fastjson.JSON;
 import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
 import com.diagbot.dto.RespDTO;
 import com.diagbot.dto.data.ABasDoctorInfoDTO;
@@ -8,7 +7,6 @@ import com.diagbot.entity.BasDoctorInfo;
 import com.diagbot.enums.IsDeleteEnum;
 import com.diagbot.service.impl.BasDoctorInfoServiceImpl;
 import com.diagbot.util.BeanUtil;
-import com.diagbot.util.StringUtil;
 import com.diagbot.util.TZDBConn;
 import com.diagbot.vo.data.ABasDoctorInfoVO;
 import com.google.common.collect.Lists;

+ 3 - 3
src/main/java/com/diagbot/facade/ABehospitalInfoFacade.java

@@ -1,14 +1,14 @@
-package com.diagbot.facade;
+package com.diagbot.facade.databack;
 
 import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
 import com.diagbot.dto.RespDTO;
 import com.diagbot.dto.data.ABehospitalInfoDTO;
 import com.diagbot.entity.*;
 import com.diagbot.enums.IsDeleteEnum;
+import com.diagbot.facade.QcAbnormalFacade;
+import com.diagbot.facade.QcTypeFacade;
 import com.diagbot.service.impl.BehospitalInfoServiceImpl;
 import com.diagbot.service.impl.MedicalRecordServiceImpl;
-import com.diagbot.service.impl.QcAbnormalServiceImpl;
-import com.diagbot.service.impl.QcTypeServiceImpl;
 import com.diagbot.util.BeanUtil;
 import com.diagbot.util.TZDBConn;
 import com.diagbot.vo.data.ABehospitalInfoVO;

+ 1 - 2
src/main/java/com/diagbot/facade/ADoctorAdviceFacade.java

@@ -1,9 +1,8 @@
-package com.diagbot.facade;
+package com.diagbot.facade.databack;
 
 import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
 import com.diagbot.dto.RespDTO;
 import com.diagbot.dto.data.ADoctorAdviceDTO;
-import com.diagbot.entity.BehospitalInfo;
 import com.diagbot.entity.DoctorAdvice;
 import com.diagbot.enums.IsDeleteEnum;
 import com.diagbot.service.impl.DoctorAdviceServiceImpl;

+ 1 - 1
src/main/java/com/diagbot/facade/AHomeDiagnoseInfoFacade.java

@@ -1,4 +1,4 @@
-package com.diagbot.facade;
+package com.diagbot.facade.databack;
 
 import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
 import com.diagbot.dto.RespDTO;

+ 1 - 1
src/main/java/com/diagbot/facade/AHomeOperationInfoFacade.java

@@ -1,4 +1,4 @@
-package com.diagbot.facade;
+package com.diagbot.facade.databack;
 
 import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
 import com.diagbot.dto.data.AHomeOperationDTO;

+ 1 - 2
src/main/java/com/diagbot/facade/AHomePageFacade.java

@@ -1,9 +1,8 @@
-package com.diagbot.facade;
+package com.diagbot.facade.databack;
 
 import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
 import com.diagbot.dto.RespDTO;
 import com.diagbot.dto.data.AHomePageDTO;
-import com.diagbot.entity.DoctorAdvice;
 import com.diagbot.entity.HomeDiagnoseInfo;
 import com.diagbot.entity.HomeOperationInfo;
 import com.diagbot.entity.HomePage;

+ 1 - 4
src/main/java/com/diagbot/facade/AMedCrisisFacade.java

@@ -1,11 +1,8 @@
-package com.diagbot.facade;
+package com.diagbot.facade.databack;
 
 import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
 import com.diagbot.dto.RespDTO;
-import com.diagbot.dto.data.AHomeDiagnoseDTO;
 import com.diagbot.dto.data.AMedCrisisDTO;
-import com.diagbot.entity.BehospitalInfo;
-import com.diagbot.entity.HomeDiagnoseInfo;
 import com.diagbot.entity.MedCrisisInfo;
 import com.diagbot.service.impl.MedCrisisInfoServiceImpl;
 import com.diagbot.util.BeanUtil;

+ 1 - 3
src/main/java/com/diagbot/facade/AMedRecordTypeFacade.java

@@ -1,11 +1,9 @@
-package com.diagbot.facade;
+package com.diagbot.facade.databack;
 
 import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
 import com.diagbot.dto.RespDTO;
 import com.diagbot.dto.data.AMedicalRecordTypeDTO;
-import com.diagbot.entity.BasDoctorInfo;
 import com.diagbot.entity.MedRecordType;
-import com.diagbot.enums.IsDeleteEnum;
 import com.diagbot.service.impl.MedRecordTypeServiceImpl;
 import com.diagbot.util.BeanUtil;
 import com.diagbot.util.TZDBConn;

+ 1 - 1
src/main/java/com/diagbot/facade/AMedicalRecordContentFacade.java

@@ -1,4 +1,4 @@
-package com.diagbot.facade;
+package com.diagbot.facade.databack;
 
 import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
 import com.diagbot.dto.data.AMedicalRecordContentDTO;

+ 3 - 2
src/main/java/com/diagbot/facade/AMedicalRecordFacade.java

@@ -1,4 +1,4 @@
-package com.diagbot.facade;
+package com.diagbot.facade.databack;
 
 import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
 import com.diagbot.dto.RespDTO;
@@ -6,6 +6,8 @@ import com.diagbot.dto.data.AMedicalRecordDTO;
 import com.diagbot.dto.data.AMrContentDTO;
 import com.diagbot.entity.*;
 import com.diagbot.enums.IsDeleteEnum;
+import com.diagbot.facade.BehospitalInfoFacade;
+import com.diagbot.facade.QcAbnormalFacade;
 import com.diagbot.service.impl.BehospitalInfoServiceImpl;
 import com.diagbot.service.impl.MedicalRecordContentServiceImpl;
 import com.diagbot.service.impl.MedicalRecordServiceImpl;
@@ -14,7 +16,6 @@ import com.diagbot.util.BeanUtil;
 import com.diagbot.util.ReadProperties;
 import com.diagbot.util.TZDBConn;
 import com.diagbot.vo.AnalyzeApiVO;
-import com.diagbot.vo.data.AMedicalRecordContentVO;
 import com.diagbot.vo.data.AMedicalRecordVO;
 import com.diagbot.vo.data.AMrContentVO;
 import com.google.common.collect.Lists;

+ 2 - 0
src/main/java/com/diagbot/mapper/BasDeptInfoMapper.java

@@ -29,4 +29,6 @@ public interface BasDeptInfoMapper extends BaseMapper<BasDeptInfo> {
      * @return
      */
     List<DeptBaseDTO> getDeptByUser(FilterVO filterVO);
+
+    void updateBatchByKey(List<BasDeptInfo> list);
 }

+ 3 - 1
src/main/java/com/diagbot/mapper/BasDoctorInfoMapper.java

@@ -3,6 +3,8 @@ package com.diagbot.mapper;
 import com.diagbot.entity.BasDoctorInfo;
 import com.baomidou.mybatisplus.core.mapper.BaseMapper;
 
+import java.util.List;
+
 /**
  * <p>
  *  Mapper 接口
@@ -12,5 +14,5 @@ import com.baomidou.mybatisplus.core.mapper.BaseMapper;
  * @since 2020-04-17
  */
 public interface BasDoctorInfoMapper extends BaseMapper<BasDoctorInfo> {
-
+    public void updateBatchByKey(List<BasDoctorInfo> list);
 }

+ 6 - 0
src/main/java/com/diagbot/mapper/BehospitalInfoMapper.java

@@ -199,4 +199,10 @@ public interface BehospitalInfoMapper extends BaseMapper<BehospitalInfo> {
      * @return
      */
     public List<ExportExcelDTO> exportQcresultByDept(ExportQcresultVO exportQcresultVO);
+
+    /**
+     * 根据两个主键-批量修改
+     * @param list
+     */
+    public void updateBatchByKey(List<BehospitalInfo> list);
 }

+ 3 - 1
src/main/java/com/diagbot/mapper/DoctorAdviceMapper.java

@@ -3,6 +3,8 @@ package com.diagbot.mapper;
 import com.diagbot.entity.DoctorAdvice;
 import com.baomidou.mybatisplus.core.mapper.BaseMapper;
 
+import java.util.List;
+
 /**
  * <p>
  * 病人医嘱 Mapper 接口
@@ -12,5 +14,5 @@ import com.baomidou.mybatisplus.core.mapper.BaseMapper;
  * @since 2020-04-13
  */
 public interface DoctorAdviceMapper extends BaseMapper<DoctorAdvice> {
-
+    public void updateBatchByKey(List<DoctorAdvice> list);
 }

+ 3 - 1
src/main/java/com/diagbot/mapper/HomeDiagnoseInfoMapper.java

@@ -3,6 +3,8 @@ package com.diagbot.mapper;
 import com.diagbot.entity.HomeDiagnoseInfo;
 import com.baomidou.mybatisplus.core.mapper.BaseMapper;
 
+import java.util.List;
+
 /**
  * <p>
  *  Mapper 接口
@@ -12,5 +14,5 @@ import com.baomidou.mybatisplus.core.mapper.BaseMapper;
  * @since 2020-04-13
  */
 public interface HomeDiagnoseInfoMapper extends BaseMapper<HomeDiagnoseInfo> {
-
+    public void updateBatchByKey(List<HomeDiagnoseInfo> list);
 }

+ 3 - 1
src/main/java/com/diagbot/mapper/HomeOperationInfoMapper.java

@@ -3,6 +3,8 @@ package com.diagbot.mapper;
 import com.diagbot.entity.HomeOperationInfo;
 import com.baomidou.mybatisplus.core.mapper.BaseMapper;
 
+import java.util.List;
+
 /**
  * <p>
  *  Mapper 接口
@@ -12,5 +14,5 @@ import com.baomidou.mybatisplus.core.mapper.BaseMapper;
  * @since 2020-04-13
  */
 public interface HomeOperationInfoMapper extends BaseMapper<HomeOperationInfo> {
-
+    public void updateBatchByKey(List<HomeOperationInfo> list);
 }

+ 6 - 1
src/main/java/com/diagbot/mapper/HomePageMapper.java

@@ -5,7 +5,6 @@ import com.baomidou.mybatisplus.core.metadata.IPage;
 import com.diagbot.dto.AverageStatisticsDTO;
 import com.diagbot.entity.HomePage;
 import com.diagbot.vo.FilterPageByAverageVO;
-import com.diagbot.vo.FilterPageVO;
 import com.diagbot.vo.FilterVO;
 import org.apache.ibatis.annotations.Param;
 
@@ -52,4 +51,10 @@ public interface HomePageMapper extends BaseMapper<HomePage> {
      * @return
      */
     public IPage<AverageStatisticsDTO> getAverageFeePage(@Param("filterPageByAverageVO") FilterPageByAverageVO filterPageByAverageVO);
+
+    /**
+     * 根据病案首页编码、医院编码、病人住院ID-批量更新
+     * @param list
+     */
+    public void updateBatchByKey(List<HomePage> list);
 }

+ 3 - 1
src/main/java/com/diagbot/mapper/MedCrisisInfoMapper.java

@@ -3,6 +3,8 @@ package com.diagbot.mapper;
 import com.diagbot.entity.MedCrisisInfo;
 import com.baomidou.mybatisplus.core.mapper.BaseMapper;
 
+import java.util.List;
+
 /**
  * <p>
  * 危急值信息 Mapper 接口
@@ -12,5 +14,5 @@ import com.baomidou.mybatisplus.core.mapper.BaseMapper;
  * @since 2020-05-28
  */
 public interface MedCrisisInfoMapper extends BaseMapper<MedCrisisInfo> {
-
+    public void updateBatchByKey(List<MedCrisisInfo> list);
 }

+ 3 - 1
src/main/java/com/diagbot/mapper/MedRecordTypeMapper.java

@@ -3,6 +3,8 @@ package com.diagbot.mapper;
 import com.diagbot.entity.MedRecordType;
 import com.baomidou.mybatisplus.core.mapper.BaseMapper;
 
+import java.util.List;
+
 /**
  * <p>
  *  Mapper 接口
@@ -12,5 +14,5 @@ import com.baomidou.mybatisplus.core.mapper.BaseMapper;
  * @since 2020-04-13
  */
 public interface MedRecordTypeMapper extends BaseMapper<MedRecordType> {
-
+    public void updateBatchByKey(List<MedRecordType> list);
 }

+ 3 - 1
src/main/java/com/diagbot/mapper/MedicalRecordContentMapper.java

@@ -3,6 +3,8 @@ package com.diagbot.mapper;
 import com.diagbot.entity.MedicalRecordContent;
 import com.baomidou.mybatisplus.core.mapper.BaseMapper;
 
+import java.util.List;
+
 /**
  * <p>
  *  Mapper 接口
@@ -12,5 +14,5 @@ import com.baomidou.mybatisplus.core.mapper.BaseMapper;
  * @since 2020-04-13
  */
 public interface MedicalRecordContentMapper extends BaseMapper<MedicalRecordContent> {
-
+    public void updateBatchByKey(List<MedicalRecordContent> list);
 }

+ 2 - 0
src/main/java/com/diagbot/mapper/MedicalRecordMapper.java

@@ -18,4 +18,6 @@ import java.util.List;
 public interface MedicalRecordMapper extends BaseMapper<MedicalRecord> {
 
     public List<RecordContentDTO> getRecordContent(RecordContentVO recordContentVO);
+
+    public void updateBatchByKey(List<MedicalRecord> list);
 }

+ 0 - 1
src/main/java/com/diagbot/mapper/SysRoleMapper.java

@@ -1,7 +1,6 @@
 package com.diagbot.mapper;
 
 import com.diagbot.dto.SysMenuPermissionDTO;
-import com.diagbot.dto.SysRoleMenuDTO;
 import com.diagbot.entity.SysRole;
 import com.baomidou.mybatisplus.core.mapper.BaseMapper;
 import com.diagbot.vo.SysRoleMenuQueryVO;

+ 0 - 1
src/main/java/com/diagbot/service/BehospitalInfoService.java

@@ -5,7 +5,6 @@ import com.baomidou.mybatisplus.extension.service.IService;
 import com.diagbot.dto.BehospitalInfoDTO;
 import com.diagbot.dto.DeptNumDTO;
 import com.diagbot.dto.ExportExcelDTO;
-import com.diagbot.dto.ExportQcresultDTO;
 import com.diagbot.dto.LevelStatisticsDTO;
 import com.diagbot.dto.MsgDTO;
 import com.diagbot.dto.NumDTO;

+ 0 - 1
src/main/java/com/diagbot/service/HomePageService.java

@@ -5,7 +5,6 @@ import com.diagbot.dto.AverageStatisticsDTO;
 import com.diagbot.entity.HomePage;
 import com.baomidou.mybatisplus.extension.service.IService;
 import com.diagbot.vo.FilterPageByAverageVO;
-import com.diagbot.vo.FilterPageVO;
 import com.diagbot.vo.FilterVO;
 import org.apache.ibatis.annotations.Param;
 

+ 4 - 0
src/main/java/com/diagbot/service/impl/BasDeptInfoServiceImpl.java

@@ -43,4 +43,8 @@ public class BasDeptInfoServiceImpl extends ServiceImpl<BasDeptInfoMapper, BasDe
     public List<DeptBaseDTO> getDeptByUser(FilterVO filterVO) {
         return baseMapper.getDeptByUser(filterVO);
     }
+
+    public void updateBatchByKey(List<BasDeptInfo> list){
+        this.baseMapper.updateBatchByKey(list);
+    }
 }

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

@@ -6,6 +6,8 @@ import com.diagbot.service.BasDoctorInfoService;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
 import org.springframework.stereotype.Service;
 
+import java.util.List;
+
 /**
  * <p>
  *  服务实现类
@@ -16,5 +18,11 @@ import org.springframework.stereotype.Service;
  */
 @Service
 public class BasDoctorInfoServiceImpl extends ServiceImpl<BasDoctorInfoMapper, BasDoctorInfo> implements BasDoctorInfoService {
-
+    /**
+     * 根据医生编码和医院编码,批量更新
+     * @param list
+     */
+    public void updateBatchByKey(List<BasDoctorInfo> list){
+        this.baseMapper.updateBatchByKey(list);
+    }
 }

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

@@ -4,7 +4,6 @@ import com.baomidou.mybatisplus.core.metadata.IPage;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
 import com.diagbot.dto.BehospitalInfoDTO;
 import com.diagbot.dto.DeptNumDTO;
-import com.diagbot.dto.ExportQcresultDTO;
 import com.diagbot.dto.ExportExcelDTO;
 import com.diagbot.dto.LevelStatisticsDTO;
 import com.diagbot.dto.MsgDTO;
@@ -270,4 +269,8 @@ public class BehospitalInfoServiceImpl extends ServiceImpl<BehospitalInfoMapper,
     public List<ExportExcelDTO> exportQcresultByDept(ExportQcresultVO exportQcresultVO){
         return baseMapper.exportQcresultByDept(exportQcresultVO);
     }
+
+    public void updateBatchByKey(List<BehospitalInfo> list){
+        this.baseMapper.updateBatchByKey(list);
+    }
 }

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

@@ -6,6 +6,8 @@ import com.diagbot.service.DoctorAdviceService;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
 import org.springframework.stereotype.Service;
 
+import java.util.List;
+
 /**
  * <p>
  * 病人医嘱 服务实现类
@@ -16,5 +18,11 @@ import org.springframework.stereotype.Service;
  */
 @Service
 public class DoctorAdviceServiceImpl extends ServiceImpl<DoctorAdviceMapper, DoctorAdvice> implements DoctorAdviceService {
-
+    /**
+     * 根据医嘱ID和医院编码-批量更新数据
+     * @param list
+     */
+    public void updateBatchByKey(List<DoctorAdvice> list){
+        this.baseMapper.updateBatchByKey(list);
+    }
 }

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

@@ -6,6 +6,8 @@ import com.diagbot.service.HomeDiagnoseInfoService;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
 import org.springframework.stereotype.Service;
 
+import java.util.List;
+
 /**
  * <p>
  *  服务实现类
@@ -16,5 +18,7 @@ import org.springframework.stereotype.Service;
  */
 @Service
 public class HomeDiagnoseInfoServiceImpl extends ServiceImpl<HomeDiagnoseInfoMapper, HomeDiagnoseInfo> implements HomeDiagnoseInfoService {
-
+    public void updateBatchByKey(List<HomeDiagnoseInfo> list){
+        this.baseMapper.updateBatchByKey(list);
+    }
 }

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

@@ -6,6 +6,8 @@ import com.diagbot.service.HomeOperationInfoService;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
 import org.springframework.stereotype.Service;
 
+import java.util.List;
+
 /**
  * <p>
  *  服务实现类
@@ -16,5 +18,11 @@ import org.springframework.stereotype.Service;
  */
 @Service
 public class HomeOperationInfoServiceImpl extends ServiceImpl<HomeOperationInfoMapper, HomeOperationInfo> implements HomeOperationInfoService {
-
+    /**
+     * 根据病案首页编码、医院编码、手术序号批量更新
+     * @param list
+     */
+    public void updateBatchByKey(List<HomeOperationInfo> list){
+        this.baseMapper.updateBatchByKey(list);
+    }
 }

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

@@ -7,7 +7,6 @@ import com.diagbot.entity.HomePage;
 import com.diagbot.mapper.HomePageMapper;
 import com.diagbot.service.HomePageService;
 import com.diagbot.vo.FilterPageByAverageVO;
-import com.diagbot.vo.FilterPageVO;
 import com.diagbot.vo.FilterVO;
 import org.apache.ibatis.annotations.Param;
 import org.springframework.stereotype.Service;
@@ -67,4 +66,12 @@ public class HomePageServiceImpl extends ServiceImpl<HomePageMapper, HomePage> i
     public IPage<AverageStatisticsDTO> getAverageFeePage(@Param("filterPageByAverageVO") FilterPageByAverageVO filterPageByAverageVO) {
         return baseMapper.getAverageFeePage(filterPageByAverageVO);
     }
+
+    /**
+     * 根据病案首页编码、医院编码、病人住院ID-批量更新
+     * @param list
+     */
+    public void updateBatchByKey(List<HomePage> list){
+        this.baseMapper.updateBatchByKey(list);
+    }
 }

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

@@ -6,6 +6,8 @@ import com.diagbot.service.MedCrisisInfoService;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
 import org.springframework.stereotype.Service;
 
+import java.util.List;
+
 /**
  * <p>
  * 危急值信息 服务实现类
@@ -16,5 +18,7 @@ import org.springframework.stereotype.Service;
  */
 @Service
 public class MedCrisisInfoServiceImpl extends ServiceImpl<MedCrisisInfoMapper, MedCrisisInfo> implements MedCrisisInfoService {
-
+    public void updateBatchByKey(List<MedCrisisInfo> list){
+        this.baseMapper.updateBatchByKey(list);
+    }
 }

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

@@ -6,6 +6,8 @@ import com.diagbot.service.MedRecordTypeService;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
 import org.springframework.stereotype.Service;
 
+import java.util.List;
+
 /**
  * <p>
  *  服务实现类
@@ -16,5 +18,7 @@ import org.springframework.stereotype.Service;
  */
 @Service
 public class MedRecordTypeServiceImpl extends ServiceImpl<MedRecordTypeMapper, MedRecordType> implements MedRecordTypeService {
-
+    public void updateBatchByKey(List<MedRecordType> list){
+        this.baseMapper.updateBatchByKey(list);
+    }
 }

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

@@ -6,6 +6,8 @@ import com.diagbot.service.MedicalRecordContentService;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
 import org.springframework.stereotype.Service;
 
+import java.util.List;
+
 /**
  * <p>
  *  服务实现类
@@ -16,5 +18,7 @@ import org.springframework.stereotype.Service;
  */
 @Service
 public class MedicalRecordContentServiceImpl extends ServiceImpl<MedicalRecordContentMapper, MedicalRecordContent> implements MedicalRecordContentService {
-
+    public void updateBatchByKey(List<MedicalRecordContent> list){
+        this.baseMapper.updateBatchByKey(list);
+    }
 }

+ 4 - 0
src/main/java/com/diagbot/service/impl/MedicalRecordServiceImpl.java

@@ -25,4 +25,8 @@ public class MedicalRecordServiceImpl extends ServiceImpl<MedicalRecordMapper, M
     public List<RecordContentDTO> getRecordContent(RecordContentVO recordContentVO) {
         return baseMapper.getRecordContent(recordContentVO);
     }
+
+    public void updateBatchByKey(List<MedicalRecord> list){
+        this.baseMapper.updateBatchByKey(list);
+    }
 }

+ 1 - 1
src/main/java/com/diagbot/task/BasDeptInfoTask.java

@@ -3,7 +3,7 @@ package com.diagbot.task;
 import java.time.LocalDateTime;
 import java.util.Date;
 
-import com.diagbot.facade.ABasDeptInfoFacade;
+import com.diagbot.facade.databack.ABasDeptInfoFacade;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.context.annotation.Configuration;
 import org.springframework.scheduling.Trigger;

+ 1 - 1
src/main/java/com/diagbot/task/BasDoctorInfoTask.java

@@ -3,7 +3,7 @@ package com.diagbot.task;
 import java.time.LocalDateTime;
 import java.util.Date;
 
-import com.diagbot.facade.ABasDoctorInfoFacade;
+import com.diagbot.facade.databack.ABasDoctorInfoFacade;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.context.annotation.Configuration;
 import org.springframework.scheduling.Trigger;

+ 1 - 1
src/main/java/com/diagbot/task/BehospitalInfoTask.java

@@ -3,7 +3,7 @@ package com.diagbot.task;
 import java.time.LocalDateTime;
 import java.util.Date;
 
-import com.diagbot.facade.ABehospitalInfoFacade;
+import com.diagbot.facade.databack.ABehospitalInfoFacade;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.context.annotation.Configuration;
 import org.springframework.scheduling.Trigger;

+ 1 - 1
src/main/java/com/diagbot/task/DoctorAdviceTask.java

@@ -3,7 +3,7 @@ package com.diagbot.task;
 import java.time.LocalDateTime;
 import java.util.Date;
 
-import com.diagbot.facade.ADoctorAdviceFacade;
+import com.diagbot.facade.databack.ADoctorAdviceFacade;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.context.annotation.Configuration;
 import org.springframework.scheduling.Trigger;

+ 1 - 3
src/main/java/com/diagbot/task/HomeDiagnoseInfoTask.java

@@ -3,7 +3,7 @@ package com.diagbot.task;
 import java.time.LocalDateTime;
 import java.util.Date;
 
-import com.diagbot.facade.AHomeDiagnoseInfoFacade;
+import com.diagbot.facade.databack.AHomeDiagnoseInfoFacade;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.context.annotation.Configuration;
 import org.springframework.scheduling.Trigger;
@@ -16,8 +16,6 @@ import org.springframework.scheduling.support.CronTrigger;
 import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
 import com.diagbot.entity.SysTaskCron;
 import com.diagbot.enums.IsDeleteEnum;
-import com.diagbot.facade.DataFacade;
-import com.diagbot.facade.HomeDiagnoseInfoFacade;
 import com.diagbot.facade.SysTaskCronFacade;
 import com.diagbot.util.StringUtil;
 

+ 1 - 0
src/main/java/com/diagbot/task/HomeOperationInfoTask.java

@@ -4,6 +4,7 @@ import java.time.LocalDateTime;
 import java.util.Date;
 
 import com.diagbot.facade.*;
+import com.diagbot.facade.databack.AHomeOperationInfoFacade;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.context.annotation.Configuration;
 import org.springframework.scheduling.Trigger;

+ 1 - 2
src/main/java/com/diagbot/task/HomePageTask.java

@@ -3,7 +3,7 @@ package com.diagbot.task;
 import java.time.LocalDateTime;
 import java.util.Date;
 
-import com.diagbot.facade.AHomePageFacade;
+import com.diagbot.facade.databack.AHomePageFacade;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.context.annotation.Configuration;
 import org.springframework.scheduling.Trigger;
@@ -16,7 +16,6 @@ import org.springframework.scheduling.support.CronTrigger;
 import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
 import com.diagbot.entity.SysTaskCron;
 import com.diagbot.enums.IsDeleteEnum;
-import com.diagbot.facade.DataFacade;
 import com.diagbot.facade.SysTaskCronFacade;
 import com.diagbot.util.StringUtil;
 

+ 1 - 2
src/main/java/com/diagbot/task/MedCrisisTask.java

@@ -3,8 +3,7 @@ package com.diagbot.task;
 import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
 import com.diagbot.entity.SysTaskCron;
 import com.diagbot.enums.IsDeleteEnum;
-import com.diagbot.facade.AHomePageFacade;
-import com.diagbot.facade.AMedCrisisFacade;
+import com.diagbot.facade.databack.AMedCrisisFacade;
 import com.diagbot.facade.SysTaskCronFacade;
 import com.diagbot.util.StringUtil;
 import lombok.extern.slf4j.Slf4j;

+ 1 - 2
src/main/java/com/diagbot/task/MedicalRecordContentTask.java

@@ -3,7 +3,7 @@ package com.diagbot.task;
 import java.time.LocalDateTime;
 import java.util.Date;
 
-import com.diagbot.facade.AMedicalRecordContentFacade;
+import com.diagbot.facade.databack.AMedicalRecordContentFacade;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.context.annotation.Configuration;
 import org.springframework.scheduling.Trigger;
@@ -16,7 +16,6 @@ import org.springframework.scheduling.support.CronTrigger;
 import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
 import com.diagbot.entity.SysTaskCron;
 import com.diagbot.enums.IsDeleteEnum;
-import com.diagbot.facade.DataFacade;
 import com.diagbot.facade.SysTaskCronFacade;
 import com.diagbot.util.StringUtil;
 

+ 1 - 1
src/main/java/com/diagbot/task/MedicalRecordTask.java

@@ -3,7 +3,7 @@ package com.diagbot.task;
 import java.time.LocalDateTime;
 import java.util.Date;
 
-import com.diagbot.facade.AMedicalRecordFacade;
+import com.diagbot.facade.databack.AMedicalRecordFacade;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.context.annotation.Configuration;
 import org.springframework.scheduling.Trigger;

+ 1 - 2
src/main/java/com/diagbot/task/MedicalRecordTypeTask.java

@@ -3,8 +3,7 @@ package com.diagbot.task;
 import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
 import com.diagbot.entity.SysTaskCron;
 import com.diagbot.enums.IsDeleteEnum;
-import com.diagbot.facade.AMedRecordTypeFacade;
-import com.diagbot.facade.DataFacade;
+import com.diagbot.facade.databack.AMedRecordTypeFacade;
 import com.diagbot.facade.SysTaskCronFacade;
 import com.diagbot.util.StringUtil;
 import lombok.extern.slf4j.Slf4j;

+ 4 - 7
src/main/java/com/diagbot/vo/data/ABasDoctorInfoVO.java

@@ -1,13 +1,10 @@
 package com.diagbot.vo.data;
 
-import lombok.Data;
-import lombok.NonNull;
+import lombok.Getter;
+import lombok.Setter;
 
-import javax.validation.constraints.NotBlank;
-import javax.validation.constraints.NotNull;
-import java.time.LocalDateTime;
-
-@Data
+@Getter
+@Setter
 public class ABasDoctorInfoVO {
     /**
      * HIS导入的医生ID

+ 3 - 3
src/main/java/com/diagbot/vo/data/ABehospitalInfoVO.java

@@ -29,7 +29,7 @@ public class ABehospitalInfoVO {
     /**
      * 出生日期
      */
-    private Date birthday;
+    private String birthday;
 
     /**
      * 档案号
@@ -84,12 +84,12 @@ public class ABehospitalInfoVO {
     /**
      * 入院时间
      */
-    private Date behospitalDate;
+    private String behospitalDate;
 
     /**
      * 出院时间
      */
-    private Date leaveHospitalDate;
+    private String leaveHospitalDate;
 
     /**
      * 疾病ICD编码

+ 2 - 2
src/main/java/com/diagbot/vo/data/ADoctorAdviceVO.java

@@ -79,7 +79,7 @@ public class ADoctorAdviceVO {
     /**
      * 医嘱开始时间
      */
-    private Date daStartDate;
+    private String daStartDate;
 
     /**
      * 医嘱项目名称
@@ -94,7 +94,7 @@ public class ADoctorAdviceVO {
     /**
      * 医嘱结束时间
      */
-    private Date daStopDate;
+    private String daStopDate;
 
     /**
      * 医嘱同组序号

+ 1 - 3
src/main/java/com/diagbot/vo/data/AHomeOperationVO.java

@@ -2,8 +2,6 @@ package com.diagbot.vo.data;
 
 import lombok.Data;
 
-import java.util.Date;
-
 @Data
 public class AHomeOperationVO {
     /**
@@ -24,7 +22,7 @@ public class AHomeOperationVO {
     /**
      * 手术日期
      */
-    private Date operationDate;
+    private String operationDate;
 
     /**
      * 手术编码

+ 17 - 0
src/main/java/com/diagbot/vo/data/AHomePageIngVO.java

@@ -0,0 +1,17 @@
+package com.diagbot.vo.data;
+
+import lombok.Getter;
+import lombok.Setter;
+
+import javax.validation.constraints.NotBlank;
+import java.util.List;
+
+@Getter
+@Setter
+public class AHomePageIngVO {
+
+    @NotBlank(message = "对接模式类型编码不能为空")
+    private String dockModeType;//对接模式类型编码,1:页面模式,2:接口引擎模式
+
+    private List<AHomePageVO> homePages;
+}

+ 2 - 2
src/main/java/com/diagbot/vo/data/AMedCrisisVO.java

@@ -83,11 +83,11 @@ public class AMedCrisisVO {
     /**
      * 送检时间
      */
-    private Date sendDate;
+    private String sendDate;
 
     /**
      * 报告时间
      */
-    private Date repDate;
+    private String repDate;
 
 }

+ 1 - 2
src/main/java/com/diagbot/vo/data/AMedicalRecordVO.java

@@ -1,6 +1,5 @@
 package com.diagbot.vo.data;
 
-import java.util.Date;
 import java.util.List;
 
 import lombok.Getter;
@@ -35,7 +34,7 @@ public class AMedicalRecordVO {
     /**
      * 病历日期
      */
-    private Date recDate;
+    private String recDate;
 
     /**
      * 病历标题

+ 33 - 21
src/main/java/com/diagbot/web/DataController.java

@@ -2,7 +2,7 @@ package com.diagbot.web;
 import com.diagbot.annotation.SysLogger;
 import com.diagbot.dto.RespDTO;
 import com.diagbot.dto.data.*;
-import com.diagbot.facade.*;
+import com.diagbot.facade.data.*;
 import com.diagbot.vo.data.*;
 import io.swagger.annotations.ApiOperation;
 import jdk.nashorn.internal.ir.annotations.Ignore;
@@ -49,13 +49,13 @@ public class DataController {
     private AHomeOperationInfoFacade aHomeOperationInfoFacade;
 
     @Autowired
-    private AMedicalRecordFacade aMedicalRecordFacade;
+    private AMedCrisisFacade aMedCrisisFacade;
 
     @Autowired
-    private AMedicalRecordContentFacade aMedicalRecordContentFacade;
+    private AMedicalRecordFacade aMedicalRecordFacade;
 
     @Autowired
-    private AMedCrisisFacade aMedCrisisFacade;
+    private AMedicalRecordContentFacade aMedicalRecordContentFacade;
 
     @ApiOperation(value = "数据引擎-获取医院所有在职医生的基本信息")
     @PostMapping("/sendDoctorInfos")
@@ -78,6 +78,27 @@ public class DataController {
         return aMedRecordTypeFacade.executeMRType(list);
     }
 
+    @ApiOperation(value = "运行质控-评分-文书信息")
+    @PostMapping("/sendMrRecordIng")
+    @SysLogger("sendMrRecordIng")
+    public RespDTO<Map<String, Object>> sendMrRecordIng(@Valid @RequestBody AMrContentVO aMrContentVO){
+        return aMedicalRecordFacade.executeMrRecordIng(aMrContentVO);
+    }
+
+    @ApiOperation(value = "终末质控-文书信息")
+    @PostMapping("/sendMrRecord")
+    @SysLogger("sendMrRecord")
+    public RespDTO<List<AMedicalRecordDTO>> sendMrRecord(@RequestBody List<AMedicalRecordVO> list){
+        return aMedicalRecordFacade.executeMrRecord(list);
+    }
+
+    @ApiOperation(value = "终末质控-文书详情")
+    @PostMapping("/sendMrContent")
+    @SysLogger("sendMrContent")
+    public RespDTO<List<AMedicalRecordContentDTO>> sendMrContent(@RequestBody List<AMedicalRecordContentVO> list){
+        return aMedicalRecordContentFacade.executeMrRecordContent(list);
+    }
+
     @ApiOperation(value = "数据引擎-获取医院病人住院记录信息")
     @PostMapping("/sendPatientInfo")
     @SysLogger("sendPatientInfo")
@@ -92,39 +113,30 @@ public class DataController {
         return aDoctorAdviceFacade.executeDoctorAdvice(list);
     }
 
-    @ApiOperation(value = "支持评分-获取病历记录")
-    @PostMapping("/sendMedicalRecord")
-    @SysLogger("sendMedicalRecord")
-    public RespDTO<Map<String, Object>> sendMedicalRecord(@Valid @RequestBody AMrContentVO aMrContentVO){
-        return aMedicalRecordFacade.executeMrRecord(aMrContentVO);
-    }
-
-    @ApiOperation(value = "支持数据同步-获取病历记录")
-    @PostMapping("/sendMrContent")
-    @SysLogger("sendMrContent")
-    public RespDTO<List<AMedicalRecordDTO>> sendMrContent(@RequestBody List<AMedicalRecordVO> list){
-        return aMedicalRecordFacade.executeMrRecordView(list);
+    @ApiOperation(value = "运行质控-获取病案首页")
+    @PostMapping("/sendHomePageIng")
+    @SysLogger("sendHomePageIng")
+    public RespDTO<Map<String, Object>> sendHomePageIng(@Valid @RequestBody AHomePageIngVO aHomePageIngVO){
+        return aHomePageFacade.executeHomePageIng(aHomePageIngVO);
     }
 
-    @ApiOperation(value = "数据引擎-获取病案首页")
+    @ApiOperation(value = "终末质控-获取病案首页")
     @PostMapping("/sendHomePage")
     @SysLogger("sendHomePage")
     public RespDTO<List<AHomePageDTO>> sendHomePage(@RequestBody List<AHomePageVO> list){
         return aHomePageFacade.executeHomePage(list);
     }
 
-    @ApiOperation(value = "数据引擎-获取病案首页诊断")
+    @ApiOperation(value = "终末质控-获取病案首页诊断")
     @PostMapping("/sendHomeDiagnose")
     @SysLogger("sendHomeDiagnose")
-    @Ignore
     public RespDTO<List<AHomeDiagnoseDTO>> sendHomeDiagnose(@RequestBody List<AHomeDiagnoseVO> list){
         return aHomeDiagnoseInfoFacade.executeHomeDiagnose(list);
     }
 
-    @ApiOperation(value = "数据引擎-获取病案首页手术")
+    @ApiOperation(value = "终末质控-获取病案首页手术")
     @PostMapping("/sendHomeOperation")
     @SysLogger("sendHomeOperation")
-    @Ignore
     public RespDTO<List<AHomeOperationDTO>> sendHomeOperation(@RequestBody List<AHomeOperationVO> list){
         return RespDTO.onSuc(aHomeOperationInfoFacade.executeHomeOperation(list));
     }

+ 0 - 1
src/main/java/com/diagbot/web/QcCasesController.java

@@ -5,7 +5,6 @@ import com.diagbot.dto.QcCasesDTO;
 import com.diagbot.dto.RespDTO;
 import com.diagbot.facade.QcCasesFacade;
 import com.diagbot.vo.QcCasesSaveListVO;
-import com.diagbot.vo.QcCasesSaveVO;
 import io.swagger.annotations.Api;
 import io.swagger.annotations.ApiOperation;
 import org.springframework.beans.factory.annotation.Autowired;

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

@@ -76,4 +76,34 @@
             AND a.hospital_id = #{hospitalId}
         </if>
     </select>
+
+    <update id="updateBatchByKey">
+        <foreach collection="list" item="item"  separator=";">
+            update bas_dept_info
+            <set>
+                <if test="item.parentDeptId != null">
+                    parent_dept_id = #{item.parentDeptId},
+                </if>
+                <if test="item.deptName != null">
+                    dept_name = #{item.deptName},
+                </if>
+                <if test="item.deptType != null">
+                    dept_type = #{item.deptType},
+                </if>
+                <if test="item.spell != null">
+                    spell = #{item.spell},
+                </if>
+                <if test="item.station != null">
+                    station = #{item.station},
+                </if>
+                <if test="item.gmtModified != null">
+                    gmt_modified = #{item.gmtModified},
+                </if>
+                <if test="item.modifier != null">
+                    modifier = #{item.modifier},
+                </if>
+            </set>
+            where dept_id = #{item.deptId} and hospital_id = #{item.hospitalId}
+        </foreach>
+    </update>
 </mapper>

+ 27 - 0
src/main/resources/mapper/BasDoctorInfoMapper.xml

@@ -17,4 +17,31 @@
         <result column="modifier" property="modifier" />
     </resultMap>
 
+    <update id="updateBatchByKey">
+        <foreach collection="list" item="item"  separator=";">
+            update bas_doctor_info
+            <set>
+                <if test="item.deptId != null">
+                    dept_id = #{item.deptId},
+                </if>
+                <if test="item.name != null">
+                    name = #{item.name},
+                </if>
+                <if test="item.professor != null">
+                    professor = #{item.professor},
+                </if>
+                <if test="item.occup != null">
+                    occup = #{item.occup},
+                </if>
+                <if test="item.gmtModified != null">
+                    gmt_modified = #{item.gmtModified},
+                </if>
+                <if test="item.modifier != null">
+                    modifier = #{item.modifier},
+                </if>
+            </set>
+            where doctor_id = #{item.doctorId} and hospital_id = #{item.hospitalId}
+        </foreach>
+    </update>
+
 </mapper>

+ 84 - 0
src/main/resources/mapper/BehospitalInfoMapper.xml

@@ -2057,4 +2057,88 @@
         t1.behospitalCode,
         t1.casesName
     </select>
+
+    <update id="updateBatchByKey">
+        <foreach collection="list" item="item"  separator=";">
+            update med_behospital_info
+            <set>
+                <if test="item.name != null">
+                    name = #{item.name},
+                </if>
+                <if test="item.sex != null">
+                    sex = #{item.sex},
+                </if>
+                <if test="item.birthday != null">
+                    birthday = #{item.birthday},
+                </if>
+                <if test="item.fileCode != null">
+                    file_code = #{item.fileCode},
+                </if>
+                <if test="item.qcTypeId != null">
+                    qc_type_id = #{item.qcTypeId},
+                </if>
+                <if test="item.wardCode != null">
+                    ward_code = #{item.wardCode},
+                </if>
+                <if test="item.wardName != null">
+                    ward_name = #{item.wardName},
+                </if>
+                <if test="item.behDeptId != null">
+                    beh_dept_id = #{item.behDeptId},
+                </if>
+                <if test="item.behDeptName != null">
+                    beh_dept_name = #{item.behDeptName},
+                </if>
+                <if test="item.bedCode != null">
+                    bed_code = #{item.bedCode},
+                </if>
+                <if test="item.bedName != null">
+                    bed_name = #{item.bedName},
+                </if>
+                <if test="item.insuranceName != null">
+                    insurance_name = #{item.insuranceName},
+                </if>
+                <if test="item.jobType != null">
+                    job_type = #{item.jobType},
+                </if>
+                <if test="item.behospitalDate != null">
+                    behospital_date = #{item.behospitalDate},
+                </if>
+                <if test="item.leaveHospitalDate != null">
+                    leave_hospital_date = #{item.leaveHospitalDate},
+                </if>
+                <if test="item.diagnoseIcd != null">
+                    diagnose_icd = #{item.diagnoseIcd},
+                </if>
+                <if test="item.diagnose != null">
+                    diagnose = #{item.diagnose},
+                </if>
+                <if test="item.behDoctorId != null">
+                    beh_doctor_id = #{item.behDoctorId},
+                </if>
+                <if test="item.behDoctorName != null">
+                    beh_doctor_name = #{item.behDoctorName},
+                </if>
+                <if test="item.doctorId != null">
+                    doctor_id = #{item.doctorId},
+                </if>
+                <if test="item.doctorName != null">
+                    doctor_name = #{item.doctorName},
+                </if>
+                <if test="item.directorDoctorId != null">
+                    director_doctor_id = #{item.directorDoctorId},
+                </if>
+                <if test="item.directorDoctorName != null">
+                    director_doctor_name = #{item.directorDoctorName},
+                </if>
+                <if test="item.gmtModified != null">
+                    gmt_modified = #{item.gmtModified},
+                </if>
+                <if test="item.modifier != null">
+                    modifier = #{item.modifier},
+                </if>
+            </set>
+            where behospital_code = #{item.behospitalCode} and hospital_id = #{item.hospitalId}
+        </foreach>
+    </update>
 </mapper>

+ 77 - 0
src/main/resources/mapper/DoctorAdviceMapper.xml

@@ -35,4 +35,81 @@
         <result column="modifier" property="modifier" />
     </resultMap>
 
+    <update id="updateBatchByKey">
+    <foreach collection="list" item="item"  separator=";">
+        update med_doctor_advice
+        <set>
+            <if test="item.orderDoctorName != null">
+                order_doctor_name = #{item.orderDoctorName},
+            </if>
+            <if test="item.frequency != null">
+                frequency = #{item.frequency},
+            </if>
+            <if test="item.parentTypeId != null">
+                parent_type_id = #{item.parentTypeId},
+            </if>
+            <if test="item.doctorAdviceType != null">
+                doctor_advice_type = #{item.doctorAdviceType},
+            </if>
+            <if test="item.usageNum != null">
+                usage_num = #{item.usageNum},
+            </if>
+            <if test="item.usageUnit != null">
+                usage_unit = #{item.usageUnit},
+            </if>
+            <if test="item.dose != null">
+                dose = #{item.dose},
+            </if>
+            <if test="item.doseUnit != null">
+                dose_unit = #{item.doseUnit},
+            </if>
+            <if test="item.medModeType != null">
+                med_mode_type = #{item.medModeType},
+            </if>
+            <if test="item.daFrequency != null">
+                da_frequency = #{item.daFrequency},
+            </if>
+            <if test="item.daDealType != null">
+                da_deal_type = #{item.daDealType},
+            </if>
+            <if test="item.daStartDate != null">
+                da_start_date = #{item.daStartDate},
+            </if>
+            <if test="item.daItemName != null">
+                da_item_name = #{item.daItemName},
+            </if>
+            <if test="item.daStatus != null">
+                da_status = #{item.daStatus},
+            </if>
+            <if test="item.daStopDate != null">
+                da_stop_date = #{item.daStopDate},
+            </if>
+            <if test="item.daGroupNo != null">
+                da_group_no = #{item.daGroupNo},
+            </if>
+            <if test="item.daPrescriptionType != null">
+                da_prescription_type = #{item.daPrescriptionType},
+            </if>
+            <if test="item.daMedType != null">
+                da_med_type = #{item.daMedType},
+            </if>
+            <if test="item.doctorNotice != null">
+                doctor_notice = #{item.doctorNotice},
+            </if>
+            <if test="item.doctorId != null">
+                doctor_id = #{item.doctorId},
+            </if>
+            <if test="item.doctorName != null">
+                doctor_name = #{item.doctorName},
+            </if>
+            <if test="item.gmtModified != null">
+                gmt_modified = #{item.gmtModified},
+            </if>
+            <if test="item.modifier != null">
+                modifier = #{item.modifier},
+            </if>
+        </set>
+        where doctor_advice_id = #{item.doctorAdviceId} and hospital_id = #{item.hospitalId} and behospital_code = #{item.behospitalCode}
+    </foreach>
+    </update>
 </mapper>

+ 36 - 0
src/main/resources/mapper/HomeDiagnoseInfoMapper.xml

@@ -21,4 +21,40 @@
         <result column="modifier" property="modifier" />
     </resultMap>
 
+    <update id="updateBatchByKey">
+        <foreach collection="list" item="item"  separator=";">
+            update med_home_diagnose_info
+            <set>
+                <if test="item.diagnoseType != null">
+                    diagnose_type = #{item.diagnoseType},
+                </if>
+                <if test="item.diagnoseTypeShort != null">
+                    diagnose_type_short = #{item.diagnoseTypeShort},
+                </if>
+                <if test="item.diagnoseName != null">
+                    diagnose_name = #{item.diagnoseName},
+                </if>
+                <if test="item.behospitalType != null">
+                    behospital_type = #{item.behospitalType},
+                </if>
+                <if test="item.leaveHospitalType != null">
+                    leave_hospital_type = #{item.leaveHospitalType},
+                </if>
+                <if test="item.pathologyDiagnose != null">
+                    pathology_diagnose = #{item.pathologyDiagnose},
+                </if>
+                <if test="item.icdCode != null">
+                    icd_code = #{item.icdCode},
+                </if>
+                <if test="item.gmtModified != null">
+                    gmt_modified = #{item.gmtModified},
+                </if>
+                <if test="item.modifier != null">
+                    modifier = #{item.modifier},
+                </if>
+            </set>
+            where home_page_id = #{item.homePageId} and hospital_id = #{item.hospitalId} and diagnose_order_no = #{item.diagnoseOrderNo}
+        </foreach>
+    </update>
+
 </mapper>

+ 48 - 0
src/main/resources/mapper/HomeOperationInfoMapper.xml

@@ -25,4 +25,52 @@
         <result column="modifier" property="modifier" />
     </resultMap>
 
+    <update id="updateBatchByKey">
+        <foreach collection="list" item="item"  separator=";">
+            update med_home_operation_info
+            <set>
+                <if test="item.operationDate != null">
+                    operation_date = #{item.operationDate},
+                </if>
+                <if test="item.operationCode != null">
+                    operation_code = #{item.operationCode},
+                </if>
+                <if test="item.operationDoctorId != null">
+                    operation_doctor_id = #{item.operationDoctorId},
+                </if>
+                <if test="item.firstAssistantId != null">
+                    first_assistant_id = #{item.firstAssistantId},
+                </if>
+                <if test="item.secondAssistantId != null">
+                    second_assistant_id = #{item.secondAssistantId},
+                </if>
+                <if test="item.cutLevel != null">
+                    cut_level = #{item.cutLevel},
+                </if>
+                <if test="item.healingLevel != null">
+                    healing_level = #{item.healingLevel},
+                </if>
+                <if test="item.operationName != null">
+                    operation_name = #{item.operationName},
+                </if>
+                <if test="item.operationLevel != null">
+                    operation_level = #{item.operationLevel},
+                </if>
+                <if test="item.anaesthesiaName != null">
+                    anaesthesia_name = #{item.anaesthesiaName},
+                </if>
+                <if test="item.shamOperationName != null">
+                    sham_operation_name = #{item.shamOperationName},
+                </if>
+                <if test="item.gmtModified != null">
+                    gmt_modified = #{item.gmtModified},
+                </if>
+                <if test="item.modifier != null">
+                    modifier = #{item.modifier},
+                </if>
+            </set>
+            where home_page_id = #{item.homePageId} and hospital_id = #{item.hospitalId} and operation_order_no = #{item.operationOrderNo}
+        </foreach>
+    </update>
+
 </mapper>

+ 385 - 0
src/main/resources/mapper/HomePageMapper.xml

@@ -451,4 +451,389 @@
         t.lastYearAverageValue DESC)
         t1
     </select>
+
+    <update id="updateBatchByKey">
+        <foreach collection="list" item="item"  separator=";">
+            update med_home_page
+            <set>
+                <if test="item.hospitalCode != null">
+                    hospital_code = #{item.hospitalCode},
+                </if>
+                <if test="item.hospitalName != null">
+                    hospital_name = #{item.hospitalName},
+                </if>
+                <if test="item.orgCode != null">
+                    org_code = #{item.orgCode},
+                </if>
+                <if test="item.payType != null">
+                    pay_type = #{item.payType},
+                </if>
+                <if test="item.healthCard != null">
+                    health_card = #{item.healthCard},
+                </if>
+                <if test="item.behospitalNum != null">
+                    behospital_num = #{item.behospitalNum},
+                </if>
+                <if test="item.fileCode != null">
+                    file_code = #{item.fileCode},
+                </if>
+                <if test="item.name != null">
+                    name = #{item.name},
+                </if>
+                <if test="item.sex != null">
+                    sex = #{item.sex},
+                </if>
+                <if test="item.birthday != null">
+                    birthday = #{item.birthday},
+                </if>
+                <if test="item.age != null">
+                    age = #{item.age},
+                </if>
+                <if test="item.ageUnit != null">
+                    age_unit = #{item.ageUnit},
+                </if>
+                <if test="item.nationality != null">
+                    nationality = #{item.nationality},
+                </if>
+                <if test="item.newbornMonth != null">
+                    newborn_month = #{item.newbornMonth},
+                </if>
+                <if test="item.newbornDay != null">
+                    newborn_day = #{item.newbornDay},
+                </if>
+                <if test="item.newbornWeight != null">
+                    newborn_weight = #{item.newbornWeight},
+                </if>
+                <if test="item.newbornBehospitalWeight != null">
+                    newborn_behospital_weight = #{item.newbornBehospitalWeight},
+                </if>
+                <if test="item.bornAddress != null">
+                    born_address = #{item.bornAddress},
+                </if>
+                <if test="item.bornPlace != null">
+                    born_place = #{item.bornPlace},
+                </if>
+                <if test="item.nation != null">
+                    nation = #{item.nation},
+                </if>
+                <if test="item.identityCardNo != null">
+                    identity_card_no = #{item.identityCardNo},
+                </if>
+                <if test="item.jobType != null">
+                    job_type = #{item.jobType},
+                </if>
+                <if test="item.marriage != null">
+                    marriage = #{item.marriage},
+                </if>
+                <if test="item.curAddress != null">
+                    cur_address = #{item.curAddress},
+                </if>
+                <if test="item.curPhone != null">
+                    cur_phone = #{item.curPhone},
+                </if>
+                <if test="item.curPostCode != null">
+                    cur_post_code = #{item.curPostCode},
+                </if>
+                <if test="item.residenceAddress != null">
+                    residence_address = #{item.residenceAddress},
+                </if>
+                <if test="item.residencePostCode != null">
+                    residence_post_code = #{item.residencePostCode},
+                </if>
+                <if test="item.workAddress != null">
+                    work_address = #{item.workAddress},
+                </if>
+                <if test="item.workPhone != null">
+                    work_phone = #{item.workPhone},
+                </if>
+                <if test="item.workPostCode != null">
+                    work_post_code = #{item.workPostCode},
+                </if>
+                <if test="item.contactName != null">
+                    contact_name = #{item.contactName},
+                </if>
+                <if test="item.contactRelation != null">
+                    contact_relation = #{item.contactRelation},
+                </if>
+                <if test="item.contactAddress != null">
+                    contact_address = #{item.contactAddress},
+                </if>
+                <if test="item.contactPhone != null">
+                    contact_phone = #{item.contactPhone},
+                </if>
+                <if test="item.behospitalWay != null">
+                    behospital_way = #{item.behospitalWay},
+                </if>
+                <if test="item.behospitalDate != null">
+                    behospital_date = #{item.behospitalDate},
+                </if>
+                <if test="item.behospitalDept != null">
+                    behospital_dept = #{item.behospitalDept},
+                </if>
+                <if test="item.behospitalWard != null">
+                    behospital_ward = #{item.behospitalWard},
+                </if>
+                <if test="item.behospitalBedId != null">
+                    behospital_bed_id = #{item.behospitalBedId},
+                </if>
+                <if test="item.behospitalBedCode != null">
+                    behospital_bed_code = #{item.behospitalBedCode},
+                </if>
+                <if test="item.changeDept != null">
+                    change_dept = #{item.changeDept},
+                </if>
+                <if test="item.leaveHospitalDate != null">
+                    leave_hospital_date = #{item.leaveHospitalDate},
+                </if>
+                <if test="item.leaveHospitalDept != null">
+                    leave_hospital_dept = #{item.leaveHospitalDept},
+                </if>
+                <if test="item.leaveHospitalWard != null">
+                    leave_hospital_ward = #{item.leaveHospitalWard},
+                </if>
+                <if test="item.leaveHospitalBedId != null">
+                    leave_hospital_bed_id = #{item.leaveHospitalBedId},
+                </if>
+                <if test="item.leaveHospitalBedCode != null">
+                    leave_hospital_bed_code = #{item.leaveHospitalBedCode},
+                </if>
+                <if test="item.behospitalDayNum != null">
+                    behospital_day_num = #{item.behospitalDayNum},
+                </if>
+                <if test="item.outpatientEmrDiagnose != null">
+                    outpatient_emr_diagnose = #{item.outpatientEmrDiagnose},
+                </if>
+                <if test="item.outpatientEmrDiagnoseCode != null">
+                    outpatient_emr_diagnose_code = #{item.outpatientEmrDiagnoseCode},
+                </if>
+                <if test="item.poisonFactor != null">
+                    poison_factor = #{item.poisonFactor},
+                </if>
+                <if test="item.poisonFactorCode != null">
+                    poison_factor_code = #{item.poisonFactorCode},
+                </if>
+                <if test="item.pathologyDiagnose != null">
+                    pathology_diagnose = #{item.pathologyDiagnose},
+                </if>
+                <if test="item.pathologyDiagnoseCode != null">
+                    pathology_diagnose_code = #{item.pathologyDiagnoseCode},
+                </if>
+                <if test="item.pathologyDiagnoseId != null">
+                    pathology_diagnose_id = #{item.pathologyDiagnoseId},
+                </if>
+                <if test="item.isMedAllergy != null">
+                    is_med_allergy = #{item.isMedAllergy},
+                </if>
+                <if test="item.medAllergyName != null">
+                    med_allergy_name = #{item.medAllergyName},
+                </if>
+                <if test="item.autopsy != null">
+                    autopsy = #{item.autopsy},
+                </if>
+                <if test="item.bloodType != null">
+                    blood_type = #{item.bloodType},
+                </if>
+                <if test="item.rh != null">
+                    rh = #{item.rh},
+                </if>
+                <if test="item.deptDirector != null">
+                    dept_director = #{item.deptDirector},
+                </if>
+                <if test="item.directorDoctor != null">
+                    director_doctor = #{item.directorDoctor},
+                </if>
+                <if test="item.attendingDoctor != null">
+                    attending_doctor = #{item.attendingDoctor},
+                </if>
+                <if test="item.behospitalDoctor != null">
+                    behospital_doctor = #{item.behospitalDoctor},
+                </if>
+                <if test="item.responseNurse != null">
+                    response_nurse = #{item.responseNurse},
+                </if>
+                <if test="item.studyDoctor != null">
+                    study_doctor = #{item.studyDoctor},
+                </if>
+                <if test="item.practiceDoctor != null">
+                    practice_doctor = #{item.practiceDoctor},
+                </if>
+                <if test="item.encodeMan != null">
+                    encode_man = #{item.encodeMan},
+                </if>
+                <if test="item.homePageQuality != null">
+                    home_page_quality = #{item.homePageQuality},
+                </if>
+                <if test="item.qcDoctor != null">
+                    qc_doctor = #{item.qcDoctor},
+                </if>
+                <if test="item.qcNurse != null">
+                    qc_nurse = #{item.qcNurse},
+                </if>
+                <if test="item.qcDate != null">
+                    qc_date = #{item.qcDate},
+                </if>
+                <if test="item.leaveHospitalType != null">
+                    leave_hospital_type = #{item.leaveHospitalType},
+                </if>
+                <if test="item.acceptOrgCode != null">
+                    accept_org_code = #{item.acceptOrgCode},
+                </if>
+                <if test="item.againBehospitalPlan != null">
+                    again_behospital_plan = #{item.againBehospitalPlan},
+                </if>
+                <if test="item.againBehospitalGoal != null">
+                    again_behospital_goal = #{item.againBehospitalGoal},
+                </if>
+                <if test="item.tbiBeforeDay != null">
+                    tbi_before_day = #{item.tbiBeforeDay},
+                </if>
+                <if test="item.tbiBeforeHour != null">
+                    tbi_before_hour = #{item.tbiBeforeHour},
+                </if>
+                <if test="item.tbiBeforeMinute != null">
+                    tbi_before_minute = #{item.tbiBeforeMinute},
+                </if>
+                <if test="item.tbiAfterDay != null">
+                    tbi_after_day = #{item.tbiAfterDay},
+                </if>
+                <if test="item.tbiAfterHour != null">
+                    tbi_after_hour = #{item.tbiAfterHour},
+                </if>
+                <if test="item.tbiAfterMinute != null">
+                    tbi_after_minute = #{item.tbiAfterMinute},
+                </if>
+                <if test="item.totalFee != null">
+                    total_fee = #{item.totalFee},
+                </if>
+                <if test="item.ownFee != null">
+                    own_fee = #{item.ownFee},
+                </if>
+                <if test="item.generalFee != null">
+                    general_fee = #{item.generalFee},
+                </if>
+                <if test="item.serviceFee != null">
+                    service_fee = #{item.serviceFee},
+                </if>
+                <if test="item.nurseFee != null">
+                    nurse_fee = #{item.nurseFee},
+                </if>
+                <if test="item.otherFee != null">
+                    other_fee = #{item.otherFee},
+                </if>
+                <if test="item.pathologyFee != null">
+                    pathology_fee = #{item.pathologyFee},
+                </if>
+                <if test="item.labFee != null">
+                    lab_fee = #{item.labFee},
+                </if>
+                <if test="item.pacsFee != null">
+                    pacs_fee = #{item.pacsFee},
+                </if>
+                <if test="item.clinicDiagnoseFee != null">
+                    clinic_diagnose_fee = #{item.clinicDiagnoseFee},
+                </if>
+                <if test="item.notOperationFee != null">
+                    not_operation_fee = #{item.notOperationFee},
+                </if>
+                <if test="item.clinicPhysicFee != null">
+                    clinic_physic_fee = #{item.clinicPhysicFee},
+                </if>
+                <if test="item.operationTreatFee != null">
+                    operation_treat_fee = #{item.operationTreatFee},
+                </if>
+                <if test="item.anaesthesiaFee != null">
+                    anaesthesia_fee = #{item.anaesthesiaFee},
+                </if>
+                <if test="item.operationFee != null">
+                    operation_fee = #{item.operationFee},
+                </if>
+                <if test="item.healthTypeFee != null">
+                    health_type_fee = #{item.healthTypeFee},
+                </if>
+                <if test="item.chnTreatFee != null">
+                    chn_treat_fee = #{item.chnTreatFee},
+                </if>
+                <if test="item.westernMedFee != null">
+                    western_med_fee = #{item.westernMedFee},
+                </if>
+                <if test="item.antibiosisFee != null">
+                    antibiosis_fee = #{item.antibiosisFee},
+                </if>
+                <if test="item.chnMedFee != null">
+                    chn_med_fee = #{item.chnMedFee},
+                </if>
+                <if test="item.chnHerbFee != null">
+                    chn_herb_fee = #{item.chnHerbFee},
+                </if>
+                <if test="item.bloodFee != null">
+                    blood_fee = #{item.bloodFee},
+                </if>
+                <if test="item.albumenFee != null">
+                    albumen_fee = #{item.albumenFee},
+                </if>
+                <if test="item.globulinFee != null">
+                    globulin_fee = #{item.globulinFee},
+                </if>
+                <if test="item.bloodFactorFee != null">
+                    blood_factor_fee = #{item.bloodFactorFee},
+                </if>
+                <if test="item.cellFactorFee != null">
+                    cell_factor_fee = #{item.cellFactorFee},
+                </if>
+                <if test="item.checkMaterialFee != null">
+                    check_material_fee = #{item.checkMaterialFee},
+                </if>
+                <if test="item.treatMaterialFee != null">
+                    treat_material_fee = #{item.treatMaterialFee},
+                </if>
+                <if test="item.operationMaterialFee != null">
+                    operation_material_fee = #{item.operationMaterialFee},
+                </if>
+                <if test="item.otherTypeFee != null">
+                    other_type_fee = #{item.otherTypeFee},
+                </if>
+                <if test="item.singleDiagManage != null">
+                    single_diag_manage = #{item.singleDiagManage},
+                </if>
+                <if test="item.clinicPathwayManage != null">
+                    clinic_pathway_manage = #{item.clinicPathwayManage},
+                </if>
+                <if test="item.isOutpatientBehospital != null">
+                    is_outpatient_behospital = #{item.isOutpatientBehospital},
+                </if>
+                <if test="item.isLeaveBehospital != null">
+                    is_leave_behospital = #{item.isLeaveBehospital},
+                </if>
+                <if test="item.isOperationBeforeAfter != null">
+                    is_operation_before_after = #{item.isOperationBeforeAfter},
+                </if>
+                <if test="item.isClinicPathology != null">
+                    is_clinic_pathology = #{item.isClinicPathology},
+                </if>
+                <if test="item.isRadiatePathology != null">
+                    is_radiate_pathology = #{item.isRadiatePathology},
+                </if>
+                <if test="item.rescueNum != null">
+                    rescue_num = #{item.rescueNum},
+                </if>
+                <if test="item.rescueSuccessNum != null">
+                    rescue_success_num = #{item.rescueSuccessNum},
+                </if>
+                <if test="item.isAutoLeavehospital != null">
+                    is_auto_leavehospital = #{item.isAutoLeavehospital},
+                </if>
+                <if test="item.returnToType != null">
+                    return_to_type = #{item.returnToType},
+                </if>
+
+                <if test="item.gmtModified != null">
+                    gmt_modified = #{item.gmtModified},
+                </if>
+                <if test="item.modifier != null">
+                    modifier = #{item.modifier},
+                </if>
+            </set>
+            where home_page_id = #{item.homePageId} and hospital_id = #{item.hospitalId} and behospital_code = #{item.behospitalCode}
+        </foreach>
+    </update>
 </mapper>

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

@@ -28,4 +28,58 @@
         <result column="modifier" property="modifier" />
     </resultMap>
 
+    <update id="updateBatchByKey">
+        <foreach collection="list" item="item"  separator=";">
+            update med_crisis_info
+            <set>
+                <if test="item.crisisId != null">
+                    crisis_id = #{item.crisisId},
+                </if>
+                <if test="item.crisisName != null">
+                    crisis_name = #{item.crisisName},
+                </if>
+                <if test="item.deptId != null">
+                    dept_id = #{item.deptId},
+                </if>
+                <if test="item.deptName != null">
+                    dept_name = #{item.deptName},
+                </if>
+                <if test="item.doctorId != null">
+                    doctor_id = #{item.doctorId},
+                </if>
+                <if test="item.doctorName != null">
+                    doctor_name = #{item.doctorName},
+                </if>
+                <if test="item.crisisValue != null">
+                    crisis_value = #{item.crisisValue},
+                </if>
+                <if test="item.crisisDesc != null">
+                    crisis_desc = #{item.crisisDesc},
+                </if>
+                <if test="item.crisisStatus != null">
+                    crisis_status = #{item.crisisStatus},
+                </if>
+                <if test="item.crisisTopValue != null">
+                    crisis_top_value = #{item.crisisTopValue},
+                </if>
+                <if test="item.crisisLowerValue != null">
+                    crisis_lower_value = #{item.crisisLowerValue},
+                </if>
+                <if test="item.sendDate != null">
+                    send_date = #{item.sendDate},
+                </if>
+                <if test="item.repDate != null">
+                    rep_date = #{item.repDate},
+                </if>
+                <if test="item.gmtModified != null">
+                    gmt_modified = #{item.gmtModified},
+                </if>
+                <if test="item.modifier != null">
+                    modifier = #{item.modifier},
+                </if>
+            </set>
+            where rec_id = #{item.recId} and hospital_id = #{item.hospitalId} and behospital_code = #{item.behospitalCode} and rec_type = #{item.recType}
+        </foreach>
+    </update>
+
 </mapper>

+ 21 - 0
src/main/resources/mapper/MedRecordTypeMapper.xml

@@ -13,4 +13,25 @@
         <result column="remark" property="remark" />
     </resultMap>
 
+    <update id="updateBatchByKey">
+        <foreach collection="list" item="item"  separator=";">
+            update med_record_type
+            <set>
+                <if test="item.typeName != null">
+                    type_name = #{item.typeName},
+                </if>
+                <if test="item.parentTypeId != null">
+                    parent_type_id = #{item.parentTypeId},
+                </if>
+                <if test="item.objName != null">
+                    obj_name = #{item.objName},
+                </if>
+                <if test="item.spell != null">
+                    spell = #{item.spell},
+                </if>
+            </set>
+            where type_id = #{item.typeId} and hospital_id = #{item.hospitalId}
+        </foreach>
+    </update>
+
 </mapper>

+ 21 - 0
src/main/resources/mapper/MedicalRecordContentMapper.xml

@@ -15,4 +15,25 @@
         <result column="modifier" property="modifier" />
     </resultMap>
 
+    <update id="updateBatchByKey">
+        <foreach collection="list" item="item"  separator=";">
+            update med_medical_record_content
+            <set>
+                <if test="item.htmlText != null">
+                    html_text = #{item.htmlText},
+                </if>
+                <if test="item.xmlText != null">
+                    xml_text = #{item.xmlText},
+                </if>
+                <if test="item.gmtModified != null">
+                    gmt_modified = #{item.gmtModified},
+                </if>
+                <if test="item.modifier != null">
+                    modifier = #{item.modifier},
+                </if>
+            </set>
+            where rec_id = #{item.recId} and hospital_id = #{item.hospitalId}
+        </foreach>
+    </update>
+
 </mapper>

+ 27 - 0
src/main/resources/mapper/MedicalRecordMapper.xml

@@ -32,4 +32,31 @@
         and t1.behospital_code = #{behospitalCode}
     </select>
 
+    <update id="updateBatchByKey">
+        <foreach collection="list" item="item"  separator=";">
+            update med_medical_record
+            <set>
+                <if test="item.orgCode != null">
+                    org_code = #{item.orgCode},
+                </if>
+                <if test="item.recTypeId != null">
+                    rec_type_id = #{item.recTypeId},
+                </if>
+                <if test="item.recDate != null">
+                    rec_date = #{item.recDate},
+                </if>
+                <if test="item.recTitle != null">
+                    rec_title = #{item.recTitle},
+                </if>
+                <if test="item.gmtModified != null">
+                    gmt_modified = #{item.gmtModified},
+                </if>
+                <if test="item.modifier != null">
+                    modifier = #{item.modifier},
+                </if>
+            </set>
+            where rec_id = #{item.recId} and hospital_id = #{item.hospitalId} and behospital_code = #{item.behospitalCode}
+        </foreach>
+    </update>
+
 </mapper>